【版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载。转载请保留本声明及出处:blog.csdn.net/shallnet
,下载该书英文版】
在网桥将其端口角色按根端口、指定端口、非指定端口分类之后,创建无环的拓扑就简单明了了:根端口和指定端口转发数据流量,非指定端口阻塞数据流量。虽然在一个稳定的网络中转发和阻塞是仅有的两种使用到的状态,但表6-3列出了STP实际上的五中状态。
Table 6-3. STP States
State |
Purpose |
Forwarding |
Sending/receiving user data |
Learning |
Building bridging table |
Listening |
Building "active" topology |
Blocking |
Receives BPDUs only |
Disabled |
Administratively down |
你可以将该表从下往上看作网桥端口的状态改变的先后次序,开始时端口为上表下面的状态(Disabled和Blocking),然后通过协议运行状态改变到Forwarding。disabled状态是管理员手动禁用一个端口之后端口的状态,并非属于协议在正常动态处理过程的端口状态。一开始端口处于Blocking状态以监听BPDU数据包的到来。
在一系列的事件之后(比如网桥启动之后立即认为自己是根网桥或某段时间内没有收到BPDU),网桥状态就可能会变为Listening状态。在这个时候,用户数据是不能被转发的——端口在这段时间内正在通过发送和接受BPDU来确定网络拓扑,也正是在listening状态期间,前面章节讨论的初始化收敛的三步操作在此段时间内进行。
那些在指定端口选择中失败的的端口就成为了非指定端口,并且其端口状态回到Blocking状态。
那些成为指定端口和根端口的端口并保持15秒(默认时间值)之后,其状态转变为learning状态。这又是一段不允许用户数据包通过的15秒周期,但这段时间网桥如第三章讨论的那样,其转发地址表可是在默默的学习。一旦网桥接收到帧,源mac地址和端口将会存入网桥转发表,学习状态降低了用户数据转发开始的时的大量数据请求。<译者注:交换机初始化之后,其MAC转发表为空,刚开始一旦数据传送到交换机开始转发,交换机会因为在转发表中寻找目的地址失败而将数据从所有端口转发(也就是所谓的洪泛该数据包),从而引发网络中大量数据包。STP的learning状态可以允许交换机学习MAC地址而不转发用户数据包,当learning状态之后,交换机已经直到相应目的MAC地址的数据包从何处转发出去,而不会去洪泛该数据包,从而有效阻止了刚开始转发数据是网络中出现大量数据包的不利情况>。
注:
除保存源MAC地址和端口信息之外,Catalyst平台交换机还会学习如源VLAN这样的其他信息。
如果在learning状态的时间周期到期之后,之前被选择成为指定端口和根端口的那些端口其端口状态转变为Forwarding状态,在这个阶段,终于可以开始转发用户数据了。图6-11展示了端口状态与其可能的转变到的状态。
Figure 6-11. Possible Port States and Transitions
图6-12为一个网络端口分类和状态展示的示例,注意除Cat-C:Port-1/2之外所有端口都是转发状态。
Figure 6-12. Sample Network with Port States Identified
表6-4列出了本书用来代替生成树状态的简写符号表。
Table 6-4. STP State and Port Symbols
State/Port |
Symbol |
Blocking |
B |
Forwarding |
F |
Designated Port |
DP |
Root Port |
RP |
Non-Designated Port |
NDP |