第14篇:广播域与冲突域——交换机 vs 集线器
一、写在前面
在计算机网络的教材里,冲突域和广播域是两个绕不开的基础概念。很多新工程师觉得抽象,但这两个概念恰恰解释了:
- 为什么集线器(Hub)被淘汰了
- 为什么交换机能提升网络性能
- 为什么要划分 VLAN
本文用最直观的方式讲清楚这两个概念,以及它们对网络设计的影响。
二、冲突域
2.1 什么是冲突域
冲突域 = 两台设备同时发送数据就会"撞车"的范围。
想象一个会议室里只有一部电话,两个人同时对着话筒说话——声音混在一起谁都听不清。这就是冲突。
2.2 在集线器(Hub)上
集线器是物理层设备,它没有任何智能:
[Hub]
╱ │ ╲
PC-A PC-B PC-C
PC-A 发数据 → Hub 复制到所有端口 → PC-B、PC-C 都收到
如果 PC-A 和 PC-B 同时发送:
→ 信号在 Hub 内部碰撞 → 数据损坏 → 所有设备都要"退避"重发
集线器的所有端口都在一个冲突域里。
| 设备数 | 效率 |
|---|---|
| 2 台 | 还行,碰撞概率低 |
| 10 台 | 碰撞明显,效率下降 |
| 50 台 | 几乎无法正常工作 |
2.3 在交换机上
交换机每个端口都是独立的冲突域:
[Switch]
╱ │ ╲
PC-A PC-B PC-C
PC-A → 发数据到 PC-C
→ 交换机只在 G0/0/1 和 G0/0/3 之间建立数据通路
→ G0/0/2 上的 PC-B 可以同时发送,互不干扰
交换机的每个端口是一个独立的冲突域。
2.4 冲突域大小的对比
Hub: ┌──────────────────────┐
│ 一个冲突域 │
│ PC-A PC-B PC-C PC-D │
└──────────────────────┘
所有设备共享带宽
Switch: ┌──┐ ┌──┐ ┌──┐ ┌──┐
│A │ │B │ │C │ │D │ ← 每个端口独立冲突域
└──┘ └──┘ └──┘ └──┘
每个设备独享端口带宽
2.5 CSMA/CD(带冲突检测的载波监听多点接入)
这是集线器时代解决冲突的协议:
PC 要发送数据
│
▼
监听信道是否空闲
│
├── 空闲 → 发送数据
└── 忙 → 等待随机时间再试
如果在发送过程中检测到碰撞:
│
▼
发送阻塞信号 → 所有设备知道发生了碰撞
│
▼
随机退避一段时间 → 重传
在全双工交换机网络中,CSMA/CD 已经不需要了,因为每个端口是一个独立的冲突域,不存在碰撞的可能。
三、广播域
3.1 什么是广播域
广播域 = 一个广播帧能到达的所有设备集合。
广播帧(目的 MAC = FF-FF-FF-FF-FF-FF)会被交换机泛洪到所有端口(除了接收端口)。
[Switch]
│ │ │
PC-A PC-B PC-C
PC-A 发 ARP 广播 → 交换机泛洪 → PC-B、PC-C 都收到
3.2 交换机默认的广播域
一台交换机(或者说同一个 VLAN)的所有端口在同一个广播域中。
3.3 VLAN 分割广播域
VLAN 可以分割广播域:
[三层交换机]
VLAN 10 VLAN 20
│ │ │ │
PC1 PC2 PC3 PC4
同一个广播域 另一个广播域
PC1 发广播 → 只到 PC2 → 不到 PC3
四、核心对比表
| 对比项 | 冲突域 | 广播域 |
|---|---|---|
| 定义 | 可能发生数据冲突的范围 | 广播帧能到达的范围 |
| 集线器 | 所有端口 = 1 个冲突域 | 所有端口 = 1 个广播域 |
| 二层交换机 | 每个端口 = 1 个冲突域 | 所有端口 = 1 个广播域 |
| VLAN | 每个端口独立 | 每个 VLAN = 1 个广播域 |
| 三层设备 | 每个端口独立 | 隔离广播域 |
用设备来记忆
冲突域 广播域
Hub 1 1
Switch 每端口独立 1(同 VLAN)
VLAN 每端口独立 每个 VLAN 独立
Router 每端口独立 每个接口独立
五、为什么这很重要?
5.1 冲突域的影响
| 网络设备 | 冲突域数量 | 对性能的影响 |
|---|---|---|
| 集线器 Hub | 1 个(所有设备共享) | 设备越多 → 碰撞越多 → 效率指数下降 |
| 交换机 Switch | 每端口独立 | 全双工无碰撞 → 每个设备独享带宽 |
结论:Hub 被淘汰的根本原因就是不能隔离冲突域。
5.2 广播域的影响
广播本身是必要的(ARP、DHCP 都依赖广播),但广播太多就是灾难:
| 广播域大小 | 影响 |
|---|---|
| 小(几十台) | 正常,广播流量占比 <5% |
| 中(几百台) | CPU 负载上升,广播占比 5~15% |
| 大(上千台) | 广播风暴风险,网络几乎不可用 |
解决广播域过大的办法就是划分 VLAN。
5.3 一条路走到三层
三层设备(路由器、三层交换机 VLANIF)天然隔离广播域:
VLAN 10 的广播 → 只在 VLAN 10 内
永远不可能跨过 VLANIF 接口到 VLAN 20
六、真实案例
案例:某企业 500 台 PC 在一个 VLAN 中
现象:下午上班高峰期网络极慢,ping 网关延迟 500ms~2000ms,ARP 广播满天飞
分析: - 500 台设备在同一个广播域 - 每台设备都会发送 ARP 请求 - 平均每秒几百个广播帧 - 所有设备的 CPU 都被广播中断占用
解决: - 将 500 台 PC 按部门划分为 5 个 VLAN(每个约 100 台) - 配置 VLANIF 三层转发 - 广播域缩小 5 倍,广播量降低 80%
七、思考
- 一台交换机有 24 个端口,接 24 台 PC,问冲突域和广播域的数量分别是多少?
- 两台交换机通过 Trunk 互联,各接 10 台 PC,都在同一 VLAN 里,广播域有几个?
- 一台集线器接 10 台电脑,当 2 台同时发送数据会发生什么?
- 为什么交换机不需要 CSMA/CD 协议?
- 一个 VLAN 里的设备数量有没有上限?实际建议的上限是多少?
- 广播域太大有什么危害?有哪些解决办法(至少列出 2 种)?
下篇预告:第15篇《环路是怎么产生的_一次广播风暴故障实录》——通过真实故障案例,理解环路产生的原因和广播风暴的危害。