美文网首页
四、数据链路层

四、数据链路层

作者: SeanLink | 来源:发表于2023-10-20 07:41 被阅读0次

    数据链路层(Data Link)

    • 链路:从1个结点到相邻的一段物理线路(有限或无线),中间没有其他交换结点

    • 数据链路:在一条链路上传输数据时,需要对应的通信协议来控制数据的传输
      不同类型的数据链路,所用的通信协议可能是不同的

    1. 广播信道: CSMA/CM协议(比如同轴电缆、集线器等组成的网络)
    2. 点对点信道: PPP协议(比如2个路由器之前的信道)
    • 数据链路层的3个基本问题
    1. 封装成帧
    2. 透明传输
    3. 差错校验

    1.封装成帧

    image.png
    • 帧(Frame)的数据部分
      就是网络层传递下来的数据包(IP数据包, Packet)
    • 最大传输单元MTU(Maximum Transmission Unit)
      每一种数据链路层协议都规定了所能够传送的帧的数据长度上线
      以太网的MTU为1500字节

    2.透明传输

    image.png
    • 使用SOH(Start Of Header)作为帧开始符
    • 使用EOT(End Of Transmission)作为帧结束符
    • 数据部分一单出现了SOH、EOT,就需要进行转义


      image.png

    3. 差错校验

    image.png
    • FCS是根据数据部分 + 首部计算得出的

    CSMA/CD协议

    • CSMA/CD(Carrier Sense Multiple Access/collision detection,带有冲突检测的载波侦听多路存取)
      载波侦听多路访问/冲突检测
    • 使用CSMA/CD的网络可以称为是以太网(Ethernet),它传输的是以太网帧
      以太网帧的格式有: Ethernet V2标准、IEEE的802.3标准
      使用最多的是 Ethernet V2标准
    • 为了能够检测正在发送的帧是否产生了冲突,以太网的帧至少要64字节
    • 用交换机组件的网络,已经支持全双工通信,不需要再使用CSMA/CD,但他传输的帧依然是以太网帧,所以,用交换机组件的网络,依然可以叫做以太网

    Ethernet V2帧的格式

    image.png
    • 首部: 目标MAC + 源MAC + 网络类型
    • 以太网帧: 首部 + 数据 + FCS
    • 数据的长度至少是: 64 - 6 - 6 - 2 - 4 = 46字节
    • 当数据部分的长度小于46字节时
    1. 数据链路层会在数据的后面加入一些字节填充
    2. 接收端会将添加的字节去掉
    • 长度总结
    1. 以太网的数据长度: 46~1500字节
    2. 以太网帧的长度: 64~1518字节(目标MAC + 源MAC + 网络类型 + 数据 + FCS)

    网卡

    image.png
    • 网卡接收到一个帧,首先会进行差错校验,如果校验通过则接收,否则丢弃
    • Wireshark抓带的帧没有FCS,因为她抓到的是差错校验通过的帧(帧尾的FCS会被硬件去掉)
    • Wireshark抓不到差错校验失败的帧

    PPP协议

    • 点对点协议(Point to Point Protocol,PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。


      image.png
    • Address字段: 图中的值是0xFF,形同虚设,点到点信道不需要源MAC、目标MAC地址
    • Control字段: 图中的值是0x03,目前没有什么作用
    • Protocol字段: 内部用到的协议类型
    • 帧开始符、帧结束符: 0x7E
    PPP协议----字节填充
    image.png

    当数据中含有7D或7E时,为了解决数据冲突的问题,将对应数据进行转义

    • 将0x7E替换成0x7D5E
    • 将0x7D替换成0x7D5D

    相关文章

      网友评论

          本文标题:四、数据链路层

          本文链接:https://www.haomeiwen.com/subject/usobtdtx.html