网卡最大传输单位MTU和巨型帧(Jumbo frame)设置
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.
网卡最大传输单位MTU和巨型帧(Jumbo frame)设置的更多相关文章
- Jumbo frame与MTU
最近有测试问我Jumbo和MTU分别限制的是什么把我问住了,网上查了一些资料,发现大部分是百科上copy下来的,都没有说到点子上,关键时刻还是同事靠谱,现在根据自己的理解整理一下. 首先了解一下二 ...
- MTU 最大传输单位
MTU 最大传输单位 通过上面 MAC 封装的定义,现在我们知道标准以太网络frame所能传送的数据量最大可以到达 1500 bytes , 这个数值就被我们称为 MTU (Maximum Trans ...
- Windows上最大传输单元MTU值的查看和设置
最近使用ssh工具在VPN环境下连接一个生产环境的Linux主机的时候,发现经常出现输入命令后卡死的情况.最开始以为是Linux主机的问题,问了一些老同事之后发现原来是我自己电脑的最大传输单元MTU和 ...
- 最大传输单元MTU
http://baike.baidu.com/link?url=mU41JFjZzOb3R5crQFCNdocT5ovAswcoIqL2A4U6O5Re_U0-HIYndHG0vSKwc6HbptvH ...
- TCP/IP协议:最大传输单元MTU 和 最大分节大小MSS
MTU = MSS + TCP Header + IP Header. mtu是网络传输最大报文包. mss是网络传输数据最大值. MTU:maximum transmission unit,最大传输 ...
- Android动画总结#补间动画(Tween Animation/View Animation) #帧动画(Frame Animation/Drawable Animation)#属性动画(PropertyAnimation)
1.共有三种动画,英文名字多种叫法如下 第一种动画:补间动画(Tween Animation/View Animation) 四个:RotateAnimation旋转. AlphaAnimation透 ...
- Android简单逐帧动画Frame的实现(二)
Android简单逐帧动画Frame的实现 Android简单逐帧动画Frame的实现 1.逐帧动画 即是通过播放预先排序好的图片来实现动态的画面,感觉像是放电影. 2.实现步骤: 1. 在工程里 ...
- Android帧布局(Frame Layout)
Android帧布局(Frame Layout) FrameLayout是最简单的一个布局管理器.FrameLayout为每个加入其中的组件创建一个空白区域(一帧),这些组件根据layout_grav ...
- 关于精灵帧(Sprite Frame)的尺寸大小
一个对象的精灵帧(Sprite Frame)有若干关于大小的尺寸. 比较容易混淆,这里记录下来区别: CCSpriteFrame *spriteFrame = self.spriteFrame; CG ...
随机推荐
- 微信小程序—文件系统
文件系统 文件系统是小程序提供的一套以小程序和用户维度隔离的存储以及一套响应的管理接口.通过wx.getFilesSystemManager()可以获取到全局唯一的文件管理器,所有文件管理操作通过Fi ...
- BZOJ1856 [Scoi2010]字符串 数论
原文链接http://www.cnblogs.com/zhouzhendong/p/8084577.html 题目传送门 - BZOJ1856 题意概括 找出由n个1,m个0组成的字符串,且任意前几个 ...
- sqlldr的用法 (这个最完整)
转自:http://blog.chinaunix.net/uid-23622436-id-2394093.html 一:在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以 ...
- 在 Wiki 标记中添加无序列表
项目:在 Wiki 标记中添加无序列表在编辑一篇维基百科的文章时,你可以创建一个无序列表,即让每个列表项占据一行,并在前面放置一个星号.但是假设你有一个非常大的列表,希望添加前面的星号.你可以在每一行 ...
- 20165220 Java第四周学习总结
教材学习内容总结 super:使用关键字super来访问和调用被子类隐藏的成员变量和方法. 接口:用关键字interface来定义一个接口.接口由类来实现以便使用接口中的方法,用关键字implemen ...
- 20165220预备作业3 Linux安装及学习
首先对于这第三次作业而言,给我的准备时间确实不多,因为过年回老家6天,没有办法及时的进行学习和思考,回到家中便草草的看了下相关操作跟教程从而完成了作业,这次主要是学习一些基础操作,为开学的Java学习 ...
- 【python】异步IO
No1: 协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行. 优势: 1.最大的优势就是协程极高的执行效率.因为子程序切换不是线程切换,而是 ...
- 错误 在类中找不到main方法请将main方法定义为 public static void main String args否则JavaFX应用程序类必须扩展javafx-ap
最近在使用eclipse编写java程序时遇到这样一个问题: 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 J ...
- UVA136 Ugly Numbers【set】【优先队列】
丑数 丑数是指不能被2,3,5以外的其他素数整除的数.把丑数从小到大排列起来,结果如下: 1,2,3,4,5,6,8,9,10,12,15,… 求第1500个丑数. 提示:从小到大生成各个丑数.最小的 ...
- Python Pexpect库的简单使用
Python Pexpect库的使用 简介 最近需要远程操作一个服务器并执行该服务器上的一个python脚本,查到可以使用Pexpect这个库.记录一下. 什么是Pexpect?Pexpect能够产生 ...