# 1. 数据链路层

# 1.1. 数据链路层概述

三大作用:

  • [ ] 封装成帧
  • [ ] 透明传输
  • [ ] 差错检测

# 1.1.1. 封装成帧

  • [ ] 是数据链路层数据的基本单位
  • [ ] 发送端在网络层的一段数据前后添加特定标记(帧首部SOH、帧尾部EOT)形成帧
  • [ ] 接收端根据前后特定标记识别出帧

# 1.1.2. 透明传输

  • [ ] 透明:一种实际存在的事物又看起来不存在一样
  • [ ] 即使控制字符在帧数据中,但是要当做不存在的去处理

数据段内部如果出现控制字符,如EOT(尾部),则在其前面加上转义字符(类似\),如果数据段中本来就存在转义字符,那就在前面再加上转义字符(类似\\)

# 1.1.3. 差错检测

  • [ ] 物理层只管传输比特流无法控制是否出错
  • [ ] 数据链路层则负责差错检测的工作

# 1.2. 数据链路层的差错检测

奇偶校验码

  • [ ] 数据中,如果1的个数是偶数,就在后面加0,如果1的个数是奇数,就在后面加1
  • [ ] 出错两位,奇偶校验码检测不出错误

循环冗余校验码CRC

  • [ ] 检测数据传输可能出现的错误
  • [ ] 生成数字计算出来并且附加到数据后面

模2除法,不借位,异或操作: 模2除法

CRC:

  1. 选定一个用于校验的多项式G(x),并在数据尾部添加r个0(r为最高阶)
  2. 将添加r个0后的数据,使用2除法除以多项式的位串
  3. 得到的余数填充在原数据r个0的位置得到可校验的位串

CRC CRC

  • [ ] 接收端接收的数据除以G(x)的位串,根据余数判断出错
  • [ ] 余数为0说明数据正确,否则说明数据出错

注意:

  • [ ] CRC的错误检测能力与位串的阶数r有关(当r为1时,就退化为奇偶检验码)
  • [ ] 数据链路层只进行数据的检测,不进行纠正

# 1.3. 最大传输单元MTU

  • [ ] Maximum Transmission Unit(MTU)最大传输单元
  • [ ] 数据链路层的数据帧不是无限大的
  • [ ] 数据帧过大或过小都会影响传输的效率
  • [ ] 以太网MTU一般为1500字节

路径MTU

  • [ ] 路径MTU由链路中MTU的最小值决定(木桶效应)

# 1.4. 以太网协议详解

MAC地址(物理地址、硬件地址),48位,使用十六进制

以太网协议:

  • [ ] 使用广泛的局域网技术
  • [ ] 应用于数据链路层的协议
  • [ ] 使用以太网可以完成相邻设备的数据帧传输

以太网协议的数据格式: 目的地址、源地址就是Mac地址,6指的是字节。类型的每一位也是16进制。

以太网

Mac地址表

  • [ ] Mac地址和硬件接口的映射关系