1. 程式人生 > >UDP使用者資料報協議分析

UDP使用者資料報協議分析

簡介

        UDP(User Datagram Protocol)即使用者資料報協議,在網路中它與TCP協議一樣用於處理資料包,是一種無連線的協議。在OSI模型中,在第四層——傳輸層,處於IP協議的上一層。UDP用來支援那些需要在計算機之間傳輸資料的網路應用。包括網路視訊會議系統在內的眾多的客戶/伺服器模式的網路應用都需要使用UDP協議。UDP協議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是即使是在今天UDP仍然不失為一項非常實用和可行的網路傳輸層協議。UDP報文沒有可靠性保證、順序保證和流量控制欄位等,可靠性較差。但是正因為UDP協議的控制選項較少,在資料傳輸過程中延遲小、資料傳輸效率高,適合對可靠性要求不高的應用程式,或者可以保障可靠性的應用程式,如DNS、TFTP、SNMP等。
特點:1.無連線 2.盡最大努力交付(不保證可靠傳輸) 3.面向報文 4.無擁塞控制 5.支援一對一,一對多,多對多的互動通訊 6.首部開銷小

封包格式及各欄位分析

封包格式

欄位分析

(1)源埠: 佔16位、源埠號。在需要對方回信時選用。不需要時可用全0。
(2)目的埠: 佔16位、目的埠號。這在終點交付報文時必須使用。
(3)長度: 佔16位、UDP使用者資料報的長度,其最小值是8(僅有首部)。
(4)檢驗和: 佔16位、檢測UDP使用者資料報在傳輸中是否有錯。有錯就丟棄。

資料包分析


其他相關

埠:
        伺服器端使用的埠號:這裡分為兩類,最重要的一類叫做熟知埠號或系統埠號,數值為0~1023。這些數值可在網址 www .lana.org查到。IANA把這些埠號指派給了 TCP /P最重要的一些應用程式,讓所有的使用者都知道。當種新的應用程式出現後,IANA必須為它指派一個熟知埠,否則網際網路上的其他應用程序就無法和它進行通訊。另一類叫做登記埠號,數值為1024~49151。這類埠號是為沒有熟知埠號的應用程式使用的。使用這類埠號必須在IANA按照規定的手續登記,以防止重複。
        客戶端使用的埠號:數值為49152-65535。由於這類埠號僅在客戶程序執行時才動態選擇,因此又叫做短暫埠號。這類埠號留給客戶程序選擇暫時使用。當伺服器程序收到客戶程序的報文時,就知道了客戶程序所使用的埠號,因而可以把資料傳送給客戶程序。通訊結束後,剛才已使用過的客戶埠號就不復存在,這個埠號就可以供其他客戶程序使用。

校驗方式和偽首部:
        UDP使用者資料報首部中檢驗和的計算方法有些特殊。在計算檢驗和時,要在UDP使用者資料報之前增加12個位元組的偽首部。所謂“偽首部”是因為這種偽首部並不是UDP使用者資料報真正的首部。只是在計算檢驗和時,臨時新增在UDP使用者資料報前面,得到一個臨時的UDP使用者資料報。檢驗和就是按照這個臨時的UDP使用者資料報來計算的。偽首部既不向下傳 送也不向上遞交,而僅僅是為了計算檢驗和。上圖也給出了偽首部各欄位的內容。


UDP埠分用:

 

        比起TCP協議,UDP協議當中的東西就少很多了,一般情況下,運輸層中TCP和UDP是占主導地位的,將TCP和UDP類比學習,將會比較透徹。