数据链路层

数据链路层属于计算机网络的底层。数据链路层使用的信道主要是以下两种类型:

  • <stron>,使用一对一的点对点通信方式</stron>
  • 广播信道,使用一对多的广播通信方式

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

数据链路和帧

我们在这里首先需要明确链路和数据链路的区别:

  • 链路:就是从一个结点到另一个相邻结点的一段物理线路
  • 数据链路:当数据在线路上传输的时候,除了必须要有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输,把这些协议的硬件和软件加到链路上,就构成了数据链路。

数据链路层把网络层交下来的数据构成发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。互联网中,网络层协议数据单元就是IP数据报
**

点对点信道的数据链路层在通信时主要步骤如下:

  1. 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
  2. 结点A把封装的帧发送给结点B的数据链路层
  3. 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给网络层;否则就丢弃这个帧。

数据链路层协议的三个问题

数据链路层协议有很多种,但是有三个共同的基本问题:封装成帧、透明传输、差错检测

封装成帧

封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧

分组交换:
所有在互联网上传送的数据都以分组为传送单位。

网络层上的IP数据包到数据链路层就成为数据部分。再加上首部和尾部,就形成了一个完整的帧。

首部和尾部的一个重要作用就是进行帧定界。


当数据是有ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。控制字符SOH放在最前面,表示帧的首部开始,控制字符EOF放在后面表示结束

透明传输

由于帧开始和结束使用专门的控制字符,所以传输的数据中的任何8比特组合不许和控制字符一样,否则就会出现帧定界错误。

当我们用键盘输入文本文件时,任何字符都不可能是控制字符,这样的传输就是透明传输

但是,如果是非文本文件,那么就有可能字符与控制字符一样,数据链路层就会错误的找到帧边界。剩下的数据就会被丢弃。


为了解决这个问题,我们可以在发送方的数据中出现控制字符的前面添加一个转义字符ESC,在接受端的数据从数据链路层往网络层上面传输之前删除这个转义字符。这就叫做字节填充

差错检测

比特在传输过程中可能会产生差错:1可能变成0,0也可能变成1,这就是比特差错

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率

为了保证数据传输的可靠性,就需要使用循环冗余检验CRC检错技术。

  1. 根据除数得到n(除数位数-1)
  2. 用二进制模2运算进行2n乘被除数M的运算,相当于在M后面加上n个0
  3. 得到的(k+n)位数除P,不断进行异或得到商Q和余数R



在数据链路层若仅仅使用循环冗余校验CRC,则只能做到对帧的无差错接受,即:凡是接收端数据链路层接收的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错

现在,比特差错基本解决了,但是还有更复杂的传输差错:帧丢失、帧重复、帧失序。这就需要确认-重传机制了。当然,这是后话。

点对点协议PPP

点对点协议PPP是目前使用最广泛的数据链路层协议

PPP协议特点

互联网用户通常是要连接到某个ISP(互联网服务提供商)才能接入到互联网。PPP 协议就是用户和ISP进行通信使用的数据链路层协议。

PPP协议应满足的需求

  1. 简单
  2. 封装成帧
  3. 透明性
  4. 多种网络层协议
  5. 多种类型链路
  6. 差错检测
  7. 检测连接状态
  8. 最大传送单元
  9. 网络层地址协商
  10. 数据压缩协商

PPP协议的组成

PPP协议有三个组成部分:

  1. 一个将IP数据报封装到串行链路的方法。PPP既支持异步链路,也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制。
  2. 一个用来建立、配置和测试数据链路连接的链路控制协议LCP
  3. 一套网络控制协议NCP,其中每一个协议支持不同的网络层协议。

PPP协议的帧格式

各字段意义

PPP帧的首部分别为四个字段和两个字段。
首部的第一个字段金额尾部的第二个字段都是标志字段F,规定为0x7E标志字段表示一个帧的开始和结束,因此标志字段就是PPP帧的定界符。

首部的地址字段A规定为0xFF(即111111),控制字符C规定为0x03(即00000011)。

PPP首部的第四个字段是2字节的协议字段
当协议字段为0x0021时,PPP帧的信息字段就是IP数据报;
若为0xC021,则为链路控制协议LCP的数据;
若为0x8021表示这是网络层的控制数据。

字节填充

当信息字段中出现和标志字段一样的比特0x7E时,就必须采取一些措施使这种形式上2和标志字段一样的比特组合不出现在信息字段中。

当PPP使用异步传输时,它把转义符定义为0x7D,即01111101,并使用字节填充。

字节填充的步骤:

  1. 把信息字段中出现的每一个0x7E字节转变成2字节序列(0x7D,0x5E)。
  2. 若信息 字段中出现一个0x7D的字节,则把0x7D转变成2字节序列(0x7D,0x5D)
  3. 若出现ASCII控制字符,则在前面加入一个0x7D。

零比特填充

在使用同步传输(一连串的比特连续发送)而不是异步传输(逐个字符地传送),PPP采用零比特填充法实现透明传输。

具体做法是:在发送端,扫描整个信息子弹,只要发现有5个连续1,则立即填入一个0。在接收方则做相反的操作。

PPP协议的工作状态

当用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接。这时,用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。接着还要进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时IP。

当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。

使用广播信道的数据链路层

广播信道可以进行一对多的通信。

局域网

局域网的最主要的特点:网络为一个单位所拥有,且地理范围和站点数目均有限

局域网具有如下一些主要优点

  1. 具有广播功能,一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
  2. 便于系统的扩展和逐渐演变
  3. 提高了系统的可靠性、可用性和生存性

局域网可按照网络拓扑分类:

在总线网两端的匹配电阻可以吸收在总线上传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射。

使用集线器的星型拓扑

现在的以太网一般使用的都是双绞线,采用星型拓扑的结构。每个站需要两对无屏蔽双绞线,分别用于发送和接收。


使用双绞线能够传送高速数据的主要措施使把双绞线的绞合度做得非常精确。这样不仅可以使特性阻抗均匀以减少失真,而且大大减少了电磁波辐射和无线电频率的干扰

参考文献

[1] 谢希仁.计算机网络(第七版).电子工业出版社,2017.1.
[2] 严峻.计算机与网络基础课件.西安理工大学,2020.7.