tcp/ip的checksum计算步骤及方法请见如下链接:
以太网Checksum-TCP/IP手算拆解教学-CSDN博客
1、UDP数据结构如图
在计算UDP首部校验和时,计算范围包括了伪首部、UDP首部、UDP数据报,其中各个部分数据容量如下:
伪首部—---------12字节=48字符
其中
源IP地址---------4字节=16字符
目的IP地址----—4字节=16字符
协议-----------—1+1字节=4+4字符=8字符
UDP长度---------2字节=8字符
UDP首部---------8字节=32字符
UDP数据报的长度取决于底层协议的限制长度=底层限制长度总字节-IP首部字节-UDP首部字节
以上三部分均是checksum的计算范围,均需参与计算;
2、UDP的首部校验和Checksum不仅对IP首部的部分数据进行计算,还对UDP首部以及UDP数据报进行计算;
3、发送端的UDP首部校验和在计算时,将首部校验和看作为0x0000来计算;
4、在计算首部校验和时按照每16位字符为1个单位进行累加;
5、发送端用wireshark截取1帧UDP报文,并将IP首部数据和UDP首部数据以及UDP数据报详细展开来:
6、如上1帧UDP报文的首部校验和Checksum计算步骤如下:
6.1、先对伪首部进行相加:
(源IP地址前16位) |
ac1f |
||
(源IP地址后16位) |
812e |
||
(目的IP地址前16位) |
ffff |
||
(目的IP地址后16位) |
ffff |
||
(协议号) |
0011 |
||
(UDP长度) |
0031 |
伪首部sum=ac1f+812e+ffff+ffff+0011+0031
6.2、再将UDP首部相加,其中首部校验和默认是0000:
(源端口) |
3458 |
||
(目的端口) |
3458 |
||
(UDP长度) |
0031 |
||
(检验和) |
0000 |
UDP首部sum=3458+3458+0031+0000
6.3、再将UDP数据报进行相加,注意了,如果数据报出现奇数字节,则需要后面补0:
(UDP数据报总长) |
02fd000400000021ffffffffffffffffffffffffffffffffff00013ca9f4b46177540671a0a20a0000 |
|
(UDP数据报第1个) |
02fd |
02fd |
(UDP数据报第2个) |
0004 |
0004 |
(UDP数据报第3个) |
0000 |
0000 |
(UDP数据报第4个) |
0021 |
0021 |
(UDP数据报第5个) |
ffff |
ffff |
(UDP数据报第6个) |
ffff |
ffff |
(UDP数据报第7个) |
ffff |
ffff |
(UDP数据报第8个) |
ffff |
ffff |
(UDP数据报第9个) |
ffff |
ffff |
(UDP数据报第10个) |
ffff |
ffff |
(UDP数据报第11个) |
ffff |
ffff |
(UDP数据报第12个) |
ffff |
ffff |
(UDP数据报第13个) |
ff00 |
ff00 |
(UDP数据报第14个) |
013c |
013c |
(UDP数据报第15个) |
a9f4 |
a9f4 |
(UDP数据报第16个) |
b461 |
b461 |
(UDP数据报第17个) |
7754 |
7754 |
(UDP数据报第18个) |
0671 |
0671 |
(UDP数据报第19个) |
a0a2 |
a0a2 |
(UDP数据报第20个) |
0a00 |
0a00 |
(UDP数据报第21个) |
00 |
0000 |
UDP数据报sum=02fd+0004+0000+0021+ffff+ffff+ffff+ffff+ffff+ffff+ffff+ffff+ff00+013c+a9f4+b461+7754+0671+a0a2+0a00+0000
6.4、将三部分累加起来:
UDPsum=伪首部sum+UDP首部sum+UDP数据报sum=f2080
6.3、IP首部数据的sum结果是f 2080,属于溢出状态,则需进行回滚计算:
将溢出的结果拆成000f和2080,两者进行回滚相加:
carry=000f+2080=208f
6.4、最终对carry后的数据取反得到checksum结果:
checksum=ffff-208f=df70
7、excel版本自动计算公式如下:
手算excel.xls在下面链接下载即可文章来源:https://www.toymoban.com/news/detail-860501.html
原创-tcp/ip和UDPchecksum手算方法,逐步拆解计算步骤,让你一看就会资源-CSDN文库文章来源地址https://www.toymoban.com/news/detail-860501.html
到了这里,关于以太网Checksum-UDP手算教学的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!