UNICACA光纤网卡—— 巨型帧属性

发布时间:2019-08-12

浏览次数:4574

分享到:

  以太网自从被发明以来的30年来,其帧结构一直就没有发生过大的改变。唯一的改变也就是为了满足VLAN以及优先级的需求,在帧头加了4个字节,除此之外,以太网的帧结构就像金科玉律一样,没有谁试图改变它。

  现在最大帧长的问题提出来了。以太网经过30年的发展,速度已经从最初的10M被提升到了10G,速度提高了1000倍。在这样高速度的传输数据中,如果还是延续经典以太网的最大帧长不超过1518 字节的限制,那么在每秒中传输的数据包的个数将很大。由于每个数据包都需要网络设备来进行处理,由此带来的额外开销也将很大,而且这个开销随着网络速度的提高而愈加明显。

  以Alteon为代表的一些新兴厂商提出了“巨型帧”的概念,大胆地把以太网的最大帧长扩展到了9K,几乎把以前的最大帧长扩展了6倍。加大帧长的好处在于,减少了网络中数据包的个数,减轻了网络设备处理包头的额外开销。经过测试,在传统的千兆以太网中,每秒大约有81,000个数据包流经网络,而在使用了巨型帧的网络中,这个数字减少为14,000。在万兆网络中,这个对比更加强烈,标准的网络中帧长为标准1518的帧每秒有812,000个,而采用了巨型帧技术的网络上仅仅只有14,000个。大量减少的帧数目必将带来性能的提高。这样显著的性能提高,引起了各个厂商的兴趣。Cisco已经表现出对巨型帧的强烈兴趣,从图中就可以明显看出,无论是系统吞吐量还是对CPU的占用率,相比传统以太网的帧来说,巨型帧都占有极大的优势。

  分组交换的两个极端:

  为了避免IP分片,光纤网卡总是被期待发送最小的数据,但是为了数据包处理效率的最大化,万兆网卡总是被期待发送最大的数据,这就是一个矛盾,需要代偿计算权衡。我们知道,分组交换网的每一个分组均要携带元数据,由于协议栈是分层的,对于每一个分组,都要封装多个不同层的协议头。
 


       分组交换网,它是除了电路交换外的另一种传输形式,但是你可以换一种理解方式而调和二者,如果你把一个整个的数据流封装到一个分组,那就是电路交换,该数 据流只有一个分组,一个分组只能有一条路径,这条路经在分组传输前就是客观存在的;如果你把一个整个的数据流拆分成多个分组,那就是分组交换,对于每一个 分组,它们经过网络的路经可能是不同的,而在一个时间段内,一段路经上可能会经过不同数据流的分组,统计复用即体现于此。

       如果分组过小,虽然可以避免IP分片,但是同一个数据流直到处理完毕需要的数据分组会过多,因此会有更多的数据空间消耗在元数据上,同时更多的处理器时间 消耗在根据协议元数据来进行的路由与交换上,如果分组过大,虽然会有更少的空间和时间消耗在协议元数据上,但是会有IP分片重组的开销,注意,在分组交换 网上,IP分片是数据分组超过一定长度后必须的,这是由线路物理上的电气特性决定的,如果非要传输超长的数据分组,将会出现电气层面的故障,比如脉冲畸形 等。因此能发送的避免全程IP分片的最大数据长度便是全程每一段路经MTU的最小值。

  合时宜的巨型帧:

  虽然为了兼容,1500依 然是诸多以太网卡的默认MTU设置,但是厂商对如今1G/10G等高端网卡以及超五类/六类双绞线以及光纤的高大上特性又不能视而不见,因此保留了对 MTU的配置接口,由用户自己来决定自己网卡的MTU值,超过1500Byte的以太帧,为了和原汁原味标准以太网的1500Byte区别,叫做巨型帧, 名字挺吓人,实际上也没有巨型到哪去。用户完全可以设置自己的网卡的MTU超过1500,但是能到多少呢?
 


       标准化问题是又一个棘手的问题,因为在交换以太网环境,线路的特征不再仅仅可以通过网卡和单一标准线缆(比如早期的粗缆,细缆)的电气特性来计算,而和交 换机配置,双绞线类别,质量,网卡自协商配置,双工模式等息息相关,所以虽然出现了巨型帧,它还真不好驾驭,如果发送巨型帧,中间MTU偏小的窄路由器会 将IP分片不说,可能还会影响对端数据帧的接收,因为连接两台设备的线缆很可能不是一根线缆,即便是一根线缆,两端的网卡特征也不一定相同,这就会导致收 发设备对电气特性的解释有所不同,导致数据帧的接收失败。

  ps:目前看来,巨型帧的概念和磁盘簇的概念有点点类似,将一个帧的大小由标准的1518Byte(1518/1024≈1.5KB)改为9K(9KB巨型帧/1.5KB=6倍),交换机处理包的数量降低,从而提升传输速度,但是因为巨型帧并非一个IEEE标准,所以各家厂商的巨型帧的大小可能也不是非常一致的,因此就有了我们民间的说法,应该把巨型帧关掉,但是当我们了解了巨型帧的原理后得出一个结论,如果都是同一厂商的交换机,网卡的话,开启巨型帧是有好处的,那么一般情况下,交换机每秒转发的包一般是多少个呢?

       不管怎么说,巨型帧是合乎时宜的。如果没有1500作为底线,巨型帧长的标准化进程会快很多。


  如果想了解这个,就必须知道包和帧的关系,这里面非常复杂,简单的理解就当1帧与1包是相同的吧,因为帧的结构比较复杂,这里就不多说了,那么普通的帧(包)大小大概是1.5KB,如果用HDSPEED的64KB区块测试虚拟盘速度为50MB/S,那么要达到1秒内传输50MB数据的流量,这一秒钟要转发多少个普通帧呢?

  50MB/S*1024÷(64KB/S÷1.5KB)一个64KB的数据约等于43个帧,50MB/S的传输速度,交换机需要每秒约转发1191个帧,也就是数据包。


  想了解更多存储产品需要合作与咨询搭建方案请联系官网上的在线客服,嘉华众力自2000年成立以来一直在网络存储、传输这方面积累、沉淀;经过多年发展与全新的品牌定位,( CEACENT )嘉华众力品牌已成为国内外极具实力的数据通讯产品及方案提供商,请关注嘉华众力官网:www.unicaca.com
 

文章材料部分来源于51CTO博客

15012962335