在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较低?
答案 0 :(得分:0)
假设您多次执行此实验并始终看到较低的RTT:
答案可能在ping的src代码中。它可能设置一个非常小的间隔意味着正在以更及时的方式处理响应。
RTT数据主要是数据包的飞行时间,但也包括一些小部分,其中包括操作系统处理响应的速度。我相信icmp echo / reply都是在内核级别处理的。