udp(傳輸層)
UDP 是User Datagram Protocol的簡(jiǎn)稱(chēng), 中文名是用戶(hù)數(shù)據(jù)報(bào)協(xié)議,是OSI(Open System Interconnection,開(kāi)放式系統(tǒng)互聯(lián)) 參考模型中一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù),IETF RFC 768是UDP的正式規(guī)范。UDP在IP報(bào)文的協(xié)議號(hào)是17。
UDP協(xié)議全稱(chēng)是用戶(hù)數(shù)據(jù)報(bào)協(xié)議,在網(wǎng)絡(luò)中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無(wú)連接的協(xié)議。在OSI模型中,在第四層——傳輸層,處于IP協(xié)議的上一層。UDP有不提供數(shù)據(jù)包分組、組裝和不能對(duì)數(shù)據(jù)包進(jìn)行排序的缺點(diǎn),也就是說(shuō),當(dāng)報(bào)文發(fā)送之后,是無(wú)法得知其是否安全完整到達(dá)的。UDP用來(lái)支持那些需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶(hù)/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議從問(wèn)世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類(lèi)似協(xié)議所掩蓋,但是即使是在今天UDP仍然不失為一項(xiàng)非常實(shí)用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。
與所熟知的TCP(傳輸控制協(xié)議)協(xié)議一樣,UDP協(xié)議直接位于IP(網(wǎng)際協(xié)議)協(xié)議的頂層。根據(jù)OSI(開(kāi)放系統(tǒng)互連)參考模型,UDP和TCP都屬于傳輸層協(xié)議。UDP協(xié)議的主要作用是將網(wǎng)絡(luò)數(shù)據(jù)流量壓縮成數(shù)據(jù)包的形式。一個(gè)典型的數(shù)據(jù)包就是一個(gè)二進(jìn)制數(shù)據(jù)的傳輸單位。每一個(gè)數(shù)據(jù)包的前8個(gè)字節(jié)用來(lái)包含報(bào)頭信息,剩余字節(jié)則用來(lái)包含具體的傳輸數(shù)據(jù)。
udp與tcp
udp和tcp都屬于傳輸層的協(xié)議,都位于ip協(xié)議的頂層,他們不同之處有:
- udp是無(wú)連接協(xié)議,不需要進(jìn)行tcp的握手
- udp每次發(fā)送最大長(zhǎng)度是65535,而tcp在握手后可以源源不斷的發(fā)送
- udp協(xié)議使用報(bào)頭中的校驗(yàn)值來(lái)保證數(shù)據(jù)的安全。校驗(yàn)值首先在數(shù)據(jù)發(fā)送方通過(guò)特殊的算法計(jì)算得出,在傳遞到接收方之后,還需要再重新計(jì)算。如果某個(gè)數(shù)據(jù)報(bào)在傳輸過(guò)程中被第三方篡改或者由于線路噪音等原因受到損壞,發(fā)送和接收方的校驗(yàn)計(jì)算值將不會(huì)相符,由此UDP協(xié)議可以檢測(cè)是否出錯(cuò)。這與TCP協(xié)議是不同的,后者要求必須具有校驗(yàn)值。
- udp報(bào)文沒(méi)有可靠性保證、順序保證和流量控制字段等,可靠性較差。但是正因?yàn)閡dp協(xié)議的控制選項(xiàng)較少,在數(shù)據(jù)傳輸過(guò)程中延遲小、數(shù)據(jù)傳輸效率高,適合對(duì)可靠性要求不高的應(yīng)用程序,或者可以保障可靠性的應(yīng)用程序,如DNS、TFTP、SNMP等。
- 在網(wǎng)絡(luò)質(zhì)量令人十分不滿(mǎn)意的環(huán)境下,UDP協(xié)議數(shù)據(jù)包丟失會(huì)比較嚴(yán)重。而tcp會(huì)進(jìn)行確認(rèn)驗(yàn)證,確保對(duì)方接收成功
- udp可實(shí)現(xiàn)對(duì)網(wǎng)關(guān)內(nèi)的所有主機(jī)進(jìn)行廣播
phper的udp
在php初級(jí)開(kāi)發(fā)者中,是很少接觸到udp協(xié)議的,常見(jiàn)的有DNS協(xié)議,
在我們輸入一個(gè)域名時(shí),會(huì)先請(qǐng)求到一個(gè)dns服務(wù)器,由dns服務(wù)器匹配出一個(gè)ip地址,然后通過(guò)ip地址去傳輸數(shù)據(jù),
在這個(gè)步驟中,請(qǐng)求dns服務(wù)器使用的就是udp協(xié)議
其他
具體詳細(xì)內(nèi)容可自行搜索了解