计网链路层基本概念
数据链路层基本理念
数据链路层是五层协议中的第二层,它的核心使命是:在相邻节点之间的物理链路上,实现可靠的数据传输。
链路(Link):一条物理链路,无源
数据链路(Data Link):链路 + 通信协议
一个是物理层概念 一个是数据链路层概念
数据链路层的数据单元:帧(Frame)
两种信道类型:
|
信道类型 |
特点 |
典型协议 |
|
点对点信道 |
一对一通信 |
PPP 协议 |
|
广播信道 |
一对多,共享介质 |
CSMA/CD、以太网 |
2.数据链路层三大基本问题
封装成帧(Framing)
问题:物理层传输的是比特流,接收方怎么知道一帧从哪里开始、到哪里结束?
解决方案:在帧的头部和尾部加上帧定界符(特殊比特序列)
|
帧首部 (SOH) |
数据部分 |
帧尾部 (EOT) |
- 帧首部:SOH(Start of Header,ASCII 码 0x01)
- 帧尾部:EOT(End of Transmission,ASCII 码 0x04)
透明传输(Transparent Transmission)
问题:如果数据部分恰好出现了与帧定界符相同的比特序列,接收方会误以为帧结束了,怎么办?
解决方案:
|
方法 |
原理 |
应用 |
|
字节填充 |
在数据中的 SOH/EOT 前插入转义字符 ESC |
PPP 协议 |
|
零比特填充 |
每 5 个连续的 1 后插入一个 0 |
HDLC 协议 |
零比特填充法
发送方:数据中每出现连续 5 个"1",就在后面插入一个"0"
接收方:收到数据后,每连续 5 个"1"后面如果跟了一个"0",就去掉这个"0"
例子:假设原始数据为 0110111111111100,请写出零比特填充后的结果。
答案:011011111011111000(在第二个连续的 5 个 1 后插入一个 0,第三个连续的 5 个 1 之后也插入一个 0)
差错检测(Error Detection)
问题:传输过程中比特可能出错(0 变 1,1 变 0),怎么检测出来?
核心方法——循环冗余检验 CRC(Cyclic Redundancy Check):
CRC 计算步骤
1. 收发双方约定一个生成多项式 G(x),如 G(x) = x³ + x² + 1 → 除数 = 1101
2. 在原始数据后添加 r 个 0(r = G(x) 的最高次幂)
3. 用模 2 除法,将被除数 ÷ 除数,得到余数
4. 把余数拼接在原始数据后面,形成最终发送的帧
5. 接收方用同样的除数去除收到的帧,余数为 0 则无差错
CRC 的重要性质:
- CRC 只能检测差错,不能纠正差错
- CRC 不能做到 100% 可靠(理论上存在漏检可能)
- 实际使用中,漏检概率极低,可以认为数据链路层实现了接近无差错的传输
易错点:数据链路层使用 CRC 只做差错检测,不做纠错。纠错需要更复杂的编码(如海明码),但实际网络中更常用的是"检测到错误就丢弃,让上层重传"。

PPP 协议(点对点协议)
PPP(Point-to-Point Protocol)是点对点信道上最常用的数据链路层协议。
PPP 协议的三部分组成:
|
组成部分 |
功能 |
|
封装成帧 |
定义帧格式,用标志字段 0x7E 定界 |
|
链路控制协议 LCP |
建立、配置、测试链路连接 |
|
网络控制协议 NCP |
支持多种网络层协议(IP、IPX 等) |
PPP 帧格式:

3.广播信道与 CSMA/CD 协议
最核心、最经典的协议,以太网的基础。
广播信道的问题
在广播信道中,多个站点共享同一通信介质。谁先发?冲突了怎么办?
CSMA/CD 协议(载波监听多点接入/碰撞检测)
CSMA/CD 四个字拆解:
|
缩写 |
全称 |
含义 |
|
CS |
Carrier Sense |
载波监听——说话前先听有没有人在说 |
|
MA |
Multiple Access |
多点接入——多人共享同一信道 |
|
CD |
Collision Detection |
碰撞检测——发现自己也在说话时检测冲突 |
CSMA/CD 工作流程
1. 准备发送:先监听信道
2. 信道空闲 → 发送数据
3. 信道忙 → 继续监听,直到空闲
4. 发送过程中持续检测冲突
5. 如果检测到冲突 → 立即停止发送
6. 等待随机时间后重试(二进制指数退避算法)
争用期与最短帧长
争用期(Contention Period):一个站点发送数据后,最多经过 2τ(两倍端到端传播时延)就能知道自己是否发生了碰撞。
为什么是 2τ?
类比:A 在房间这一头说话,B 在房间那一头。A 开始说话时,声音传到 B 需要时间 τ。如果 B 在 A 的声音到达之前就开始说话,A 要到 B 的声音传回来(再一个 τ)才能发现冲突。所以 A 最多需要等 2τ 才能确认有没有冲突。
最短有效帧长——必考公式:
最短帧长 = 数据传输速率 × 争用期
= 数据传输速率 × 2τ
必考点:以太网规定最短帧长为 64 字节。如果数据不到 64 字节,需要填充到 64 字节。这是为了保证在发送完最短帧之前,发送方能够检测到可能发生的冲突。
二进制指数退避算法:
碰撞后,退避时间 = 争用期 × 随机数 r(0 ≤ r < 2ᵏ,k = min(重传次数, 10))
- 第 1 次碰撞:k=1,r ∈ {0,1},从两个时间槽中随机选
- 第 2 次碰撞:k=2,r ∈ {0,1,2,3}
- 以此类推,每次碰撞后选择范围翻倍
- 重传 16 次仍不成功 → 放弃,向上层报错
类比:几个人同时想发言,冲突了。第一次冲突后,大家抛硬币决定谁先说(1/2 概率);第二次冲突后,大家抽签从 1-4 号中选(更分散);冲突越多,等待时间越长,大大降低了再次冲突的概率。
4.MAC 帧格式(以太网 V2 标准)
|
字段 |
长度 |
说明 |
|
目的 MAC 地址 |
6 字节 |
接收方 MAC 地址 |
|
源 MAC 地址 |
6 字节 |
发送方 MAC 地址 |
|
类型 |
2 字节 |
上层协议类型(如 0x0800 = IPv4) |
|
数据 |
46~1500 字节 |
包含网络层数据报 |
|
FCS |
4 字节 |
CRC 校验 |
必考点——MAC 帧长度范围:
- 最短帧:64 字节(目的地址 6 + 源地址 6 + 类型 2 + 数据 46 + FCS 4 = 64)
- 最长帧:1518 字节(6 + 6 + 2 + 1500 + 4 = 1518)
MAC 地址(硬件地址/物理地址):
- 48 位(6 字节),全球唯一
- 前 24 位:厂商代码(OUI,IEEE 分配)
- 后 24 位:厂商自行分配
- 表示法:
00-1A-2B-3C-4D-5E或00:1A:2B:3C:4D:5E
5.以太网与交换机原理
集线器 vs 交换机 vs 路由器
|
设备 |
工作层 |
转发依据 |
转发方式 |
能否隔离冲突域 |
能否隔离广播域 |
|
集线器 Hub |
物理层 |
无(广播所有口) |
泛洪 |
否 |
否 |
|
交换机 Switch |
数据链路层 |
MAC 地址表 |
精确转发 |
是 |
否 |
|
路由器 Router |
网络层 |
IP 路由表 |
路由转发 |
是 |
是 |
冲突域 vs 广播域
- 冲突域:同一时间内只能有一台设备发送数据的区域。换了交换机以后,每个端口就是一个冲突域(冲突域变小)
- 广播域:广播帧能到达的范围。交换机不隔离广播域,路由器才隔离
- 交换机隔离冲突域,路由器隔离广播域
交换机工作原理
交换机的核心——自学习算法:
1. 收到帧后,记录源 MAC 地址和入端口 → 构建 MAC 地址表
2. 查目的 MAC 地址在 MAC 地址表中的出端口
3. 如果找到了 → 从对应端口转发(精确转发)
4. 如果没找到 → 向所有其他端口广播(泛洪)
交换机的转发模式:
|
模式 |
原理 |
优点 |
缺点 |
|
直通转发 |
收到目的地址后立即转发 |
延迟极低 |
不检查错误 |
|
存储转发 |
收完整帧、校验后再转发 |
过滤错误帧 |
延迟较高 |
|
无碎片转发 |
收 64 字节后转发 |
过滤冲突碎片 |
折中方案 |
6.虚拟局域网 VLAN
VLAN(Virtual Local Area Network) 是数据链路层的重要技术
为什么需要 VLAN?
问题:在传统交换机组成的局域网中,所有主机都在同一个广播域。广播帧会发送到所有主机,随着网络规模增大,广播风暴会严重影响性能。
VLAN 的解决方案:在交换机上逻辑划分多个广播域,同一个 VLAN 内的主机可以互相通信,不同 VLAN 之间不能直接通信(需要路由器或三层交换机转发)。
本质就是将需要广播帧发送的主机都放到一个WLAN里
VLAN 的核心特性
1.隔离广播域
每个 VLAN 都是独立广播域,广播报文仅在本 VLAN 内转发,不会跨 VLAN 扩散,减少广播流量,避免广播风暴。
2.提升网络安全性
二层下不同 VLAN 设备无法直接互通,跨 VLAN 通信必须通过三层路由设备或防火墙,可配置访问控制策略隔离业务。
3.逻辑灵活分组
设备分组不受物理位置、交换机限制,同一个 VLAN 的端口可分布在多台交换机上。
4.简化网络管理
同一部门员工即使分布在不同楼层、不同交换机,无需改动布线,只需配置 VLAN 即可划归同一逻辑网络,方便统一管理。
VLAN 的两种划分方式
|
划分方式 |
依据 |
原理 |
优点 |
缺点 |
|
基于端口 |
交换机端口 |
把端口划分到 VLAN |
简单、配置方便 |
换端口需要重新配置 |
|
基于 MAC 地址 |
主机 MAC 地址 |
按 MAC 地址归类 |
主机换端口自动识别 |
每台主机都要配置 |

上图分别是 目的地址 资源地址 类似 数据 FCS
Trunk 端口与 Access 端口
Access 端口
作用:用于连接电脑等终端设备,只能划分到单个 VLAN。帧格式:发送出去的帧不带 VLAN 标签。使用场景:交换机连接 PC、打印机、服务器等主机终端。
Trunk 端口
作用:用于交换机之间对接,可同时转发多个不同 VLAN 的数据。帧格式:传输帧携带 802.1Q 标签,本征 VLAN 流量除外。使用场景:交换机和交换机互联、交换机连接三层设备。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)