1. 概述

在本篇文章中,我们将深入探讨 OSI 模型中数据链路层(Data Link Layer, DLL)的两个子层:LLC(逻辑链路控制)和 MAC(媒体访问控制)。我们将了解它们的职责、工作机制以及常见的协议类型,帮助你更深入地理解网络通信中这一关键环节。


2. 数据链路层简介

OSI 模型将网络通信划分为七层,其中 数据链路层(DLL)位于第二层,处于物理层(第一层)和网络层(第三层)之间。

DLL 的核心职责包括:

  • 帧封装(Framing)
  • 流量控制(Flow Control)
  • 差错控制(Error Control)
  • 拥塞控制(Congestion Control)

为了更好地组织功能和提供服务,DLL 被进一步划分为两个子层:

  • LLC(Logical Link Control):逻辑链路控制
  • MAC(Media Access Control):媒体访问控制

LLC 负责与通信链路类型无关的通用控制逻辑,而 MAC 则负责处理共享链路上的访问控制,尤其是在广播链路中。


3. 数据链路层中的链路类型

DLL 中的链路可以分为两种类型:

  • 专用链路(Dedicated Link, DL):点对点连接,只使用链路的一部分带宽
  • 广播链路(Broadcast Link, BL):多个节点共享整条链路带宽

LLC 子层适用于两种链路类型,而 MAC 子层主要处理广播链路中的访问控制问题。

3.1 数据链路层子层结构图

下图展示了数据链路层的典型子层结构:

dll sublayer


4. LLC 子层(逻辑链路控制)

LLC 是 DLL 的上层子层,负责节点之间的通信控制,无论是点对点还是广播链路。

LLC 的三大核心功能是:

帧封装(Framing)
流量控制(Flow Control)
差错控制(Error Control)

4.1 帧封装(Framing)

帧封装是将数据打包成帧的过程,通过添加源地址(SA)和目的地址(DA)来标识帧的来源和去向。

帧可以分为:

  • 固定长度帧(Fixed-size):无需帧边界标识
  • 可变长度帧(Variable-size):使用分隔符(flag)标识帧边界

可变长度帧的两种协议:

  • 字节导向协议(Byte-oriented):使用字节填充(Byte-stuffing)来避免标志字符出现在数据中
  • 位导向协议(Bit-oriented):使用位填充(Bit-stuffing)来避免标志模式(如 0111110)出现在数据中

4.2 流量控制(Flow Control)

流量控制用于平衡发送节点和接收节点之间的数据传输速率。常用方法是在发送和接收端设置缓冲区(Buffer)来暂存数据帧。

4.3 差错控制(Error Control)

LLC 层通过 CRC(循环冗余校验)机制来检测帧是否损坏。常见处理方式包括:

  • 丢弃损坏帧
  • 接收正确帧并选择性回传确认(ACK)

4.4 LLC 协议类型

LLC 子层支持两种通信模式:

  • 无连接协议(Connectionless):帧之间无依赖,独立发送
  • 面向连接协议(Connection-oriented):先建立逻辑连接,再传输数据,最后释放连接

4.5 LLC 子层协议分类

LLC 中常见的协议包括:

  • PAR(Positive Acknowledgment with Retransmission)
    发送方等待确认,超时未收到则重传

  • ARQ(Automatic Repeat Request)
    分为:

    • Stop-and-Wait(停等协议)
    • Pipeline(流水线协议)
      • Go-Back-N:接收方必须按序接收
      • Selective Retransmission(选择性重传):允许乱序接收

4.6 常见 LLC 协议标准

  • HDLC(High-Level Data Link Control)
    位导向协议,支持 DL 和 BL,使用停等机制,定义三种帧类型:

    • 信息帧(Informational)
    • 监控帧(Supervisory)
    • 无编号帧(Unnumbered)
  • PPP(Point-to-Point Protocol)
    用于点对点连接,支持多路复用不同数据载荷,实现连接导向服务和认证机制


5. MAC 子层(媒体访问控制)

MAC 子层主要负责 广播链路中的拥塞控制和访问协调。它接收来自 LLC 层的帧,添加物理地址(即 MAC 地址)后进行转发。

MAC 协议可分为三大类:

随机访问协议(Random Access Protocols, RAPs)
受控访问协议(Controlled Access Protocols, CAPs)
信道化协议(Channelization Protocols, CPs)

5.1 随机访问协议(RAPs)

也称争用协议,节点无需授权即可发送数据,常见协议包括:

  • ALOHA:最早的随机访问协议
  • CSMA(Carrier Sense Multiple Access):发送前监听信道
  • CSMA/CD(冲突检测):检测到冲突后处理
  • CSMA/CA(冲突避免):通过退避机制避免冲突(常用于无线网络)

5.2 受控访问协议(CAPs)

节点需协商授权后才能发送数据,常见方式包括:

  • 预约(Reservation):时间划分为周期,每个周期内先预约后发送
  • 轮询(Polling):主设备控制所有通信,次设备被动响应
  • 令牌传递(Token Passing):令牌在节点间传递,持有者可发送数据

5.3 信道化协议(CPs)

通过时间、频率或编码划分共享带宽,常见协议包括:

  • FDMA(频分多址):按频率划分带宽
  • TDMA(时分多址):按时间片划分
  • CDMA(码分多址):使用编码区分用户
  • OFDMA(正交频分多址):结合 FDMA 和 TDMA,高效利用频谱资源

下图展示了 MAC 子层协议的完整分类:

MAC taxonomies


6. 总结

本文详细介绍了数据链路层的两个子层:LLC 和 MAC。

  • LLC 负责帧封装、流量控制和差错控制,适用于点对点和广播链路
  • MAC 负责广播链路中的访问控制,防止冲突,确保高效通信

我们还分析了多个关键协议,包括 HDLC、PPP、CSMA/CD、CSMA/CA、FDMA、TDMA、CDMA 等,这些协议构成了现代网络通信的基础。

理解 DLL 子层的结构和功能,有助于你更好地掌握网络通信机制,尤其在设计或调试网络应用、协议栈实现、网络设备开发等场景中具有重要意义。


原始标题:The Sub-Layers of the Data Link Layer