于紅增,陳海小
(1.中國電子科技集團公司第五十四研究所,河北石家莊050081;2.中國衛星海上測控部,江蘇無錫214431)
在QoS保證措施中,流量監管(Committed Access Rate,CAR)、流量整形(Generic Traffic Shaping,GTS)和端口限速(Line Rate,LR)都屬于速率限制類型[1,2],LR可以限制一個端口流出方向信息的總速率,在企業網和專用網絡中常用于高速接口連接低速鏈路(如衛通鏈路或微波鏈路)的情形。公開出版物和廠商設備資料大都介紹了這類技術的工作機理和理論效果,只有文獻[1]對QoS測試方法進行了原理性介紹,鮮見關于實際效果的文獻,在實際使用中依據理論效果設計的QoS保證措施往往會引起不少問題,分析處理起來也很困難。
通信專網主要用于實時數據、話音和圖像業務的綜合傳輸與交換,要求最小包長業務的端到端丟包率低于0.1%。系統調試中發現路由器廣域網出口配置了端口限速后,會發生嚴重丟包現象,丟包率達到1%;而去掉端口限速配置后丟包率為零。這與端口限速的理論效能相矛盾,需要對丟包機理進行測試、解決這個問題,并對類似問題積累處理經驗。
LR基于令牌桶進行流量測量和控制[1,3],處理過程如圖1所示。
令牌桶參數包括承諾突發尺寸(Committed Burst Size,CBS)和承諾信息速率(Committed Information Rate,CIR),需要用戶指定。CBS的值為cbs,單位為byte,稱為令牌桶的大小或令牌桶的桶深,令牌桶初始狀態是充滿令牌的,允許一次性轉發cbs的信息。路由交換設備的某個端口上配置LR后,則所有從該端口發送的報文都要經過LR的令牌桶進行測量。如果令牌桶中有足夠的令牌,則報文可以發送,同時消耗與報文等量的令牌;如果令牌桶中的令牌不足,則報文入QoS隊列進行擁塞管理,這一過程不消耗令牌。

圖1 LR的基本處理過程
無論是否有報文轉發,每間隔ΔT時間LR向令牌桶投放相當于cir×ΔT÷8 byte的令牌,這里cir為CIR的值,單位為bps,ΔT單位為s,令牌桶溢出后丟棄多余令牌。
通信專網由多個外圍站局域網、1個中心站局域網和廣域網組成,如圖2所示。廣域網基于路由器和衛通鏈路構建,路由器接口為快速以太網(FastEthernet,FE)類型,衛通信道速率3 072 kbps,實測吞吐量不小于3 072 kbps。業務數據速率理論值為2.2 Mbps,滿足網絡輕載運行條件。為了防止突發數據在衛通信道設備上的擁塞和丟包,在路由器連接衛通設備的端口上采用了端口限速技術,以平滑路由器輸出流量波形,也便于從網管系統上監控端口的丟包和隊列使用情況[4-6]。

圖2 通信專網組網示意
通信專網正是在路由器上配置了端口限速才導致路由器丟包,需要對端口限速的效果進行測試評估,并提出改進的措施。
通信專網業務系統采用時間驅動方式。設計要求外圍站數據采集終端每6.25 ms產生固定長度字節的原始數據給本地的區域處理系統。區域處理系統每處理完這個采集終端的4次原始數據,立即將處理結果封裝成一個UDP報文上報中心站集中控制系統,理論上每隔25 ms上報一次。
外圍站采用UDP協議向中心站上報,每次發送數據的字節數為6 700 byte,IP分片機制將其打包為5個連續的IP分片。因此業務數據在時間上具有周期的突發特性[7-9]。
基于這些,可以猜想配置了端口限速之后的丟包原因不外乎2個:①端口限速的實現效果不符合預期;②業務報文隨機性導致的鏈路瞬時擁塞。下面首先排查第2個原因。
如果真的是因為業務報文隨機性導致了鏈路瞬時擁塞,那么UDP包間隔一定具有相當程度的隨機性,以至于相當比例的UDP報文間隔小于25 ms。
通過wireshark抓包,獲取到數據采集終端上報區域處理系統的數據包,對其進行包間隔統計,結果證明了這個猜測。數據采集終端小于2 ms間隔的報文比例高達74.30%,比設計要求6.25 ms小很多;而且還有4%的報文間隔超過了40 ms。這必然導致區域處理系統上報中心站數據時間間隔的動態范圍過大,使得衛通鏈路從亞秒量級上看部分時段的流量超過了鏈路的傳輸能力,引起了瞬時擁塞,影響服務質量。
既然已經確定了第2個原因是導致端口限速丟包的根源,那么還需要測出端口允許多大的數據突發量,即測出端口限速對應的隊列緩存有多大,以便對數據采集終端提出定時精度要求。
對于令牌桶工作參數測試來說,主要是驗證經過設備QoS處理之后的流量是否降到了cir所限定的值,令牌桶的實際尺寸是否符合設備的配置,經過重新標記的報文是否被正確標記,這些都和令牌桶的機制有關。
2.1.1 考慮設計輸入流量速率v
v 應高于 cir,且不超過設備的轉發性能[1,2]。
2.1.2 輸出流量速率的測試
必須等待令牌桶第1次令牌耗盡之后再去統計輸出速率,在此之前設備轉發的速率跟隨輸入速率變化,是高于 cir的[1]。
2.1.3 令牌桶的大小
令牌桶大小的測試建立在cir測試完成的前提下,如果cir不準確,測得的令牌桶大小也將不準。
以超過cir的速率v發送報文并開始計時,令牌桶中的令牌以v-cir的速率逐漸消耗掉。在t1時刻第1次出現令牌不足,設備轉發報文的速率降至cir,直到發送結束時刻t2。整個過程如圖3所示。

圖3 令牌桶大小和LR緩存大小測試原理
假定N為接收到的報文總字節數,根據令牌桶的工作原理不難得出:cbs=N-t2×cir÷8,這里cir的單位為bps,t2單位為s。
需要指出,有些QoS特性僅有報文IP頭以上部分消耗令牌,有些是鏈路層及以上部分均消耗令牌。因此通過比較實測的cir值(要結合包長參數)和配置的cir值還可以判斷出以太網端口QoS工作在OSI模型的第幾層。因此,上述公式中令牌桶大小cbs需要和cir在OSI模型同一層上進行計算,否則會出現較大偏差。
LR和CAR在輸入流量相同的條件下輸出波形相同,但由于LR有緩存而CAR沒有緩存,因此在時刻t1之后t2之前LR還會有一段時間發送的是緩存隊列的數據。通過測試儀就觀察不到這種差別了,必須通過抓包軟件對t1t2間開頭部分報文的IP頭部Id進行逐個觀察,找到第1次報文Id不連續的時刻t3,如圖3所示,則在t1t3之間所有Id連續的報文都是緩沖區中的報文,這些報文的字節數之和就是緩存隊列的大小。
如果t3=t1,則緩存隊列大小為0,表明設備在配置速率限制后沒有緩存。
采用上述LR測試方案對通信專網部署的邊緣路由器ER和接入交換機AS進行了比較測試。
ER設備不直接支持lr命令,用hqos policy pq bandwidth代替,實現pq調度和端口限速。
配置端口 hqospolicypqbandwidth為1 024 kbps時,使用 TestCenter測試儀進行測試,發送速率100 Mbps,包長64 byte,突發發送1次,每次突發包數為1 000,其余參數保持默認值[10,11]。在收端抓包收到271包數據,報文IP頭部Id值和到達時間如表1所示。

表1 ER設備端口限速轉發報文統計
根據表1測試數據可知,在轉發前261包時平均速率為 261×(64+20)×8/1.748 170 ms≈100 Mbps,為線速發送,因此HQoS工作在數據鏈路層;在發送Id為261的64 byte報文時令牌桶已耗盡,因此從這一包開始報文間隔明顯變大,從抓包結果看也開始出現丟包,直到新產生了足夠的令牌才繼續發送數據,此時繼續發送的第一包IP報文Id為338。
在轉發Id為261~1 000的報文時間,僅實際轉發了271-261=10個報文。總用時6.27 465-1.74 817=4.526 48 ms,新 產 生 的 總 令 牌 為4.526 48 ms×1 024 kbps≈4 636 bit,每包數據消耗令牌64×8=512 bit,發包總計需消耗令牌512×10=5 120 bit,而5 120 > 4 636,5 120- 4 636=484 bit,即轉發報文所需的這些額外令牌來源于剩余令牌,令牌補充速率=1 024 kbps=cir。
因此令牌桶大小 cbs為(261-1)×64×(100 M -1 024 K)/100 M=16 640 byte≈16 kbyte。
由于從令牌桶耗盡的同時出現收端報文IP頭部Id不連續,因此ER的hqos policy pq緩存為0,報文不能進入如圖1所示的 QoS緩存隊列;cbs為16 kbyte,最多允許突發11包1 500 byte的報文。
從表1中數據可以看出,令牌桶耗盡之后每隔1 ms連發2個64 byte報文,每包消耗512個令牌,期間補充1 024個令牌,因此還可以推斷ΔT=1 ms,即是每1 ms補充一次令牌(而不是更長的時間),再進行流量控制。
AS設備支持 lr命令,用 qos lr實現端口限速[12]。
配置端口LR為1 024 kbps,cbs取允許的最小值(4 000 byte)時,使用TestCenter測試儀進行測試,發送速率120 Mbps,包長1 500 byte,突發發送1次,每次突發包數256時不丟包,每次突發包數257時丟包,其余參數保持默認值。收包統計如圖4所示。

圖4 AS設備端口限速的效果
采用同樣方法進行多次測試,結果表明:
①AS設備LR為物理層機制。
②AS設備LR機制允許突發流量將令牌桶耗盡,之后才輸出均勻的流量為cir。cbs越大則允許突發流量越大。
③AS設備 LR緩存為384 kbyte,可以緩存1 500 byte報文256包。
可見AS設備LR的實測結果和LR的理論效能一致。
根據設備LR實測結果和對業務數據的統計分析,在通信專網中采用下面3種方式進行處理后都沒有再出現丟包現象:①優化采集終端軟件,按照設計要求使其發包間隔穩定在6.25 ms左右,避免出現連續的超小間隔(<2 ms)報文;②在區域處理系統接入交換機AS上聯端口上配置LR;③用交換機AS代替路由器ER,并配置LR。需要注意:在配置交換機 LR時需將 cbs取盡可能小的值(如4 000 byte)。具體采用哪種方式處理還需考慮網絡中安全設備的部署是否出現報文重組和重新分片等情況。
了解路由器和交換機在限速狀態下突發支持能力的差異,對于合理組網和規劃網絡QoS保證措施具有一定的指導作用,在現網中已經取得了良好的效果。
在未來的工作中,可以繼續采用本文提出的LR測試方法對通信專網的其他設備進行類似測試,用于排查高速接口連接低速鏈路的故障和獲得設備QoS效能的第一手資料。
[1] 杭州華三通信技術有限公司.網絡之路——QoS專題討論[M].杭州:杭州華三通信技術有限公司,2005:92-98.
[2] 呂 艷,王丹丹.QoS測試方法初探[J].硅谷,2010(24):172-176.
[3] 林 濤.網絡設備Qos特性的測試方法研究[D].北京:北京郵電大學,2013.
[4] 趙云棟.IP QoS技術探討及應用部署[J].信息安全與技術,2011(1):52-56.
[5] 馬刈非.衛星通信網絡技術[M].北京:國防工業出版社,2003:132-156.
[6] 曹彥軍,王克勤.基于衛星廣播的IP組網技術[J].無線電工程,2013,43(12):10 -12,28.
[7] RFC768.User Datagram Protocol[S],1980.
[8] RFC791.Internet Protocol[S],1981.
[9] 張彩月,陳 良.基于數據庫的遙測數據傳輸系統的設計[J].無線電通信技術,2013,39(3):46 -49.
[10]盛 翔.Qos測試的一種實現方法[J].電子質量,2008(4):31 -33.
[11]梁 棟.QoS測試淺析[J].電信網技術,2009(2):46-51.
[12]杭州華三通信技術有限公司.路由交換技術(第3卷)[M].北京:清華大學出版社,2012.