第14篇:广播域与冲突域:交换机 vs 集线器
关键词:广播域、冲突域、集线器、交换机、VLAN、CSMA/CD、半双工、全双工、广播风暴
一、引言
在网络基础面试中,"交换机和集线器的区别"是必考题。答案往往笼统地说"交换机隔离冲突域,集线器不隔离"。但这个答案没有触及本质:什么是广播域?什么是冲突域?为什么需要隔离它们?隔离后对网络性能有什么影响?本文将从底层原理出发,用直观的方式讲清楚这两个域的概念,以及交换机和集线器在处理数据帧时的本质差异。
二、核心概念
2.1 冲突域(Collision Domain)
冲突域是指在同一时间内,如果两个设备同时发送数据,会发生数据碰撞(冲突)的区域。
| 特性 | 说明 |
|---|---|
| 产生原因 | 共享介质上多个设备同时发送导致信号叠加 |
| 检测机制 | CSMA/CD(载波监听多路访问/冲突检测) |
| 影响 | 冲突导致帧损坏,需要重传,降低有效带宽 |
| 隔离方式 | 交换机的每个端口是一个独立的冲突域 |
2.2 广播域(Broadcast Domain)
广播域是指广播帧能够到达的所有设备的集合。
| 特性 | 说明 |
|---|---|
| 产生原因 | 目的 MAC 地址为 FF:FF:FF:FF:FF:FF 的帧被泛洪到所有端口 |
| 影响 | 广播过多占用带宽,严重时引发广播风暴 |
| 隔离方式 | 路由器(三层设备)隔离广播域;交换机通过 VLAN 隔离广播域 |
| 默认范围 | 一个未划 VLAN 的交换机所有端口属于同一广播域 |
2.3 集线器(Hub)的工作原理
集线器工作在物理层(OSI 第一层),对数据毫无认知。
| 行为 | 说明 |
|---|---|
| 收到帧 | 将信号放大后从所有其他端口转发 |
| 智能程度 | 无,不识别 MAC 地址、IP 地址、VLAN 标签 |
| 双工模式 | 半双工,同一时刻只能发送或接收 |
| 冲突域 | 所有端口在同一个冲突域 |
| 广播域 | 所有端口在同一个广播域 |

2.4 交换机(Switch)的工作原理
交换机工作在数据链路层(OSI 第二层),能识别 MAC 地址。
| 行为 | 说明 |
|---|---|
| 学习 | 从入端口记录源 MAC 地址到 MAC 地址表 |
| 转发 | 查 MAC 地址表,单播帧从指定端口发出 |
| 泛洪 | 未知单播或广播帧从所有同 VLAN 端口发出 |
| 双工模式 | 全双工,可同时发送和接收 |
| 冲突域 | 每个端口是一个独立的冲突域 |
| 广播域 | 默认所有端口属于同一广播域,VLAN 可进一步划分 |

三、技术细节
3.1 集线器 vs 交换机:域的隔离对比
| 维度 | 集线器(Hub) | 交换机(Switch) |
|---|---|---|
| OSI 层级 | 物理层(L1) | 数据链路层(L2) |
| 冲突域数量 | 1 个(所有端口共享) | N 个(每个端口 1 个) |
| 广播域数量 | 1 个 | 1 个(未划 VLAN)/ 多个(划 VLAN) |
| 转发方式 | 信号放大后转发到所有端口 | 查 MAC 表精准转发 |
| 带宽利用 | 共享带宽 | 独享带宽 |
| 双工模式 | 半双工 | 全双工 |
| 碰撞处理 | CSMA/CD 退避重传 | 全双工无碰撞 |
| 当前应用 | 已基本淘汰 | 主流设备 |
3.2 VLAN 对广播域的隔离
交换机默认所有端口属于同一个广播域。通过 VLAN,一个交换机可以划分成多个独立的广播域。
| 配置前 | 配置后 |
|---|---|
| 所有端口在 VLAN 1 | VLAN 10、VLAN 20、VLAN 30 各自独立 |
| 广播帧到达所有端口 | 广播帧只在同 VLAN 内泛洪 |
| 一台终端广播影响全网 | 广播被限制在所属 VLAN 内 |
数值示例:假设一台 24 口交换机,12 台 PC 在 VLAN 10,12 台 PC 在 VLAN 20。
| 指标 | 不分 VLAN | 划分 VLAN 后 |
|---|---|---|
| 广播域数量 | 1 个(24 台 PC) | 2 个(各 12 台 PC) |
| 冲突域数量 | 24 个 | 24 个(不变) |
| 单次广播影响范围 | 24 台 PC | 12 台 PC |
| ARP 泛洪影响 | 全部 24 台 | 仅同 VLAN 12 台 |
3.3 CSMA/CD 与全双工
| 模式 | CSMA/CD | 说明 |
|---|---|---|
| 半双工 | 需要 | 同一时刻只能发送或接收,需要检测冲突 |
| 全双工 | 不需要 | 同时收发,点对点专用链路,不会冲突 |
现代以太网交换机端口均为全双工,CSMA/CD 已被淘汰。但在理解冲突域的概念时,仍需了解 CSMA/CD 的历史背景。
3.4 路由器隔离广播域
| 设备 | 隔离冲突域 | 隔离广播域 | 说明 |
|---|---|---|---|
| 集线器 | 否 | 否 | 所有端口共享同一冲突域和广播域 |
| 交换机 | 是(每端口) | 否(默认) | 每端口独立冲突域,广播域需 VLAN 划分 |
| 路由器 | 是(每端口) | 是(每接口) | 每个接口独立冲突域和广播域 |
四、实战配置/案例分析
4.1 案例一:通过抓包观察广播域范围
实验场景:验证 VLAN 划分前后广播域的变化。
# ========== 划分 VLAN 前 ==========
# 交换机所有端口在 VLAN 1
# PC1(GE0/0/1)ping 一个不存在的 IP 192.168.1.200
# PC1 发送 ARP 请求,目的 MAC = FF:FF:FF:FF:FF:FF
# 在 GE0/0/24 端口抓包,结果:
# 能看到 PC1 发出的 ARP 请求 → 广播到达所有端口
# ========== 划分 VLAN 后 ==========
# GE0/0/1 加入 VLAN 10,GE0/0/24 加入 VLAN 20
[SW] interface GigabitEthernet 0/0/1
[SW-GigabitEthernet0/0/1] port link-type access
[SW-GigabitEthernet0/0/1] port default vlan 10
[SW-GigabitEthernet0/0/1] quit
[SW] interface GigabitEthernet 0/0/24
[SW-GigabitEthernet0/0/24] port link-type access
[SW-GigabitEthernet0/0/24] port default vlan 20
[SW-GigabitEthernet0/0/24] quit
# PC1 再发送 ARP 请求
# 在 GE0/0/24 端口抓包,结果:
# 看不到 PC1 发出的 ARP 请求 → 广播被 VLAN 隔离
4.2 案例二:广播异常现象与排查
故障描述:某办公楼网络突然变慢,所有终端无法正常上网,交换机 CPU 利用率接近 100%。
排查过程:
# 步骤1:检查交换机 CPU
<HUAWEI> display cpu-usage
CPU Usage: 95% ← 异常高
# 步骤2:检查接口统计
<HUAWEI> display interface GigabitEthernet 0/0/1
Input:
Broadcast packets: 1250000 ← 广播包数量异常大且快速增加
Multicast packets: 850000
Output:
Broadcast packets: 1180000
# 步骤3:定位广播源
# 通过端口逐段关闭排查,发现关闭 GE0/0/8 后广播包骤降
# GE0/0/8 下接的 PC 中了病毒,不断发送广播包
# 临时处理:关闭端口
[HUAWEI] interface GigabitEthernet 0/0/8
[HUAWEI-GigabitEthernet0/0/8] shutdown
[HUAWEI-GigabitEthernet0/0/8] quit
# 永久措施:
# 1. 划分 VLAN 限制广播范围
# 2. 配置广播风暴抑制
[HUAWEI] interface GigabitEthernet 0/0/8
[HUAWEI-GigabitEthernet0/0/8] storm-control broadcast min-rate 1000 max-rate 10000
[HUAWEI-GigabitEthernet0/0/8] quit
# # 当广播流量超过 10000 pps 时开始抑制(限速),低于 1000 pps 时停止抑制(防震荡)
4.3 案例三:交换机端口数量与域的数量
问题:一台 48 口交换机,配置了 4 个 VLAN(VLAN 10/20/30/40),每个 VLAN 各 12 个端口。请问有多少个冲突域和广播域?
| 域类型 | 数量 | 计算方式 |
|---|---|---|
| 冲突域 | 48 个 | 每个端口 1 个冲突域 = 48 |
| 广播域 | 4 个 | 每个 VLAN 1 个广播域 = 4 |
4.4 案例四:广播风暴抑制配置
# ========== 在接口视图下配置风暴抑制(推荐) ==========
[HUAWEI] interface GigabitEthernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] storm-control broadcast min-rate 1000 max-rate 10000
[HUAWEI-GigabitEthernet0/0/1] storm-control multicast min-rate 500 max-rate 5000
[HUAWEI-GigabitEthernet0/0/1] storm-control unknown-unicast min-rate 500 max-rate 5000
[HUAWEI-GigabitEthernet0/0/1] quit
# ========== 查看风暴抑制状态 ==========
<HUAWEI> display storm-control interface GigabitEthernet 0/0/1
GigabitEthernet0/0/1:
Broadcast : [1000, 10000] pps (Suppressed: 15000 packets)
Multicast : [500, 5000] pps (Suppressed: 0 packets)
Unknown-Unicast : [500, 5000] pps (Suppressed: 0 packets)
注意:风暴抑制通常在接口视图下逐端口配置;不同 VRP 版本对
min-rate/max-range与threshold两种语法的支持情况不同,建议以实际设备版本的手册为准。
五、总结
| 概念 | 定义 | 隔离设备 |
|---|---|---|
| 冲突域 | 同一时间两个设备发送会冲突的区域 | 交换机(每端口) |
| 广播域 | 广播帧能到达的所有设备集合 | 路由器(每接口)、交换机(每 VLAN) |
| 设备 | 冲突域 | 广播域 | 典型应用 |
|---|---|---|---|
| 集线器 | 1 个(全共享) | 1 个 | 已淘汰 |
| 交换机(无 VLAN) | N 个(每端口) | 1 个 | 小型网络 |
| 交换机(有 VLAN) | N 个(每端口) | V 个(每 VLAN) | 主流方案 |
| 路由器 | N 个(每接口) | N 个(每接口) | 跨网段互联 |
| 排错要点 | 对应命令 |
|---|---|
| 广播包数量异常 | display interface X 查看 Broadcast packets |
| CPU 利用率异常 | display cpu-usage |
| VLAN 划分是否生效 | display vlan / display port vlan X |
| 风暴抑制是否生效 | display storm-control interface X |
思考
- 如果一台 24 口交换机没有配置任何 VLAN(所有端口在默认 VLAN 1),连接了 24 台 PC,有多少个冲突域?多少个广播域?
- 为什么在万兆以太网(10Gbps)中,不再使用 CSMA/CD?
- 如果一个 VLAN 内的终端数量从 10 台增加到 1000 台,广播域的大小变化会对网络产生什么影响?有什么解决方案?
下篇预告:第15篇:环路是怎么产生的:一次广播风暴故障实录