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位元組。(
,源端口
,目的端口
,資料長度
)校驗和
02 TCP和UDP适用場景
- 從特點上我們已經知道,TCP 是可靠的但傳輸速度慢,UDP 是不可靠的但傳輸速度快。是以在選用具體協定通信時,應該根據通信資料的要求而決定。
- 若通信資料完整性讓位于通信實時性,則應該選用 UDP 協定(如小檔案傳送、
、視訊傳輸
等);反之,則使用TCP 協定(如實時通信
、大檔案傳輸
等)。重要狀态的更新
- UDP具有對系統資源要求較少、具有較好的實時性、網絡開銷小的優點。當某個程式的目标是盡快地傳輸盡可能多的資訊時(其中任意給定資料的重要性相對較低),可使用UDP。