概述mac地址学习虽然说起来比较简单,但是在工作中,还是经常看小伙伴不能正确的应用,遇到问题时也比较迷茫,不知道如何分析问题 。究其原因,可能还是对MAC地址学习的工作原理了解的不够,所以我今天写一篇文章,给还迷糊的小伙伴在普及一下,如果是已经了解的同学,可以当做复习 。
MAC地址简介在OSI七层模型中,每一层都有不同标识符,用来区分不同的设备,这样它们之间才能对等的进行通信 。而MAC地址是数据链路层(layer2)标识符,在数据链路层唯一标识一台设备 。
文章插图
OSI七层模型
MAC地址总共有48个比特(bit),在工作中通常使用16进制来表示,一般有两种写法,一种是:HH:HH:HH:HH:HH:HH格式,如下图:
文章插图
HH:HH:HH:HH:HH:HH
另外一种是:HHHH:HHHH:HHHH,如下图:
文章插图
HHHH:HHHH:HHHH
中间可以使用冒号(:)或者点(.)分割,看具体的厂商实现 。
源MAC vs 目的MAC我们注意到,在一个以太网报文中,有两个MAC地址:源MAC、目的MAC,如下图所示:
文章插图
源MAC、目的MAC
那么这两个MAC地址有什么区别呢?这也是大家容易犯迷糊的地方,其实只要记住三句话就可以了:
- 源MAC地址是属于报文发送者;
- 目的MAC地址是属于报文终结者;
- 交换机接收到报文以后,会记录源MAC,同时根据目的MAC查找出接口 。
如下图所示,交换机E0/1接口收到任何PC1发送的报文,都会把源地址记录在MAC地址表项中:
文章插图
记录MAC地址表项
【什么叫MAC地址学习,记录什么内容】交换机MAC地址表项的格式类似于下图:
文章插图
MAC地址表项
当交换机从别的接口,收到目的MAC是0000:0000:1111的报文时,就会从E0/1接口转发出去,这个也称为查找MAC地址表 。
下面我们以一个具体的例子来阐述上面的内容 。
原理举例拓扑
文章插图
拓扑图
- 三台PC配置同一个网段的IP地址;
- 交换机和三台PC相连的接口配置同一个Access VLAN 10;
初始情况下,交换机的MAC地址表项是空的,如下图:
文章插图
初始的MAC Table
当PC1发送的任何报文到达交换机时,例如ARP报文:
文章插图
ARP报文
交换机都会记录报文的源MAC地址,同时更新在MAC地址表项中,如下图所示:
文章插图
更新MAC地址表
下次如果收到目的MAC为0000.0000.1111的报文,就会只从E0/1接口转发出去,如下图所示:
文章插图
特定出接口
估计看到这里,有小伙伴就会问:如果交换机接收到的报文,在MAC地址表找不到目的MAC对应的表项该怎么办?
答案是:在同一个VLAN里进行泛洪 。
例如此时PC2发送一个报文,其目的MAC地址为0000.0000.4444,交换机没有这个表项,则交换机会把报文同时发送到PC1和PC3,如下图所示:
文章插图
交换机泛洪报文
总结各位小伙伴看完上面的描述,应该对MAC地址学习的原理了解了吧,我们简单的总结出3条结论:
- MAC地址学习,记录是接收报文的源MAC地址;
- 交换机收到报文以后,会根据目的MAC地址查找出接口;
- 如果找不到出接口,会从同一个VLAN里的所有接口转发出去(泛洪);
- ?如果找到出接口,会只从特定的出接口转发出去,这个就是MAC地址学习的真正目的:减少网络的流量 。
推荐阅读
- 什么是双频无线路由器?
- 光猫具备路由功能以后,为什么还需要单独购买路由器,涨知识了
- 抖音比较火的梗 抖音纠言纠语街子天啥梗什么意思
- 网络爬虫是什么?对于手机安全问题,该怎么防御
- 狗为什么那么喜欢舔主人 狗狗喜欢舔人的三个原因
- 男人梦见自己打死人了有什么预兆 女人梦见自己打死人了有什么预兆
- 梦见自己开颅手术是什么意思 做梦梦到开颅手术
- 开门店要交什么税 开淘宝店收税吗
- 茶之活化石,湖南黑茶
- 武汉地铁9号线获批概率,为什么不批武汉9号线