2012年(28)
分类: 系统运维
2012-08-31 18:27:52
滑动窗口
滑动窗口是TCP使用的一种流量控制的方法。
在TCP中采用滑动窗口来进行传输控制时,滑动窗口的大小意味着接收方的有多大的缓冲来接收数据。一般发送方确认滑动窗口应发送多大的数据,而接收方则确认接收窗口的大小。
一般接收方提供的窗口大小通常由接收进程控制,这将影响TCP的性能。一般操作系统默认设置发送和接收缓冲区的大小为4096字节。
当滑动窗口在未发送数据时,窗口的大小为0,正常是不能发送数据出去,但是有2种情况能发送出数据:1、发送紧急数据。2、发送方通知接收方希望接收下一字节的数据及发送方滑动窗口的大小。
在TCP滑动窗口发送数据时,如下图所示。假设每个标号为1字节,该窗口的大小为7字节,第一次接收了0-2字节的数据,等接收方回复了ACK后,窗口的右边缘先左扩大。有时会发现发送窗口的大小的左边缘会向右进行移动,而右边缘没有移动,是因为滑动窗口的大小可以减小。
在滑动窗口中,发送方不一定会发送全窗口大小的数据,就像上图一样,一次发3字节的数据给接收方。当发送方接受到了接受方的ACK时,滑动窗口才会向右滑动。在滑动窗口中可以多个数据只需要一个ACK进行确认。