IP校验和计算
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,今天上课提到IP头部校验和怎么算的,还真不是很清楚,于是去网上查了些资料,整理记录一下。IP首部校验和的计算主要是两步:按位异或和取反,具体来说1. IP头部以16位为一个单位,逐个模2加(相当于异或
千家信息网最后更新 2024年11月26日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安全错误
数据库的锁怎样保障安全
潍坊软件开发公司
吴忠市软件开发技术怎么样
手机网络安全密钥怎么找
控制卡重置数据库
电子软件开发有哪些问题
服务器暂时无法处理怎么办
计算机网络技术前沿技术
公司起诉软件开发人员
网络安全加密软件
安徽通用软件开发平均价格
聊天软件开发如何评价
蒙牛网络技术学院
数据库怎么查看表记录
数字货币网络技术架构
工作室挂机软件开发网
北京专业软件开发公司有哪些
数据库允许存储的字符串
vlc rtsp服务器
笔记本电脑可以装数据库吗
电厂网络安全系统改造
网络安全认证如何做
服务器的英文表示是
四个字的软件开发
服务器内存是匹配处理器还是主板
app软件开发合伙人
服务器显示器接口
网络安全链接是什么
软件开发大学考本
大连公安系统软件开发
外汇软件开发图线