【业务领域】CRC计算/Checksum计算总结

本文详细介绍了CRC校验、奇偶校验、FCS(帧检验序列)、IPV4和IPV6中的checksum、UDP和TCP的校验和计算,以及在以太MAC帧、NVGRE报文和ICMPv6中的应用,为IT专业人士提供了校验算法的基础知识和实例分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见校验算法简介

常用的简单校验算法:校验和,异或校验,crc校验,LRC校验,补码求和,checksum
相关思路和源码来自网络,自己只是整理, 做笔记用。

并未完整完善正确归纳,只是个人理解初步做笔记记录。

在实现业务需求过程中,通常要用到相关一些校验算法,简单整理常用校验算法并做笔记:

常用校验算法简单说明:

  • 校验和:按每个字节,计算累加和,

  • 异或校验:定义初值,按每个字节异或,求结果。

  • CRC校验:已有很多的标准及计算方式,可以返回8字节,16字节,32字节的结果。
    受益匪浅的文章:https://blog.youkuaiyun.com/u013073067/article/details/86621770 ​
    设置crc值和多项式码;依次遍历每个字节,与crc值进行异或;crc值取出最低位的值,并右移一位;如果最低位值位1,则于多项式码进行异或;循环直到8位结束。
    crc查表思想:观察,内部有个循环,每次对一个字节(8位)的循环中,对crc码的数字是不变的,这里与多项式码相关,可以直接用数组代替这里的求值。(crc表与crc返回8/16/32位有关,与多项式码有关)

  • LRC校验:是不可靠的,先求和,再对结果取反+1

  • checksum:对checksum值归0,每16bit求和,不够16bit的高位补0,如果checksum溢出,则高16bit和低16bit相加进行处理(依次循环判断)。

奇偶校验:

在这里插入图片描述
在这里插入图片描述
(上面截图来自《计算机网络-自顶向下方法》陈鸣 译,机械工业出版社)

校验和方法:

在这里插入图片描述
(上面截图来自《计算机网络-自顶向下方法》陈鸣 译,机械工业出版社)

循环冗余检测:

在这里插入图片描述
在这里插入图片描述

(上面截图来自《计算机网络-自顶向下方法》陈鸣 译,机械工业出版社)

以太MAC帧中FCS

在数据链路层要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值