计算机网络中,巨型帧(英語:jumbo frames),又稱大型帧,是指有效负载超过IEEE 802.3标准所限制的1500字节的以太网帧[1]通常来说,巨型帧可以携带最多9000字节的有效负载,但也存在变化,因此需要谨慎使用该术语。许多吉比特以太网交换机和吉比特以太网网卡可以支持巨型帧。部分Fast Ethernet英语Fast Ethernet交换机和Fast Ethernet网卡也支持巨型帧。[2]

开端 编辑

每个接收到的以太网帧都需要网络硬件和软件处理。增加帧大小有助于用更少的負載传递更大量的数据,降低CPU使用率(主要是减少中断),以及通过减少需处理的帧来增加吞吐量和减少所发送帧的帧开销总量。

巨型帧最初是由Alteon WebSystems英语Alteon WebSystems在其ACEnic吉比特以太网适配器中推出。其他许多厂商也采纳了此大小。

采用 编辑

巨型帧或9000字节有效负载帧可以减少开销和CPU使用。[3]最近的工作也证明了,巨型帧对端到端TCP性能有着积极作用。[4] 巨型帧的存在可能对网络延迟有不利影响,尤其是在低带宽链路上。端到端连接使用的帧大小通常受到中间链路中的最小帧大小限制。802.5 Token Ring 可以使用4464字节的帧MTUFDDI可以4352字节,ATM可以9180字节,以及802.11可以传输7935字节MTU。IEEE 802.3以太网标准仅规定支持1500字节的帧MTU,总计1518字节的帧大小(1522字节及可选的IEEE 802.1Q VLAN/QoS标签)。

巨型帧所采用的9000字节有效负载大小来自Internet2联合工程团队与美国联邦政府网络的讨论。他们的建议已被其他所有国家研究和教育网络采纳。为满足这一强制性购买标准,制造商已将9000字节纳入常规的MTU大小,使巨型帧尺寸至少有9018/9022字节(不含或包含IEEE 802.1Q 字段)。[來源請求]大多数以太网设备可支持高达9216字节的巨型帧。[5]

错误检测 编辑

巨型帧在使用以太网帧中简单的CRC32错误检测时,更容易遭受未检测到的错误——因为更多的数据增加了几个错误互相抵消的概率。正因如此,已经有较高网络层上的额外机制被开发以改进错误检测。

IETF为巨型帧中避免数据完整性降低准备的解决方案是在SCTP传输(RFC 4960)和iSCSI(RFC 7143)中使用Castagnoli CRC polynomial。这个多项式的选择基于论文“32-Bit Cyclic Redundancy Codes for Internet Applications”中记录的成果。[6]Castagnoli多项式0x1EDC6F41达到了汉明距离HD=6,在超过一个以太网MTU(16,360位元数据字长)时,以及HD=4(114,663位元),当超过以太网MTU长度的9倍。相比以太网CRC标准的多项式,这为基于MTU大小的数据提供了额外两个比特的错误检测能力,而不牺牲在数据字长超过72kbits时的HD=4的能力。

通过为UDP和TCP传输内部使用CRC校验和而非简单的累加校验和,发生在NIC内部的错误也可以被检测到。由于简单求和时这些误差往往会自我消除,TCP和UDP都已被证明在检测总线特定比特错误上是无效的。在RFC 3309中完成的对真实数据注入模拟误差并对比的测试显示,这些错误有将近2%未被检测到。

采用巨型帧的主要障碍之一是,升级现有的以太网基础设施以避免降低检测错误的能力是困难的。在软件中完成的CRC计算必定会慢于TCP和UDP中那种简单的累加校验和实现。为克服这种性能损失,NIC卸载SCTP校验和计算是可能的,并且支持SSE4.2的CPU可以利用在向量数学指令集中扩展的CRC32指令。

在设计处理数据块的常规目的传输中,以及在设计携带SCSI数据的TCP传输中,支持Castagnoli CRC多项式都可以带来更好的错误检测,尽管使用增加以太网MTU的巨型帧会使错误检测显著减少。

配置 编辑

部分厂商在大小设置时包括头的大小,而部分厂商则不是。这即是最大帧大小(包括帧头)与最大传输单元/MTU (不包括帧头=最大的第三层包大小)。因此您可能会发现,必须在不同厂商的设备中配置不同的值,以使其设置匹配。[來源請求]在网络上同时存在配置为巨型帧的设备与未配置为巨型帧的设备可能导致网络性能问题。[7]

带宽效率 编辑

巨型帧可以减少开销以略微提升以太网效率,例如在IPv4上的TCP:[來源請求]

帧类型 MTU 第一层开销 第二层开销 第三层开销 第四层开销 有效负载大小 总计传输[8] 效率[9]
标准 1500 preamble英语Syncword

8字节

IPG英语Interpacket gap

12字节

帧头

14字节

FCS

4字节

IPv4头

20字节

TCP头

20字节

1460字节 1538字节 94.93%
Jumbo 9000 preamble

8字节

IPG

12字节

帧头

14字节

FCS

4字节

IPv4头

20字节

TCP头

20字节

8960字节 9038字节 99.14%
其他帧大小供参考
IEEE 802.11[10][11] 7935 PLCP前导和头

24字节

IPG

varies

帧头和安全ovhd

52字节

FCS

4字节

IPv4头

20字节

TCP头

20字节

7895字节 8015 + IPG大小字节 < 98.5%

小巨型帧 编辑

小巨型帧(Baby giant或baby jumbo frames;也称小巨人帧)是只比IEEE以太网标准所限定的体积稍大的以太网帧。[2]小巨型帧是为使IP/MPLS能通过以太网帧直接传输到以太网服务而准备。大多数实现要求将非巨型的用户帧封装为MPLS帧格式以使其可以被封装成适当的以太网帧格式(以太类型值为0x8847和0x8848)。[12]额外的MPLS和以太网头开销意味着支持1600字节的帧是运营商以太网英语Carrier Ethernet网络中的一项强制性要求。[13]

超巨型帧 编辑

超巨型帧Super jumbo frames,简称SJF)通常被认为是有效负载大小超过9000字节的帧。

部分过时 编辑

通过使CPU负载与帧大小无关,大段卸载(LSO)已经消除了巨型帧设计目的中的减少分组开销。[14]大接收卸载英语Large receive offload(LRO)——接收方的大段卸载,并不能完全消除每个分组导致的CPU开销,因此巨型帧对保证入站流量仍然有益。[來源請求]从带宽的角度来说,巨型帧仍然有用,因为它减少了非数据的带宽开销量。

参见 编辑

参考资料 编辑

  1. ^ Ethernet Jumbo Frames. Ethernet Alliance. 2009-11-12 [2015-06-18]. (原始内容存档于2019-02-06). 
  2. ^ 2.0 2.1 Jumbo/Giant Frame Support on Catalyst Switches Configuration Example. Cisco. [2011-08-22]. (原始内容存档于2014-01-11). Catalyst 3750/3560 Series switches support an MTU of 1998 bytes for all 10/100 interfaces 
  3. ^ Foong, A; H. Hum; J. Patwardhan; G. Regnier. TCP Performance Re-visited. In IEEE International Symposium on Performance of Systems and Software. 2003.  Authors list列表缺少|last2= (帮助)
  4. ^ Large MTUs and internet performance. 13th IEEE Conference on High Performance Switching and Routing (HPSR 2012). 2012. 
  5. ^ Scott Hogg, Jumbo Frames, Network World, 2013-03-06 [2013-08-05], (原始内容存档于2013-12-19), Most network devices support a jumbo frame size of 9216 bytes. 
  6. ^ "32-Bit Cyclic Redundancy Codes for Internet Applications"页面存档备份,存于互联网档案馆) by Philip Koopman, ECE Department & ICES, Carnegie Mellon University
  7. ^ What is the Jumbo Frame Supported by Switches and Adapters?. Netgear. [2013-08-05]. 
  8. ^ 总计传输大小是有效负载大小+所有开销大小的总和。
  9. ^ 效率是有效负载大小除以总传输大小。
  10. ^ Philip. Wireless Network Speed Tweaks. speedguide.net. October 20, 2016 [October 20, 2016]. (原始内容存档于2021-02-24). 
  11. ^ IEEE 802.11-2012 8.2.3 General frame format
  12. ^ RFC-3032, MPLS Label Stack Encoding
  13. ^ Ceragon, Jumbo Frames: The Microwave Perspective, Technical brief 互联网档案馆存檔,存档日期2012-09-15.
  14. ^ Coding Relic: Requiem for Jumbo Frames. 2011-12-07 [2011-12-07]. (原始内容存档于2012-01-10). 

外部链接 编辑