2016-08-15 320 views
3

在ping中,“-i”是发送连续数据包之间的等待间隔,以秒为单位。Ping间隔为什么会影响RTT值?

我有2个服务器(主机1,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?!


间隔= 1秒,RTT = 0.169ms

间隔= 0.1毫秒,RTT = 0.045ms

为什么会出现较低的RTT具有较小间隔?

+0

您可能会在一个以太网帧中看到多个消息被发送。所以RTT现在将成为RTT /每帧消息的数量,因为它们都是在一条消息中发送的,但ping没有意识到这一点。 – dave

回答

0

假设你多次进行这个实验,始终看到更低的RTT:

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

RTT数字大部分是数据包的飞行时间,但也包含一些由操作系统可以快速处理响应的小部分组成。我相信icmp echo/reply都是在内核级别处理的。

相关问题