-
接收窗口
接收方会根据自己接收缓存区大小,生成接收窗口大小。
接收窗口就是告诉对方,我现在最多还能接收多大的数据量。 -
如果接收方的缓存区满了,发送方还在疯狂发送数据
1.接收方只能把收到的数据包丢掉,大量的丢包会极大着浪费网络资源
2.所以要进行流量控制 -
什么是流量控制?
让发送方的发送速率不要太快,让接收方来得及接收处理 -
原理
1.通过确认报文中窗口字段来控制发送方的发送速率
2.发送方的发送窗口大小不能超过接收方给出窗口大小
3.当发送方收到接收窗口的大小为0时,发送方就会停止发送数据
特殊情况
-
有一种特殊情况
1.一开始,接收方给发送方发送了0窗口的报文段
2.后面,接收方又有了一些存储空间,给发送方发送的非0窗口的报文段丢失了
3.发送方的发送窗口一直为零,双方陷入僵局 -
解决方案
1.当发送方收到0窗口通知时,这时发送方停止发送报文
2.并且同时开启一个定时器,隔一段时间就发个测试报文去询问接收方最新的窗口大小
3.如果接收的窗口大小还是为0,则发送方再次刷新启动定时器
网友评论