UDP協議基礎

基於UDP協議的網絡編程編程

UDP協議是一種不可靠的網絡協議,它在通訊實例的兩端各創建一個Socket,但這兩個Socket之間並無虛擬鏈路,這兩個Socket只是 發送、接收數據報的對象。Java提供了DatagramSocket對象做爲基於UDP協議的Socket,使用DatagramPacket表明 DatagramSocket發送、接收的數據報。服務器

UDP協議基礎網絡

UDP協議是英文User Datagram Protocol的縮寫,即用戶數據報協議,主要用來支持那些須要在計算機之間傳輸數據的網絡鏈接。UDP協議從問世至今已經被使用了不少年,雖然UDP 協議目前應用不如TCP協議普遍,但UDP協議依然是一個很是實用和可行的網絡傳輸層協議。尤爲是在一些實時性很強的應用場景中,好比網絡遊戲、視頻會議 等,UDP協議的快速更具備獨特的魅力。spa

UDP協議是一種面向非鏈接的協議,面向非鏈接指的是在正式通訊前沒必要與對方先創建鏈接,無論對方狀態就直接發送。至於對方是否能夠接收到這些數據 內容,UDP協議沒法控制,所以說UDP協議是一種不可靠的協議。UDP協議適用於一次只傳送少許數據、對可靠性要求不高的應用環境。視頻

與前面介紹的TCP協議同樣,UDP協議直接位於IP協議之上。實際上,IP協議屬於OSI參考模型的網絡層協議,而UDP協議和TCP協議都屬於傳輸層協議。對象

由於UDP協議是面向非鏈接的協議,沒有創建鏈接的過程,所以它的通訊效率很高;但也正由於如此,它的可靠性不如TCP協議。遊戲

UDP協議的主要做用是完成網絡數據流和數據報之間的轉換--在信息的發送端,UDP協議將網絡數據流封裝成數據報,而後將數據報發送出去;在信息的接收端,UDP協議將數據報轉換成實際數據內容。網絡編程

能夠認爲UDP協議的Socket相似於碼頭,數據報則相似於集裝箱;碼頭的做用就是負責發送、接收集裝箱,而DatagramSocket的做用則是發送、接收數據報。所以對於基於UDP協議的通訊雙方而言,沒有所謂的客戶端和服務器端的概念。效率

UDP協議和TCP協議簡單對好比下:基礎

TCP協議:可靠,傳輸大小無限制,可是須要鏈接創建時間,差錯控制開銷大。

UDP協議:不可靠,差錯控制開銷較小,傳輸大小限制在64KB如下,不須要創建鏈接。

相關文章
相關標籤/搜索