GPRS應用于個人商務網(wǎng)絡,主要訪問網(wǎng)頁、收發(fā)郵件等,各種應用有確定的協(xié)議,但在工業(yè)數(shù)據(jù)傳輸?shù)刃袠I(yè)應用領域中,用戶面對可選的UDP與TCP傳輸,沒有明確的標準,業(yè)主單位、設備供應商、系統(tǒng)集成商常常為在GPRS網(wǎng)絡上選用何種傳輸協(xié)議進行長時間討論與測試。本文將兩種協(xié)議進行對比,從可靠性、適用性、資費等方面深入討論在GPRS網(wǎng)絡上,兩種數(shù)據(jù)傳輸協(xié)議在不同應用領域的適用性。
1、GPRS行業(yè)應用
GPRS當前應用廣泛的行業(yè)有電力、油田、工業(yè)控制、運輸、金融、證券、商業(yè)、公共安全業(yè)、天氣預報、交通信息實時發(fā)布等,應用特點是數(shù)據(jù)量小,發(fā)送時間間隔大,或不定時發(fā)送。通過GPRS網(wǎng)絡進行數(shù)據(jù)傳輸,具有成本低、組網(wǎng)迅速靈活、范圍廣、專業(yè)隊伍維護的優(yōu)勢。
應用中,用戶在GPRS網(wǎng)絡上可選擇UDP與TCP傳輸協(xié)議,由于沒有明確的標準,選用何種協(xié)議讓業(yè)主單位、設備供應商、系統(tǒng)集成商常常為在選用何種傳輸協(xié)議進行長時間討論,并且進行了大量測試,幾乎每個項目都要進行小規(guī)模試驗,影響了GPRS在行業(yè)應用的進程。系統(tǒng)運行效果除受協(xié)議選擇影響外,還受到網(wǎng)絡質量、使用方式、外圍設備的影響。很多試驗的結果不盡一致,不能準確反映TCP/UDP協(xié)議選擇帶來的效果。讓TCP/UDP選擇再次陷入新一輪討論與測試過程。
2、兩種傳輸協(xié)議的定義與主要特征的比較
關于UDP、TCP兩種協(xié)議的詳細講解請參閱相關資料,這里針對行業(yè)應用的特點進行說明。
UDP是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議:進程的每個輸出操作都正好產(chǎn)生一個UDP數(shù)據(jù)報,并組裝成一份待發(fā)送的IP數(shù)據(jù)報。UDP數(shù)據(jù)報封裝成一份IP數(shù)據(jù)報的格式如圖所示:

UDP不提供可靠性連接:它把應用程序傳給IP層的數(shù)據(jù)發(fā)送出去,但是并不保證它們能到達目的地。
TCP和UDP都使用相同的網(wǎng)絡層(IP)。TCP提供了一種可靠的面向連接的字節(jié)流運輸層服務。如圖所示:

TCP向應用層提供與UDP完全不同的服務。TCP提供一種面向連接的、可靠的字節(jié)流服務。TCP將用戶數(shù)據(jù)打包構成報文段;它發(fā)送數(shù)據(jù)后啟動一個定時器,等待對端數(shù)據(jù)確認;另一端對收到的數(shù)據(jù)進行確認,對失序的數(shù)據(jù)重新排序,丟棄重復數(shù)據(jù);TCP提供端到端的流量控制,并計算和驗證一個強制性的端到端檢驗和。
面向連接意味著兩個使用TCP的應用(通常是一個客戶和一個服務器)在彼此交換數(shù)據(jù)之前必須先建立一個TCP連接。這一過程與打電話很相似,先撥號振鈴,等待對方摘機說“喂”,然后才說明是誰。
TCP傳輸協(xié)議連接過程:
首先建立連接,TCP用三個報文段完成連接的建立。這個過程也稱為三次握手(three-way handshake)。如圖所示:

終止一個連接要經(jīng)過4次握手。如圖所示:

數(shù)據(jù)發(fā)送必須經(jīng)過接收方確認,并且有超時重傳等保障機制,這是TCP傳輸有一定保障的根本原因。

可以看到,完成一次數(shù)據(jù)傳送,除了完成連接、終止連接外,至少還需要一個數(shù)據(jù)分組與一個ACK分組。
UDP與TCP提供不同的傳輸方式與不同的傳輸質量,TCP以增加網(wǎng)絡開銷的方式提供傳輸保障。在GPRS網(wǎng)絡實際測試,當網(wǎng)絡正常情況下,從GPRS DTU->GPRS網(wǎng)絡->互聯(lián)網(wǎng)->用戶數(shù)據(jù)中心這個通路上,UDP傳輸有效性>99%,TCP傳輸有效性≈100%
3、傳輸效率
在只考慮UDP/TCP分組情況下,發(fā)送應用數(shù)據(jù),數(shù)據(jù)包為IP頭+UDP/TCP頭+應用數(shù)據(jù)。GPRS網(wǎng)絡計費按照流量計費,數(shù)據(jù)傳送效率就顯得十分重要。由于目前分組數(shù)據(jù)機費按照網(wǎng)絡協(xié)議二層以上數(shù)據(jù)計算(即IP包數(shù)據(jù)),傳輸效率計算按照以下公式計算:
包傳輸效率= 數(shù)據(jù)長度/(數(shù)據(jù)長度+UDP/TCP頭長度)
數(shù)據(jù)長度
|
UDP效率
|
TCP效率
|
8
|
50.00%
|
28.57%
|
16
|
66.67%
|
44.44%
|
32
|
80.00%
|
61.54%
|
64
|
88.89%
|
76.19%
|
128
|
94.12%
|
86.49%
|
256
|
96.97%
|
92.75%
|
512
|
98.46%
|
96.24%
|
1024
|
99.22%
|
98.08%
|
通過協(xié)議內容分析,可以看到單包傳送的用戶數(shù)據(jù)量比較小時,UDP協(xié)議傳輸效率明顯高于TCP協(xié)議。行業(yè)應用數(shù)據(jù)量比較小,不同行業(yè)應用選擇協(xié)議時,需要仔細分析應用層數(shù)據(jù)單幀字節(jié)數(shù)。
以上只是數(shù)據(jù)分組的傳輸效率,TCP協(xié)議還需要連接、終止連接、ACK包等額外開銷,UDP與TCP實際傳送效率差別將遠大于上表中的計算效率差別。
4、網(wǎng)絡承載能力
GPRS分組業(yè)務信道可采用CS-1~CS-4不同的編碼方式(其數(shù)據(jù)速率分別為9.05kbit/s、13.4kbit/s、15.6kbit/s、21.4kbit/s)。采用編碼方式為CS-4時,且無線環(huán)境良好,信道充足的情況下,可以實現(xiàn)GPRS網(wǎng)絡支持的理論最高速率171.2kbps,這種速率完全可以支持一些多媒體圖像傳輸業(yè)務等對帶寬要求較高的應用業(yè)務。但實際數(shù)據(jù)傳輸速率受網(wǎng)絡編碼方式和終端支持的因素影響,CS-3、CS-4的接收參考靈敏度較低,這兩種編碼方式只有在距離基站較近且信號較好的地區(qū)才能夠真正使用。
目前,GPRS采用CS-2信道編碼方案。保證實現(xiàn)小區(qū)的90%以上覆蓋,滿足C/I不低于9dB的要求。在小區(qū)內,提供上下行分別為1~4 GPRS信道(PDCH)。GPRS無線信道的分配初期至少設置一個靜態(tài)的分組數(shù)據(jù)業(yè)務信道,以后根據(jù)GPRS的流量調整PDCH分配。按照話音優(yōu)先的原則,動態(tài)信道將優(yōu)先分配給話音信道,保證GSM質量。所以GPRS帶寬為13.4Kbps~54.4Kbps。
在中國移動GPRS網(wǎng)絡上,采用上下行不對稱方法分配信道,上行小,下行大,通常為1+2、1+3、2+4等。這主要是為客戶訪問互聯(lián)網(wǎng)設置的,而在行業(yè)應用中,出現(xiàn)的情況正相反,上行數(shù)據(jù)大于下行數(shù)據(jù)。因此,在考慮GPRS網(wǎng)絡帶寬問題時,應該考慮帶寬較窄的上行帶寬。
GPRS業(yè)務的特點是數(shù)據(jù)通道共享,這帶來了按流量計費的便利,但小區(qū)內,終端數(shù)量多,數(shù)據(jù)量大等情況下,終端必須在有限的帶寬中競爭,導致掉線率高,上網(wǎng)困難等現(xiàn)象。這也就是GPRS開通一年之久后體現(xiàn)出的新應用特點:GPRS在個人用戶市場上競爭力不強,但是在大量的行業(yè)數(shù)據(jù)傳輸上具有非常強的優(yōu)勢。
有限的帶寬資源對應用提出了要求:數(shù)據(jù)量小、傳輸效率高。
5、行業(yè)應用的需求
GPRS行業(yè)應用,無論是電力抄表、管網(wǎng)監(jiān)測、氣象采集、金融業(yè)務等,都是終端設備與數(shù)據(jù)服務器之間的通訊,在提供GPRS傳輸方式之前,有電臺、MODEM(電話線)、專線、直接電纜連接等方式。這些方式提供的通訊質量差異較大。不同的應用,對傳輸可靠性的要求是不同的,有的可以接受少量數(shù)據(jù)丟失,有的必須確保任何數(shù)據(jù)的不丟失,有的不接受超時效數(shù)據(jù)。不同的應用中,相同的特點是不依賴傳輸手段提供的數(shù)據(jù)保障,終端與數(shù)據(jù)中心之間有各自的通訊協(xié)議,通過誤碼/超時重傳等方法,確保數(shù)據(jù)的安全準確。
采用UDP協(xié)議傳送,UDP包等同應用數(shù)據(jù)包,基本沒有額外開銷。
TCP協(xié)議按照協(xié)議窗口進行多包統(tǒng)一確認的方式,可以減少ACK報文的數(shù)量,但是在行業(yè)應用中,應用的特點是數(shù)據(jù)量小,發(fā)送間隔通常從幾秒到幾小時之間不等,數(shù)據(jù)報文之間發(fā)送間隔通常超過TCP協(xié)議需要的最大確認間隔,導致幾乎每個數(shù)據(jù)報文都需要在TCP協(xié)議中的ACK報文。


在整個應用系統(tǒng)中,傳輸保障是由應用協(xié)議與網(wǎng)絡協(xié)議共同完成的,要充份選擇發(fā)揮應用協(xié)議與網(wǎng)絡協(xié)議的優(yōu)勢,達到總的效率最高、效果最好的目的。在應用協(xié)議中,大多具有基本的傳輸保障功能,通過應用層協(xié)議中超時重傳等功能完全可以滿足對UDP協(xié)議中少量丟包情況的處理,按照UDP丟包的概率,重傳概率也在1%左右。如果選用TCP協(xié)議,將導致數(shù)據(jù)量大大增加。兩種協(xié)議傳輸過程如圖所示。
6、其它需要考慮的問題
TCP連接保證數(shù)據(jù)傳輸?shù)目煽啃,每個具體TCP實現(xiàn)必須選擇一個報文段最大生存時間MSL (Maximum Segment Lifetime)。它是任何報文段被丟棄前在網(wǎng)絡內的最長時間。我們知道這個時間是有限的。RFC 793 [Postel 1981c] 指出MSL為2分鐘。然而,實現(xiàn)中的常用值是30秒,1分鐘,或2分鐘。對于部分實時監(jiān)控系統(tǒng),超過時效的數(shù)據(jù)是沒有任何用途。使用UDP連接,當網(wǎng)絡擁塞時,部分數(shù)據(jù)包被丟棄,但可以改善接收數(shù)據(jù)嚴重滯后的情況。
GPRS在電力系統(tǒng)中的應用,剛剛起步,處于小規(guī)模試用階段,無論選用UDP還是TCP協(xié)議,都對網(wǎng)絡及服務器系統(tǒng)不會產(chǎn)生明顯壓力,使用TCP協(xié)議時,可靠的傳輸顯得更為便利。但TCP協(xié)議卻不適合大規(guī)模使用。城市電力配網(wǎng)自動化、抄表等應用,一個系統(tǒng)可能有成千上萬臺終端,如果選用TCP連接,服務器除了完成大量數(shù)據(jù)處理功能,還需要完成對大量GPRS終端的TCP連接保持。這對服務器的承載能力提出了嚴格的要求。
如果終端連接數(shù)量大,使用TCP連接協(xié)議可能帶來更嚴重的問題。GPRS終端與服務器建立了TCP連接后發(fā)送數(shù)據(jù)后,或者服務器向正在請求連接的終端發(fā)出SYN+ACK應答報文后可能無法收到對端的ACK報文,這種情況下發(fā)送端一般會重試并等待一段時間后終止這個的連接,一般來說這個時間大約為30秒~2分鐘;一個終端出現(xiàn)異常導致服務器的一個線程等待1分鐘不是大問題,但如果網(wǎng)絡擁塞導致大量這種情況,服務器端將為了維護一個非常大的半連接列表而消耗非常多的資源,即使是簡單的保存并遍歷也會消耗非常多的CPU時間和內存,何況還要不斷對這個列表中的IP進行重試。如果服務器的TCP/IP棧不夠強大,最后的結果往往是堆棧溢出崩潰。即使服務器系統(tǒng)足夠強大,也忙于處理TCP連接請求以及重傳數(shù)據(jù)導致系統(tǒng)性能嚴重下降。大量重傳數(shù)據(jù)進一步加劇GPRS網(wǎng)絡的擁塞情況,嚴重時可以讓GPRS網(wǎng)絡及服務器系統(tǒng)崩潰。
7、結論
在行業(yè)應用中,需要仔細分析行業(yè)應用特點,根據(jù)需要選擇UDP或TCP協(xié)議。多點分散、數(shù)據(jù)量小、實時性要求高、終端數(shù)量多的應用,可以考慮UDP的協(xié)議。對于一些數(shù)據(jù)量大、數(shù)據(jù)可靠性要求十分嚴格、終端數(shù)量較少,以及部分特殊應用,TCP會好一點。
|