【问题标题】:tcp reno, newreno and slow starttcp reno、newreno 和慢启动
【发布时间】:2011-04-17 15:47:25
【问题描述】:

当在慢启动时发生丢包时,reno/newreno 算法是否注意到可能的 dupacks,还是纯粹的慢启动 -> rto?

因此,如果发送两个数据包(在慢启动开始时),而第一个数据包丢失,那么慢启动除了 rto 之外还有什么作用吗?

这令人困惑,因为 rfc 声明“实际上它们(慢启动和避免拥塞)是一起实现的”。而且linux源码读起来有点厚,只有一个实现。

【问题讨论】:

    标签: networking tcp network-protocols


    【解决方案1】:

    慢速丢包时 开始,reno/newreno 算法注意到可能的双包,或 是纯粹的慢启动 -> rto?

    我会说“是”,重复的 ACK 将被检测到并采取行动。见RFC 2001, Section 2.3

    因此,如果发送两个数据包(在开始 慢启动),第一个去 丢失,慢启动有什么作用吗 除了 rto 之外还有其他吗?

    这个特殊的例子会导致一个“简单的 RTO”。在只能发送两个数据包的慢启动开始期间,最多会有 一个 重复 ACK(由第二个数据包到达触发)。如果两个数据包(将)一起确认,甚至可能没有。但是一个重复的 ACK 不会触发快速重传。所以TCP会等待重传定时器超时。

    这很令人困惑,因为 rfc 声明 '在实践中他们(慢启动& 拥塞避免)被实施 一起'。而且linux源码有点 厚读,只有一个 实施。

    我同意 linux 源代码是一本厚书。但它是确定的,如果你真的需要知道可能是唯一的选择:) 除非你找到读过(或写过)它的人;我没有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多