仿真实验--ARP缓存和交换机的自学习

1. 简单拓扑描述

在这里插入图片描述

六台计算机直连一个台交换机,构成一个简单的星型拓扑

2. 网络设备-交换机的自学习

交换机的自学习:交换机在二层转发帧,通过学习帧的源mac地址,会在内部建立一张MAC地址表,也可以称为FDB(转发数据库),当交换机的一个端口收到一个帧,如果帧的源MAC地址,不在表中,会新增一条表项(vlan—mac—type—port), 然后再看目的mac地址,如果是广播地址(ff-ff-ff-ff-ff-ff)或者不在表中(不包括接收端口),就广播帧,如果找到对应的表项,就从对应的端口转发出去。

vlan可以先不用在意,这个是给配置虚拟局域网用的,默认都是1。

3. ping实验(本地无ARP缓存)

在这里插入图片描述
从上图可以看到,192.168.0.3和192.168.0.8这两台计算机的ARP缓存表都是空的,交换机的MAC地址表也是空的

接下来我将在 192.168.0.3 这台计算机上 ping 192.168.0.8计算机,看看会发生什么

  1. 生成ICMP数据包(ping的原理就是发送ICMP数据包,回显请求8/0 回显响应0/0,不知道的自行补课)
    在这里插入图片描述
    192.168.0.3生成ICMP数据包,准备封装成帧时,发现本地ARP缓存表没有 192.168.0.8的对应表项,就先准备通过ARP请求,记录192.168.0.8的mac地址

在这里插入图片描述
ARP请求是广播,ARP响应是单播

当ARP数据包到达交换机,交换机先新增了一个表项,然后发现目的mac地址是 ff-ff-ff-ff-ff-ff,是个广播地址,会将其从除了接受端口之外,全部泛洪出去
在这里插入图片描述
从图中可以清晰的看出来,除了192.168.0.8之外,其他4台计算机,都将192.168.0.3发送的ARP数据包丢弃,因为 192.168.0.3就是想知道192.168.0.8的mac地址呀,所以只有192.168.0.8会对其响应。
注意: 192.168.0.8在自己的ARP缓存表新增了一个192.168.0.3的表项,缓存了它的mac地址()arp数据包里会有发送方的ip和mac地址

在这里插入图片描述
当192.168.0.8进行ARP响应时,ARP数据包又到了交换机,交换机有学了一个mac地址,它又建了一个表项。此时交换机有两条表项了,并且此时知道了该从哪个端口转发
在这里插入图片描述
当192.168.0.3收到这个ARP响应,也在自己的ARP缓存表里缓存了192.168.0.8的mac地址
接下来,192.168.0.3终于可以发生ICMP了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到ping成功了

4. ping实验(本地有ARP缓存)

猜你喜欢

转载自blog.csdn.net/weixin_42237702/article/details/108506174