王梟雄,任磊
(中國電子科技集團(tuán)公司第二十研究所,西安 710068)
時延是指一個報文或分組從一個網(wǎng)絡(luò)的一端傳送到另一端所需的時間,由傳輸時延、傳播時延、處理時延和排隊(duì)時延組成[1]。在某些網(wǎng)絡(luò)應(yīng)用項(xiàng)目中,時延通常是一個很重要的考核指標(biāo)[2]。針對這個指標(biāo),采取何種檢測方法,對時延進(jìn)行準(zhǔn)確、可靠的測量,是一個非常關(guān)鍵的問題。
現(xiàn)有的測試手段一般采用簡單的以分組到達(dá)接收主機(jī)時刻減去分組離開發(fā)送主機(jī)的時刻獲得端到端時延,未考慮接收主機(jī)和發(fā)送主機(jī)時鐘同步問題,導(dǎo)致測試結(jié)果誤差比較大。有的采用非實(shí)時性的Windows操作系統(tǒng)作為測試平臺,時間精度又無法保證。本人參與的項(xiàng)目需要測試某無線網(wǎng)絡(luò)任意兩個站點(diǎn)端到端的網(wǎng)絡(luò)時延,由于該無線網(wǎng)絡(luò)應(yīng)用環(huán)境比較特殊,而且對網(wǎng)絡(luò)時延指標(biāo)要求比較嚴(yán)格,無法直接采用現(xiàn)有的一般測試方法。針對該需求,本文提出一種利用GPS接收機(jī)進(jìn)行時鐘同步,基于道系統(tǒng)實(shí)時進(jìn)程項(xiàng)目的多站點(diǎn)組網(wǎng)下雙向通訊時端到端無線網(wǎng)絡(luò)通訊時延檢測方法,并開發(fā)一套采用上位機(jī)、下位機(jī)工作方式的通訊檢測程序。經(jīng)多次測試采樣,利用統(tǒng)計(jì)學(xué)理論給出了比較準(zhǔn)確的時延檢測結(jié)果數(shù)據(jù),實(shí)現(xiàn)對網(wǎng)絡(luò)時延的檢測分析。
待測無線網(wǎng)絡(luò)由四個站點(diǎn)構(gòu)成,每個站點(diǎn)內(nèi)待測無線網(wǎng)絡(luò)設(shè)備端機(jī)和用戶主機(jī)設(shè)備之間通過有線方式連接在同一個千兆以太網(wǎng)交換機(jī)上。站點(diǎn)間利用無線網(wǎng)絡(luò)進(jìn)行通訊時,主機(jī)設(shè)備按照無線網(wǎng)絡(luò)約定的報文協(xié)議向該站點(diǎn)內(nèi)的無線網(wǎng)絡(luò)端機(jī)發(fā)送UDP數(shù)據(jù)報文,每組報文發(fā)送間隔不超過無線網(wǎng)絡(luò)限定的最大值。經(jīng)無線網(wǎng)絡(luò)傳輸后,接收站點(diǎn)的無線網(wǎng)絡(luò)端機(jī)接收遠(yuǎn)端數(shù)據(jù),解析處理后經(jīng)有線網(wǎng)絡(luò)發(fā)送給接收主機(jī)。采取有效措施,精確測量該無線網(wǎng)絡(luò)在雙向通訊時任意兩個站點(diǎn)端到端的網(wǎng)絡(luò)時延。
圖1 待測無線網(wǎng)絡(luò)組成示意
端到端時延測試的前提在于保證測試兩端的時鐘同步[3],常用時鐘同步方法利用 NTP協(xié)議或GPS同步時鐘進(jìn)行同步[4]。由于NTP協(xié)議采用網(wǎng)絡(luò)報文實(shí)現(xiàn)時間同步,同步精度一般為毫秒級。而GPS同步時鐘利用 GPS同步衛(wèi)星信號,同時接收1pps信號和時間信息,能夠?qū)崿F(xiàn)高精度(納秒級)的時間同步[5]。為保證測試網(wǎng)絡(luò)兩端主機(jī)設(shè)備時鐘的精確同步,本文采用GPS同步時鐘同步測試網(wǎng)絡(luò)兩端的主機(jī)設(shè)備時鐘。
測試過程中,待測無線網(wǎng)絡(luò)兩端的主機(jī)設(shè)備按照無線網(wǎng)絡(luò)約定的報文協(xié)議將測試報文從一端主機(jī)設(shè)備經(jīng)無線網(wǎng)絡(luò)發(fā)往另一端主機(jī)設(shè)備。每組測試報文數(shù)據(jù)中包含報文序號、發(fā)送時刻、校驗(yàn)碼等信息,且直到發(fā)送時才由發(fā)送主機(jī)填入當(dāng)前GPS時間作為該組報文的發(fā)送時間T0。經(jīng)無線網(wǎng)絡(luò)傳輸后接收主機(jī)收到報文,保存報文并記錄當(dāng)前的GPS時間作為該組報文的接收時間T1。接收時間T1與發(fā)送時間T0的時間差就是當(dāng)前報文在網(wǎng)絡(luò)上的總時延δ0。
由于主機(jī)設(shè)備和無線端機(jī)之間通過有線網(wǎng)絡(luò)連接。為消除報文在有線網(wǎng)絡(luò)上傳輸時的時延,本測試方法在得到報文在網(wǎng)絡(luò)上的總時延δ之后,利用與測試δ0類似的方法,在有線網(wǎng)絡(luò)上,測試同一站點(diǎn)內(nèi)連接在交換機(jī)上的兩個主機(jī)設(shè)備雙向通信時接收時間T3與發(fā)送時間T2的時間差,作為報文在有線網(wǎng)絡(luò)上傳輸?shù)臅r延δ1。
總時延δ0減去有線網(wǎng)絡(luò)上傳輸?shù)臅r延δ1,得到無線網(wǎng)絡(luò)端到端的時延δ:
因?yàn)闊o線網(wǎng)絡(luò)通訊狀況和諸多外部因素(例如氣象因素、地理位置因素、建筑物等)也有一定的關(guān)系,因此為得到準(zhǔn)確地結(jié)果數(shù)據(jù),必須多次、不同時間、大量地采樣。通過取平均值的方式,分析得出最終的測試結(jié)果。
由于測試過程中對時間要求比較嚴(yán)格,因此測試設(shè)備不能采用非實(shí)時操作系統(tǒng),必須采用實(shí)時操作系統(tǒng),例如道系統(tǒng)(DeltaOS)或Vxworks,并選用與實(shí)時操作系統(tǒng)相配的硬件[6]。同樣,在開發(fā)通訊測試程序時,盡量采用執(zhí)行效率高的C/C++編程語言或匯編語言。
本文提出的檢測方法在實(shí)現(xiàn)上由 GPS時鐘同步系統(tǒng)和通訊測試系統(tǒng)構(gòu)成。由于市面上現(xiàn)有的GPS同步設(shè)備能夠滿足測試指標(biāo)要求,因此直接購買某公司PCI時碼卡,嵌入在測試設(shè)備機(jī)箱中。通訊測試系統(tǒng)采用上位機(jī)、下位機(jī)工作方式。其中,上位機(jī)程序負(fù)責(zé)數(shù)據(jù)預(yù)處理指令、定時指令、設(shè)備重置指令、狀態(tài)查詢指令等控制命令的發(fā)送和狀態(tài)信息、測試結(jié)果信息的顯示,運(yùn)行在 windows PC機(jī)上。下位機(jī)程序負(fù)責(zé)執(zhí)行上位機(jī)操控命令、向遠(yuǎn)地測試設(shè)備發(fā)送報文數(shù)據(jù)、接收遠(yuǎn)地測試設(shè)備的報文以及向上位機(jī)反饋狀態(tài)信息、結(jié)果信息,并記錄測試數(shù)據(jù)等工作。下位機(jī)程序采用C語言開發(fā),運(yùn)行在道系統(tǒng)操作系統(tǒng)下,是一個實(shí)時進(jìn)程項(xiàng)目。上位機(jī)程序用戶界面如圖2所示。為方便結(jié)果記錄與分析,測試報文在滿足無線網(wǎng)絡(luò)數(shù)據(jù)傳輸協(xié)議的前提下,每組報文還包含報文的序號、發(fā)送時刻、校驗(yàn)碼等內(nèi)容。
圖2 上位機(jī)程序界面
作為測試工作的主要執(zhí)行者,下位機(jī)程序由四個任務(wù)構(gòu)成:上位機(jī)指令接收任務(wù)、處理任務(wù)、發(fā)送任務(wù)和遠(yuǎn)端測試數(shù)據(jù)接收任務(wù)。上位機(jī)指令接收任務(wù)負(fù)責(zé)接收上位機(jī)發(fā)來的操作指令,一旦接收到上位機(jī)指令后,立即通知處理任務(wù)執(zhí)行相應(yīng)的處理工作;處理任務(wù)完成具體的數(shù)據(jù)預(yù)處理、定時發(fā)送準(zhǔn)備、狀態(tài)反饋和結(jié)果分析工作;發(fā)送任務(wù)在等待到發(fā)送數(shù)據(jù)信號量時,從阻塞狀態(tài)轉(zhuǎn)入執(zhí)行狀態(tài),并立即以預(yù)設(shè)的時間間隔向遠(yuǎn)端測試設(shè)備發(fā)送包含當(dāng)前時戳信息的測試報文;遠(yuǎn)端測試數(shù)據(jù)接收任務(wù)監(jiān)聽到有測試數(shù)據(jù)到來時,記錄當(dāng)前時戳,并將報文保存在內(nèi)存中,當(dāng)本次測試完成時交由處理任務(wù)進(jìn)行結(jié)果分析。
各站點(diǎn)的GPS天線連接正常后,測試設(shè)備開機(jī),待GPS信號穩(wěn)定后,檢查測試設(shè)備計(jì)算機(jī)時間是否與GPS時間保持同步。時間同步后,測試開始。首先利用上位機(jī)程序設(shè)置測試報文相關(guān)參數(shù),下位機(jī)執(zhí)行數(shù)據(jù)預(yù)處理指令。然后設(shè)定數(shù)據(jù)發(fā)送時間,無線網(wǎng)絡(luò)兩端主機(jī)設(shè)備等待定時來臨時,發(fā)送測試報文同時接收遠(yuǎn)地測試報文。發(fā)送完成后,等待一定時間后,下位機(jī)進(jìn)行結(jié)果分析,并記錄數(shù)據(jù)。
采用不同報文組數(shù)、不同樣本類型、不同報文長度多次重復(fù)上述測試流程。
在有線網(wǎng)絡(luò)下,測試有線網(wǎng)絡(luò)兩端測試設(shè)備雙向通訊時數(shù)據(jù)接收時間與發(fā)送時間。
多站點(diǎn)組網(wǎng)時,需要借助無線網(wǎng)絡(luò)將測試數(shù)據(jù)同時發(fā)送給網(wǎng)內(nèi)的其它測試設(shè)備,分析數(shù)據(jù)時需要根據(jù)來源站點(diǎn)編號進(jìn)行區(qū)分處理。
圖3 1號站點(diǎn)接收2號站點(diǎn)數(shù)據(jù)延遲情況
圖4 2號站點(diǎn)接收1號站點(diǎn)數(shù)據(jù)延遲情況
以本項(xiàng)目中1號站點(diǎn)和2號站點(diǎn)端到端網(wǎng)絡(luò)時延檢測為例,圖3和圖4分別是站點(diǎn)1和站點(diǎn)2在每組報文長度等于 1472字節(jié)時接收對方發(fā)送的10000組數(shù)據(jù)的時延統(tǒng)計(jì)情況。其中,站點(diǎn)1接收站點(diǎn) 2的平均時延為 15.9842ms,2號站點(diǎn)接收 1號站點(diǎn)的平均時延為16.2639ms。
經(jīng)多次采樣測量,并利用統(tǒng)計(jì)學(xué)理論進(jìn)行分析,最終得出了該無線網(wǎng)絡(luò)1號站點(diǎn)和2號站點(diǎn)間雙向通訊端到端的網(wǎng)絡(luò)時延結(jié)果數(shù)據(jù)。
鏈路方向最小時延(ms)最大時延(ms)平均時延(ms)1#到2# 10.5 26.8 16.1 2#到1# 9.6 26.2 16.0
本文從具體的項(xiàng)目需求入手,提出了一種軟、硬件結(jié)合的端到端網(wǎng)絡(luò)時延檢測方法。采用GPS接收機(jī)完成無線網(wǎng)絡(luò)用戶終端設(shè)備的時鐘同步,然后設(shè)計(jì)并實(shí)現(xiàn)了基于上位機(jī)、下位機(jī)方式的通訊檢測系統(tǒng)。經(jīng)多次測試采樣,利用統(tǒng)計(jì)學(xué)理論給出了比較準(zhǔn)確的時延檢測結(jié)果數(shù)據(jù),完成了對無線網(wǎng)絡(luò)多站點(diǎn)端到端雙向通訊時的網(wǎng)絡(luò)時延檢測。本文提出的端到端雙向通訊網(wǎng)絡(luò)時延檢測方法,從時鐘同步、操作系統(tǒng)選擇、軟件設(shè)計(jì)和結(jié)果分析方法等多各方面充分考慮了其對檢測結(jié)果可能產(chǎn)生的影響,采用精確、實(shí)時、優(yōu)良、合理的方法,提高了測試結(jié)果的準(zhǔn)確度。通過對測試報文協(xié)議的調(diào)整,本文提出的端到端雙向通訊網(wǎng)絡(luò)時延檢測方法能夠比較容易地?cái)U(kuò)展至其它類似的網(wǎng)絡(luò)時延測試項(xiàng)目。