Ping
hping3 報告的延遲高於 ping
我只是用不同的工具檢查網路延遲,例如
hping3
:sudo hping3 -A -n -p 80 www.google.ro HPING www.google.ro (ppp0 172.217.20.3): A set, 40 headers + 0 data bytes len=40 ip=172.217.20.3 ttl=59 id=14578 sport=80 flags=R seq=0 win=0 rtt=23.7 ms len=40 ip=172.217.20.3 ttl=59 id=60364 sport=80 flags=R seq=1 win=0 rtt=23.2 ms len=40 ip=172.217.20.3 ttl=59 id=28510 sport=80 flags=R seq=2 win=0 rtt=22.8 ms len=40 ip=172.217.20.3 ttl=59 id=38493 sport=80 flags=R seq=3 win=0 rtt=22.4 ms len=40 ip=172.217.20.3 ttl=122 id=35817 sport=80 flags=R seq=4 win=0 rtt=25.7 ms len=40 ip=172.217.20.3 ttl=122 id=8842 sport=80 flags=R seq=5 win=0 rtt=20.5 ms ^C --- www.google.ro hping statistic --- 6 packets transmitted, 6 packets received, 0% packet loss round-trip min/avg/max = 20.5/23.1/25.7 ms
並與
ping
:ping www.google.ro PING www.google.ro (172.217.20.3) 56(84) bytes of data. 64 bytes from bud02s28-in-f3.1e100.net (172.217.20.3): icmp_seq=1 ttl=56 time=16.3 ms 64 bytes from bud02s28-in-f3.1e100.net (172.217.20.3): icmp_seq=2 ttl=56 time=17.1 ms 64 bytes from bud02s28-in-f3.1e100.net (172.217.20.3): icmp_seq=3 ttl=56 time=16.9 ms 64 bytes from bud02s28-in-f3.1e100.net (172.217.20.3): icmp_seq=4 ttl=56 time=16.5 ms 64 bytes from bud02s28-in-f3.1e100.net (172.217.20.3): icmp_seq=5 ttl=56 time=16.3 ms 64 bytes from bud02s28-in-f3.1e100.net (172.217.20.3): icmp_seq=6 ttl=56 time=16.3 ms ^C --- www.google.ro ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5007ms rtt min/avg/max/mdev = 16.365/16.613/17.105/0.341 ms
在使用這兩個命令的幾個系列之後,我注意到它
hping3
總是報告比ping
. 為什麼會發生這種情況,如何解決?PS:使用Ubuntu 16.04.5 LTS(直連網際網路)和UFW(0.35版)
您沒有看到使用不同工具執行相同的測試。
hping3
在埠 80 上使用 TCP 協議執行“ping”;ping
正在執行 ICMP 回應要求,這完全是一個不同的測試。ICMP 是 IP 協議 1(參見RFC792);TCP 是 IP 協議 6(在RFC793中描述)。TCP(和 UDP 一樣)有埠,ICMP 沒有埠,只有類型和程式碼。
一般來說,ICMP 回應要求將是一個“更輕的提升”,因為它是一個“更輕的”協議(例如,不需要指定源或端點埠的定址)這意味著,在所有條件相同的情況下,它更有可能比由於處理要求比可比較的 TCP 數據包少,因此不會有更短的響應時間。
ICMP 數據包的單獨數據標頭大小為 52 字節(乙太網、IP 和 ICMP 分別為 24、20 和 8 個字節),而 TCP 數據包的單獨數據標頭大小為 64 字節(24 、20 和 20 字節,分別用於乙太網、IP 和 TCP)。