先簡單的說一下TCP與UDP的區(qū)別:
1。基于連接與無連接;
2。對系統(tǒng)資源的要求(TCP較多,UDP少);
3。UDP程序結(jié)構(gòu)較簡單;
4。流模式與數(shù)據(jù)報模式 ;
5。TCP保證數(shù)據(jù)正確性,UDP可能丟包,TCP保證數(shù)據(jù)順序,UDP不保證。
另外結(jié)合GPRS網(wǎng)絡(luò)的情況具體的談一下他們的區(qū)別:
1。TCP傳輸存在一定的延時,大概是1600ms(移動提供),UDP響應(yīng)速度稍微快一些。
2。TCP包頭結(jié)構(gòu):
源端口16位
目標端口 16位
序列號 32位
回應(yīng)序號 32位
TCP頭長度 4位
reserved 6位
控制代碼6位
窗口大小16位
偏移量16位
校驗和16位
選項 32位(可選)
這樣我們得出了TCP包頭的小長度,為20字節(jié)。
UDP包頭結(jié)構(gòu):
源端口16位
目的端口16位
長度 16位
校驗和 16位
可見,UDP的包小很多。確實如此,因為UDP是非可靠連接。設(shè)計初衷就是盡可能快的將數(shù)據(jù)包發(fā)送出去,所以UDP協(xié)議顯得非常精簡。
3。GPRS網(wǎng)絡(luò)端口資源,UDP十分緊缺,變化很快;而TCP采用可靠鏈路傳輸,不存在端口變化的問題。
在工業(yè)場合的應(yīng)用,一般都需具備以下特點:
1。要求時時傳輸,但也有一些場合是定時傳輸,總的來說在整個傳輸過程中要求服務(wù)器中心端和GPRS終端設(shè)備能相互的、時時的傳輸數(shù)據(jù)。
TCP本身就是可靠鏈路傳輸,提供一個時時的雙向的傳輸通道,能很好的滿足工業(yè)現(xiàn)場傳輸?shù)囊蟆5荊PRS網(wǎng)絡(luò)對TCP鏈路也存在一個限制:此條鏈路在長時間(大概20分鐘左右,視具體情況而定)沒有數(shù)據(jù)流量,會自動降低此鏈路的優(yōu)先級直至強制斷開此鏈路。所以在實際使用中也會采用心跳包(一般是一個字節(jié)的數(shù)據(jù))來維持此鏈路。
UDP由于自身特點,以及GPRS網(wǎng)絡(luò)UDP端口資源的有限性,在一段時間沒有數(shù)據(jù)流量后,端口容易改變,產(chǎn)生的影響就是從服務(wù)器中心端向GPRS終端發(fā)送數(shù)據(jù),GPRS終端接收不到。具體的原因就是移動網(wǎng)關(guān)從中作了中轉(zhuǎn),需要隔一定時間給主機發(fā)UDP包來維持這個IP和端口號,這樣主機就能主動給GPRS發(fā)UDP包了并且我在測試中發(fā)現(xiàn),這個間隔時間很短,我在1多分鐘發(fā)一次UDP包才能夠維持,但是再長可能移動網(wǎng)關(guān)那邊就要丟失這個端口了,此時如果主機想主動發(fā)數(shù)據(jù)給GPRS,那肯定是不行的了,只有GPRS終端設(shè)備再發(fā)一個UDP包過去,移動重新給你分配一個中轉(zhuǎn)IP和端口,才能夠進行雙向通訊。
2。要求數(shù)據(jù)的丟包率較小。有些工業(yè)場合,例如電力、水務(wù)抄表,環(huán)保監(jiān)測等等,不容許傳輸過程中的數(shù)據(jù)丟失或者限度的要求數(shù)據(jù)的可靠性。
從這一點來看,很顯然在無線數(shù)據(jù)傳輸過程中,TCP比UDP更能保證數(shù)據(jù)的完整性、可靠性,存在更小的丟包率。在實際測試中也是如此。以廈門桑榮科技有限公司提供的GPRS終端設(shè)備為例:TCP的在千分之9,UDP的在千分之17左右。
3。要求降低費用。目前有很大部分GPRS設(shè)備的應(yīng)用都是取代前期無線數(shù)傳電臺,除了使用范圍外,其考慮的主要問題就是費用。能降低費用當然都是大家愿意接受的。和費用直接相關(guān)的就是流量了,流量低,費用就低了。
雖然TCP本身的包頭要比UDP多,但是UDP在實際應(yīng)用中往往需要維護雙向通道,就必須要通過大量的心跳包數(shù)據(jù)來維護端口資源。總的比較起來,UDP的實際流量要比TCP還要大。很多使用者在初期的時候并不了解UDP需要大量心跳包來維持端口資源這個問題,往往都認為UDP要比TCP更節(jié)省流量,實際上這里存在著一個誤區(qū)。
4。在某些特定的應(yīng)用場合,例如一些銀行的時時交互系統(tǒng),對響應(yīng)速度要求很高,此時數(shù)據(jù)傳輸頻率較快,不需要大量心跳包維持UDP端口資源,采用UDP就比較有利了。
5。在目前的1:N的傳輸模式中,既有多個GPRS終端設(shè)備往一個服務(wù)器中心傳輸數(shù)據(jù),此時采用UDP會比TCP要好的多,因為UDP耗用更少的系統(tǒng)資源。但是在實際應(yīng)用中卻發(fā)現(xiàn),很多用戶還是采用TCP的傳輸方式,建立二級中心1:A(1:N),即每一個分中心對應(yīng)N/A臺設(shè)備,獨立處理數(shù)據(jù),再統(tǒng)一將數(shù)據(jù)傳送到主中心。這樣既能保證了傳輸過程中采用了TCP的傳輸協(xié)議,又能很好處理了中心服務(wù)器的多鏈路的系統(tǒng)耗用的問題。
總的來說,TCP/IP協(xié)議更能滿足目前各行業(yè)對遠程數(shù)據(jù)傳輸?shù)囊螅峁└€(wěn)定更便利的傳輸通道,很好的滿足了遠程數(shù)據(jù)傳輸?shù)囊蟆?
TCP/IP協(xié)議 VS UDP協(xié)議
更新時間: 2006-02-22 14:21:26來源: 粵嵌教育瀏覽量:2718