巨型幀

巨型幀

計算機網路中,巨型幀(英語:jumbo frames),又稱大型幀,是指有效負載超過IEEE 802.3標準所限制的1500位元組的乙太網幀。通常來說,巨型幀可以攜帶最多9000位元組的有效負載,但也存在變化,因此需要謹慎使用該術語。許多吉比特乙太網交換機和吉比特乙太網網卡可以支持巨型幀。部分Fast Ethernet交換機和Fast Ethernet網卡也支持巨型幀。大多數國家級研究和教育網路(諸如Internet2、National LambdaRail、ESnet、GÉANT和AARNet)支持巨型幀,但大多數商業性網際網路服務供應商則不支持。

基本介紹

  • 中文名:巨型幀
  • 外文名:Jumbo Frames
  • 領域:計算機數據通訊
  • 又稱:大型幀
  • 學科計算機網路
  • 屬性:乙太網幀
概念,開端,採用,錯誤檢測,配置,頻寬效率,小巨型幀,超巨型幀,部分過時,優點,缺點,

概念

巨型幀是幀長大於1522位元組的乙太網幀。這是一種廠商標準的超長幀格式,專門為千兆乙太網而設計。巨型幀的長度各廠商有所不同,從9000位元組~64000位元組不等。採用巨型幀能夠令千兆乙太網性能充分發揮,使數據傳輸效率提高50%~100%。在網路存儲的套用環境中,巨型幀更具有非同尋常的意義。

開端

每個接收到的乙太網幀都需要網路硬體和軟體處理。增加幀大小有助於用更少的努力傳遞更大量的數據,降低CPU使用率(主要是減少中斷),以及通過減少需處理的幀來增加吞吐量和減少所傳送幀的幀開銷總量。
巨型幀最初是由Alteon WebSystems在其ACEnic吉比特乙太網適配器中推出。其他許多廠商也採納了此大小。但是,巨型幀尚未成為官方的IEEE 802.3乙太網標準的一部分。

採用

巨型幀或9000位元組有效負載幀可以減少開銷和CPU使用。最近的工作也證明了,巨型幀對端到端TCP性能有著積極作用。巨型幀的存在可能對網路延遲有不利影響,尤其是在低頻寬鏈路上。端到端連線使用的幀大小通常受到中間鏈路中的最小幀大小限制。802.5 Token Ring可以使用4464位元組的幀MTUFDDI可以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:
幀類型MTU第一層開銷第二層開銷第三層開銷第四層開銷有效負載大小總計傳輸效率
標準
1500
preamble
8位元組
IPG
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%
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)。額外的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連線的網路中使用。支持巨型幀需要新的硬體,這也導致了今天巨型幀現在主要在一些特殊環境使用,比如在伺服器場用於數據的傳輸。

相關詞條

熱門詞條

聯絡我們