⽹卡最⼤传输单位MTU和巨型帧(Jumboframe)设置
1. 背景:在1998年,Alteon Networks 公司提出把Data Link Layer最⼤能传输的数据从1500 bytes 增加到9000 bytes,这个提议虽然没有得到IEEE 80
2.3 Working Group的同意,但是⼤多数设备⼚商都已经⽀持
1500bytes 不包含18字节(14+4CRC)
2. 产⽣原因:提⾼⽹络的吞吐率和效率(⼩的数据报⽂封装⼆层信息时,效率不⾼),同时减少设备CPU的负担(对于⼩的报⽂,CPU花费⼤量的时间来分⽚和重组报⽂)
3. 定义:Jumbo frames 是指⽐标准Ethernet Frames长的frame,即⽐1518/1522 bytes⼤的frames
1) Jumbo frame的⼤⼩是每个设备⼚商规定的,不属于IEEE标准
2) Jumbo frame 在full-duplex 的Ethernet⽹络上运⾏
3) Jumbo frame定义了⼀个“link negotiation”协议,来和对端的设备协商,
是否对端设备⽀持使⽤Jumbo frames
4) 标准的以太⽹IP报⽂⼤⼩是:1500 bytes,不包含以太⽹头和FCS的18 bytes(6+6+2+4),
如果包含以太⽹头和FCS,则为1518 bytes
5) Jumbo frame ⼀般指的是⼆层封装三层IP报⽂的值⼤于9000bytes的报⽂
4. Cisco 在Gigabit Ethernet上采⽤的是Supervisor III/IV(引擎),所以⽀持Jumbo Frames,但是在Ethernet/Fast Ethernet由于采⽤的Supervisor I/II,所以不⽀持Jumbo Frame.---因为⼀般的Cisco设备Supervisor I/II 都是采⽤的是ASIC的芯⽚,没有办法⽀持
5. 配置:
在接⼝上配置
sup3(config)#interface gigabitEthernet 1/1
sup3(config?if)#mtu ?
<1500?9198> MTU size in bytes
sup3(config?if)#mtu 9198
全局配置:
Use the system mtu command to change the MTU for all 10/100 interfaces. This command only effects 10/100 interfaces.
使⽤system mtu(仅对10/100M接⼝起作⽤)命令来改变10/100M接⼝的MTU:
3750(config)# system mtu 1546
3750(config)# exit
3750# reload
使⽤system mtu jumbo(仅对GE接⼝起作⽤) 命令来改变Gigabit Ethernet 接⼝的MTU:
3750(config)# system mtu jumbo 9000
3750(config)# exit
3750# reload
6. 为什么是最⼤为9000 bytes:
1) 4 bytes的CRC最⼤⽀持12000 bytes⼤⼩的字节,超过了就没有办法检查了
2) 其它的因数可能和NFS等有关系
7. Cisco的 Jumbo Frames
1) Cisco的 Supervisor III and IV 引擎能够⽀持最⼤9198 bytes的Jumbo Frame
2) 9198 bytes包含802.1q tag or ISL VLAN tag,但是不包含Ethernet header 和CRC,
所以在Cisco的设备上,最⼤的Ethernet frame size 为:9198+18= 9216 bytes
3) Catalyst 4000s 和 Catalyst 6000s 系列指的Jumbo frames 帧的⼤⼩是不⼀样的,
在Catalyst 6000s,9216 不包含Ethernet header 和CRC,所以⽀持的最⼤Ethernet Frame ⼤⼩为9216+18= 9234
在 Catalyst 4000s上,9216 已经包含了Ethernet header 和CRC
8. Jumbo Frame Support in Supervisor III/IV(引擎):
Protocol/Application Number of Header Byt
es
Total Frame size Command
802.1q trunking41500 + 4 + 18 = 1
522
No MTU commands required.
QinQ pass-through (802.1q inside 802.1q, useful for ISP s to segregate customer traffic)4 + 4
1500 + 8 + 18 = 1
html frame526
system mtu 1504
MPLS VPN pass-through (two 4-byte labels) 4 + 41500 + 8 + 18 = 1
526
system mtu 1508
UTI/L2TPV3 pass-through (encapsulate one Ethernet p
acket in another Ethernet packet with a tunneling heade r. Useful to transport any payload such as IP/IPX and so on over an IP backbone).18+ 20+12
1500 + 50 + 18 =
1568
system mtu 1550
>>>>>>>>>>>>>>>>>###
frame ⼤⼩為 64bytes ~ 1518bytes(依據 data ⼤⼩來決定⼤⼩).這 data ⼤⼩定義是在10幾年前了,到⽬前網路環境已經從 10/100M 到 1G/10 G 的環境下,這樣的資料⼤⼩實在不符合效益.因為資料最⼤只能裝 1500 bytes.如果⼀筆 9000 bytes ⼤⼩的資料需要封裝成 6個 frame.這樣就浪費了 18(frame ⼤⼩不包括 data) * 5(需多封裝 5 個 frame) = 90 bytes 的資料.時間⾧久下來資料就會浪費更多.
也因此 Jumbo frame 出現了!!它的資料最⼤可以到 9000 bytes 在 Linux ⽤ #ifconfig 就可以看到⽬前的最⼤資料量是多少!!
[root@benjr ]# ifconfig eth2 eth2 Link encap:Ethernet HWaddr 00:1A:64:22:04:83 inet addr:192.8.1.55 Bcast:192.8.1.255 Mask:255.255.255.0 inet6 addr: fe80::21a:64ff:fe22:48 3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1440102 errors:0 dropped:0 overruns:0 frame:0 TX packets:269896 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:188856502 (180.1 MiB) TX bytes:18973940 (18.0 MiB) Interrupt:177
MTU:1500 (Maximum Transmission Unit )的縮寫,就是⽬前系統預設的最⼤資料量.可以直接透過 #ifconfig 設定!!⽬前最⼤⽀援到9000 bytes.
[root@benjr ]# ifconfig eth2 mtu 9000 [root@benjr ]# ifconfig eth2 eth2 Link encap:Ethernet HWaddr 00:1A:64:22:04:83 inet addr:192.8.1.55 Bcast:192.8.1.255 Mask:255.255.2 55.0 inet6 addr: fe80::21a:64ff:fe22:483/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1 RX packets:1440102 errors:0 dropped:0 overruns:0 frame:0 TX packets:269896 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:188856502 (180.1 MiB) TX bytes:18973940 (18.0 MiB) Interrupt:177
#ifconfig 是暫時⽣效的如果要讓 MTU 在開機時就設定好還是需要修改設定檔 /etc/sysconfig/network-scripts/ifcfg-ethx.
[root@benjr ]# vi /etc/sysconfig/network-scripts/ifcfg-eth2 # Please read /usr/share/doc/initscripts-*/ # for the documentation of these parameters. TYPE=Ethernet DEVI CE=eth2 BOOTPROTO=dhcp ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes MTU=9000
還有⼀種 Super jumbo frames 可⽀援到 64000 bytes.雖然 Jumbo frame 可以讓網路效能提昇但是問題來了,並不是每⼀個 switch 或是網卡都⽀援 Jumbo frame.所以到來 frame 還是會被切割成較⼩的 frame.⾄於你要看 switch 或是網卡有沒有⽀援 Jumbo frame.在ping 的時候加⼊參數(-s) 指定資料⼤⼩.
[root@benjr ]# ping IP -s 5000
如果 ping 沒有反映這時就要檢查⼀下你的 switch 或是網卡有沒有⽀援 Jumbo frame.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论