为什么Ping间隔会影响RTT值?

时间:2016-08-15 04:08:48

标签: linux networking ping latency

在ping中,“ - i”是发送连续数据包之间的等待间隔(以秒为单位)。

我有2台服务器(Host1,2)并将10G网卡插入每台服务器。我尝试从Host1 ping Host2。

$ sudo ping 10.0.0.2 -c 100
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.191 ms
...
64 bytes from 10.0.0.2: icmp_seq=100 ttl=64 time=0.141 ms
--- 10.0.0.2 ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 89999ms
rtt min/avg/max/mdev = 0.116/0.169/0.231/0.039 ms

平均RTT为0.169ms

然后我尝试减少间隔。

$ sudo ping 10.0.0.2 -c 100 -i 0.0001
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.112 ms
...
64 bytes from 10.0.0.2: icmp_seq=100 ttl=64 time=0.030 ms
--- 10.0.0.2 ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.030/0.045/0.112/0.027 ms, ipg/ewma 0.079/0.060 ms

平均RTT是0.045ms?!

间隔= 1s,RTT = 0.169ms

间隔= 0.1ms,RTT = 0.045ms

为什么间隔较小的RTT较低?

1 个答案:

答案 0 :(得分:0)

假设您多次执行此实验并始终看到较低的RTT:

答案可能在ping的src代码中。它可能设置一个非常小的间隔意味着正在以更及时的方式处理响应。

RTT数据主要是数据包的飞行时间,但也包括一些小部分,其中包括操作系统处理响应的速度。我相信icmp echo / reply都是在内核级别处理的。