窗口大小通告是接收方告知发送方,自己本地的缓冲区最大还能接受多少数据。需要窗口通告的原因是,发送方的设备性能可能远大于接受方的设备性能,以至于出现这样的现象:发送方发送数据过快,然而接收方处理数据的能力跟不上发送方发送数据的能力,那么当接收方的缓冲区满之后,即使发送方将数据发送给接收方,那么接收方也是会把数据丢弃,那么当缓冲区的数据接收方处理完成之后,由于接收方丢弃了上一次的分组,就相当于没分组,所以不会给发送方发送ACK而确认自己收到了分组,所以接收方就不会收到ACK,当发送方超时定时器超时之后,发送方没有收到ACK,那么就会重传分组,这样显得很没有效率,也很不好,所以就出现了窗口大小通告这个技术,接收方用告知发送方,自己缓冲区的大小就这么大,请你下一次发送分组时,不要超过窗口通告的大小的数据。
1、称窗口左边沿右边沿靠近为窗口合拢。这种现象发生在停留在缓冲区的数据在变多。
2、当窗口右边沿向右移动是将允许发送更多的数据,我们称之为窗口张开。这种现象发生在另一端的接收进程读取已经确认的数据并释放了TCP的接收缓存时。
3、当右边沿向左边移动时,我们称之为窗口收缩。RFC 强烈建议不要使用此方式。(因此目前就基本不可能遇到这样的滑动窗口)即窗口的双边只能向右移动。 |