第3章 数据链路层

3.1 数据链路层功能

3.2 封装成帧和透明传输

  3.2.1封装成帧

                  1.含义:数据前后添加首部尾部,看图说话:

        2.组帧方式:(1)字符计数法 (2)字符填充法 (3)0bit填充法 (4)违规编码法

   3.2.2 组帧方式

      1.字符计数法

        

 

 

       2.字符填充法

        添加SOH(Start of header)和EOT(End of transmission)来作为传输数据的头与尾,下图为填充发送、接收过程

        

 

         问题:为什么要字节填充呢?

         答:

 

       3.0bit填充法

        首尾部都是 (01111110),对于中间部分,采用(5个1 后添加0)的方式封装

        

 

         操作:发送方:

 

                   接收方(逆过程):

 

       4.违规编码法

        用 “高-高”,“低-低”界定帧的起始和终止

        

 

 3.3 差错控制

  差错从何而来?

    噪声(随机噪声、冲击噪声)

    那么由此两种噪声引出两种差错:位错、帧错

      

 

     ps:接下来所提到的差错控制是针对 :位错  所提出的控制

  为什么进行差错控制?

      你想如果一条数据有问题,不及时发现的话,那么结果会耗费大量的资源而得到错误信息,这样是不值得的

    

     所以,接下来提出两种差错控制方式:

 

 

  3.3.1 检错编码

      1.奇偶校验码

        定义:

 

           例题:

 

         特点:只能检查出  奇数个bit错误,检错能力为1/2

       2.CRC循环冗余码

        原理:

 

          例题:

 

           接收端检测余数R:

 

   3.3.2  纠错编码

     1.海明码(发现双bit错,纠正单bit错

        工作原理:牵一发而动全身

        工作流程:

 

      2.工作流程

        

 

           

 

  3.4 流量控制和可靠传输机制

    3.4.1 流量控制

      1.流量控制方法:停止-等待协议     滑动窗口协议

        

 

     3.4.2  可靠传输、滑动窗口、流量控制关系

      

 

 

    3.4.3  停止-等待协议

      1.无差错情况:

      2.有差错情况:

        (1)发送帧丢失

          

 

         (2)确认帧丢失

          

 

          (3)ACK迟到

           

 

版权声明:本文为happy-prince原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/happy-prince/p/12762843.html