使用者資料報協議UDP

2021-08-19 16:38:58 字數 1958 閱讀 2677

一、udp協議概述

使用者資料報協議(user datagram protocol,縮寫為 udp),又稱使用者資料報文協議,是乙個簡單的面向資料報的運輸協議。

在 tcp/ip 模型中,udp 為網路層以上和應用層以下提供了乙個簡單的介面。udp 只提供資料的不可靠傳遞,它一旦把應用程式發給網路層的資料傳送出去,就不保留資料備份(所以 udp 有時候也被認為是不可靠的資料報協議)。udp 在 ip 資料報的頭部僅僅加入了復用和資料校驗(字段)。

由於缺乏可靠性且屬於非連線導向協議,udp 應用一般允許一定量的丟包、出錯和複製貼上。但有些應用,比如tftp,如果需要則必須在應用層增加根本的可靠機制。但是絕大多數 udp 應用都不需要可靠機制,甚至可能因為引入可靠機制而降低效能。如果某個應用需要很高的可靠性,那麼可以用傳輸控制協議(tcp 協議)來代替 udp。

網域名稱系統(dns)、簡單網路管理協議(snmp)、動態主機配置協議(dhcp)、路由資訊協議(rip)和某些影音流服務等應用採用的就是 udp 協議。

二、udp協議的特點

1、udp 是無連線的。即傳送資料之前不需要建立連線(傳送資料結束時也沒有連線需要釋放),因此減少了開銷和傳送資料之前的時延。

2、udp 使用盡最大努力交付。因此不保證可靠交付,主機不需要維持複雜的連線狀態表。

5、udp 支援一對

一、一對多、多對

一、多對多的互動通訊。

6、udp 的頭部資訊開銷很小,只有 8 個位元組,比 tcp 的 20 個位元組要小很多。

三、udp首部格式

使用者資料報有兩個字段:資料字段和首部字段。首部字段只有 8 個位元組,並由 4 個字段組成,每個欄位的長度都是 2 個位元組。

(1)源埠。即源埠號,在對方回應時使用,不需要時可用 0 表示。

(2)目的埠。即目的埠號,在終點交付報文時使用。

(3)長度。udp 資料報的長度,最小值為 8 (只有首部)。

(4)檢驗和。檢測 udp 使用者資料報在傳輸過程中是否有錯。有錯就丟棄。

會發現在 udp 首部之前有乙個偽首部,這個偽首部用於計算檢驗和,在下面會提到。

四、udp埠分用

當運輸層從 ip 層接收到 udp 使用者資料報時,就根據首部中的目的埠,把 udp 資料報通過相應的埠,向上交付給最後的終點(應用程序)。下面是 udp 基於埠分用的示意圖。

如果接收方 udp 發現收到的報文中的目的埠號不正確(不存在該埠對應的應用程序),就會丟棄該報文,並由網際控制報文協議 icmp 傳送「埠不可達」差錯報文給傳送方。

五、udp檢驗和

在 udp 的首部資訊中有 2 個位元組的檢驗和,檢驗和用於檢測 udp 資料報在傳輸過程中是否發生錯誤。

當 udp 執行在 ipv4 之上時,為了能夠計算校驗和,需要在 udp 資料報前新增乙個「偽頭部」。偽頭部包括了 ipv4 頭部中的一些資訊,但它並不是傳送 ip 資料報時使用的 ip 資料報的頭部,而只是乙個用來計算校驗和而已。因此偽頭部既不向下傳送也不向上提交。可以在上面的圖中檢視偽首部各個欄位的內容。

在傳送方,首先把全 0 放入檢驗和字段,再把 udp 首部及 udp 使用者資料報看成是由多個16 位連線起來的字串。若 udp 使用者資料報的資料部分不是偶數個位元組,則填充乙個全 0 的位元組(此位元組不傳送)。然後按二進位制反碼計算 16 位字的和,將此和的二進位制反碼寫入檢驗和字段後,傳送 udp 使用者資料報。

在接收方,計算所收到的資料報的檢驗和,將其與檢驗和字段相比較,如果相同則檢驗沒有出錯(但是不保證沒有錯誤),若檢驗和不相同則說明檢驗出錯,接受方就丟棄這個資料報。

六、總結

使用者資料報協議 UDP

udp 簡述 udp只在ip 的資料報服務之上增加了很少一點的功能,即埠的功能和差錯檢測的功能。udp 的主要特點 udp是無連線的 即傳送資料之前不需要建立連線。udp使用盡最大努力交付 即不保證可靠交付,同時也不使用擁塞控制。udp沒有擁塞控制,很適合多 通訊的要求。udp是面向報文的 udp ...

使用者資料報協議UDP

udp概述 使用者資料報協議udp只在ip的資料報服務上增加了兩個兩個共能。分別是埠功能 有了埠,運輸層就能進行復用和分用 和差錯檢測功能。雖然udp使用者資料報只能提供不可靠的交付,但是在某些方面尤其特殊的優勢 1.udp是無連線的,即傳送資料之前不需要建立連線 當然傳送資料結束時也沒有連線可以釋...

使用者資料報協議UDP

udp 是乙個無連線的 connectionless 的傳輸層協議 udp傳輸資料段,無須建立連線 udp 在 rfc 768中描述 很多c s應用 如 dns 都使用udp傳送乙個請求,然後對方應答 udp資料段頭 udp 資料段包括8位元組 8 byte 的頭部和資料兩個部分 其中的長度域表示的...