1. 环路地址
环路会导致MAC地址表翻摆(MAC地址表振荡)、广播风暴、多帧复制,为了避免环路引入STP(Spainning Tree Protocel)生成树协议
1.1. MAC地址表振荡
1.2. 广播风暴
1.3. 多帧复制
2. STP(Spanning Tree Protocel)的相关术语
2.1. 桥(Bridge)
因为性能方面限制的因素,早期的交换机一般只有两个转发端口(端口多了,交换转发的速度会变的慢的让人无法接受),所以那时的交换机常被称为“网桥",”桥“这个术语一直被沿用至今。目前”桥“和”交换机“这两个概念是完全混用的。
2.2. 桥的MAC地址(Bridge MAC Address)
桥有多个转发端口,每个端口都有MAC地址。通常我们把那端口编号最小的那个端口的MAC地址作为整个桥的MAC地址。
2.3. 桥ID(Bridge Identifier)
一个交换机的桥ID一共8个字节,由两部分组成。前面2个字节是桥的优先级,后面6个字节是桥的的mac地址。优先级可以人为设定,缺省值为0X800(十进制数为32768)。优先级为4096的倍数
https://blog.csdn.net/jiao424525707/article/details/89493103
2.4. 端口ID(Port Identifer,PID)
端口ID的定义方法通常有很多种,以下给出两种常见的定义方法
2.4.1. 由2个字节,第一个字节是端口的优先级,第二个字节是端口的编号
2.4.2. 由16bit组成,前4bit是端口优先级,后12bit是端口编号
3. STP的生成
生成原理:一个具有物理环路的的交换网络中,交换机通过运行STP协议自动生成一个没有环的工作拓扑。该无环工作拓扑也称为STP树(STP Tree)
生成过程:首先选举根桥(Root Bridge),然后确定指定根端口(Root Port)和指定端口(Designated Port),最后阻塞备用端口(Block Port)
3.1. 选取根桥
对比BID,越小越优。
运行STP协议的交换机(简称STP交换机)会互相交互STP协议帧,这些协议帧的载荷数据被称为BPDU(Bridge Protocle Data Unit桥协议数据单元)
3.2. 确定根端口
根桥确定以后,没有成为根桥的交换机称为非根桥。每个非根桥选举一个根端口,必须保证这个端口到根桥的最优性和唯一性。
3.2.1. 比较非根交换机到交换机的RPC(根路径开销),越小越优
3.2.2. 如果RPC相同则比较对端BID,越小越优
3.2.3. 如果BID相同则比较对端PID,越小越优
3.2.4. 如果对端PID也相同,则比较本端PID,越小越优
3.3. 确定指定端口(没有被选中的指定端口即为备用端口)
根端口保证了交换机到根桥之间工作路径的唯一性和最优性。为了防止环路,网络中的每个网段与根桥之间的工作路径也必须是唯一且最优的
3.3.1. 比较每个网段的不同端口到根桥之间的RPC,越小越优。
3.3.2. 如果RPC相同,则比较本端BID,越小越优
3.3.3. 如果本端BID相同,则比较本端PID,越小越优
3.3.4. 另根桥上面不存在任何根端口,只存在指定端口
3.4. 阻塞备用端口
备用端口不能转发用户数据帧(终端计算机产生并发送的帧),但可以接收并处理STP的协议帧。根端口和指定端口既可以接收和发送STP协议帧,也可以转发用户数据帧。
4. STP报文格式
STP协议帧由STP交换机产生、发送、接收、处理。STP协议帧是一种组播帧,组播MAC地址为01-80-C2-00-00-00。STP协议帧采用了IEEE802.3封装格式,其载荷数据被称为BPDU。BPDU有两种格式:Configuration BPDU和TCN(Topology Change Notification) BPDU。
4.1. Configuration BPDU
STP形成过程中每个STP交换机都会产生并发送(默认为2S),Configuration BPDU,STP形成后的稳定期,只有根桥会周期性的发送Configuration BPDU
4.2. TCN(Topology Change Notification)
5. STP端口的状态
STP定义了三种端口角色:根端口、指定端口、备用端口。根据端口是否接收和转发STP协议帧是否转发用户数据,STP的端口状态分为5种:去能状态(Disabled)、阻塞状态(Blocking)、侦听状态(Listening)、学习状态(Learning)、转发状态(Forwarding)
接收STP协议帧
发送STP协议帧
学习MAC地址
转发用户数据
通过这4项功能的逐渐递增,区分端口的5种状态
6. STP的改进
端口状态从Blocking迁移到Forwarding至少需要两倍Forward Delay的时间长度,总的收敛时间太长(一般需要几十秒时间)。为了弥补STP的缺陷,IEEE802.1w定义了RSTP(Rapid Spanning Tree)。RSTP的改进点有两个
6.1. 只有3种端口状态
Discarding、Learning、Forwarding
不能转发用户数据帧
不能学习MAC地址
这2项功能区分3种端口状态
6.2. P/A机制
7. RSTP(IEEE.802.1W)
7.1. 四种端口角色:根端口、指定端口、Alternate端口、Backup端口
7.1.1. 根端口与指定端口的作用与STP协议中的相同
7.2. Alternate端口:由于学习(Learning)到其它网桥发送的配置BPDU报文而阻塞端口,Alternate端口提供了从指定桥到根桥的另一条可切换路径,作为根端口的备份端口
7.3. Backup端口:由于学习(Learning)到自身网桥发送的配置BPDU而阻塞的端口,Backup端口提供了从相应网段到根桥的备份通路,作为指定端口的备份
7.4. 三种端口:Discarding、Learning、Forwarding
7.5. 边缘端口:如果一个指定端口处于整个网络的边缘即不再连接其它设备,而是直接与终端设备直连。这种端口叫做边缘端口,有如下特点
7.5.1. 不接收处理配置BPUD
7.5.2. 不参与RSTP计算
7.5.3. 可以由Disable直接转入Forwarding状态且不经历延时
7.5.4. 一旦收到配置BPDU,就丧失了边缘端口属性,成为STP端口
8. MSTP
8.1. RSTP和STP的缺点:局域网内所有VLAN共享一棵树,链路被阻塞后将不承担任何流量,造成宽带浪费,因此无法在VLAN间实现数据流量的负载均衡,还有可能造成部分VLAN报文的无法转发。
8.2. MSTP:通过MSTP交一个交换网划分成多个域,每个域内形成多个生成树,生成树之间彼此独立。每个域叫做生成树域(Multiple Spanning Tree Region,MST Region),每个生成树叫做MSTI生成树实例(Multiple Spanning Tree Instance)
8.2.1. 实例内可以包含多个VLAN。通过多个VLAN映射到同一个实例内,可以节省通信开销和资源占用率。MSTP各个实例拓扑的生成树计算相互独立,通过这些实例可以实现负载均衡。把多个相同拓扑拓扑结构的VLAN映射到一个实例里。
8.2.2. MSTP可以通过设置VLAN映射表(即VLAN和MSTI的对应关系表),把VLAN和MSTI联系起来。每个VLAN只能对应一个MSTI,即同一个VLAN的数据只能在一个MSTI中传输,而一个MSTI可以对应多个VLAN。