UDP 不提供複雜的控制機制,利用 IP 提供面向「無連接配接」的通信服務。
UDP 協定真的非常簡,頭部隻有
8
個位元組( 64 位),UDP 的頭部格式如下:
- 目标和源端口:主要是告訴 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
- 視訊、音頻等多媒體通信;
- 廣播通信;