交换机的主要功能是根据其中称为“MAC转发/过滤表”的数据库。
一.交换机开启后,其中的“MAC转发/过滤表”(简称:MAC表)是空的。
二.当与交换机相连的设备开始发送数据,而交换机与之相连的接口收到数据帧后,交换机会将数据帧中的源MAC地址保存在“MAC转发/过滤表”中。并记录设备对应的接口。
三.然后,交换机将数据帧在除了源端口外的所有端口泛洪到网络。
四.网络中另一个设备应答了这个数据帧,并发回一个应答帧。
五.交换机将这个应答帧中的源MAC地址放入MAC表中
六.这样MAC表中有了两个相关的MAC地址,当这两个设备再次通信时,就可以建立点对点的连接,而不会对帧进行泛洪转发。
示例:
1.交换机SW1开启后,MAC表为空。
Vlan | Mac Address | Type | Ports |
2. PC A 向PC D发送一个数据帧,源地址:000a.aaaa.aaaa目的地址:000d.dddd.dddd
SW1通过Fa0/3口接收到这个数据帧。将数据帧中的源地址加入到MAC表中。
Vlan | Mac Address | Type | Ports |
1 | 000a.aaaa.aaaa | DYNAMIC | Fa0/3 |
Vlan表示该PC A处于哪个Vlan1中;
Mac Address是源地址PC A的MAC地址
Type表示给MAC项是动态加入的(MAC表的内容也可以静态加入)
Port表示PC A连接在Fa0/3口上
3.SW1在MAC表中查看数据帧的目的地址:000d.dddd.dddd;在MAC表中没有这一条,所以SW1不知道PC D在哪里,它就在除了F0/3外所有的端口泛洪发送这个数据帧。
4. PC B,PC C收到这个数据帧,发现不是自己的,就会丢弃这个帧;PC D收到后发现时给送给自己的,就会发送一个应答帧。源地址:000d.dddd.dddd:目的地址:000a.aaaa.aaaa
5. SW1通过Fa0/6接口接到这个应答帧,并将应答帧中的源地址记录在MAC表中。
Vlan | Mac Address | Type | Ports |
1 | 000a.aaaa.aaaa | DYNAMIC | Fa0/3 |
1 | 000d.dddd.dddd | DYNAMIC | Fa0/6 |
6.然后,SW1在MAC表中查找应答帧中的目的地址:000a.aaaa.aaaa,发现它在Fa0/3口,就从Fa0/3口将这个帧发送出去。
7.当PC A和PC D再次通信时,由于MAC表中已经有两者的条目了,交换机就会直接进行点对点的发送,而不会泛洪。
8.最后,SW1学到网络内所有设备的MAC地址
Vlan | Mac Address | Type | Ports |
1 | 000a.aaaa.aaaa | DYNAMIC | Fa0/3 |
1 | 000d.dddd.dddd | DYNAMIC | Fa0/6 |
1 | 000b.bbbb.bbbb | DYNAMIC | Fa0/4 |
1 | 000c.cccc.cccc | DYNAMIC | Fa0/5 |