总结:TCP/IP 详解(卷1: 协议)--第十四章 TCP 超时与重传

第十四章  TCP 超时与重传

        本章主要讨论了 TCP 超时和重传策略。第一个例子描述了当 TCP 需要发送一个数据包时,简单地暂时断开网络,导致重传计时器超时触发了一次超时重传。每次重传都在之前一次传输的两倍时长后被成功接收,形成二进制指数退避,即 Karn 算法的第二部分。

        TCP 测量 RTT 并用这些测量值纪录平滑的 RTT 与均值偏差估计值,用这两个估计值计算新的重传超时值。在不采用时间戳选项的情况下,TCP 在每个数据窗口只能测量一个 RTT。Karn算法通过不测量重传报文段的 RTT 样本值来避免重传二义性问题。现在的大部分 TCP 版本都使用时间戳选项,使得每个报文段都可以单独测量。时间戳选项即使在包失序或包重复的情况下也能很好地工作。

        本章中还讨论了快速重传算法,它在计时器没有超时的情况下就能被触发。该算法可有效地填补由丢包引起的空缺。结合选择确认可更好地提高算法性能。选择确认在 ACK 中携带其他信息,允许发送端在每个 RTT 内修补多个空缺,在某些环境下可有效提高传输性能。

        如果 RTT 测量值小于连接的实际值,就可能发送伪重传。在这种情况下,若 TCP 的等待时间稍长,重传就可能不会发生。针对伪超时问题提出了很多算法。DSACK 需要等到接收到重复报文段的 ACK。Eifel 检测方法依据 TCP 时间戳,但它的响应速度能比 DSACK 更快,这是因为它是根据超时前所发送报文段返回的 ACK 来检测伪超时的。F-RTO 与 Eifel算法类似,但不需要时间戳。它使得发送端在判断出现伪超时后发送新数据。以上这些检测算法都需要结合使用响应算法,我们讨论到的响应算法主要是 Eifel响应算法。它在延迟大幅增长的情况下,会重新设置 RTT 和 RTT 变化估计值。

        本章也讨论了 TCP 怎样储存连接状态,怎样重新组包,以及相关攻击,包括使得 TCP 过分被动或过分积极。

        希望我的总结可以帮助大家,感谢阅读我的博客!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值