zoukankan      html  css  js  c++  java
  • (3)计算机网络:数据链路层

    第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迟到

               

  • 相关阅读:
    设计模式之策略模式
    assert断言——调试中不应该是syso
    Spring AOP
    MyBatis
    事务处理与使用连接池管理连接
    管理结果集(ResultSet)
    执行SQL语句的方式
    JDBC基础:
    NIO.2
    NIO
  • 原文地址:https://www.cnblogs.com/happy-prince/p/12762843.html
Copyright © 2011-2022 走看看