第三章 数据链路层

朝着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+1D为待传送的数据,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$为接收方发送确认分组所需要的时间