TCP窗口

一、窗口移动
1、在建立TCP连接时,接收端会告诉发送端自己的接收窗口。
2、发送端在发送数据时,会先为数据分包,编号,然后先发送窗口大小的数据(数据大于窗口大小),小于则全部发送了,窗口后的不允许发送。
3、发送的数据被放在缓存区,并为已发送数据启动定时器,确认超时则重发。
4、然后发送端等待接收端的确认信息,确认信息可能是无序的,并不会按照发送的顺序返回。
5、从窗口起始位置,如果确认消息已回,则窗口向前滑动已回确认消息的长度,如果后面的消息回,而初始消息未确认,则窗口不滑动。
6、接收端通过数据包序号完成拼包,保证消息的有序性(传输层)。
二、流量控制
1、窗口控制:接收端ACK返回窗口大小,发送方只能发送窗口内的数据,窗口可用为0不允许发送,若接收端发送可用窗口为0,则发送端会定时获取窗口大小,直到窗口不为0,允许再次发送。
2、Nagle算法:先探知窗口大小,然后将后续数据放入缓存区,拼成合适的报文再发送,在确认消息到达一定数量时再继续下次发送。

原文地址:https://www.cnblogs.com/small-office/p/9415000.html