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