葉煥鋒,姜周曙
(杭州電子科技大學(xué) 自動化學(xué)院,浙江 杭州 310018)
通用分組無線服務(wù)[1](GPRS,General Packet Radio Service)由英國BT Cellnet公司提出,它是第二代移動通信技術(shù)向第三代移動通信過渡的一種無線高速數(shù)據(jù)傳輸技術(shù)。用戶通過GPRS可在移動狀態(tài)下使用各種高速數(shù)據(jù)業(yè)務(wù),但數(shù)據(jù)安全可靠傳輸取決于GPRS的通信性能,全文針對該問題研制了GPRS通信性能檢測系統(tǒng),可檢測時延、丟包率以及傳輸速率三項指標(biāo)[2-3]。
檢測平臺有GPRS數(shù)據(jù)終端和PC機,PC機上裝有GPRS通信測試軟件,它一方面利用串口直接與數(shù)據(jù)終端連接,另一方面通過Internet、GPRS網(wǎng)絡(luò)與數(shù)據(jù)終端連接,構(gòu)成以PC機為測試中心的測試鏈路環(huán),如圖1示。
測試軟件使用C/S(Client/Server)架構(gòu),PC機作為服務(wù)器,GPRS數(shù)據(jù)終端作為客戶端,當(dāng)服務(wù)器開啟監(jiān)聽后,GPRS數(shù)據(jù)終端主動連接并實現(xiàn)數(shù)據(jù)收發(fā)[4,8]。為滿足測試要求構(gòu)建通信數(shù)據(jù)幀[7],如表1。
圖1 GPRS通信性能測試鏈路
表1 網(wǎng)絡(luò)數(shù)據(jù)幀格式
表1的數(shù)據(jù)幀在網(wǎng)絡(luò)中傳輸,下面稱它網(wǎng)絡(luò)數(shù)據(jù)幀。此外,為實現(xiàn)檢測目的,網(wǎng)絡(luò)數(shù)據(jù)幀中的測試數(shù)據(jù)包含了一個幀,下面稱它測試數(shù)據(jù)幀,如表2。
表2 測試數(shù)據(jù)幀格式
用測試數(shù)據(jù)幀可檢測出 GPRS的三項性能指標(biāo),方法如下。
(1)時延檢測
測試數(shù)據(jù)幀中包含4字節(jié)的發(fā)送時間,它是數(shù)據(jù)幀發(fā)送前PC機的時間,包括分(1Byte)、秒(1Byte)和毫秒(2Byte)。測試數(shù)據(jù)幀攜帶時間從PC機出發(fā),通過GPRS數(shù)據(jù)終端、GPRS網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)后回到PC機,由于起始時間和終止時間在同一臺PC上測出,因此利用時間差就可得出時延。
(2)丟包率檢測
為了在 PC機接收端獲取正確的數(shù)據(jù)幀,表 1和表2的幀格式包含4字節(jié)校驗域(CRC校驗?zāi)J剑┖?字節(jié)數(shù)據(jù)域長度。將數(shù)據(jù)域長度檢測和CRC檢測相結(jié)合檢測出數(shù)據(jù)幀的完整性。
(3)傳輸速率檢測
測試軟件在發(fā)送測試數(shù)據(jù)前,PC機中另一個數(shù)據(jù)接收線程會立即開啟。只要檢測到緩存中有數(shù)據(jù)就立即接受并解析,最后統(tǒng)計解析出來的字節(jié)量即可。
為完成性能檢測要求,必須有快速可靠的數(shù)據(jù)幀解析機制,先考慮下面兩種情況:
1)PC機用串口將測試數(shù)據(jù)幀發(fā)送到GPRS數(shù)據(jù)終端,GPRS數(shù)據(jù)終端將測試數(shù)據(jù)幀打包成網(wǎng)絡(luò)數(shù)據(jù)幀,但由于數(shù)據(jù)幀長度限制打包出來的網(wǎng)絡(luò)數(shù)據(jù)幀會有不同情況:①將n個測試數(shù)據(jù)幀打包成1個網(wǎng)絡(luò)數(shù)據(jù)幀;②將n+0.5個測試數(shù)據(jù)幀打包成1個網(wǎng)絡(luò)數(shù)據(jù)幀。
2)網(wǎng)絡(luò)擁堵、時延等原因,PC機緩存中會接收n個或者n+0.5個網(wǎng)絡(luò)數(shù)據(jù)幀。
以上是數(shù)據(jù)解析的主要問題,下面簡述解決方案。由于完整的網(wǎng)絡(luò)數(shù)據(jù)幀包含測試數(shù)據(jù)幀,故先解析網(wǎng)絡(luò)數(shù)據(jù)幀后解析測試數(shù)據(jù)幀,具體如:①遍歷 PC機緩存,提取緩存中所有幀頭和幀尾,并存在幀頭數(shù)組和幀尾數(shù)組中,然后成對提取完整的網(wǎng)絡(luò)數(shù)據(jù)幀,若出現(xiàn)不完整的幀則先存在臨時數(shù)組中,等待下一次緩存接收另一半網(wǎng)絡(luò)數(shù)據(jù)幀并組合成一個完整的幀;②對網(wǎng)絡(luò)數(shù)據(jù)幀進(jìn)行CRC校驗和數(shù)據(jù)域長度比較,得到正確的網(wǎng)絡(luò)數(shù)據(jù)幀;③解析網(wǎng)絡(luò)數(shù)據(jù)幀中的測試數(shù)據(jù),方法和上面一致;④提取測試數(shù)據(jù)幀中的發(fā)送時間并和 PC機當(dāng)前時間比較可檢測時延;統(tǒng)計接收到的測試數(shù)據(jù)幀總數(shù)并和發(fā)送總幀數(shù)比較可檢測丟包率;計算單位時間內(nèi)接收到的字節(jié)數(shù)可檢測傳輸速率。
基于以上檢測原理,在微軟.NET Framework平臺上,開發(fā)類似串口調(diào)試工具的測試軟件[5-6],主界面如圖2。
圖2 測試軟件
軟件有以下功能:①提供串口發(fā)送網(wǎng)絡(luò)接收和網(wǎng)絡(luò)發(fā)送串口接收兩種模式;②提供定時、定次和定長的自動發(fā)送模式和手動發(fā)送模式;③具有可視化監(jiān)控界面,能實時檢測性能狀況;④與數(shù)據(jù)庫關(guān)聯(lián),可存儲和查詢測試結(jié)果。
GPRS性能與網(wǎng)絡(luò)擁塞相關(guān),現(xiàn)通過不同時間點做大量重復(fù)測試,歸納出三種GPRS數(shù)據(jù)通信性能狀況。測試數(shù)據(jù)采用折線圖形式,坐標(biāo)軸解釋如下:橫坐標(biāo)為測試數(shù)據(jù)發(fā)送周期(ms);左側(cè)縱坐標(biāo)為平均時延和平均速率(ms和B/s);右側(cè)縱坐標(biāo)為丟包率(%)。
圖3是網(wǎng)絡(luò)在通暢情況下測出得通信數(shù)據(jù),圖中展示不同發(fā)送周期下,平均時延、平均速率和累計丟包率三項通信性能指標(biāo)的變化趨勢。由圖知:發(fā)送周期較長時,數(shù)據(jù)傳輸過程中平均時延保持在2 000 ms和4 000 ms之間,此時平均速率慢慢增大,最大達(dá)2 000 B/s,而且沒有出現(xiàn)丟包現(xiàn)象(丟包率為0%)。隨著數(shù)據(jù)發(fā)送周期逐漸縮短,平均時延快速增大,但平均速率沒有一直增大,反而發(fā)送周期在300ms以下時出現(xiàn)了丟包情況。因此,為了使三項通信性能指標(biāo)在數(shù)據(jù)傳輸過程中達(dá)到最優(yōu),應(yīng)選擇合適的發(fā)送周期。圖3可知,發(fā)送周期低于450 ms后平均時延急劇上升,發(fā)送周期在450 ms到500 ms之間可以使平均速度達(dá)到最大且沒有出現(xiàn)丟包。所以通信時將發(fā)送周期控制在450~500 ms之間有較好的性能。
圖3 網(wǎng)絡(luò)通暢情況下的GPRS數(shù)據(jù)通信特性
圖4是網(wǎng)絡(luò)繁忙情況下測出得通信數(shù)據(jù),同樣也反應(yīng)了三個指標(biāo)在不同發(fā)送周期下的變化趨勢。對比圖3可知,折線的基本走勢相同,但數(shù)據(jù)傳輸中平均時延高于網(wǎng)絡(luò)暢通的情況,而且在發(fā)送周期為500 ms的時候出現(xiàn)丟包。雖然檢測出來的平均速率最大達(dá)2 000 B/s卻伴隨著較高的數(shù)據(jù)丟失風(fēng)險,所以通信時將發(fā)送周期控制在600~800 ms之間能夠獲得較好的性能。
圖4 網(wǎng)絡(luò)繁忙情況下的GPRS數(shù)據(jù)傳輸性能圖
除上面兩種情況外,測試中還發(fā)現(xiàn)第三種情況如圖5,此時網(wǎng)絡(luò)非常糟糕復(fù)雜,圖中可知平均時延和丟包率呈現(xiàn)出U型折線圖,即在發(fā)送周期較長時出現(xiàn)了很大的平均時延和較為嚴(yán)重的丟包現(xiàn)象,但當(dāng)發(fā)送周期逐漸縮小時測試出來得性能與前面分析的情況一致,所以為保證通信質(zhì)量應(yīng)將發(fā)送周期控制在800~1 000 ms之間。
圖5 網(wǎng)絡(luò)情況復(fù)雜時的GPRS數(shù)據(jù)傳輸特性圖
全文講訴的GPRS通信性能檢測平臺能夠有效地檢測GPRS網(wǎng)絡(luò)的三項性能指標(biāo)。檢測基本原理是用PC機自發(fā)自收,因此檢測形式方便簡單、數(shù)據(jù)統(tǒng)計比較容易,自主開發(fā)的測試軟件能夠?qū)崟r顯示整個測試過程。但是,檢測平臺也存在缺陷與不足,首先檢測得時延是整個測試鏈路的時延,包括了發(fā)送時延、傳播時延、接收時延等;此外,檢測對象僅僅是華為的GPRS模塊EM310,對其它商家的GPRS模塊并沒有檢測,所以得出的結(jié)論僅限于此。
[1] 鐘章隊,蔣文怡,李紅君.GPRS通用分組無線業(yè)務(wù)[M].北京:人民郵電出版社,1-9.
[2] 張科峰,陳莉華.GPRS網(wǎng)絡(luò)性能測試[J].現(xiàn)代電信科技,2002(01):21-24.
[3] 文志成.通用分組無線業(yè)務(wù)——GPRS[M].北京:電子工業(yè)出版社,128-133.
[4] 劉永錄,衣紅鋼,鞏憲,等.基于GSM/GPRS的無線數(shù)據(jù)采集系統(tǒng)[J].信息安全與通信保密,2005(11):112-114.
[5] 馬俊.C#網(wǎng)絡(luò)應(yīng)用編程[M].北京:人民郵電出版社,2010:82-147.
[6] 明日科技.C#開發(fā)經(jīng)驗技巧寶典[M].北京:人民郵電出版社,2007:2-200.
[7] 張紅霞,王亞微,郭佳,等.基于GPRS通信技術(shù)的遠(yuǎn)程抄表系統(tǒng)設(shè)計[J].通信技術(shù),2008,41(08):207-209.
[8] 常琨,馬天光,史琳.TCP/IP在GPRS/EGPRS網(wǎng)絡(luò)中的應(yīng)用及影響[J].通信技術(shù),2010,43(12):112-114.