于紅增,陳海小
(1.中國電子科技集團(tuán)公司第五十四研究所,河北石家莊050081;2.中國衛(wèi)星海上測控部,江蘇無錫214431)
在QoS保證措施中,流量監(jiān)管(Committed Access Rate,CAR)、流量整形(Generic Traffic Shaping,GTS)和端口限速(Line Rate,LR)都屬于速率限制類型[1,2],LR可以限制一個端口流出方向信息的總速率,在企業(yè)網(wǎng)和專用網(wǎng)絡(luò)中常用于高速接口連接低速鏈路(如衛(wèi)通鏈路或微波鏈路)的情形。公開出版物和廠商設(shè)備資料大都介紹了這類技術(shù)的工作機(jī)理和理論效果,只有文獻(xiàn)[1]對QoS測試方法進(jìn)行了原理性介紹,鮮見關(guān)于實際效果的文獻(xiàn),在實際使用中依據(jù)理論效果設(shè)計的QoS保證措施往往會引起不少問題,分析處理起來也很困難。
通信專網(wǎng)主要用于實時數(shù)據(jù)、話音和圖像業(yè)務(wù)的綜合傳輸與交換,要求最小包長業(yè)務(wù)的端到端丟包率低于0.1%。系統(tǒng)調(diào)試中發(fā)現(xiàn)路由器廣域網(wǎng)出口配置了端口限速后,會發(fā)生嚴(yán)重丟包現(xiàn)象,丟包率達(dá)到1%;而去掉端口限速配置后丟包率為零。這與端口限速的理論效能相矛盾,需要對丟包機(jī)理進(jìn)行測試、解決這個問題,并對類似問題積累處理經(jīng)驗。
LR基于令牌桶進(jìn)行流量測量和控制[1,3],處理過程如圖1所示。
令牌桶參數(shù)包括承諾突發(fā)尺寸(Committed Burst Size,CBS)和承諾信息速率(Committed Information Rate,CIR),需要用戶指定。CBS的值為cbs,單位為byte,稱為令牌桶的大小或令牌桶的桶深,令牌桶初始狀態(tài)是充滿令牌的,允許一次性轉(zhuǎn)發(fā)cbs的信息。路由交換設(shè)備的某個端口上配置LR后,則所有從該端口發(fā)送的報文都要經(jīng)過LR的令牌桶進(jìn)行測量。如果令牌桶中有足夠的令牌,則報文可以發(fā)送,同時消耗與報文等量的令牌;如果令牌桶中的令牌不足,則報文入QoS隊列進(jìn)行擁塞管理,這一過程不消耗令牌。
圖1 LR的基本處理過程
無論是否有報文轉(zhuǎn)發(fā),每間隔ΔT時間LR向令牌桶投放相當(dāng)于cir×ΔT÷8 byte的令牌,這里cir為CIR的值,單位為bps,ΔT單位為s,令牌桶溢出后丟棄多余令牌。
通信專網(wǎng)由多個外圍站局域網(wǎng)、1個中心站局域網(wǎng)和廣域網(wǎng)組成,如圖2所示。廣域網(wǎng)基于路由器和衛(wèi)通鏈路構(gòu)建,路由器接口為快速以太網(wǎng)(FastEthernet,F(xiàn)E)類型,衛(wèi)通信道速率3 072 kbps,實測吞吐量不小于3 072 kbps。業(yè)務(wù)數(shù)據(jù)速率理論值為2.2 Mbps,滿足網(wǎng)絡(luò)輕載運行條件。為了防止突發(fā)數(shù)據(jù)在衛(wèi)通信道設(shè)備上的擁塞和丟包,在路由器連接衛(wèi)通設(shè)備的端口上采用了端口限速技術(shù),以平滑路由器輸出流量波形,也便于從網(wǎng)管系統(tǒng)上監(jiān)控端口的丟包和隊列使用情況[4-6]。
圖2 通信專網(wǎng)組網(wǎng)示意
通信專網(wǎng)正是在路由器上配置了端口限速才導(dǎo)致路由器丟包,需要對端口限速的效果進(jìn)行測試評估,并提出改進(jìn)的措施。
通信專網(wǎng)業(yè)務(wù)系統(tǒng)采用時間驅(qū)動方式。設(shè)計要求外圍站數(shù)據(jù)采集終端每6.25 ms產(chǎn)生固定長度字節(jié)的原始數(shù)據(jù)給本地的區(qū)域處理系統(tǒng)。區(qū)域處理系統(tǒng)每處理完這個采集終端的4次原始數(shù)據(jù),立即將處理結(jié)果封裝成一個UDP報文上報中心站集中控制系統(tǒng),理論上每隔25 ms上報一次。
外圍站采用UDP協(xié)議向中心站上報,每次發(fā)送數(shù)據(jù)的字節(jié)數(shù)為6 700 byte,IP分片機(jī)制將其打包為5個連續(xù)的IP分片。因此業(yè)務(wù)數(shù)據(jù)在時間上具有周期的突發(fā)特性[7-9]。
基于這些,可以猜想配置了端口限速之后的丟包原因不外乎2個:①端口限速的實現(xiàn)效果不符合預(yù)期;②業(yè)務(wù)報文隨機(jī)性導(dǎo)致的鏈路瞬時擁塞。下面首先排查第2個原因。
如果真的是因為業(yè)務(wù)報文隨機(jī)性導(dǎo)致了鏈路瞬時擁塞,那么UDP包間隔一定具有相當(dāng)程度的隨機(jī)性,以至于相當(dāng)比例的UDP報文間隔小于25 ms。
通過wireshark抓包,獲取到數(shù)據(jù)采集終端上報區(qū)域處理系統(tǒng)的數(shù)據(jù)包,對其進(jìn)行包間隔統(tǒng)計,結(jié)果證明了這個猜測。數(shù)據(jù)采集終端小于2 ms間隔的報文比例高達(dá)74.30%,比設(shè)計要求6.25 ms小很多;而且還有4%的報文間隔超過了40 ms。這必然導(dǎo)致區(qū)域處理系統(tǒng)上報中心站數(shù)據(jù)時間間隔的動態(tài)范圍過大,使得衛(wèi)通鏈路從亞秒量級上看部分時段的流量超過了鏈路的傳輸能力,引起了瞬時擁塞,影響服務(wù)質(zhì)量。
既然已經(jīng)確定了第2個原因是導(dǎo)致端口限速丟包的根源,那么還需要測出端口允許多大的數(shù)據(jù)突發(fā)量,即測出端口限速對應(yīng)的隊列緩存有多大,以便對數(shù)據(jù)采集終端提出定時精度要求。
對于令牌桶工作參數(shù)測試來說,主要是驗證經(jīng)過設(shè)備QoS處理之后的流量是否降到了cir所限定的值,令牌桶的實際尺寸是否符合設(shè)備的配置,經(jīng)過重新標(biāo)記的報文是否被正確標(biāo)記,這些都和令牌桶的機(jī)制有關(guān)。
2.1.1 考慮設(shè)計輸入流量速率v
v 應(yīng)高于 cir,且不超過設(shè)備的轉(zhuǎn)發(fā)性能[1,2]。
2.1.2 輸出流量速率的測試
必須等待令牌桶第1次令牌耗盡之后再去統(tǒng)計輸出速率,在此之前設(shè)備轉(zhuǎn)發(fā)的速率跟隨輸入速率變化,是高于 cir的[1]。
2.1.3 令牌桶的大小
令牌桶大小的測試建立在cir測試完成的前提下,如果cir不準(zhǔn)確,測得的令牌桶大小也將不準(zhǔn)。
以超過cir的速率v發(fā)送報文并開始計時,令牌桶中的令牌以v-cir的速率逐漸消耗掉。在t1時刻第1次出現(xiàn)令牌不足,設(shè)備轉(zhuǎn)發(fā)報文的速率降至cir,直到發(fā)送結(jié)束時刻t2。整個過程如圖3所示。
圖3 令牌桶大小和LR緩存大小測試原理
假定N為接收到的報文總字節(jié)數(shù),根據(jù)令牌桶的工作原理不難得出:cbs=N-t2×cir÷8,這里cir的單位為bps,t2單位為s。
需要指出,有些QoS特性僅有報文IP頭以上部分消耗令牌,有些是鏈路層及以上部分均消耗令牌。因此通過比較實測的cir值(要結(jié)合包長參數(shù))和配置的cir值還可以判斷出以太網(wǎng)端口QoS工作在OSI模型的第幾層。因此,上述公式中令牌桶大小cbs需要和cir在OSI模型同一層上進(jìn)行計算,否則會出現(xiàn)較大偏差。
LR和CAR在輸入流量相同的條件下輸出波形相同,但由于LR有緩存而CAR沒有緩存,因此在時刻t1之后t2之前LR還會有一段時間發(fā)送的是緩存隊列的數(shù)據(jù)。通過測試儀就觀察不到這種差別了,必須通過抓包軟件對t1t2間開頭部分報文的IP頭部Id進(jìn)行逐個觀察,找到第1次報文Id不連續(xù)的時刻t3,如圖3所示,則在t1t3之間所有Id連續(xù)的報文都是緩沖區(qū)中的報文,這些報文的字節(jié)數(shù)之和就是緩存隊列的大小。
如果t3=t1,則緩存隊列大小為0,表明設(shè)備在配置速率限制后沒有緩存。
采用上述LR測試方案對通信專網(wǎng)部署的邊緣路由器ER和接入交換機(jī)AS進(jìn)行了比較測試。
ER設(shè)備不直接支持lr命令,用hqos policy pq bandwidth代替,實現(xiàn)pq調(diào)度和端口限速。
配置端口 hqospolicypqbandwidth為1 024 kbps時,使用 TestCenter測試儀進(jìn)行測試,發(fā)送速率100 Mbps,包長64 byte,突發(fā)發(fā)送1次,每次突發(fā)包數(shù)為1 000,其余參數(shù)保持默認(rèn)值[10,11]。在收端抓包收到271包數(shù)據(jù),報文IP頭部Id值和到達(dá)時間如表1所示。
表1 ER設(shè)備端口限速轉(zhuǎn)發(fā)報文統(tǒng)計
根據(jù)表1測試數(shù)據(jù)可知,在轉(zhuǎn)發(fā)前261包時平均速率為 261×(64+20)×8/1.748 170 ms≈100 Mbps,為線速發(fā)送,因此HQoS工作在數(shù)據(jù)鏈路層;在發(fā)送Id為261的64 byte報文時令牌桶已耗盡,因此從這一包開始報文間隔明顯變大,從抓包結(jié)果看也開始出現(xiàn)丟包,直到新產(chǎn)生了足夠的令牌才繼續(xù)發(fā)送數(shù)據(jù),此時繼續(xù)發(fā)送的第一包IP報文Id為338。
在轉(zhuǎn)發(fā)Id為261~1 000的報文時間,僅實際轉(zhuǎn)發(fā)了271-261=10個報文。總用時6.27 465-1.74 817=4.526 48 ms,新 產(chǎn) 生 的 總 令 牌 為4.526 48 ms×1 024 kbps≈4 636 bit,每包數(shù)據(jù)消耗令牌64×8=512 bit,發(fā)包總計需消耗令牌512×10=5 120 bit,而5 120 > 4 636,5 120- 4 636=484 bit,即轉(zhuǎn)發(fā)報文所需的這些額外令牌來源于剩余令牌,令牌補(bǔ)充速率=1 024 kbps=cir。
因此令牌桶大小 cbs為(261-1)×64×(100 M -1 024 K)/100 M=16 640 byte≈16 kbyte。
由于從令牌桶耗盡的同時出現(xiàn)收端報文IP頭部Id不連續(xù),因此ER的hqos policy pq緩存為0,報文不能進(jìn)入如圖1所示的 QoS緩存隊列;cbs為16 kbyte,最多允許突發(fā)11包1 500 byte的報文。
從表1中數(shù)據(jù)可以看出,令牌桶耗盡之后每隔1 ms連發(fā)2個64 byte報文,每包消耗512個令牌,期間補(bǔ)充1 024個令牌,因此還可以推斷ΔT=1 ms,即是每1 ms補(bǔ)充一次令牌(而不是更長的時間),再進(jìn)行流量控制。
AS設(shè)備支持 lr命令,用 qos lr實現(xiàn)端口限速[12]。
配置端口LR為1 024 kbps,cbs取允許的最小值(4 000 byte)時,使用TestCenter測試儀進(jìn)行測試,發(fā)送速率120 Mbps,包長1 500 byte,突發(fā)發(fā)送1次,每次突發(fā)包數(shù)256時不丟包,每次突發(fā)包數(shù)257時丟包,其余參數(shù)保持默認(rèn)值。收包統(tǒng)計如圖4所示。
圖4 AS設(shè)備端口限速的效果
采用同樣方法進(jìn)行多次測試,結(jié)果表明:
①AS設(shè)備LR為物理層機(jī)制。
②AS設(shè)備LR機(jī)制允許突發(fā)流量將令牌桶耗盡,之后才輸出均勻的流量為cir。cbs越大則允許突發(fā)流量越大。
③AS設(shè)備 LR緩存為384 kbyte,可以緩存1 500 byte報文256包。
可見AS設(shè)備LR的實測結(jié)果和LR的理論效能一致。
根據(jù)設(shè)備LR實測結(jié)果和對業(yè)務(wù)數(shù)據(jù)的統(tǒng)計分析,在通信專網(wǎng)中采用下面3種方式進(jìn)行處理后都沒有再出現(xiàn)丟包現(xiàn)象:①優(yōu)化采集終端軟件,按照設(shè)計要求使其發(fā)包間隔穩(wěn)定在6.25 ms左右,避免出現(xiàn)連續(xù)的超小間隔(<2 ms)報文;②在區(qū)域處理系統(tǒng)接入交換機(jī)AS上聯(lián)端口上配置LR;③用交換機(jī)AS代替路由器ER,并配置LR。需要注意:在配置交換機(jī) LR時需將 cbs取盡可能小的值(如4 000 byte)。具體采用哪種方式處理還需考慮網(wǎng)絡(luò)中安全設(shè)備的部署是否出現(xiàn)報文重組和重新分片等情況。
了解路由器和交換機(jī)在限速狀態(tài)下突發(fā)支持能力的差異,對于合理組網(wǎng)和規(guī)劃網(wǎng)絡(luò)QoS保證措施具有一定的指導(dǎo)作用,在現(xiàn)網(wǎng)中已經(jīng)取得了良好的效果。
在未來的工作中,可以繼續(xù)采用本文提出的LR測試方法對通信專網(wǎng)的其他設(shè)備進(jìn)行類似測試,用于排查高速接口連接低速鏈路的故障和獲得設(shè)備QoS效能的第一手資料。
[1] 杭州華三通信技術(shù)有限公司.網(wǎng)絡(luò)之路——QoS專題討論[M].杭州:杭州華三通信技術(shù)有限公司,2005:92-98.
[2] 呂 艷,王丹丹.QoS測試方法初探[J].硅谷,2010(24):172-176.
[3] 林 濤.網(wǎng)絡(luò)設(shè)備Qos特性的測試方法研究[D].北京:北京郵電大學(xué),2013.
[4] 趙云棟.IP QoS技術(shù)探討及應(yīng)用部署[J].信息安全與技術(shù),2011(1):52-56.
[5] 馬刈非.衛(wèi)星通信網(wǎng)絡(luò)技術(shù)[M].北京:國防工業(yè)出版社,2003:132-156.
[6] 曹彥軍,王克勤.基于衛(wèi)星廣播的IP組網(wǎng)技術(shù)[J].無線電工程,2013,43(12):10 -12,28.
[7] RFC768.User Datagram Protocol[S],1980.
[8] RFC791.Internet Protocol[S],1981.
[9] 張彩月,陳 良.基于數(shù)據(jù)庫的遙測數(shù)據(jù)傳輸系統(tǒng)的設(shè)計[J].無線電通信技術(shù),2013,39(3):46 -49.
[10]盛 翔.Qos測試的一種實現(xiàn)方法[J].電子質(zhì)量,2008(4):31 -33.
[11]梁 棟.QoS測試淺析[J].電信網(wǎng)技術(shù),2009(2):46-51.
[12]杭州華三通信技術(shù)有限公司.路由交換技術(shù)(第3卷)[M].北京:清華大學(xué)出版社,2012.