在計(jì)算機(jī)網(wǎng)絡(luò)中,巨型幀(英語:jumbo frames),又稱大型幀,是指有效負(fù)載超過IEEE 802.3標(biāo)準(zhǔn)所限制的1500字節(jié)的以太網(wǎng)幀。通常來說,巨型幀可以攜帶最多9000字節(jié)的有效負(fù)載,但也存在變化,因此需要謹(jǐn)慎使用該術(shù)語。許多吉比特以太網(wǎng)交換機(jī)和吉比特以太網(wǎng)網(wǎng)卡可以支持巨型幀。部分Fast Ethernet交換機(jī)和Fast Ethernet網(wǎng)卡也支持巨型幀。大多數(shù)國家級研究和教育網(wǎng)絡(luò)(諸如Internet2、National LambdaRail、ESnet、GéANT和AARNet)支持巨型幀,但大多數(shù)商業(yè)性互聯(lián)網(wǎng)服務(wù)供應(yīng)商則不支持。
巨型幀是幀長大于1522字節(jié)的以太網(wǎng)幀。這是一種廠商標(biāo)準(zhǔn)的超長幀格式,專門為千兆以太網(wǎng)而設(shè)計(jì)。巨型幀的長度各廠商有所不同,從9000字節(jié)~64000字節(jié)不等。采用巨型幀能夠令千兆以太網(wǎng)性能充分發(fā)揮,使數(shù)據(jù)傳輸效率提高50%~100%。在網(wǎng)絡(luò)存儲的應(yīng)用環(huán)境中,巨型幀更具有非同尋常的意義。
每個接收到的以太網(wǎng)幀都需要網(wǎng)絡(luò)硬件和軟件處理。增加幀大小有助于用更少的努力傳遞更大量的數(shù)據(jù),降低CPU使用率(主要是減少中斷),以及通過減少需處理的幀來增加吞吐量和減少所發(fā)送幀的幀開銷總量。巨型幀最初是由Alteon WebSystems在其ACEnic吉比特以太網(wǎng)適配器中推出。其他許多廠商也采納了此大小。但是,巨型幀尚未成為官方的IEEE 802.3以太網(wǎng)標(biāo)準(zhǔn)的一部分。
巨型幀或9000字節(jié)有效負(fù)載幀可以減少開銷和CPU使用。最近的工作也證明了,巨型幀對端到端TCP性能有著積極作用。巨型幀的存在可能對網(wǎng)絡(luò)延遲有不利影響,尤其是在低帶寬鏈路上。端到端連接使用的幀大小通常受到中間鏈路中的最小幀大小限制。802.5 Token Ring可以使用4464字節(jié)的幀MTU,F(xiàn)DDI可以4352字節(jié),ATM可以9180字節(jié),以及802.11可以傳輸7935字節(jié)MTU。IEEE 802.3以太網(wǎng)標(biāo)準(zhǔn)僅規(guī)定支持1500字節(jié)的幀MTU,總計(jì)1518字節(jié)的幀大小(1522字節(jié)及可選的IEEE 802.1QVLAN/QoS標(biāo)簽)。巨型幀所采用的9000字節(jié)有效負(fù)載大小來自Internet2聯(lián)合工程團(tuán)隊(duì)與美國聯(lián)邦政府網(wǎng)絡(luò)的討論。他們的建議已被其他所有國家研究和教育網(wǎng)絡(luò)采納。為滿足這一強(qiáng)制性購買標(biāo)準(zhǔn),制造商已將9000字節(jié)納入常規(guī)的MTU大小,使巨型幀尺寸至少有9018/9022字節(jié)(不含或包含IEEE 802.1Q字段)。大多數(shù)以太網(wǎng)設(shè)備可支持高達(dá)9216字節(jié)的巨型幀。
巨型幀在使用以太網(wǎng)幀中簡單的CRC32錯誤檢測時,更容易遭受未檢測到的錯誤——因?yàn)楦嗟臄?shù)據(jù)增加了幾個錯誤互相抵消的概率。正因如此,已經(jīng)有較高網(wǎng)絡(luò)層上的額外機(jī)制被開發(fā)以改進(jìn)錯誤檢測。IETF為巨型幀中避免數(shù)據(jù)完整性降低準(zhǔn)備的解決方案是在SCTP傳輸(RFC 4960)和iSCSI(RFC 7143)中使用Castagnoli CRC polynomial。這個多項(xiàng)式的選擇基于論文“32-Bit Cyclic Redundancy Codes for Internet Applications”中記錄的成果。Castagnoli多項(xiàng)式0x1EDC6F41達(dá)到了漢明距離HD=6,在超過一個以太網(wǎng)MTU(16,360位數(shù)據(jù)字長)時,以及HD=4(114,663比特),當(dāng)超過以太網(wǎng)MTU長度的9倍。相比以太網(wǎng)CRC標(biāo)準(zhǔn)的多項(xiàng)式,這為基于MTU大小的數(shù)據(jù)提供了額外兩個比特的錯誤檢測能力,而不犧牲在數(shù)據(jù)字長超過72kbits時的HD=4的能力。通過為UDP和TCP傳輸內(nèi)部使用CRC校驗(yàn)和而非簡單的累加校驗(yàn)和,發(fā)生在NIC內(nèi)部的錯誤也可以被檢測到。由于簡單求和時這些誤差往往會自我消除,TCP和UDP都已被證明在檢測總線特定比特錯誤上是無效的。在RFC 3309中完成的對真實(shí)數(shù)據(jù)注入模擬誤差并對比的測試顯示,這些錯誤有將近2%未被檢測到。采用巨型幀的主要障礙之一是,升級現(xiàn)有的以太網(wǎng)基礎(chǔ)設(shè)施以避免降低檢測錯誤的能力是困難的。在軟件中完成的CRC計(jì)算必定會慢于TCP和UDP中那種簡單的累加校驗(yàn)和實(shí)現(xiàn)。為克服這種性能損失,NIC卸載SCTP校驗(yàn)和計(jì)算是可能的,并且支持SSE4.2的CPU可以利用在向量數(shù)學(xué)指令集中擴(kuò)展的CRC32指令。在設(shè)計(jì)處理數(shù)據(jù)塊的常規(guī)目的傳輸中,以及在設(shè)計(jì)攜帶SCSI數(shù)據(jù)的TCP傳輸中,支持Castagnoli CRC多項(xiàng)式都可以帶來更好的錯誤檢測,盡管使用增加以太網(wǎng)MTU的巨型幀會使錯誤檢測顯著減少。