- 向上提供透明接口
- 向下将比特流拆分为若干个帧,为每个帧计算校验和
- 接收端基于校验和检查帧内的比特差错
向上网络层接口
- 无确认的无连接服务
- 以太网
- 无需逻辑连接
- 双方无需确认
- 有确认的无连接服务
- IEEE802.11(WiFi)
- 无需逻辑连接
- 接收方确认收到帧
- 发送方如果超时未确认,就重新发送帧
- 有确认的面向连接服务
- 需逻辑连接
- 每一帧都被编号
- 每个帧确认收到,只被收到一次,所有帧按顺序收到
向下物理层接口
封装成帧
字节计数法
帧头放入该帧(包括帧头)的字节长度
稳定性差,很少使用
字节填充的标志字节法
用一些特殊字符FLAG表示帧的开始和结束
- 如果特殊字符在数据中出现
- 发送方的数据链路层在来自网络层的数据前面插入转义字符ESC
- 接收方的数据链路层删除转义字符再交给网络层
- 如果转义字符在数据中出现,就转义转义字符
- 帧长取决于数据字段内容
- 最好情况下增加2字节
- 最坏情况下翻倍
PPP使用
比特填充的标志比特法
开始和结束都用约定的比特模式标记:01111110(0x7E)
如果在数据字段识别到了连续的5个1,就立刻插入一个0
- 帧长取决于数据字段内容
- 最好情况下增加2字节
- 最坏情况下增加约12.5%(每个字节+1bit)
USB使用
物理层编码例外法
利用物理层编码准备的标记信号来标识帧的开始和结束
- 4B/5B码的16个信号标识
以太网和WiFi使用
- 在帧前插入一个前导码
- 这个码不会在物理层编码的数据字段中出现
- 标识帧的开始
- 前导码后是帧长度字段
- 计算帧的结束处
差错检测
- 纠错码:Hamming码
- 检错码:循环冗余校验CRC