快速重传是指,如果发送方已收到 3 个 dupack,则发送方应重新传输丢失的数据包。但我的 tcpdump 输出显示它并没有这样工作。即使已收到超过 10 个 dupack,它也不会重新传输数据包。为什么它没有触发快速重传?有人知道这个吗?谢谢
cat /proc/version: Linux version 4.2.0-42-generic (buildd@lgw01-55) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016
sysctl: net.ipv4.tcp_congestion_control = cubic
答案1
请检查“tcp_thin_dupack”
sysctl net.ipv4.tcp_thin_dupack net.ipv4.tcp_thin_dupack = 0
tcp_thin_dupack - 布尔值 启用一次 dupACK 后动态触发重传 对于细流。如果设置,则在接收时执行检查 dupACK 来确定流是否很薄(小于 4 飞行中的数据包)。只要发现溪水很细, 数据在第一个收到的 dupACK 上重传。这 改善非主动式瘦网络的重传延迟 流,通常被发现与时间相关。 有关细流的更多信息,请参阅 文档/网络/tcp-thin.txt