【小菜學網路】MTU
阿新 • • 發佈:2021-03-03
不同的乙太網接入裝置,一幀能傳輸的資料量是有差異的。
普通的乙太網卡,一幀最多能夠傳輸 _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