UDP checksum計算方法 (附詳細例子)

來源:互聯網
上載者:User
文章來自: http://irw.ncut.edu.tw/peterju/internet.html#udpudp checksum的計算

提示:
1.UDP的Pseudo Header會用到 IP 封包中的 Sorurce Address, Destination Address, 與 Protocol。

2.UDP Length會在Pseudo Header與UDP Header中各出現1次,也就是說會被計算2次。《==

(注意



3.若Data的長度若非Word(2 Bytes)的倍數,則必須在最後面補一個 byte的padding「0」。

假設有一封包資料如下

 

// ------- BEGIN Ethernet HEADER ----------------------------<br />00 09 5b 4f 64 72 // Destination HW address<br />00 07 95 e7 79 2d // Src HW address<br />08 00 // Type (not really sure what this octet's for)<br />// ------- BEGIN IP HEADER ----------------------------<br />45 // IP version (IPv4)<br />00 // Differentiated Services Code Point (i have no idea what this octet is for)<br />00 38 // Total Length (of the packet?)<br />5d 02 // ID (not really sure what this octet's for)<br />00 00 // Fragmentation offset<br />80 // Time To Live (in network hops)<br />11 // Protocol (UDP)<br />33 d6 // IP Header Checksum<br />c0 a8 00 02 // Source IP<br />c0 f6 28 3c // Destination IP<br />// ------- BEGIN UDP HEADER ---------------------------<br />6d 38 // Source Port<br />6d 2e // Destination Port<br />00 24 // Length (of the UDP Packet?)<br />29 b5 // UDP Checksum<br />ff ff ff ff // Marker (part of the packet data, no idea what it's for)<br />67 65 74 73 65 72 76 65 72 73 20 38 32 20 66 75 6c 6c 20 65 6d 70 74 79 // Packet Data

 

將上述資料以2byte為一組(16 bits)予以加總(Pseudo Header, UDP Header, UDP Data)

 

c0a8 + 0002 + c0f6 + 283c + // Source IP, Dest IP<br />0011 + // Protocol<br />0024 + // UDP length<br />6d38 + 6d2e + // Source Port, Dest Port<br />0024 + // UDP length<br />0000 + // empty checksum<br />ffff + ffff + 6765 + 7473 + 6572 + 7665 + 7273 + 2038 + 3220 + 6675 + 6c6c + 2065 + 6d70 + 7479 // Data<br />= 8d642

 

進位的LSB必須再加回來

 

8 + d642 = d64a

 

 

對結果求補數,即為checksum值

 

~d64a = 29b5

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.