udp協議及分析
一、udp協議
udp是user datagram protocol的簡稱, 中文名是使用者資料報協議,是osi(open system interconnection,開放式系統互聯) 參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,ietf rfc 768是udp的正式規範。udp在ip報文的協議號是17。
與所熟知的tcp(傳輸控制協議)協議一樣,udp協議直接位於ip(網際協議)協議的頂層。根據osi(開放系統互連)參考模型,udp和tcp都屬於傳輸層協議。udp協議的主要作用是將網路資料流量壓縮成資料報的形式。乙個典型的資料報就是乙個二進位制資料的傳輸單位。每乙個資料報的前8個位元組用來包含報頭資訊,剩餘位元組則用來包含具體的傳輸資料。
二、udp協議的主要特點
(1) udp是無連線的,即傳送資料之前不需要建立連線。
(2) udp 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制。
(3) udp 是面向報文的。udp 沒有擁塞控制,很適合多**通訊的要求。
(4) udp 支援一對
一、一對多、多對一和多對多的互動通訊。
(5) udp 的首部開銷小,只有 8 個位元組。
三、udp協議的使用
四、udp協議的報頭
(1) 面向報文的 udp
傳送方 udp 對應用程式交下來的報文,在新增首部後就向下交付 ip 層。udp 對應用層交下來的報文,既不合併,也不拆分,而是保留這些報文的邊界。 應用層交給 udp 多長的報文,udp 就照樣傳送,即一次傳送乙個報文。 接收方 udp 對 ip 層交上來的 udp 使用者資料報,在去除首部後就原封不動地交付上層的應用程序,一次交付乙個完整的報文。 應用程式必須選擇合適大小的報文。
(2) udp報文的組成
udp報頭由4個域組成,其中每個域各占用2個位元組,具體如下:udp源埠號、目標埠號、資料報長度、校驗值
udp協議使用埠號為不同的應用保留其各自的資料傳輸通道。udp和tcp協議正是採用這一機制實現對同一時刻內多項應用同時傳送和接收資料的支援。資料傳送一方(可以是客戶端或伺服器端)將udp資料報通過源埠傳送出去,而資料接收一方則通過目標埠接收資料。有的網路應用只能使用預先為其預留或註冊的靜態埠;而另外一些網路應用則可以使用未被註冊的動態埠。因為udp報頭使用兩個位元組存放埠號,所以埠號的有效範圍是從0到65535。一般來說,大於49151的埠號都代表動態埠。
資料報的長度是指包括報頭和資料部分在內的總位元組數。因為報頭的長度是固定的,所以該域主要被用來計算可變長度的資料部分(又稱為資料負載)。資料報的最大長度根據操作環境的不同而各異。從理論上說,包含報頭在內的資料報的最大長度為65535位元組。不過,一些實際應用往往會限制資料報的大小,有時會降低到8192位元組。 udp協議使用報頭中的校驗值來保證資料的安全。校驗值首先在資料傳送方通過特殊的演算法計算得出,在傳遞到接收方之後,還需要再重新計算。如果某個資料報在傳輸過程中被第三方篡改或者由於線路噪音等原因受到損壞,傳送和接收方的校驗計算值將不會相符,由此udp協議可以檢測是否出錯。這與tcp協議是不同的,後者要求必須具有校驗值。
許多鏈路層協議都提供錯誤檢查,包括流行的乙太網協議,也許你想知道為什麼udp也要提供檢查和校驗。其原因是鏈路層以下的協議在源端和終端之間的某些通道可能不提供錯誤檢測。雖然udp提供有錯誤檢測,但檢測到錯誤時,udp不做錯誤校正,只是簡單地把損壞的訊息段扔掉,或者給應用程式提供警告資訊。
udp helper是實現對指定udp埠廣播報文的中繼**,即將指定udp埠的廣播報文轉換為單播報文傳送給指定的伺服器,起到中繼的作用.
(3)udp 的首部格式
使用者資料報 udp 有兩個字段:資料字段和首部字段。首部欄位有 8 個位元組,由 4 個字段組成,每個欄位都是兩個位元組。
五、udp報文段的校驗
udp首部校驗和的計算ip/icmp/igmp/tcp/udp等協議的校驗和演算法都是相同的,演算法如下:
在傳送資料時,為了計算ip資料報的校驗和。應該按如下步驟:
(1)把ip資料報的校驗和字段置為0;
(2)把首部看成以16位為單位的數字組成,依次進行二進位制反碼求和;
(3)把得到的結果存入校驗和字段中。
在接收資料時,計算資料報的校驗和相對簡單,按如下步驟:
(1)把首部看成以16位為單位的數字組成,依次進行二進位制反碼求和,包括校驗和字段;
(2)檢查計算出的校驗和的結果是否等於零(反碼應為16個1);
(3)如果等於零,說明被整除,校驗是和正確。否則,校驗和就是錯誤的,協議棧要拋棄這個資料報。
所謂的二進位制反碼求和,即為先進行二進位制求和,然後對和取反。 計算對ip首部檢驗和的演算法如下:
(1)把ip資料報的校驗和字段置為0;
(2)把首部看成以16位為單位的數字組成,依次進行二進位制求和(注意:求和時應將最高位的進製儲存,所以加法應採用32位加法);
(3)將上述加法過程中產生的進製(最高位的進製)加到低16位(採用32位加法時,即為將高16位與低16位相加,之後還要把該次加法最高位產生的進製加到低16位)
(4)將上述的和取反,即得到校驗和。
整理:時間的詩
乙太網基礎知識
1 乙太網歷史簡介 2.1 csma cd 現階段成熟的區域網技術有三種 乙太網 ethernet 令牌環 token ring 和光纖分布式資料介面 fddi 其中乙太網技術逐步成為區域網技術的主流。圖1 多路訪問控制協議分類 圖2 csma cd傳送資料幀流程圖 2.2 乙太網幀結構2.3 乙太...
乙太網基礎知識
乙太網phy和mac 乙太網mac和phy之間的介面總結 網口掃盲三 乙太網晶元mac和phy的關係 marvell 88e1145phy晶元的初始化配置 乙太網phy暫存器分析 乙太網phy 晶元之 mii mdio介面詳解 phy晶元介紹講解 乙太網的phy暫存器分析 sgmii 和 serde...
乙太網基礎知識2(UDP簡述)
來自 udp協議在ip協議上增加了復用 分用和差錯檢測功能。udp的特點 a 是無連線的。相比於tcp協議,udp協議在傳送資料前不需要建立連線,當然也就沒有釋放連線。b 是盡最大努力交付的。也就是說udp協議無法保證資料能夠準確的交付到目的主機。也不需要對接收到的udp報文進行確認。c 是面向報文...