网卡最大传输单位MTU和巨型帧(Jumbo frame)设置

1. 背景:在1998年,Alteon Networks 公司提出把Data Link Layer最大能传输的数据从1500 bytes 增加到9000 bytes,这个提议虽然没有得到IEEE 802.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(引擎):

########################################################################################

[LINUX] 巨型帧(Jumbo frame)设置

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:483/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.255.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-*/sysconfig.txt
# for the documentation of these parameters.
TYPE=Ethernet
DEVICE=eth2
BOOTPROTO=dhcp
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes

 還有一種 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.

 

<think>嗯,用户问的是巨型的概念、工作原理以及在网络通信中的作用。首先我需要回忆一下巨型的基本定义。记得标准以太网最大传输单元(MTU)通常是1500字节,而巨型指的是超过这个大小的,比如9000字节。这个应该没错吧?不过要确认一下不同标准是否有差异,比如有些可能支持更大的MTU。 接下来,用户可能想知道巨型如何工作。这里需要解释MTU的作用,以及增大MTU后对数据传输的影响。比如,更大的意味着每个可以携带更多数据,减少的数量,从而降低处理开销,提高吞吐量。但要注意的是,网络中的所有设备,包括交换机、路由器、网卡等都必须支持巨型,否则会导致分片或丢包。这部分需要结合用户提供的引用内容,比如引用[1]提到启用巨型需要所有网络设备支持,引用[3]也提到主机KVM客户机之间的桥接需要设置MTU为9000,说明端到端的配置必要性。 然后,关于作用,除了提高吞吐量降低CPU占用,可能还有减少延迟的效果?不过实际上,巨型可能会因为处理大而增加单的处理时间,但总体来看,由于减少了的数量,整体效率提升。不过需要确认这一点是否正确,可能需要查阅资料。根据用户提供的引用,引用[1][3]都涉及到千兆网络存储通信中使用巨型,说明其在高带宽需求场景下的应用。 用户提供的引用中,引用[2]提到测试用的10G网卡,这可能高速网络环境下的巨型使用相关。这时候使用巨型可以更好地利用高带宽,减少协议开销。这部分可以作为应用场景的例子。 另外,可能需要注意巨型的缺点,比如兼容性问题,因为不是所有网络设备都支持,如果中间有设备不支持,会导致分片传输,反而影响性能。此外,较大的传输错误时重传的成本更高,但因为现代网络可靠性较高,这个影响可能较小。 最后,生成相关问题的时候,要考虑用户可能的后续疑问,比如如何配置、优缺点比较、适用场景等。比如用户可能想知道具体怎么检测是否支持巨型,或者在不同操作系统中的设置方法,比如Linux中使用ifconfig或ip命令设置MTU,如引用[3]中提到的例子。</think>### 巨型的概念与作用 #### 1. **巨型的定义** 巨型Jumbo Frame)指**超过标准以太网大小(1500字节)**的数据,通常将MTU最大传输单元)设置为9000字节。它通过减少数据分片次数提升网络效率[^1]。 #### 2. **工作原理** - **MTU扩展**:传统以太网MTU为1500字节,巨型将其扩展至9000字节。 $$ \text{单数据量提升} = \frac{\text{巨型MTU}}{\text{标准MTU}} = \frac{9000}{1500} = 6\ \text{倍} $$ - **减少协议开销**:每个的头部(如以太网头、IP头、TCP头)固定占用约40-60字节。巨型通过分摊头部开销,提高有效数据占比[^3]。 #### 3. **网络通信中的作用** - **提升吞吐量**:减少数据分片次数,降低协议处理延迟,适用于大文件传输、视频流等高带宽场景[^2]。 - **降低CPU负载**:减少中断次数,减轻终端设备的处理压力。 - **优化存储网络**:在iSCSI、NFS等存储协议中,巨型能显著提升传输效率[^3]。 #### 4. **使用条件** 需**全网设备支持巨型**,包括交换机、路由器、网卡等。若设备MTU不匹配,可能导致丢包或分片[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值