IP校验和计算
发表于:2024-10-17 作者:千家信息网编辑
千家信息网最后更新 2024年10月17日,今天上课提到IP头部校验和怎么算的,还真不是很清楚,于是去网上查了些资料,整理记录一下。IP首部校验和的计算主要是两步:按位异或和取反,具体来说1. IP头部以16位为一个单位,逐个模2加(相当于异或
千家信息网最后更新 2024年10月17日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安全错误
数据库的锁怎样保障安全
网络安全知识论文2000字
银行软件开发招聘 北京地区
app开发算软件开发吗
计算机数据库三级怎么考
gale数据库山东大学
搭建游戏服务器每个月多少钱
冒险岛一区服务器哪个好
线路板软件开发
apache服务器集群
泰州魏晋元兴分布式存储数据库
服务器机房工作专业性强吗
笔记本电脑显示服务器在运行中
创业项目管理软件开发
六安服务器机柜价格怎么样
潍坊诚联网络技术有限公司
哪个手游可以自己建造服务器
个人云端服务器需要哪些
手机麻将软件开发原理
分布式数据库的数据
数据库几十g
炒股软件开发需要资质吗
上海玉金互联网科技有限公司
深圳针对银行软件开发的公司
辽宁海事局网络安全培训
服务器参数配置
我的世界基岩版搭服务器
使用nfc提示服务器连接异常
银行软件开发用什么技术
切尔诺贝利人清除服务器
两个系统用一个数据库