TCP與UDP的區別

    TCP提供的是面向連接的數據服務,而UDP是非面向連接的,因此TCP可靠性比較高,可以使數據包

不出現丟包亂序,UDP的可靠性就比較低了,但是TCP可靠性高建立在巨大的網絡開銷上的,因此它

的效率相對UDP要低很多。

    有些應用,對數據傳輸可靠性要求非常高,例如大家瀏覽網頁,通過網頁註冊帳號、轉帳等服務,

這是不容許出錯的,使用TCP協議能把出錯的可能性降到最低(當然,網絡自身很糟糕,TCP協議也沒辦法)。

但是,提供這種可靠服務,會加大網絡帶寬的開銷,因爲“虛擬信道”是持續存在的,同時網絡中還會出現

大量的ACK和FIN包!  

    因此,魚和熊掌不可兼得,需根據實際情況選擇傳輸協議.TCP協議提供了可靠的數據傳輸,但是其

擁塞控制、數據校驗、重傳機制的網絡開銷很大,不適合實時通信,所以選擇開銷很小的UDP協議來傳輸數據。   

    UDP 協議是無連接的數據傳輸協議並且無重傳機制,會發生丟包、收到重複包、亂序等情況。而對

於數據精確性要求不高的狀態數據以及視頻數據,丟包的影響不大。因爲會不斷收到新的包,丟失的個別包

會有新的包來覆蓋,所以只需在遠程控制系統的通信部分自行處理亂序及重複包的問題,而對於丟包的問題

一般不作處理。    但對於命令包這種需要精確收發的數據, 可在程序的開發中加入丟包重發和超時丟

棄的處理。 當然,如果開發的是對於實時性要求不高的事件型控制命令的傳輸,不希望發生指令的丟失也

可以直接採用TCP協議。TCP的重傳機制正好適合這種情況。 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章