Internet 協(xié)議集支持一個(gè)無連接的傳輸協(xié)議,該協(xié)議稱為用戶數(shù)據(jù)包協(xié)議(UDP,User Datagram Protocol)。UDP 為應(yīng)用程序提供了一種無需建立連接就可以發(fā)送封裝的 IP 數(shù)據(jù)包的方法。RFC 768描述了 UDP。Internet 的傳輸層有兩個(gè)主要協(xié)議,互為補(bǔ)充。無連接的是 UDP,它除了給應(yīng)用程序發(fā)送數(shù)據(jù)包功能并允許它們在所需的層次上架構(gòu)自己的協(xié)議之外,幾乎沒有做什么特別的事情。面向連接的是 TCP,該協(xié)議幾乎做了所有的事情。
UDP 是User Datagram Protocol的簡稱, 中文名是用戶數(shù)據(jù)包協(xié)議,是OSI(Open System Interconnection,開放式系統(tǒng)互聯(lián)) 參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù),IETF RFC 768 [1] 是UDP的正式規(guī)范。UDP在IP報(bào)文的協(xié)議號(hào)是17。UDP協(xié)議與TCP協(xié)議一樣用于處理數(shù)據(jù)包,在OSI模型中,兩者都位于傳輸層,處于IP協(xié)議的上一層。UDP有不提供數(shù)據(jù)包分組、組裝和不能對數(shù)據(jù)包進(jìn)行排序的缺點(diǎn),也就是說,當(dāng)報(bào)文發(fā)送之后,是無法得知其是否安全完整到達(dá)的。UDP用來支持那些需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議從問世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但即使在今天UDP仍然不失為一項(xiàng)非常實(shí)用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。許多應(yīng)用只支持UDP,如:多媒體數(shù)據(jù)流,不產(chǎn)生任何額外的數(shù)據(jù),即使知道有破壞的包也不進(jìn)行重發(fā)。當(dāng)強(qiáng)調(diào)傳輸性能而不是傳輸?shù)耐暾詴r(shí),如:音頻和多媒體應(yīng)用,UDP是最好的選擇。在數(shù)據(jù)傳輸時(shí)間很短,以至于此前的連接過程成為整個(gè)流量主體的情況下,UDP也是一個(gè)好的選擇。
內(nèi)容UDP是OSI參考模型中一種無連接的傳輸層協(xié)議,它主要用于不要求分組順序到達(dá)的傳輸中,分組傳輸順序的檢查與排序由應(yīng)用層完成,提供面向事務(wù)的簡單不可靠信息傳送服務(wù)。UDP 協(xié)議基本上是IP協(xié)議與上層協(xié)議的接口。UDP協(xié)議適用端口分別運(yùn)行在同一臺(tái)設(shè)備上的多個(gè)應(yīng)用程序。UDP提供了無連接通信,且不對傳送數(shù)據(jù)包進(jìn)行可靠性保證,適合于一次傳輸少量數(shù)據(jù),UDP傳輸?shù)目煽啃杂蓱?yīng)用層負(fù)責(zé)。常用的UDP端口號(hào)有:53(DNS)、69(TFTP)、161(SNMP),使用UDP協(xié)議包括:TFTP、SNMP、NFS、DNS、BOOTP。UDP報(bào)文沒有可靠性保證、順序保證和流量控制字段等,可靠性較差。但是正因?yàn)閁DP協(xié)議的控制選項(xiàng)較少,在數(shù)據(jù)傳輸過程中延遲小、數(shù)據(jù)傳輸效率高,適合對可靠性要求不高的應(yīng)用程序,或者可以保障可靠性的應(yīng)用程序,如DNS、TFTP、SNMP等。
功能為了在給定的主機(jī)上能識(shí)別多個(gè)目的地址,同時(shí)允許多個(gè)應(yīng)用程序在同一臺(tái)主機(jī)上工作并能獨(dú)立地進(jìn)行數(shù)據(jù)包的發(fā)送和接收,設(shè)計(jì)用戶數(shù)據(jù)報(bào)協(xié)議UDP。UDP使用底層的互聯(lián)網(wǎng)協(xié)議來傳送報(bào)文,同IP一樣提供不可靠的無連接數(shù)據(jù)包傳輸服務(wù)。它不提供報(bào)文到達(dá)確認(rèn)、排序、及流量控制等功能。UDP Helper可以實(shí)現(xiàn)對指定UDP端口廣播報(bào)文的中繼轉(zhuǎn)發(fā),即將指定UDP端口的廣播報(bào)文轉(zhuǎn)換為單播報(bào)文發(fā)送給指定的服務(wù)器,起到中繼的作用。
在UDP協(xié)議層次模型中,UDP位于IP層之上。應(yīng)用程序訪問UDP層然后使用IP層傳送數(shù)據(jù)包。IP數(shù)據(jù)包的數(shù)據(jù)部分即為UDP數(shù)據(jù)包。IP層的報(bào)頭指明了源主機(jī)和目的主機(jī)地址,而UDP層的報(bào)頭指明了主機(jī)上的源端口和目的端口。UDP傳輸?shù)亩?segment)有8個(gè)字節(jié)的報(bào)頭和有效載荷字段構(gòu)成。UDP報(bào)頭由4個(gè)域組成,其中每個(gè)域各占用2個(gè)字節(jié),具體包括源端口號(hào)、目標(biāo)端口號(hào)、數(shù)據(jù)包長度、校驗(yàn)值。