在生成树协议的运行中,先选择个根网桥,生成树协议将使根端口处于转发状态;每个非根网桥选个端口到根网桥中。当网络中有多个网桥时,它们将其到根网桥的管理成本宣告出去,其中管理成本低的网桥作为指定网桥,指定网桥中发送低管理成本BPDU的端口为指定端口,该端口处于转发状态,所有其他端口被置为阻塞状态。
1、根网桥的选择
网络初始化的时候,所有的网桥都通过发送STP报文来声明自已是根网桥,这些交换信息的数据称为网桥协议数据单元(Bridge Protocol Data Unit BPDU)。STP BPDU是种二层报文,所有支持STP协议的网桥都会接收并处理收到的BPDU报文。此报文的数据区携带了用于生成树计算的所有有用信息。
用来标识根网桥和优先级、网桥ID和成本的报文是hello数据包。STP通过hello数据包中的内容来判断网络中是否有比自己更合适作为根网桥的网桥,如果有,就停止判断并转发合适网桥的hello数据包,终将有台网桥成为根网桥。
BPDU有两种类型:
①配置BPDU,用于生成树计算。
②拓扑改变通知BPDU(Topology Change Notification,TCN)用于通告网络拓扑变化。
2、根端口的选择
非根网桥的交换机都选择个根端口,这是通过判断出有小根路径成本的端口做到的。路径成本直带在BPDU上,沿途的每台非根网桥的交换机都把接收BPDU的端口的本地端口成本加上去,伴随BPDU的产生,就累加出了根路径成本。
3、指定端口的选择
在每个网段上选择个交换机端口处理网络流量,在网段内小根路径成本的端口为指定端口。
4、删除桥接环
既不是根端口也不是指定端口的交换机端口被设为阻塞状态。通过这种控制方式来防止桥接环的形成。
5、STP环境中的交换机端口状态
下面描述常见交换机的端口状态:
①禁用(Disabled):禁用端口。
②阻塞(Blocking):不能接收或传输数据,不能把MAC地址加入它的地址表,只能接收BPDU。
③监听(Listening):由根端口或指定端口担任,不能接收或传输数据,不能把MAC地址加入它的地址表,只能接收或发送BPDU。
④学习(Learning):在转发延时计时时间(默认为15s)后,端口进入学习状态。不能传输数据,但可接收或发送BPDU,可以学习MAC地址并将其加入地址表。
④转发(Forwarding):在下次转发延时计时时间后,端口进入转发状态。能接收或传输数据,能学习MAC地址并将其加入地址表.也可以接收或发送BPDU。