tcp reno,newreno和慢启动

时间:2010-09-27 08:24:01

标签: networking tcp network-protocols

当在慢启动时发生数据包丢失时,reno / newreno算法是否会注意到可能的dupack,或者它是纯粹的慢启动 - > RTO?

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

这令人困惑,因为rfc声称“在实践中它们(缓慢启动和拥塞避免)是一起实施的”。而linux源代码有点粗,只有一个实现。

1 个答案:

答案 0 :(得分:0)

  

当缓慢发生丢包时   开始,是reno / newreno   算法注意到可能的dupacks,或   它是纯粹的慢启动 - > RTO?

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

  

因此,如果发送两个数据包(在开始时)   慢开始),第一个去   失踪,慢开始做任何事情   除了rto?

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

  

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

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