TCP头里有一个字段叫Window,又叫Advertised-Window,这个字段是接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。
上面这个图显示的是发送方的滑动窗口,从这个图可以看出来:
再来看一个下面的例子:
上面这个图也是发送方的滑动窗口:
#1
已收 ack #2
还没收到 ack #3
在窗口当中还没发送的,(接受方有空间) #4
窗口外的空间,(接受方没空间) 下面是个滑动后的示意图(收到36的ack,并发出了46-51的字节):
在通过 tcp/ip 详解上一个例子看完善这个概念
上面的图是方送方和接受方的 tcpdump 的一个示意图
从上面的图可以总结几点:
【参考资料】
http://coolshell.cn/articles/11609.html
TCP/IP详解 卷1:协议
—EOF—