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

Linux 为什么Ping间隔会影响RTT值?,linux,networking,ping,latency,Linux,Networking,Ping,Latency,在ping中,“-i”是发送连续数据包之间的等待间隔(以秒为单位) 我有2台服务器(主机1、2),并将10G NIC插入每台服务器。我尝试从主机1 ping主机2 $ 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=

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

我有2台服务器(主机1、2),并将10G NIC插入每台服务器。我尝试从主机1 ping主机2

$ 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较低且间隔较小?

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

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


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

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