UDP協議的報頭: 8個字節
注意:: IP地址在IP層才會封裝到IP數據報的包頭中。
UDP只會封裝端口(源和目的)
TCP協議的報頭: 20個字節
注意: IP地址在IP層才會封裝到IP數據報的包頭中。
TCP只會封裝端口(源和目的)
UDP協議的特點:
1、無連接
UDP是一個無連接協議,傳輸數據之前源端和終端不建立連接,當它想傳送時就簡單地去抓取來自應用程序的數據,並儘可能快地把它扔到網絡上。
UDP發送數據的瓶頸:
a、應用程序生成數據的速度;b、計算機的能力;c、傳輸帶寬的限制;
UDP接收數據的瓶頸::
在接收端,UDP把每個消息段放在隊列中,應用程序每次從隊列中讀一個消息段。(讀隊列的快慢就成為瓶頸)
2、可以實現多播和廣播
由於傳輸數據不建立連接,因此也就不需要維護連接狀態,包括收發狀態等,因此一臺服務機可同時向多個客戶機傳輸相同的消息。TCP協議不能實現多播和廣播 (UDP協議可以實現多播和廣播)
3、包頭短,額外開銷小
UDP信息包的標題很短(標題即頭部),只有8個字節,相對於TCP的20個字節信息包的額外開銷很小。
源端口(2個字節)
目的端口(2個字節)
長度(2個字節)
校驗碼(2個字節)
4、 沒有進行流量控制
吞吐量不受擁擠控制算法(Nagle算法)的調節,只受應用軟件生成數據的速率、傳輸帶寬、源端和終端主機性能的限制。(有可能會出現大量丟包)
5、盡最大努力交付
UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的鏈接狀態表(這裡面有許多參數)。
6、面向報文(即對用戶數據不做拆分,也不做合併)
UDP是面向報文的。發送方的UDP對應用程序交下來的報文,在添加首部後就向下交付給IP層。既不拆分,也不合並,而是保留這些報文的邊界,因此,應用程序需要選擇合適的報文大小。
雖然UDP是一個不可靠的協議,但它是分發信息的一個理想協議。例如,在屏幕上報告股票市場、在屏幕上顯示航空信息等等。
UDP也用在路由信息協議RIP(Routing Information Protocol)中修改路由表。在這些應用場合下,如果有一個消息丟失,在幾秒之後另一個新的消息就會替換它。(RIP應該是網絡層的協議)
UDP廣泛用在多媒體應用中,例如,Progressive Networks公司開發的RealAudio軟件,它是在因特網上把預先錄製的或者現場音樂實時傳送給客戶機的一種軟件,該軟件使用的RealAudio audio-on-demand protocol協議就是運行在UDP之上的協議,
大多數因特網電話軟件產品也都運行在UDP之上。
閱讀更多 專注分享網絡技術 的文章