1. 程式人生 > >【小菜學網路】MTU

【小菜學網路】MTU

不同的乙太網接入裝置,一幀能傳輸的資料量是有差異的。 普通的乙太網卡,一幀最多能夠傳輸 _1500_ 位元組的資料;而某些虛擬裝置,傳輸能力要打些折扣。此外,鏈路層除了乙太網還有其他協議,這些協議中資料幀傳輸能力也有差異。 ## 最大傳輸單元 如果待發送的資料超過幀的最大承載能力,就需要先對資料進行分片,然後再通過若干個幀進行傳輸。 下面是一個典型例子,待發送的資料總共 _4000_ 位元組,假設乙太網裝置一幀最多隻能承載 _1500_ 位元組。很明顯,資料需要劃分成 _3_ 片,再通過 _3_ 個幀進行傳送: ![](http://cdn.fasionchan.com/course/network/mtu/07eb567654c4cd18b39a9e6ff18edf04.png#width=585px) 換句話講,我們需要知道接入裝置一幀最多能傳送多少資料。這個引數在網路領域被稱為 **最大傳輸單元** ( _maximum transmission unit_ ),簡稱 _MTU_ 。_MTU_ 描述鏈路層能夠傳輸的最大資料單元。 ## 檢視、設定MTU 我們知道,在 _Linux_ 系統可以用 _ifconfig_ 或者 _ip_ 這兩個命令來檢視網絡卡資訊,其中包括 _MTU_ 。 接下來,我們開啟 _docker_ 進入 _netbox_ 環境進行演示: ```shell docker run --name netbox --rm -it --privileged --cap-add=NET_ADMIN --cap-add=SYS_ADMIN -v /data -h netbox fasionchan/netbox:0.5 bash /script/netbox.sh ``` 先以 _ifconfig_ 命令為例: ```shell root@netbox [ ~ ] ➜ ifconfig eth0: fl