天天看點

學習筆記 | TCP和UDP的差別和各自适用的場景

TCP和UDP的差別和各自适用的場景

學習筆記 | TCP和UDP的差別和各自适用的場景

01 TCP和UDP差別

1. 連接配接

  • TCP是面向連接配接的傳輸層協定,即傳輸資料之前必須先建立好連接配接。
  • UDP無連接配接。

2. 服務對象

  • TCP是點對點的兩點間服務,即一條TCP連接配接隻能有兩個端點;
  • UDP支援一對一,一對多,多對一,多對多的互動通信。UDP它在IP之上僅提供兩個附加服務:多路複用和對資料的錯誤檢查。

3. 可靠性

  • TCP是可靠傳遞:無差錯,不丢失,不重複,按序到達。當使用TCP向另一端發送資料時,它要求對端傳回一個确認。如果沒有收到确認,TCP自動重傳資料并等待更長時間。在數次重傳失敗後,TCP才放棄。
  • UDP是盡最大努力傳遞,不保證可靠傳遞。不提供确認、序列号、逾時重傳等機制。

4. 擁塞控制,流量控制

  • TCP有擁塞控制和流量控制保證資料傳輸的安全性。TCP比較慢。
  • UDP沒有擁塞控制,網絡擁塞不會影響源主機的發送效率。UDP比較快。

5. 封包長度

  • TCP是動态封包長度,即TCP封包長度是根據接收方的視窗大小和目前網絡擁塞情況決定的。以位元組流的方式進行傳輸。
  • UDP面向封包,不合并,不拆分,保留上面傳下來封包的邊界。

6. 首部開銷

  • TCP首部開銷大,首部20個位元組。
  • UDP首部開銷小,8位元組。(

    源端口

    目的端口

    資料長度

    校驗和

學習筆記 | TCP和UDP的差別和各自适用的場景

02 TCP和UDP适用場景

  • 從特點上我們已經知道,TCP 是可靠的但傳輸速度慢,UDP 是不可靠的但傳輸速度快。是以在選用具體協定通信時,應該根據通信資料的要求而決定。
  • 若通信資料完整性讓位于通信實時性,則應該選用 UDP 協定(如小檔案傳送、

    視訊傳輸

    實時通信

    等);反之,則使用TCP 協定(如

    大檔案傳輸

    重要狀态的更新

    等)。
  • UDP具有對系統資源要求較少、具有較好的實時性、網絡開銷小的優點。當某個程式的目标是盡快地傳輸盡可能多的資訊時(其中任意給定資料的重要性相對較低),可使用UDP。