祝宗奎,羅正華
(1.上海貝爾股份有限公司 成都分公司,四川 成都 610041;2.成都大學 電子信息工程學院,四川 成都 610106)
在以太網中,數據幀發送方式是一個幀接著一個幀發送的,網絡設備和組件在接收到一個幀之后,需要一段短暫的時間來恢復,并為接收下一個幀做準備.幀間隙是相鄰兩幀之間的時間間隔(Inter Frame Gap,IFG),按規程要求,以太網數據幀在網絡介質中傳輸時需要遵循一定的機制,例如載波偵聽多路訪問/沖突檢測(CSMA/CD)介質訪問控制機制規定:以太網在傳輸數據幀時,兩幀之間必須等待一定的時間間隔,以提高沖突檢測算法的公平性[1-3].因此,所有想要發送數據的設備在當前幀傳輸完畢之后,在它們試圖再次發送數據之前都必須等待相同的時間.從應用角度考慮,最小幀間隙是以太網在介質訪問控制層發送方向上的一個指標,在全雙工模式下,其作用是控制發送端的速率,使接收端有充裕的時間來接收和處理中斷.
在以太網線路上,數據總是以比特流的形式傳輸的[4].在這個比特流中,以太網幀間隙的示意如圖1 所示.

圖1 以太網幀間隙示意圖
需說明的是,幀間隙指的是一段時間,而不是距離,其單位通常為微秒μs 或納秒ns.在以太網中,最小幀間隙一般定義為96 bit,對應12 Byte.例如,在速率為10 Mbps 的以太網段上,對應的時間間隔為9.6 μs;100 Mbps 以太網,對應960 ns;1000 Mbps以太網,對應96 ns.總之,不論應用于何種速率的以太網,兩幀之間最少需要保證96 bit 間隙.

圖2 測試用例1 示意圖
此外,由于以太網是異步工作的,故發送端和接收端各自使用本地時鐘工作,兩端不能做到完全同頻,如果頻率偏差較大,則會導致丟包現象發生[5].參考圖2 所示測試用例,假設時鐘1 快于時鐘2,那么在設備2 上,接收速度(取決于設備1 的發送時鐘)將快于轉發速度(取決于設備2 的發送時鐘),一旦接收緩存堆積滿了就將造成丟包.這時,在設備2 上可以通過減小幀間隙來加快其轉發有效數據幀的速度,從而使得轉發速度能夠跟上接收速度.相應的,在設備1 上可以通過增大幀間隙,使發送端的有效速度減小,可以解決因速度過快而產生的丟包問題.
典型的以太網幀格式的定義如圖3 所示.

圖3 以太網幀格式定義示意圖
幀格式中所包含的字段為:前導碼(Preamble),包括同步碼(用來使局域網中的所有節點同步),7 Byte;幀開始符(SFD),標明下一個為目的MAC 字段,1 Byte;目的MAC 地址(DestMAC),接收端的MAC 地址,6 Byte;源MAC 地址(SourceMAC),發送端的MAC 地址,6 Byte;VLAN 標簽(Tag),支持802.1Q VLAN 協議幀時,需插入額外的VLAN 標簽,4 Byte;類型或長度(TOS),上層數據包協議的類型,或數據字段的長度,2 Byte;數據(Data),被封裝的數據包/凈負荷,46 ~1 500 Byte;幀校驗序列(FCS),錯誤檢驗,4 Byte.
以太網幀是OSI 7 層參考模型中數據鏈路層的封裝,來自網絡層的數據包被加上幀頭和幀尾,構成可由數據鏈路層識別的數據幀.雖然幀頭和幀尾所用的字節數是固定不變的,但根據被封裝數據包大小的不同,以太網幀的長度也隨之變化,變化的范圍是64 ~1 518 Byte.典型的幀長度計算公式為,

當支持802.1Q VLAN 功能時,需要額外增加一個4 Byte 的VLAN 標簽.相應的,幀長度變化的范圍是68 ~1 522 Byte.當支持802.1ad Q-In-Q 功能時,需要額外再增加一個VLAN 標簽,相應的幀長度也會產生變化.
在以太網中,幀間隙并不傳送有效的數據或者凈負荷,所以往往被用戶所忽視.但是,在實際工程應用中,尤其在評估以太網帶寬利用率、吞吐量等性能相關測試用例中,幀間隙往往又發揮著不可忽視的作用,特別是在一些工程故障分析中,幀間隙有時候也會成為關鍵因素.
以太網以最小幀間隙連續發送數據幀情況下的速率稱之為線速,具體如圖4 所示.

圖4 以太網線速示意圖
為便于計算,理論上一般假定所有的數據包長度相同.假定被封裝的數據包長度為Packet-len(不小于46 Byte),鏈路層速率為MaxTxBitRate(例如100 Mbps 以太網對應的速率為100 000 000 bit/s),則在線速情況下,以太網幀發送速率FPS(Frame per second)的最大值可按以下式計算,

可以看出,對于一定速率的線路、一定長度的數據包,以太網線速對應的最大幀發送速率FPS(Frame/s)直接受最小幀間隙長度(Byte)的影響.
相應地,線速情況下數據包的最大吞吐量Throughput(Frame/s)為,
Throughput=FPS×Packet-len
在基于SDH 的多業務傳送平臺(MSTP)設備中,以太網數據報文需要先映射到合適的SDH 幀結構中,才能在SDH 網絡中傳輸.所謂的EOS(Ethernet Over SDH)技術,就是直接將本地網絡設備傳輸的以太網幀先按照某種封裝協議(GFP,LAPS,PPP/HDLC)封裝,再映射到SDH 的幀結構中,然后通過SDH 傳輸線路實現點對點的傳輸.
在MSTP 設備中,以太網幀發送速率FPS 的計算主要受以下條件約束:
1)當本地接入的以太網線路帶寬不受限時,瓶頸在SDH 通道側.
例如,千兆以太網業務接入3 ×VC3(3 ×48 384 000 bps 近似于155 Mbps)通道,這時,以太網線速1 000 Mbps 大于SDH 通道帶寬,瓶頸在SDH 通道側.以太網幀在進入VC3 容器之前,要進行GFP 封裝,會去掉前導碼幀、開始符及幀間隙,并增加GFP 相關開銷,此時FPS 可按下式計算,

ITU-T G.7041(V0.4)標準規定了GFP 封裝的格式,包括:幀頭(Core Header)、凈荷頭(Payload Header)、用戶凈荷信息(Client Payload Information)和凈荷幀校驗序列FCS.
由于不同通訊設備制造商對GFP 協議的實現不盡相同;因此在本測試用例使用的設備中,GFP 封裝開銷(GFP Overhead)長度為8 Byte,凈荷幀校驗序列(FCS)長度為4 Byte.那么,當數據包長度為64 Byte 時,


匯總該數據包各長度的吞吐量理論計算如表1所示.

表1 吞吐量理論計算表
經由數據測試儀表,采用RFC2544 測試用例序列,對應吞吐量測試報告如表2 所示.可以看到,實測結果數值與理論計算值基本吻合.

表2 吞吐量測試報告表
仍以數據包長64 Byte 為例,從表2 可以看到,對應的實測吞吐量為122.137 Mbps.這個數值在4組數據中偏小,也大大低于通道帶寬3 ×VC3(155 Mbps).這是因為表2 中吞吐量的數值是按下式計算的,

計算中并沒有考慮以太網幀間隙IFG(12)、前導碼(7)和幀開始符(1)的因素,當把這3 個因素包含到算式中時,

這個數值就是表2 中帶寬利用率的來源:16.031%的帶寬利用率,對應帶寬160.310 Mbps,其在測試結果的4 組數據中反而是最大的.
這個結果說明:在本測試用例中,當幀長為64 Byte 時,線路帶寬利用率高.由于幀間隙并不傳送有效的凈荷,比重較大的幀間隙占用了過多的帶寬,對凈荷而言,吞吐量效率反而是最低的.由此可見,越小的幀由于前導碼和幀間隙的原因,其傳輸效率就越低.
另外需要注意的是,當幀長為64 Byte 時,16.031%的帶寬利用率,對應帶寬160.310 Mbps,超出了SDH 側接入通道帶寬3 ×VC3(155 Mbps).這個差別正好體現了以太網與SDH 處理以太網幀時的差別:以太網需要為每個幀插入前導碼、幀開始符和幀間隙,共20 Byte 開銷;SDH 則會去掉幀頭、幀間隙,并增加GFP 相關的開銷,共12 Byte.在通道允許通過的發幀速率FPS 相同的情況下,正是這兩部分開銷的差異,導致了帶寬計算值的差異.
2)當SDH 通道側帶寬不受限時,瓶頸在以太網線路側.
例如,百兆以太網業務接入3 × VC3(155 Mbps)通道,而以太網線速100 Mbps 小于SDH 通道帶寬,瓶頸在以太網線路側.這時,需要按照以太網的特性來計算幀發送速率FPS,

顯然,在上述計算過程中,顯式地考慮了幀間隙因素的影響.由于SDH 通道帶寬大于以太網線路速率,以太網側設備可以按線速發送數據幀,而不會產生丟包,吞吐量可以達到100%.
幀間隙是以太網技術中一個較為簡單的概念,因其長度并不參與以太網幀長度的計算,往往為人們所忽視.事實上,以太網的幀間隙在工程測量中能發揮較大的作用,可以對工程實踐活動產生積極的影響.
[1]IEEE Computer Society.IEEE 802.3,Carrier sense multiple access with collision detection(CSMA/CD)access method and physical layer specifications[S].New York,USA:the LAN/MAN Standards Committee,2005.
[2]Charles E.Practical networking with ethernet[M].Boston,MA,USA:International Thomson Computer Press,1997.
[3]Thomas A M.IP fundamentals:what everyone needs to know about addressing & routing[M].Englewood Cliff,NJ,USA:Prentice-Hall,1999.
[4]IEEE Computer Society.IEEE 802.1Q,Virtual bridged local area network[S].New York,USA:the LAN/MAN Standards Committee,2003.
[5]Bradner S,McQuaid J.Benchmarking methodology for network interconnect devices[EB/OL].http://tools.ietf.org/html/rfc2544.[1999-03-01].