03数据链路层
03数据链路层
1. 数据链路层的设计
1.1 数据链路层的功能
- 成帧(Framing):也叫组帧。将比特划分成数据帧来检测和纠正物理层在传输中可能出现的错误。
- 差错控制(Error Control):处理传输中出现的差错
- 流量控制(Flow Control):确保发送方的发送速率不大于接收方的处理速率
1.2 数据链路层提供的服务
- 无确认无连接服务( Unacknowledged connectionless )
- 有确认无连接服务( Acknowledged connectionless )
- 有确认有连接服务(Acknowledged connection-oriented)
2. 成帧
- 字节计数法:固定长度字节为一帧
- 带字节填充的定界符法:使用定界符(FLAG),比如 01111110,即 0x7E,用于区分前后两个不同的帧
- 带比特填充的定界符法:定界符:两个0比特之间,连续6个1比特,即01111110,0x7E
- 物理层编码违例:选择的定界符不会在数据部分出现
2.1 基于帧进行的差错控制
链路存在的问题
- 差错(incorrect):数据发送错误
- 丢失(lost):接收方未收到
- 乱序(out of order):先发后到,后发先到
- 重复(repeatedly delivery):一次发送,多次接收
解决方法
- 确认:接收方校验数据,并给发送法应答
- 定时器:发送方启用定时器,防止丢失
- 顺序号:接收方检查序号,防止乱序递交,重复递交
2.2 基于帧进行的流量控制
问题
- 接收方的接收缓冲区溢出
解决方案
- 基于反馈的流量控制
- 基于速率的浏览控制
3. 差错控制
- 码字:一个包含m个数据位和r个校验位的n位单元
- 码率:码字中不含冗余部分所占的比例,可以用m/n表示
3.1 检错码
- 在被发送的数据块中,包含一些冗余信息,但这些信息只能使接收方推断是否发生错误,但不能推断哪位发生错误,接收方可以请求发送方重传数据
Definition (校验和 Checksum)
Definition (循环冗余校验 Cyclic Redundancy Check,CRC)
3.2 纠错码
- 发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误(定位出错的位置)
Definition (海明码)
Definition (RS码)

4. 基本的数据链路层协议
4.1 乌托邦式单工协议
乌托邦:
- 不处理任何流量控制或纠错工作
- 接近于无确认的无连接服务,必须依赖更高层次解决上述问题
Definition (乌托邦式单工协议)
4.2 无错信道的停等式协议
Definition (无错信道的停等式协议)
4.3 有错信道上的单工停等式协议
Definition (有错信道上的单工停等式协议)
5. 流量控制
5.1 回退N(Go-Back-N)协议
5.2 选择性重传(Selective Repeat)协议
6. 数据链路协议实例
6.1 PPP协议
Definition (PPP协议)

Definition (字节填充)

Definition (零比特填充)
