链路层:STP/BPDU协议

1、简介

生成树协议(Spanning Tree Protocol,STP),是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路.用于确保以太网中无环路的逻辑拓扑结构.从而避免了广播风暴,大量占用交换机的资源。

2、Configuration BPDU报文格式

时间参数

包括Hello Time、Forward Delay、Message Age、Max Age。

Hello Time:交换机发送Configuration BPDU的时间间隔。当网络拓扑和STP树稳定后,全局的网络使用根桥指定的Hello Time。要修改该时间参数的话,则需要在根桥上修改才有效。

Forward Delay:端口状态的延迟时间。Forward Delay机制:新选出的根端口和指定端口需要经过2倍的转发延时(Forward Delay)后才能进入到用户数据帧的转发状态,以保证此时的工作链路上没有环路。

Message Age:指从根桥发出某个Configuration BPDU,直到这个Configuration BPDU“传”到当前交换机所需要的总时间,包含传输延时等。Configuration BPDU每经过一个桥,Message Age便会增加1.从根桥发出的Configuration BPDU的Message Age为0。

Max Age:Configuration BPDU的最大生命周期。该值由根桥指定,缺省值为20s。STP交换机在收到Configuration BPDU后,会对其中的Message Age和Max Age进行比较。如果Message Age小于等于Max Age,那么Configuration BPDU会触发该交换机产生并发送新的Configuration BPDU,相反的Configuration BPDU会被丢弃。而且也不会触发交换机 产生和发送新的Configuration BPDU。

3、TCN BPDU

TCN BPDU的结构只包含:协议标识、版本号和类型。

工作原理:

当网络中国的某条链路发生了故障,导致工作拓扑发生了变化,那么位于故障点的交换机可以通过端口状态直接感知到这些变化,但是其他的交换机是不能直接感知到这样的变化的。在这样的环境下,位于故障点的交换机会以Hello Time为周期通过其根端口不断的向上游交换机发送TCN BPDU,直到接收到上游交换机发来的、TCA标志为1的Configuration BPDU。上游交换机在收到TCN BPDU后,一方面会通过其指定端口回复TCA标志为1的Configuration BPDU,另一方面会以Hello Time为周期通过其根端口不断的向它的上游交换机发送TCN BPDU。这个过程会一直重复,直到根桥接收到TCN BPDU。根桥接收到TCN BPDU后,会发送TC标志为1的Configuration BPDU,通告所有的交换机网络拓扑发生了变化。

当交换机接收到TC标志置为1 的Configuration BPDU,便意识到网络的拓扑发生了变化。那么自己的MAC地址表的表项内容可能不是正确的了,所以交换机会将自己的MAC地址表的老化周期(缺省值20s)缩短为Forward Delay(缺省值15s)的时间长度,以加速老化掉原来的地址表项。

4、STP端口状态

STP定义了三种状态:根端口、指定端口、备用端口。

STP的5种端口状态:去能状态、阻塞状态、侦听状态、学习状态、转发状态。

  1. STP交换机的端口在刚开始的时候,首先会从去能状态进入到阻塞状态。
  2. 在阻塞状态中,端口只能接收和分析BPDU,但不能发送BPDU。
  3. 如果端口被选为根端口或者的指定端口,则会进入到侦听状态。此时的端口只能接收和发送BPDU,该状态会持续一个转发时延(Forward Delay)的长度,缺省值为15s。
  4. 如果没有其他的情况发生导致回到阻塞状态,那么该端口会进入到学习状态,该状态持续一个Forward Delay的时间长度。处于该状态下的端口可以接收和发送BPDU,同时开始构建MAC地址映射表,开始为用户数据帧的转发做准备。(但是该状态下,是不能转发用户数据帧的,因为网络中可能还存在因STP树的计算过程不同步而产生临时环路的情况)。
  5. 端口由学习状态进入到转发状态,用户可以开始用户数据帧的转发工作。
  6. 在整个状态的迁移过程中,端口一旦发生了链路故障,就会进入到去能状态;在端口的迁过程中,如果端口的角色被选定为非根端口或非指定端口时,那么该端口状态就会立即退回到阻塞状态。

发表回复