流量需要控制的原因:
发送方发送太快,接收方来不及接收,导致数据的丢失,引起性能下降。
流量控制:
让发送方发送效率不要太快,要让接收方来得及接收,整个过程是接收方(接收窗口)和发送方(发送窗口)一个动态协商的过程。
滑动窗口机制
A对B发送数据,B需要对A进行流量控制,B主机告诉A最多能接收几个窗口的数据,主机A会调整相应发送窗口大小。
整个过程中,经过B确认收到后的数据,A可以直接将自己缓存的部分进行删除,移出滑动窗口,,如果没有收到B的确认,否则不能删除,万一出现差错,数据还需要重新发送给B。
持续计时器:
假设,B给A发送了窗口值为0时,A将不能给B继续发送数据,此时A会启动一个定时器,每隔一段时间发送一个零窗口探测报文,询问现在是否可以继续发送数据,现在B的接收窗口是多大的。如果没有这个定时器将会陷入僵持状态。
那么零窗口报文丢失怎么办呢?
零窗口探测报文发送出去后,也会启动一个超时重传定时器,如果超时,也会重传的,所以不用太担心。
本文中出现的图,来自网络公开课,感兴趣的朋友可以搜一下学习一下,我这里只做学习记录和分享,很感谢老师可以将精品课程分享出来供大家学习:https://www.bilibili.com/video/BV1c4411d7jb?p=62&spm_id_from=pageDriver