转载:https://blog.csdn.net/ym815753607/article/details/75150593

下面将谈谈MAC地址学习这块的东西

 

图1 网络拓扑结构

PC1要与PC2通信,基于以太网通信中,必须在数据帧中指定目标MAC地址才可以进行正常通信。

假定PC1的arp表项中没有对应通信的PC2的MAC地址B与IP映射,那么PC1将广播一个“arp请求”,交换机通过port1 接收到PC1广播的arp请求报文,通过查找交换机内部的转发表,发现没有PC1的MAC地址A与端口1对应关系(假定交换机处于初始化状态),如表1

                                                  表1 初始化的交换机转发表

于是,交换机会将PC1发来的数据帧的源MAC地址A与端口1的对应关系更新到自己的转发表中,如表2;

 

接着交换机会广播arp请求(flooding)到除了接收端口的的其他端口,如图2

 

图2 arp泛洪

PC2的情况:

PC2接收到arp请求后,通过对比目的IP与自己IP,如果相等,则会将PC1的MAC地址A与IP映射关系更新到自己的arp表项中,并且会以单播的形式通过端口2返回一个“arp应答”,交换机接收到此arp应答后,会将PC2发来的数据帧的源MAC地址B与对应的端口2更新到自己的转发表中,如表3

 

接着交换机查看自己的转发表发现arp应答目标MAC地址A对应端口1,如表4,

                              表4 查找MAC:A

于是将此arp应答请求通过端口1发送给PC1,PC1得到arp应答,将PC2 的MAC地址B与IP映射关系更新到自己的arp表项中。PC1发送由链路层封装的数据帧给PC2,如图3

 

图3 PC1向PC2发送数据帧

经过交换机,交换机通过转发表发现目的MAC地址是B,如表5,对应端口为2,于是通过端口2 将此数据帧传给PC2。

                                                                    表5 数据转发

表5

PC3的情况

PC3也接收到交换机广播来的arp请求,如图2,发现目的IP不是自己的IP,于是不作出任何回应

下面是模拟Cisco交换机做的实验(用CiscoPacket Tracer 做的实验,不能抓包用wireshark分析)

网络拓扑如图1,交换机型号Cisco 2950-24

下图6是模拟交换机初始化的转发表,转发表为空

 

图6 模拟cisco交换机初始转发表

由于不能通过wireshark抓包分析,我查看PC1 ping PC2的动画演绎数据报收发过程。事先PC1、PC2 、PC3  arp表项均为空,均如图7,交换机转发表MAC表项为空,如图6

 

图7 PC1、PC2和PC3初始arp表项

PC1先广播arp请求,交换机接收到arp请求后,将PC1发来的arp数据帧中源MAC和端口映射关系更新到自己的转发表中,如图8,接着交换机会广播arp请求(flooding)到除了接收端口的其他端口,如图9、图10

 

 图8 交换机接收到PC1广播的arp请求

   图9 交换机广播arp请求

 

图10 交换机广播arp请求的模拟过程

PC2接收到广播来的arp请求后,查看目标IP发现是自己的IP,于是将PC1的MAC与IP映射关系更新到自己的arp表项中,并单播一个arp应答给交换机,而PC3查看收到的arp请求后查看目标IP并不是自己的IP,于是不做任何回应,如图11、图12。

 

     图11  PC2单播arp应答

 

 图12  PC2单播arp应答

交换机接收到arp应答后将源MAC和端口映射关系更新到自己的转发表中,如图13,然后将arp应答通过端口1扔给PC1,PC1将PC2的MAC与IP映射更新到自己的arp表项,然后向PC2发送ping包,数据帧到达交换机后,交换机查看转发表,发现PC2的MAC与端口2的映射关系,于是将数据帧通过端口2扔给PC2,如图14、图15和图16

 

  图13 更新PC2的MAC后交换机中转发表

 

 

                                                 图14/15 数据帧转发模拟过程

 

                                                      图16 数据帧转发过程

Cisco交换机转发表老化时间默认也是300s,PC1与PC2自从上一次通信后没有进行数据交互,一段时间后查看转发表项,如图17

 

图17  PC1与PC2通信一段时间后交换机转发表

在Cisco这款交换机条件下做了一个错误链路实验,PC1的MAC与端口1映射在老化时间内,我断开PC1与交换机连接,查看交换机转发表,结果如下图18,PC1的MAC对应端口映射立即消失了。

 

图18 错误链路情况


作者:saygoodbye_e92e
链接:https://www.jianshu.com/p/c0f2ab8756e4
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。