STP是一种二层防环协议,该协议通过阻塞冗余链路达到二层防环作用,而如何阻塞有如下的规则:

一、一条链路上只能有一个DP端口,也就是链路对端端口要么是RP,要么就是NDP

二、且非根桥只能有一个RP端口,根桥所有端口都处于DP

三、RP对端一定是DP


选举步骤如下

一、选举根桥

二、选举RP

三、选举DP

四、选举NDP


对根桥的选举而言,比较简单,就不赘述,对于非根桥端口角色的选举有如下规则:

RP选举

①选择去往根桥Cost值最小的端口作为RP端口(即该端口入向接收BPDU时COP大小,小的成为RP)若相同则比较下一步

②选择接收到BPDU数据包中BID最小的成为根端口,若相同

③选择PID(链路对端发送BPDU的端口PID)小的成为RP

RP选举完毕,接下来就是选择DP和NDP

④比较入向接收到BPDU和该端口发送的BPDU中COP大小,小的成为DP,而大的成为NDP,若相同

⑤比较比较入向接收到BPDU和该端口发送的BPDU中BID大小,小的成为DP,而大的成为NDP,若相同

⑥比较比较入向接收到BPDU和该端口发送的BPDU中PID大小,小的成为DP,而大的成为NDP


接下来就上面的规则,我们举几个STP选举实例

例1:

wKiom1N9rZCQahArAAEOQKLMzSY535.jpg

如图:根桥的是Switch0,很好分析,对Switch1和Switch2由规则步骤①知道Switch1的Fa0/1以及Switch2

的Fa0/1,而对于Switch3由步骤一比较不出来,因为他们从Switch1和Switch2接收到的BPDU中,COP大小相等,接下来从由步骤②知道Switch1的BID小于Switch2的BID,所以Switch3的Fa0/2成为RP,RP确定的瞬间,对端DP的角色已经确定。

接下来就是选举DP和NDP,在图中,就是选举Switch2(Fa0/1)--->Switch3(Fa0/1)之间的链路,我们就Switch3的端口Fa0/1进行分析,由步骤④得知,Switch3从Switch2接收到的BPDU中COP大小为19,而Switch3的Fa0/1出接口BPDU中COP的大小为38,所以Switch2的BDPU更优,该交换机的Fa0/2成为DP,而Switch3的Fa0/1的端口成为NDP

例2:

wKiom1N9slzxCTt_AACCQLsKGs4047.jpg

如图:根桥的为Switch4,该交换机的Fa0/1和Fa0/2为DP,而对于Switch5,步骤①和步骤②的比较均不可以确定RP的角色,因为他的接口入向接收到的BPDU中COP大小相等,BID也相等,而由步骤③得知,Switch4的Fa0/1发出的BPDU中PID要小于Fa0/2的PID(PID由端口优先级以及端口号组成),所以Switch5

的Fa0/2成为RP,而又由于一台交换只能有一个RP和一条链路上只能有一个DP判定Switch5的Fa0/1为NDP