考慮以下traceroute
從我在瑞典到美國伺服器的輸出:
1 192.168.1.1 (192.168.1.1) 0.127 ms 0.148 ms 0.167 ms
2 gw-n1-rny-a13.ias.bredband.telia.com (2.248.176.129) 2.404 ms 2.414 ms 2.424 ms
3 s-b6-link.telia.net (62.115.139.49) 1.391 ms 1.401 ms 1.607 ms
4 s-akix-i1-link.telia.net (213.155.134.9) 1.610 ms 1.605 ms 1.590 ms
5 as5580-ic-155269-s-akix-i1.c.telia.net (80.239.161.18) 5.091 ms 1.572 ms 1.582 ms
6 eth2-4.edge1.sto1.se.as5580.net (78.152.34.214) 10.783 ms 10.126 ms 10.085 ms
7 eth15-2.r1.fra1.de.as5580.net (78.152.34.217) 21.254 ms 20.934 ms 20.921 ms
8 eth13-1.core1.par2.fr.as5580.net (78.152.44.244) 29.821 ms 29.912 ms 29.924 ms
9 eth7-1.core1.lon2.uk.as5580.net (78.152.44.242) 34.987 ms 34.986 ms 34.971 ms
10 eth1-2.edge1.nyc4.us.as5580.net (80.94.64.134) 114.090 ms 122.484 ms 122.485 ms
11 78.152.57.87 (78.152.57.87) 123.962 ms 123.924 ms 123.934 ms
12 10ge-1-2-0.01-02.er1.buf1.colocrossing.com (23.94.31.14) 124.270 ms 124.094 ms 124.247 ms
13 core.servermania.com (172.245.211.134) 124.732 ms 124.733 ms 124.814 ms
(我稍微清理了一下以使數字對齊,但這應該不重要。無論如何,我對原理感興趣而不是這個特定的數據。)
我很好奇哪些因素決定了每個躍點增加的延遲。最明顯的一個是物理距離,但顯然這不是主要因素,因為整個請求的 125 毫秒(幾乎)足以繞地球一圈,這顯然比這個長幾個因素要求實際旅行。我看不出連結的實際頻寬會產生很大的影響(除了資料包遺失之外,如果它們過載的話)。
除了物理距離之外,還有哪些因素會增加延遲?是各種路由器中的某種內部緩衝和/或處理,在這種情況下,是哪種類型(查看路由表需要數十毫秒?),還是底層協定層級上的某種隱藏重傳,或者是什麼?
由於沒有處理過我懷疑在這些情況下使用的那種“大鐵”路由器,我很好奇什麼樣的因素決定了它們在延遲方面的性能。
答案1
哪些因素決定延遲?
網路延遲可能由以下原因引起:
- 串列化延遲 - 由於必須透過路由器/交換器以封包大小的區塊傳輸資料而導致。
- 排隊延遲 - 在路由器佇列中等待傳輸所花費的時間。這主要與線路爭用(完整介面)有關,因為如果沒有擁塞,則幾乎不需要可測量的佇列。
- 傳播延遲 - 訊號在傳輸介質上傳輸所花費的時間。這主要是基於光速或其他電磁傳播的限制。
看什麼是網路延遲以及為什麼它很重要?了解更多。