C語言中文網 目錄

UDP是什么,UDP協議及優缺點(包含和TCP協議的區別)

UDP,全稱 User Datagram Protocol,中文名稱為用戶數據報協議,主要用來支持那些需要在計算機之間傳輸數據的網絡連接。

UDP 協議從問世至今已經被使用了很多年,雖然目前 UDP 協議的應用不如 TCP 協議廣泛,但 UDP 依然是一種非常實用和可行的網絡傳輸層協議。尤其是在一些實時性很強的應用場景中,比如網絡游戲、視頻會議等,UDP 協議的快速能力更具有獨特的魅力。

UDP 是一種面向非連接的協議,面向非連接指的是在正式通信前不必與對方先建立連接,不管對方狀態就直接發送數據。至于對方是否可以接收到這些數據,UDP 協議無法控制,所以說 UDP 是一種不可靠的協議。

UDP 協議適用于一次只傳送少量數據、對可靠性要求不高的應用環境。

與前面介紹的 TCP 協議一樣,UDP 協議直接位于 IP 協議之上。實際上,IP 協議屬于 OSI 參考模型的網絡層協議,而 UDP 協議和 TCP 協議都屬于傳輸層協議。

因為 UDP 是面向非連接的協議,沒有建立連接的過程,因此它的通信效率很高,但也正因為如此,它的可靠性不如 TCP 協議。

UDP 協議的主要作用是完成網絡數據流和數據報之間的轉換在信息的發送端,UDP 協議將網絡數據流封裝成數據報,然后將數據報發送出去;在信息的接收端,UDP 協議將數據報轉換成實際數據內容。

可以認為 UDP 協議的 socket 類似于碼頭,數據報則類似于集裝箱。碼頭的作用就是負責友送、接收集裝箱,而 socket 的作用則是發送、接收數據報。因此,對于基于 UDP 協議的通信雙方而言,沒有所謂的客戶端和服務器端的概念。

UDP 協議和 TCP 協議簡單對比如下:
  • TCP 協議:可靠,傳輸大小無限制,但是需要連接建立時間,差錯控制開銷大。
  • UDP 協議:不可靠,差錯控制開銷較小,傳輸大小限制在 64 KB以下,不需要建立連接。

?相比較 TCP,UDP 是一種不可靠的網絡協議,它在通信實例的兩端各建立一個 socket,但這兩個 socket 之間并沒有虛擬鏈路,它們只是發送、接收數據報的對象。

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo