华为网络基础 | 数据链路层_检错与纠错——基本概念

  • 内容
  • 相关

之前的篇章中,讲解了网络基础帧的部分封装知识,我们对网络有简单的认识了,接下来我们再对每一部分中涉及的知识点进行细化学习。

对于网络学习的人来说,必然是知道OSI参考模型的(即从高到低:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层),数据链路层是OSI参考模型中的第二层,处于物理层和网络层之间。数据链层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源主机网络层闯来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一些列相应的功能。今天讲解的就是数据链路层中的一些基本概念。

通信链路都不是完全理想的。比特在传输的过程中可能会产生比特差错,即1可能会变成0, 0也可能变成1.

一帧包含m个数据位(即报文)和r个冗余位(校验位)。假设帧的总长度为n,则有n=m+r,包含数据和校验位的n个单元,通常称为n位码字(codeword)。

一个编码系统中任意两个合法编码(码字)之间不相同的二进数位(bit)个数叫这两个码字的海明码距(码距),而整个编码系统中任意两个码字的的最小距离(最小值)就是该编码系统的码距误码率是传输错误的比特占所传输总数的比率。

例1:如下图给出了一个编码系统,用两个比特位表示4个不同信息。任意两个码字之间不同的比特位数从1到2不等,但最小值为1,故该编码系统的码距为1.

如果任何码字中一位或多位被颠倒了,结果这个码字就不能与其它有效信息区分开。例如,如果传送信息01,而被误收为11,因11仍是表中的合法码字,所以接收方任然将认为11是正确的信息。

例2:如果用四个二进数字来编8个码字,那么在码字间的最小距离可以增加到2,如下图所示。

这里任意两个码字间最少有两个比特位不相同。因此,如果任何信息的一个数位被颠倒,就成为一个不用的码字,接收方能检查出来。例如信息是1001,因出错成为了1011,1011不是编码系统中规定的合法码字,这样接收方就能发现出错了。

海明研究发现,检测d个错误,则编码系统码距>=d+1纠正d个错误,则编码系统码距>2d

 您阅读这篇文章共花了:

上一篇:Linux | 抓包工具-tcpdump

下一篇:华为网络基础 | 数据链路层_检错与纠错——海明码

本文标签:    

版权声明:本文依据CC-BY-NC-SA 3.0协议发布,若无特殊注明,本文皆为《fishyoung》原创,转载请保留文章出处。

本文链接:华为网络基础 | 数据链路层_检错与纠错——基本概念 - http://www.fishyoung.com/post-168.html