当前位置:文档之家› stp协议

stp协议

Stp协议STP(Spanning Tree Protocol)是生成树协议的英文缩写,是OSI网络互联模型中的第二层(Date Link Layer)中的协议。

STP是基于什么需要所开发的协议:一个优秀的网络工程师,冗余的思想是尤为重要的,因此在做某些网络互联的项目时,会使用多个交换机Switch进行保障通信,避免单点故障。

可是如果几个交换机同时作用时,难免会发生一些问题:1,广播风暴。

一个PC或者Host Server 发送一个广播broadcast,从而使形成环路的交换机不停的泛洪(由于交换机是二层设备,没有网络层封装帧的TTL数,所以这种广播风暴更为严重),直到网络堵塞。

2,帧的多重复制。

由于多台Switch转发数据,可以使目标路由器接收到几个相同的帧,这在三层路由的一些协议中,会出现故障。

3,MAC地址表不稳定。

由于交换机中MAC表中,一个端口可对应多个MAC地址,而一个MAC无法对应多个端口。

然而在多个Switch同时作用环路时,难免会造成MAC 表学习重复,使MAC地址对应的端口不断被覆盖,造成MAC地址表不稳定。

基于以上问题,开发出来了STP生成树协议,该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。

生成树协议STP/RSTP一. 技术原理:STP的基本思想就是生成“一棵树”,树的根是一个称为根桥的交换机,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。

由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。

当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。

总之,其目的就是在不影响冗余的情况下,避免交换机环路的出现。

具体的选举步骤为:1、One root bridge per network(在网络中选一个根桥)2、One root port per nonroot bridge(在每一个非根桥中选举一个根端口称为RP)3、One designated port per segment(在每条链路中选举一个指定端口称为DP)4、Nondesignated ports are unused(剩下的一个端口为BLOCK状态)选举原则:1,在所有交换机中Bridge ID越低,越优先。

【先介绍一下Bridge ID,Bridge ID又两部分组成,{Bridge Priority,MAC Adress}。

Bridge Priority为桥优先级,默认为32768;MAC Adress就是交换机的MAC地址。

注:如果想把指定交换机设为根桥,可把改交换机的Bridge Priority设为更低,一般设为0】2,选举根端口时,按照以下原则。

COST--Port ID,先比较COST值,即该端口到根桥的花费。

COST值越低越优先。

【COST值】带宽COST10Gps 21Gps 4100M 1910M 100如果COST值相同的话,再比较Port ID,Port 0优先与Port 1。

3,选举DP,规则为COST--Bridge ID。

先比较COST,当COST相同时,再比较桥ID,桥ID越小越优先。

4,最后剩下的那个唯一的端口即为BLOCK状态,即不运作,但会接收BPDU报文,监听其他正常使用的交换机是否工作正常,如不正常立即启用。

Spanning-tree transits each port through several different states:1,收BPDU报文,如20s没有收到回包,即转入下一步骤。

------只可收BPDU报文2,Listening 届时15s 此期间,会进行STP选举------------可以收、发BPDU报文,不转发用户数据3,Learning 届时15s 此期间会学习MAC地址,为以后减少泛洪流量做准备4,Forwarding以上可以看出,STP协议会持续50s,这就是有的PC开机后50s后才可以上网,进行数据传输。

为此,由开发了RSTP协议(快速生成树协议),收敛速度可达到1s。

二. 功能介绍:生成树协议最主要的应用是为了避免局域网中的网络环回,解决成环以太网网络的“广播风暴”问题,从某种意义上说是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。

STP也提供了为网络提供备份连接的可能,可与SDH 保护配合构成以太环网的双重保护。

新型以太单板支持符合ITU-T 802.1d标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。

但是,由于协议机制本身的局限,STP保护速度慢(即使是1s的收敛速度也无法满足电信级的要求),如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的动荡。

目前在MSTP 组成环网中,由于SDH保护倒换时间比STP 协议收敛时间快的多,系统采用依然是SDH MS-SPRING或SNCP,一般倒换时间在50ms以内。

但测试时部分以太网业务的倒换时间为0或小于几个毫秒,原因是内部具有较大缓存。

SDH保护倒换动作对MAC层是不可见的。

这两个层次的保护可以协调工作,设置一定的"拖延时间"(hold-off),一般不会出现多次倒换问题。

一、STP算法IEEE802.1D标准定义了STP的生成树算法。

该算法依赖于BID、路径开销和端口ID参数来做出决定。

1、BID(网桥ID):BID是生成树算法的第一个参数,BID决定了桥接网络的中心,称为根网桥或根交换机。

BID参数是一个8字节域。

前2个字节(10进制)称为“网桥优先级”,后6个字节(16进制)是交换机的一个MAC地址。

网桥优先级用来衡量一个网桥的优先度,范围是0-65535,默认是32768。

思科交换机中的PVST+(每VLAN生成树)生成树协议使每个VLAN都有一个STP实例。

比较两个BID的大小的原则:一是网桥优先级小的BID优先,二是如果网桥优先级相同,BID中的后六个字节的MAC小的则BID优先。

2、路径开销:路径开销是生成树算法的第二个参数,决定到根网桥(根交换机)的路径。

通俗说,路径开销是用来衡量网桥之间的距离的远近的,其值是两个网桥之间某条路径上所有链路开销的总和。

路径开销与跳数无关。

路径开销决定到根网桥或根交换机的最佳路径,最小的路径开销是到根交换机的最佳路径。

路径开销的值的规律:带宽越大,STP开销越小。

3、端口ID:端口ID是生成树算法的第三个参数,也决定到根交换机的路径。

它由2个字节组成,包括“端口优先级”和“端口号”,各占8位。

端口优先级值从0-255,默认128;端口号包括256个。

端口ID大小的判定与BID大小的判定相同。

二、STP的过程1、STP判决和BPDU交换:当创建一个逻辑无环的拓扑时,STP总是通过发送BPDU的第二层帧来传递生成树协议,并执行相同的4步判决顺序:步骤1,确定根交换机;步骤2,计算到根交换机的最小路径开销;步骤3,确定最小的发送者BID;步骤4,确定最小的端口ID。

网桥为每个端口存储一个其收到的最佳BPDU,当有其他的BPDU到达交换机的端口时,交换机会使用四步判决过程来判断此BPDU是否比该端口原来存储的BPDU更好,如果新收到的BPDU(或者本地生成的BPDU)更好,则替换原有值。

当一个网桥第一次被激活时,其上所有端口每隔一个HELLO时间(默认2秒)发送一次BPDU;如果一个端口发现从其他网桥收到的BPDU比自己发送的好,则本地端口就停止发送BPDU;如果在MAX AGE(最大生存时间,默认20秒)内没有从邻居网桥收到更好的BPDU,本地端口则重新开始发送BPDU,即最大生存时间是最佳BPDU的超时时间。

2、STP收敛的三个步骤:生成树算法收敛于一个无环拓扑的初始过程包含三个选举步骤:步骤1 选举一个根交换机。

步骤2 选举根端口。

步骤3 选举指定端口。

在网络第一次“初始”时,所有网桥都洪泛混合的BPDU信息,网桥通过执行STP四步判决过程,形成整个网络或VLAN惟一的生成树。

在网络稳定后,BPDU 从根网桥流出,沿着无环支路到达网络中的每一个网段。

网络发生变化时,生成树协议按照收敛三个步骤做出处理。

(1)选举根交换机:根交换机是一个具有最小BID的网桥,它是惟一的,是通过交换BPDU选举得出来的。

BPDU的格式:BPDU是网桥之间用来交换生成树信息的特殊帧,它在网桥之间传播,包括交换机和所有配置来进行桥接的路由器,BPDU不携带终端用户流量。

BPDU包括根BID、根路径开销、发送者BID和端口ID信息。

也就是说,交换机通过传递BPDU来发现谁是最小的BID,从而将具有最小BID的网桥做为根交换机。

最初时,交换机总将自己认为是根网桥,当它发现有比自己小的BID时,就将收到的具有最小BID的交换机作为根网桥。

(2)选举根端口:在根交换机选举完后,就开始选举根端口了。

所谓根端口,就是按照路径开销最靠近根交换机的端口,也就是说具有最小根路径开销的端口。

每一个非根交换机都必须选举一个根端口。

(3)选举指定端口:通过以上两个步骤后,生成树算法还没有消除任何环路,因为还没有选举指定端口。

所谓指定端口,就是连接在某个网段上的一个桥接端口,它通过该网段既向根交换机发送流量也从根交换机接收流量。

桥接网络中的每个网段都必须有一个指定端口。

指定端口也是根据最小根路径开销来决定,因此根交换机上的每个活动端口都是指定端口,因为它的每个端口都具有最小根路径开销(实际是它的根路径开销是0)。

注意:指定端口只在中继端口(TRUNK口)起作用。

接入端口在指定端口选举中不起任何作用。

接入端口是用来连接到主机或者三层端口的。

3、STP状态在网桥已经确定了根端口、指定端口和非指定端口后,STP就准备开始创建一个无环拓扑了。

为创建一个无环的拓扑,STP配置根端口和指定端口转发流量,非指定端口阻塞流量。

实际上,STP决定端口转发和阻塞看似只有这两个状态,实际上是有五种状态的。

(1)、Disabled(为了管理目的或者因为发生故障将端口关闭);(2)、Blocking(在初始启用端口之后的状态。

端口不能接收或者传输数据,不能把MAC地址加入地址表,只能接收BPDU(bridge protocol data unit)。

如果检测到有一个桥接环,或者端口失去了它的根端口或者指定端口的状态,那么就会返回到Blocking状态);(3)、Listening(如果一个端口可以成为一个根端口或者指定端口,那么它就转入监听状态。

相关主题