第三章 数据链路层
朝着Distribution前进
数据链路层
- 数据链路层的协议传输单元,帧(Frame)
- 帧的长度等于帧的数据部分长度加上帧首部和帧尾部的长度
- 最大传送单元(Maximum Transfer Unit, MTU) 规定了帧的
数据部分长度
的上限 - 透明传输指在发送给上层之前的传输数据没有任何限制(i.e. 将帧定界符删除)
- 为了解决透明传输的问题,使用字节填充,即在含有数据部分中含有控制字符的前面插入转义字符
- 零比特填充法,只要在
发送端
发现有5个连续的1,则在后面插入1个0;在接收端
发现有5个连续1,则将其后面的0删除 - $误码率=\frac{传输错误的比特}{传输比特总数}$
- 差错检测码(Error-Dectecting Code, EDC),通常在每个帧的尾部设置一个差错检验字段(存放着整个帧,包括首部和数据)的差错检测码,这个差错检验字段成为帧检验序列(Frame Check Sequence, FCS)
- 循环冗余检验(Cyclic Redundancy Check, CRC),
G
的长度为r+1
,D
为待传送的数据,R
为余数作为EDC
,若R
为0则未出现误码。$R=\frac{D \cdot 2^r}{G}的余数$; 模2运算等价于按位异或 - **停止等待协议(Stop-and-Wait)**,发送方发完一个分组时启动
超时计时器
,一般可以将重传时间设为略大于平均RTT
; 过早超时会使发送方收到重复的确认分组,因此确认分组也需要进行编号,但数据链路层中的RTT是确定的,所以在此不必进行编号; 发送方发完一个分组后必须保留已发送的分组的副本; 停止等待协议的优点是简单
,缺点是信道利用率太低
; 信道利用率$U=\frac{T_D}{T_D+RTT+T_A}$,其中$T_D$为发送方发送分组所需要的时间,$T_A$为接收方发送确认分组所需要的时间