看看链路层中的差错检测和纠正技术

差错检测和纠正技术

写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。

这是系列博客 计算机网络-自顶向下 中的其中一篇,更多博文请访问专栏 计算机网络 ,如有错误还请各位大佬指

1 奇偶校验

  • 单个奇检验
    在这里插入图片描述

    • 在总长度d比特发送信息的末尾添加一个比特使得d+1比特中1的总数是奇数,偶检验同理
  • 奇偶检验的问题

    • 对于出现偶数个比特差错的情况无能为力

    -如果比特差错的概率小,而且比特之间的差错可以被看作是独立发生的,在一个分组中多个比特同时出惜的概率将是极小的,那么单个奇偶检验位可能就足够了

    • 但是测量已经表明了差错经常以"突发"方式聚集在一起,而不是独立地发生 。 失误率达50%。
  • 二维奇偶检验

    • 将**数据分为i 行 j 列,**对每行和每列计算奇偶值,产生的 i + j + 1 奇偶比特构成了链路层帧的差错检测比特
    • 图例

    -

  • 前向纠错 (Forward Enor Correction , FEC)

    • 接收方检测和纠正差错的能力被称为前向纠错
    • 这些技术通常用于如音频 CD 这样的音频存储和回放设备中

2 检验和方法

  • 因特网检验和-对于检验和的相关概念以及计算方式已经在这篇博客中给出,有疑惑的读者可移步-没搞清运输层的UDP协议? -哎呀, 早来这看就好了啊

    • 总的计算方式:字段相加,超出回卷,总和求反
    • 运输层通常是在主机中作为用户操作系统的一部分用软件实现的。因为运输层差错检测用软件实现,采用简单而快速如检验和这样的差错检测方案是重要的 。

3 循环冗余检测 (Cyclic RedundancyCheck , CRC) 编码

  • 链路层的差错检测在适配器中用专用的硬件实现,它能够快速执行更复杂的 CRC 操作
    在这里插入图片描述

  • 对于一个给定的数据段 D , 发送方要选择 r 个附加比特 R , 并将它们附加到 D 上,使得得到的 d +r 比特模式(被解释为一个二进制数)用模 2 算术恰好能被 G 整除 l(即没有余数) 。

  • 用 CRC 进行差错检测的过程因此很简单:接收方用 G去除接收到的d +r 比特。 如果余数为非零,接收方知道出现了差错 ,否则认为数据正确而被接收。

  • 原理

    • 发送方计算机使用某公式计算出被传送数据所含信息值,并将此值附在被传送数据后,接收方计则对同一数据相同的应该得到相同的结果。如果这两个CRC结果不一致,则说明发送中出现了差错,接收方计算机可要求发送方计算机重新发送该数据

都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
有事没事进来看看吧 : 小王的博客目录索引
更多计算机网络优质博客看这 : 计算机网络专栏博客索引


如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。

猜你喜欢

转载自blog.csdn.net/weixin_45761327/article/details/106597584