IP校验和计算
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,今天上课提到IP头部校验和怎么算的,还真不是很清楚,于是去网上查了些资料,整理记录一下。IP首部校验和的计算主要是两步:按位异或和取反,具体来说1. IP头部以16位为一个单位,逐个模2加(相当于异或
千家信息网最后更新 2025年01月21日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安全错误
数据库的锁怎样保障安全
国家医保信息编码数据库
魂11怪物数据库
情人节 网络安全
ACCp软件开发发展前景
国产数据库厂商海量数据
网络安全行业基本概述
数据库多对对
南京加工软件开发定制价格
网络技术汇流排是什么
鼓楼区网络技术服务创新服务
数据库角色概念及特点
163邮箱服务器设置大小
比较好的云服务器软件服务
千锋教育网络安全课
组态王怎样记录数据库
电脑放光盘服务器运行失败
计算机网络技术专业课程表
辽宁科技学院互联网工程
怎么做学生管理数据库图文
网络安全法哪一年施行的
网络安全和国家安全之间的关系
苹果产品网络安全
重庆免费进销存软件开发
软件开发一个人做得来吗
北京erp 软件开发服务介绍
计算机网络技术可以考本科吗
数据库用户完整性定义语句
破解通达信数据库
汽车软件开放化网络安全怎么解决
服务器备份的文件里面有病毒