首页 > 其他分享 >计算机网络:差错控制

计算机网络:差错控制

时间:2022-11-05 20:33:08浏览次数:61  
标签:编码 校验位 差错控制 明码 校验 计算机网络 出错 冗余

比特在传输过程中可能会产生差错,1可能会变成0,0也可能会变成1,这就是比特差错。比特差错是传输差错中的一种。

通常利用编码技术进行差错控制,主要有两类:自动重传请求ARQ和前向纠错FEC。

  • 在 ARQ方式中,接收端检测到差错时,就设法通知发送端重发,直到接收到正确的码字为止。
  • 在FEC方式中,接收端不但能发现差错,而且能确定比特串的错误位置,从而加以纠正。

因此,差错控制又可分为检错编码和纠错编码。

检错编码

检错编码都采用冗余编码技术,其核心思想是在有效数据(信息位)被发送前,先按某种关系附加一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使得码字遵从不变的规则。接收端根据收到的码字是否仍符合原规则来判断是否出错。

常见的检错编码有奇偶校验码和循环冗余码。

1.奇偶校验码

奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。它由n-1位信息元和1位校验元组成,如果是奇校验码,那么在附加一个校验元后,码长为n的码字中“1”的个数为奇数,这是奇数校验码 ;如果是偶校验码,那么在附加一个校验元以后,码长为n的码字中“1”的个数为偶数。它只能检测奇数位的出错情况,(如果有一组刚好出错,1的奇偶却不变,则无法查清楚是否出错)。

2.循环冗余码

循环冗余码 (Cyclic Redundancy Code, CRC) 又 称多项式码。一个 k 位帧可以视为从

到 $ X^{0}$ 的 k 次多项式的系数序列, 这个多项式的阶数为 k-1, 例如, 1110011 有 7 位, 表示成多项式是

给定一个m bit的帧或报文, 发送器生成一个r bit的序列,称为帧检验序列(FCS) 就是余数。这样所形成的帧将由m+r比特组成。发送方和接收方事先商定一个多项式G(x)(最高位和最低位必须为1),使这个带检验码的帧刚好能被预先确定的多项式G(x)整除。接收方用相同的多项式去除收到的帧,如果无余数,那么认为无差错。 假设一个帧有m位,其对应的多项式为Mx),则计算冗余码的步骤如下:

  1. 加0。假设G(x)的阶为r(阶数是指最高位的次数,不是总式子的长度),在帧的低位端加上r个0。
  2. 模2除。利用模2除法(就是异或),用G(x)对应的数据串去除1)中的数据串,得到的余数即为冗余码(共r位,前面的0不可省略)。

计算机网络:差错控制_码字_03

注意:循环冗余码(CRC)是具有纠错功能的,只是数据链路层仅使用了它的检错功能,检测到帧出错则直接丢弃。

纠错编码

最常见的纠错编码是海明码,其实现原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错位,而且能指出错位的位置,为自动纠错提供依据。

现以数据码 1010 为例讲述海明码的编码原理和过程。

(1) 确定海明码的位数

设 n 为有效信息的位数, k 为校验位的位数, 则信息位 n 和校验位 k 应满足

(若要检测两位错, 则需再增加 1 位校验位, 即 k+1 位)

海明码位数为

成立, 则 n 、 k 有效。设信息位为

, 共 4 位, 校验位为

, 共 3 位, 对应的海明码为

(2)确定校验位的分布

规定校验位

在海明位号为

的位置上, 其余各位为信息位, 因此有:

的海明位号为

, 即

$ P_{2}$ 的海明位号为 $ 2{i-1}=2{1}=2$ , 即

$ P_{3}$ 的海明位号为

, 即

将信息位按原来的顺序揷入, 则海明码各位的分布如下:

(3) 分组以形成校验关系

每个数据位用多个校验位进行校验, 但要满足条件: 被校验数据位的海明位号等于校验该数 据位的各校验位海明位号之和。另外, 校验位不需要再被校验。分组形成的校验关系如下。

计算机网络:差错控制_计算机网络_21

(4) 校验位取值

校验位

的值为第 i 组 (由该校验位校验的数据位) 所有位求异或。 根据(3)中的分组有

所以, 1010 对应的海明码为 1010010(下画线为校验位, 其他为信息位)。

(5)海明码的校验原理

每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查, 构成 k 个校验方程:

的值为 “ 000 ”, 则说明无错; 否则说明出错, 且这个数就是错误位的位号, 如

, 说明第 1 位出错, 即

出错, 直接将该位取反就达到了纠错的目的。

标签:编码,校验位,差错控制,明码,校验,计算机网络,出错,冗余
From: https://blog.51cto.com/u_15736437/5826088

相关文章

  • 计算机网络10 多路复用和多路分解
    1传输层服务和协议简介传输层协议为运行在不同Host上的进程提供了一种逻辑通信机制(TCP、UDP)。发送方:将应用递交的消息分成一个或多个的Segment,并向下传给网......
  • 计算机网络第二章复习
    计算机网络第二章复习目录计算机网络第二章复习1️⃣应用层协议原理比较三种应用程序体系结构:7️⃣P2P✒️P2P的bittorrent协议详解:宏观上看进程通信:应用层协议:2️⃣web和Http......
  • 计算机网络第一章复习
    计算机网络第一章复习目录计算机网络第一章复习因特网网络边缘接入方式家庭接入:DSL、电缆、FTTH、拨号和卫星企业(和家庭)接入:以太网和WiFi广域无线接入:3G和LTE(蜂窝网......
  • 计算机网络:数据报与虚电路
    分组交换根据其通信子网向端点系统提供的服务,还可进一步分为面向连接的虚电路方式和无连接的数据报方式。这两种服务方式都由网络层提供。要注意数据报方式和虚电路方式是分......
  • 了解计算机网络
    计算机网络1、概念计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。计算机网络是互连......
  • 计算机网络的拓扑模型
    计算机网络的拓扑模型有五种,如下表所示:名称优点缺点总线型结构简单,易于组网,成本低传输距离有限,错误检测困难环型成本低,增减节点容易易,可用光纤信息流向固定,节点故障易引起网......
  • 计算机网络笔记
    计算机网络笔记整理网络层......
  • 《计算机网络》第六章随笔
    6.1网络应用模型1.应用层概述(1)应用层对应用程序的通信提供服务(2)功能:文件传输、访问和管理;电子邮件、虚拟终端、查询服务和远程作业登陆(3)协议:FTP、SMTP、POP3、HTTP......
  • 计算机网络:自顶向下方法 CH3 运输层
    概述运输层为运行在不同主机上的应用进程之间提供了逻辑通信运输层协议在端系统中实现即使在底层网络协议不可靠的情况下,运输协议也能够为应用程序提供可靠的数据传输......
  • 计算机网络知识点总结-第三章:数据链路层
    0.本章思维导图:数据链路层使用的信道:点对点信道:使用一对一的点对点通信方式广播信道:使用一对多的广播通信方式,过程比较复杂,需要专用的协议来协调1.使用点对点信道的......