一、流量控制
流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
1、利用滑动窗口实现流量控制
注:每一个报文段为100字节长,而数据报文段序号的初始值设为1。
在箭头上面大写ACK表示首部中的确认位ACK,小写ack表示确认字段的值,只有ACK=1时确认号字段才有意义。
从上图,可以看出接收方的主机B进行了三次流量控制。第一次把窗口减少到rwnd=300,第二次又减少到rwnd=100。最后减到rwnd=0,即不允许发送方再发送数据了。这种使发送方暂停发送的状态将持续到主机B重新发出一个新的窗口值为止。
持续计时器
考虑存在一种情况:在图中,B向A发送的带有新的接收窗口值的报文段丢失,A一直等待收到B发送的非零窗口的通知,而B也一直等待A发送的数据,如果没有没有其他措施,这种相互等待的死锁局面将一直延续下去。
为了这个问题,持续计时器就来了。TCP为每一个连接设有一个持续计时器。
(1)只有TCP连接的一方收到对方的零窗口通知,就启动持续计时