王海沛++李中志



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