计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)

简介: 计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)

我们知道,

  • 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错;1可能变成0,而0也可能变成1,这称为比特差错

如下图所示:

比特流在传输过程中由于受到各种干扰就可能会出现比特差错,或称为误码。


  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
  • 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。

例如以太网版本2的MAC帧格式和点对点协议PPP的帧格式,他们帧尾中都包含了帧检验序列FCS字段,其作用就是让接收方的数据链路层检查帧在传输过程中是否产生了误码。

奇偶校验

接下来我们介绍基偶校验这种比较简单的检测方法。

在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)。

举例说明:

  • 采用奇偶校验,如果有奇数个位发生误码,则奇偶性会发生变化,也就是奇变偶或者是偶变奇,这样就可以检查出误码
  • 而如果有偶数个位发生误码,则奇偶性不会发生变化,不能检查出误码(漏检)

这是因为:每个误码对奇偶性的影响相互抵消了,这样就无法检查出误码,也称为漏检。


由于奇偶校验的漏检率比较高,因此计算机网络的数据链路层一般不会采用这种检测方法。


循环冗余校验CRC

CRC(Cyclic Redundancy Check)


接下来我们介绍循环冗余校验CRC,这是一种具有很强检错能力的检测方法,漏检率极低。

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

发送方操作

使用除法(模二除法)来计算冗余码,

  • 待发送的数据作为被除数的一部分,后面添加生成多项式最高次数个0以构成被除数
  • 生成多项式各项系数构成的比特串作为除数
  • 进行模二除法得到商和余数
  • 余数就是所计算出的冗余码,将其添加到待发送数据的后面一起发送 。

需要注意的是,冗余码的长度与生成多项式最高次数相同,而商仅作为标记防止计算过程中对错位

接收方操作

被除数就是接收到的数据,除数仍是生成多项式各项系数构成的比特串,进行模二除法得到商和余数,如果余数为0,可判定传输过程没有产生误码,否则可判定传输过程产生了误码 。

生成多项式

下面我们对生成多项式举例说明,这是一个生成多项式:

这是该生成多项式的完整形式:

生成多项式各项系数构成的比特串就是我们做除法时所用到的除数

这是常用的生成多项式:

使用这些生成多项式进行CRC校验可以达到较好的检测效果,也就是漏检率比较低。

需要注意的是,CRC算法要求生成多项式必须包含最低次项

举例-1

待发送的信息为101001,生成多项式为 ,计算余数。

该题给定了待发送的信息和一个生成多项式,要求计算余数:

第一步构造被除数。在待发送信息后面添加生成多项式最高次数个0,就可以构造出被除数。

这是待发送信息:

这是添加生成多项式最高次数个0:

第二步构造除数。生成多项式各项系数构成的比特串就是除数:

第三步做模二除法,得到余数为1:

第四步检查余数。余数的位数应与生成多项式最高次数相同,如果位数不够,则在余数前补0来凑足位数,将余数添加到待发送信息的后面就可以发送了 :

 

举例-2

再来做一个练习

接收到的信息为101101001,生成多项式为 ,判断传输是否误码?

该题给定了接收方收到的信息和一个生成多项式,要求判断传输过程是否产生了误码:


需要说明的是,

  • 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
  • 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错,但纠错码的开销比较大,在计算机网络中较少使用
  • 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件来实现,因此被广泛应用于计算机网络的数据链路层。
  • 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。



END



目录
相关文章
|
22天前
|
运维 监控 安全
公司监控软件:SAS 数据分析引擎驱动网络异常精准检测
在数字化商业环境中,企业网络系统面临复杂威胁。SAS 数据分析引擎凭借高效处理能力,成为网络异常检测的关键技术。通过统计分析、时间序列分析等方法,SAS 帮助企业及时发现并处理异常流量,确保网络安全和业务连续性。
49 11
|
2月前
|
网络协议 网络安全 数据中心
|
2月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目DWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取分为区域残差化和语义残差化两步,提高了特征提取效率。它引入了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,优化了不同网络阶段的感受野。在Cityscapes和CamVid数据集上的实验表明,DWRSeg在准确性和推理速度之间取得了最佳平衡,达到了72.7%的mIoU,每秒319.5帧。代码和模型已公开。
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
|
2月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
194 5
|
2月前
|
机器学习/深度学习 搜索推荐 安全
深度学习之社交网络中的社区检测
在社交网络分析中,社区检测是一项核心任务,旨在将网络中的节点(用户)划分为具有高内部连接密度且相对独立的子群。基于深度学习的社区检测方法,通过捕获复杂的网络结构信息和节点特征,在传统方法基础上实现了更准确、更具鲁棒性的社区划分。
87 7
|
2月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2融合DWRSeg二次创新C3k2_DWRSeg:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2融合DWRSDWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取方法分解为区域残差化和语义残差化两步,提高了多尺度信息获取的效率。网络设计了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,分别用于高阶段和低阶段,以充分利用不同感受野的特征图。实验结果表明,DWRSeg在Cityscapes和CamVid数据集上表现出色,以每秒319.5帧的速度在NVIDIA GeForce GTX 1080 Ti上达到72.7%的mIoU,超越了现有方法。代码和模型已公开。
|
23天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
61 17
|
1月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
51 10
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
61 10