Appearance
题目
某以太网拓扑及交换机当前转发表如下图所示,主机 00-e1-d5-00-23-a1 向主机 00-e1-d5-00-23-c1 发送 1 个数据帧,主机 00-e1-d5-00-23-c1 收到该帧后,向主机 00-e1-d5-00-23-a1 发送 1 个确认帧,交换机对这两个帧的转发端口分别是( )。
交换机当前转发表:
| 目的地址 | 端口 |
|---|---|
| 00-e1-d5-00-23-b1 | 2 |
错因
A
忽略了 c1 还没被学到——以为既然图里 c1 接在端口 3,交换机就"应该"知道 c1 → 端口 3,于是直接转发到 {3}。错的根源:交换机的转发表是自学习得到的,只有看到过哪个 MAC 出现在哪个端口才会记上。当前转发表里只有 b1 → 2 一条——c1 是"未知目的地址",必须泛洪到除入口外的所有端口。
C
第一个 {2,3} 对(c1 是未知,泛洪到入口 1 之外的端口 2 和 3)。但第二个 {1,2} 错了——c1 → a1 的确认帧到达时,交换机表里有什么?让我们追溯:
- 第一帧 a1 → c1 从端口 1 进入:交换机自学习 a1 → 端口 1,加入表
- 第一帧泛洪出去:a1 → c1 经过端口 2 和 3 转发出去
- 现在表里有:a1 → 1, b1 → 2 两条
- 第二帧 c1 → a1 从端口 3 进入:交换机查表 → a1 在端口 1 → 精确转发到 {1},不需要泛洪
选 C 把第二帧也当未知目的处理(泛洪到 {1, 2}),漏看了"a1 在第一帧时就被学到了"。
D
第一个 {1,2,3} 错——把"泛洪"理解成了"广播到所有端口(含入口)"。交换机泛洪的硬规则:发送端口除外——帧从端口 1 进来,泛洪只发往端口 2 和 3,不能再发回端口 1(否则就是无意义回声)。
总解析
交换机两条核心规则:
- 自学习:每收一帧,把 (源 MAC, 入口端口) 写入/更新转发表
- 转发决策:查表查目的 MAC——
- 已知 → 精确转发到对应端口(如果目的端口 = 入口,直接丢弃)
- 未知 → 泛洪(发往除入口外的所有端口)
逐帧追踪:
第一帧:a1 → c1(从端口 1 进)
- 自学习:表里加 a1 → 端口 1(如果已存在则刷新)
- 查表:c1 不在表里,未知目的 → 泛洪到端口 1 之外 = {2, 3}
此时转发表:
| MAC | 端口 |
|---|---|
| 00-e1-d5-00-23-b1 | 2 |
| 00-e1-d5-00-23-a1 | 1 |
第二帧:c1 → a1(从端口 3 进)
- 自学习:表里加 c1 → 端口 3
- 查表:a1 已在表里、端口 1 → 精确转发 = {1}
最终答案:第一帧转发到 {2, 3}、第二帧转发到 {1} = B。
理解要点:"交换机的智能"全靠两步联动——先自学习更新表、再查表决定转发。第二帧之所以能精确投递、不再泛洪,正是因为第一帧让交换机已经记住了 a1 在哪。这种"双向通信"模式是 408 真题最爱出的考点:a → b 时 b 还没被学到、要泛洪;b → a 时因为 a 在第一帧已被学到、直接精确转发。