葉煥鋒,姜周曙
(杭州電子科技大學(xué) 自動(dòng)化學(xué)院,浙江 杭州 310018)
通用分組無(wú)線服務(wù)[1](GPRS,General Packet Radio Service)由英國(guó)BT Cellnet公司提出,它是第二代移動(dòng)通信技術(shù)向第三代移動(dòng)通信過(guò)渡的一種無(wú)線高速數(shù)據(jù)傳輸技術(shù)。用戶通過(guò)GPRS可在移動(dòng)狀態(tài)下使用各種高速數(shù)據(jù)業(yè)務(wù),但數(shù)據(jù)安全可靠傳輸取決于GPRS的通信性能,全文針對(duì)該問(wèn)題研制了GPRS通信性能檢測(cè)系統(tǒng),可檢測(cè)時(shí)延、丟包率以及傳輸速率三項(xiàng)指標(biāo)[2-3]。
檢測(cè)平臺(tái)有GPRS數(shù)據(jù)終端和PC機(jī),PC機(jī)上裝有GPRS通信測(cè)試軟件,它一方面利用串口直接與數(shù)據(jù)終端連接,另一方面通過(guò)Internet、GPRS網(wǎng)絡(luò)與數(shù)據(jù)終端連接,構(gòu)成以PC機(jī)為測(cè)試中心的測(cè)試鏈路環(huán),如圖1示。
測(cè)試軟件使用C/S(Client/Server)架構(gòu),PC機(jī)作為服務(wù)器,GPRS數(shù)據(jù)終端作為客戶端,當(dāng)服務(wù)器開(kāi)啟監(jiān)聽(tīng)后,GPRS數(shù)據(jù)終端主動(dòng)連接并實(shí)現(xiàn)數(shù)據(jù)收發(fā)[4,8]。為滿足測(cè)試要求構(gòu)建通信數(shù)據(jù)幀[7],如表1。

圖1 GPRS通信性能測(cè)試鏈路

表1 網(wǎng)絡(luò)數(shù)據(jù)幀格式
表1的數(shù)據(jù)幀在網(wǎng)絡(luò)中傳輸,下面稱它網(wǎng)絡(luò)數(shù)據(jù)幀。此外,為實(shí)現(xiàn)檢測(cè)目的,網(wǎng)絡(luò)數(shù)據(jù)幀中的測(cè)試數(shù)據(jù)包含了一個(gè)幀,下面稱它測(cè)試數(shù)據(jù)幀,如表2。

表2 測(cè)試數(shù)據(jù)幀格式
用測(cè)試數(shù)據(jù)幀可檢測(cè)出 GPRS的三項(xiàng)性能指標(biāo),方法如下。
(1)時(shí)延檢測(cè)
測(cè)試數(shù)據(jù)幀中包含4字節(jié)的發(fā)送時(shí)間,它是數(shù)據(jù)幀發(fā)送前PC機(jī)的時(shí)間,包括分(1Byte)、秒(1Byte)和毫秒(2Byte)。測(cè)試數(shù)據(jù)幀攜帶時(shí)間從PC機(jī)出發(fā),通過(guò)GPRS數(shù)據(jù)終端、GPRS網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)后回到PC機(jī),由于起始時(shí)間和終止時(shí)間在同一臺(tái)PC上測(cè)出,因此利用時(shí)間差就可得出時(shí)延。
(2)丟包率檢測(cè)
為了在 PC機(jī)接收端獲取正確的數(shù)據(jù)幀,表 1和表2的幀格式包含4字節(jié)校驗(yàn)域(CRC校驗(yàn)?zāi)J剑┖?字節(jié)數(shù)據(jù)域長(zhǎng)度。將數(shù)據(jù)域長(zhǎng)度檢測(cè)和CRC檢測(cè)相結(jié)合檢測(cè)出數(shù)據(jù)幀的完整性。
(3)傳輸速率檢測(cè)
測(cè)試軟件在發(fā)送測(cè)試數(shù)據(jù)前,PC機(jī)中另一個(gè)數(shù)據(jù)接收線程會(huì)立即開(kāi)啟。只要檢測(cè)到緩存中有數(shù)據(jù)就立即接受并解析,最后統(tǒng)計(jì)解析出來(lái)的字節(jié)量即可。
為完成性能檢測(cè)要求,必須有快速可靠的數(shù)據(jù)幀解析機(jī)制,先考慮下面兩種情況:
1)PC機(jī)用串口將測(cè)試數(shù)據(jù)幀發(fā)送到GPRS數(shù)據(jù)終端,GPRS數(shù)據(jù)終端將測(cè)試數(shù)據(jù)幀打包成網(wǎng)絡(luò)數(shù)據(jù)幀,但由于數(shù)據(jù)幀長(zhǎng)度限制打包出來(lái)的網(wǎng)絡(luò)數(shù)據(jù)幀會(huì)有不同情況:①將n個(gè)測(cè)試數(shù)據(jù)幀打包成1個(gè)網(wǎng)絡(luò)數(shù)據(jù)幀;②將n+0.5個(gè)測(cè)試數(shù)據(jù)幀打包成1個(gè)網(wǎng)絡(luò)數(shù)據(jù)幀。
2)網(wǎng)絡(luò)擁堵、時(shí)延等原因,PC機(jī)緩存中會(huì)接收n個(gè)或者n+0.5個(gè)網(wǎng)絡(luò)數(shù)據(jù)幀。
以上是數(shù)據(jù)解析的主要問(wèn)題,下面簡(jiǎn)述解決方案。由于完整的網(wǎng)絡(luò)數(shù)據(jù)幀包含測(cè)試數(shù)據(jù)幀,故先解析網(wǎng)絡(luò)數(shù)據(jù)幀后解析測(cè)試數(shù)據(jù)幀,具體如:①遍歷 PC機(jī)緩存,提取緩存中所有幀頭和幀尾,并存在幀頭數(shù)組和幀尾數(shù)組中,然后成對(duì)提取完整的網(wǎng)絡(luò)數(shù)據(jù)幀,若出現(xiàn)不完整的幀則先存在臨時(shí)數(shù)組中,等待下一次緩存接收另一半網(wǎng)絡(luò)數(shù)據(jù)幀并組合成一個(gè)完整的幀;②對(duì)網(wǎng)絡(luò)數(shù)據(jù)幀進(jìn)行CRC校驗(yàn)和數(shù)據(jù)域長(zhǎng)度比較,得到正確的網(wǎng)絡(luò)數(shù)據(jù)幀;③解析網(wǎng)絡(luò)數(shù)據(jù)幀中的測(cè)試數(shù)據(jù),方法和上面一致;④提取測(cè)試數(shù)據(jù)幀中的發(fā)送時(shí)間并和 PC機(jī)當(dāng)前時(shí)間比較可檢測(cè)時(shí)延;統(tǒng)計(jì)接收到的測(cè)試數(shù)據(jù)幀總數(shù)并和發(fā)送總幀數(shù)比較可檢測(cè)丟包率;計(jì)算單位時(shí)間內(nèi)接收到的字節(jié)數(shù)可檢測(cè)傳輸速率。
基于以上檢測(cè)原理,在微軟.NET Framework平臺(tái)上,開(kāi)發(fā)類似串口調(diào)試工具的測(cè)試軟件[5-6],主界面如圖2。

圖2 測(cè)試軟件
軟件有以下功能:①提供串口發(fā)送網(wǎng)絡(luò)接收和網(wǎng)絡(luò)發(fā)送串口接收兩種模式;②提供定時(shí)、定次和定長(zhǎng)的自動(dòng)發(fā)送模式和手動(dòng)發(fā)送模式;③具有可視化監(jiān)控界面,能實(shí)時(shí)檢測(cè)性能狀況;④與數(shù)據(jù)庫(kù)關(guān)聯(lián),可存儲(chǔ)和查詢測(cè)試結(jié)果。
GPRS性能與網(wǎng)絡(luò)擁塞相關(guān),現(xiàn)通過(guò)不同時(shí)間點(diǎn)做大量重復(fù)測(cè)試,歸納出三種GPRS數(shù)據(jù)通信性能狀況。測(cè)試數(shù)據(jù)采用折線圖形式,坐標(biāo)軸解釋如下:橫坐標(biāo)為測(cè)試數(shù)據(jù)發(fā)送周期(ms);左側(cè)縱坐標(biāo)為平均時(shí)延和平均速率(ms和B/s);右側(cè)縱坐標(biāo)為丟包率(%)。
圖3是網(wǎng)絡(luò)在通暢情況下測(cè)出得通信數(shù)據(jù),圖中展示不同發(fā)送周期下,平均時(shí)延、平均速率和累計(jì)丟包率三項(xiàng)通信性能指標(biāo)的變化趨勢(shì)。由圖知:發(fā)送周期較長(zhǎng)時(shí),數(shù)據(jù)傳輸過(guò)程中平均時(shí)延保持在2 000 ms和4 000 ms之間,此時(shí)平均速率慢慢增大,最大達(dá)2 000 B/s,而且沒(méi)有出現(xiàn)丟包現(xiàn)象(丟包率為0%)。隨著數(shù)據(jù)發(fā)送周期逐漸縮短,平均時(shí)延快速增大,但平均速率沒(méi)有一直增大,反而發(fā)送周期在300ms以下時(shí)出現(xiàn)了丟包情況。因此,為了使三項(xiàng)通信性能指標(biāo)在數(shù)據(jù)傳輸過(guò)程中達(dá)到最優(yōu),應(yīng)選擇合適的發(fā)送周期。圖3可知,發(fā)送周期低于450 ms后平均時(shí)延急劇上升,發(fā)送周期在450 ms到500 ms之間可以使平均速度達(dá)到最大且沒(méi)有出現(xiàn)丟包。所以通信時(shí)將發(fā)送周期控制在450~500 ms之間有較好的性能。

圖3 網(wǎng)絡(luò)通暢情況下的GPRS數(shù)據(jù)通信特性
圖4是網(wǎng)絡(luò)繁忙情況下測(cè)出得通信數(shù)據(jù),同樣也反應(yīng)了三個(gè)指標(biāo)在不同發(fā)送周期下的變化趨勢(shì)。對(duì)比圖3可知,折線的基本走勢(shì)相同,但數(shù)據(jù)傳輸中平均時(shí)延高于網(wǎng)絡(luò)暢通的情況,而且在發(fā)送周期為500 ms的時(shí)候出現(xiàn)丟包。雖然檢測(cè)出來(lái)的平均速率最大達(dá)2 000 B/s卻伴隨著較高的數(shù)據(jù)丟失風(fēng)險(xiǎn),所以通信時(shí)將發(fā)送周期控制在600~800 ms之間能夠獲得較好的性能。

圖4 網(wǎng)絡(luò)繁忙情況下的GPRS數(shù)據(jù)傳輸性能圖
除上面兩種情況外,測(cè)試中還發(fā)現(xiàn)第三種情況如圖5,此時(shí)網(wǎng)絡(luò)非常糟糕復(fù)雜,圖中可知平均時(shí)延和丟包率呈現(xiàn)出U型折線圖,即在發(fā)送周期較長(zhǎng)時(shí)出現(xiàn)了很大的平均時(shí)延和較為嚴(yán)重的丟包現(xiàn)象,但當(dāng)發(fā)送周期逐漸縮小時(shí)測(cè)試出來(lái)得性能與前面分析的情況一致,所以為保證通信質(zhì)量應(yīng)將發(fā)送周期控制在800~1 000 ms之間。

圖5 網(wǎng)絡(luò)情況復(fù)雜時(shí)的GPRS數(shù)據(jù)傳輸特性圖
全文講訴的GPRS通信性能檢測(cè)平臺(tái)能夠有效地檢測(cè)GPRS網(wǎng)絡(luò)的三項(xiàng)性能指標(biāo)。檢測(cè)基本原理是用PC機(jī)自發(fā)自收,因此檢測(cè)形式方便簡(jiǎn)單、數(shù)據(jù)統(tǒng)計(jì)比較容易,自主開(kāi)發(fā)的測(cè)試軟件能夠?qū)崟r(shí)顯示整個(gè)測(cè)試過(guò)程。但是,檢測(cè)平臺(tái)也存在缺陷與不足,首先檢測(cè)得時(shí)延是整個(gè)測(cè)試鏈路的時(shí)延,包括了發(fā)送時(shí)延、傳播時(shí)延、接收時(shí)延等;此外,檢測(cè)對(duì)象僅僅是華為的GPRS模塊EM310,對(duì)其它商家的GPRS模塊并沒(méi)有檢測(cè),所以得出的結(jié)論僅限于此。
[1] 鐘章隊(duì),蔣文怡,李紅君.GPRS通用分組無(wú)線業(yè)務(wù)[M].北京:人民郵電出版社,1-9.
[2] 張科峰,陳莉華.GPRS網(wǎng)絡(luò)性能測(cè)試[J].現(xiàn)代電信科技,2002(01):21-24.
[3] 文志成.通用分組無(wú)線業(yè)務(wù)——GPRS[M].北京:電子工業(yè)出版社,128-133.
[4] 劉永錄,衣紅鋼,鞏憲,等.基于GSM/GPRS的無(wú)線數(shù)據(jù)采集系統(tǒng)[J].信息安全與通信保密,2005(11):112-114.
[5] 馬俊.C#網(wǎng)絡(luò)應(yīng)用編程[M].北京:人民郵電出版社,2010:82-147.
[6] 明日科技.C#開(kāi)發(fā)經(jīng)驗(yàn)技巧寶典[M].北京:人民郵電出版社,2007:2-200.
[7] 張紅霞,王亞微,郭佳,等.基于GPRS通信技術(shù)的遠(yuǎn)程抄表系統(tǒng)設(shè)計(jì)[J].通信技術(shù),2008,41(08):207-209.
[8] 常琨,馬天光,史琳.TCP/IP在GPRS/EGPRS網(wǎng)絡(luò)中的應(yīng)用及影響[J].通信技術(shù),2010,43(12):112-114.