:::tips 交换机是集线器的进阶版本
- 集线器在使用时会将接收到的数据发往整个 LAN 中除源主机之外的其他全部主机
- 交换机会配合 ARP 协议获取 MAC 地址,然后将协议数据包发往指定主机
:::
我们已经了解了简单的知识,那么交换机时如何知道目标主机在哪个位置的?
- 我们知道交换机上有很多的接口,这些接口是用于插网线的并连接电脑,一个接口只能对应一个电脑
- 交换机会维护一个 CAM 表,这个表中存放的内容为 交换机的接口 以及 对应电脑的 MAC 地址
# 查看一个交换机的 CAM 表
Switch>enable
Switch#show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0001.4298.a262 DYNAMIC Fa0/4
1 00d0.9752.8936 DYNAMIC Fa0/2
1 00e0.b059.0a97 DYNAMIC Fa0/1
- 交换机中记录的是 发送方 的 MAC 地址和接口
- CAM 表中数据每个一段时间就会进行维护,删除一些超时的电脑记录
- 我们的电脑也会存储一些 MAC 地址
扩展
交换机是如何知道目标 MAC 地址的?
环境: 网络刚启动,交互机 CAM 表为空,以 Ping 为例
A : 自己主机
B :目标主机
- A 往 B 发送消息,因为 A 也不知道 B 的 MAC 地址,那么 A 就会使用 ARP 协议,进行广播
- 交换机收到 ARP 帧后,查看帧发现目标是 FFFF.FFFF.FFFF ,说明是广播,就会向所有的接口发送该包,同时 交换机会记录 A 主机的 MAC 地址
- LAN 中主机收到消息后,就会查看目标 IP 地址是不是和自己的 IP 地址匹配,如果匹配则返回一个 ARP 响应包,这时候就不会发送广播包了,因为从请求包中我们就可以知道 A 的 MAC 地址
- B 发送 ARP 响应,交互机收到后记录 B 的 MAC 地址,同时发现 A 的 MAC 地址在 CAM 中有记录就发送给 A 主机