设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 37006|回复: 113
收起左侧

[分享] stp协议

  [复制链接]
发表于 2009-11-12 08:51:42 | 显示全部楼层 |阅读模式
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值】
带宽    COST
10Gps    2
1Gps        4
100M        19
10M       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(如果一个端口可以成为一个根端口或者指定端口,那么它就转入监听状态。此时端口不能接收或者传输数据,也不能把MAC地址加入地址表,但可以接收和发送BPDU);
     (4)、Learning(在Forward Delay计时时间到(默认15秒)后,端口进入学习状态,此时端口不能传输数据,但可以发送和接收BPDU,也可以学习MAC地址,并加入地址表);
     (5)、Forwarding(在下一次转发延时计时时间到后,端口进入转发状态,此时端口能够发送和接收数据、学习MAC地址、发送和接收BPDU)。
     在这些状态过程中,会引发网络拓扑结构发生改变。此时,发生变化的交换机会在它的根端口上每隔hello time时间就发送TCN BPDU,直到上级的指定网桥邻居确认了该TCN(拓扑结构变化通知)为止。当根网桥收到后,会发送设置了TC(topology change,拓扑改变)位的BPDU,通知整个生成树拓扑结构发生了变化。这会让所有的下级交换机把它们的Address Table Aging(地址表老化)计时器从默认值(300秒)降为Fordwarding Delay(默认为15秒),从而让不活动的MAC地址比正常情况下更快地从地址表更新掉
 成长值: 59245
发表于 2009-11-12 11:50:44 | 显示全部楼层
顶起
沙发 2009-11-12 11:50:44 回复 收起回复
回复 支持 1 反对 0

使用道具 举报

 成长值: 59245
发表于 2009-11-13 15:58:40 | 显示全部楼层
板凳 2009-11-13 15:58:40 回复 收起回复
回复 支持 反对

使用道具 举报

 成长值: 59245
发表于 2009-11-16 14:34:16 | 显示全部楼层
看了楼主的帖子,不由得精神为之一振,自觉七经八脉为之一畅,七窍倒也开了六巧半,自古英雄出少年,楼主年纪轻轻,就有经天纬地之才,定国安邦之智,古人云,卧龙凤雏得一而安天下,而今,天佑我大**,沧海桑田5000年,**神州平地一声雷,飞沙走石,大舞迷天,朦胧中,只见顶天立地一金甲天神立于天地间,这人英雄手持双斧,二目如电,一斧下去,混沌初开,二斧下去,女娲造人,三斧下去,小生倾倒.得此大英雄,实耐之幸也,民之福也,怎不叫人喜极而泣.......古人有少年楼主说为证,少年之楼主如红日初升,其道大光;河出伏流,一泻**;潜龙腾渊,鳞爪飞扬;乳虎啸谷,百兽震惶;鹰隼试翼,风尘吸张;奇花初胎,皇皇;干将发硎,有作其芒;天戴其苍,地履其黄;纵有千古,横有八荒;小生对楼主之仰慕如滔滔江水连绵不绝,海枯石烂,天崩地裂,永不变心.
地板 2009-11-16 14:34:16 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2009-11-18 14:32:55 | 显示全部楼层
小弟编号二弟的工作服是一名专职潜水员,漂流于各**逼爱死已多年,万贴丛中过,片贴不沾衣,挥一挥衣袖,不留下一个不用回帖,今天,可是今天,我一定要在我的日记本上歪歪扭扭轰轰烈烈的记上这个不平凡的一天,真是一个划时代的日子,无意中看到楼主精美绝伦的贴子,不禁热血沸腾,再也忍受不了心情的激荡,浮出水面,拼死也要顶一下楼主的绝世好贴,此贴夏日观之则清凉,冬日观之则温暖,楼主一支出神入化如椽巨笔,已然达到五千年来汉字运用的颠峰,若以洋人诺贝尔文学奖的低级标准要求本贴,将是对本贴的无耻侮辱,作者显然已达到了以气御字的境界,老人观之则年轻,年轻人观之则从此人生观世界观进入一个崭崭新的世界,对生命的意义重新认识,最近小弟有一些感冒,看完本贴之后神清气爽不治而愈,有云,贴中自有颜如玉,贴中自有黄金屋,能朝朝闻道,必长生不老,本贴一定要给予强烈支持精美打印,哪怕不看,只要一闻本贴那油墨的清香,生命,从此,美丽了。我要说,看楼主贴奏是*世间最幸福的四儿,谢谢啊
5# 2009-11-18 14:32:55 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2009-11-18 14:33:12 | 显示全部楼层
6# 2009-11-18 14:33:12 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2010-4-9 20:13:36 | 显示全部楼层
   谢谢谢谢
7# 2010-4-9 20:13:36 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2010-6-10 10:41:14 | 显示全部楼层
很全面....stp主要是规划....原理 配置 都简单....感谢分享...>
8# 2010-6-10 10:41:14 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2010-12-16 03:03:45 | 显示全部楼层
很不错,感谢楼主分享!
9# 2010-12-16 03:03:45 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-2 13:54:08 | 显示全部楼层
没有例子!
10# 2011-11-2 13:54:08 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-2 16:36:29 | 显示全部楼层
谢谢
11# 2011-11-2 16:36:29 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-12-4 17:27:22 | 显示全部楼层
强啊,我现在才看见。
12# 2011-12-4 17:27:22 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-12-8 17:10:55 | 显示全部楼层
13# 2011-12-8 17:10:55 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-3-21 07:05:16 | 显示全部楼层
14# 2012-3-21 07:05:16 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-6-3 21:21:53 | 显示全部楼层
15# 2012-6-3 21:21:53 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-5-3 23:10 , Processed in 0.066262 second(s), 9 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表