差错检测的学习

奇偶校验(Parity Check)

是一种简单的错误检测方法,用于在数据传输过程中检测是否发生了位错误。奇偶校验主要用于单个比特错误检测,并通过增加一个额外的校验位来实现。

奇偶校验的基本概念

在使用奇偶校验时,数据的每一个字节或比特序列都会附加一个额外的比特,这个比特称为校验位 。根据校验位的值,数据传输可以采用奇校验 或偶校验。

  1. 奇校验 (Odd Parity):确保数据中1的个数是奇数 。如果数据中1的个数是偶数,则校验位设置为1,使得数据中的1的个数变为奇数;如果数据中1的个数本来就是奇数,则校验位设置为0,保持奇数个1。

  2. 偶校验 (Even Parity):确保数据中1的个数是偶数 。如果数据中1的个数是奇数,则校验位设置为1,使得数据中的1的个数变为偶数;如果数据中1的个数本来就是偶数,则校验位设置为0,保持偶数个1。

奇偶校验的步骤

  1. 发送方:

    • 计算数据中的1的个数。

    • 根据选择的校验类型(奇校验或偶校验),为数据生成一个校验位。

    • 将数据和校验位一起发送给接收方。

  2. 接收方:

    • 接收数据并检查校验位。

    • 计算接收到的数据中1的个数(包括校验位)。

    • 如果数据满足奇校验或偶校验的要求,则认为数据没有错误;如果不满足,则认为数据可能存在错误。

举个例子

假设我们使用偶校验 ,并且要传输的数据是一个字节:1011001。

  • 这个字节中有4个1(偶数个),因此,校验位应为0,保持数据中1的个数是偶数。

  • 发送的数据将是:10110010(最后一个0是校验位)。

如果数据传输过程中发生了错误,接收方会接收到一个数据,比如:10110011。

  • 这个数据中有5个1(奇数个),不符合偶校验的要求。

  • 因此,接收方会检测到错误,通常会请求重新传输数据。

奇偶校验的优缺点

优点:

  1. 简单:奇偶校验非常简单,计算和实现容易。

  2. 低成本:不需要额外的硬件支持,容易在现有的通信系统中实现。

  3. 实时检测:能在数据传输过程中实时检测单比特错误。

缺点:

  1. 只能检测单比特错误:奇偶校验只能检测出单个比特错误,无法检测到多个比特错误。

  2. 不能纠正错误:它只能检测错误,但不能自动纠正错误。一旦发现错误,必须重新传输数据。

  3. 有限的错误检测能力:如果数据发生多个错误,可能无法检测到。

CRC(循环冗余校验,Cyclic Redundancy Check)

我们有待发送的信息 101001 和生成多项式 G(x) = x^3 + x^2 + 1。这个生成多项式可以用二进制表示为 1101(即 x^3 + x^2 + 1 对应的多项式的系数)。

接下来,我们可以按照以下步骤使用 CRC 来生成校验码。

步骤 1:将数据和生成多项式准备好

  • 待发送数据 :101001。

  • 生成多项式 :1101(对应1* x^3 + 1*x^2 + 0*x^1 + 1*x^0)。

首先,将数据 101001 后面加上生成多项式的位数减去1的零。因为生成多项式 1101 是4位,因此我们要在数据后面加上3个零。

  • 添加零后的数据 :101001000。

步骤 2:执行CRC除法

接下来,我们使用异或运算(即多项式除法)来计算CRC校验码。

  1. 数据 :101001000(即 101001 + 3个零)

  2. 生成多项式 :1101。

我们从数据的最左边开始,用生成多项式对数据进行异或运算。

步骤 3:发送的数据

将原始数据和CRC校验码连接在一起,得到最终要发送的数据

发送码字 ​:原数据 + 余数 → ​101001001

相关推荐
Novproxy_Z5 小时前
商用代理避坑:如何识别商家拿机房 IP 冒充住宅 IP
java·网络·tcp/ip
垆边人似月.5 小时前
RDMA 文件传输踩坑(五):READY 发送成功后,为什么出现 Work Request Flushed Error?
服务器·网络·tcp/ip
HideF6 小时前
nmcli
linux·服务器·网络
qetfw6 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
尹人入圣6 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
Nuanyt7 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
中屹指纹浏览器svip8 小时前
只用指纹浏览器,不搭配IP可以吗?
网络
jimmyleeee8 小时前
Agent安全之八:OWASP ASI08 级联失效------当每一个 Agent 都“正确”,系统却走向灾难
网络·安全·web安全
缓慢更新8 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
叼烟扛炮8 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip