美文网首页
数据链路层到底做了什么事?

数据链路层到底做了什么事?

作者: CyberDunk1997 | 来源:发表于2020-10-24 10:50 被阅读0次

    数据链路层的作用

    • 封装成帧
    • 透明传输
    • 差错监测

    1. 封装成帧

    • 帧是数据链路层的最小传输单位

    • 发送端在一段数据开头和末尾加上特定字段,形成帧后传输

    • 接收端根据前后特定标记识别出帧


      帧的结构
    • 如上图所示,数据链路层将把IP层传输过来的IP数据包加上首部和尾部,形成一个帧结构。之后它将帧传送到物理层,形成类似[010000011...]的比特流。

    • SOH是帧头部的特定比特流,EOT是帧尾部的特定比特流。

    如果IP数据包中也恰好也有SOH、EOT怎么办?

    答:那就需要用到差错检测了。


    2. 透明传输

    • 即使控制字符在帧数据中,但是要当做不存在去处理。


      转译字符
    • 当IP数据报中也出现了特殊的比特流,比如EOT,我们需要在EOT的前面加上一个转译字符ESC,这样就不会把EOT当成结束的特殊字符而导致传输错误。
    • 当IP数据报里面出现了转义字符ESC,只需要在ESC前面再加一个ESC即可。

    3. 差错检测

    • 物理层只负责传输比特流,但可能由于闪电,宇宙射线等其他原因导致比特流发生错误。
    • 链路层则负责进行差错检测。
    • 常用的差错检测方法有:奇偶校验码,CRC。

    3.1 奇偶校验码

    通过对前面数据所有位的相加,判断最后相加结果的奇偶来添加一位检验位,如果相加结果是奇数,则添加1,否则添加0。

    奇偶校验码
    • 局限性:如果出现偶数位的差错,则检测不到错误。

    3.2 循环冗余校验码CRC

    • 一种根据传输或保存的数据而产生【固定位数校验码】的方法
    • 【检测】数据传输或保存后可能出现的错误
    • 生成的数字计算出来并【附加到数据后面】

    3.2.1 模2除法

    • 模2除法是二进制下的除法
    • 与算术除法类似,但除法不借位,实际上是“异或”操作


      模“2”除法

    3.2.2 CRC的生成步骤

    • 选定一个用于校验的多项式【G(x)】,并在尾部添加【r】个0,【r】是二进制多项式的最高阶数。

      第一步
    • 将添加r个0后的数据,使用【模2除法】除以【多项式的位串】

      第二步
    • 【得到的余数填】充在【原数据r个0的位置】得到可校验的位串

      第二步

    3.3接收端进行检测

    • 接收端用接收到的数据除G(x)的位串,如果余数为0,则没有问题。


      检测

    4 以太网协议

    数据链路层

    MAC地址

    • MAC地址又称为物理地址,每一台设备(电脑、手机)全世界都只有唯一的一个MAC地址,可以理解为设备的身份证。
    • MAC地址有48位,使用十六进制表示。(30-B4-9E-ED-85-CA)

    以太网协议

    • 以太网协议是一种广泛使用的局域网技术,也是一种应用于数据链路层的协议
    • 使用以太网可以完成【相邻设备】的数据帧传输

    数据格式

    以太网协议数据格式

    路由转发过程

    • 路由器通过路由表来寻找MAC地址对应的接口


      数据转发
    • 当路由表中没有对应MAC地址,他会向所有接口广播,广播后会收到回应并记录地址


      路由表找不到地址

    跨设备传输数据

    • 由于E只知道A、D、F的MAC地址,所以如果A想传输数据给B、C则需要跨越多个路由器,这时就需要用到网络层。


      跨设备传输

    相关文章

      网友评论

          本文标题:数据链路层到底做了什么事?

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