王海沛++李中志
摘要:對GPRS/Internet水質(zhì)監(jiān)測系統(tǒng)在水質(zhì)參數(shù)在線監(jiān)測的數(shù)據(jù)精度和穩(wěn)定性方面的不足,數(shù)據(jù)丟包率高,數(shù)據(jù)反饋速度慢等問題,經(jīng)過對GPRS無線通信與物聯(lián)網(wǎng)網(wǎng)絡(luò)協(xié)議的研究,和在項目實踐中的探索應(yīng)用,提出一種基于Tcp/Ip協(xié)議的有限重傳算法去解決水質(zhì)監(jiān)測中面臨的問題。實驗應(yīng)用和仿真結(jié)果表明,提出的算法應(yīng)用到實際中后,數(shù)據(jù)傳輸丟包率大大降低,數(shù)據(jù)傳輸?shù)姆€(wěn)定性和準確性都有明顯改善。
關(guān)鍵詞:GPRS/Internet;實時水質(zhì)監(jiān)測系統(tǒng);有限重傳;誤碼丟包率
中圖分類號:TP393
文獻標識碼:A
DOI:10.3969/j.issn.1003-6970.2015.08.022
0 引言
城市周邊河流,水庫等作為我國重要的水利工程設(shè)施、水資源保障基地,是保障工農(nóng)業(yè)生產(chǎn)和城鎮(zhèn)居民生活的關(guān)鍵設(shè)施之一。水質(zhì)監(jiān)測與評價是水資源管理與保護的重要基礎(chǔ),是保護水環(huán)境的重要手段。隨著自動控制、通信、計算機和物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,我國很多城市已經(jīng)把遙測監(jiān)測、無線通信、網(wǎng)絡(luò)技術(shù)應(yīng)用于水質(zhì)自動監(jiān)測、計算、分析、評價中去。但是由于通信與網(wǎng)路技術(shù)本身的局限性,影響著水質(zhì)監(jiān)測的準確性與數(shù)據(jù)傳輸?shù)膶崟r性等問題。但是隨著技術(shù)的發(fā)展和項目中的不斷探索實驗,為找到解決這些問題的方案提供了基礎(chǔ)。同時也為提高水質(zhì)監(jiān)測監(jiān)測系統(tǒng)的效率做出貢獻。
1 當前基于GPRS/Internet實時水質(zhì)監(jiān)測系統(tǒng)面臨主要問題
實時水質(zhì)監(jiān)測系統(tǒng)中(圖1),通過GPRS網(wǎng)絡(luò)與因特網(wǎng)進行組網(wǎng),將GPRS數(shù)據(jù)終端的數(shù)據(jù)通過GGSN與因特網(wǎng)相連,將數(shù)據(jù)從地面儀表通過因特網(wǎng)傳送到上位機,這是GPRS數(shù)據(jù)終端常用的方式,現(xiàn)場監(jiān)控點通過水質(zhì)檢測儀自動采集水質(zhì)數(shù)據(jù)信息,通過水質(zhì)監(jiān)測下位機把數(shù)據(jù)經(jīng)過接口傳到GPRS Modem模塊,GPRS Modem模塊根據(jù)預(yù)先設(shè)定在其內(nèi)部的IP地址或者域名來主動訪問網(wǎng)絡(luò)通信服務(wù)器,通過通信服務(wù)器和監(jiān)控中心建立TCP/IP鏈路。用過GPRS網(wǎng)絡(luò)把數(shù)據(jù)發(fā)送到中國移動的內(nèi)部網(wǎng)(CMNET),接著通過GPRS服務(wù)節(jié)點(GGSN),把數(shù)據(jù)傳輸?shù)絀nternet上,并且去尋找在Internet上指定的監(jiān)控中心數(shù)據(jù)接收設(shè)備,數(shù)據(jù)接收設(shè)備通過數(shù)據(jù)接收軟件將數(shù)據(jù)轉(zhuǎn)發(fā)到指定網(wǎng)絡(luò)的數(shù)據(jù)服務(wù)器上,進而對數(shù)據(jù)進行整理保存分析。整個數(shù)據(jù)傳輸通道使用TCP/IP協(xié)議進行數(shù)據(jù)通信。
圖1所示GPRS數(shù)據(jù)終端發(fā)送的數(shù)據(jù)經(jīng)GPRS網(wǎng)絡(luò)中轉(zhuǎn),然后被傳送進因特網(wǎng),因此GPRS數(shù)據(jù)終端發(fā)送的數(shù)據(jù)報文必須符合TCP/IP協(xié)議規(guī)定。一方面由于無線環(huán)境與有線環(huán)境相比,具有誤碼率高、時延長、帶寬窄、信道不對稱以及頻繁的移動等特性,使無線網(wǎng)絡(luò)中的通信質(zhì)量比之于有線網(wǎng)絡(luò)相比通信速率偏低,丟包率高,延時高,可靠性受地理環(huán)境影響比較明顯;另一方面與互聯(lián)網(wǎng)互聯(lián),速率負載不均衡,同時需要嵌入式系統(tǒng)實現(xiàn)TCP/IP協(xié)議族來進行數(shù)據(jù)轉(zhuǎn)換,嵌入式系統(tǒng)任務(wù)加重,且一般的TCP協(xié)議棧的實現(xiàn)非常復(fù)雜且占用較多的處理器時間。由于GPRS向上支持IP協(xié)議,因此在網(wǎng)絡(luò)層以上,可以使用任何IP協(xié)議所支持的協(xié)議,通常在傳輸層會用到TCP協(xié)議。眾所周知,TCP協(xié)議是面向連接的可靠通信協(xié)議,在傳輸層使用TCP協(xié)議會大大提高通信質(zhì)量,但是TCP協(xié)議的固有缺陷卻并不能保證通信的可靠。TCP協(xié)議通過頭部校驗和的計算以及滑窗協(xié)議是提供了可靠性保障和流量控制。然而TCP協(xié)議中校驗和的計算方法是簡單的將校驗位補零,然后按照每16位字以二進制反碼求和:J=∑Xi。由于網(wǎng)絡(luò)中異常干擾的存在,報文信息容易因為異常干擾出現(xiàn)某些偶然錯誤,使得TCP中的校驗和就無法檢測報文中出現(xiàn)的錯誤。此外, 在實時水質(zhì)監(jiān)測系統(tǒng)中,監(jiān)測環(huán)境比較惡劣,TCP連接斷開率高,因此需要經(jīng)常進行TCP連接,嚴重影響水質(zhì)監(jiān)測參數(shù)傳輸?shù)膶崟r性。而在GPRS網(wǎng)絡(luò)中,特別是在移動通信的高峰期,延遲甚至能達到秒以上的程度,這種程度的延遲在行業(yè)標準里面被認為是數(shù)據(jù)丟失,進而也影響水質(zhì)監(jiān)測的準確性。因此找到一種既能符合GPRS/Internet協(xié)議,又能降低傳輸延遲和誤碼率,提高水質(zhì)實時監(jiān)測傳輸效率和準確性的方案已經(jīng)成為影響水質(zhì)監(jiān)測項目成功與否的關(guān)鍵因素。
2 解決方案的設(shè)計與實現(xiàn)
基于上述分析的當前實時水質(zhì)監(jiān)測系統(tǒng)在數(shù)據(jù)傳輸中存在的問題,結(jié)合在項目中的實驗探索,本文設(shè)計提出了基于TCP/IP協(xié)議的有限重傳算法去解決上述問題。本算法采用對TCP/IP協(xié)議的數(shù)據(jù)鏈路層、網(wǎng)絡(luò)傳輸層和應(yīng)用層分層實現(xiàn)的思想。在TCP/IP協(xié)議的有限重傳算法中傳輸層使用的是受限制的UDP協(xié)議,由于UDP協(xié)議是無連接的不可靠協(xié)議。因此為了實現(xiàn)可靠的數(shù)據(jù)傳輸,在應(yīng)用層使用了交錯擴展海明編碼來保證數(shù)據(jù)通信的可靠性。與上位機TCP/IP協(xié)議相比,由于下位機平臺的計算能力以及硬件性能的限制,無法使用完整的TCP/IP協(xié)議棧,并需要綜合GPRS網(wǎng)絡(luò)的特點進行改進,除了幀格式相同之外,使用的各層協(xié)議相差較大,數(shù)據(jù)鏈路層則使用改進的PPP協(xié)議,網(wǎng)絡(luò)層除了IP協(xié)議外還使用了ICMP協(xié)議,傳輸層則使用了UDP協(xié)議。其算法流程如圖2所示。
2.1 有限重傳算法數(shù)據(jù)鏈路層協(xié)議設(shè)計
數(shù)據(jù)鏈路層主要解決數(shù)據(jù)成幀和傳輸問題,考慮到水質(zhì)監(jiān)測系統(tǒng)的實時性,而且還是點對點鏈路,所以在本算法中,數(shù)據(jù)鏈路層使用改進型PPP協(xié)議。PPP幀格式如圖3所示,PPP協(xié)議不需要使用幀編號,且支持多種協(xié)議,持多種鏈路類型(串行或并行,同步或異步等),所以可以降低網(wǎng)絡(luò)數(shù)據(jù)的傳輸開銷。
數(shù)層重傳算法特點是GPRS模塊只與固定IP地址的基站進行通信,且下位機無需進行自組網(wǎng)以及復(fù)雜的路由,無需進行IP地址的路由尋址,減少開銷。因此,在基于有限重傳的TCP/IP協(xié)議中,在IP協(xié)議時只需進行簡單的封裝IP頭、解封IP頭。具體算法過程如下:
①下位機發(fā)送請求,請求選項:位掩碼為OxFFFFFFFF,認證協(xié)議為Oxc023,指定認證協(xié)議為PAP協(xié)議。該請求選項為水質(zhì)監(jiān)測站發(fā)送數(shù)據(jù)包的認證模式。②GPRS基站接收請求并向下位機發(fā)送確認,下位機發(fā)送數(shù)據(jù)包的格式確定完成。⑧下位機發(fā)送拒絕或者拋棄報文。拒絕選項:位掩碼只能為OxFFFFFFFF。拋棄選項為:控制壓縮域?qū)傩耘c協(xié)議壓縮域?qū)傩?。④GPRS基站發(fā)送請求報文,此時只請求認證域為PAP認證。⑤下位機發(fā)送確認報文,接收報文格式協(xié)商完畢。⑥下位機發(fā)送用戶名與密碼給GPRS基站。⑦GPRS基站發(fā)送確認,確認報文為下位機發(fā)送的用戶名與密碼。⑧下位機發(fā)送報文。報文數(shù)據(jù)段為空。此報文是為了激活I(lǐng)PCP協(xié)商而發(fā)送。⑨GPRS基站發(fā)送帶有自己的內(nèi)網(wǎng)(該IP地址為192.168.X.X)IP地址的請求報文。⑩下位機發(fā)送請求報文,由于GPRS模塊中的SIM卡沒有開通綁定IP地址服務(wù),只能靠GPRS基站分配臨時IP。因此,在下位機發(fā)送的請求IP中,使用Ox00000000,表示希望上位機分配IP。⑩GPRS基站收到發(fā)送的IP請求報文,然后在自己的內(nèi)網(wǎng)IP池中選擇空閑IP,作為建議IP發(fā)送給下位機。⑥下位機解析出GPRS基站分配的IP地址,并將此IP地址作為自己的IP地址向GPRS基站發(fā)送請求報文。⑥GPRS基站發(fā)送確認報文。整個IP地址分配過程完畢,下位機可以使用該IP地址進行通信了。endprint