[爆卦]checksum計算是什麼?優點缺點精華區懶人包

為什麼這篇checksum計算鄉民發文收入到精華區:因為在checksum計算這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Markseinn (讓專業的來)看板NTUE-CS100標題[疑問] UDP Checksum...



UDP的Checksum要怎麼算,不知道為什麼這幾天常常被問到這問題,發問頻率
僅次於"明天要去哪裡拍照"


好吧~擒賊先擒王,想知道checksum怎麼算,當然要先懂他是怎麼算出來的


首先先來說一下UDP的checksum拿了哪些東西來運算


UPD checksum的計算包含下列四項

1. Pseudo Header
2. UDP Header
3. UDP Data
4. Padding

UDP Header和UDP Data我就不繁述了,不知道在哪的話請明年再來吧

Pseudo Header <---中文我也不知道要怎麼翻,隨便啦,假表頭還是虛擬表頭都行
這東西包含了來源IP位址 、目的IP位址 、Unused 、協定 、和Length

其中來源IP位址、目的IP位址、Protocol請到IP Header去把他找出來
Unused是長度為8bits的0
Length是UDP Header裡的Length 別抓錯了

Padding是當checksum的檢查範圍不是2Byte的倍數的時候
會在最後加上一個Padding


好啦~~checksum就是把這幾個東西加一加就是答案了,講解完畢

-----------------------------------------------------------------------------

如果還是霧颯颯的話...別擔心,來抓個範例說明最快

下面是我從電線鯊魚裡抓到的一個UDP封包,麻煩不要給我拿這組當作業交出去

0000 00 1f c6 28 fd 1f 00 50 7f c6 04 20 08 00 45 00 ...(...P ... ..E.
0010 00 3c 07 a7 00 00 2f 11 5f 00 60 f1 02 66 c0 a8 .<..../. _.`..f..
0020 01 0b 65 c2 75 a4 00 28 5d 72 24 62 b4 5a 91 db ..e.u..( ]r$b.Z..
0030 2b 65 10 b0 30 8a 94 94 4e 24 45 16 98 db 51 94 +e..0... N$E...Q.
0040 42 10 05 37 28 11 e1 f4 66 f6 B..7(... f.


該如何解析我這也不多說了,不會的老樣子請明年再來

在這裡點出幾項我們待會會用到的數值

Source IP 60 f1 02 66

Destination IP c0 a8 01 0b

Protocol 11

Length(of UPD) 00 28

Source Port 65 c2

Destination Port74 a4

Length 00 28

UDP Checksum 5d 72

Data 24 62........(我懶著打了).....66 f6

------------------------------------------------------------------------------
把這些東西解析出來後接下來就簡單啦~~
就請各位到附屬應用程式把你的小算盤打開開始加

在此提醒一下...我覺得有人會忘記,要以2Byte為一組相加

///////////開始算/////////
______________________________
60f1+0266+c0a8+010b+ //來源和目的IP
0011+0028+ //UDP協定+ UDP length Pseudo Header
______________________________
65c2+74a4+ //來源跟目的Port
0028+ //UDP length UDP Header
0000+ //checksum用0加上
______________________________
2462+.......懶著打了........+66f6 Data
=7a286 //有算錯跟我講


把進位的加回來 7+a286=a28d

然後把結果取補數 ~a28d=5d72


Nice~看看跟UDP Header裡的checksum有沒有一樣,一樣的話就大功告成啦


大家在偷菜之餘也要多關心一下佳興喔 ^_<

(懶著排版了,大家加減看)



--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.71.33.83
※ 編輯: Markseinn 來自: 219.71.33.83 (01/05 00:51)
jerry771210:騙P幣喔 01/05 09:24
Markseinn:金融海嘯我也深受其害啊 01/05 10:18

你可能也想看看

搜尋相關網站