image.png

image.png

封装成帧

封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。

  • 帧头和帧尾中包含有五要的控制信息。
  • 帧头和帧尾的作用之一 就是帧定界。image.png
  • PPP帧有帧定界标志。MAC帧没有,物理层会在以太网V2的MAC帧前添加8字节前导码,再将比特流转换成电信号发送
    • 前导码分为7字节前同步码(使接收方时钟同步),后面一字节为帧开始定界符(表明其后面紧跟着的就是MAC帧)
    • 以太网还规定了帧间间隔时间为96比特的发送时间

image.png
image.png

透明传输

透明传输是指数据链路层对上层交付的传输数据没有任何限制, 就好像数据链路层不存在一样

  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输.
  • 面向比特的物理链路使用比特填充的方法实现透明传输。

在发送帧之前,对帧的数据部分进行扫描,每出现一个帧定界符,就在其前面插入一个转义字符
image.png
既包含帧定界符,又包含了转义字符的情况, 同理,在两者前都插入转义字符。
说明:转义字符是一种特殊的控制字符,长度为1字节,十进制为27,而不是ESC这三个字符
image.png
image.png
image.png
为了提高帧的传输效率, 应当使帧的数据部分的长度尽可能大些。
考虑到差错控制等多种因素, 每一种数据链路层协议都规定了帧的数据部分的长度上限, 即最大传送单元MTU(Maximum Transfer Unit)
image.png

差错检测

  • 实际的通信链路都不是理想的, 比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1 。 这称为比特差错。
  • 在一段时间内, 传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)
  • 使用差错检测码来检测数据在传输过程中是否产生了比特差错, 是数据链路层所要解决的 重要问题之一
  • image.png
  • 奇偶校验
    • 在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中 “1”的个数为奇数(奇校验)或偶数(偶校验).
    • 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;
    • 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)
    • image.png
  • 循环冗余校验CRC(Cyclic Redundancy Check)
    • 收发双方约定好一个生成多项式G(x);
    • 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码) , 将其添加到待传输数据的后面一起传输;
    • 接收方通过生成多项式来计算收到的数据是否产生了误码;
    • 检错码只能检测出帧在传输过程中出现了差错, 但井不能定位错误, 因此无法纠正错误
    • 要想纠正传输中的差错, 可以使用冗余信息更多的纠错码进行前向纠错。 但纠错码的开销比较大, 在计算机网络中较少使用。
    • 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现, 因此被广泛应用于数据链路层
    • 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。
    • image.png

    • image.png
    • image.png
    • image.png