滑动窗口
如图:
接收方通告的窗口称为提供的窗口,它覆盖了第4字节到第9字节的区域,表明接收方已经确认了包括第3字节在内的数据,且通告窗口大小为6字节。
当接收方确认数据后,这个滑动窗口不时地向右移动。窗口两个边沿的相对运动增加或者减小了窗口的大小。我们使用三个术语来描述窗口左右边沿的运动:
1)称窗口左边沿向右边沿靠近为窗口合拢。这种现象发生在数据被发送和确认时。
2)当窗口右边沿向右移动时将允许发送更多的数据,我们称之为窗口张开。这种现象发生在另一端的接收进程读取已经被确认的数据并释放了TCP的接收缓冲区时。
3)当右边沿向左移动时,我们称之为窗口收缩。
如果左边沿到达右边沿,则称之为一个零窗口,此时发送方不能发送任何数据。
窗口大小
由接收方提供的窗口大小通常可以由接收进程控制,这将影响TCP的性能。
插口API运行进程设置发送和接收缓冲区大小。接收缓冲区的大小是该连接上所能够通告的最大窗口大小。有一些应用程序通过修改插口缓冲区大小来增加性能。