交换机生成树协议研究毕业论文

上传人:s**** 文档编号:75123652 上传时间:2022-04-15 格式:DOC 页数:44 大小:1.10MB
返回 下载 相关 举报
交换机生成树协议研究毕业论文_第1页
第1页 / 共44页
交换机生成树协议研究毕业论文_第2页
第2页 / 共44页
交换机生成树协议研究毕业论文_第3页
第3页 / 共44页
点击查看更多>>
资源描述
. . . . 交换机生成树协议研究摘 要生成树协议(Spanning Tree Protocol STP)是用于局域网中消除数据链路层物理环路的协议。运行该协议的交换机通过彼此交互报文发现网络中的环路,并有选择性的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而达到消除二层环路的目的。STP的缺点是收敛速度慢,为解决这一缺陷,RSTP应运而生。快速生成树协议(Rapid Spanning Tree Protocol RSTP)在STP的基础上,缩短了转发延时可以快速收敛,但是和STP一样,局域网所有交换机共享一棵生成树,不能解决链路负载分担的问题,多生成树协议(Multiple Spanning Tree Protocol MSTP)可以弥补这一缺陷,它既可以快速收敛,也能使不同VLAN的流量沿各自的路径转发,从而为冗余链路提供了更好的负载分担机制。本论文论述了STP,RSTP和MSTP的产生背景和发展,基本概念和原理,以与它们各自的缺陷,并针对这些问题提出了自己的见解。关键词:生成树协议,快速生成树协议,虚拟局域网,多生成树协议Spanning Tree ProtocolAbstract:Spanning Tree Protocol (Spanning Tree Protocol STP) is used for LAN data link layer to eliminate the physical loops in the agreement. Switch by running the protocol packets that the network interact with each other in the loop, and selectively blocking certain ports, and ultimately into the loop network loop-free tree pruning the network structure, to achieve the elimination of two layer loop purposes. STP drawback is slow convergence, to address this shortcoming, RSTP came into being. RSTP (Rapid Spanning Tree Protocol RSTP) in the STP, based on the forwarding delay can be shortened fast convergence, however, and STP, as all the switches share 、a LAN spanning tree, load-sharing link can not solve the problem of MSTP (Multiple Spanning Tree Protocol Multiple Spanning Tree Protocol) can fill this gap, both for fast convergence, but also make different VLAN traffic along their path forward, so as to redundant links to provide a better load-sharing mechanism. This paper discusses the STP, RSTP and MSTP the background and development, basic concepts and principles, and their respective deficiencies and address these issues put forward their own views.Keyword:Spanning Tree Protocol,Rapid Spanning Tree Protocol,VLAN,Multiple Spanning Tree Protocol目 录第一章前言1第二章以太网交换机22.1 以太网发展历史与现状22.2 传统以太网22.3 透明桥工作原理32.4 传统以太网与交换式以太网32.5 STP的产生3第三章生成树协议 STP53.1 STP协议基本原理53.2 STP基本概念53.3 STP端口73.3.1 端口状态73.3.2 端口状态迁移83.4 STP协议报文93.4.1 配置BPDU93.4.2 TCN BPDU103.5STP算法实现的具体过程113.5.1 配置消息比较原则113.5.2 最优配置消息的选择113.5.3 根桥的选择113.6 STP的配置消息传递机制123.7 STP定时器133.8 STP拓扑结构的改变133.9 STP算法举例153.10 STP 的缺点18第四章快速生成树协议 RSTP194.1 RSTP的产生背景194.2 RSTP协议的改进204.3 RSTP的缺点27第五章虚拟局域网285.1 VLAN概述285.2 VLAN原理29第六章多生成树 MSTP316.1 MSTP的产生背景316.2 MSTP基本概念326.3端口角色和端口状态346.3.1 端口角色346.3.2 端口状态356.4 MSTP的基本原理356.4.1 CIST生成树的计算366.4.2 MSTI的计算366.4.3 生成树协议算法实现过程36结论38致39参考文献4040 / 44第一章 前言在实际的交换网络中,为了提高整个网络的可靠性,消除单点失效故障,通常在网络设计中采用多台设备、多个端口、多条线路的冗余连接方式。但是这样的拓扑结构会导致二层环路的产生,如果交换机不对二层环路做处理,将会导致严重的网络问题,如:广播风暴,帧的重复复制,交换机的MAC地址漂移等问题。生成树协议就是为了解决二层环路而产生的,STP能够自动发现冗余网络拓扑中的环路,保留一条最佳链路做转发链路,阻塞其他冗余链路,并且在网络拓扑结构发生变化的情况下重新计算,保证所有的网段的可达且无环路。STP协议和其它网络协议一样,是随着网络的不断发展而不断更新换代的。最初被广泛应用的是IEEE802.1d版本,随后又出现了IEEE802.1w RSTP协议和IEEE802.1s MSTP协议。RSTP协议提供了端口状态的快速转换功能,使网络拓扑的收敛时间大大减少。MSTP协议在RSTP协议的基础上引入了域和实例的概念,首先将网络中不同的桥设备与其VLAN划分为不同的域,在域设定各个VLAN到生成树实例的映射关系,这样既提供了快速收敛能力,同时也在域对网络冗余的网络带宽进行了有效应用。MSTP具有LVAN认知能力,可以实现负载均衡,实现类似RSTP的端口状态快速切换,可以捆绑多个VLAN到一个实例中以降低资源占用率,可以很好的兼容STP/RSTP协议。因此,MSTP协议能够成为当今生成树发展的一致方向是当之无愧的。然而,随着应用的深入,各种新的二层隧道技术不断涌现,例如Cisco的802.1q Tunneling,今后生成树协议该如何发展,又需要我们积极的去探索研究了。第二章 以太网交换机2.1 以太网发展历史与现状以太网是在70年代由Xerox公司Palo Alto研究中心推出的。由于介质技术的发展,Xerox可以将许多机器相互连接,形成巨型打印机,这就是以太网的原型。后来,Xerox公司推出了带宽为2Mb/s的以太网,又和Intel和DEC公司合作推出了带宽为10Mb/s的以太网,这就是通常所称的以太网或以太网DIX(Digital,Intel和Xerox)。IEEE(电器和电子工程师协会)下属的802协委员会制定了一系列局域网标准,其中以太网标准(IEEE802.3)与由Intel、Digital 和Xerox推出的以太网非常相似。随着以太网技术的不断进步与带宽的提升,目前在很多情况下以太网成为了局域网的代名词。2.2 传统以太网以太网使用CSMA/CD(Carrier Sense Multiple Access with Collision Detection,带有冲突监测的载波侦听多址访问)。首先,以太网网段上需要进行数据传送的节点对导线进行监听,这个过程称为 CSMA/CD的载波侦听。如果,这时有另外的节点正在传送数据,监听节点将不得不等待,直到传送节点的传送任务结束。如果某时恰好有两个工作站同时准备传送数据,以太网网段将发出“冲突”信号。这时,节点上所有的工作站都将检测到冲突信号,因为,这时导线上的电压超出了标准电压。冲突产生后,这两个节点都将立即发出拥塞信号,以确保每个工作站都检测到这时以太网上已产生冲突,然后,网络进行恢复,在恢复的过程中,导线上将不传送数据。当两个节点将拥塞信号传送完,并过了一段随机时间后,这两个节点便开始启动随机计时器。第一个随机计时器到期的工作站将首先对导线进行监听,当它监听到没有任何信息在传输时,便开始传输数据。当第二个工作站随机计时器到期后,也对导线进行监听,当监听到第一个工作站已经开始传输数据后,就只好等待了。在 CSMA/CD 方式下,在一个时间段,只有一个节点能够在导线上传送数据。如果其他节点想传送数据,必须等到正在传输的节点的数据传送结束后才能开始传输数据。以太网之所以称作共享介质就是因为节点共享同一传输介质这一事实。2.3 透明桥工作原理在网络发展初期,透明网桥是一个不得不提的重要角色。它比只会放大和广播信号的HUB聪明的多,它会悄悄把发向它的数据帧的源MAC和端口记录下来,下次碰到这个目的MAC的报文就只从记录中的端口号发送出去,除非目的的MAC没有记录或者目的的MAC就是多播地址才会向所有端口发送,通过透明网桥不同的局域网之间可以互通,而且由于具备MAC地址学习功能而不会像HUB那样造成网络报文冲撞泛滥。2.4 传统以太网与交换式以太网HUB(集线器)只对信号做简单的再生与放大,所有设备共享一个传输介质,设备必须遵循CSMA/CD方式进行通讯。使用HUB连接的传统共享式以太网中所有工作站处于同一个冲突域和同一个广播域之中。交换机根据MAC地址转发或过滤数据帧,隔离了冲突域,工作在数据链路层。所以交换机每个端口都是单独的冲突域。如果工作站直接连接到交换机的端口,此工作站独享带宽。但是由于交换机对目的地址为广播的数据帧做洪泛的操作,广播帧会被转发到所有端口,所以所有通过交换机连接的工作站都处于同一个广播域之中。2.5 STP的产生在现在的局域网结构中,为了提高整个网络的可靠性,消除单点失效故障,通常在网络设计中采用多台设备、多个端口、多条线路的冗余连接方式。但是这样的连接方式会产生环路问题,如图2-1所示:图2-1 冗余连接在图2-1所示的网络中,可能产生如下的两种情况:1. 广播环路当PC A发出一个广播数据帧时,该广播会被无休止的转发。在很短的时间大量重复的广播帧被不断循环转发消耗掉整个网络的带宽,而连 接在这个网段上的所有主机设备也会受到影响,CPU 将不得不产生中断来处理不 断到来的广播帧,极消耗系统的处理能力,严重的可能导致死机。2. MAC地址表震荡在图2-1中,即使是单播,也有可能导致异常。交换机SW1可以在端口B上学习到PC B的MAC地址,但是由于SW2会将PC B发出的数据帧向自己其它的端口转发,所以SW1也可能在端口A上学习到PC B的MAC地址。如此SW1会不停的修改自己的MAC地址表。这样就引起了MAC地址表的抖动。在实际的组网应用中经常会形成复杂的多环路连接。面对如此复杂的环路,网络设备必须有一种解决办法阻止环路的发生。在这种情况下,生成树协议以救世主的角色出现了。第三章 生成树协议 STP3.1 STP协议基本原理STP协议的基本原理非常简单,自然界生长的树是不会出现环路的,如果网络也能够像一棵树一样的生长就不会出现环路。因此,STP协议中定义了根桥(Root Bridge)、根端口(Root Port)、指定端口(Designated Port)、路径开销(Path Cost)等概念,目的就在于通过构造一棵自然树的方法达到剪裁冗余环路的目的,同时实现链路备份和路径最优化。为了实现这些功能,交换机之间就必须进行一些信息交流,这些信息交流单元成为配置消息BPDU(Bridge Protocol Data Unit),STP BPDU为二层报文,数据区携带了用于生成树计算的所有有用信息,所有支持STP协议的交换机都会接收并处理收到的BPDU报文。用于构造这棵树的算法称为生成树算法SPA(Spanning Tree Algorithm),STP的基本思想是生成“一棵树”,树的根是称为根桥的交换机,根据桥ID不同,较优的交换机被选为根桥,任意时刻只能有一个根桥。由根桥开始,逐级形成一棵树,根桥定时发送配置消息,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,从此交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。3.2 STP基本概念1. 跟桥(Root Bridge)树形的网络结构,必须要有树根,于是STP引入了跟桥的概念。根桥在全网中只有一个,而且根桥会根据网络拓扑的变化而改变,因此根桥并不是固定的。网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置BPDU,其他的设备对该配置BPDU进行转发,从而保证拓扑的稳定。2. 根端口(Root Port)所谓根端口,是指一个非根桥的设备上离根桥最近的端口。根端口负责与根桥进行通信。非根桥设备上有且只有一个根端口,根桥上没有根端口。3. 指定桥(Designated Bridge)与指定端口(Designated Port)1) 对于一台设备而言,指定桥是与交换机直接相连并且负责向交换机转发BPDU报文的设备,指定端口为指定桥向本机转发BPDU报文的端口;2) 对于一个局域网而言,指定桥是负责向本网段转发BPDU报文的设备,指定端口为指定桥向本网段转发BPDU报文的端口。指定桥与指定端口如图3-1所以,AP1、AP2、BP1、BP2、CP1、CP2分别表示设备Device A、Device B、Device C的端口。1) Device A通过端口AP1向Device B转发配置消息,则Device B的指定桥就是Device A,指定端口就是Device A的端口AP1;2) 与局域网LAN相连的有两台设备:Device B和Device C,如果Device B负责向LAN转发配置消息,则LAN的指定桥就是Device B,指定端口就是Device B的BP2。图3-1 指定桥和指定端口4. 路径开销(Path Cost)路径开销是STP协议用于选择链路的参考值。STP协议通过计算路径开销,选择较为“强壮”的链路,阻塞多余的链路,将网络修剪成无环路的树型网络结构。3.3 STP端口3.3.1 端口状态STP协议中的端口有五种状态,如下所示:1. Blocking(阻塞状态)该端口处于使能状态,但根据STP算法的计算结果,该端口不属于生成树的有效组成端口(既有其他路径可以生成生成树结构,同时比该端口所在的路径具有更优的结构)。处于阻塞状态的端口只接受STP BPDU报文,不转发STP BPDU报文,不接收和转发其他业务报文。2. Listening(监听状态)该端口处于使能状态,同时该端口已近被选为生成树的有效组成端口,但为了防止网络拓扑结构的动荡变化造成生成树的不稳当,在blocking和forwarding状态之间添加了listening状态,该状态监听网络中的BPDU报文判断是否有更优的路径,同时该端口开始将FDB表中的相关表项进行清除,该状态接收转发STP BPDU报文,不接受和转发普通业务报文。3. Learning(学习状态)该端口处于使能状态,同时该端口已经被选为生成树的有效组成端口。但为了防止网络拓扑结构的动荡变化造成生成树的不稳当,在blocking和forwarding状态之间添加了learning状态,在端口保持在listening状态一定时间之后,若没有发现其他更有路径,则该端口由listening状态转到learning状态。该状态监听网络中的BPDU报文判断是否有更优的路径,同时端口接收和转发STP BPDU报文,接收普通业务报文,并学习报文MAC地址,不转发普通业务报文。4. Forwarding(转发状态)该端口处于使能状态,同时该端口已经 被选为生成树的有效组成端口。在端口处于listening状态一定时间之后,若没有发现其他更优路径,该端口由listening状态转到forwarding转台。该状态接收和转发STP BPDU报文,同时接收和转发普通业务报文。5. Disable(禁用状态)该状态可以认为是物理上没有连通的端口。STP端口状态和各状态情况如表3-1所示。表3-1 端口状态端口状态地址学习能力转发/接收报文能力接收BPDU报文发送BPDU报文DisableNONONONOBlockingNONOYESNOListeningNONOYESYESLearningYESNOYESYESForwardingYESYESYESYES3.3.2 端口状态迁移STP协议端口状态迁移情况如图3-2所示:图3-2端口状态迁移(1)端口enable (4)端口被选为备用端口(阻塞)(2)端口disable (5)Forward delay 延时(3)端口被选为根端口或指定端口 3.4 STP协议报文STP采用的协议报文是BPDU(Bridge Protocol Data Unit,桥协议数据单元),也称为配置消息。STP BPDU为二层报文,缺省每2秒发出,数据区携带了用于生成树计算的所有有用信息。STP通过在设备之间传递BPDU来确定网络的拓扑结构。BPDU中包含了足够的信息来保证设备完成生成树的计算过程。BPDU在STP协议中分为两类:1. 配置BPDU(Configuration BPDU)用于进行生成树计算和维护生成树拓扑的报文。2. TCN BPDU(Topology Change Notification BPDU)当拓扑结构发生变化时,用于通知相关设备网络拓扑结构发生变化的报文。3.4.1 配置BPDUSTP通过在设备之间传递BPDU来确定网络的拓扑结构。配置消息中包含了足够的信息来保证设备完成生成树的计算过程。如图3-3所示:图3-3 配置BPDUBPDU数据报文的最后8个字段,分别是:根桥ID:由树根的优先级(0-65535,默认32768)和MAC地址组合而成,到树根的最短路径开销(实际由PortPathCost叠加而成),有两个标准dot1d-1998,默认值为100和dot1t,默认值为200000;指定桥的ID:由指定交换机的优先级和MAC地址组合而成;指定端口的ID:由指定端口的优先级(0-256,默认128)和端口编号组成;配置消息的生存期:MessageAge;配置消息的最大生存期:MaxAge;配置消息发送的周期:HelloTime;端口状态迁移的延时:ForwardDelay。启动了STP的交换机互相之间通过发送配置BPDU来完成根桥,指定桥的选举,各端口状态的选择和整个网络拓扑结构的确定。比较的关键部分在于这八个字段中的前四个字段,即:根桥ID、根路径开销、指定桥ID和指定端口的ID。其实还有一个接收端口的ID,用于本地比较(当交换机的2个端口都收到一样的BPDU时比如上连一个stp disable的交换机或hub)。比较的原则:从上到下、从左到右数值小者优先。STP协议使用的所有BPDU都是组播报文,目的MAC是01-80-c2-00-00-00。3.4.2 TCN BPDUTCN BPDU 格式如表3-2所示:表3-2 TCN BPDU域字节协议号2版本1类型1协议号:占用两个字节,STP协议的对应值为0000 0000 0000 0000版本:占用一个字节,STP协议的对应值是0000 0000类型:占用一个字节,configuration BPDU对应值是1000 00003.5 STP算法实现的具体过程3.5.1 配置消息比较原则配置消息的比较原则如下:1) 根桥ID较小的配置消息优先级高;2) 若根桥ID一样,则比较根路径开销,比较方法为:用配置消息中的根路径开销加上本端口对应的路径开销,假设两者之和为S,则S较小的配置消息优先级较高;3) 若根路径开销也一样,则比较以下的配置消息优先级,优先级较高的为根桥:指定桥ID、指定端口ID、接收该配置消息的端口ID等。3.5.2 最优配置消息的选择各台设备都向外发送自己的配置消息,同时也会收到其他设备发送的配置消息。最优配置消息的选择过程如下所示:1) 每个端口收到配置消息后的处理过程如下:a) 当端口收到的配置消息比本端口配置消息的优先级低时,设备会将接收到的配置消息丢弃,对该端口的配置消息不作任何处理。b) 当端口收到的配置消息比本端口配置消息的优先级高时,设备就用接收到的配置消息中的容替换该端口的配置消息中的容。2) 设备将所有端口的配置消息进行比较,选出最优的配置消息。3.5.3 根桥的选择网络初始化时,网络中所有的STP设备都认为自己是“根桥”,根桥ID为自身的桥ID。通过交换配置消息,设备之间比较根桥ID,网络中根桥ID最小的设备被选为根桥。1. 根端口、指定端口的选择根端口、指定端口的选择如下所示:1) 非根桥设备将接收最优配置消息的那个端口定为根端口。2) 设备根据根端口的配置消息和根端口的路径开销,为每个端口计算一个指定端口配置消息:a) 跟桥ID替换为根端口的配置消息的根桥ID;b) 根路径开销替换为根端口配置消息的根路径开销加上根端口对应的路径开销;c) 指定桥ID替换为自身设备的ID;d) 指定端口ID替换为自身端口ID。3) 设备使用计算出来的配置消息和需要确定端口角色的端口上的配置消息进行比较,并根据比较结果进行不同的处理:a) 如果计算出来的配置消息优,则设备就将该端口定为指定端口,端口上的配置消息被计算出来的配置消息替换,并周期性向外发送。b) 如果端口上的配置消息优,则设备不更新该端口配置消息并将此端口阻塞,该端口将不再转发数据,只接收但不发送配置消息;一旦根桥、根端口、指定端口选举成功,则整个树形拓扑就建立完毕了。3.6 STP的配置消息传递机制1. 当网络初始化时,所有的设备都将自己作为根桥,生成以自己为根的配置消息,并以Hello Time为周期定时向外发送。2. 接收到配置消息的端口如果是根端口,且接收的配置消息比该端口的配置消息优,则设备将配置消息中携带的Message Age按照一定的原则递增,并启动定时器为这条配置消息计时,同时将此配置消息从设备的指定端口转发出去。3. 如果指定端口收到的配置消息比本端口的配置消息优先级低时,会立刻发出自己的更好的配置消息进行回应。4. 如果某条路径发生故障,则这条路径上的根端口不会再收到新的配置消息,旧的配置消息将会因为超时而被丢弃,设备重新生成以自己为根的配置消息并向外发送BPDU和TCN BPDU,从而引发生成树的重新计算,得到一条新的通路替代发生故障的链路,恢复网络连通性。不过,重新计算得到的新配置消息不会立刻就传遍整个网络,因此旧的根端口和指定端口由于没有发现网络拓扑变化,将仍按原来的路径继续转发数据。如果新选出的根端口和指定端口立刻就开始数据转发的话,可能会造成暂时性的环路。3.7 STP定时器STP计算中,需要使用三个重要的时间参数:Forward Delay、Hello Time和Max Age。1. Forward Delay为交换机状态迁移的延迟时间。链路故障会引发网络重新进行生成树的计算,生成树的结构将发生相应的变化。不过重新计算得到的新配置消息无法立刻传遍整个网络,如果新选出的根端口和指定端口立刻就开始数据转发的话,可能会造成暂时性的路径回环。为此,生成树协议采用了一种状态迁移的机制,根端口和指定端口重新开始数据转发之前要经历一个中间状态,中间状态经过2倍的Forward Delay的延时后才能进入Forwarding状态,这个延时保证了新的配置消息已经传遍整个网络。2. Hello Time用于交换机检测链路是否存在故障。交换机每隔Hello Time时间会向周围的交换机发送hello报文,以确认链路是否存在故障。3. Max Age是用来判断配置消息在交换机保存时间是否“过时”的参数,交换机会将过时的配置消息丢弃。3.8 STP拓扑结构的改变STP的BPDU除了配置BPDU以外,还有TCN BPDU(Topology Change Notification BPDU)。TCN BPDU的结构很简单,只有Configuration BPDU的前3个字段,也就是Protocol、Version、Type,其余的字段均为填充字节,可以说这是一个不带桥信息的BPDU。TCN的发送按照本地配置的Hello Time,不同于配置BPDU的2s的Hello Time。STP中网桥怎么会认为拓扑结构发生改变了呢?根据以下2个原则:1. 原来处于转发状态的端口down了(处于Blocking状态非disable状态);2. 一个端口转移到了Forwarding状态,并且网桥有一个指定端口。对于拓扑结构改变可以作如下理解:这里的拓扑结构不是指物理上的拓扑变化,而是指树的结构的变化,比如A,B,C三台交换机互联,原本的结构是A(R),B,CA,C之间不通,后来变为A(R),C,BA,B之间不通。这就叫做拓扑结构的改变。同样如果A,B之间又加了一条链路,但是新加的链路被阻断了即不影响原来数据流量的转发,则认为拓扑结构没有发生变化。只要2个原则中的任何一种情况发生,则认为是拓扑结构发生了变化,检测到拓扑结构变化的交换机会从自己的根端口向上发送TCN,上行的指定端口接收到发来的TCN以后,会以本身的配置BPDU(此时将Flag字段中的TCA置1,Flag中一共有2个有效比特位,一个是TC,一个是TCA,关于Flag的描述见表3-3)回送一个确认。并通过它的根端口继续向上发TCN,一直到达根桥为止。发送TCN的交换机收到确认以后将不再发送TCN,如果上行指定端口没有发回确认,则下行的根端口会不断发送TCN。表3-3 Flag字段Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TCAReservedTC当根桥受到TCN以后由根桥向全网泛洪TC位置1的配置BPDU,所有的交换机都会转发这个报文直到整个网络都知道拓扑结构发生了改变。根桥发送这个BPDU的时间是20s+15s=35s,MaxAge + Forwarding Time的时间。根桥发送这个BPDU的实质是为了加快MAC地址表的老化一般情况下MAC地址表要300s才能老化,而已经知道拓扑结构发生变化的情况下还要等上数分钟才能通过其他链路转发数据,这会在一段时间造成报文的无法转发,最糟糕的就是刚好要等5分钟。图3-4 拓扑变化导致A一段时间无法ping通B在图3-4中,B的mac地址学习在1端口,当拓扑变化后,2端口所在链路变成Forwarding,1被阻断,但是B的MAC地址还是学习在端口1,如果B不发送任何数据报文来刷新MAC表,那么A只有等到B的MAC地址老化后才能重新访问到B。TC正是通知各交换机将MAC地址老化时间更新为ForwardingTime=15s。交换机收到TC15s以后开始删除MAC地址表并重新学习,正好完成状态的迁移。3.9 STP算法举例下面举例说明一下STP算法的具体实现过程,拓扑图如图3-5所示;图3-5 STP算法拓扑图为了描述方便,这里指比较BPDU的前四项:根桥ID(以以太网交换机的优先级表示),根路径开销,指定交换机ID(以以太网交换机的优先级表示),指定端口ID(以端口号表示)。假设SWA,SWB,SWC的桥优先级分别为0,1,2。各链路开销为2,3,6。这里要特别说明一点:Root Path Cost不是一个可配置项,即它是由交换机根据Port Path Cost比较而累积得出的,Port Path Cost才是一个可配置的选项。图中的链路开销可理解为2端端口的Port Path Cost,只不过它们恰好一样而已。1. 初始状态各台交换机的各个端口在初始时会生成以自己为根的配置消息,根路径开销为0,指定交换机ID为自身交换机ID,指定端口为本端口。Switch A:端口AP1配置消息:0,0,0,AP1端口AP2配置消息:0,0,0,AP2Switch B:端口BP1配置消息:1,0,1,BP1端口BP2配置消息:1,0,1,BP2Switch C:端口CP2配置消息:2,0,2,CP2端口CP1配置消息:2,0,2,CP12. 选出最优配置消息各台交换机都向外发送自己的配置消息。相互进行比较,如果收到比自己更优的BPDU则进行BPDU的更新,把对方的BPDU信息缓存下来,并不再发送BPDU。3. 确定根桥,确定根端口,确定其余端口为指定端口还是Block端口。图3-5中各台交换机的比较过程如下:Switch A:端口AP1收到Switch B的配置消息,Switch A发现本端口的配置消息优先级优于接收到的配置消息的优先级,就把接收到的配置消息丢弃。端口AP2的配置消息处理过程与端口AP1类似。Switch A发现自己各个端口的配置消息中树根和指定交换机都是自己,则认为自己是树根,各个端口的配置消息都不作任何修改,以后周期性的向外发送配置消息。此时两个端口的配置消息如下:端口AP1配置消息:0,0,0,AP1。端口AP2配置消息:0,0,0,AP2。Switch B:端口BP1收到来自Switch A的配置消息,经过比较后Switch B发现接收到的配置消息的优先级比端口BP1的配置消息的优先级优,于是更新端口BP1的配置消息。端口BP2收到来自Switch C的配置消息,Switch B发现该端口的配置消息优先级优于接收到的配置消息的优先级,就把接收到的配置消息丢弃。则此时各个端口的配置消息如下:端口BP1配置消息:0,0,0,AP1,端口BP2配置消息:1,0,1,BP2。确定根端口:Switch B对各个端口的配置消息进行比较,(这是一个计算的过程,将各个端口的配置BPDU读取并加上Port Path Cost然后进行比较,其他的字段值不变。)选出端口BP1的配置消息为最优配置消息,然后将端口BP1定为根端口。BP1配置消息不作改变:0,0,0,AP1。确定指定端口:每一个非根端口都会做如下比较:将根端口保存的BPDU加上根端口的Port Path Cost并把BID修改为本桥PID修改为本端口后和本端口的BPDU比较,如果比本端口的BPDU更优,则本端口被选为指定端口,(如果本端口的更优,那么本端口被选为Blocking端口)并且原BPDU被刷新,下一次向外发送更优的BPDU。端口BP2配置消息中,树根ID更新为最优配置消息中的树根ID,根路径开销更新为2,指定交换机ID更新为本交换机ID,指定端口ID更新为本端口ID,配置消息变为:0,2,1,BP2。Switch C:端口CP2先会收到来自Switch B端口BP2更新前的配置消息1,0,1,BP2,Switch C触发更新过程,更新后的配置消息如下:1,0,1,BP2。端口CP1收到来自Switch A的配置消息0,0,0,AP2后Switch C也触发更新过程,更新后的配置消息如下:0,0,0,AP2。经过比较,端口CP1的配置消息被选为最优的配置消息,端口CP1就被定为根端口;而端口CP2就会被选为指定端口,并发送更新后的BPDU:0,6,2,CP2接着端口CP2会收到Switch B更新后的配置消息0,2,1,BP2,由于收到的配置消息比原配置消息优,则Switch C触发更新过程,更新后的配置消息为:0,2,1,BP2。同时端口CP1收到来自Switch A配置消息,比较后Switch C不会触发更新过程,配置消息仍然为:0,0,0,AP2。经过部比较,( CP10,6,0,AP2,CP20,5,1,BP2 )端口CP2的配置消息被选为最优的配置消息,端口CP2就被选为根端口,而端口CP1就被阻塞,状态稳定后,不接收从Switch A转发的数据,直到新的情况触发生成树的计算,比如从Switch A到Switch C的链路down掉,或者端口收到更优的配置消息。3.10 STP 的缺点STP协议虽然可以很好的解决网络环路的问题,但是还是有它自身的缺陷,主要表现在收敛速度上,STP收敛时间为秒级。当拓扑发生变化,新的配置消息要等待两倍的forward delay(协议默认值为15秒)的时间延迟网络才能传播到整个网络。在这段收敛时间,交换机会出现严重的丢包现象。在一个10M的以太网中,对于1526字节的最长帧,一秒最多会有812个帧通过;对于72字节的最短帧,最多有14880个帧通过,这样会造成上万个数据包的丢失,这对于一些高质量要求的业务是不能满足的。如卫星传输,实时会议等,这样严重的丢包对之造成的影响是不言而喻的。为了解决STP的这一缺陷,快速生成树RSTP应运而生。第四章 快速生成树协议 RSTP4.1 RSTP的产生背景STP协议虽然能够解决环路问题,但是还是有很多不足之处。首先,STP并没有细致区分端口状态和端口角色。网络协议的优劣往往取决于协议是否对各种情况加以细致区分。事实上,从用户角度上看Listening、Learning和Blocking状态是没有区别的,都同样不转发用户流量。从使用和配置上来讲,端口之间最本质的区别并不在于端口状态,而是在于端口扮演的角色。根端口和指定端口也可能处于Listening状态,也可能都处Forwarding状态。其次,STP算法是被动的算法,对网络是否已经达到收敛没有一种反馈机制。对待拓扑变化的基本的方法是通知根桥,修改MAC地址表老化时间,自动学习,确立新路径。这种以计时器来等待的方式显然是浪费时间,响应迟缓。再次,STP的算法要求在稳定拓扑里,根桥主动发出BPDU而其他交换机进行中继,这样整个STP网络庞大而笨拙。STP协议的缺陷主要表现在收敛速度上。当拓扑发生变化,新的配置消息要经过一定的时延才能传播到整个网络,这个时延称为Forward Delay,协议默认值是15秒。在所有网桥收到这个变化的消息之前,若旧拓扑结构中处于转发的端口还没有发现自己应该在新的拓扑中停止转发,则可能存在临时环路。为了解决临时环路的问题,生成树使用了一种定时器策略,即在端口从阻塞状态到转发状态中间加上一个只学习MAC地址但不参与转发的中间状态,两次状态切换的时间长度都是Forward Delay,这样就可以保证在拓扑变化的时候不会产生临时环路。但是,这个看似良好的解决方案实际上带来的却是至少两倍Forward Delay的收敛时间。为了解决STP协议的这些缺陷,在世纪之初IEEE推出了802.1w标准,作为对802.1D标准的补充。在IEEE 802.1w标准里定义了快速生成树协议RSTP(Rapid Spanning Tree Protocol)。RSTP协议在STP协议基础上做了三点重要改进,使得收敛速度快得多(最快1秒以)。第一点改进:为根端口和指定端口设置了快速切换用的替换端口(Alternate Port)和备份端口(Backup Port)两种角色,当根端口/指定端口失效的情况下,替换端口/备份端口就会无时延地进入转发状态。第二点改进:在只连接了两个交换端口的点对点链路中,指定端口只需与下游网桥进行一次握手就可以无时延地进入转发状态。如果是连接了三个以上网桥的共享链路,下游网桥是不会响应上游指定端口发出的握手请求的,只能等待两倍Forward Delay时间进入转发状态。第三点改进:直接与终端相连而不是把其他网桥相连的端口定义为边缘端口(Edge Port)。边缘端口可以直接进入转发状态,不需要任何延时。由于网桥无法知道端口是否是直接与终端相连,所以需要人工配置。可见,RSTP协议相对于STP协议的确改进了很多。为了支持这些改进,BPDU的格式做了一些修改,但RSTP协议仍然向下兼容STP协议,可以混合组网。4.2 RSTP协议的改进1. 端口角色的增补根据STP的不足,RSTP新增加了端口的角色概念。并且把端口属性充分的按照状态和角色解耦,使得可以更加精确的描述端口。RSTP的端口角色共有4种:即根端口、指定端口、Alternate端口和Backup端口。Alternate端口如图4-1所示,Backup端口如图4-2所示。 图4-1 Alternate端口图4-2 Backup端口从BPDU的发送上来看,Alternate端口就是由于学习到其它交换机的发送的BPDU而阻塞的端口;而Backup端口就是由于学习到自己发送的BPDU而阻塞的端口。从用户流量上来看,Alternate端口提供了从指定桥到根的另一条可切换路径,作为指定端口的备选切换;而同时Backup端口,作为根端口的备份,提供了另外一条从根桥到叶节点的可切换的通路。给一个RSTP域所有端口分配角色的过程就是整个拓扑收敛的过程。2. 端口状态的重新划分RSTP的状态规把原来的5种状态缩减为3种。根据端口是否转发用户流量和学习MAC地址来划分。如果不转发用户流量也不学习MAC地址,那么就是Discarding状态;如果不转发用户流量但是学习MAC地址,那么就是Learning状态;如果既转发用户流量又学习地址,那么就是Forwarding状态。RSTP和STP的端口状态对比如表4-1所示。表4-1 STP和RSTP端口状态比较STP端口状态RSTP端口状态BlockingDiscardingListeningDiscardingLearningLearningForwardingForwarding3. BPDU格式的改变在BPDU的格式上,除了保证和STP格式基本一致之外,RSTP作了一些小的变化。一个是在Type字段,配置BPDU类型不再是0而是2,版本号也变成了2。所以运行STP的交换机收到该类BPDU时会丢弃。另一个变化是在Flag字段,把原来保留的中间6位使用起来。这样改变了的配置BPDU叫做RST BPDU。RSTP BPDU的Flag字段格式如表4-2所示。 表4-2 RSTP Flag字段Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TCAAgreementForwardingLearning端口角色ProposalTC4. BPDU的处理方式RSTP对BPDU的处理发生的变化,主要表现在以下几个方面:1) 稳态BPDU的发送方式:靠收到上游BPDU而触发发送BPDU的方式使得STP庞大而笨拙。RSTP稳态后,BPDU由每个交换机自主按照每个个Hello时间进行发送。2) 更短的BPDU超时计时:如果一个端口连续三个Hello时间接受不到上游指定桥送来的BPDU,那么该交换机认为与此邻居之间的链路失败,不等待Max Age。3) 处理次等BPDU:当一个端口收到上游的指定桥发来的RSTP BPDU中的信息,不如自己端口信息的时候,会立刻回应自己的信息。上游的指定端口马上接受这个信息,并且更新自己的信息。5. 快速转换到转发状态STP的网络端口从阻断到转发状态,如果想快速收敛的话,需要修改默认的转发延迟和老化时间定时器。RSTP可以快速收敛而不依赖于定时器,这些快速的收敛主要依赖边缘端口和点到点链路来实现。1) 边缘端口直接与终端相连而不是把其他网桥相连的端口定义为边缘端口(Edge Port)。边缘端口可以直接进入转发状态,不需要任何延时。由于网桥无法知道端口是否是直接与终端相连,所以需要人工配置。2) 点到点链路两台交换机之间的链路只有一根链路,同时端口之间的连接为全双工,这样的链路类型叫点到点链路。对于半双工的链路叫共享端口。链路类型交换机自己检查,也可人为修改。6. P/A协商 快速收敛机制P/A机制即Proposal/Agreement机制。其目的是使一个指定端口尽快进入Forwarding状态。其过程的完成根据以下几个端口变量:1) Proposing当一个指定端口处于Discarding或Learning状态的时候,该变量置位。向下游交换机传递Proposing位被置位的RSTP BPDU。2) Proposed当端口收到对端的指定端口发来的携带proposal的RSTP BPDU的时候,该变量置位。该变量指示本网段上的指定端口希望尽快进入Forwarding状态。3) Sync当Proposed被设置以后,收到Proposal根端口会依次为自己的其他端口置位sync变量。如果端口是非边缘的指定端口时则会进入Discarding状态。4) Synced当端口完成转到Discarding后,会设置自己的synced变量。Alternate、Backup 和边缘端口会马上设置该变量。根端口监视其他端口的synced,当所有其他端口的synced全被设置,根端口会设置自己的synced,然后传回RST BPDU,其中Agreement位被置位。5) Agreed当指定端口接收到一个RST BPDU时,如果该BPDU中的Agreement位被置位且端口角色字段是“根端口”,该变量被设置。Agreed变量一旦被置位,指定端口马上转入Forwarding状态。P/A协商具体实现如图4-3所示:图4-3 P/A协商机制在当前状态下,SW2的另外几个端口p2是Alternate端口,p3是指定端口且处于Forwarding状态,p4是边缘端口。一旦新链路连接,p0和p1两个端口马上都先成为指定端口,发送RST BPDU。SW2的P1口收到更好的BPDU,马上意识到自己将成为根端口,而不是指定端口,停止发送BPDU。这时SW1的p0进入Discarding状态,满足条件指定端口处于Discarding状态,于是发送的RST BPDU中把proposal置1。SW2收到根桥发送来的携带proposal的BPDU,于是开始让自己的将所有端口进入sync变量置位。P2已经是阻塞的了,状态不变;p4是边缘端口,不参与运算;所以只需要阻塞非边缘指定端口p3。当p2、p3、p4都进入Discarding状态之后,各端口的synced变量置位,根端口p1的synced也置位,于是便向SW1返回Agreement位置置位的回应BPDU。该BPDU携带和刚才根桥发过来的BPDU一样的信息,除了Agreement位置置位之外(Proposal位清零)。SW1判断出这是对刚刚发出的Proposal的回应,于是端口p0马上进入Forwarding状态。这个P/A过程是可以向下游继续传递的。事实上,经典的STP协议指定端口的角色选择是很快的,主要的速度瓶颈在于超时等待:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,在协议中就是至少要等待一个Forward Delay后所有端口才能进行转发。而RSTP的主要目的就是消除这个瓶颈。通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制这种积极的手段来加快“上游”端口转到Forwarding状态的速度。这里要强调的是,P/A机制要求两台交换机之间链路必须是点对点的全双工状态。要注意的是,一旦P/A协商不成功,就会等待正常的STP中的两个Forward Delay,此时的行为就回到了STP。7. RSTP 的拓扑变化处理如图4-4所示,STP的拓扑变化是先将TCN发送到根桥,再由根桥将TC发送给所有网桥。图4-4 STP拓扑变化过程SW-4发送自己的拓扑变化通知(TCN)位传递给根桥,根桥发送TC位的BPDU给所有的其他网桥,通知拓扑变化。1)拓扑改变检测在RSTP中,只有非边缘端口进入转发状态时,才引起拓扑的改变,端口改变到其他状态不引起拓扑改变(不产生TC),但RSTP网桥检测到拓扑改变,发生以下动作:非边缘的指定端口和根端口启动一个等于两倍Hello Time的TC等待计数器。泛洪MAC地址到所有的端口上。只要TC等待计时器在端口中运行,该端口发送的带有TC位的BPDU,在计时器激活期间,根端口也发送BPDU信息。3) 拓扑改变传播当一个网桥收到带有拓扑改变(TC)标志为BPDU,按照以下两种方式进行处理:清除交换机上所有端口学来的MAC地址除了拓扑改变收来的MAC地址。启动拓扑改变(TC)等待计数器,发送带有TC标志位的BPDU到所有的指定端口和根端口。通过这样的机制,SW-4的TCN通过一步快速泛洪到整个网络中,如图4-5所示,无须经过根桥。图4-5 RSTP拓扑变化过程4.3 RSTP的缺点 RSTP协议对STP协议做了很多改进,大大提高了收敛速度,而且RSTP协议可以向下兼容STP协议,可以混合组网。虽然如此,RSTP和STP协议一样属于单生成树SST(Single Spanning Tree),有它自身的缺陷,主要表现在以下三个方面:1. 由于整个交换网络只有一棵生成树,在网络规模比较大的时候会导致较长的收敛时间,拓扑改变的影响面也较大。2. 近些年来IEEE 802.1Q大行其道,大
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 模板表格


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!