STP 802.1D, RSTP 802.1 W, MSTP 802.1 S 无比复杂,每次再看都能带来很多惊喜和新的内容。
本节以RSTP 为主,涉及端口选举,快速收敛特性等,基于华为实现。先上端口选举图
stp bpdu 格式如下:
核心思想: 通过BPDU流动,ROOT---DP----RP------AP 形成一棵自ROOT始至所有节点的无环树,端口角色选举也是由BPDU决定
第一步: 每个bridge发送bpdu,依据ROOT ID 选举出ROOT
第二步: 选举端口角色,最终状态RP 转发, DP转发,AP,BP 不转发。 区别于802.1D , 有端口角色概念 (收敛快 1)
端口选举依据 1 ROOT PATH COST 2 Bridge ID 3 port ID
A1 A2 作为DP ,无需多说
B1 C1 收到最优BPDU的端口,故为RP
B2 C2 都发BPDU, B2 的优故为DP , 只有B2 发送BPDU, C2 不再发送仅接收BPDU
B3 C3 C3 C4 都发送BPDU, B3的最优,故为DP . C3 收到B3出来的BPDU,故为BP ,所有备用DP ,B3 down以后 直接转为DP FORWARDING(收敛快 2)
C3 C4 不发送BPDU 故为AP ,作为RP 的备用, RP down后(C1 ) 立刻转为RP, FORWARDING (收敛快3)
P -A 机制:(收敛快4)
使用标志位如下:
假设B1 或者C1 down了以后,重新up,
1 A 1 或 A2 发送 proposal 置为 BPDU ,如上图所示
(以下以为C 和A 说明, B 和A 情况一样)
C1先后发送bpdu 2个
2 第一个如下
因为C 并不知道从C1去往ROOT 近or 远, C1 设为DP
3 A2再次发送BPDU
4 C1收到A2的bpdu更优, C阻塞除边缘端口外所有接口,C1口设置为RP FORWARDING,发送如下BPDU
当A2 收到如上的BPDU ( port role =root, agreement =yes ) 后, C2口立即变为FORWARDING ,整个pa过程4个bpdu交互,约1秒搞定!
-------------------------
2012.1.5 3.22 am
膜拜 Radia Perlman 大佬