:::tips 交换机是集线器的进阶版本

  • 集线器在使用时会将接收到的数据发往整个 LAN 中除源主机之外的其他全部主机
  • 交换机会配合 ARP 协议获取 MAC 地址,然后将协议数据包发往指定主机

:::

ARP

我们已经了解了简单的知识,那么交换机时如何知道目标主机在哪个位置的?

  1. 我们知道交换机上有很多的接口,这些接口是用于插网线的并连接电脑,一个接口只能对应一个电脑
  2. 交换机会维护一个 CAM 表,这个表中存放的内容为 交换机的接口 以及 对应电脑的 MAC 地址
  1. # 查看一个交换机的 CAM 表
  2. Switch>enable
  3. Switch#show mac-address-table
  4. Mac Address Table
  5. -------------------------------------------
  6. Vlan Mac Address Type Ports
  7. ---- ----------- -------- -----
  8. 1 0001.4298.a262 DYNAMIC Fa0/4
  9. 1 00d0.9752.8936 DYNAMIC Fa0/2
  10. 1 00e0.b059.0a97 DYNAMIC Fa0/1
  • 交换机中记录的是 发送方 的 MAC 地址和接口
  • CAM 表中数据每个一段时间就会进行维护,删除一些超时的电脑记录
  • 我们的电脑也会存储一些 MAC 地址

扩展

交换机是如何知道目标 MAC 地址的?

环境: 网络刚启动,交互机 CAM 表为空,以 Ping 为例

A : 自己主机

B :目标主机

  1. A 往 B 发送消息,因为 A 也不知道 B 的 MAC 地址,那么 A 就会使用 ARP 协议,进行广播
    集线器%26交换机 - 图1
  2. 交换机收到 ARP 帧后,查看帧发现目标是 FFFF.FFFF.FFFF ,说明是广播,就会向所有的接口发送该包,同时 交换机会记录 A 主机的 MAC 地址
  3. LAN 中主机收到消息后,就会查看目标 IP 地址是不是和自己的 IP 地址匹配,如果匹配则返回一个 ARP 响应包,这时候就不会发送广播包了,因为从请求包中我们就可以知道 A 的 MAC 地址
  4. B 发送 ARP 响应,交互机收到后记录 B 的 MAC 地址,同时发现 A 的 MAC 地址在 CAM 中有记录就发送给 A 主机