網路上訊息傳輸的最大單位是如何變成1500位元組的

網路上訊息傳輸的最大單位是如何變成1500位元組的

乙太網路無所不在,成千上萬的製造商生產支援乙太網路的設備。然而,幾乎所有這些設備都有一個共同的數字—— MTU:

$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP 
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

MTU(最大傳輸單元)定義單一資料包的最大大小。一般來說,當你和區域網路上的裝置交換訊息時,MTU 會在 1500 位元組左右,而整個網路幾乎都以 1500 B 運作。但這並不意味著這些通訊技術不能傳輸更大的資料包。

例如,802.11(通常稱為 WiFi)的 MTU 為 2304 位元組,如果您的網路使用 FDDI,那麼您的 MTU 為 4352 位元組。乙太網路本身俱有「巨型幀」的概念,其中 MTU 可以設定為最大 9000 位元組的大小(如果 NIC、交換器和路由器支援)。

但在網路上這並不是特別必要的。由於網際網路的主幹網路主要由乙太網路連線組成,事實上的非官方最大資料包大小設定為 1500B,以避免其他裝置上出現資料包碎片。

數字 1500 本身很奇怪——例如,人們可能認為電腦世界中的常數是基於 1500 的冪的。那麼 XNUMX B 是從哪裡來的,為什麼我們仍在使用它們?

神奇數字

乙太網路在世界上的第一個重大突破是以標準的形式出現的 10BASE-2 (薄)和 10BASE-5 (粗),其中的數字表示特定網段可以覆蓋多少百公尺。

由於當時存在許多競爭協議,且硬體有其自身的局限性,因此該格式的創建者承認,資料包緩衝區的記憶體要求在神奇數字 1500 的出現中發揮了作用:

事後看來,顯然更大的最大值可能是更好的解決方案,但如果我們早期增加了 NIC(網路控制器)的成本,乙太網路就不會變得如此普及。

然而,這並不是故事的全部。在 工作 1980 年的《乙太網路:本地電腦網路中的分散式分組交換》提供了網路中使用大資料包的效率的最早分析之一。當時,這對於乙太網路尤其重要,因為它們可以用單一同軸電纜連接所有系統,或者由可以同時向網段上的所有節點發送資料包的集線器組成。

有必要選擇一個數字,該數字不會在分段傳輸訊息(有時非常繁忙)時造成太高的延遲,同時不會過度增加資料包的數量。

顯然,當時的工程師選擇 1500 B(約 12000 位元)這個數字作為最「安全」的選項。

從那時起,各種其他訊息傳遞系統相繼出現和消失,但其中最低的 MTU 是具有 1500 B 的乙太網路。超過網路上的最小 MTU 意味著導致封包碎片或 PMTUD [路徑最大尺寸偵測]。兩種選擇都有各自的特定問題。即使有時主要的作業系統供應商將 MTU 值降低得更低。

效率因素

我們現在知道,互聯網上的 MTU 限制為 1500B,這主要是由於遺留延遲和硬體限制。這對網路的效率有多大影響?

網路上訊息傳輸的最大單位是如何變成1500位元組的

如果我們查看大型網路交換點 AMS-IX 的數據,我們會發現至少 20% 的傳輸資料包都是最大尺寸。您也可以查看整體 LAN 流量:

網路上訊息傳輸的最大單位是如何變成1500位元組的

如果將兩個圖表結合起來,您會得到類似以下內容(每個資料包大小範圍的流量估計):

網路上訊息傳輸的最大單位是如何變成1500位元組的

或者,如果我們查看所有這些標頭和其他服務資訊的流量,我們會得到具有不同比例的相同圖表:

網路上訊息傳輸的最大單位是如何變成1500位元組的

相當大一部分頻寬都花在了最大尺寸類別的資料包頭上。由於峰值流量時的最高開銷為 246 Gbps,因此可以合理地假設,如果我們在選項仍然存在時全部切換到“巨型幀”,則該開銷將僅為 41 Gbps 左右。

但我認為,對於當今網路的大部分來說,這列火車已經開走了。儘管一些 ISP 可以使用 9000 的 MTU,但大多數 ISP 並不支援它,事實證明,在互聯網上進行全局更改的嘗試一次又一次變得極其困難。

來源: www.habr.com

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster