jumbo frames與mtu設置


一、jumbo frames 相關

1、什么是jumbo frames

Jumbo frames 是指比標准Ethernet Frames長的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每個設備廠商規定的,不屬於IEEE標准;Jumbo frame 在full-duplex 的Ethernet網絡上運行;Jumbo frame定義了一個“link negotiation”協議,來和對端的設備協商,是否對端設備支持使用Jumbo frames;標准的以太網IP報文大小是:1500 bit,不包含以太網頭和FCS的18 bit(6+6+2+4),如果包含以太網頭和FCS,則為1518 bit;Jumbo frame 一般指的是二層封裝三層IP報文的值大於9000bit的報文。

Jumbo frames的提出背景:在1998年,Alteon Networks 公司提出把Data Link Layer最大能傳輸的數據從1500 bit 增加到9000 bit,這個提議雖然沒有得到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} up
ifconfig 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 bit的CRC最大支持12000 bit大小的字節,超過了就沒有辦法檢查了。另外還有其他一些協議如NFS等的限制。

最后需要注意的是,在經過交換網絡設備時,僅僅修改主機端的MTU值是不行的,還需要交換網絡設備上開啟jumbo frames功能。

四、MTU測試

使用ping命令,-l 指定包大小,-f 選項為通知操作系統不能私自更改該數據包大小

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM