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

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

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

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

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

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


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