持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情
交换机可以隔离碰撞域,因此收到了广泛的使用,隔离碰撞域的实现是基于帧交换表,而帧交换表是通过自学习算法自动建立起来的,因此着重考虑自学习算法的实现。
交换机的简单认识
交换机本质上是一个多接口的网桥,自身可以进行碰撞检测并进行转发目的主机,当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC 地址,然后再确定将该帧转发到哪一个接口,或把它丢弃。
使用交换机互连而成的交换式以太网上的某个主机,要给另一个主机发送单播帧,该单播帧进入交换机后,交换机会将该单播帧转发给目的主机,而不是网络中的其他各个主机。
说明:
- 内部使用帧交换表来实现目的Mac地址和接口的查询
- 一个交换机可以有多个接口连接多个主机或另一个交换机
- 交换机工作以全双工方式工作。因为可以进行存储转发,所以就不不需要半双工方式
- 帧交换表使用自学习算法自动建立起来的
- 转发帧有两种方式
- 存储转发,先缓存再转发
- 直通交换,接收数据的同时立刻按MAC地址进行转发,不检查差错就转发,可能会转发无效帧
自学习算法
以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的,随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
比如A主机和B主机的自学习为例说明
A主机向B主机发送帧
说明: 1、A发送一个帧到交换机1,交换机1的接口1接收到帧 2、在交换表中查找B的MAC地址,没有找到,就向接口1以外的其他接口转发帧(就是盲目泛洪) 3、同时要将MAC地址A和接口1写入到交换表中,这样下次获取到A的MAC的时候就可以直接查找到A接口了,称作叫登记。 4、接口2连接的是一个主机C,发现并不是该目的地址,直接丢弃 5、接口3连接的是主机B,接收成功 6、接口4连接的是另一台交换机2,发送到接口2 7、帧在交换2的表中查找B的MAC地址,没有找到,就向接口2以外的其他接口盲目泛洪 8、同时将MAC地址A和接口2写入到交换表中(登记) 9、所有的接口都查找失败,不作处理
B主机向A主机发送帧
说明 1、B发送帧到交换机1,在交换表中查找到A的MAC地址,发现是接口1,就直接从接口1发送出去 2、同时在交换表中将B主机的MAC地址和接口3写入 3、A主机接收到帧,发现MAC地址是A主机的MAC地址,接收
E主机发送帧到A主机
- 对于E主机发送帧到A主机时,因帧交换表中查找到A地址为接口2,边从接口2发送出去,并记录E-3
- 接口1、4均没有查找到,不作处理,从接口2进入到交换机1,
- 此时在帧交换表中查找到A主机是接口1,就直接发送到接口1中,此时在交换机1中登记E-4
注:每条记录都有自己的有效时间,到期会自动删除,这是因为MAC地址与交换机接口的对应关系并不是永久性的
生成树协议
在实际中需要增加冗余链路来提高以太网的可靠性,不至于一条链路故障,主机间就无法通讯,但是冗余链路会导致网络环路,所以需要使用生成树来协议来避免网络环路,又可以在其中一条链路故障时启动其他链路。
冗余链路
使用冗余链路可以提高以太网的可靠性,不至于一条链路故障,主机间就无法通讯
冗余链路会形成网络环路会造成严重的问题:
- 会导致广播风暴,两个主机间的通讯会经过多种网络链路,浪费网络资源,也造成广播风暴
- 主机收到重复的广播帧
- 交换机上的帧交换表震荡,总是需要不停的修改帧交换表
使用生成树协议可以解决冗余链路造成的问题
交换机能够自动计算并构建一个逻辑上没有环路的网络,而且最终生成的树形逻辑拓扑结构要确保连通整个网络,当物理拓扑发生改变,交换机都将进行生成树的重新计算
总结:
- 交换机可以通过帧交换表查找目的主机,可以隔离碰撞域
- 帧交换表的实现是通过自学习算法,自学习算法是在网络中主机间不断的通信中逐渐建立起来的。
- 自学习算法最重要的两点1)主机发送出帧后交换机便将该MAC地址以及接口登记;2)一个接口成功接收到帧,变将该接口和MAC地址登记
- 冗余环路可以提高以太网的可靠性,但是会造成网络环路,可以通过创建最小生成树的创建来避免网络环路