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

    image.png

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

    广播信道:CSMA/CD协议(比如同轴电缆、集线器等组成的网络)
    点对点信道: PPP协议(比如2个路由器之间的信道)

    数据链路层的三个基本问题:

    封装成帧
    透明传输
    差错检验

    封装成帧

    image.png

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

    透明传输
    **
    image.png

    使用SOH(Start Of Header)作为帧开始符
    使用EOT(End Of Transmission)作为帧结束符

    image.png

    如图所示,如果在数据部分出现了帧结束符号,则就会发生数据断层
    所以在传输过程中有字节填充,到接受到后会自动去掉转义字符,中间的过程我们看不到,就叫透明传输

    差错检验
    **
    image.png

    FCS是由帧的数据部分+数据链路层首部计算得出
    用来判断信号是否是我发出或者接收的正确信号
    如果FCS和数据部分+首部的值不和,则就不是正确信号

    CSMA/CD(Carrier Sense Multiple Access with Collision Detectio)协议
    **
    载波帧听多路访问/冲突检测

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

    为了能够检测正在发送的帧是否产生了冲突,以太网的帧至少需要64字节。

    所以,用交换机组建的网络,依然可以叫做以太网

    Ethernet V2帧的格式:
    image.png

    首部: 目标MAC + 源MAC+网络类型
    以太网帧: 首部 + 数据 + FCS
    数据的长度至少是: 64 - 6 - 6 - 2 - 4 = 46字节

    Ethernet V2标准
    **
    当数据部分长度少于46字节时
    数据链路层会在后面加入一些字节填充
    接收端会将添加的字节去掉
    image.png

    长度总结
    以太网帧的数据长度: 46~1500字节
    以太网帧的长度: 64~1518字节(目标MAC+源MAC+网络类型+数据+FCS)

    网卡
    image.png

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

    PPP协议(Point to Point Protocol)
    image.png

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

    image.png