数据链路层相关知识——超详细海明码、CRC编码讲解!软考网络工程师考试重点总结!!

3.1 检错与纠错

3.1.1 基本概念

比特差错:比特在传输过程中,1可能会变成0,0可能变成1
码字:n = m + r,其中m个数据位(即报文)和r个冗余位(校验位)
海明码距:两个码字中不相同的二进制位的个数
两个码字的码距:一个编码系统中任意两个合法编码(码字)之间不同的二进制位数
编码系统的码距:整个编码系统中任意两个码字的码距的最小值
误码率:传输错误的比特占所传输比特总数的比率

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

3.1.2 海明码

设海明码校验位为k,信息位为m,则它们之间的关系应满足m+k+1\leqslant 2^{k}

下面以原始信息101101为例:

1.确定海明码校验位长
        m为信息位长,m=6,根据上述关系式,解不等式可知最小k为4,即校验位为4,信息位加校验的总长度为10位。

2.推导海明码
        1)填写原始信息
        习惯上将校验位从左至右安排在1、2、4、8...的位置上,原始信息则从左至右填入剩下的位置。如下图,校验位处于B1、B2、B4、B8位,剩下位为信息位从左至右依次填写:

        2)计算校验位
        根据公式得到校验位(\oplus表示异或运算)
                P1=B3\oplus B5\oplus B7\oplus B9=1\oplus 0\oplus 1\oplus 0=0
                P2=B3\oplus B6\oplus B7\oplus B10=1\oplus 1\oplus 1\oplus 1=0
                P3=B5\oplus B6\oplus B7=0\oplus 1\oplus 1=0
                P4=B9\oplus B10=0\oplus 1=1
为什么要这么做异或?
        把除去1、2、4、8(校验位位置值)之外的3、5、6、7、9、10值转换为二进制位,如下表:

信息位信息位编号的十进制信息位编号的二进制
第4位第3位第2位第1位
B330011
B550101
B660110
B770111
B991001
B10101010

        将所有信息编号的二进制的第1位为1的Bi进行“异或”操作,结果填入P1;将所有信息编号的二进制的第2位为1的Bi进行“异或”操作,结果填入P2;将所有信息编号的二进制的第3位为1的Bi进行“异或”操作,结果填入P3;将所有信息编号的二进制的第4位为1的Bi进行“异或”操作,结果填入P4;对应上述校验位计算式

     填入校验位后得到下图:

        3)校验
        将所有信息位位置编号为1~10的值转换为二进制位,见下表:

信息位信息位编号的十进制信息位编号的二进制
第4位第3位第2位第1位
B110001
B220010
B330011
B440100
B550101
B660110
B770111
B881000
B991001
B10101010

        将上表信息编号的二进制的第1位为1的Bi进行“异或”操作,得到X1,同理得到X2、X3、X4,即公式:
        X1=B1\oplus B3\oplus B5\oplus B7\oplus B9=0
        X2=B2\oplus B3\oplus B6\oplus B7\oplus B10=0
        X4=B4\oplus B5\oplus B6\oplus B7=0
        X8=B8\oplus B9\oplus B10=0
        得到一个形式为X8X4X2X1的二进制0000,转换为十进制时,结果为0,则无错;结果非0(假设为Y),则错误发生在第Y位。

        假设起始端发送加了上述校验码信息之后,目的端收到的信息为0010111101,依据上述X公式,得到X8X4X2X1=0101,转换为十进制为5,则错误发生在第5位。

3.1.3 CRC编码

CRC编码又称多项式编码,基本思想是将位串看成系数0或1的多项式,一个k位的帧看成一个k-1次多项式的系数列表,该多项式有k项,从x^{k-1}x^{0}

例:1101有4位,可以代表一个3阶多项式,系数为1、1、0、1,即x^{3}+x^{2}+1

使用CRC编码的过程:

1.先商定一个生成多项式G(x),生成多项式的最高位和最低位必须是1
2.假设原始信息有m位,则对应多项式M(x)
3.生成校验码的思想就是在原始信息位后追加若干校验位,使得追加的信息G(x)能被整除
4.接收方接收到带校验位的信息,然后用G(x)整除,余数为0,则没有错误,反之则有错

下面以原始信息串10110,CRC的生成多项式G(x)=x^{4}+x+1为例:

1.生成CRC校验码
        1)原始信息后“添0”
        假设生成多项式G(x)的阶为r,则在原始信息位后添加r个0,新生成的信息串共m+r位,对应多项式设定为x^{r}M(x)
        G(x)=x^{4}+x+1 的阶为4,即10011,则在原始信息10110后添加4个0,新信息串为101100000。
        2)使用生成多项式除
        利用模2除法,用对应的G(x)位去除串x^{r}M(x)对应的位串,得到长度为r的余数。除法过程见下图:

        得到余数1111。注意:余数不足r,则余数左边用若干个0补齐,如求得余数为11,r=4,则补两个0得到0011。
        3)将余数添加到原始信息后
        上例中,原始信息为10110,添加余数1111后,结果为101101111。

2.CRC校验
        与生成过程类似,接收方接收了带校验和的帧后,用多项式G(x)来除。余数为0,则表示信息无错;否则要求发送方进行重传。

3.常见的CRC生成多项式
        CRC-16=x^{16}+x^{15}+x^{2}+1 该多项式用于FR、X.25、HDLC、PPP中,用于校验除帧标志位外的全帧。
        CRC-32=x^{32}+x^{26}+x^{23}+x^{22}+x^{16}+x^{12}+x^{11}+x^{10}+x^{8}+x^{7}+x^{5}+x^{4}+x^{2}+x+1 该多项式用于校验以太网(802.3)帧(不含前导和帧起始符)、令牌总线(802.4)帧(不含前导和帧起始符)、令牌环(802.5)帧(从帧控制字段到LLC层数据)、FDDI帧(从帧控制字段到INFO)和ATTM全帧和PP除帧标准位外的全帧。

3.2 点对点协议

3.2.1 PPP

提供了一种在点到点链路上封装网络层协议信息的标准方法。PPP也定义了可扩展的链路控制协议(LCP),使用验证协议磋商在链路上传输网络层协议前验证链路的对端。
PPP的三个主要组成部分:

在串行链路上封装数据报的方法;

建立、配置和测试数据链路链接的LCP协议;

建立和配置不同网络层协议的一组网络控制协议(NCP);

PPP支持的两种验证协议:

1.密码验证协议(PAP)
        定义:链路初始化时,对端使用2次握手建立身份验证,建立完成后,对端不停发生Id/Password给验证者,直到验证被响应或连接终止。
        缺点:密码在电路上是明文,并对回送、重复验证和错误攻击没有保护措施。

2.挑战-握手验证协议(CHAP)
        定义:链路初始化和链路建立后的任何时间内都可以重复进行3次握手验证,建立完成后,验证者向对端发送一个challenge信息,对端使用一个one-way-hash函数计算出的值响应这个信息。验证者使用自己计算的hash值校验响应值,如果两个值匹配,则验证通过,否则链接应该终止。

3.2.2 PPPOE

        PPPOE技术允许用户通过以太网连接到远程接入设备,如宽带接入服务器(BAS),从而实现宽带接入。它广泛应用于ADSL、VDSL等宽带接入技术。

3.3 常见广播方式的数据链路层

3.3.1 局域网的数据链路层结构

802标准将数据链路层分为两个子层:逻辑链路控制(LLC),实现流量控制等功能;媒体接入控制层(MAC),提供硬件和LLC层的接口。

1.MAC子层
        主要功能:数据帧的封装/卸装、帧的寻址和识别、帧的接收与发送、链路的管理、帧的差错控制等。
        主要访问方式:CSMA/CD、令牌环、令牌总线
2.MAC地址
        又称硬件地址/链路地址,由48比特组成。
3.LLC子层
向上提供以下服务:
        不确认的无连接服务(数据报服务);面向连接服务(虚电路服务);带确认的无连接服务(可靠的数据报服务);高速传送服务。

3.3.2 CSMA/CD

3.3.3 IEEE 802系列协议

3.3.4 802.3规定的传输介质特性

待续写~明天继续~~7月31日16:28~~~

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值