作者Markseinn (让专业的来)
看板NTUE-CS100
标题[疑问] UDP Checksum到底要怎麽算?
时间Tue Jan 5 00:13:44 2010
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)
1F:推 jerry771210:骗P币喔 01/05 09:24
2F:→ Markseinn:金融海啸我也深受其害啊 01/05 10:18