Skip to content

数据链路层的功能

数据链路层的主要任务是让帧在一条链路上或一个网络中正确传输。它向上为网络层提供逻辑通信,向下使用物理层提供的比特流服务。

从功能上看,数据链路层需要解决的核心问题可以概括为:

  • 封装成帧:把网络层分组装入帧,并加上帧首/帧尾

  • 透明传输:接收方能从帧中正确恢复原始数据,网络层"感觉不到"组帧过程

  • 差错控制:发现并处理传输中的错误

  • 封装成帧

相邻结点

数据链路层只负责一跳(相邻结点)之间的传输,跨网络的路由选择属于网络层。


数据链路层使用的信道

数据链路层使用的信道主要有以下两种:

  • 点对点信道:两个结点之间有专属传输介质,通信双方独占链路,通常不需要介质访问控制

  • 广播信道:多个结点共享同一传输介质,逻辑上多为总线型拓扑,需要协调"谁先发送",即介质访问控制

信道类型 典型场景 是否需要 MAC
点对点 拨号上网、路由器间专线
广播 以太网、无线局域网

点对点信道的基本概念

  • 物理链路(链路):由物理介质及连接两结点的通信设备组成,是实际存在的传输线路

  • 逻辑链路(数据链路):在物理链路之上,加上数据链路层协议后形成的、逻辑上无差错的传输通道

  • 帧(Frame):数据链路层的传输单位。网络层分组(如 IP 数据报)加上帧首、帧尾后构成一帧

Tip

教材常说"链路 = 物理链路,数据链路 = 逻辑链路"。做题时看到"在数据链路上传输",指的是加了协议、能按帧收发的逻辑通道。


链路管理

链路管理主要针对点对点信道中数据链路的建立、维持与释放(面向连接的数据链路层协议,如 HDLC)。

  • 建立链路:通信前先协商链路参数、同步双方状态

  • 维持链路:通信过程中保持连接可用,必要时进行链路状态检测

  • 释放链路:通信结束后有序断开,释放相关资源

Tip

知道"点对点 + 面向连接协议可能需要链路管理"即可。以太网等广播信道通常是无连接的,不涉及显式链路建立。


封装成帧与透明传输

组帧

封装成帧

把网络层递交下来的分组,加上帧首(Header)帧尾(Trailer),构成数据链路层可独立传输的

  • 帧定界:让接收方能够确定一帧从哪里开始、到哪里结束(定界符、字符计数、字节填充等,见组帧笔记)

透明传输

无论上层数据中出现什么比特模式(包括与定界符相同的比特串),接收方链路层都能正确识别帧边界并完整恢复原始 SDU,使网络层"感受不到"组帧过程。


流量控制

流量控制(Flow Control)用于协调相邻结点之间的发送速率,防止发送方发得太快、接收方来不及处理而导致帧丢失。

Tip

区分两个"流控":

  • 数据链路层流量控制:相邻结点之间,防止接收结点缓冲区溢出

  • 传输层流量控制(如 TCP 窗口):端到端,防止接收进程来不及读


差错控制

差错控制

408 中需要区分两类"错":

位错(Bit Error)

单个帧内部某些比特因噪声等原因发生翻转。

  • 方案一(检错重传):接收方发现比特错后丢弃帧,通知发送方重传——只需检错编码(如 CRC)

  • 方案二(纠错):接收方直接纠正比特错误——需要纠错编码(如海明码,了解即可)

帧错(Frame Error)

指帧级别的传输异常,包括:

  • 帧丢失:发送 ①②③④,收到 ①②④

  • 帧重复:发送 ①②③④,收到 ①②③③④

  • 帧失序:发送 ①②③④,收到 ①③②④

处理帧错需要可靠传输机制(确认、重传、序号等),详见 流量控制与可靠传输机制

Tip

  • 差错控制(位错)≠ 可靠传输(帧错):前者管"帧里比特对不对",后者管"帧有没有丢/重/乱"

  • 数据链路层差错控制只针对相邻结点;跨网络的可靠传输通常由 TCP 完成

  • 广播信道还需要 介质访问控制,点对点信道通常不需要