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