校验和计算方法

news/2025/2/1 17:55:10/

1.说明:

  [1]校验和覆盖的内容:

    IP校验和:IP首部。

    ICMP校验和:ICMP首部+ICMP数据;

    UDP、TCP校验和:首部+数据+12个字节伪首部(源IP地址、目的IP地址、协议、TCP/UDP包长)。

2.计算校验和的步骤:

  [1]把校验和字段设置为0。

  [2]把需要校验的数据看成以16位为单位的数字组成,依次进行二进制反码求和。

  [3]把得到的结果存入校验和字段中。

  另外UDP、TCP数据报的长度可以为奇数字节,因为计算时是16位为单位,所以此时计算校验和时需要在最后增加一个填充字节0(只是计算校验和用,不发送出去)。

3.接收端校验校验和步骤:

  [1]把需要校验的内容(包括校验和字段)看成以16位为单位的数字,依次进行二进制反码求和,如果结果是0表示正确,否则表示错误。

4.二进制反码求和步骤:

  [1]二进制反码求和,就是先把这两个数取反,然后求和,如果最高位有进位,则向低位进1。

  [2]另外,先取反后相加与先相加后取反,得到的结果是一样的。因此实现代码都是先相加,最后再取反。

5.实现代码:

static inline uint16_t check_sum(const uint16_t *buffer, int size)
{unsigned long cksum = 0;//16位为单位数字相加while(size>1){cksum += *buffer++;size -= sizeof(uint16_t);}//长度奇数情况if(size)cksum += *((unsigned char *)buffer);//高位有进位,进位到低位,下面两行代码保证了高16位为0。cksum = (cksum>>16) + (cksum&0xffff);cksum += (cksum>>16);//最后取反return (uint16_t)(~cksum);
}

http://www.ppmy.cn/news/374886.html

相关文章

F1C100S电阻触摸屏驱动

https://whycan.cn/t_2143.html移植触摸屏驱动。 移植后遇到的问题,触摸中断一直在触发。【原因:由于rtp引脚复用没有设置】 //读0x01C20800寄存器,可以看到没有配置复用 # devmem 0x01C20800 0x00000777 //写0x01C20800寄存器,PA0\PA1\PA2\PA3启动RTP…

ctfshow web310

跟前面308 309同一个源码,只是mysql添加了密码不能ssrf了 跟309一样 不过这题的flag不能直接读,找了一下,web目录下面的flag是假的,真的在/var/flag里面,无法直接用ssrf读到,但写个木马用蚁剑连接就能读到了…

CF120F Spiders

知识点:贪心,树的遍历 难度:5 我真的是操了,这已经不知道是多少次因为无向边而把数组开小导致一直卡着,这个题的题意就是有若干棵无根树,问把这些树拼接起来最长的直径能有多少,总体的思路就是…

f1c100s spi flash分区

spi flash分区 u-boot-sunxi-with-spl.bin – 1Msuniv-f1c100s-licheepi-nano.dtb – 64KzImage – 4Mrootfs – 剩余 dd if/dev/zero off1c100s_spiflash_16M.bin bs1M count16 &&\ dd if/home/book/lichee/u-boot/u-boot-sunxi-with-spl.bin off1c100s_spiflash_16…

JSF入门系列教程(一) jsf简介,jsf是什么?

Web应用程式的开发与传统的单机程式开发在本质上存在着太多的差异,Web应用程式开发人员至今不可避免的必须处理HTTP的细节,而HTTP无状态的(stateless)本质。 与传统应用程式必须维持程式运行过程中的资讯有明显的违背&#xff0c…

ctfshow 105-127

Web(105)【foreach函数】 Foreach函数PHP: foreach - Manual ?sucesflag post errorsuces Web(106)【shal】 ?v2[ ]3 v1[ ] 之前104的做法不过这里因为加了一个条件所以要使用不同的赋值。 Web(107&#x…

FSL里的FAST [4]

这里写自定义目录标题 FSL里的FAST工具(FMRIBs Automated Segmentation Tool)需要先进行大脑提取分割出白质、灰质和脑脊液 FSL里的FAST工具(FMRIB’s Automated Segmentation Tool) 如果读过很多论文的话,知道很多时…

f1c100s 源码_F1C100s 数据手册Datasheet V1_0

【实例简介】 F1C100s 的数据数据手册Datasheet V1_0,这款芯片性价比好,可惜资料太少,欢迎大家多多共享。 DAllinger Technology Revision History Revision History Revision Date Description V10 NoV10,2015 Initial release version F1C100s Datasheet(Revision 1.01 Co…