传输中的差错检验技术

news2025/7/10 3:33:57

差错检验

在网络传输过程数据难免会产生错误,需要使用差错检验技术进行纠错,可靠传输技术避免错误的发生

1 术语

  • 比特差错

  • 误码率BER

  • 差错检验码

image-20221011182515086

2 奇偶校验(不会采用)

  • 在待发送的数据后面添加1位奇偶校验位,使整个数据中1的个数为奇数(奇校验)偶数(偶校验)
  • 缺陷:如果有偶数个位发生错误,奇偶性不发生改变,无法检验处错误

image-20221011183011253

3 循环冗余校验CRC(使用较多)

image-20221011183134135

流程:

image-20221011183441514

4 生成多项式举例

image-20221011183651342

例:

发送方检验

image-20221011184224564

接收方检验

image-20221011184655308

tips:

image-20221011185121181

可靠传输

1 可靠传输的基本概念

image-20221011194228521

  • 一般情况,有线链路的误码率比较低,为了减小开销,不要求数据链路层向上提供可靠传输服务

  • 无线链路容易受到干扰,需要数据链路层必须向上层提供可靠传输服务

  • 传输差错的其他形式

    image-20221011194651689

举例:

image-20221011195824193

2 可靠传输的实现机制——停止-等待协议

发送方每发送一个数据分组,停止发送,并等待接收方的确认分组,收到后才能继续发送

别称:自动请求重传协议(ARQ:Automatic Repeat reQuest)

一、常规发送机制

image-20221011201224665

正确流程:

  1. 发送方发送数据分组
  2. 接收方接收到后对其进行差错检验
  3. 接收方确认正确后,发送确认分组(ACK)

错误流程:

  1. 发送方发送数据分组
  2. 接收方接收到后对其进行差错检验
  3. 接收方发现错误,发送否认分组(NAK)
  4. 发送方重新传输分组
tips:

只有确认到ACK时,发送方才能将该数据分组从缓存中删除

二、发送异常机制

1.发送丢失

如果发送数据丢失,发送方在超时时间内接收不到ACK或者NAK,则重传原来的分组

image-20221011201611446

  1. 确认丢失

使用给数据编号(0/1,与上一次分组编号不同即可)

收到相同序号后,发送方丢弃重复信号,并发送确认信号

image-20221011202217098
  1. 发送延时

确认信号如果延时到达,就会出现下述情况,需要给确认信号添加分组(0/1),避免重复确认

image-20221011202511251

注意事项:

image-20221011202903712

三、停止-等待协议的信道利用率

Td:发送发发送数据分组耗费时延

RTT:收发双方的往返时间

Ta:接收方发送确认分组所耗费的时间

image-20221011203724942

Td时间传输的为有用数据,所以计算公式:

image-20221011203901890

例:

image-20221011204146245

所以针对停止等待协议利用率非常低的特点,产生了其他两种协议

3 可靠传输的实现机制——回退N帧协议

使用连续发送分组,来提高信道利用率

一、常规发送机制

  • 发送窗口的规定和计算

image-20221016124435826

  • 发送窗口内的数据可以进行连续发送

image-20221016124510894

  • 接收窗口

大小只能是1(Wr)

image-20221016124759657

  • 累计确认

    image-20221016124920291

二、 发送异常机制

举例:

如果5号数据出现误码,则5号数据后的全部数据都要进行重新传输

image-20221016125356684

image-20221016125423241

例题:

image-20221016130256727

4 可靠传输的实现机制——选择重传协议

发送方可以发送多个,接收方也可接收多个

一、常规发送机制

  • 发送方的发送尺寸

    image-20221016225123417

    如果发送的数据超出极限,数据就会重复,无法查重(看0处)

    image-20221016230719428

image-20221016130416399

tips:为了使发送方仅重传出现差错的分组,接收方不能再采用累计确认,而需要对每个正确接收的进行逐一确认

二、 发送异常机制

  1. 如果2号分组丢失,接收方接受0/1分组,发送0/1确认分组

image-20221016223704758

  1. 发送方接受确认分组后前移窗口

    image-20221016224004838

  2. 发送方发送4/5,并且如果2发送超时,2会重发

    image-20221016224741179

  3. 如果全部接收到,接收方和发送方将窗口向后移动

以上就是对于传输数据异常后的处理方法

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

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

相关文章

MyBatis基于XML的详细使用-参数、返回结果 处理

1、参数的取值方式 在xml文件中编写sql语句的时候有两种取值的方式,分别是#{}和${}。 注意:这里推荐使用#{}的方式,可以有效的防止sql注入问题。 2、select的参数传递 1.单个参数: 不管多少个参数最好在参数前加上param注解,为其取一个别名 2.多个参数…

[网络工程师]-传输层协议-TCP拥塞控制

TCP拥塞控制的概念是:每个源端判断当前网络中有多少可用容量,从而知道它可以安全完成传送的分组数。拥塞控制解释防止过多的数据注入网络,避免网络中间设备(路由器、交换机等)过载而发生拥塞。拥塞控制是一个全局性的过…

数据结构系列学习(九) - 循环队列(Circular_Queue)

目录 引言: 学习: 循环队列设计背景: 利用顺序表的思维对队列进行探讨: 解决方案的思考: 循环队列中循环的体现: 循环队列的要点: 第一个难点: 第二个难点: 第三…

Verilog 显示任务($display, $write, $strobe, $monitor)

Verilog 中主要用以下 4 种系统任务来显示(打印)调试信息:$display, $write, $strobe, $monitor。 $display $display 使用方法和 C 语言中的 printf 函数非常类似,可以直接打印字符串,也可以在字符串中指定变量的格…

7. 微服务之Docker自动化部署

7.1 Docker 介绍 Docker 是一个快速交付应用、运行应用的技术: 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器,各个应用互不干扰启动、移除都可以通过一行命令完成&#xff…

华清远见:驱动点灯第N回目

1.在串口工具进行输入: echo 1 > /dev/myled0 ---->led1灯点亮 echo 0 > /dev/myled0 ---->led1灯熄灭 echo 1 > /dev/myled1 ---->led1灯点亮 echo 0 > /dev/myled1 ---->led1灯熄灭 echo 1 > /dev/myled2 ---->led1灯点亮 ec…

力扣刷题day52|84. 柱状图中最大的矩形

文章目录84. 柱状图中最大的矩形思路动态规划单调栈84. 柱状图中最大的矩形 力扣题目链接 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: …

空间域图像增强处理-含Labview程序

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、领域图像增强实例分析✳️ 2.1 线性滤波实例分析✳️ 2.2 非线性滤波实例分析✳️ 2.3 Canny边缘检测✳️ 三、Labview程序获取✳️ 一、引言 图像在其采集或传递过程中常会受到各种噪声的影响,这会导致其中包含的重要信息很…

忘机工尺谱 - 快速打谱软件

引言 为了实现高效快速打谱,我实现了一种词谱分离的输入方案,解决了当前工尺谱平台打谱过程频繁切换输入法和频繁点击鼠标等问题,大大提高了打谱效率。同时借鉴了Markdown编辑器”所见即所得“的思想,输入的同时可以见到排版后的…

java线程控制

java线程控制的语法很多 这里我们主要说以下三个方法 我们先新建一个包 包下建立两个类 customException 线程类 参考代码如下 public class customException extends Thread {public String name;public customException(){}public void run(){for(int i 0;i < 100;i)…

逆变器电力计量仪表可安装在分布式光伏运维云平台、光伏变电站

安科瑞 李可欣 1、概述 AcrelCloud-1200分布式光伏运维云平台通过监测光伏站点的逆变器设备&#xff0c;气象设备以及摄像头设备、帮助用户管理分散在各地的光伏站点。主要功能包括&#xff1a;站点监测&#xff0c;逆变器监测&#xff0c;发电统计&#xff0c;逆变器一次图&…

解决找不到依赖项的问题(根源直接解决)

&#xff08;文章最后&#xff0c;我会介绍一个万能解决方法&#xff09; 问题&#xff1a; 原因&#xff1a; &#xff08;1&#xff09;可能是你的本地仓库里没有该依赖项。 &#xff08;2&#xff09;如果有的话&#xff0c;可能是没有更新同步到idea 解决方法&#xff1…

基于Springboot+mybatis+mysql+html教育培训中心教学系统

基于Springbootmybatismysqlhtml教育培训中心教学系统一、系统介绍二、功能展示1.用户登陆2.用户注册3.个人中心4.人员信息管理5.课程管理6.缴费管理7.学生考勤管理8.器材管理9.问题管理&#xff08;学生、老师&#xff09;一、系统介绍 系统主要功能&#xff1a; 管理员&…

第五届“传智杯”全国大学生计算机大赛(练习赛)[传智杯 #5 练习赛] 时钟

[传智杯 #5 练习赛] 时钟 题目描述 你有一个电子钟&#xff0c;可以显示 0:00 到 23:59 之间的所有时间&#xff0c;以数字的形式显示。其中小时是 0 到 23&#xff08;0 时会显示一个 0&#xff0c;而 1 到 9 时不会显示前导 0&#xff09;&#xff0c;分钟是 00 到 59&…

矩阵分析与计算学习记录-矩阵函数

本章重点内容&#xff1a; 矩阵函数的定义和计算 矩阵函数的导数和积分&#xff1a;导数定义和性质、对矩阵变量的导数、矩阵函数的积分及其性质 利用矩阵函数求解线性常系数微分方程&#xff1a;一阶线性常系数微分方程、n阶线性常系数微分方程 1. 矩阵函数的定义和计算 1…

前端面试总结

自我检查&#xff1a; 1、 vue有哪些常用的指令 2、 v-if和v-show的区别? v-show 控制的哪个css元素?v-if和v-show初始条件都为false的时候哪个会加载? 3、 3.Vue常用的修饰符? .sync 怎么在子组件触发修改父组件属性的值?具体是$emit哪个事件触发修改? .sync 的原理有了…

栈的应用----括号匹配问题

1.题目 括号匹配 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合…

Linux常见指令与shell理解

Linux常用指令与shell理解 文章目录Linux常用指令与shell理解1. ls指令2. cd指令3. pwd命令4. touch指令5. mkdir指令6. rmdir和rm指令7. man指令8. cp指令9. mv指令10. cat与tac指令11. more指令12. less指令13. head指令14. tail指令15. 时间指令16. Cal指令17. find指令18. …

[附源码]SSM计算机毕业设计置地房屋租赁信息系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

2E服务-WriteDataByIdentifier

诊断协议那些事儿 诊断协议那些事儿专栏系列文章&#xff0c;本文介绍数据传输服务下的2E服务WriteDataByIdentifier&#xff0c;允许客户端在通过提供的dataidentifier数据标识符指定的内部位置将信息写入服务器。 参考文章&#xff1a; 数据传输功能单元——DID参数定义 2…