基于GPRS的車隊管理系統(tǒng)傳輸協(xié)議
由于土地資源的限制,各級道路建設的速度遠遠趕不上機動車輛的增長速度,造成城市交通擁擠,加上人們對機動車安全措施的重視,使得車隊管理系統(tǒng)越來越多地受到業(yè)界的關注。
典型的車隊管理系統(tǒng)由監(jiān)控中心,通信網絡和車載終端3部分組成。
在通信網絡部分,GPRS(通用分組無線電業(yè)務)由于其永遠在線、流量計費、高速傳輸等特點已成為廣大車隊管理系統(tǒng)制造商的首選,GPRS是在現(xiàn)有的GSM(全球移動通信系統(tǒng))網絡上增加了3種新的邏輯網絡實體并進行相應的軟件升級而發(fā)展起來的,這3種邏輯網絡是:SGSN(服務GPRS支持節(jié)點)、GGSN(網關GPRS支持節(jié)點)和PCU(分組控制單元)。應用中,用戶在GPRS網絡上可任意選擇UDP(通用數據報協(xié)議)與TCP(傳輸控制協(xié)議),而沒有明確的標準。
本文將兩種協(xié)議進行對比,從可靠性、適用性、資費等方面深入討論車隊監(jiān)控系統(tǒng)中適合采用哪種數據傳輸協(xié)議。
1 兩種傳輸協(xié)議的定義與主要特征的比較
UDP是一個簡單的面向數據報的運輸層協(xié)議,進程的每個輸出操作都正好產生一個UDP數據報,并組裝成一份待發(fā)送的IP數據報,UDP數據報封裝成一份IP數據報的格式如圖1所示。
UDP不提供可靠性連接,它把應用程序傳給IP層的數據發(fā)送出去,但是并不保證它們能到達目的地。
TCP和UDP都使用相同的網絡層IP。TCP提供了一種可靠的面向連接的字節(jié)流運輸層服務。
TCP向應用層提供與UDP完全不同的服務。TCP提供一種面向連接的、可靠的字節(jié)來服務,TCP將用戶數據打包構成報文段;它發(fā)送數據后啟動一個定時器。等待對端數據確認;另一端對收到的數據進行確認,對失序的數據重新排序,丟棄重復數據;TCP提供端到端的流量控制,并計算和驗證一個強制性的端到端檢驗和。
面向連接意味著兩個使用TCP的應用(通常是一個客戶和一個服務器)在彼此交換數據之前必須先建立一個TCP連接。這一過程與打電話很相似,先撥號振鈴,等待對摘機說"喂",然后才說明是誰。
TCP傳輸協(xié)議連接過程如下,首先建立連接,TCP用3個報文段完成連接的建立,這個過程也稱為三次握手(three-way handshake),如圖2所示。
終止一個連接采用的是修改的三次握手協(xié)議,即要經過4次握手,如圖3所示。
數據發(fā)送必須經過接收方確認,并且有超時重傳等保障機制,這是TCP傳輸有一定保障的根本原因,可以看到,完成一次數據傳送,除了完成連接、終止連接外,至少還需要一個數據分組與一個ACK分組。
UDP與TCP提供不同的傳輸方式和傳輸質量,TCP以增加網絡開銷的方式提供傳輸保障。在GPRS網絡實際測試,網絡正常情況下,從GPRS DTU→GPRR網絡→互聯(lián)網→用戶數據中心這個通路上,UDP傳輸有效性大于99%,TCP傳輸有性約為100%。
2 兩種傳輸協(xié)議傳輸效率的比較
在只考慮UDP/TCP分組情況下,發(fā)送應用數據,數據包為IP頭+UDP頭/TCP頭+應用數據。GPRS網絡計費按照流量計費,數據傳送效率就顯得十分重要。由于目前分組數據機費按照網絡協(xié)議2層以上數據計算(即IP包數據),傳輸效率按下式計算:
表1列舉了一些數據長度時UDP和TCP的傳輸效率。 |
通過上述分析,可看到單包傳送的數據量比較小時,UDP傳輸效率明顯高于TCP。以上只是數據分組的傳輸效率,TCP還需要連接、終止連接、ACK包等額外開銷,UDP與TCP實際傳送效率差別將遠大于表1中的計算效率。
在車隊管理系統(tǒng)中,傳輸頻率最高的是車輛的定位信息。車載終端通過GPS(全球定位系統(tǒng))接收機接收到的定位信息經過車載終端的微控制器處理后,形成關于車輛的UTC(協(xié)調世界時間)、日期、經緯度以及地面速度等信息,加上該車輛的標志,形成GPS報文段發(fā)送給監(jiān)控中心,總的數據量為12字節(jié)(時間3字節(jié),日期3字節(jié),經緯度4字節(jié),速度1字節(jié),標志1字節(jié)),UDP效率為92.30%,TCP效率為82.75%,而且由于數據量小,發(fā)送間隔通常從幾秒到幾分,數據報文之間發(fā)送間隔通常超過TCP需要的最大確認間隔,導致幾乎每個數據報文都需要在TCP中的ACK報文,因而實際傳輸中TCP的效率要更低一些。此外,傳輸保障是由應用協(xié)議與網絡協(xié)議共同完成的,要充分選擇發(fā)揮應用協(xié)議與網絡協(xié)議的優(yōu)勢,達到總的效率最高、效果最好的目的,在應用協(xié)議中,大多具有基本的傳輸保障功能,通過應用層協(xié)議中超時重傳等功能完全可以滿足對UDP中少量丟包情況的處理,按照UDP丟包的概率,重傳概率也在1左右,如果選用TCP ,將導致數據量大大增加。GPRS是按流量計費的,因此采用TCP則意味著更大的成本損耗。
3 兩種傳輸協(xié)議適應性的比較
車隊管理系統(tǒng)的實時性要求很高,超過時效的數據沒有任何用途。TCP連接保證數據傳輸的可靠性,每個具體TCP實現(xiàn)必須選擇一個報文段MSL(最大生存時間),它是任何報文段被丟棄前在網絡內的最長時間,這個時間是有限的,RFC 793[Postel 1981c]指出MSL為2min。然而,實現(xiàn)中的常用值是30s、1min或2min。使用UDP連接,當網絡擁塞時,部分數據包被丟棄,但可以改善接收數據嚴重滯后的情況,如果終端連接數量大,使用TCP連接可能帶來更嚴重的問題,GPRS終端與服務器建立了TCP連接并發(fā)送數據后,或者服務器向正在請求連接的終端發(fā)出SYN ACK應答報文后可能無法收到對端的ACK報文,這種情況下發(fā)送端一般會重試并等待一段時間后終止這個連接,一般說來這個時間約為30s-2min。一個終端出現(xiàn)異常導致服務器的一個線程等待1min不是大問題,但如果網絡擁塞導致大量這種情況,服務器端為了維護一個非常大的半連接列表將消耗非常多的資源,即使是簡單的保存并遍歷也會消耗非常多的CPU時間和內存,何況還要不斷對這個列表中的IP進行重試。如果服務器的TCP/IP棧不夠強大,最后的結果往往是堆棧溢出崩潰。即使服務器系統(tǒng)足夠強大,也忙于處理TCP連接請求以及重傳數據導致系統(tǒng)性能嚴重下降,大量重傳數據進一步加劇GPRS網絡的擁塞情況,嚴重時可以讓GPRS網絡及服務器系統(tǒng)崩潰,對應用于車隊管理系統(tǒng)中幾十、幾百甚至上千個車載中斷終端的情況,其后果是難以想象的。
4 結束語
本文對兩種傳輸協(xié)議進行了比較,可見對于車隊管理系統(tǒng)這種多點分散、數據量小、實時性要求高、終端數量多的應用,采用UDP會更好一些。
tcp/ip相關文章:tcp/ip是什么
評論