CRC(循环冗余校验)笔记

循环冗余校验是一种用于校验通信链路上数字传输准确性的计算方法(通过某种数学运算来建立数据位和校验位的约定关系的 1 )。发送方计算机使用某公式计算出被传送数据所含信息的一个值,并将此值 附在被传送数据后,接收方计算机则对同一数据进行 相同的计算,应该得到相同的结果。如果这两个 CRC结果不一致,则说明发送中出现了差错,接收方计算机可要求发送方计算机重新发送该数据。

CRC循环冗余计算示例:

首先先要确定多项式公式,根据客户或者研发提供的研发提供的,如G(X) = X4 + X + 1,由此可以算出多项式二进制序列为:10011(二进制的总位数是多项式公式X最高次幂加1),因为X3,X2在多项式中不存在,可以当中0处理,故多项式整个公式可以这么写:G(X) = X4 + 0(X3) + 0(X2) + X + 1。

因为CRC校验位为4位,假设现在有一组24BIT原始数据是8C 6C AE,我们通过CRC校验去算有效数据的CRC和抓取的CRC是不是一致的(因为CRC为4位,则原始数据的E(最低4位)为CRC数)有效数据为08 C6 CA,去掉CRC位后,整个数据右移4位,故就可以通过网页设置,计算出来校验结果,与抓取到的CRC一致

也可以通过手动计算算出CRC的值:

把原始数据8C 6C AE的校验位E改为0,即8C 6C A0,转换成24位二进制:

1000 1100 0110 1100 1010 0000

把该24位二进制除以多项式二进制(10011),得到余数(4位二进制)即CRC数

剩下4位为CRC的数据,和网页上计算的一样

相关推荐
一米阳光866127 分钟前
软考高级【信息系统项目管理师】高项重要考点(3)高级项目管理-下 助你顺利上岸!
笔记·职场发展·软考·信息系统项目管理师·高级职称
dianziyao_1 小时前
第 4.1 篇:让 Codex 理解你的双链——AI 辅助发现笔记间的关联
人工智能·笔记
xian_wwq4 小时前
【学习笔记】OWASP Agentic 应用安全(二)
笔记·学习·安全·owasp
沪上企服通6 小时前
代账数据的可移植性设计:开放接口、账套导出与 exit strategy 工程笔记(上海 5 家样本对照)
笔记·策略模式
江湖人称菠萝包7 小时前
【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter8-子窗口控件
windows·笔记
M78佐菲7 小时前
HTML学习笔记
linux·笔记·学习·tcp/ip·html
我还可以再学点8 小时前
QUIC学习笔记
笔记·学习
点心的游戏开发世界9 小时前
GDScript 入门笔记:目录
开发语言·笔记·游戏引擎·godot
山岚的运维笔记9 小时前
mysql 专业笔记 -- 第 17 章:连接:连接三个具有相同名称 ID 的表
运维·数据库·笔记·后端·学习·mysql·dba
又見山9 小时前
用 Obsidian 写了两年的笔记,怎么备份?怎么同步到其他设备上
笔记·obsidian·obsidian插件·obsidian同步·obsidian教程