UDP User Datagram Protocol 用戶數(shù)據(jù)報(bào)協(xié)議
UDP(User Datagram Protocol) 用戶數(shù)據(jù)報(bào)協(xié)議 (RFC 768)
用戶數(shù)據(jù)報(bào)協(xié)議(UDP)是 OSI 參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù)。 UDP 協(xié)議基本上是 IP 協(xié)議與上層協(xié)議的接口。 UDP 協(xié)議適用端口分別運(yùn)行在同一臺設(shè)備上的多個(gè)應(yīng)用程序。
由于大多數(shù)網(wǎng)絡(luò)應(yīng)用程序都在同一臺機(jī)器上運(yùn)行,計(jì)算機(jī)上必須能夠確保目的地機(jī)器上的軟件程序能從源地址機(jī)器處獲得數(shù)據(jù)包,以及源計(jì)算機(jī)能收到正確的回復(fù)。這是通過使用 UDP 的“端口號”完成的。例如,如果一個(gè)工作站希望在工作站 128.1.123.1 上使用域名服務(wù)系統(tǒng),它就會給數(shù)據(jù)包一個(gè)目的地址 128.1.123.1 ,并在 UDP 頭插入目標(biāo)端口號 53 。源端口號標(biāo)識了請求域名服務(wù)的本地機(jī)的應(yīng)用程序,同時(shí)需要將所有由目的站生成的響應(yīng)包都指定到源主機(jī)的這個(gè)端口上。 UDP 端口的詳細(xì)介紹可以參照相關(guān)文章。
與 TCP 不同, UDP 并不提供對 IP 協(xié)議的可靠機(jī)制、流控制以及錯(cuò)誤恢復(fù)功能等。由于 UDP 比較簡單, UDP 頭包含很少的字節(jié),比 TCP 負(fù)載消耗少。
UDP 適用于不需要 TCP 可靠機(jī)制的情形,比如,當(dāng)高層協(xié)議或應(yīng)用程序提供錯(cuò)誤和流控制功能的時(shí)候。 UDP 是傳輸層協(xié)議,服務(wù)于很多知名應(yīng)用層協(xié)議,包括網(wǎng)絡(luò)文件系統(tǒng)(NFS)、簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)、域名系統(tǒng)(DNS)以及簡單文件傳輸系統(tǒng)(TFTP)。
協(xié)議結(jié)構(gòu)
Source Port — 16位。源端口是可選字段。當(dāng)使用時(shí),它表示發(fā)送程序的端口,同時(shí)它還被認(rèn)為是沒有其它信息的情況下需要被尋址的答復(fù)端口。如果不使用,設(shè)置值為0。
Destination Port — 16位。目標(biāo)端口在特殊因特網(wǎng)目標(biāo)地址的情況下具有意義。
Length — 16位。該用戶數(shù)據(jù)報(bào)的八位長度,包括協(xié)議頭和數(shù)據(jù)。長度最小值為8。
Checksum — 16位。IP 協(xié)議頭、UDP 協(xié)議頭和數(shù)據(jù)位,最后用0填補(bǔ)的信息假協(xié)議頭總和。如果必要的話,可以由兩個(gè)八位復(fù)合而成。
Data — 包含上層數(shù)據(jù)信息。
UDP的特點(diǎn):
UDP協(xié)議使用IP層提供的服務(wù)把從應(yīng)用層得到的數(shù)據(jù)從一臺主機(jī)的某個(gè)應(yīng)用程序傳給網(wǎng)絡(luò)上另一臺主機(jī)上的某一個(gè)應(yīng)用程序。
UDP協(xié)議有如下的特點(diǎn):
1、UDP傳送數(shù)據(jù)前并不與對方建立連接,即UDP是無連接的,在傳輸數(shù)據(jù)前,發(fā)送方和接收方相互交換信息使雙方同步。
2、UDP不對收到的數(shù)據(jù)進(jìn)行排序,在UDP報(bào)文的首部中并沒有關(guān)于數(shù)據(jù)順序的信息(如TCP所采用的序號),而且報(bào)文不一定按順序到達(dá)的,所以接收端無從排起。
3、UDP對接收到的數(shù)據(jù)報(bào)不發(fā)送確認(rèn)信號,發(fā)送端不知道數(shù)據(jù)是否被正確接收,也不會重發(fā)數(shù)據(jù)。
4、UDP傳送數(shù)據(jù)較TCP快速,系統(tǒng)開銷也少。
從以上特點(diǎn)可知,UDP提供的是無連接的、不可靠的數(shù)據(jù)傳送方式,是一種盡力而為的數(shù)據(jù)交付服務(wù)。
相關(guān)鏈接 http://www.javvin.com/protocol/rfc768.pdf:User Datagram Protocol(UDP) Specifications
http://www.iana.org/assignments/port-numbers:UDP and TCP port numbers
User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議。 允許一端設(shè)備的應(yīng)用 程序向另一端的應(yīng)用程序發(fā)送數(shù)據(jù)報(bào)的標(biāo)準(zhǔn) TCP/IP 協(xié)議。UDP 利用 IP 協(xié)議發(fā)送數(shù)據(jù)報(bào),為應(yīng)用程序提供不可靠的 無連接報(bào)文發(fā)送服務(wù)。因此,UDP 消息可能會出現(xiàn)丟棄、重復(fù)、延 遲 或亂序發(fā)送的問題。UDP 用于盡力傳輸數(shù)據(jù)報(bào)文,即目的端不會 主動 確認(rèn)是否已經(jīng)接收到正確的數(shù)據(jù)報(bào)文。