生成树协议的发展历程浅析
- 格式:doc
- 大小:27.50 KB
- 文档页数:4
简介STP(生成树协议SpanningTreepProtocol)能够提供路径冗余,使用STP可以使两个终端中只有一条有效路径。
在实际的网络环境中,物理环路可以提高网络的可靠性,当一条线路断掉的时候,另一条链路仍然可以传输数据。
但是,在交换网络中,当交换机接收到一个未知目的地址的数据帧时,交换机的操作是将这个数据帧广播出去,这样,在存在物理的交换网络中,就会产生一个双向的广播环,甚至产生广播风暴,导致交换机死机。
如何既有物理冗余链路保证网络的可靠性,又能避免冗余环路所产生的广播风暴呢?STP协议是在逻辑上断开网络的环路,防止广播风暴的产生,而一旦正在用的线路出现故障,逻辑上被断开的线路又被连通,继续传输数据。
交换网络环路交换网络环路会带来3个问题:广播风暴、同一帧的多个拷贝和交换机CAM表不稳定。
交换网络环路的产生:PC1和PC2通过交换机相连。
网络初始状态时,PC1与PC2通信过程如下:1.在网络通信最初,PC1的ARP条目中没有PC2的MAC地址,PC1首先会向SW1发送一个ARP广播请求PC2的MAC地址;2.当SW1收到ARP的广播请求后,SW1会将广播帧从除接收端口之外的所有端口转发出去即会从F0/1和F0/2发出;3.SW2收到广播后,会将广播帧从F0/2和连接PC2的端口转发,同样SW3收到广播后,将其从F0/2端口转发;4.SW2收到SW3的广播后,将其从F0/1和连接PC2的端口转发,SW3收到SW2的广播后将其从F0/1端口转发;5.SW1分别从SW2、SW3收到广播帧,然后将从SW2收到的广播帧转发给SW3,而将从SW3收到的广播帧发给SW2。
SW1、SW2和SW3会将广播帧相互转发。
这时网络就形成了一个环路,而交换机并不知道,这将导致广播帧在这个环路中永远循环下去。
STP工作原理STP运行STA(生成树算法Spanning Tree Algorithm)。
STA算法很复杂,但是其过程可以归纳为以下三个步骤:1.选择根网桥(Root Bridge);1>网桥ID最小。
1. 前言和其他协议一样,生成树协议也是随着网络的不断发展而不断更新换代的。
本文按照技术发展的主线,介绍了生成树协议的发展历程、近期热点和未来的发展方向。
生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能。
由于生成树协议本身比较小,所以并不像路由协议那样广为人知。
但是它却掌管着端口的转发大权—“小树枝抖一抖,上层协议就得另谋生路”。
真实情况也确实如此,特别是在和别的协议一起运行的时候,生成树就有可能断了其他协议的报文通路,造成种种奇怪的现象。
生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。
本文标题中的“生成树协议”是一个广义的概念,并不是特指IEEE 802.1D中定义的STP协议,而是包括STP以及各种在STP基础上经过改进了的生成树协议。
在生成树协议发展过程中,老的缺陷不断被克服,新的特性不断被开发出来。
按照大功能点的改进情况,我们可以粗略地把生成树协议的发展过程划分成三代,下面一一道来。
2. 开天辟地的第一代生成树协议:STP/RSTP在网络发展初期,透明网桥是一个不得不提的重要角色。
它比只会放大和广播信号的集线器聪明得多。
它会悄悄把发向它的数据帧的源MAC地址和端口号记录下来,下次碰到这个目的MAC地址的报文就只从记录中的端口号发送出去,除非目的MAC地址没有记录在案或者目的MAC地址本身就是多播地址才会向所有端口发送。
通过透明网桥,不同的局域网之间可以实现互通,网络可操作的范围得以扩大,而且由于透明网桥具备MAC地址学习功能而不会像Hub那样造成网络报文冲撞泛滥。
但是,金无足赤,透明网桥也有它的缺陷,它的缺陷就在于它的透明传输。
透明网桥并不能像路由器那样知道报文可以经过多少次转发,一旦网络存在环路就会造成报文在环路内不断循环和增生,甚至造成恐怖的“广播风暴”。
之所以用“恐怖”二字是因为在这种情况下,网络将变得不可用,而且在大型网络中故障不好定位,所以广播风暴是二层网络中灾难性的故障。
目录生成树 (2)摘要 (2)原理 (2)选举根桥 (3)生成树端口状态 (7)收敛 (7)数据结构 (8)算法实现 (16)实现代码 (17)C++代码 (17)Linux中源码 (24)总结 (31)生成树摘要在交换中,通常会设多个交换设备,并在交换设备之间建立多个连接来提供链路的冗余性,但是这有可能是网络中产生环路。
为了解决这个问题,在提供冗余的同时,我们可以使用生成树协议来防止产生网络环路。
生成树协议最早是由DEC公司开发的,后来,IEEE开发了自己的STP版本,称为802.1D,有兴趣的可自行查阅资料。
STP的主要任务是阻止在第二层网络上产生网络环路。
它监视着网络中的所有链路,通过关闭一些冗余的接口来确保在网络中不会产生环路。
STP采用生成树算法,它首先创建一个拓扑数据库,然后搜索并破坏掉冗余的链路。
运行了STP算法之后,帧就只能被转发到保险的有STP挑选出来的链路上。
原理在介绍生成树原理之前,首先要来介绍一些专业术语:BPDU:BPDU就是桥协议数据单元,所有的交换设备相互之间都交换信息,并利用这些信息来选出根交换设备,也根据这些信息来进行网络的后续配置。
每台交换设备都对桥协议数据单元中的参数进行比较,它们将BPDU传送给某个邻居,并在其中放入他们从其他邻居那里收到的BPDU。
根桥:根桥是ID最低的网桥,对于STP来说,关键的问题是为网络中所有的交换机推选出一个根桥,并让根桥成为网络中的焦点。
在网络中,所有其他的决定,如哪一个端口要被阻塞,哪个端口要被置为转发状态——都是根据根桥的判断来做出的。
桥ID:SPT利用桥ID来跟踪网络中的所有交换机。
桥ID是由桥优先级和MAC 地址的组合来决定的。
在网络中,桥ID最小的网桥为根桥。
非根桥:出了根桥外,其它所有网桥都是非根桥。
他们相互之间都交换BPDU,并在所有交换机上更新STP拓扑数据库,以防止环路并对链路失效采取补救措施。
端口开销:当两台交换机之间有多条链路且都不是根端口时,就根据端口开销来决定最佳路径,链路的开销取决于链路的带宽。
生成树协议实验报告总结《生成树协议实验报告总结》嘿,家人们!今天来给大家唠唠我做生成树协议实验的那些事儿,总结一下我的感受和见解,保证让你们感同身受呀。
一开始,看到这个实验的时候,我心里就犯嘀咕:“哎呀呀,这是啥玩意儿啊,咋感觉这么高深莫测呢。
”不过咱也不能退缩不是,硬着头皮就上了。
在做实验的过程中,那可真是状况百出啊。
一会儿这边连线出问题了,一会儿那边参数又设置错了,感觉自己就像个无头苍蝇到处乱撞。
不过还好,经过一番捣鼓,总算是有点眉目了。
然后呢,就开始观察实验现象啦。
嘿,你还别说,看着那些网络拓扑结构一点点变化,还真挺有意思的。
就好像在看一个小世界在我面前一点点构建起来一样。
这个生成树协议啊,就像是网络世界里的交通指挥员,指挥着数据流量该怎么走。
要是没有它呀,那可就乱套了,数据都不知道该往哪儿跑啦。
所以说,它的作用那是杠杠的呀!做这个实验,也让我深刻认识到了细节的重要性。
一个小小的参数设置错误,可能就导致整个实验失败。
这就好比盖房子,一块砖头没放好,整栋房子都可能歪了。
而且啊,团队合作也很重要。
我和小伙伴们一起讨论、一起解决问题,那感觉可带劲了。
要是自己一个人闷头干,估计还得费不少时间和精力呢。
最后,说一下我的经验教训吧。
首先,一定要认真看实验指导书,把每个步骤都搞清楚,不然肯定会出问题。
其次,遇到问题不要慌张,静下心来慢慢分析,总能找到解决办法的。
最后,就是要多和别人交流分享,说不定别人的一个小建议就能让你豁然开朗。
总之,这次生成树协议实验让我学到了不少东西,既有知识又有经验。
虽然过程有些曲折,但最后看到实验成功的时候,那种成就感真的是爆棚啊!希望我的这些感受和见解能对大家有所帮助,下次做实验的时候都能顺顺利利的啦!哈哈!。
简述stp生成树协议的由来STP(生成树协议)的由来主要源于解决二层环路交换网络中的环路问题。
在二层以太帧中,没有防止环路的机制,一旦存在环路,就会导致报文在环路内不断循环和增生,产生广播风暴,从而占用大量的带宽和资源,使网络变得不可用。
在这种背景下,STP(生成树协议)应运而生。
它是一种二层管理协议,通过有选择性地阻塞网络冗余链路来消除二层环路,同时具备链路备份功能。
STP最初被广泛运用的是IEEE 802.1d-1998 STP。
随后在此基础上产生了IEEE 802.1w RSTP(快速生成树协议)和IEEE 802.1s MSTP(多生成树协议)。
STP的基本原理是,通过在交换机之间传递一种特殊的协议报文,网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),来确定网络的拓扑结构。
BPDU有两种,配置BPDU(Configuration BPDU)和TCN BPDU。
前者是用于计算无环的生成树的,后者则是用于在二层网络拓扑发生变化时产生用来缩短MAC表项的刷新时间的(由默认的300s缩短为15s)。
STP的基本思想就是按照“树”的结构构造网络的拓扑结构,树的根是一个称为根桥的桥设备,根桥的确立是由交换机或网桥的BID(Bridge ID)确定的,BID最小的设备成为二层网络中的根桥。
BID又是由网桥优先级和MAC地址构成,不同厂商的设备的网桥优先级的字节个数可能不同。
由根桥开始,逐级形成一棵树,根桥定时发送配置BPDU,非根桥接收配置BPDU,刷新最佳BPDU并转发。
STP(生成树协议)通过以下方式避免环路的产生:1.根桥选举:STP首先在网络中选举一个根桥(Root Bridge),这是整个STP域的管理中心。
根桥的选择基于桥ID,桥ID最小的设备将成为根桥。
2.计算最短路径:每个设备都会发送BPDU(Bridge Protocol Data Units)信息,用于建立桥间通信。
简述生成树协议的工作过程一、引言生成树协议是网络中的一种重要协议,它能够有效地避免网络中的环路问题,保证数据在网络中的正常传输。
本文将详细介绍生成树协议的工作过程。
二、生成树协议概述生成树协议是一种链路层协议,用于解决交换机之间的环路问题。
它通过计算生成一棵覆盖整个网络的最小成本树,从而使得数据在网络中只有唯一路径传输,避免了环路问题。
三、生成树协议工作原理1. 建立拓扑结构在生成树协议中,首先需要建立整个网络的拓扑结构。
交换机之间通过链路相连,形成一个网状结构。
为了方便计算最小成本树,需要给每条链路赋予一个权值。
2. 选举根交换机为了确定整棵最小成本树的结构,需要选举出一个交换机作为根节点。
通常情况下,选举规则是选择MAC地址最小的交换机作为根节点。
3. 计算最小成本树选举出根节点后,各个交换机开始计算到达根节点的最短路径,并选择其中代价最小的路径作为自己到根节点的路径。
这个过程称为生成树计算。
4. 剪枝在计算出最小成本树之后,可能会出现一些冗余链路。
为了避免这些链路造成环路问题,需要进行剪枝操作。
具体来说,就是在最小成本树中选择一些边,将它们从图中删除,从而形成一棵无环的生成树。
5. 维护生成树在网络运行过程中,可能会出现链路断开、交换机故障等情况。
如果不及时处理这些问题,可能会导致整个网络瘫痪。
因此,在生成树协议中需要实时监测网络状态,并对发生变化的情况进行处理,以保证整个网络的正常运行。
四、生成树协议的优缺点1. 优点(1)避免环路问题:通过计算最小成本树并剪枝操作,能够有效地避免网络中出现环路问题。
(2)提高网络性能:通过保证数据只有唯一路径传输,能够提高网络传输效率。
(3)简单易用:生成树协议实现简单、易于配置和维护。
2. 缺点(1)容易造成链路拥塞:由于所有数据只能通过一条路径传输,可能会导致某些链路拥塞,从而影响网络性能。
(2)不适用于大型网络:在大型网络中,生成树协议的计算量过大,可能会导致网络延迟增加。
生成树协议的发展历程浅析
由于生成树协议本身比较小,所以并不像路由协议那样广为人知。
但是它却掌管着端口的转发和开关的大权。
在和别的协议一起运行的时候生成树就有可能切断其他协议报文通路,造成种种奇怪的现象。
生成树协议和其他协议一样是随着网络的不断发展而不断更新换代的。
总的来说可以分成以下三代生成树协议。
一、第一代生成树协议STP和RSTP
1.Spanning Tree Protocol
以太网络发展初期,透明网桥是一个不得不提的重要功能。
它比只会放大和广播信号的HUB功能强大很多。
它能把发向它的数据帧的源MAC和端口记录下来,下次如果再遇到这个目的MAC的帧就只从记录中的端口号发送出去,可以加快处理帧的速度。
除非目的MAC没有记录或者目的MAC就是多播地址才会向所有端口发送。
通过透明网桥不同的局域网之间可以互相通讯,而且由于具备MAC地址学习功能,不会像HUB那样造成网络流量的碰撞,但是透明网桥也有它的不足之处,就是透明网桥并不能像路由器那样知道数据帧可以经过多少次转发,一旦网络存在环路就会造成数据帧在环路内不断循环和增生甚至造成广播风暴,导致网络不可用。
另外由于在大型网络中不好定位,所以广播风暴是二层网络灾难性的故障。
在这种环境下产生的生成树协议很好地解决了这一问题,生成树协议的基本思想十分简单。
因为自然界中生长的树是不会出现环路的,所以如果网络也能够像一棵树那样生长就永远不会出现环路。
因此生成树协议定义了以下一些概念。
根桥Root Bridge
根端口Root Port
指定端口Designated Port
路径开销Path Cost
定义这些概念的目的就在于通过构造一棵自然树的方法达到裁剪冗余环路的目的同时实现链路备份和路径最优化,用于构造这棵树的算法就叫做生成树算法(Spanning Tree Algorithm,SPA),用这种算法构造网络树的协议也就被称为生成树协议。
要实现这些功能网桥之间必须要交换一些信息,这些信息交流单元就称为网桥协议数据单元(Bridge Protocol Data Unit,BPDU),这是一种二层数据帧,它指向的目的地址是MAC多播地址01-80-C2-00-00-00,所有支持STP协议的网桥都会接收到该数据帧,其中的数据区里携带了用于生成树计算的所有有用信息。
通过这些信息,加上生成树协议的算法就可以达到生成一个无环路拓扑。
2.Rapid Spanning Tree Protocol
由于生成树的计算时间相对来说比较长,对一些实时性要求比较高的业务,比如IP语音(V oice over IP,VOIP)的网络,这可能导致严重的性能问题。
为了克服这些问题,出现了快速生成树协议(Rapid Spanning Tree Protocol,RSTP),即802.1w,它与802.1d是可以共用的,是802.1d的扩展版本。
快速生成树协议中的端口只有三种状态:丢弃状态,学习状态和转发状态,相比生成树协议的五种状态提高了效率,并且可以实现更快的收敛速度。
3.STP和RSTP的缺点
快速生成树协议相对于生成树协议的确改进了很多,为了支持这些改进对网桥协议数据单元的格式做了一些修改,但仍然向下兼容生成树协议,可以在一个网络中同时包含快速生成树协议和生成树协议,虽然如此快速生成树协议和生成树协议一样同属于单生成树(Single Spanning Tree,SST),它自身有很多缺陷,总的来说表现在三个方面:
(1)由于整个交换网络只有一棵生成树,在网络规模比较大的时候会导致较长的收敛时间,并且一旦拓扑改变会造成较大的影响面积。
(2)在网络结构不对称的时候单生成树会影响网络的连通性。
(3)当链路被阻塞后将不承载任何流量,造成了带宽的极大浪费,这在环行城域网的情况下比较明显。
二、第二代生成树协议PVST和PVST+
1.PVST和PVST+
上一小节所述的那些缺陷都是单生成树无法克服的,于是支持VLAN的生成树协议出现了。
每个VLAN都生成一棵树是一种比较直接而且最简单的解决方法,它能够保证每一个VLAN都不存在环路,但是由于种种原因以这种方式工作生成树并没有形成标准协议,而是各个厂商都出了自己的一套协议,其中尤以Cisco的每VLAN生成树(Per VLAN Spanning Tree,PVST)最为为代表。
但是为了携带更多的信息,每VLAN生成树的网桥协议数据单元已经和生成树协议和快速生成树协议的网桥协议数据单元不一样了,所以最初的每VLAN 生成树协议并不兼容生成树协议和快速生成树协议。
所以Cisco很快推出了能兼容生成树协议和快速生成树协议的VLAN生成树
协议每VLAN生成树+(Per VLAN Spanning Tree +,PVST+)。
2.PVST和PVST+的缺点
PVST和PVST+ 协议实现了VLAN认知能力和负载均衡能力,但是新技术也带来了新问题,PVST/PVST+ 协议也有它们一些缺点:
(1)由于每个VLAN都需要生成一棵生成树,所以PVST的网桥协议数据单元通信量将和干道(Trunk)中的需要中继的VLAN个数成正比。
(2)在创建VLAN个数比较多的时候维护多棵生成树的计算量和资源占用量将急剧增长。
(3)由于协议的私有性PVST/PVST+不能像生成树协议和快速生成树协议一样得到广泛的支持。
三、第三代生成树MISTP和MSTP
MISTP和MSTP一般情况下网络的拓扑结构不会频繁变化,所以PVST/PVST+的上述缺点并不会很致命,但是端口需要中继大量VLAN的这种需求还是存在的。
所以Cisco又推出了新的生成树协议:多实例生成树协议(Multi-Instance Spanning Tree Protocol,MISTP)。
在这个协议中引入了“实例”这个概念,相对与PVST/PVST+而言每一个VLAN对应一个生成树,而在多实例生成树协议中是每个实例对应一个生成树。
一个实例中可以包含多个VLAN,不过一个VLAN不能对应到多个实例中去。
在使用的时候可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN 在端口上转发状态将取决于对应实例在MISTP里的状态。
多实例生成树协议带来的好处是显而易见的,它既有PVST对VLAN的认知能力和负载均衡能力,又拥有可以和单生成树协议相媲美的低CPU占用率。
不过极差的兼容性阻碍了多实例生成树协议的大范围应用,而且它是一个Cisco 私有协议。
多生成树协议(Multiple Spanning Tree Protocol,MSTP)是美国电气电子工程师学会在802.1s中定义的一种新型生成树协议,这个协议目前仍然在制定过程中。
多生成树协议设计巧妙的地方在于把支持多生成树协议的交换机和不支持多生成树协议的交换机划分成不同的区域,分别称作多生成树(Multiple Spanning Tree,MST)域和单生成树(Single Spanning Tree,SST)域在多生成树域内部运行多实例化的生成树在多生成树域的边缘运行快速生成树协议兼容其他协议。
四、生成树协议在未来的发展
任何技术的发展都不会因为某项理想技术的出现而停滞,生成树协议的发展
历程本身就说明了这一点。
随着应用的深入各种二层隧道技术不断涌现,在这种新形势下生成树协议该往何处走?不过可喜的是各家厂商已经开始了这方面的探索,虽然现在还没有一个统一的意见,但是可以预见,将来一段时间内生成树协议仍然会在网络中发挥重要的作用。