复习位置:计算机网络 → 第3章 数据链路层 → 以太网交换机 / 共享式以太网
这一部分的核心不是背定义,而是把下面这条逻辑链串起来:
集线器 Hub:大家共享一条路 ↓ 交换机 Switch:每个端口一条独立路 ↓ 交换机根据 MAC 地址学习"主机在哪个端口" ↓ 已知目的地址精准转发,未知目的地址泛洪408重点:交换机特点、MAC地址自学习、转发规则、冲突域/广播域、共享式与交换式以太网对比、CSMA/CD、STP。
一、以太网交换机到底是什么
以太网交换机工作在:
数据链路层
所以又称:
二层交换机
它本质上是:
一个多端口网桥
最重要的作用:
把一个大的冲突域
划分成多个更小的冲突域
二、为什么交换机比集线器效率高
先看集线器 Hub。
假设有4台主机:
A ─┐
B ─┼── Hub
C ─┼
D ─┘
Hub工作在物理层,只会:
收到电信号
-> 放大
-> 从其他端口全部转发
所以A和B通信时:
C、D也能"听到"
并且大家共享同一个介质。
结果:
同一冲突域
共享带宽
半双工
需要CSMA/CD
换成交换机
A ─┐
B ─┼── Switch
C ─┼
D ─┘
交换机可以识别:
MAC地址
并知道:
A在哪个端口
B在哪个端口
因此A发给B时,交换机可以只把帧送给B。
所以:
不同端口之间可以并行通信
每个端口拥有独立带宽
通常支持全双工
三、交换机的5个高频特点
教材这一页可以压成5条。
1. 交换机端口直接连接主机时通常全双工
例如:
主机A ←────→ 交换机
双方可以:
同时发送和接收
因此:
全双工交换式以太网
不需要CSMA/CD
2. 每个交换机端口都是独立冲突域
例如:
A ── port1
B ── port2
C ── port3
可以理解为:
port1 一个冲突域
port2 一个冲突域
port3 一个冲突域
因此:
交换机能够隔离冲突域
但注意:
普通二层交换机不能隔离广播域
这是408高频陷阱。
3. 交换机支持多对主机同时通信
例如:
A <----> B
同时
C <----> D
两对通信可以并行进行。
这叫:
交换机具有并行性
4. 交换机即插即用,会自学习
刚开机时:
MAC地址表可能为空
但它会根据收到的帧自动学习:
MAC地址 <-> 端口
不需要管理员手工把所有主机位置录进去。
5. 交换机内部交换速度快
交换机通常使用专用交换芯片,能够高速完成:
查表
转发
过滤
四、共享带宽 vs 独占带宽
假设链路速率均为:
10 Mb/s
集线器网络
如果有N台主机共享:
总带宽约10 Mb/s
平均下来:
每台主机只能分享其中一部分
交换机网络
每个端口都可以有:
10 Mb/s
例如一个N端口交换机:
端口1:10 Mb/s
端口2:10 Mb/s
...
端口N:10 Mb/s
因此交换机的总吞吐能力可以远大于共享式以太网。
五、交换机的两种转发方式
这一部分主要考:
直通交换
存储转发
六、直通交换:先看目的地址就转发
直通交换:
帧还没有完整收到
↓
交换机只要已经读到目的MAC地址
↓
立刻决定输出端口
↓
开始转发
流程:
收到帧头
↓
读目的MAC
↓
查交换表
↓
马上转发
优点
转发延迟小
因为:
不用等整帧到齐
缺点
交换机没有完整收到帧,因此可能:
来不及做完整FCS检验
结果:
坏帧也可能被转发出去
所以:
直通交换:
快,但可靠性相对低
七、存储转发:整帧收完再转
存储转发:
完整接收整个帧
↓
缓存
↓
做差错检测
↓
确认正确
↓
查目的MAC
↓
转发
优点
可靠性高
可以先:
检查FCS
还可以:
进行速率匹配
支持不同速率端口
例如:
100 Mb/s端口
↓
交换机
↓
10 Mb/s端口
交换机可以先缓存,再以另一速率发送。
缺点
延迟更大
因为必须:
等待整帧接收完毕
八、直通 vs 存储转发
| 对比 | 直通交换 | 存储转发 |
|---|---|---|
| 什么时候转发 | 读到目的MAC后 | 收完整帧后 |
| 延迟 | 小 | 较大 |
| 差错检测 | 不完整/较弱 | 可以完整检测 |
| 坏帧 | 可能转发 | 可直接丢弃 |
| 速率匹配 | 不适合 | 支持 |
| 协议转换 | 不适合 | 可以支持 |
一句话:
直通:快
存储转发:稳
九、交换机最核心:MAC地址自学习
交换机内部有一张表:
MAC地址表 / 交换表
例如:
|-------|----|
| MAC地址 | 端口 |
| A | 1 |
| B | 3 |
意思:
想找A -> 从端口1出去
想找B -> 从端口3出去
问题是:
交换机怎么知道A在1号口?
答案:
自己学。
十、学习规则只有一句话
交换机收到一个帧:
源MAC = A
入端口 = 1
交换机会记:
A -> 1
所以核心口诀:
学源地址
查目的地址
这八个字非常重要。
十一、完整转发流程
收到一个以太网帧后:
第1步:学习源MAC
第2步:查询目的MAC
第3步:决定转发方式
十二、情况1:目的MAC已知
例如交换表:
A -> 1
B -> 3
现在:
A从端口1发给B
交换机收到:
源MAC = A
目的MAC = B
入端口 = 1
先学习:
A -> 1
再查:
B -> 3
所以:
只从端口3转发
这叫:
精准转发 / 单播转发
十三、情况2:目的MAC未知
假设表里只有:
A -> 1
A发给B,但交换机暂时不知道B在哪。
那么:
查不到B
怎么办?
交换机执行:
泛洪 Flooding
即:
除入端口外
向所有其他端口发送
例如:
从port1收到
则发往:
port2
port3
port4
十四、未知单播为什么要泛洪
因为交换机只知道:
"B不在我表里"
却不知道:
"B究竟在哪个端口"
所以最保险的方法:
所有可能出口都试一遍
只要B存在:
它就能收到
其他主机收到后发现:
目的MAC不是自己
便丢弃。
十五、A和B通信一次,交换机怎么学会两个人的位置
初始:
交换表为空
连接:
A -> port1
C -> port2
B -> port3
D -> port4
第一步:A发送给B
交换机收到:
源A
入端口1
立即学习:
A -> 1
此时不知道B:
未知单播
所以泛洪:
port2、port3、port4
最终:
B收到
C、D丢弃
第二步:B回复A
交换机收到:
源B
入端口3
学习:
B -> 3
现在查目的A:
A -> 1
因此:
只向port1精准转发
最终交换表:
A -> 1
B -> 3
这就是完整的:
自学习过程
十六、情况3:广播帧
广播MAC:
FF:FF:FF:FF:FF:FF
看到广播帧:
交换机不需要查表
直接:
除入端口外全部转发
即:
泛洪
十七、组播帧
教材基础题中,如果没有专门的组播转发表机制,可以先理解成:
通常执行类似泛洪处理
408基础题重点还是:
单播
广播
未知单播
十八、一个容易漏掉的特殊情况
假设:
目的MAC查表发现
目的主机也在入端口这一侧
那么交换机发现:
没有必要再从任何其他端口转发
于是:
过滤 / 丢弃该帧
经典情形:
交换机某端口连接Hub
Hub下面挂A、B
A发给B
交换机如果已经知道:
A和B都在同一个端口后面
就不会把帧转发到其他交换机端口。
十九、交换表为什么要老化
主机位置可能变化。
例如:
A原来接port1
后来拔线接到port4
如果交换机永远保留:
A -> 1
就错了。
因此交换表中的动态表项会有:
老化时间
长期没有更新:
自动删除
随后再次收到A的帧时重新学习。
二十、交换机不能解决什么:广播环路
交换机能够隔离:
冲突域
但不能天然隔离:
广播域
如果多个交换机之间存在冗余链路:
SW1 ----- SW2
| |
└-- SW3 --┘
形成环路后,广播帧可能:
无限循环
导致:
广播风暴
二十一、STP是干什么的
STP:
Spanning Tree Protocol
生成树协议
目标:
保留物理冗余
但在逻辑上阻塞部分端口
形成一棵无环生成树
例如物理上:
SW1 ----- SW2
| |
└-- SW3 --┘
逻辑上暂时阻塞一条:
SW1 ----- SW2
|
|
SW3
这样就没有环。
如果主链路故障:
STP可以重新激活备用链路
所以:
STP解决交换网络中的二层环路问题
二十二、共享式以太网是什么
共享式以太网通常以:
集线器 Hub
为中心。
例如:
Hub
/ | \
A B C
所有主机:
共享同一物理传输介质
共享总带宽
处于同一冲突域
二十三、Hub工作在哪一层
Hub:
物理层
它不理解:
MAC地址
也没有:
MAC转发表
收到比特流后只做:
放大
整形
转发到其他端口
所以它属于:
"无脑转发"
二十四、为什么Hub必须使用CSMA/CD
因为:
所有主机共享介质
假如A和B同时发送:
会发生碰撞
所以必须:
CSMA/CD
而且通信方式:
半双工
二十五、Hub的冲突域和广播域
一个Hub连接的所有主机:
整个网络 = 1个冲突域
同时:
也是1个广播域
所以:
Hub既不隔离冲突域
也不隔离广播域
二十六、交换机的冲突域和广播域
交换机:
每个端口一个冲突域
所以:
隔离冲突域
但是普通二层交换机:
所有端口仍属于一个广播域
所以:
不隔离广播域
如果要隔离广播域,通常想到:
路由器
VLAN
二十七、Hub vs Switch:408核心表
|---------|-----------|--------------|
| 对比 | Hub共享式以太网 | Switch交换式以太网 |
| 工作层 | 物理层 | 数据链路层 |
| 是否识别MAC | 否 | 是 |
| 转发表 | 无 | 有 |
| 通信模式 | 半双工 | 通常全双工 |
| 带宽 | 共享 | 每端口独占 |
| CSMA/CD | 需要 | 全双工时不需要 |
| 冲突域 | 所有端口一个 | 每端口一个 |
| 广播域 | 一个 | 仍然一个 |
| 普通单播 | 向其他端口全部复制 | 查表精准转发 |
| 并行通信 | 不支持 | 支持 |
| 安全性 | 较低 | 相对较高 |
二十八、一个特殊陷阱:交换机端口连接Hub
教材专门强调了这个情况。
A ─┐
B ─┼── Hub ─── Switch
C ─┘
虽然网络里有交换机,但:
Hub这一侧
A、B、C仍然:
共享一个冲突域
所以:
仍然需要CSMA/CD
仍然只能半双工
因此不要机械记:
"有交换机就永远没有冲突"
真正应该判断:
交换机端口后面直接连一台主机?
还是接了共享式设备Hub?
二十九、MAC自学习题的固定解题模板
408遇到交换机转发表题,只做三步:
① 学源
② 查目的
③ 决定转发
具体:
收到:
源MAC = S
目的MAC = D
入端口 = P
第一步:
更新:
S -> P
第二步查:
D在不在MAC表?
第三步:
已知D
-> 指定端口转发
未知D
-> 除入端口外泛洪
广播D
-> 除入端口外泛洪
D对应的端口就是入端口
-> 不向其他端口转发
三十、这部分最容易出现的思维漏洞
漏洞1:交换机收到帧先查目的地址
顺序不完整。
交换机应该先利用:
源MAC
学习主机位置。
固定:
先学源
再查目的
漏洞2:未知目的MAC就丢弃
错。
未知单播:
泛洪
而不是:
直接丢弃
漏洞3:交换机隔离广播域
错。
普通二层交换机:
隔离冲突域
不隔离广播域
漏洞4:交换机网络一定不需要CSMA/CD
不严谨。
如果:
交换机端口直接连接主机
并采用全双工
不需要。
但交换机端口如果连接:
Hub
Hub侧仍然是:
共享介质
半双工
需要CSMA/CD
漏洞5:Hub和交换机只是速度不同
错。
根本区别是:
Hub不识别MAC,只复制比特
Switch识别MAC,可以学习和选择性转发
三十一、教材标注的408高频方向
你这几页教材已经标出了主要真题方向:
2009:
交换机基于MAC地址转发
2013:
直通交换转发时延
2014 / 2016 / 2021:
MAC地址自学习过程
2015:
交换机特点
2016:
共享式和交换式以太网区别
2020 / 2022:
网络设备对冲突域、广播域的影响
因此强化阶段优先级建议:
第一:
MAC自学习 + 转发
第二:
Hub / Switch
冲突域 / 广播域
第三:
全双工 + CSMA/CD
第四:
直通 / 存储转发
第五:
STP
三十二、最后压成一张脑图
以太网
|
┌──────────┴──────────┐
| |
Hub Switch
共享式 交换式
| |
物理层 数据链路层
| |
不认识MAC 认识MAC
| |
全端口复制 MAC表转发
| |
一个冲突域 每端口冲突域
| |
半双工 通常全双工
| |
CSMA/CD必须 全双工不需要
| |
└──── 都不天然隔离广播域 ────┘
交换机内部再记:
收到帧
↓
学习源MAC
↓
查目的MAC
↓
┌───────────────┐
│ 已知 -> 精准转发 │
│ 未知 -> 泛洪 │
│ 广播 -> 泛洪 │
└───────────────┘
三十三、考前30秒版本
Hub:
物理层、半双工、共享带宽、
一个冲突域、需要CSMA/CD、
收到就向其他端口复制。
Switch:
数据链路层、通常全双工、
每端口独立带宽、隔离冲突域、
不隔离广播域。
交换机转发:
先学源MAC,再查目的MAC。
目的已知:
精准转发。
目的未知:
除入端口外泛洪。
广播:
除入端口外泛洪。
直通:
快,但可能转坏帧。
存储转发:
慢一点,但能检错、支持速率匹配。
STP:
解决二层交换网络环路。
只要这套逻辑真正串起来,这部分选择题基本就是判断题。