网络协议|网络协议(TCP流量控制)
一 什么是流量控制
就是在接收端拥堵的时候,发送端应减少报文段的发送;在接收端不拥堵的时候,可以恢复到正常的报文段的发送。是通过滑动窗口实现的,通过窗口来控制流量。
二 如何进行流量控制的 #1 发送端向接收端发送连接请求,接收端对请求进行确认,确认包里会告诉发送端它的接受窗口window是多大(能连续接收多少个字节),发送端后面就会根据这个window设置发送端自己的发送窗口大小
#2 当接收窗口来不及处理发送端报文段的时候,则会调整(缩小)window窗口,接收端此时根据接收端确认包里的window窗口动态调整(缩小)自己的发送窗口
【网络协议|网络协议(TCP流量控制)】
#3 如果接收窗口已经不能处理任何发送端的报文段,如果发送端继续发送,这些数据段会被丢弃的,所以接收端会在确认包里设置window=0. 发送端收到确认报文,将自己发送窗口window设置为0,此发送端停止发送报文段
#4当接收端重新获取可用空间的时候,会给发送端传输一个窗口更新包,发送端收到之后,就会调整自己的window大小,然后继续向接收端发送窗口内的报文段
#5 如果接收端的窗口更新数据包丢失了,怎么办了?这时候陷入死锁状态,发送端等待接收端的更新请求,接收端等到发送端。
所以我们还在发送端设置了计时器,间歇性的查询接收端,强制要求接收端返回窗口大小,当计时器超时就会触发这个请求
文章图片
推荐阅读
- CVE-2020-16898|CVE-2020-16898 TCP/IP远程代码执行漏洞
- parallels|parallels desktop 解决网络初始化失败问题
- 猎杀IP
- 自媒体形势分析
- 数学大作战
- 2018.03.18
- 星期天的下午茶(一)
- 08黑龙江迟淑荣弯柳树网络学院第五期学习赵宗瑞老师主讲的(传统文化与身心健康)教育体系心得体会
- 三国谋略22(找准你的定位)
- 何以燃夏