当前位置: 首页 > news >正文

【计算机网络篇】数据链路层(3)差错检测

文章目录

  • 🥚误码
  • 🍔两种常见的检错技术
    • ⭐奇偶校验
    • ⭐循环冗余校验
      • 🎈例子

在这里插入图片描述

🥚误码

误码首先介绍误码的相关概念
在这里插入图片描述

🍔两种常见的检错技术

⭐奇偶校验

奇校验是在待发送的数据后面添加1个校验位,使得添加该校验位后的整个数据中比特1的个数奇数
偶校验是在待发送的数据后面添加1个校验位,使得添加该校验位后的整个数据中比特1的个数偶数


我们来看下面的例子

奇校验
在这里插入图片描述
偶校验
在这里插入图片描述

于是我们得到了下面的结论

在所传输的数据中,如果有奇数个位发生误码,则所包含比特1的数量的奇偶性会发生改变,可以检测出误码。
在所传输的数据中,如果有偶数个位发生误码,则所包含比特1的数量的奇偶性不会发生改变,无法检测出误码(漏检)

⭐循环冗余校验

数据链路层广泛使用漏检率极低的循环冗余校验(Cyclic Redundancy Check,CRC)检错技术。
循环冗余校验CRC的基本思想:

收发双方约定好一个生成多项式G(X)
发送方基于待发送的数据和生成多项式G(X),计算出差错检测码(冗余码),将冗余码添加到待发送数据的后面一起传输。
接收方收到数据和冗余码后,通过生成多项式G(X)来计算收到的数据和冗余码是否产生了误码。

发送方CRC操作
如下图所示
在这里插入图片描述进行除法,将待发送的数据作为被除数的一部分,后面添加生成多项式最高次个0以构成被除数。
生成多项式各项系数构成的比特串作为除数,进行除法,得到商和余数
在这里插入图片描述

将余数添加到发送数据的后面,一起发送。

注意:
商仅作为标记,防止计算过程对错位
余数的长度应与生成多项式最高次数相同,作为冗余码
这里的除法是指:二进制模2除法,二进制模2除法既不向上进位,也不比较除数和被除数的对应位数值的大小,只要以相同位数进行相除即可,相当于对应位进行逻辑异或运算

接收方CRC操作
如下图所示
与发送方类似,也要进行除法。
收到的数据和冗余码作为被除数,生成多项式各项系数构成的比特串作为除数,进行除法,得到商和余数。
如果余数为0,就可判定数据和冗余码中没有出现误码,否则出现了误码在这里插入图片描述生成多项式举例
在这里插入图片描述

🎈例子

发送方
在这里插入图片描述

将冗余码添加到待发送数据的后面进行发送
在这里插入图片描述
接收方
在这里插入图片描述

注意:在这里插入图片描述

数据链路层的差错检测通常通过循环冗余检验(CRC)来实现。CRC是一种基于多项式除法的技术,用于对数据帧进行检验,以确定数据在传输过程中是否发生了错误。

在数据链路层,发送方在发送数据帧之前会计算出一个CRC码,并将其附加到数据帧的尾部。接收方在接收数据帧后,也会计算接收到的数据帧中的CRC码,然后与接收到的CRC码进行比较。如果两者不一致,则表明数据帧在传输过程中发生了错误。

通过CRC的差错检测,数据链路层能够及时发现数据帧中的比特错误,从而提高数据传输的可靠性。

相关文章:

【计算机网络篇】数据链路层(3)差错检测

文章目录 🥚误码🍔两种常见的检错技术⭐奇偶校验⭐循环冗余校验🎈例子 🥚误码 误码首先介绍误码的相关概念 🍔两种常见的检错技术 ⭐奇偶校验 奇校验是在待发送的数据后面添加1个校验位,使得添加该校验…...

软件配置管理计划

1. 配置管理目标 本软件配置管理计划的目标在于确保软件开发生命周期内的所有配置项(CI)都得到适当的标识、控制、版本管理和追踪。通过实施有效的配置管理,我们的目标是: 保持配置项的一致性和完整性。确保配置项的可追溯性。减…...

嵌入式备考错题汇总

若某条无条件转移汇编指令采用直接寻址,则该指令的功能是将指令中的地址码送入()。 A.PC(程序计数器) B.AR(地址寄存器) C.AC(累加器) D.ALU(算术逻辑运算单元) 解析:选A,直接寻址是指操作数存放在内存单元中,指令中直接给出操作数所在存储单…...

38 mars3d 对接地图图层 绘制点线面员

前言 这里主要是展示一下 mars3d 的一个基础的使用 主要是设计 接入地图服务器的 卫星地图, 普通的二维地图, 增加地区标记 基础绘制 点线面园 等等 测试用例 <template><div style"width: 1920px; height:1080px;"><div class"mars3dClas…...

什么是Webhook 和 HTTP Endpoint?

Webhook 和 HTTP Endpoint 都是基于HTTP协议的网络通信概念&#xff0c;但它们在使用场景和目的上有所不同。 Webhook Webhook 是一种允许一个应用程序提供实时信息给其他应用程序的方法&#xff0c;这种通信是基于HTTP的“回调”或“钩子”。Webhook 通常被用来在一种服务上…...

小程序跨端组件库 Mpx-cube-ui 开源:助力高效业务开发与主题定制

Mpx-cube-ui 是一款基于 Mpx 小程序框架的移动端基础组件库&#xff0c;一份源码可以跨端输出所有小程序平台及 Web&#xff0c;同时具备良好的拓展能力和可定制化的能力来帮助你快速构建 Mpx 应用项目。 Mpx-cube-ui 提供了灵活配置的主题定制能力&#xff0c;在组件设计开发阶…...

GDC期间LayaAir启动全球化战略

3 月 18 日至 3 月 22 日&#xff0c;一年一度的游戏开发者大会&#xff08;GDC&#xff09;在美国旧金山举行。在此期间&#xff0c;Layabox宣布LayaAir引擎启动全球扩张战略&#xff0c;这标志着引擎将步入快速发展的新阶段。此举旨在利用公司先进的3D引擎技术&#xff0c;将…...

人工智能之Tensorflow批标准化

批标准化&#xff08;Batch Normalization,BN&#xff09;是为了克服神经网络层数加深导致难以训练而诞生的。 随着神经网络的深度加深&#xff0c;训练会越来越困难&#xff0c;收敛速度会很慢&#xff0c;常常会导致梯度消失问题。梯度消失问题是在神经网络中&#xff0c;当前…...

自动化的免下车服务——银行、餐厅、快餐店、杂货店

如果您在20世纪70年代和2020年分别驾车经过免下车服务餐厅&#xff08;汽车穿梭餐厅&#xff09;&#xff0c;您会发现&#xff0c;唯一的不同是排队的车型。50多年来&#xff0c;免下车技术一直为我们提供着良好的服务&#xff0c;但现在也该对它进行现代化改造了。 乘着AI和自…...

Git常用指令总结

Git常用指令总结 下载git&#xff0c;这个不需要交的&#xff01;&#xff01;&#xff01; 1、初始化自己的git仓库 git config --global user.name “Your name” 配置自己的用户名 git config --global user.email “mailexample.com” 配置邮箱 git config --global c…...

水果软件FL Studio 21 for mac 21.2.3.3586破解版的最新版本2024介绍安装

音乐是人类最美好的语言&#xff0c;它能够跨越国界、文化和语言&#xff0c;将人们紧密地联系在一起。在当今数字化时代&#xff0c;音乐创作已经不再是专业人士的专利&#xff0c;越来越多的音乐爱好者开始尝试自己动手制作音乐。而FL Studio21中文版编曲软件正是这样一个为你…...

【保姆级】前端使用node.js基础教程

文章目录 安装和版本管理&#xff1a;npm 命令&#xff08;Node 包管理器&#xff09;&#xff1a;运行 Node.js 脚本&#xff1a;调试和开发工具&#xff1a;其他常用命令&#xff1a;模块管理&#xff1a;包管理&#xff1a;调试工具&#xff1a;异步编程和包管理&#xff1a…...

xilinx的高速接口构成原理和连接结构

本文来源&#xff1a; V3学院 尤老师的培训班笔记【高速收发器】xilinx高速收发器学习记录Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟GT Transceiver的总体架构梳理 文章目录 一、概述&#xff1a;二、高速收发器结构&#xff1a;2.1 QUAD2.1.1 时钟2.1.2 CHANNEL…...

git 上传文件夹至远端仓库的方法

上传的远端git可以是gitlab、github、gitee、gitblit或者gitCode等等 以下以GitHub为例说明&#xff1a; 1、登录GitHub网站&#xff08;账户/密码&#xff09; 2、创建一个新的空白项目&#xff08;或者已有的项目&#xff09;hello-world 分支是master &#xff0c;这里默认即…...

【鸿蒙系统】 ---OpenHarmony加快本地编译(二)

&#x1f48c; 所属专栏&#xff1a;【鸿蒙系统】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢…...

centos配置natapp 自动配置

下载配置文件 centos 这里 我用的 natapp_autostart-master\natapp_autostart-master\systemd 文件夹下的 natapp.service 上传natapp 运行natapp客户端 在 https://natapp.cn 官网 下载客户端. 放在目录 /usr/natapp/ 运行 sudo chmod ax /usr/natapp/natapp给予可执行权…...

sell脚本多行合成一行

awk {ORS",\n"}{print $2} 120w-3-ws | awk {if(NR%10!0)ORS"";else ORS"\n"}{print $1 >> "newRefundIds.txt"}RS是awk读取文件时的行分隔符 ORS则是awk输出时的行结束符 FS是awk读入记录时的列分隔符 OFS则是awk输出时的列…...

部署prometheus 监控k8s集群

目录 1、主机清单 2、拉取镜像 3、服务安装 4、安装prometheus-operator 5、查看custom metrics api 6、获取prometheus端口 7、将 alertmanager-main 、grafana、prometheus-k8s的端口暴露出来 8、再次查看prometheus端口 9、浏览器访问IP&#xff1a;31940 部署k8集群…...

两个基本功不足导致的bug

作为程序员&#xff0c;基本功不好&#xff0c;可能会在工作中经常碰到一些看起来很隐蔽的 bug&#xff0c;乍看没毛病&#xff0c;自己半天还找不到问题所在。 但是&#xff0c;如果基本功扎实的同学可能一眼就能看出来。 一、HashMap 取不到值 Map<Integer, Integer>…...

【算法每日一练]-图论(保姆级教程篇16 树的重心 树的直径)#树的直径 #会议 #医院设置

目录 树的直径 题目&#xff1a;树的直径 &#xff08;两种解法&#xff09; 做法一&#xff1a; 做法二&#xff1a; 树的重心&#xff1a; 题目&#xff1a; 会议 思路&#xff1a; 题目&#xff1a;医院设置 思路&#xff1a; 树的直径 定义&#xff1a;树中距离最…...

华为工程师工作体验与职场文化解析

1. 华为工作体验的真实记录作为一名曾在华为工作过的工程师&#xff0c;我想分享这段独特的职场经历。华为作为中国科技企业的代表&#xff0c;其工作模式和企业文化一直备受关注。这篇文章将详细记录我在华为的所见所闻&#xff0c;希望能为考虑加入华为或对华为工作环境感兴趣…...

Linux线程创建机制与多线程编程实践

1. Linux线程创建机制解析在Linux系统中&#xff0c;线程创建是一个内核态与用户态协同工作的过程。与进程不同&#xff0c;线程不是完全由内核实现的机制&#xff0c;而是通过glibc库函数与内核系统调用的配合完成的。理解线程创建机制对开发高性能多线程程序至关重要。线程与…...

Heltec ESP32 LoRaWAN协议栈深度解析与低功耗开发指南

1. 项目概述 ESP32_LoRaWAN 是 Heltec Automation 针对其 ESP32 LoRa 硬件平台深度定制的 LoRaWAN 协议栈实现&#xff0c;专为低功耗广域物联网&#xff08;LPWAN&#xff09;终端节点设计。该库并非通用型 LoRaWAN 封装&#xff0c;而是与 Heltec 自研硬件&#xff08;如 W…...

保姆级教程:在Linux服务器上用源码搞定Datavines 1.0.0的安装与启动

保姆级教程&#xff1a;在Linux服务器上用源码搞定Datavines 1.0.0的安装与启动 1. 环境准备与依赖检查 在开始部署Datavines之前&#xff0c;确保你的Linux服务器满足以下基础要求。这个环节经常被忽视&#xff0c;但却是后续所有操作的前提条件。 操作系统要求&#xff1a; 推…...

单电源运放电路设计要点与实践指南

1. 单电源运放电路设计基础 运算放大器作为模拟电路设计的核心器件&#xff0c;其供电方式直接影响电路性能表现。与双电源供电相比&#xff0c;单电源供电方案在实际工程应用中更为常见&#xff0c;但设计时需要特别注意以下几个关键点&#xff1a; 1.1 供电架构差异解析 双…...

The Agency:助您改变工作流程的 AI 专家团队

The Agency&#xff1a;助您改变工作流程的 AI 专家团队 触手可及的完整 AI 代理机构——从前端奇才到 Reddit 社区达人&#xff0c;从创意灵感注入师到现实检验员。每位代理都是具备个性、流程和可靠交付成果的专业专家。 repo:https://github.com/msitarzewski/agency-agents…...

STM32单片机开发七大核心模块实战指南

1. 单片机学习的核心路径解析作为一名从51单片机入门到STM32进阶的嵌入式开发者&#xff0c;我深刻体会到单片机学习绝非简单的知识点堆砌。真正掌握单片机需要建立完整的知识体系&#xff0c;而以下七个功能模块正是构建这一体系的支柱。这些内容看似基础&#xff0c;但深入理…...

【工业级Python内存治理白皮书】:覆盖CPython 3.8–3.12的7层内存管控架构,含可落地的监控-预警-自愈SOP手册

第一章&#xff1a;Python 智能体内存管理策略 性能调优指南Python 的内存管理并非完全由开发者显式控制&#xff0c;而是依托于引用计数、循环垃圾回收器&#xff08;GC&#xff09;与内存池&#xff08;pymalloc&#xff09;三层协同机制。理解其内在逻辑是实现高性能智能体&…...

革新性智能漫画翻译工具:解决本地化效率痛点,释放创作价值

革新性智能漫画翻译工具&#xff1a;解决本地化效率痛点&#xff0c;释放创作价值 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项…...

虚幻引擎6.5 C++多线程渲染管线深度解密,揭秘Nanite+Lumen底层Hook点与自定义RenderPass安全注入时机

第一章&#xff1a;虚幻引擎6.5多线程渲染管线架构总览虚幻引擎6.5标志着渲染架构的重大演进&#xff0c;其核心是完全重写的多线程渲染管线&#xff08;Multi-Threaded Rendering Pipeline&#xff09;&#xff0c;旨在最大化现代CPU多核并行能力与GPU异步执行潜力。该管线采用…...