当在慢启动时发生数据包丢失时,reno / newreno算法是否会注意到可能的dupack,或者它是纯粹的慢启动 - > RTO?
因此,如果发送两个数据包(在慢启动开始时),并且第一个丢失,那么慢启动除了rto之外还做其他什么吗?
这令人困惑,因为rfc声称“在实践中它们(缓慢启动和拥塞避免)是一起实施的”。而linux源代码有点粗,只有一个实现。
答案 0 :(得分:0)
当缓慢发生丢包时 开始,是reno / newreno 算法注意到可能的dupacks,或 它是纯粹的慢启动 - > RTO?
我会说“是”,将检测到重复的ACK并采取行动。请参阅RFC 2001, Section 2.3。
因此,如果发送两个数据包(在开始时) 慢开始),第一个去 失踪,慢开始做任何事情 除了rto?
这个特殊的例子将导致“简单的RTO”。在慢启动开始时,当只能发送两个数据包时,最多只有一个重复ACK(由第二个数据包到达触发)。如果两个数据包一起(将会)一起确认,甚至可能没有。但是一个重复的ACK不会触发快速重传。因此TCP将等待重传计时器到期。
令人困惑,因为rfc说明了这一点 '在实践中他们(慢启动& 实施拥堵避免) 一起'。而linux源码有点 厚读,只有一个 实施
我同意linux源代码是粗读。但它是明确的,如果你真的需要知道可能是唯一的选择:)除非你找到一个人阅读(或写)它;我没有。