问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何计算TCP的CHECKSUM

发布网友 发布时间:2022-04-30 01:38

我来回答

1个回答

热心网友 时间:2022-06-28 05:40

如何计算UDP/TCP检验和checksum


一、下面的图是一个UDP的检验和所需要用到的所有信息,包括三个部分:

UDP伪首部

2.UDP首部

3.UDP的数据部分(切记不要遗漏该部分,否则就~吐血了~)

首先解释下伪首部的概念,伪首部包含IP首部一些字段。其目的是让UDP两次检查数据是否已经正确到达目的地,只是单纯为了做校验用的。

还有一个概念十分重要,那就是16位UDP总长度,请注意该长度不是报文的总长度,而只是UDP(包括UDP头和数据部分)的总长度(之前就是因为这个概念没弄清楚,走了不少弯路,吐血~~)。


二、计算检验和(checksum)的过程很关键,主要分为以下几个步骤:

把伪首部添加到UDP上;

2.计算初始时是需要将检验和字段添零的;

3.把所有位划分为16位(2字节)的字

4.把所有16位的字相加,如果遇到进位,则将高于16字节的进位部分的值加到最低位上,举例,0xBB5E+0xFCED=0x1 B84B,则将1放到最低位,得到结果是0xB84C

5.将所有字相加得到的结果应该为一个16位的数,将该数取反则可以得到检验和checksum。


三、事实胜于雄辩,还是举个例子来分析一下吧,该例子计算的是一个TCP的检验和(和UDP的算法一致)

TCP计算检验和的报文结构如下所示:


抓包工具抓了一个TCP 的syn报文做研究,呵呵,下面就是整个报文:


首先将检验和部分添零;

2.然后将TCP伪首部部分,TCP首部部分,数据部分都划分成16位的一个个16进制数;

3.将这些数逐个相加,记得溢出的部分加到最低位上,这是循环加法:

0xc0a8+ 0x0166+……+0x0402=0x9b49

4.最后将得到的结果取反,则可以得到检验和位0x64B6

按照上述步骤进行计算就可以得到检验和为0x64B6,大家也可以试试看

IP数据报只检验IP数据报的首部,但UDP检验的是把首部和数据部分一起都检验。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 战歌是什么意思? 战歌是什么意思啊 斗鱼直播天天说战歌 会务服务的会务流程 如何开物业保安会议? 如何做好会务保障工作? 怎么在ps里画出这样的波浪圈 保安会议内容有哪些 ps中 波浪圈 怎么画 六安苏埠糯米圆子的做法 物业保安会议提什么建议好呢 谁能告诉我PS怎么能做出下面这图的效果 波浪花边 ps这种波浪图形怎么做的? PS里如何才能看起来平滑? ps如何制作波浪形花边 泼水节是什么的节日 怎样找到QQ密码 泼水节有什么特点? 泼水节是什么时候? 不晓得近来有嘛好看的小说 求好看的小说!!!急!!! 如何计算checksum 豆腐炖香肠怎么做 checksum这个校验的文件咋用? CRC和checksum的区别 腊肠煮豆腐的做法,腊肠煮豆腐怎么做好吃,腊肠 Checksum计算 yy里面经常放什么战歌? 微信聊天记录中向某账号发送的信息被长按该条消息删除后如何恢复?如 checksum文件 效验怎么算 除了水煮,香肠还能怎么吃呢? 触手tv剑仙,我以前看他直播的时候听过一首歌,当时他说我要放战歌了…。这首歌是送给喷子们的… md5 checksum与md5是一样吗 抖音标题跑到评论里怎么改回来 [串口通讯]关于发送指令时的 CHECKSUM,帮忙解析下通讯协议。 征途指挥刺探的时候YY里放战歌是怎么放的 苹果微信消息删除了怎么恢复 为何做香肠后煮出的香肠全成豆腐渣样? ip checksun 怎么计算 男人放这首歌代表他心里想表达什么呢! QQ巨轮怎么换人。