29-TCP 协议(持续定时器)

1. 持续定时器

在我们学习滑动窗口协议的时,遇到过窗口大小为 0 的情况。接收方通告一个 0 窗口给接收方,可以用来阻止发送方继续发送数据。

如果在某个时候,接收方缓冲区有空间了,于是发送了一个非 0 窗口的通告给接收方,不幸的是这个通告丢失了,而发送方却还在死等接收方的非 0 窗口通告,接下来就成了死锁。

为了防止这种情况,发送方只要接收到了 0 窗口通告,就开启一个持续定时器(persist timer),周期性的向接收方发送 1 字节的 0 窗口探测报文。

2. 一个 0 窗口探测报文段的例子

这个数据包是我在 windows 上抓取的,见图 1.


这里写图片描述
图1 0窗口探测报文

从图 1 中我们可以看到,注意观察红色框框那一行,红色框框是收到 0 窗口通告后,过了多久发送 0 窗口探测报文。

第一次经过约 0.3 秒,第二次 0.6 秒,第三次 1.2 秒,很明显这也是使用了指数退避算法。

3. 总结

  • 知道持续定时器的作用
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值