![路由与交换(第二版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/614/26179614/b_26179614.jpg)
1.5.1 构造和维护交换地址表
在交换机中,有一个交换地址表(思科交换机中称为CAM表),记录着主机MAC地址和该主机所连接的交换机端口号之间的对应关系。由交换机采用动态自学习源MAC地址的方法构造和维护此表。
(1)交换机在重新启动或手工清除MAC地址表后,MAC地址表没有任何MAC地址的记录,如图1-7所示。
![](https://epubservercos.yuewen.com/E4A7EE/14615891305755006/epubprivate/OEBPS/Images/img00034002.jpg?sign=1739526681-ONBIWdFckOew0MzCrQFNW5ghAEdquXm9-0-245423220c1551041fd503171fbd03d6)
图1-7 MAC地址空表
(2)假设主机A向主机C发送数据帧,因为现在MAC地址表为空,将此源MAC地址0260.8c01.1111和源端口E0记录到MAC地址表中,同时向其他所有的端口发送此数据帧(称为泛洪),如果某一主机在接收到此数据帧后,将提取目标MAC地址,并与自己网卡的MAC地址进行比较,如果相等,则接收此数据帧;否则丢弃此数据帧,如图1-8所示。
![](https://epubservercos.yuewen.com/E4A7EE/14615891305755006/epubprivate/OEBPS/Images/img00034003.jpg?sign=1739526681-8uZNEtraW2Z0otDIB2t3NjXsQtdaAZH8-0-2ca74a861a27f0939c5cb870e3a0c83a)
图1-8 向接收到的数据帧自学习源MAC地址
(3)如果主机C向主机A发送一个回帧(如使用ping命令时),则C的端口E2和MAC地址0260.8c01.2222放在MAC地址表中。当主机A、B、C、D都已经向其他主机发送过数据帧后,则MAC地址表将会有4条记录,如图1-9所示。
![](https://epubservercos.yuewen.com/E4A7EE/14615891305755006/epubprivate/OEBPS/Images/img00035001.jpg?sign=1739526681-ZBUAQYyFg2IV3PxltnFdtg4lz9yJQF36-0-322b669373c8245a7cf4236cd6693a7d)
图1-9 MAC地址表学习完毕
(4)下一次,当主机A再向主机C发送数据帧,交换机会提取数据帧的目的MAC地址,通过查找MAC地址表,发现有一条记录的MAC地址与目的MAC地址相等,而且知道此目的MAC所对应的端口为E2,交换机就打开E0与E2端口之间的通道,将数据帧从E0直接转发到E2端口,如图1-10所示。
![](https://epubservercos.yuewen.com/E4A7EE/14615891305755006/epubprivate/OEBPS/Images/img00035002.jpg?sign=1739526681-33G1vUZX70t4N2qx7uLbxSMmBktxJA6Y-0-2a6f06870e403265295b14af3a0a3fcb)
图1-10 查找已有的MAC地址表项
在交换地址表项中有一个时间标记,用以指示该表项存储的时间周期。当地址表项被使用或被查找时,表项的时间标记就会被更新。如果在一定的时间范围内地址表项仍然没有被更新,此地址表项就会被移走。因此,交换地址表中所维护的是最有效和最精确的MAC地址与端口之间的对应关系。
在主机A上分别发ping命令到C、B、D,再在交换机上用show mac-address-table命令查看MAC地址表。
![](https://epubservercos.yuewen.com/E4A7EE/14615891305755006/epubprivate/OEBPS/Images/img00035003.jpg?sign=1739526681-xir1TbJFMA1aVw2XA0LwDaOTDO86T7gt-0-03c28e4282e97be57edb6e8d47ff3972)