Linux 路由缓存显示环回的 RTT 较高 - 这是正常的吗?

Linux 路由缓存显示环回的 RTT 较高 - 这是正常的吗?

以下是来自三个不同服务器的路由缓存的部分内容不是在高负载下。

# ip route show cache | grep -B 1 rtt

local 127.0.0.1 from 127.0.0.1 dev lo 
    cache <local>  mtu 16436 rtt 106ms rttvar 155ms cwnd 7 advmss 16396 hoplimit 64
...
local 127.0.0.1 from 127.0.0.1 dev lo 
    cache <local>  mtu 16436 rtt 145ms rttvar 130ms cwnd 6 advmss 16396 hoplimit 64
...
local 127.0.0.1 from 127.0.0.1 dev lo 
    cache <local>  mtu 16436 rtt 172ms rttvar 205ms cwnd 5 advmss 16396 hoplimit 64

为什么 rtt 这么高而且噪音这么大 (rttvar 也很高)?我该如何解释这些值?

答案1

低于 200 毫秒 (TCP_RTO_MIN) 的 RTT 值是没有意义的。低于 250 毫秒的 rttvar 值是没有意义的(因为另一端可能没有足够准确的计时器)。RTT/RTTVAR 测量值在如此快速的接口上是不相关的。

include/net/tcp.h

#define TCP_RTO_MIN     ((unsigned)(HZ/5))

net/ipv4/tcp_input.c

     * 1. If rtt variance happened to be less 50msec, it is hallucination.
     *    It cannot be less due to utterly erratic ACK generation made
     *    at least by solaris and freebsd.

相关内容