三大操作系统(Windows 10、Mac OS X、群晖DSM6.23)的2.5G/10G网卡开启巨型帧的方法

       一、先来讲解两个名词

       1、MTU:最大传输单元(Maximum Transmission Unit,MTU),是指一种通信协议在某一层上面所能通过的最大数据报大小(以字节为单位),它通常与链路层协议有密切的关系。

       由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes,最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧,我们都可以视之为错误的数据帧。一般的以太网转发设备会丢弃这些数据帧。(注:小于64Bytes的数据帧一般是由于以太网冲突产生的 “碎片”或者线路干扰或者坏的以太网接口产生的,对于大于1518Bytes的数据帧我们一般把它叫做Giant帧,这种一般是由于线路干扰或者坏的以太网口产生)。

       由于以太网EthernetII最大的数据帧是1518Bytes,除去以太网帧的帧头(DMAC目的MAC地址 48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和帧尾CRC校验部分4Bytes (这个部份有时候大家也把它叫做FCS),那么剩下承载上层协议的地方也就是Data域最大就只能有1500Bytes,这个值我们就把它称之为MTU。

       这个MTU就是网络层协议非常关心的地方,因为网络层协议比如IP协议会根据这个值来决定是否把上层传下来的数据进行分片。就好比一个盒子没法装下一大块面包,我们需要把面包切成片,装在多个盒子里面一样的道理。当两台远程PC互联的时候,它们的数据需要穿过很多的路由器和各种各样的网络媒介才能到达对端,网络中不同媒介的MTU各不相同,就好比一长段的水管,由不同粗细的水管组成(MTU不同 )通过这段水管最大水量就要由中间最细的水管决定。

       2、巨型帧(Jumbo Frame)
       以太网自从被发明以来的30年来,其帧结构一直就没有发生过大的改变。唯一的改变也就是为了满足VLAN以及优先级的需求,在帧头加了4个字节,除此之外,以太网的帧结构就像金科玉律一样,没有谁试图改变它。
       现在最大帧长的问题提出来了。以太网经过几十年的发展,速度已经从最初的10M被提升到了10G甚至更高,速度提高了1000倍或者以上。在这样高速度的传输数据中,如果还是延续经典以太网的最大帧长不超过1518 字节的限制,那么在每秒中传输的数据包的个数将很大。由于每个数据包都需要网络设备来进行处理,由此带来的额外开销也将很大,而且这个开销随着网络速度的提高而愈加明显。

       于是一些厂商提出了“巨型帧”的概念,大胆地把以太网的最大帧长扩展到了9K,几乎把以前的最大帧长扩展了6倍。加大帧长的好处在于减少了网络中数据包的个数,减轻了网络设备处理包头的额外开销。经过测试,在传统的千兆以太网中,每秒大约有81,000个数据包流经网络,而在使用了巨型帧的网络中,这个数字减少为14,000。在万兆网络中,这个对比更加强烈,标准的网络中帧长为标准1518的帧每秒有812,000个,而采用了巨型帧技术的网络上仅仅只有14,000个。大量减少的帧数目必将带来性能的提高。
       Jumbo Frame这是一种厂商标准的超长帧格式,专门为千兆以太网而设计,目前还没有获得IEEE标准委员会的认可。以太网标准的最大帧长度为1518字节,而Jumbo Frame的长度各厂商有所不同,从9000字节~64000字节不等。采用Jumbo Frame能够令千兆以太网性能充分发挥,使数据传输效率提高50%~100%。在网络存储的应用环境中,Jumbo Frame更具有非同寻常的意义。
       Jumbo Frame需要在相互通讯的2个通讯端口(交换机端口或网卡端口)上同时支持,而且与以前的以太网产品不兼容,因此主要会应用于千兆主干的端口之间以及服务器端口接入到网络主干的链路。交换机把Jumbo Frame格式的数据转发向不兼容Jumbo Frame的端口时应进行帧格式的转换,即把Jumbo Frame帧格式的数据转换成标准以太网的帧格式,从而保证其正常工作。相反,从不兼容Jumbo Frame的端口向支持Jumbo Frame的端口转发数据时,交换机可以把多个标准以太网帧合并成超长Jumbo Frame帧,从而提高传输效率。—-由于Jumbo Frame没有成为国际标准,目前只有部分厂商支持这种帧格式。不过随着以太网向千兆、万兆的发展,必然要诞生1种超长帧格式,因而Jumbo Frame从厂商标准转变为国际标准的可能性非常大。

 

       二、Windows 10 开启巨型帧的方法

       在系统桌面右下角网络图标点鼠标右键,选“网络和internet设置”—“更改适配器选项”,找到你的2.5G或者10G网卡,右键点“属性”—“配置”—“高级”,找到“巨型帧”,选择“9KB MTU”,确定。

 

       三、Mac OS X 开启巨型帧的方法

       网络,选中你的2.5G或者10G网卡,高级,硬件,手动设置 MTU 为 9KB。

 

       四、群晖DSM6.23 开启巨型帧的方法

       1、在群晖“控制面板”—“网络”—“网络界面”,选中你的2.5G或者10G网卡所在的“局域网 X” ,点“编辑”—“手动设置 MTU值” 改为 9000,确定。

 

       2、保存设置后,等待网络重启,一会网页自动刷新后就可以看到状态里已经显示“启动 Jumbo Frame,MTU值 为 9000”。

 

点赞
  1. cm86说道:
    Google Chrome Android 10
    博主,请问千兆网卡需要这样设置吗? openwrt软路由里面的wan和lan口的mtu要怎么设置呢?
    1. 博主说道:
      Google Chrome Windows 10
      千兆不需要特别设置,用默认的(1480)就行。
      1. cm86说道:
        Google Chrome Android 10
        好叭 :tushe:

发表评论