【计算机网络】数据链路层的基本功能

1.使用点对点信道的数据链路层

链路:一条无源的点到点的物理线路daunt,中间没有任何其他的交换结点。
数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
常常在两个对等的数据链路层之间画出一条数字管道,而在这条数字管道上传输的数据叫做
【计算机网络】数据链路层的基本功能
帧的形成

  • 封装成帧:在一段数据的前后分别添加首部和尾部,这样就构成一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结尾。

数据链路帧的特点

  • 首部和尾部还包括许多必要的控制信息。
  • 每一种链路层协议都规定了所能传送的帧的数据部分的长度上限–最大传送单元。
  • 一个控制字符SOH放在一个帧的最前面,表示帧的首部开始,另一个控制字符EOT表示帧的尾部。
  • 首部与尾部加起来小于中间的数据备份。
    【计算机网络】数据链路层的基本功能

2. 透明传输

:无论什么样的比特组合的数据都通过这个数据链路层。
【计算机网络】数据链路层的基本功能
字符填充发:在EOT/SOH/ESC前加ESC(转义字符)保证透明传输

【计算机网络】数据链路层的基本功能

3.差错检测

传输错误的比特占所传输比特总数的比特称为误码率BER。例如,误码率为10的-10次方时,表示平均每传送1010个比特就会出现一个比特的差错。
在计算机网络传输数据时,必须采用各种差错检测措施。目前在数据链路层广泛使用了循环冗余检验CRC的检验技术。

CRC冗余检验

  • 在发送端,先把数据划分为组,假定每组k个比特,现假定待传送的数据M=1010001101(k=10)。CRC运算就是在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一共发送(k+n)位。
    设n=5,P=110101(除数),模2运算的结果是:商Q=1101010110.余数R=01110
    将余数R作为冗余码添加到数据M的后面发送。
  • 在接受端把接受到的数据以帧为单位进行CRC检验,把收到的每一个帧都除以同样的除数P(模2运算 ),然后检查得到的余数R。
  • 在接受端对收到的每一帧都经过CRC检测后有两个情况
    a.若得到的余数等于0,则判定这个帧没有差错,就接受
    b.若余数不等于0,则判定这个帧有差错,丢弃

缺点:无差错接受

在数据后面添加上的冗余码称为帧检验序列FCS
循环冗余检验CRC和帧检验序列FCS并不等同。
CRC时一种常见的检测方法,而FCS是添加在数据后面的冗余码。
FCS可以用CRC这种方法得出,但是CRC并不是用来获取FCS的唯一方法。

4.流量控制

主机A向主机B传输数据的信道仍然是无差错的理想信道。然而现在不能保证接收端向主机交付数据的速率永远不低于发送端发送数据的速率。
由收方控制发方的数据流,仍是计算机网络中控制流量控制的一个基本方法。
在发送结点:

  • 从主机取一个数据帧
  • 将数据帧送到数据链路层的发送缓存
  • 将发送缓存中的数据帧发送出去
  • 等待
  • 若收到由接受结点发过来的信息,则从主机取一个新的数据帧,然后转到(将数据帧送到数据链路层的发送缓存)
    在接受结点
  • 等待
  • 若收到由发送结点发过来的数据帧,则将其放入数据链路层的接收缓存
  • 将接受缓存的数据帧上交主机
  • 向发送结点发一信息,表示数据帧已经上交到主机
  • 转到等待
    【计算机网络】数据链路层的基本功能

超级计时器:结点A发送完一个数据帧时,就启动一个超时计数器,计数器又称为定时器,若到了超时计数器所设置的重传时间tout而仍收不到结点B的任何确认帧,则结点A就重传前面所发送的这一数据帧。一般可将重传时间选为略大于“从发送数据帧到收到确认帧所需的平均时间”。

解决重复帧的问题:使每一个数据帧带上不同的发送序号,每发送一个新的数据帧就把它的发送序列加1,若结点B收到发送序号相同的数据帧,就表示出现了重复帧,这时应丢弃重复帧,因为已经收到过同样的数据帧并且也交给了主机B,但此时B还必须向A发送确认帧A,因为B已经知道A还没有收到上一次发过去的确认帧ACK.

帧的标号问题:一个比特可表示0 /1两种不同的序号
帧的发送序号:0与1交替。