巨型帧

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

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

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

 采用 
巨型帧或9000字节有效负载帧可以减少开销和CPU使用。最近的工作也证明了，巨型帧对端到端TCP性能有着积极作用。 巨型帧的存在可能对网络延迟有不利影响，尤其是在低带宽链路上。端到端连接使用的帧大小通常受到中间链路中的最小帧大小限制。802.5 Token Ring 可以使用4464字节的帧MTU，FDDI可以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字节的巨型帧。

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

IETF为巨型帧中避免数据完整性降低准备的解决方案是在SCTP传输（RFC 4960）和iSCSI（RFC 7143）中使用Castagnoli CRC polynomial。这个多项式的选择基于论文“32-Bit Cyclic Redundancy Codes for Internet Applications”中记录的成果。"32-Bit Cyclic Redundancy Codes for Internet Applications"  by Philip Koopman, ECE Department & ICES, Carnegie Mellon UniversityCastagnoli多项式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校验和计算是可能的，并且支持的CPU可以利用在向量数学指令集中扩展的CRC32指令。

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

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

 带宽效率 
巨型帧可以减少开销以略微提升以太网效率，例如在IPv4上的TCP：
 帧类型 MTU  第一层开销 第二层开销 第三层开销 第四层开销 有效负载大小 总计传输总计传输大小是有效负载大小+所有开销大小的总和。  效率效率是有效负载大小除以总传输大小。 标准  1500  
8字节 
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.11IEEE 802.11-2012 8.2.3 General frame format  7935  PLCP前导和头
24字节 IPG
varies  帧头和安全ovhd
52字节 FCS
4字节 IPv4头
20字节 TCP头
20字节 7895字节 8015 + IPG大小字节 < 98.5%

 小巨型帧 
小巨型帧（Baby giant或baby jumbo frames；也称小巨人帧）是只比IEEE以太网标准所限定的体积稍大的以太网帧。小巨型帧是为使IP/MPLS能通过以太网帧直接传输到以太网服务而准备。大多数实现要求将非巨型的用户帧封装为MPLS帧格式以使其可以被封装成适当的以太网帧格式（以太类型值为0x8847和0x8848）。RFC-3032, MPLS Label Stack Encoding额外的MPLS和以太网头开销意味着支持1600字节的帧是网络中的一项强制性要求。Ceragon, Jumbo Frames: The Microwave Perspective, Technical brief 

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

 部分过时 
通过使CPU负载与帧大小无关，大段卸载（LSO）已经消除了巨型帧设计目的中的减少分组开销。（LRO）——接收方的大段卸载，并不能完全消除每个分组导致的CPU开销，因此巨型帧对保证入站流量仍然有益。从带宽的角度来说，巨型帧仍然有用，因为它减少了非数据的带宽开销量。

 参见 
  – IPv6中的大数据包
 最大傳輸單元（MTU）

 参考资料 

 外部链接 
 Jumbo Frames – Where to use it?
 Jumbo frames? , by Selina Lo, Alteon Networks, 2/23/1998 in NetworkWorld
 SJF Supercomputing 2005 Demo 
 Pushing up the Internet MTU
 IEEE 802.3as Frame Expansion Task Force 
 32-Bit Cyclic Redundancy Codes for Internet Applications 
 Need To Know: Jumbo Frames in Small Networks 
 How to Jumbo Frames in Archlinux 

Category:網路結構
Category:封包
Category:乙太網路