文章来自: http://irw.ncut.edu.tw/peterju/internet.html#udp
udp 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」。
假設有一封包資料如下
將上述資料以2byte為一組(16 bits)予以加總(Pseudo Header, UDP Header, UDP Data)
進位的LSB必須再加回來
8 + d642 = d64a
對結果求補數,即為checksum值
~d64a = 29b5