在计算机网络中,巨型帧(英语:jumbo frames),又称大型帧,是指有效负载超过IEEE 802.3标准所限制的1500字节的以太网帧。通常来说,巨型帧可以携带最多9000字节的有效负载,但也存在变化,因此需要谨慎使用该术语。许多
吉比特以太网交换机和吉比特以太网网卡可以支持巨型帧。部分
Fast Ethernet交换机和Fast Ethernet网卡也支持巨型帧。大多数国家级研究和教育网络(诸如
Internet2、National LambdaRail、ESnet、
GÉANT和
AARNet)支持巨型帧,但大多数商业性互联网服务供应商则不支持。
概念
巨型帧是帧长大于1522字节的以太网帧。这是一种厂商标准的超长帧格式,专门为千兆以太网而设计。巨型帧的长度各厂商有所不同,从9000字节~64000字节不等。采用巨型帧能够令千兆以太网性能充分发挥,使
数据传输效率提高50%~100%。在网络存储的应用环境中,巨型帧更具有非同寻常的意义。
开端
每个接收到的以太网帧都需要网络硬件和软件处理。增加帧大小有助于用更少的努力传递更大量的数据,降低CPU使用率(主要是减少中断),以及通过减少需处理的帧来增加吞吐量和减少所发送帧的帧开销总量。
巨型帧最初是由Alteon WebSystems在其ACEnic
吉比特以太网适配器中推出。其他许多厂商也采纳了此大小。但是,巨型帧尚未成为官方的IEEE 802.3以太网标准的一部分。
采用
巨型帧或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.1QVLAN/
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”中记录的成果。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(不包括帧头=最大的第三层包大小)。因此您可能会发现,必须在不同厂商的设备中配置不同的值,以使其设置匹配。在网络上同时存在配置为巨型帧的设备与未配置为巨型帧的设备可能导致网络性能问题。
带宽效率
巨型帧可以减少开销以略微提升以太网效率,例如在IPv4上的TCP:
小巨型帧
小巨型帧(Baby giant或baby jumbo frames;也称小巨人帧)是只比IEEE以太网标准所限定的体积稍大的以太网帧。小巨型帧是为使IP/
MPLS能通过以太网帧直接传输到以太网服务而准备。大多数实现要求将非巨型的用户帧封装为MPLS帧格式以使其可以被封装成适当的
以太网帧格式(以太类型值为0x8847和0x8848)。额外的MPLS和以太网头开销意味着支持1600字节的帧是运营商以太网网络中的一项强制性要求。
超巨型帧
超巨型帧(Super jumbo frames,简称SJF)通常被认为是
有效负载大小超过9000字节的帧。
部分过时
通过使CPU负载与帧大小无关,大段卸载(LSO)已经消除了巨型帧设计目的中的减少分组开销。大接收卸载(LRO)——接收方的大段卸载,并不能完全消除每个分组导致的CPU开销,因此巨型帧对保证入站流量仍然有益。从带宽的角度来说,巨型帧仍然有用,因为它减少了非数据的带宽开销量。
优点
巨型帧把以太网的最大帧长扩展到了9K,几乎把以前的最大帧长扩展了6倍。加大帧长的好处在于,减少了网络中数据包的个数,减轻了网络设备处理包头的额外开销。经过测试,在传统的千兆以太网中,每秒大约有81,000个数据包流经网络,而在使用了巨型帧的网络中,这个数字减少为14,000。在万兆网络中,这个对比更加强烈,标准的网络中帧长为标准1518的帧每秒有812,000个,而采用了巨型帧技术的网络上仅仅只有14,000个。大量减少的帧数目必将带来性能的提高。这样显著的性能提高,引起了各个厂商的兴趣。无论是系统吞吐量还是对CPU的占用率,相比
传统以太网的帧来说,巨型帧都占有极大的优势。
缺点
可能会成为
融合网络的障碍。如果人们在网络上传送语音或其他对延迟敏感的内容,不需要有妨碍这些对延迟敏感数据的超长帧传输。比如,超长帧会造成延迟,一旦一个‘大家伙’在线路上传送,它会较长时间占用线路,阻止其他人使用线路,从而造成延迟。
帧越长意味着如果丢失一帧
数据,则是一次更为严重的网络事件,而重新传送丢失的数据包成为更为耗费时间的工作。网络中的每种东西都必须支持超长帧,超长帧才能使用。
Internet连接不支持超长帧:一个长度超过Internet连接所支持长度的帧将在发送前被分段,从而大大降低了Internet连接的性能和可靠性。这导致需要每一个工作站都必须知道哪个数据包传送到本地网络,哪个数据包传送到Internet。为了检测线路上的最大数据包长度,IP执行MTU路由发现算法,但是,这不是标准化的作法,并且,由于拒绝服务攻击,许多防火墙不允许与这种算法有关的ICMP数据包通过。因此,超长帧不能在与Internet连接的网络中使用。支持巨型帧需要新的硬件,这也导致了今天巨型帧主要在一些特殊环境使用,比如在服务器场用于数据的传输。