MTU是Maximum Transmission Unit的縮寫。意思是網絡上傳送的最大數據包。那麼linux怎麼修改mtu值呢?接下來大家跟著學習啦小編一起來了解一下linux修改mtu值的解決方法吧。
linux修改mtu值方法
一、jumbo frames 相關
1、什麼是jumbo frames
Jumbo frames 是指比標准Ethernet Frames長的frame,即比1518/1522 bytes大的frames,Jumbo frame的大小是每個設備廠商規定的,不屬於IEEE標准;Jumbo frame 在full-duplex 的Ethernet網絡上運行;Jumbo frame定義了一個“link negotiation”協議,來和對端的設備協商,是否對端設備支持使用Jumbo frames;標准的以太網IP報文大小是:1500 bytes,不包含以太網頭和FCS的18 bytes(6+6+2+4),如果包含以太網頭和FCS,則為1518 bytes;Jumbo frame 一般指的是二層封裝三層IP報文的值大於9000bytes的報文。
Jumbo frames的提出背景:在1998年,Alteon Networks 公司提出把Data Link Layer最大能傳輸的數據從1500 bytes 增加到9000 bytes,這個提議雖然沒有得到IEEE 802.3 Working Group的同意,但是大多數設備廠商都已經支持。
2、使用jumbo frames的優點
在數據傳輸時,由於IEEE的規定最大的幀規定為1,500比特(主機在早期的半雙功網絡中),所以需要數傳輸需要經過 數據的切要 --- 傳輸 ---數據組合 的過程。而使用的最大幀越小,傳輸包的量就越大,計算量相應會多,而產生的後果是:
a:增加主機的計算量,消耗CPU資源;
b:影響網絡傳輸的速度。
而使用大幀優點自然也不言而喻 ———— 降低CPU計算量、加快數據傳輸。
二、修改MTU值
上面啰嗦了一大堆,修改幀大小實際需要的操作就是修改MTU(Maximum Transmission Unit)值,即修改最大傳輸單元。修改方法如下:
1、ifconfig命令修改
ifconfig ${Interface} mtu ${SIZE} upifconfig eth1 mtu 9000 up
這個是最通用的方法,對所有的linux 發行版本都有效。缺點就是重啟後失效,需要在開機項中加載。
2、修改配置文件
CentOS / RHEL / Fedora Linux下
# vi /etc/sysconfig/network-scripts/ifcfg-eth0#增加如下內容MTU="9000"#保存後重啟網卡生效# service network restart#啟用IPv6地址的,修改IPv6 mtu的參數為IPV6_MTU="1280"
Debian / Ubuntu Linux下
# vi /etc/network/interfaces#增加如下值mtu 9000#保存後,重啟網絡生效# /etc/init.d/networking restart
三、為什麼MTU最大值為9000字節
從理論上計算,4 bytes的CRC最大支持12000 bytes大小的字節,超過了就沒有辦法檢查了。另外還有其他一些協議如NFS等的限制。
最後需要注意的是,在經過交換網絡設備時,僅僅修改主機端的MTU值是不行的,還需要交換網絡設備上開啟jumbo frames功能。
四、MTU測試
使用ping命令,-l 指定包大小,-f 選項為通知操作系統不能私自更改該數據包大小
使用英文操作系統時的提示為:Packet needs to be fragmented but DF set .
看過“linux怎麼修改mtu值”的人還看了: