二层交换原理

二层交换机可以直接根据帧中的目的MAC地址把数据发送给相应端口上连接的主机。在二层交换机中也有用于数据帧转发的MAC地址与端口的映射表

(CAM表),列出了哪个MAC地址连接的是哪个端口。当 在映射表中没有数据帧中对应的目的MAC地址时才进行“泛洪”(以复制方式在除源端口外的其他

所有端口上进行转发)。但是要注意,交换机缓存空间毕竟有限,可以存储的MAC地址和端口映射表也有限,所以当网络比较大时交换机中的缓存空间就

不能保存网络中所有节点MAC地址与交换机的映射关系了。

1.CAM表的建立

交换机的这张CAM表可以通过多种方式获得,比如静态配置、动态学习,针对多播还可以通过各种多播协议,比如 IGMP嗅探、 GMRP协议等方式

 (注意,多播转发不能通过学习获得,而且多播转发项跟普通转发项不同,跟其对应的出口不止一个,而是一个出口集合)。

在进行数据转发的同时,交换机还有一个学习的过程,它包括两个方面:

a.交换机在接收到数据帧时会把其中的源MAC地址提取出来,查询CAM表,看CAM表中是否有针对该MAC地址的转发项,如果没有就把该MAC地址和

接收到该MAC地址的端口绑定起来,插入CAM表项,这样当接收到一个发送到该MAC地址的数据帧时,就不需要向所有端口广播,而仅仅向这一端口

发送即可。

b.在接收到的数据帧中目的MAC地址未知情况下,通过向交换机上其他所有段口进行广播,接收广播帧的节点应答广播帧后,便获知了原来数据帧中

对应目的MAC地址所连接的端口,这时交换机又会把该MAC地址与所连端口的对应表项插入到CAM表中。

注意:数据帧的转发是依据目的MAC地址查询CAM表,而CAM表的学习则是以源MAC地址为依据的。但要注意的是,交换机动态学习的CAM表项并不是

一成不变的,而是启动一个定时器,当该定时递减到零时,该CAM表项被删除。每使用一次该CAM表项进行转发,就恢复定时器初始值。

上述接收是在没有考虑VLAN(虚拟局域网)的情形下阐释的,现在的交换机一般都实现了VLAN,所以CAM表就有了变化,由原来的两项对应关系(MAC

地址与所连接的交换端口)变成了三项对应关系(MAC地址,VLAN ID,交换机端口),这样当接收到一个数据帧的时候,交换机就要同时根据数据帧的目的

目的MAC和VLAN ID两项来查询CAM 表,找到接口后把该数据帧转发出去。

如果交换机根据MAC地址和VLAN ID查询CAM表失败,即没有改MAC和VLAN ID的对应关系,则交换机把该数据帧对该VLAN包含的(除接收端口以外的)

所有端口进行广播。但如果只根据CAM表确定一个VLAN包含哪些端口,则必须遍历整个CAM表,这样如果CAM表的规模非常大,则查询的效率非常低,

所以一般的交换机上在实现VLAN时,还会创建另一张表,即VLAN配置表。该表包含了VLAN ID和交换机上所有端口的对应关系,即只要根据VLAN ID

查询该表就可以找到该VLAN包含的所有端口,这样在进行VLAN内广播的时候,就非常容易了。

2.二层交换原理

因为交换机有多个端口,可直接连接主机或其他交换机。当数据帧发送到交换机所连接的主机时,交换机就可以根据帧中的目的MAC地址直接把数据从

对应的端口上发送到所连接的主机上。如果数据发送到本交换机所连接的其他交换机上的主机时,则本交换机先把该数据帧发送到连接对应交换机的端口上,

然后再由那台交换机根据目的MAC地址从对应端口上发送到目的主机上。

总体来说,二层交换原理和网桥的数据交换原理查不多,具体见下图。不同的只是现在的交换机端口通常不是连接集线器,而是直接 交换机和主机,所有在

每个端口所连接的物理网段中也采用数据交换方式,而不是采用集线那样的复制类型的广播方式。下面进行具体的解析。


1)当交换机从某一个端口受到一个数据帧后,先读取帧头部的源MAC地址,并与自己缓存中的映射表 (CAM表)进行比较,如果没有

找到,则在CAM表中添加一个该源MAC地址与发送该帧的源端口映射表项。这就是交换机的MAC地址自动学习功能。

2)如果在CAM表项查到了帧中源MAC地址,则继续查看是否有帧中目的MAC地址所对应的映射表项。如果有,则直接把该帧转发

到目的MAC地址节点所连接的交换机端口,然后由该端口发送到目的主机。

3)如果在交换机CAM表中没有找到帧中目的MAC地址所对应的表项,则把该数据帧向源端口外的其他所有端口上进行泛洪。

4)当MAC地址与帧中目的MAC地址的主机接收了该数据帧后就会向源主机产生一个应答帧,交换机获取该应答帧后从其中的源MAC地址

中获取了对应的MAC地址和所连接端口的映射关系,并添加到CAM表中。这样下次再有MAC地址为这个MAC地址的帧发送时交换机就可以直接

从CAM表中找到对应的转发端口,直接转发,不用再泛洪了。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值