udp:使用者資料報協議
特點:1.無連線,傳輸資料時不需要建立鏈結
2.盡最大努力傳輸,不可靠
3.面向報文的,接收到應用程式的資料時,只往資料前面加乙個udp頭部就傳給網路層,收到網路層傳來的udp資料時,只把udp頭部去掉就扔給應用層程序。不論資料大小都是一次傳送。
4.沒有擁塞控制,不管鏈路的暢通情況,都以不變的速率傳送報文。
5.udp支援一對一,一對多,多對一,多對多的互動通訊
6.udp的頭部簡單,占用資源少(8位元組)
udp頭部結構
源埠 :源埠號。在需要對方回信時用,不需要時可用全0.
目的埠: 目的埠號。在終點交付報文時使用。
長度: udp資料報長度。最小值為8位元組(只有首部)
校驗和:檢測udp資料報文在傳輸過程中是否有錯,錯誤就丟棄。
偽首部:這個不屬於udp首部,既不向下傳遞,也不向上遞交,僅僅是用來求校驗和的。偽首部的第3位元組全為0;第4欄位是ip首部中的協議欄位的值(協議號)。第5欄位是udp使用者資料報的長度。因此,這樣的校驗和既檢查了udp使用者資料報的源埠和目的埠以及udp使用者資料報的資料部分,又檢查了ip資料報的源ip位址和目的位址。
udp校驗和計算方法:
udp的校驗是首部和資料一塊校驗的,而ip校驗只校驗ip頭部
傳送方:
1.看資料報是不是偶數位元組數,若不是新增乙個全0的位元組填充(該位元組不傳送)。
2.將校驗和字段置為全0
3.將偽首部以及udp使用者資料報看成由許多16位的字串起來的。
4.進行二進位制反碼求和,結果填入校驗和字段傳送。
接收方:
將接收到的udp報文連同偽首部以及可能的填充全0位元組一起,按二進位制反碼求這些16位字的和。無差錯時其結果為全1.否則出現差錯丟棄。
這裡我們假定乙個15位元組的資料報。
00000000 00010001–0和17
00000000 00001111–15
00000100 00111111–1087
00000000 00001101–13
00000000 00001111–15
00000000 00000000–全0(校驗和)
01010100 01000101–資料
01010011 01010100–資料
01001001 01001110–資料
01000111 00000000–資料和填充項
——————————————————
二進位制求和??????
所以和為10010110 11101101—>取反01101001 00010010就是校驗和。
計算udp校驗和例子 UDP校驗和計算例項
udp校驗和的計算例項說明 成都資訊工程學院 鄭郁正 如下定義乙個udp的以太包。為了方便,只包含兩個位元組資料0x55,0xaa。unsigned char udp et pkt 參與udp校驗計算的由三部分組成 udp頭,udp資料,udp偽頭,如下面所示 unsigned char udp c...
UDP校驗和計算
目錄 一 udp概述 二 udp資料報 三 udp校驗和計算 四 udp校驗和計算的c語言實現及抓包驗證 udp是user datagram protocol的簡稱,中文名是使用者資料報協議,是osi open system interconnection,開放式系統互聯 參考模型中一種無連線的傳輸...
tcp和udp的頭部資訊
源埠號以及目的埠號 各佔2個位元組,埠是傳輸層和應用層的服務介面,用於尋找傳送端和接收端的程序,通過這兩個埠號和ip頭部的ip傳送和接收號,可以唯一的確定乙個連線。一般來講,通過埠號和ip位址,可以唯一確定乙個tcp連線,在網路程式設計中,通常被稱為乙個socket介面。序號 佔4位元組,用來標識從...