计算机网络之奇偶校验码和CRC冗余校验码

news2025/1/17 0:59:52

今天我们来看看有关于计算机网络的知识——奇偶校验码和CRC冗余校验码,这两种检测编码的方式相信大家在计算机组成原理当中也有所耳闻,所以今天我就来跟大家分享有关他们的知识。


奇偶校验码

奇偶校验码是通过增加冗余位使得码字中1的个数恒为奇数或偶数的编码方法,它是一种检错码。根据被传输的一组二进制代码的数位中“1”的个数是奇数还是偶数来进行校验,可分为奇校验和偶校验。给每一个码字加一个校验位,用它来构成奇性或偶性校验。具体来说,如果是奇校验,则在数据二进制位后面添加一个奇校验位,使数据位和校验位中二进制位1出现的个数总是奇数个;如果是偶校验,则使1的个数为偶数。

我们按照下图当中的两个编码,分别对他们使用奇偶校验,来更加直观的了解奇偶校验。

奇校验

我们看上面的10100010,它有奇数个1,那么就在最后的校验位加上0。

第二个10100000,它的1为偶数个,那么根据奇校验我们就要在校验位上加上1。

偶校验

偶校验则同理。第一个10100010,有奇数个1,则在校验位上加上1。

第二个10100000,它的1为偶数个,那么根据奇校验我们就要在校验位上加上0。

优缺点

但是奇偶校验码也存在一些问题:

  • 优点:奇偶校验码是一种非常有效的数据验证方法,能够检测出数据传输过程中的错误,保护数据的完整性和准确性。
  • 缺点:然而,奇偶校验码只能检测出错误的数据,而不能确定错误的具体位置,也不能检测出偶数位错误或恶意数据。此外,其效率相对较低,对于复杂的数据校验需求可能不够高效。

CRC冗余校验

CRC是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦测的功能。具体来说,CRC是两个字节数据流采用二进制除法(没有进位,使用XOR来代替减法)相除所得到的余数。其中被除数是需要计算校验和的信息数据流的二进制表示;除数是一个长度为n的预定义(短)的二进制数,通常用多项式的系数来表示。

在CRC当中,我们需要通过多项式和异或运算来得到是否出错。如果最终刚好整除,得到0,那么就说明没有出错。反之则有错误。

假设我们有一个多项式G(x)和一个信息位如下:

那么我们可以由多项式G(x)得出用于校验的“除数“10111”,并且因为G(x)的最高位的次数是4,我们就给信息位不上4个0。最后我们用10100010000去除10111,通过异或运算可以得到如下的计算过程:

因为最终的结果为1101,不为0,因此我们可以得出在传输过程中有错误产生。

CRC的检验能力

CRC除了能检查出随机差错外,也可以检查突发的错误。

  • CRC可以检查全部离散的一位错误
  • CRC可以检查全部离散的两位错误
  • 能检查全部的奇数位差错
  • 能检查全部长度小于等于k的突发差错(k是多项式的最高幂值)

总结

总的来讲今天我们看了两种检验方法,希望对大家有所帮助。如果对大家有所帮助,希望大家可以给我一个点赞或关注,这对我非常重要,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1853477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

示例:推荐一个应用Adorner做的通知和提示消息对话框

一、目的:在开发过程中,增加一些提示消息可以很好的提高用户体验,下面介绍一个用于增加提示消息的库 二、效果如下 可以看到右侧顶端弹出提示消息,消息间隔3s自动退出 三、环境 VS2022 Net7 四、使用方式 安装nuget包&#xff…

什么是APP分发-了解APP分发的核心概念

APP分发的定义和意义 大家有没有过这样的经历:辛辛苦苦开发了一款APP,却不知道该怎么让更多人知道和使用?APP分发的重要性就凸显出来了。APP分发就是将你的应用推送到不同的应用市场和平台,让更多用户能够下载和使用。 小猪app封…

智能优化算法改进策略之局部搜索算子(七)--自适应模式搜索法

1、原理介绍 模式搜索法[1]是Hooke与Jeeves提出的一种直接搜索算法,其目的是通过比较目标函数在有限点集中的函数值来优化目标函数。更重要的是,它不仅不使用任何导数知识,而且不需要隐式地建立任何一种导数近似。 在这种直接搜索技术中&…

C++学习合集

#整理到一块,方便查东西,顺便补充一些之前没有学习到的东西# 变量 char--1字节 short--2字节 int-4字节 long--4字节 long long(int)--8字节;准确来说变量的大小取决于编译器,1字节8个二进制位,其中最高位为符号位…

C语言---自定义类型:结构体

结构体回顾 结构体 自定义的类型:结构体、联合体、枚举 结构是一些值的集合,这些值成为成员变量,结构的每个成员可以是不同类型的变量 //描述一本书:书名、作者、定价、书号//结构体类型---类似于整型、浮点型 struct Book {c…

操作系统真象还原:用户进程

第11章-用户进程 这是一个网站有所有小节的代码实现,同时也包含了Bochs等文件 11.1 为什么要有任务状态TSS Linux 任务切换未采用 Intel 的做法,而是用了一套自己的方法,只是用了 TSS 的一小部分功能。 操作系统最直接控制的就是 CPU&…

茴香豆的使用

RAG RAG 模型的核心在于两大部分:检索器(Retriever)和生成器(Generator)。检索器的作用是从一个庞大的数据集中,根据输入的问题或者提示,快速有效地检索出最相关的信息或文档。这一步骤通常利用…

[面试题]Jenkins

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

Java基础(二)——数组,方法,方法重载

个人简介 👀个人主页: 前端杂货铺 ⚡开源项目: rich-vue3 (基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL) 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 &#x1…

颠覆多跳事实验证!Causal Walk 前门调整技术引领去偏新纪元

Causal Walk: Debiasing Multi-Hop Fact Verifcation with Front-Door Adjustment 论文地址: Causal Walk: Debiasing Multi-Hop Fact Verification with Front-Door Adjustment| Proceedings of the AAAI Conference on Artificial Intelligencehttps://ojs.aaai.org/index.p…

Linux Ubuntu 多块屏幕(副屏)装反矫正

一、案例 Ubuntu系统,主屏幕正常显示,第二块屏幕(副屏)装反了【各种原因,可能是线不够长,只能上下颠倒装起来】。 现需求,需要将第二块屏幕给矫正过来,正常显示!!! 二、…

累了就坐下来喝杯茶 然后继续前行

前言: 今天是情人节就不发技术文章了 先祝愿各位有情人总成眷属。也包括我,哈哈哈 今天要分享的是一个diy制作的教程 因为我女朋友不在这边,心中那份思念难耐 所以有感而发 写了这篇diy 教程的文章 效果图: 需要的材料 502胶水…

websocket 安全通信

WebSocket 协议 WebSocket:在 2008 年诞生,2011 年成为国际标准。它允许服务器主动向客户端推送信息,客户端也可以主动向服务器发送信息,实现了真正的双向平等对话。它是一种在单个 TCP 连接上进行全双工通讯的协议,能够更高效地进行实时通信。 传统的轮询:浏览器需要不…

网络技术原理需要解决的5个问题

解决世界上任意两台设备时如何通讯的?? 第一个问题,pc1和pc3是怎么通讯的? 这俩属于同一个网段,那么同网段的是怎么通讯的? pc1和pc2属于不同的网段,第二个问题,不同网段的设备是…

北京BJ90升级新款迈巴赫大连屏四座头等舱行政四座马鞍

北京BJ90升级奔驰迈巴赫头等舱行政四座大联屏的内饰效果会非常出色,将为车辆带来更豪华、高端的内饰氛围。以下是升级后可能的效果: • 科技感提升:奔驰的中控系统一直以来都以其先进的科技和用户友好的界面而闻名。升级后,北京B…

程序员如何高效读代码?

程序员高效读代码的技巧包括以下几点: 明确阅读目的:在开始阅读代码之前,先明确你的阅读目的。是为了理解整个系统的架构?还是为了修复一个具体的bug?或者是为了了解某个功能是如何实现的?明确目的可以帮助…

MapReduce程序设计2

要求 1、数据集stock-daily,包含A股近4000只股票的今年以来的日数据;数据集stock-daily-30d仅包含最近30个交易日数据,根据自己计算机性能选择。 数据来源:https://www.joinquant.com/help/api/help?nameJQData 2、数据集stoc…

LeetCode 算法:二叉树的最大深度 c++

原题链接🔗:二叉树的最大深度 难度:简单⭐️ 题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,…

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介 DDS(Direct Digital Synthesizer)即数字…

Piecewise Jerk Speed 论文以及代码解析

目录 1 算法原理 1.1 优化模型离散方式 1.1.1 Temporal Parameter Discretization 1.2 优化问题建模 1.2.1 Cost function 1.2.2 Constraints 2 ST-Graph 3 代码实现 ​编辑 3.1 STBoundsDecider 1 算法原理 1.1 优化模型离散方式 在处理最优化问题时,…