簡介
用戶數據報協定(UserDatagramProtoco,UDP)是一個簡單的面向數據報的傳輸層(transportlayer)協定,IETFRFC768是UDP的正式規範。
套用
在TCP/IP模型中,UDP為網路層(networklayer)以下和套用層(applicationlayer)以上提供了一個簡單的接口。UDP只提供數據的不可靠交付,它一旦把應用程式發給網路層的數據傳送出去,就不保留數據備份(所以UDP有時候也被認為是不可靠的數據報協定)。UDP在IP數據報的頭部僅僅加入了復用和數據校驗(欄位)。
組成
UDP首部欄位由4個部分組成,其中兩個是可選的。各16-bit的源端口和目的連線埠用來標記傳送和接受的套用進程。因為UDP不需要應答,所以源連線埠是可選的,如果源連線埠不用,那么置為零。在目的連線埠後面是長度固定的以位元組為單位的長度域,用來指定UDP數據報包括數據部分的長度,長度最小值為8(octets)。首部剩下地16-bit是用來對首部和數據部分一起做校驗和的,這部分是可選的,但在實際套用中一般都使用這一功能。
不足
由於缺乏可靠性,UDP套用一般必須允許一定量的丟包、出錯和複製。有些套用,比如TFTP,如果需要則必須在套用層增加根本的可靠機制。但是絕大多數UDP套用都不需要可靠機制,甚至可能因為引入可靠機制而降低性能。流媒體Streamingmedia、實時多媒體游戲和voiceoverIP(VoIP)就是典型的UDP套用。如果某個套用需要很高的可靠性,那么可以用傳輸控制協定TransmissionControlProtocol來代替UDP。
由於缺乏擁塞避免和控制機制,需要基於網路的機制來減小因失控和高速UDP流量負荷而導致的擁塞崩潰效應。換句話說,因為UDP傳送者不能夠檢測擁塞,所以像使用包佇列和丟棄技術的路由器這樣的網路基本設備往往就成為降低UDP過大通信量的有效工具。數據報擁塞控制協定DatagramCongestionControlProtocol(DCCP)設計成通過在諸如流媒體類型的高速率UDP流中增加主機擁塞控制來減小這個潛在的問題。
典型網路上的眾多使用UDP協定的關鍵套用一定程度上是相似的。這些套用包括域名系統DomainNameSystem(DNS)、簡單網路管理協定simplenetworkmanagementprotocol(SNMP)、動態主機配置協定Dynamichostconfigurationprotocol(DHCP)和路由信息協定RoutingInformationProtocol(RIP)等等。