tcp如何保证可靠性(http协议哪一层)( 二 )
超时重发【tcp如何保证可靠性(http协议哪一层)】
文章图片
这个Ack是要按顺序的 。必须要等到5的Ack收到 , 才会把6-11的Ack发送过去 。这样就保证了滑动窗口的一个顺序 。这时候可以看出5号包已经接受到Ack , 后面的6、7、8号包也已经发送过去已Ack 。窗口便继续向后移动 。
4. 流量控制如果发送方把数据发送得过快 , 接收方可能会来不及接收 , 这就会造成数据的丢失 。所谓流量控制就是让发送方的发送速率不要太快 , 要让接收方来得及接收 。原理这就是运用TCP报文段中的窗口大小字段来控制 , 发送方的发送窗口不可以大于接收方发回的窗口大小 。
?接收端将自己可以接收的缓冲区大小放入 TCP 首部中的 “窗口大小” 字段, 通过ACK端通知发送端;窗口大小字段越大, 说明网络的吞吐量越高;接收端一旦发现自己的缓冲区快满了, 就会将窗口大小设置成一个更小的值通知给发送端;发送端接受到这个窗口之后, 就会减慢自己的发送速度;如果接收端缓冲区满了, 就会将窗口置为0; 这时发送方不再发送数据, 但是需要定期发送一个窗口探测数据段, 使接收端把窗口大小告诉发送端
问题1:窗口关闭是什么?怎么解决?现象:接收方若没有缓存足够使用 , 就会发送零窗口大小的报文 , 此时发送放将发送窗口设置为0 , 停止发送数据 。之后接收方有足够的缓存 , 发送了非零窗口大小的报文 , 但是这个报文在中途丢失 , 那么发送方的发送窗口就一直为零导致死锁。
解决:TCP连接方收到零窗口通知就启动计时器 , 发送窗口探测报文 。探测时 , 若接收窗口仍为0 , 那接收报文一方就重新启动计时器;若不是0 , 死锁局面打破 。
问题2:糊涂窗口综合征是什么?怎么解决?接收方腾出几个字节告诉发送方窗口大小 , 而发送方会义无反顾发送这几个字节 , 导致报文利用率很低 , 这就是糊涂窗口综合征
解决方式:
1.让接收方不通告小窗口给发送方
if 窗口大小
- 《中国哲学如何登场》读后感摘抄
- 电视柜|电视柜如何选择尺寸
- 德祐的门店复制模式——如何快速培养人才? 薄荷曼哥
- 如何看出一个女生慢慢不喜欢你了
- 中介|中介如何知道你跳单了
- 如何阅读德里达读后感精选
- 如何阅读福柯的读后感大全
- 猫|如何布置猫的房间
- 专注力:如何高效做事读后感精选
- 如何阅读克尔凯郭尔的读后感大全