• 网卡最大传输单位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(引擎):

    Protocol/Application

    Number of Header Bytes

    Total Frame size

    Command

    802.1q trunking

    4

    1500 + 4 + 18 = 1522

    No MTU commands required.

    QinQ pass-through (802.1q inside 802.1q, useful for ISPs to segregate customer traffic)

    4 + 4

    1500 + 8 + 18 = 1526

    system mtu 1504

    MPLS VPN pass-through (two 4-byte labels)

    4 + 4

    1500 + 8 + 18 = 1526

    system mtu 1508

    UTI/L2TPV3 pass-through (encapsulate one Ethernet packet in another Ethernet packet with a tunneling header. 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: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
    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.


  • 相关阅读:
    《网络对抗技术》Exp6 MSF应用基础
    用Onenote写博客日志 
    C语言文法
    0909
    使用jQuery解决溢出文本省略
    几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比
    jQuery实现动态加载大尺寸图片
    常用jQuery插件推荐
    使用不带单位的lineheight
    JavaScript懒加载技术 lazyload
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/10715095.html
Copyright © 2020-2023  润新知