美文网首页
小马哥网络课笔记11------数据链路层

小马哥网络课笔记11------数据链路层

作者: 夜凉听风雨 | 来源:发表于2022-02-17 18:11 被阅读0次

    数据链路层(Data Link)

    • 建立逻辑连接、进行硬件地址寻址、差错校验等功能

    • 网卡、网桥和交换机属于数据链路层
      网卡同时也属于物理层。

    • 链路:从1个节点到相邻节点的一段物理线路(有线或无线), 中间没有其他交换节点
      下图所示的红框部分就是每一个链路

    image.png
    • 数据链路:在一条链路上传输数据时,需要有对应的通信协议来控制数据的传输

    • 不同类型的数据链路,所用的通信协议可能是不同的
      1.广播信道: CSMA/CD协议(比如同轴电缆、集线器等组成的网络)
      2.点对点信道: PPP协议(比如2个路由器之间的信道)
      3.上图中,计算机0传递到路由器0使用的是CSMA/CD协议包装数据,路由器收到数据后先去掉CSMA/CD协议包装部分,再使用PPP协议包装数据后发送给路由器1,反之亦然。

    • 数据链路层的3个基本问题
      1.封装成帧
      2.透明传输
      3.差错检验

    封装成帧

    image.png
    • 帧(Frame)的数据部分
      就是网络层传递下来的数据包(IP数据包, Packet)

    • 最大传输单元MTU (Maximum Transfer Unit)
      每一种数据链路层协议都规定了所能够传送的帧的数据长度上限
      以太网的MTU为1500个字节

    透明传输

    传输数据的介质中可能有多条帧同时在传递,那么需要一个帧开始符和帧结束符来确定一个完整的帧。

    image.png
    • 使用SOH (Start Of Header) 作为帧开始符

    • 使用EOT (End Of Transmission) 作为帧结束符

    • 数据部分一旦出现了SOH、EOT,就需要进行转义
      一旦数据部分出现了SOH或EOT就会导致识别帧错误,所以数据部分如果出现SOH/EOT在封装时就需要先进行转义。

    转义.png

    如上图所示:
    封装帧的时候在数据部分发现SOH/ESC就做字节填充,接收端接收后再将其转义回SOH/ESC。

    差错校验

    image.png
    • FCS是根据数据部分+首部计算得出的
      发送方,在发送数据时会用数据部分+首部计算得出FCS拼到帧上一起发送。接收方拿到数据后,会用数据部分+首部计算出FCS,然后和帧携带的FCS比对,如果一样则正确,不一样则表示数据传递有问题,需抛弃。

    CSMA/CD协议

    • CSMA/CD (Carrier Sense Multiple Access with Collision Detectio)
      载波侦听多路访问/冲突检测

    • 使用了CSMA/CD的网络可以称为是以太网(Ethernet) ,它传输的是以太网帧
      1、以太网帧的格式有: Ethernet V2标准、IEEE的802.3标准
      2、使用最多的是: Ethernet V2标准

    • 单双工为了能够检测正在发送的帧是否产生了冲突,以太网的帧至少要64字节,就是整个信道传输数据总长度的2倍。
      1、发送方在发送以太网帧的时候,假如在中途发生了冲突,数据被回弹回来。
      2、如果帧太短,此时发送方已经发送完毕,再收到回弹回来的帧时就以为是别人发给自己的信号。
      3、只有帧足够长,收到回弹回来的帧时它还没发送完之前的帧,就知道是冲突返回的帧了。
      4、如果数据不够64字节,封装帧的时候会主动填满64字节。

    • 用交换机组建的网络,已经支持全双工通信,没有冲突,所以不需要再使用CSMA/CD,但它传输的帧依然是以太网帧
      所以,用交换机组建的网络,依然可以叫做以太网

    Ethernet V2帧的格式

    image.png
    • Ethernet V2格式的帧已经不需要帧开始符和帧结束符
    • 但是在物理层需要给这个帧加上前同步码和帧开始定界符
    • 以太网帧:首部+数据+FCS
    • 首部:目标MAC + 源MAC + 网络类型
    • 数据的长度至少是: 64-6-6-2-4 = 46字节

    Ethernet V2标准

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

    网卡

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

    PPP协议 (Point to Point Protocol)

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

    PPP协议——字节填充

    image.png
    • 帧首尾以7E做标识
    • 数据部分如果有7E需要将0x7E替换成0x7D5E
    • 将0x7D替换成0x7D5D

    相关文章

      网友评论

          本文标题:小马哥网络课笔记11------数据链路层

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