# 1. 数据链路层
# 1.1. 数据链路层概述
三大作用:
- [ ] 封装成帧
- [ ] 透明传输
- [ ] 差错检测
# 1.1.1. 封装成帧
- [ ] 帧是数据链路层数据的基本单位
- [ ] 发送端在网络层的一段数据前后添加特定标记(帧首部
SOH
、帧尾部EOT
)形成帧 - [ ] 接收端根据前后特定标记识别出帧
# 1.1.2. 透明传输
- [ ] 透明:一种实际存在的事物又看起来不存在一样
- [ ] 即使控制字符在帧数据中,但是要当做不存在的去处理
数据段内部如果出现控制字符,如EOT(尾部),则在其前面加上转义字符(类似\
),如果数据段中本来就存在转义字符,那就在前面再加上转义字符(类似\\
)
# 1.1.3. 差错检测
- [ ] 物理层只管传输比特流,无法控制是否出错
- [ ] 数据链路层则负责差错检测的工作
# 1.2. 数据链路层的差错检测
奇偶校验码
- [ ] 数据中,如果1的个数是偶数,就在后面加
0
,如果1
的个数是奇数,就在后面加1
- [ ] 出错两位,奇偶校验码检测不出错误
循环冗余校验码CRC
- [ ] 检测数据传输可能出现的错误
- [ ] 生成数字计算出来并且附加到数据后面
模2除法,不借位,异或操作:
CRC:
- 选定一个用于校验的多项式
G(x)
,并在数据尾部添加r个0
(r
为最高阶) - 将添加
r个0
后的数据,使用模2
除法除以多项式的位串 - 得到的余数填充在原数据
r个0
的位置得到可校验的位串
- [ ] 接收端接收的数据除以
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地址和硬件接口的映射关系