祝宗奎,羅正華
(1.上海貝爾股份有限公司 成都分公司,四川 成都 610041;2.成都大學 電子信息工程學院,四川 成都 610106)
在以太網(wǎng)中,數(shù)據(jù)幀發(fā)送方式是一個幀接著一個幀發(fā)送的,網(wǎng)絡設備和組件在接收到一個幀之后,需要一段短暫的時間來恢復,并為接收下一個幀做準備.幀間隙是相鄰兩幀之間的時間間隔(Inter Frame Gap,IFG),按規(guī)程要求,以太網(wǎng)數(shù)據(jù)幀在網(wǎng)絡介質(zhì)中傳輸時需要遵循一定的機制,例如載波偵聽多路訪問/沖突檢測(CSMA/CD)介質(zhì)訪問控制機制規(guī)定:以太網(wǎng)在傳輸數(shù)據(jù)幀時,兩幀之間必須等待一定的時間間隔,以提高沖突檢測算法的公平性[1-3].因此,所有想要發(fā)送數(shù)據(jù)的設備在當前幀傳輸完畢之后,在它們試圖再次發(fā)送數(shù)據(jù)之前都必須等待相同的時間.從應用角度考慮,最小幀間隙是以太網(wǎng)在介質(zhì)訪問控制層發(fā)送方向上的一個指標,在全雙工模式下,其作用是控制發(fā)送端的速率,使接收端有充裕的時間來接收和處理中斷.
在以太網(wǎng)線路上,數(shù)據(jù)總是以比特流的形式傳輸?shù)模?].在這個比特流中,以太網(wǎng)幀間隙的示意如圖1 所示.
圖1 以太網(wǎng)幀間隙示意圖
需說明的是,幀間隙指的是一段時間,而不是距離,其單位通常為微秒μs 或納秒ns.在以太網(wǎng)中,最小幀間隙一般定義為96 bit,對應12 Byte.例如,在速率為10 Mbps 的以太網(wǎng)段上,對應的時間間隔為9.6 μs;100 Mbps 以太網(wǎng),對應960 ns;1000 Mbps以太網(wǎng),對應96 ns.總之,不論應用于何種速率的以太網(wǎng),兩幀之間最少需要保證96 bit 間隙.
圖2 測試用例1 示意圖
此外,由于以太網(wǎng)是異步工作的,故發(fā)送端和接收端各自使用本地時鐘工作,兩端不能做到完全同頻,如果頻率偏差較大,則會導致丟包現(xiàn)象發(fā)生[5].參考圖2 所示測試用例,假設時鐘1 快于時鐘2,那么在設備2 上,接收速度(取決于設備1 的發(fā)送時鐘)將快于轉發(fā)速度(取決于設備2 的發(fā)送時鐘),一旦接收緩存堆積滿了就將造成丟包.這時,在設備2 上可以通過減小幀間隙來加快其轉發(fā)有效數(shù)據(jù)幀的速度,從而使得轉發(fā)速度能夠跟上接收速度.相應的,在設備1 上可以通過增大幀間隙,使發(fā)送端的有效速度減小,可以解決因速度過快而產(chǎn)生的丟包問題.
典型的以太網(wǎng)幀格式的定義如圖3 所示.
圖3 以太網(wǎng)幀格式定義示意圖
幀格式中所包含的字段為:前導碼(Preamble),包括同步碼(用來使局域網(wǎng)中的所有節(jié)點同步),7 Byte;幀開始符(SFD),標明下一個為目的MAC 字段,1 Byte;目的MAC 地址(DestMAC),接收端的MAC 地址,6 Byte;源MAC 地址(SourceMAC),發(fā)送端的MAC 地址,6 Byte;VLAN 標簽(Tag),支持802.1Q VLAN 協(xié)議幀時,需插入額外的VLAN 標簽,4 Byte;類型或長度(TOS),上層數(shù)據(jù)包協(xié)議的類型,或數(shù)據(jù)字段的長度,2 Byte;數(shù)據(jù)(Data),被封裝的數(shù)據(jù)包/凈負荷,46 ~1 500 Byte;幀校驗序列(FCS),錯誤檢驗,4 Byte.
以太網(wǎng)幀是OSI 7 層參考模型中數(shù)據(jù)鏈路層的封裝,來自網(wǎng)絡層的數(shù)據(jù)包被加上幀頭和幀尾,構成可由數(shù)據(jù)鏈路層識別的數(shù)據(jù)幀.雖然幀頭和幀尾所用的字節(jié)數(shù)是固定不變的,但根據(jù)被封裝數(shù)據(jù)包大小的不同,以太網(wǎng)幀的長度也隨之變化,變化的范圍是64 ~1 518 Byte.典型的幀長度計算公式為,
當支持802.1Q VLAN 功能時,需要額外增加一個4 Byte 的VLAN 標簽.相應的,幀長度變化的范圍是68 ~1 522 Byte.當支持802.1ad Q-In-Q 功能時,需要額外再增加一個VLAN 標簽,相應的幀長度也會產(chǎn)生變化.
在以太網(wǎng)中,幀間隙并不傳送有效的數(shù)據(jù)或者凈負荷,所以往往被用戶所忽視.但是,在實際工程應用中,尤其在評估以太網(wǎng)帶寬利用率、吞吐量等性能相關測試用例中,幀間隙往往又發(fā)揮著不可忽視的作用,特別是在一些工程故障分析中,幀間隙有時候也會成為關鍵因素.
以太網(wǎng)以最小幀間隙連續(xù)發(fā)送數(shù)據(jù)幀情況下的速率稱之為線速,具體如圖4 所示.
圖4 以太網(wǎng)線速示意圖
為便于計算,理論上一般假定所有的數(shù)據(jù)包長度相同.假定被封裝的數(shù)據(jù)包長度為Packet-len(不小于46 Byte),鏈路層速率為MaxTxBitRate(例如100 Mbps 以太網(wǎng)對應的速率為100 000 000 bit/s),則在線速情況下,以太網(wǎng)幀發(fā)送速率FPS(Frame per second)的最大值可按以下式計算,
可以看出,對于一定速率的線路、一定長度的數(shù)據(jù)包,以太網(wǎng)線速對應的最大幀發(fā)送速率FPS(Frame/s)直接受最小幀間隙長度(Byte)的影響.
相應地,線速情況下數(shù)據(jù)包的最大吞吐量Throughput(Frame/s)為,
Throughput=FPS×Packet-len
在基于SDH 的多業(yè)務傳送平臺(MSTP)設備中,以太網(wǎng)數(shù)據(jù)報文需要先映射到合適的SDH 幀結構中,才能在SDH 網(wǎng)絡中傳輸.所謂的EOS(Ethernet Over SDH)技術,就是直接將本地網(wǎng)絡設備傳輸?shù)囊蕴W(wǎng)幀先按照某種封裝協(xié)議(GFP,LAPS,PPP/HDLC)封裝,再映射到SDH 的幀結構中,然后通過SDH 傳輸線路實現(xiàn)點對點的傳輸.
在MSTP 設備中,以太網(wǎng)幀發(fā)送速率FPS 的計算主要受以下條件約束:
1)當本地接入的以太網(wǎng)線路帶寬不受限時,瓶頸在SDH 通道側.
例如,千兆以太網(wǎng)業(yè)務接入3 ×VC3(3 ×48 384 000 bps 近似于155 Mbps)通道,這時,以太網(wǎng)線速1 000 Mbps 大于SDH 通道帶寬,瓶頸在SDH 通道側.以太網(wǎng)幀在進入VC3 容器之前,要進行GFP 封裝,會去掉前導碼幀、開始符及幀間隙,并增加GFP 相關開銷,此時FPS 可按下式計算,
ITU-T G.7041(V0.4)標準規(guī)定了GFP 封裝的格式,包括:幀頭(Core Header)、凈荷頭(Payload Header)、用戶凈荷信息(Client Payload Information)和凈荷幀校驗序列FCS.
由于不同通訊設備制造商對GFP 協(xié)議的實現(xiàn)不盡相同;因此在本測試用例使用的設備中,GFP 封裝開銷(GFP Overhead)長度為8 Byte,凈荷幀校驗序列(FCS)長度為4 Byte.那么,當數(shù)據(jù)包長度為64 Byte 時,
匯總該數(shù)據(jù)包各長度的吞吐量理論計算如表1所示.
表1 吞吐量理論計算表
經(jīng)由數(shù)據(jù)測試儀表,采用RFC2544 測試用例序列,對應吞吐量測試報告如表2 所示.可以看到,實測結果數(shù)值與理論計算值基本吻合.
表2 吞吐量測試報告表
仍以數(shù)據(jù)包長64 Byte 為例,從表2 可以看到,對應的實測吞吐量為122.137 Mbps.這個數(shù)值在4組數(shù)據(jù)中偏小,也大大低于通道帶寬3 ×VC3(155 Mbps).這是因為表2 中吞吐量的數(shù)值是按下式計算的,
計算中并沒有考慮以太網(wǎng)幀間隙IFG(12)、前導碼(7)和幀開始符(1)的因素,當把這3 個因素包含到算式中時,
這個數(shù)值就是表2 中帶寬利用率的來源:16.031%的帶寬利用率,對應帶寬160.310 Mbps,其在測試結果的4 組數(shù)據(jù)中反而是最大的.
這個結果說明:在本測試用例中,當幀長為64 Byte 時,線路帶寬利用率高.由于幀間隙并不傳送有效的凈荷,比重較大的幀間隙占用了過多的帶寬,對凈荷而言,吞吐量效率反而是最低的.由此可見,越小的幀由于前導碼和幀間隙的原因,其傳輸效率就越低.
另外需要注意的是,當幀長為64 Byte 時,16.031%的帶寬利用率,對應帶寬160.310 Mbps,超出了SDH 側接入通道帶寬3 ×VC3(155 Mbps).這個差別正好體現(xiàn)了以太網(wǎng)與SDH 處理以太網(wǎng)幀時的差別:以太網(wǎng)需要為每個幀插入前導碼、幀開始符和幀間隙,共20 Byte 開銷;SDH 則會去掉幀頭、幀間隙,并增加GFP 相關的開銷,共12 Byte.在通道允許通過的發(fā)幀速率FPS 相同的情況下,正是這兩部分開銷的差異,導致了帶寬計算值的差異.
2)當SDH 通道側帶寬不受限時,瓶頸在以太網(wǎng)線路側.
例如,百兆以太網(wǎng)業(yè)務接入3 × VC3(155 Mbps)通道,而以太網(wǎng)線速100 Mbps 小于SDH 通道帶寬,瓶頸在以太網(wǎng)線路側.這時,需要按照以太網(wǎng)的特性來計算幀發(fā)送速率FPS,
顯然,在上述計算過程中,顯式地考慮了幀間隙因素的影響.由于SDH 通道帶寬大于以太網(wǎng)線路速率,以太網(wǎng)側設備可以按線速發(fā)送數(shù)據(jù)幀,而不會產(chǎn)生丟包,吞吐量可以達到100%.
幀間隙是以太網(wǎng)技術中一個較為簡單的概念,因其長度并不參與以太網(wǎng)幀長度的計算,往往為人們所忽視.事實上,以太網(wǎng)的幀間隙在工程測量中能發(fā)揮較大的作用,可以對工程實踐活動產(chǎn)生積極的影響.
[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].