TCP和UDP協議

兩者都是通信協議, TCP、UDP 是傳輸層協議,但他們的通信機制與應用場景不同,下面來闡述兩者的區別以及它們的應用場景。

導讀

特點對比

TCP(Transmission Control Protocol),又叫傳輸控制協議,UDP(User Datagram Protocol),又叫用戶數據報協議,它們都是傳輸層的協議,但兩者的機制不同,它們的區別如下

特點 TCP UDP
連接性 面向連接 面向非連接
可靠性 可靠 不可靠
傳輸效率

TCP

從如上表格看到,TCP 是面向連接的,并且是一種可靠的協議,在基于 TCP 進行通信時,通信雙方需要先建立一個 TCP 連接,建立連接需要經過三次握手,握手成功才可以進行通信,關于 TCP 三次握手、四次揮手的過程

TCP 協議是一種可靠的傳輸協議,可靠性是指在通信的角度來看,可靠即要確保通信雙方的通信信息不會丟失,若丟失了保證能夠對其進行恢復,并且收到的信息內容與原發送內容一樣。

在 TCP 中,傳輸報文都是通過建立的虛擬連接來進行傳輸,發送端傳輸的每一個 TCP 報文,都會對其進行編號(編號是由于網絡傳輸的原因,發送的報文可能會亂序到達,因此需要根據編號對報文進行重排),并且開啟一個計時器;當接收端收到報文后,并且通過校驗和對收到的報文數據進行校驗,若校驗成功則會返回一個確認報文,告知發送端我已經成功收到該報文了;若發送端在計時器結束前仍未收到確認報文,則認為接收端接收失敗,則會重傳該報文;服務端若收到重復報文(根據編號發現已經是收到了),則會將該報文丟棄。

因此,從上面的機制可以知道,TCP 是通過重傳、確認和校驗和的方式來確保可靠。

注:校驗和并不能檢驗數據是否被篡改過,想要保證數據的完整性可以了解一下數字簽名

UDP

UDP 是一種面向無連接,且不可靠的協議,在通信過程中,它并不像 TCP 那樣需要先建立一個連接,只要(目的地址,端口號,源地址,端口號)確定了,就可以直接發送信息報文,并且不需要確保服務端一定能收到或收到完整的數據。它僅僅提供了校驗和機制來保障一個報文是否完整,若校驗失敗,則直接丟棄報文,不做任何處理。

TCP 與 UDP 的應用場景

從特點上我們已經知道,TCP 是可靠的但傳輸速度慢 UDP 是不可靠的但傳輸速度快。因此在選用具體協議通信時,應該根據通信數據的要求而決定。

若通信數據完整性需讓位與通信實時性,則應該選用 TCP 協議(如文件傳輸、重要狀態的更新等);反之,則使用 UDP 協議(如視頻傳輸、實時通信等)。

TCP與UDP基本區別

1.基于連接與無連接
2.TCP要求系統資源較多,UDP較少;
3.UDP程序結構較簡單
4.流模式(TCP)與數據報模式(UDP);
5.TCP保證數據正確性,UDP可能丟包
6.TCP保證數據順序,UDP不保證

UDP應用場景:
1.面向數據報方式
2.網絡數據大多為短消息
3.擁有大量Client
4.對數據安全性無特殊要求
5.網絡負擔非常重,但對響應速度要求高

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • TCP 與 UDP 的區別及應用場景 概述 兩者都是通信協議, TCP、UDP 是傳輸層協議,但他們的通信機制與應...
    蘇為閱讀 1,519評論 0 0
  • 1 運輸層協議概述 1.1 進程之間的通信 網絡層是為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯...
    Mr希靈閱讀 8,172評論 0 34
  • TCP協議與UDP協議的區別 首先咱們弄清楚,TCP協議和UDP協議與TCP/IP協議的聯系,很多人犯糊涂了,一直...
    皮皮魚吖閱讀 164評論 0 0
  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,095評論 0 8
  • 近期,邱淑貞帶女兒沈月出行被拍到,女兒沈月的美貌再次驚艷了眾人。15歲的沈月有種鄰家有女初長成的感覺,并有了媽媽年...
    戒咖啡cxj閱讀 346評論 0 0