生成树协议STPSpanning Tree Protocol),又称扩展树协议,是一种基于、OSI网络模型的数据链路层(第二层)通讯协议,用作确保一个无环路的网络环境。通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能。

生成树工作原理

  生成树协议的国际标准是IEEE802.1d.运行生成树算法的网桥/交换机在规定的间隔内通过网桥协议数据单元(BPDU)的组播帧与其他交换机交换配置信息,其工作的过程如下:

1通过比较网桥/交换机优先级选取根网桥/交换机(给定广播域内只有一个根网桥/交换机);

  2. 其余的非根网桥/交换机只有一个通向根网桥/交换机的端口,称为根端口;

  3. 每个网段只有一个转发端口;

  4. 根网桥/交换机所有的连接端口均为转发端口。

生成树功能 

1、利用生成树算法、在以太网络中创建一个以某台交换机为根网桥的生成树,避免环路。

2、在以太网络发生变化时,通过生成树协议达到收敛保护的作用。

生成树协议的算法过程

生成树协议算法归纳为三个步骤:选择根网桥、选择根端口、选择指定端口

(1)选择根网桥:全网中选择一个根网桥。比较网桥的BID值,BID值越小其优先级越高。BID有两部分组成:交换机的MAC地址(6字节)和交换机的优先级(2字节,默认32768.如果优先级相同,就比较MAC地址,MAC地址越小越优先。

2)选择根端口:每个非根网桥上都有一个根端口。

 a比较根路径成本,根路径成本取决于链路的带宽,带宽越大,路径成本越低,则选该端口为根端口。

 b如果根路径成本相同,则要比较所在对端交换机BID值,值越小,则其优先级越高

  c比较端口的ID值,该值分为两部分:端口优先级和端口编号,值小的被    选为根端口

3)选择指定端口:在每条链路上选择一个指定端口,根网桥上所有端口都是指定端口

  首先,比较根路径成本,

  其次,比较端口所在网桥的ID

最后,比较端口的ID 

 

每个网络中只有一个根网桥;

每个非根网桥只有一个根端口;

每个网段只能有一个指定端口;

根网桥无根端口;

根网桥端口全为指定端口;

非指定端口为阻塞端口。

STP 简介--STP端口状态

交换机完成启动后,生成树便立即确定。如果交换机端口直接从阻塞转换到转发状态,而交换机此时并不了解所有拓扑信息时,该端口可能会暂时造成数据环路。为此,STP 引入了五种端口状态。
阻塞(blocking) - 该端口是非指定端口,不参与帧转发。此类端口接收 BPDU 帧来确定根桥交换机的位置和根 ID,以及最终的活动 STP 拓扑中每个交换机端口扮演的端口角色,不发送BPDU

侦听(listening) - STP 根据交换机迄今收到的 BPDU 帧,确定该端口可参与帧转发。此时,该交换机端口不仅会接收 BPDU 帧,它还会发送自己的 BPDU 帧,通知邻接交换机此交换机端口正准备参与活动拓扑。开始选定根网桥,指定端口和根端口。

学习(learning) - 端口准备参与帧转发,并开始填充 MAC 地址表。

转发(forwarding) - 该端口是活动拓扑的一部分,它会转发帧,也会发送和接收 BPDU 帧。

禁用(disabled) - 该第 层端口不参与生成树,不会转发帧。当管理性关闭交换机端口时,端口即进入禁用状态。

端口可以转换的状态:

 

传统生成树协议有3个定时器Hello timerForward DelayMax Age分别代表为

1.Hello timer:发送配置BPDU之间的间隔,默认为2

2.Forward Delay:侦听和学习状态的持续时间,默认为15.这是一个值控制两个状态的时间.

3.Max AgeBPDU存储的时间长度,默认为20.如果从收到BPDU开始,20秒内仍未收到BPDU,网桥将宣布保存的BPDU无效,并开始寻找新的根端口.