高可靠性之RPR技术 您所在的位置:网站首页 passthrought 高可靠性之RPR技术

高可靠性之RPR技术

#高可靠性之RPR技术| 来源: 网络整理| 查看: 265

 

文/涂勇军

1      RPR基本原理1.1      相关概念

RPR(Resilient Packet Ring,弹性分组环网)是IEEE 802.17工作组标准化的一种新的MAC层技术,是工作在OSI协议栈第二层的介质访问控制协议,可运行于Ethernet、SONET(Synchronous Optical Network,同步光网络)/SDH(Synchronous Digital Hierarchy,同步数字系列)和DWDM(Dense Wavelength Division Multiplexing,密级波分复用)之上。RPR技术融合了SDH故障自愈的高可靠性与以太网的经济性、高带宽、灵活性、可扩展能力等优势,RPR基于环行拓扑提供数据优化的带宽管理、高性能多业务传输解决方案。

RPR采用逆向双环结构,分为内外两个环,外环称为0环,数据在其上沿顺时针发送,内环称为1环,数据在其上沿逆时针发送。1环发出方向为西,0环发出方向为东,物理接口绑定为0环则表示接收数据在0环,即为西向端口(如图1所示):

图 1 RPR环网结构示意图

几个概念:

-    0环:RPR双环中,数据帧发送方向为顺时针的称为0环,也称Outer Ring(外环);

-    1环:RPR双环中,数据帧发送方向为逆时针的称为1环,也称Inner Ring(内环);

-    节点(Station):RPR环网上的设备,负责接收和转发数据帧;

-    段(Span):RPR环网上两个相邻节点之间的链路,由方向相反的两条链路组成;

-    域(Domain):多个连续的段和这些段上的节点构成了域;

-    西向端口:在0环上接收数据帧、在1环上发送数据帧的物理端口;

-    东向端口:在0环上发送数据帧、在1环上接收数据帧的物理端口;

-    边(Edge):当段或和段相邻的节点出现故障时,段不能转发数据就成为边;

-    环状态:分为闭环和开环。不存在边的环为闭环,存在边的环为开环。

每个RPR节点采用了一个以太网中的48位MAC地址标识,从设备链路层来看,RPR两个节点之间的物理接口只是一个链路层接口,从网络层来看,也仅需要分配一个IP地址而已。

1.2      RPR关键技术简介

RPR技术是一种在环型结构上优化数据业务传送的新型MAC层协议,能够适应多种物理层(如SDH、以太网、DWDM等),它融合了以太网技术的经济性、灵活性和可扩展性等特点,同时吸收了SDH环网的快速保护特点,并具有网络拓扑自动发现、环路带宽共享、公平分配、严格的业务分类等技术优势,在不降低网络性能和可靠性的前提下,提供了一种更加经济有效的解决方案,其关键技术有:

1、  统计空间复用技术

统计空间复用技术在环形拓扑结构中增加环的传输效率,数据报文在发送节点和接收节点沿着环双向传输,并不利用环上其他段的带宽,在接收节点把数据报文从环上剥离,数据报文剥离后将不再占用带宽,从而大大提高了带宽的利用率和有效带宽。

2、  环级汇聚技术

环级汇聚通过统计复用容纳更多的用户,提供统计的流量,容许高的带宽预定率,RPR环中每一个节点都执行公平算法,从而保证带宽的公平享用。

3、  拓扑自动识别技术

在RPR环中,每个节点都保存有环的状态信息,形成一个拓扑数据库。当环初始化、新节点加入、环保护切换时,自动识别模式启动,发送相应的控制报文,各节点根据接收到的消息判断状态变化的节点及其链路状态,更新拓扑数据库。

4、  消除备份带宽技术

RPR的双环结构提供了快速的环路保护和检测能力,其保护倒换技术可以快速进行故障响应,倒换时间小于50ms,避免流量的丢失;另外,RPR提供这些能力时并不需要额外的备份带宽,大大节约备份资源。

1.3      MAC实体结构

MAC实体是RPR实现中最为关键的一部分,一方面与上层进行控制和数据的交换,同时需要与各种物理接口协同工作。MAC实体包含一个控制子层和两个MAC数据通道子层,MAC控制实体从两个数据通道中接收、发送数据帧,并通过MAC业务接口与MAC客户端进行控制和数据的交换(如图2如示):

图 2 站点MAC结构

MAC控制子层:控制活动用来维护MAC状态和数据活动,控制实体通过数据通道子层和其他控制实体交互,控制子层的动作主要有:控制服务接口、公平算法和协议处理、保护数据库、拓扑数据库、OAM功能、控制帧的收发。

MAC数据通道子层:包括选环实体和两个不同的环路通道。选环实体利用Dmac、Smac和拓扑数据库来决定哪个环传输报文、如何泛洪、使用基本帧还是扩展帧;各通道主要实现功能有:封装/解封装客户端数据帧、收发帧、流量整形、队列处理、错误帧\超时帧剥离等。

基于这种结构,多个节点可以相互连接起来形成一个完整的端到端的MAC业务处理过程。

图 3 数据流示意图

如图3所示,假设流量从station1进入,经过station2从station3出,其数据流程图所示,可以看出,MAC控制实体与MAC客户端交互的时候才起作用,对中间节点而言,MAC实体基本不用处理。对单播数据流来说,仅源\目的节点需要启用MAC控制实体;正常情况下,对同一个数据流,各节点启用相同的数据通道来进行连接(都外环或都内环),从而更好地保证业务连贯性。

1.4      RPR数据操作

在RPR环网中,节点与环配合完成数据操作,主要有如下4种操作:

Ø 上环(Insert):节点设备将来自RPR环网外的数据帧插入到RPR环的数据流中

Ø 过环(Transit):节点将经过本节点的数据帧继续转发到下一个节点

Ø 下环(Copy):节点从RPR环网的数据流中将数据帧复制一份并交给本节点的上层进行处理,该操作不会终止数据帧在RPR环网上的转发(环上数据还在)

Ø 剥离(Strip):使经过本节点的数据不再往下转发,将其从RPR环网上剥离下来,即数据从环上彻底消失

其中最值得关注的是过环,过环操作是不需要设备上层处理的,可以大大提高设备转发的处理性能,也是RPR最大的特性。

图 4 各类型数据操作示意图

不同于传统环网技术的源节点剥离,RPR单播采用的是目的节点剥离方式,在RPR数据的传输过程中,单播在源节点处执行上环操作,使数据承载到外环或内环中,在目的节点或当数据帧的TTL值为0时执行数据下环和数据剥离操作,而中间节点只执行过环操作。目的节点剥离能够有效提高带宽的利用率,使得带宽的空间重用技术更高效。

对于组播、广播、未知单播报文实行源节点剥离,数据上环后要过环所有RPR节点,只要TTL不为0,就对其执行数据过环和下环操作,当该报文回到源节点或TTL为0时,执行源地址剥离。

1.5      报文类型1.5.1      数据报文(Data Frame)

数据帧是将来自RPR环网外的数据进行封装后的一种帧格式,RPR数据帧是将外部数据直接放到payload字段中,再加上RPR报文头的封装,形成统一的帧格式。协议中规定数据帧包含两种帧格式:基本帧和扩展帧(报文具体格式可参看IEEE Std 802.17_2004)。

图 5 数据帧格式

扩展帧和基本帧相比,主要是增加了daExtended和saExtended字段,内容是目的MAC和源MAC。基本帧用于转发三层单播报文,扩展帧用于转发组播、广播以及二层报文,这是因为三层单播报文在RPR环上是目的节点剥离,RPR节点在环上的唯一标识就是设备的虚接口mac地址,而三层单播报文的源MAC和目的MAC都是虚接口MAC地址,即都是环上节点mac地址,可以采用基本帧;对于组播和广播报文,目的MAC都是自己的MAC,不是环上节点的MAC,在环上采用源节点剥离;对于二层报文,目的MAC也是自己的MAC,也采用源节点剥离。为了正常转发组播、广播、二层报文,需要采用扩展RPR帧封装,把整个以太帧当作净荷放在自己的报文头后面,这样一来,daExtended和saExtended字段就是原报文的Dmac和Smac字段,对于RPR帧中的Sa,它是上环节点的MAC,当RPR对报文进行源节点剥离的时候,就是根据该MAC进行判断的;对于RPR帧中的Da,由于该帧要在环上跑一圈,所以不能是环上节点的MAC,而使用原报文的目的MAC,也就是daExtended。

1.5.2 控制报文(Control Frame)

控制报文是为了对RPR环网拓扑、RPR节点的状态进行统一而由各个节点在环上发送的报文。

图 6 控制报文帧格式

图 7 控制帧类型

控制报文的最小长度为24字节,由header(18Bytes)+payload(2Bytes)+FCS(4Bytes)组成,其controlDataUnit为0Byte;最大长度为1616字节,其controlDataUnit为1500Bytes,另外还预留92Bytes,加上基本的24Bytes,其最大值为1616Bytes。根据控制帧类型,控制报文分为以下几种:TP、TC、ATD、LRTT、FDD、OAM等。

*  TP(Topology and Protection)报文

TP对应的控制帧类型为CT_TOPO_PORT,以广播方式来进行拓扑发现,节点保护模式、保护状态等信息的传输。TP报文长度为26Bytes,TTL=255,A0类型,不能Wrap(见章节“报文传输介绍”);TP报文的发送分为快周期(1ms~20ms)和慢周期(100ms~1s),当TP信息变化时,先以快周期发送8次,再以慢周期发送。

由于TP报文是广播发送,且为ms级发送,TP报文的流量会很大,如果芯片能在上报TP报文前进行比较,将大大减少TP报文的数量。H3C设备采用TP帧序列号来识别不同的TP帧,如果前后序列号相等,则丢弃后收到的TP帧,否则上送CPU。在拓扑变化时会快发TP,快发TP报文的序列号会递增,当拓扑稳定后快发变成慢发此时的TP报文序列号不变(最后一个快发TP报文的序列号)。

*  TC(Topology Checksum)报文

TC对应的控制帧类型为CT_TOPO_CHECKSUM,用于校验邻居节点是否和本节点TOP表匹配,用以判断环网是否稳定。TC报文长度为29Bytes,TTL=1,A0类型,不能Wrap;TC报文的发送也分为快慢周期,基本原理和TP一样,当Topo数据库信息变化时,先以快周期发送4个,再以慢周期发送。

*  LRTT(Loop Round Trip Time)报文

LRTT包括Request和Response两种,Request对应的控制帧类型为CT_LRTT_REQ,Response对应的控制帧类型为CT_LRTT_RSP,用来测量所有节点之间高优先级控制帧的传输时延。当环网拓扑稳定后LRTT时间是固定的,单位为ms。LRTT报文为单播,固定长度为36Bytes,TTL=255,A0类型,不能Wrap。

*  ATD(Attribute discovery)报文

ATD报文对应的控制帧类型为CT_STATION_ATD,用来传递节点间的属性信息。和TP报文相比,ATD所携带的信息对时间要求不高,ATD报文发送的频率也不是很高。ATD为广播报文,可以同时广播本节点的多个属性,其报文长度不固定,TTL=255,A0类型,不能Wrap。ATD报文可以封装多种属性,如节点权重、站点配置、带宽预留、节点名称、IP地址、用户自定义ATD帧信息等。

*  FDD(Fairness Differential Delay)报文

FDD报文对应的控制帧类型为CT_FDD,FDD用来测量低优先级帧从拥塞结束节点到拥塞起始节点的传输时延。FFD为单播报文,固定长度为30Bytes,TTL = 255,A0/C类型,不能Wrap。测量FDD时,拥塞尾节点向拥塞头节点同时发送A0和C类控制报文(FDD帧是成对发送的,当只收到其中一个时,则FDD帧无效),拥塞头节点信息由Fairness帧来决定,通过比较A0和C类控制报文的时延,就可以测量出低优先级帧从拥塞尾节点到拥塞头节点的传输时间,该信息用于实现Conservative公平算法。

*  OAM(Operations、Administration、Maintenance)报文

不同的接口支持的OAM功能是不一样的,基于SONET/SDH的物理层支持的OAM功能更广泛,基于PacketPHY的物理层,OAM支持的级别更低一些;对于RPR来说,主要是在环上传输控制帧来检测各站点的状态,主要完成报警监视、故障定位、故障修复、测试等。

RPR中,OAM帧主要的报文类型有:ECHO、FLUSH和用户自定义类型。

Ø ECHO操作:通过Echo request/response操作来检测某一站点的可达性;Echo操作允许报文在环上的某一节点输入,而响应报文可以在本环或另外一个反向环传输,Echo帧可以指定其服务类型并且帧长可变。

图 8 Echo请求/响应操作

Ø FLUSH操作:Flush是一个特殊的控制帧,节点通过环路发往自身的一个报文,用来测试环路的完整性和连通性。当选环算法发生变化时,通过Flush报文来通告所有节点进行Steer或Wrap保护,从而保证环中先前流量完全传输。Flush帧可以使用任意一种服务类型,用来区分不同动作的结果。

-    ClassA:仅在先前流量的主过环队列(PTQ-Primary transit queue)中发送Flush帧,对于仅有单个过环队列的节点,ClassB和ClassC也发送Flush帧;

-    ClassB、ClassC:PTQ和STQ(secondary transit queue)都发送Flush帧。

图 9 无保护环和Wrap环中的Flush报文传输

1.5.3      公平报文(Fairness Frame)

公平帧是在环路进行公平算法计算时用的帧,不受公平算法影响,属于A0类报文;其帧格式和数据报文、控制报文稍有不同,帧长度为16Bytes,目的是为了减少带宽消耗和阻塞,提升处理速度;公平帧没有目的地址,通常是发送给最邻近节点或全环广播,从报文格式可以看出,没有目的MAC,saCompact可以是发出此报文的站点MAC或上游站点MAC。

图 10  公平帧格式

1.5.4      空闲报文(Idle Frame)

空闲报文和公平报文相似,不受公平算法影响,属于A0类报文,帧长16Bytes,无目的MAC,帧发送给最邻近节点。空闲帧是可选的,当环网节点之间的报文发送速率有差异时,由空闲帧来调整速率。为了保证每个节点发送相同的流量,发送速率快的节点,插入较多空闲报文;发送速率慢的节点,插入较少空闲报文,从而使整个环网的速率相同。

空闲帧的发送有两种频率:Fast和Slow。在PTQ中设置了IDLE_THRESH门限,当PTQ的深度超过该门限时,按照低频率发送空闲报文;当PTQ的深度低于该门限时,就按照高频率发送空闲报文。

图 11  空闲帧格式

1.5.5      拓扑数据库(Topology Database)

RPR的拓扑发现机制可以使环上的每个节点都能快速、准确的计算出环路的拓扑和环路的变化。所有信息都存放在一个共享的拓扑数据库上,主要包括环路基本信息、站点信息以及TP、TC、LRTT、ATD帧所携带的信息,通过这些报文中参数的变化来进行数据库的增删改并维护状态机。一个站点的数据库包括以下几个部分:

a)环路的基本信息(ringInfo)

从TP帧得到的信息:JumboType、MTU、环路的站点数、环路topo类型(开环或闭环)、在0/1子环上到各站点的(传输\接收)跳数等。

从ATD帧得到的信息:错误帧校验、环路是否有多点阻塞、ringlet0/1可得到的带宽等。

b)本地站点topo信息(myTopoInfo)

从TP帧得到的信息:本地站点Mac地址、站点保护配置(wrap或steer)、东西向的保护状态、东西向最后获取的邻居Mac地址、topo的校验和等。

从TC帧得到的信息:东西向邻居的topo校验和,及其有效标志。

c)各站点得到的TP/TC/LRTT/ATD帧信息

TP帧用来更新各环站点MAC、跳数、边缘状态、保护状态、站点能力等信息;TC用来更新拓扑校验信息;LRTT用来更新LRTT时间信息;ATD用来更新其他属性信息。

1.6      报文传输

在“1.4 RPR数据操作”一章中已经介绍了单播、广播、组播等数据在RPR环上的数据操作,本节主要介绍不同来源流量在RPR环上传输时帧的变化。

*  本地源/本地目的站点单播传输

当上环数据报文的源MAC和某一站点的MAC相同时,称为本地源站点;当上环数据报文的目的MAC和某一站点的MAC相同时,称为本地目的站点;数据报文将在RPR环上进行本地源/本地目的站点间的单播传输。

本地MAC数据请求帧上环后,被封装成RPR帧,帧中增加了RPR特有的帧字段,其中数据报文的Destination_address和Source_address被修改为RPR帧的da和sa。假设报文从S1发往S5,当目的MAC和S5的MAC相同的时候,进行剥离或下环操作,当TTL=1且目的MAC不匹配或者站点MAC和报文源MAC相同时,进行报文丢弃。报文字段的变化(如图12所示):

图 12  本地源/本地目的站点单播传输示意图

*  本地源站点广播、组播传输

当上环数据报文的源MAC和某一站点的MAC相同而目的MAC为广播、组播报文时,数据报文将在RPR环上进行本地源站点广播、组播传输。

当站点插入广播或组播报文后,报文将泛洪到所有站点,当TTL=1或者报文回到源站点时进行剥离操作。当RPR环中进行双向泛洪时,TTL的设置必须正确,以保证传输完整且不重复;当RPR环中进行单向泛洪时,TTL需要大于所有邻居个数,以便可以在源站点进行剥离操作;本地源站点未知单播传输也以泛洪方式进行,但会将da与本地站点MAC比较,过滤一些不必要的报文转发(如图13所示):

图 13  本地源站点广播、组播示意图

*  远程源站点单播传输

客户端提供了一个远程单播帧从S2上环,报文被RPR封装后在环中泛洪,所有站点将学习到远程站点的地址,虽然泛洪到所有本地站点,但是站点会通过da的比较是否过滤客户端请求帧,当报文回到本地源站点时将被剥离。DestinationAddress和sourceAddress在转发过程中没有被修改,可以用来识别远程源/远程目的站点,并且可以用来进行端到端错误检测。

图 14  远程源站点传播示意图

*  远程源站点广播、组播传输

远程源站点广播、组播传输除了报文的da和单播的不一样外,其转发过程是一样的,这里就不再复述。

图 15  远程源站点广播、多播传输

1.7      故障响应

RPR的双环结构有很强的故障自愈能力,故障响应方式有保护模式和passthrough模式,保护模式包括wrap和steer,能够实现50ms时间内的故障保护切换;passthrough模式能够隔离故障站点,该模式是可选的。

*  Passthrough

当节点逻辑故障时(RPR物理口up、RPR逻辑口down,节点不再认为是RPR环上的节点)就会出现passthrough模式,此时,所有RPR报文在该节点不经过任何处理直接从RPR的物理口传输过去。当站点进入passthrought模式,站点恢复机制能够将相邻站点与故障站点隔离,不会引起SF(Signal Fail)事件,环路状态保持不变,不会触发保护切换。TP帧是周期性发送的,当一个站点收到一个TP帧时,发现从帧中源Mac地址过来TP帧的TTL值和自己的拓扑数据库的TTL值不相等,则此站点会认为环路的拓扑发生改变,出现passthrought事件,向两个子环发送自己的TP帧,通告拓扑变化。环路对passthrought事件的收敛时间决定于TP帧的慢周期大小,与50ms切换时间的无关。

*  Wrap和Steer模式

当节点不再具有转发数据帧能力时,如掉电、光纤断开等原因造成的故障,节点就需要进入保护倒换方式,即warp或steer。

Wrap模式:当RPR环网上的某段链路或某个节点发生故障时,故障点两端的两个节点处自动环回(即把0环和1环连在一起),形成一个闭合单环。该模式可保证节点快速倒换,数据帧基本不会丢失,但比较浪费带宽。

Steer模式:当RPR环网上的某段链路或某个节点发生故障时,故障点两端的两个节点先更新自己的拓扑数据库,再快速发送TP帧给RPR环网上的其它节点,其它节点根据收到的拓扑信息更新拓扑数据库,此后,各节点将按照新的拓扑发送数据帧。该模式避免了带宽的浪费,但由于需要重新收敛,恢复时间较长,可能会造成一些业务的中断以及部分数据帧的丢失。

Steer方式带宽利用率高,但由于需要拓扑重新收敛,可能会造成在响应时间内发送的报文丢失。Steer模式是协议要求必须支持的,Wrap是可选的,只有环上所有节点都支持Wrap倒换模式的时候,环网才使用Wrap倒换模式,Wrap模式数据帧不会丢失,但带宽比较浪费。H3C实现中,先Wrap再Steer的方式进行保护倒换,既保证了快速倒换,又提高了带宽利用率。

图 16  故障响应处理报文传输路径

如图16所示,正常传输路径为:D-E-A-B,走0环;当故障发生在A和E之间的时候,wrap和steer保护模式的转发路径为:

Wrap模式:单播报文走0环,但如果报文没到目的节点前遇到了边缘节点,报文从1环走,路径为: D-E-D-C-B-A-B(下环\剔除);组播报文走0环,但在目的节点B不剔除,回到源节点D才剔除,其路径为:D-E-D-C-B-A-B(下环)-C-D(剔除)。

       Steer模式:单播走最短路径,路径为:D-C-B(下环\剔除);组播报文双向泛洪,路径为:D-E(剔除),D-C-B(下环)-A(剔除)。

*  保护倒换

当接口的协议信息等发生变化时,会导致接口状态发生变化,处理这种状态变化叫保护倒换。保护倒换发生的条件是保护请求,即只有环上节点发出保护请求时,RPR环才会进行保护倒换。保护请求的取值和优先级与保护倒换一致,其中,FS和MS是手工配置的保护请求,SF、SD和WTR是自动保护请求。另外,SD是由驱动平台上报给软件平台的一种保护状态。

RPR将保护倒换包括6个不同优先级事件,FS、SF、SD、IDLE能在环上的不同节点同时出现,MS、WTR只能在环上的一个节点出现,【注】有一种情况比较特殊:MS、WTR可以同时存在于本站点和邻居站点,当MS、WTR的保护状态被抢占后,相应的edge不可恢复,也就是说MS和WTR会被远端的MS、WTR抢占,但不会被同一个span上的邻居的MS、WTR抢占;若多个保护请求同时发生,优先级较高的将被优先处理,从高到低分别是:

FS(Forced Switch):强制倒换;

SF(Signal Fail):信号失效,与当前物理状态相关,Los告警;

SD(Signal Degrade):信号衰减,与当前物理状态相关;

MS(Manual Switch):手工倒换;

WTR(Wait to Restore):等待恢复(只有恢复闭环才会有的状态);

IDLE:空闲。

生成SD、MS、WTR的保护事件是为了能在各种不稳定情况下,能让环路得到稳定的拓扑状态,这样环上的数据与协议报文就能正确传递。若一个低级别的保护事件已在环上出现,此时又触发了一个更高级别的保护事件,则低级别的保护事件消失(FS和SF除外)。例如,当节点发出MS保护请求时,若环上存在优先级更高的保护请求,MS保护请求将会被清除。当FS、SF发生在同一个节点的同一方向上时,由于FS保护请求的优先级比SF高,则先处理FS保护请求,SF的保护请求不能被立即执行,只有在FS保护请求被清除时,SF保护请求才能被处理。

*  KeepAlive的检测

KeepAlive是依靠Fairness报文来实现的,当连续一段时间没有收到Fairness报文,节点将上报KeepAlive中断。由于Fairness报文是定时发送的,如果上报KeepAlive,说明物理链路已经断了,可视为SF进行处理。

*  Miscabling的检测

Miscabling用于内外环光纤插反时的错误检测,是依靠TP报文来实现的,如果接收到的TTL=255且ri和本节点不一致的TP报文,则进入Miscabling状态,节点将不再进行协议处理;如果再接收到TTL=255且ri和本节点一致的TP报文时,则退出Miscabling状态。

1.8      公平算法

RPR采用共享带宽方式实现各节点对带宽资源的利用,当数据流量较小的情况下,RPR可以满足所有节点流量传输需求;但当流量较大时,往往会出现链路过载、流量拥塞的情况,流量对链路带宽占用需求不能得到完全满足。为了保证在拥塞或过载等情况下各节点能够公平地享用带宽,RPR为此提供了专门的公平算法,实现带宽的公平共享和调度。

1.8.1      基本原理

当某个节点发生拥塞,它将通过向传送数据相反方向的子环发送拥塞公告(Advertise),告知一个Advertise速率,上游节点利用Advertise速率,利用反压信号通知Host来调整其允许上环的速率,使得不超过拥塞节点Advertise速率,如果该节点也发生了拥塞,就以同样方式向其上游节点发送Advertise。

根据协议规定,要解决环路拥塞,必须满足两个条件:

1)bi / wi



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有