计算机网络 数据链路层

本文将介绍计算机网络中的数据链路层。

一、数据链路层的作用

在原始的、有差错的物理传输线路的基础上,采取差错检测、差错控制、流量控制等方法,将其改造成逻辑上的无差错的数据链路。

一般而言,只保证 “比特差错”,不保证 “帧差错”

具体来说:

  • 接收网络层交下来的 IP 数据报,添加控制信息封装成帧,将帧传给其它节点的数据链路层
  • 接收来自其它节点的数据链路层的帧,若帧无差错,则提取 IP 数据报并交给网络层;否则,丢弃帧

二、链路和数据链路

  • 链路:又称物理链路;表示从一个节点到另一个节点的、中间没有交换节点的物理线路
  • 数据链路:又称逻辑链路;数据链路 = 链路 + 通信协议

三、核心问题

数据链路层有三个核心问题:封装成帧、透明传输和差错控制

1. 封装成帧

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

首部和尾部有一个重要作用:帧定界,用于说明帧的开始与结束,便于接收端确定帧的完整性。

2. 透明传输

所谓透明传输,就是无论任何数据,都可以按照原样、没有差错地被数据链路层传输。

为了解决实现这一效果,我们需要对数据中可能出现的 “帧界定符” 进行转义。

3. 差错检测

  • 对于 “比特差错”,即比特在传输过程中可能会产生的差错,例如 1 变为 0,一般通过 循环冗余检测 CRC 技术检错解决

  • 对于 “帧差错”,即以帧为单位的差错,例如帧丢失、帧重复、帧失序。

    有两种体系结构设计方案:

    • 由数据链路层解决,增加帧编号、确认、重传等机制,确保数据链路层的 “可靠传输”

    • 视链路质量而定,

      • 对通信质量较好的链路,例如有线传输链路,不增加额外机制,而是由上层进行 “帧差错” 控制
      • 对通信质量较差的链路,例如无线传输链路,增加额外机制,为上层提供可靠的服务

      通过这种方式,避免了在链路通信质量良好的情况下由于额外机制而影响传输效率

四、点对点协议 PPP

1. PPP 协议的特点

  • 简单:不需要负责 “帧差错” 处理,只需要负责 “比特差错” 处理;每接收到一个帧,检验,正确收下错误丢弃,其它什么也不做

  • 封装成帧:需要能够封装成帧

  • 透明性:需要能够透明传输

  • 多种网络层协议:需要在同一条物理链路上同时支持多种网络层协议

  • 多种类型链路:需要能够在多种类型的链路上运行

    包括:

    串行的、并行的、同步的、异步的、低速的、高速的、电的、光的、交换的、非交换的等等

  • 差错控制:应该能够对接收到的帧做检测,并立即丢弃有差错的帧

  • 检测连接状态:应该能够及时地自动地检测链路的工作状态

  • 最大传送单元:必须对每一种类型的点对点链路规定最大传送单元的标准默认值

  • 网络层地址协商:必须提供一种使得通信双方能够协商的得知彼此网络层地址的机制

  • 数据压缩协商:必须提供一种方法来协商使用数据压缩算法

需要注意的是:

在 TCP/IP 协议族中,可靠传输由传输层的 TCP 协议负责,因此数据链路层的 PPP 协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。

2. PPP 协议的工作流程

当用户拨号接入 ISP 后,就建立了一条从用户个人电脑到 ISP 的物理连接。这时,用户个人电脑向 ISP 发送一系列的链路控制协议 LCP 分组(封装成多个 PPP 帧),以便建立 LCP 连接。这些分组及其响应选择了将要使用的一些 PPP 参数。接着还要进行网络层配置,网络控制协议 NCP 给新接入的用户个人电脑分配一个临时的 IP 地址。这样,用户个人电脑就成为互联网上一个有 IP 地址的主机了。

五、MAC 地址

1. 什么是 MAC 地址?

MAC 地址,即硬件地址,是固化再适配器的 ROM 中的地址。

2. 地址解析协议 ARP

通过地址解析协议 ARP,可以根据 IP 地址计算出对应的 MAC 地址。

当需要计算 MAC 地址时:

  • 首先在 ARP 高速缓存中查询是否有缓存
  • 若有缓存,取值并返回
  • 若无缓存,
    • 在局域网中广播 ARP 请求
    • 局域网中的其它主机接受到请求后,会检查请求中的 IP 地址是否与自身匹配,若匹配,则返回响应

参考

  • 《计算机网络》