UDP協議總結

2021-06-21 23:23:02 字數 3748 閱讀 3798

[1] 《tcp/ip詳解 卷1:協議》

[2] 《tcp/ip協議族 第4版》

[3] 《計算機網路 第5版》

使用者資料報協議的英文縮寫為udp,udp是一種無連線不可靠運輸層協議,udp沒有流量控制和擁塞控制,除了檢驗和之外,沒有其他的差錯控制

i.udp資料報

udp資料報由udp首部和資料組成,其中udp首部包含8b源埠號和目的埠號用於標識源程序和目的程序總長度指的是首部和資料部分的總長度檢驗和用於檢測udp使用者資料報在傳輸過程中是否發生錯誤。udp接收上層應用層的報文後,加上udp首部後,原封不動地交給ip層,所以udp一次交付乙個完整的報文,至於分片,則由ip層來控制,所以應用層必須交付給udp合適大小的報文

ii.udp復用與分用

udp復用:在傳送方,不同的應用層程序都可以使用udp協議傳送資料。(多對一

udp分用:在接收方,傳輸層在去掉udp首部後能夠將這些資料正確交付到目的應用層程序。(一對多

notice:源點的運輸層執行的是復用,終點的運輸層執行的是分用

iii.埠號

如果說ip位址

可以標識主機,那麼埠號

則可以標識主機上的程序,。

知名埠號:由icann指派和控制,這些埠號指派給了tcp/ip最重要的一些應用程式。例如:ftp:21,telnet:23,smtp:25,dns:53,tftp:69,http:80,snmp:161,snmp(trap):162

註冊埠號:icann既不指派也不控制,但這些埠號必須在icann註冊以防止重複。

臨時埠號:在客戶程序執行時才動態選擇。當伺服器程序收到客戶程序的報文後,根據該埠號,把資料傳送給客戶程序。通訊結束後,該客戶端口號消失,以便其他客戶程序使用。

iv.udp檢驗和

我們知道,ip檢驗和只是ip資料報的首部參與運算,而tcp,udp,icmp,igmp,rip等的首部和資料部分都參與檢驗和運算,而對於傳輸層的udp而言,同樣是首部和資料部分均參與檢驗和的運算,但是udp的檢驗和運算有如下兩個特點:

1.若udp資料報的資料部分是奇數個位元組,則需要採用零位元填充法填充好,即在資料部分的最後面填充若干個0,使得方便16為檢驗和的計算,這些0僅供檢驗,不會參與傳送。

2.在檢驗和時,要在udp資料報之前增加12b的偽首部,偽首部參與檢驗和運算。偽首部既不向下傳送,也不向上提交,供檢驗。

偽首部之所以「偽」,是因為它並不是udp首部的一部分,只是在檢驗和時,臨時新增到udp使用者資料報前面,得到乙個臨時的udp使用者資料報。

notice:

1). 如果是tcp,則協議欄位的值是6;

2).偽首部是ip首部的一部分,包含32位源ip位址、32位目的ip位址、8位協議,16位udp長度。偽首部的作用在於讓udp檢查資料是否到達目的地,具體而言是:a.通過目的ip位址來判斷該資料報是不是傳送給本機。b.協議字段,udp可以判斷ip有沒有把不應該傳給udp(如需傳給tcp)的資料傳給udp;

3) 在求解檢驗和的過程中,先將udp資料報劃分成許多16位的序列,然後將各位

取反後求和

(相當於異或運算,因為採用不進製機制),並將求和後的結果

再取反,存入檢驗和字段中,所以

整個過程出現兩次取反

的現象。

4)udp的檢驗和是可選的,而tcp的檢驗和是必需的。

5)udp檢驗和是乙個端到端的檢驗和。它由傳送端計算,然後由接收端驗證,其目的是為了發現udp首部和資料部分在傳送端過程中是否發生任何改變。

6)根據3),如果第一次取反後求和的結果為0,則再取反後結果為全1,,則存入檢驗和字段的值為全1;如果傳送的檢驗和為0,

說明傳送端沒有計算檢驗和,因為在計算前該字段的值被填入全0

v.udp的應用

udp相對tcp而言,最大的優點是資料報短,傳輸速率快,適合於對資料傳輸完整性要求不是高的服務的實時性服務。具體應用如下:(就是針對應用層協議)

1)udp適用於只要求簡單的請求-響應通訊的程序:dns注意:http使用的是tcp,ftp使用的是tcp,因為ftp需要傳輸大量的資料));

2)udp適用於本身具有內部流量控制和差錯控制機制的程序:tftp;

3)udp適用於管理程序:snmp,bootp,dhcp,nfs

4)udp適用於多播。

5)udp適用於路由更新:rip

6)udp適用於實時應用:ip**、流式多**通訊(注意:smtp使用的是tcp,因為郵件強調的是資料的完整性,而非實時性)

點點滴滴:

1.udp是一種面向無連線的不可靠運輸層協議。「不可靠」是因為udp把資料傳送出去,並不保證它們能到達目的地。在傳輸資料之前不需要建立連線,接收方在收到udp報文後,不需要提供確認機制;如果資料發生錯誤或丟失,udp不提供超時重傳機制,udp使用盡最大努力交付

2.udp是面向報文的,傳送方的udp對應用程式(位於應用層)交下來的報文,在新增首部後就向下交付給ip層。

3.udp不提供擁塞控制和流量控制,僅提供校驗和的差錯檢驗。(流量控制是針對兩個端點,而擁塞控制是針對真個網路,是乙個綜合性的控制)

4.udp支援一對

一、一對多、多對

一、多對多的互動通訊。

5.udp的校驗和計算過程中加入了偽首部和0填充位。

UDP協議總結

我們已經講解了物理層 連線層和網路層。最開始的連線層協議種類繁多 ethernet wifi arp等等 到了網路層,我們只剩下乙個ip協議 ipv4和ipv6是替代關係 進入到傳輸層 transport layer 協議的種類又開始繁多起來 比如tcp udp sctp等 這就好像下面的大樹,根部...

可靠UDP傳輸協議總結

tcp ip協議棧中,tcp和udp屬於傳輸層,負責實現資料的傳輸。其中tcp是面向連線的和基於單個位元組流的 保證順序的可靠傳輸協議,udp是無連線的 不可靠的 面向報文的協議。在實際應用中,tcp由於簡單可靠,被大部分應用層協議使用,特別是http,所以佔據了網際網路流量的主要部分。由於tcp的...

可靠UDP傳輸協議總結

tcp ip協議棧中,tcp和udp屬於傳輸層,負責實現資料的傳輸。其中tcp是面向連線的和基於單個位元組流的 保證順序的可靠傳輸協議,udp是無連線的 不可靠的 面向報文的協議。在實際應用中,tcp由於簡單可靠,被大部分應用層協議使用,特別是http,所以佔據了網際網路流量的主要部分。由於tcp的...