http协议哪一层 tcp如何保证可靠性( 二 )


4. 流量控制 如果发送方把数据发送得过快 , 接收方可能会来不及接收 , 这就会造成数据的丢失 。所谓流量控制就是让发送方的发送速率不要太快百思特网 , 要让接收方来得及接收 。原理这就是运用TCP报文段中的窗口大小字段来控制 , 发送方的发送窗口不可以大于接收方发回的窗口大小 。
?接收端将自己可以接收的缓冲区大小放入 TCP 首部中的 “窗口大小” 字段, 通过ACK端通知发送端;窗口大小字段越大, 说明网络的吞吐量越高;接收端一旦发现自己的缓冲区快满了, 就会将窗口大小设置成一个更小的值通知给发送端;发送端接受到这个窗口之后, 就会减慢自己的发送速度;如果接收端缓冲区满了, 就会将窗口置为0; 这时发送方不再发送数据, 但是需要定期发送一个窗口探测数据段, 使接收端把窗口大小告诉发送端
问题1:窗口关闭是什么?怎么解决? 现象:接收方若没有缓存足够使用 , 就会发送零窗口大小的报文 , 此时发送放将发送窗口设置为0 , 停止发送数据 。之后接收方有足够的缓存 , 发送了非零窗口大小的报文 , 但是这个报文在中途丢失 , 那么发送方的发送窗口就一直为零导致死锁。
解决:TCP连接方收到零窗口通知就启动计时器 , 发送窗口探测报文 。探测时 , 若接收窗口仍为0 , 那接收报文一方就重新启动计时器;若不是0 , 死锁局面打破 。
问题2:糊涂窗口综合征是什么?怎么解决? 接收方腾出几个字节告诉发送方窗口大小 , 而发送方会义无反顾发送这几个字节 , 导致报文利用率很低 , 这就是糊涂窗口综合征
解决方式:
1.让接收方不通告小窗口给发送方
if 窗口大小


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: