天天看點

UDP 和 TCP 有什麼差別呢?分别的應用場景是?

UDP 不提供複雜的控制機制,利用 IP 提供面向「無連接配接」的通信服務。

UDP 協定真的非常簡,頭部隻有

8

個位元組( 64 位),UDP 的頭部格式如下:

UDP 和 TCP 有什麼差別呢?分别的應用場景是?
  • 目标和源端口:主要是告訴 UDP 協定應該把封包發給哪個程序。
  • 包長度:該字段儲存了 UDP 首部的長度跟資料的長度之和。
  • 校驗和:校驗和是為了提供可靠的 UDP 首部和資料而設計,防止收到在網絡傳輸中受損的 UDP包。

TCP 和 UDP 差別:

1. 連接配接

  • TCP 是面向連接配接的傳輸層協定,傳輸資料前先要建立連接配接。
  • UDP 是不需要連接配接,即刻傳輸資料。

2. 服務對象

  • TCP 是一對一的兩點服務,即一條連接配接隻有兩個端點。
  • UDP 支援一對一、一對多、多對多的互動通信

3. 可靠性

  • TCP 是可靠傳遞資料的,資料可以無差錯、不丢失、不重複、按序到達。
  • UDP 是盡最大努力傳遞,不保證可靠傳遞資料。

4. 擁塞控制、流量控制

  • TCP 有擁塞控制和流量控制機制,保證資料傳輸的安全性。
  • UDP 則沒有,即使網絡非常擁堵了,也不會影響 UDP 的發送速率。

5. 首部開銷

  • TCP 首部長度較長,會有一定的開銷,首部在沒有使用「選項」字段時是

    20

    個位元組,如果使用了「選項」字段則會變長的。
  • UDP 首部隻有 8 個位元組,并且是固定不變的,開銷較小。

6. 傳輸方式

  • TCP 是流式傳輸,沒有邊界,但保證順序和可靠。
  • UDP 是一個包一個包的發送,是有邊界的,但可能會丢包和亂序。

7. 分片不同

  • TCP 的資料大小如果大于 MSS 大小,則會在傳輸層進行分片,目标主機收到後,也同樣在傳輸層組裝 TCP 資料包,如果中途丢失了一個分片,隻需要傳輸丢失的這個分片。
  • UDP 的資料大小如果大于 MTU 大小,則會在 IP 層進行分片,目标主機收到後,在 IP 層組裝完資料,接着再傳給傳輸層。
  • FTP

    檔案傳輸;
  • HTTP / HTTPS;
  • 包總量較少的通信,如

    DNS

    SNMP

    等;
  • 視訊、音頻等多媒體通信;
  • 廣播通信;