根端口选出来后,接下来要选举指定端口了。
指定端口的选举和根端口不同:根端口是每台交换机上的所有端口共同参与选举,自己家里搞内斗,选出唯一仅有的一个;而指定端口是在每条物理链路上选出一个,是相连接的不同交换机之间的端口进行选举,是跟外人斗。
首先,根端口对面的端口一定是指定端口。
如图中,SWB与SWA相连接的链路上有根端口,为SWB的E0/1端口,则它对面SWA上的端口E0/1就是指定端口。同样的,SWC与SWA相连接链路上的指定端口为SWA的E0/2端口。
那么,在没有根端口的链路上怎么选举指定端口呢?
如图中,SWB与SWC相连接的链路上,指定端口是SWB的E0/2端口,还是SWC的E0/2端口呢?
首先,我们来比较两个端口的RPC(Root Path Cost,根路径开销)谁更小。
先看SWB的E0/2端口,它的RPC是多少呢?是15,还是5?
正确答案是5!
我们可以这样来理解:SWB当初在选举根端口时,E0/2败给了E0/1,是因为从E0/1出去到达根桥更近,RPC=5,而从E0/2出去到达根桥的RPC=15。
但是现在,选举指定端口是SWB上的端口与其他交换机的端口之间进行比较,是跟外人比较,SWB当然认为自己身上所有端口的RPC都是5,同样,SWC也认为自己身上所有端口的RPC都是10。
很显然,SWB的E0/2端口的RPC更小,所以被选举为这条链路上的指定端口。
如果RPC相同呢?
如图,SWB的E0/2端口与SWC的E0/2端口,RPC都为5。
这时,就“拼爹”了,比较端口所在交换机的BID谁更优:SWB的BID为4096.MAC_B,SWC的BID为32768.MAC_C,显然,SWB的BID更优,所以SWB的端口E0/2为这条链路的指定端口。
指定端口的选举规则就这么两个。
如果BID也相同?不会的,如果BID也相同,这条链路就不存在了,还选什么指定端口呢。
每条链路上的指定端口选好后,剩下来的所有端口,STP都会把它们阻塞,叫做阻塞端口(AP,Alternate Port)。
AP端口被阻塞后,不会再向外发送任何数据,包括BPDU。但是为了STP保持正常,别人给它发的BPDU依然接收,其他数据则不再接收,全部丢弃。
至此,STP计算完成,环路消除,生成树收敛。
领取专属 10元无门槛券
私享最新 技术干货