IP校验和计算
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,今天上课提到IP头部校验和怎么算的,还真不是很清楚,于是去网上查了些资料,整理记录一下。IP首部校验和的计算主要是两步:按位异或和取反,具体来说1. IP头部以16位为一个单位,逐个模2加(相当于异或
千家信息网最后更新 2025年12月02日IP校验和计算
今天上课提到IP头部校验和怎么算的,还真不是很清楚,于是去网上查了些资料,整理记录一下。
IP首部校验和的计算主要是两步:按位异或和取反,具体来说
1. IP头部以16位为一个单位,逐个模2加(相当于异或);
2. 得到的结果取反,作为校验和放入校验和字段;
3. 初始计算校验和字段时该字段全部用0填充;
以上是对于发送者来说如何计算校验和的,而对于接收者来说,验证也很简单:
1. 对于接收的IP报文头部以16位为单位逐个求和;
2. 若结果为1,则校验正确,否则出错丢弃;
原理很简单,接收方的计算对象是A和A的反的异或,结果当然是1了!
具体的程序实现例子如下:
SHORT checksum(USHORT* buffer, int size)
{
unsigned long cksum = 0;
//每16位相加
while(size>1)
{
cksum += *buffer++;
size -= sizeof(USHORT);
}
//最后的奇数字节
if(size)
{
cksum += *(UCHAR*)buffer;
}
cksum = (cksum>>16) + (cksum&0xffff); //将高16bit与低16bit相加
cksum += (cksum>>16); //将进位到高位的16bit与低16bit 再相加,确保高16位为0
return (USHORT)(~cksum); //最后将结果取反,得到checksum
}
结果
头部
字段
单位
清楚
例子
原理
发送者
奇数
字节
对象
报文
接收者
收方
程序
资料
高位
验证
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
斑马网络技术 吴尚
电脑无法连接服务器账户
如何在两个路由之间设置服务器
网络安全厂商与运营商合作协议
nc系统数据库
dell 服务器集群
数子引擎深圳网络技术
数据库表备份
广东云服务器技术指导
传奇 服务器验证失败
数据库应用系统的需求调研任务
大唐集团网络安全
计算机网络技术统招专插本
网络安全小组引人注目
武清区网络安全知识竞赛
八年网络安全宣传周的主题是
如何用软件开发票
网络安全保护工作汇报材料
签名验证失败服务器
数据库pltive
java 编程服务器
优势的软件开发人员
怎么管理多个服务器上的文件
服务器固件版本
松江区运营软件开发问答知识
ue4 打包服务器慢
化学品性质查询数据库
阿里服务器怎么开设数据库
服务器安全狗禁止ping
《网络安全实施细则》