RSTP快速生成树协议之(三):RSTP对STP的改进以及数据包分析

RSTP快速⽣成树协议之(三):RSTP对STP的改进以及数据包
分析
解子征RSTP快速⽣成树协议之(三)
RSTP对STP的改进以及数据包分析
  在RSTP快速⽣成树协议之(⼀)STP协议的不⾜中,已经列举了STP协议中的各种弊端:初始化时间长;拓扑变更时收敛时间长,机制复杂;连接终端造成不必要的计算;以及端⼝⾓⾊和端⼝状态的不⾜等。所以,本节笔记将会介绍RSTP对STP这些弊端的改进措施。
  在讨论RSTP对STP的改进前,可以先去了解⼀下之前的笔记,其中介绍了STP有哪些不⾜之处:
  RST BPDU(RSTP的BPDU报⽂)
  RSTP协议的BPDU格式和STP协议是相同的,但是报⽂参数略有不同。
  (1)BPDU Type字段
  RSTP使⽤了类似STP的BPDU报⽂,即RST BPDU报⽂。⽽报⽂中的BPDU Type字段则是⽤来区分不
同STP协议的BPDU报⽂的。
  STP协议的BPDU Type字段是0(0x00)时,代表这个报⽂是配置BPDU;当是128(0x80)时,代表这个报⽂是TCN
BPDU(Topology Change Notification);当是2(0x02)时,则代表是RSTP的RST BPDU报⽂。
crj-200  Tips:BPDU Type是0x02时,不仅可能是RST BPDU(Rapid Spanning-Tree BPDU),还可能是MST BPDU(Multiple Spanning-Tree BPDU)。
  (2)flags字段
  在STP协议中,BPDU的报⽂中flags字段只定义了拓扑变化TC(Topology Change)和拓扑变化确认TCA(Topology Change Acknowledge),⽽其他字段是保留的。
  ⽽在RSTP的RST BPDU中,flags还使⽤了其他的字段,它把原来保留的中间6位都利⽤了起来。这新增的6位作⽤包括表⽰P/A进程,定义端⼝⾓⾊和端⼝状态。这样改变了配置BPDU的叫RST BPDU。
  以下是flags字段中各bit所代表的含义:
  TCA(第7 bit,⾼位):拓扑改变响应位,STP笔记中有提及,不再赘述
  Agreement(第6 bit): P/A进程的A置位。详细⽤途会在下⾯讲P/A机制时再进⾏探讨
  Forwarding(第5 bit):为真时表⽰端⼝的状态是Forwarding,此时端⼝处于既转发⽤户流量⼜学习MAC地址的状态。
  Learning(第4 bit):为真时表⽰端⼝的状态是Learning,此时端⼝处于学习MAC地址,但不转发⽤户流量的状态。
  Flags(第3和2 bit):表⽰端⼝⾓⾊(Port Role),因为占2个⽐特,可以表⽰4种不同的端⼝⾓⾊。
  Proposal:(第1 bit):  P/A进程的P置位,详细⽤途会在下⾯讲P/A机制时再进⾏探讨。
  TC(第0 bit,低位):拓扑改变位,STP笔记中有提及,不再赘述。
  Tips:端⼝⾓⾊(Port Role)不同取值的不同含义
  Port Role = 00 时,为Unkown未定义
  Port Role = 01 时,为Alternate Port 预备端⼝ /Backup Port 备份端⼝
  Port Role = 10 时,为Root Port根端⼝
  Port Role = 11 时,为Designated Port指定端⼝
  针对问题⼀的改进:P/A机制
  我们知道,STP有初始化环境下收敛时间长的问题,为了改进这个问题,RSTP提出了P/A机制。
td-scdma gsm  (1)P/A机制的基本原理
  P/A机制,即Proposal/Agreement机制,中⽂对应是提议/同意机制。它的⽬的是使⼀个指定端⼝尽快的进⼊到Forwarding状态中。
  P/A机制要求两台交换设备之间链路必须是点对点的全双⼯模式。⼀旦P/A协商不成功,指定端⼝的选举就会回到STP的协商⽅式,就需要等待两个Forward Delay(30秒)时间。
  相对于STP来说,P/A带来了来回确认机制和同步变量机制,⽽不再需要等待计时器超时来保障⽆环路。
  (2)P/A机制的具体⼯作过程
  通过P/A机制,RSTP是这样加快拓扑收敛的速度的。如下图所⽰,局域⽹内有三台刚开启的运⾏RSTP协议的交换机
cag  阶段⼀:
  由于设备刚启动,与STP⼀样,所有交换机都会认为⾃⼰是根桥。不同的是,此时交换机会向其他交换机发送P置位(即Flags中的Proposal位置为1)的BPDU报⽂(以下将这种报⽂简称为P消息),这个BPDU报⽂包含了该交换机的配置信息;并把发送P消息的端⼝变成指定端⼝(DP⼝),同时端⼝状态处在Discarding状态。如上图所⽰。
  阶段⼆:
  由于SWA的桥优先级是最⾼的,所以SWA不会对SWB或SWC发来的BPDU做出反应,⽽是继续发送⾃⼰的P消息。
  SWB和SWC收到SWA发送过来的P消息,对⽐桥优先级后⼀致认为SWA才是根桥,此时他们就会根据P/A机制协商流程向SWA回复A 置位(即Flags中的Agreement位置为1)的BPDU(以下将这种消息简称为A消息)。并把⾃⼰的发送端⼝改为根端⼝(RP),同时端⼝处于Forwarding状态,可以进⾏
数据转发。
  阶段三:
  此时SWB与SWA,SWC与SWA的P/A协商基本完成,接下来就是SWB和SWC之间的P/A协商。以下是协商的过程:
  Step 1:SWB和SWC都会发送根桥为SWA的P消息给对⽅。
  Step 2:SWC收到SWB的P消息后,发现P消息⾥虽然根桥和⾃⼰认可的⼀样,但是发送者的桥优先级⽐⾃⼰⾼(SWB>SWC),所以会马上停⽌发送P消息,但是由于已经有端⼝是根端⼝(RP),也不会回A消息。
  Step 3:SWB收到SWC的P消息后,发现P消息⾥虽然根桥和⾃⼰认可的⼀样,但是发送者的桥优先级⽐⾃⼰低(SWB>SWC),所以会继续不停地发送P消息。
  Step 4:以上状态在等待2个Forward Delay(30秒)时间后,SWB的桥优先级⽐较⾼,所以SWB的端⼝为指定端⼝(DP),处于Forwarding状态;SWC的桥优先级⽐较低,所以SWC的端⼝为预备端⼝(AP),处于Discarding状态。
  实际上SWB与SWC之间的协商等同于退回到STP的模式,但是反正是Discarding状态,根本不影响其他业务转发。
大荒神舞  Tips:以上就是RSTP使⽤P/A机制进⾏选举端⼝⾓⾊的过程。可以看出,其原理从本质上还是和STP协议是相同的。流程都可以总结如下:
  选举根桥(根交换机)=》选举根端⼝ =》选举指定端⼝ =》选举预备端⼝和备份端⼝
  RSTP在这个流程的基础上,加⼊了“发起提议-同意回复”(P/A机制)这种确认机制,正是因为在每个步骤有确认机制的接⼊,就再不需要依赖计时器来保证⽹络拓扑⽆环才去转发,只需要考虑BPDU发送报⽂并计算⽆环拓扑的时间(⼀般都是秒级)。
  针对问题⼆的改进:根端⼝快速切换机制
  在STP协议中,如果⼀台⾮根交换机的根端⼝(RP)因故障原因突然down了,那么其阻塞端⼝(BP)则需要等待两倍的Forward Delay(30秒)时间才能重新进⼊Forwarding(转发)状态。那么RSTP是如何解决这个问题的呢?
  如图所⽰:⾮根交换机SWC的根端⼝(RP)突然发⽣故障⽽down了。
  RSTP定义中,作为到根桥的备份,其新增了端⼝⾓⾊:预备端⼝Alternate Port(以下简称AP)。为加快收敛时间,当设备上旧的根端⼝失效时,预备端⼝就可以在保证链路⽆环的情况下,从Discarding状态⽴刻迁移到Forwarding状态。
  RSTP协议中,预备端⼝(AP)要切换成根端⼝(RP)并进⼊转发状态可以在秒级时间内完成收敛。这样就可以解决STP收敛慢的问题。
  针对问题三的改进:次等BPDU处理机制
  在问题⼆中,我们讨论的是当⾮根交换机的根端⼝down了,⽽另⼀个端⼝是预备端⼝时的情况,由于预备端⼝不参与转发BPDU,所以交换机可以很快的将该端⼝切换成根端⼝。
  那么如果另⼀个端⼝是指定端⼝(DP)的情况呢?
  在STP协议中,由于对端交换机收到了次优的BPDU且不做处理,需要等计时器超时(20秒),交换机才会知道拓扑发⽣了变更。⽽想要重新选举,还要等待两倍的Forward Delay(30秒)的时间,才能让拓扑收敛。那么,RSTP⼜是如何改进这个问题的呢?
  如上图所⽰:SWB与根桥SWA之间的链路发⽣故障,使得根端⼝down了,接下来RSTP协议的协商过程如下:
  Step 1:SWB感应到⾃⼰的根端⼝发⽣故障,失去了与根桥的联系。于是开始将⾃⼰作为根桥,向外发送Proposal置位的BPDU。
  Step 2:SWC的预备端⼝(AP)收到次优BPDU后会马上发送本地最优的BPDU给对端SWB,同时端⼝⾓⾊从预备端⼝(AP)变更为指定端⼝(DP)。
  Step 3:SWB收到更优的BPDU,会⽴即重新定义端⼝⾓⾊,将原指定端⼝(DP)端⼝改为根端⼝(RP),然后发送Agreement置位的BPDU。
  Step 4:SWC在收到Agreement置位的BPDU后会⽴即进⼊转发状态。
  RSTP处理次等BPDU报⽂时,不再依赖于任何定时器超时解决拓扑收敛,⽽是会⽴即发送本地最优的BPDU给对端,从⽽加快了拓扑收敛。
  针对问题四的改进:引⼊边缘端⼝
  在STP协议中,即使是连接终端的链路也都参与到拓扑收敛的计算中。但是只要确保终端设备不会出现环路,那么纳⼊STP的计算和使⽤等待计时器超时的机制都是不必要的。
  为此,RSTP引⼊了边缘端⼝的概念。只要设置连接终端的端⼝为边缘端⼝,那么交换机上的该对应链路可⽴即进⼊转发状态。秘鲁渔场
  交换机上连接终端设备的接⼝设置成为边缘端⼝后,不会参与STP的计算,⽽会⽴即进⼊转发。
  Tips:
  但当该端⼝收到BPDU后,就丧失了边缘端⼝属性,成为普通STP端⼝,并重新进⾏⽣成树计算。

本文发布于:2024-09-22 07:31:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/136976.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:机制   拓扑   收敛   交换机
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议