• 文章搜索:
  • 目录

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    高可靠性之RPR技术

    作者:  |  上传时间:2015-10-09  |  关键字:高可靠性之RPR技术

     

    /涂勇军

    1      RPR基本原理

    1.1      相关概念

    RPRResilient Packet Ring,弹性分组环网)是IEEE 802.17工作组标准化的一种新的MAC层技术,是工作在OSI协议栈第二层的介质访问控制协议,可运行于EthernetSONETSynchronous Optical Network,同步光网络)/SDHSynchronous Digital Hierarchy,同步数字系列)和DWDMDense 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节点采用了一个以太网中的48MAC地址标识,从设备链路层来看,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数据通道子层:包括选环实体和两个不同的环路通道。选环实体利用DmacSmac和拓扑数据库来决定哪个环传输报文、如何泛洪、使用基本帧还是扩展帧;各通道主要实现功能有:封装/解封装客户端数据帧、收发帧、流量整形、队列处理、错误帧\超时帧剥离等。

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

    图 3 数据流示意图

    如图3所示,假设流量从station1进入,经过station2station3出,其数据流程图所示,可以看出,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,就对其执行数据过环和下环操作,当该报文回到源节点或TTL0时,执行源地址剥离。

    1.5      报文类型

    1.5.1      数据报文(Data Frame

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

    图 5 数据帧格式

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

    1.5.2 控制报文(Control Frame

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

    图 6 控制报文帧格式

    图 7 控制帧类型

    控制报文的最小长度为24字节,由header18Bytes+payload2Bytes+FCS4Bytes)组成,其controlDataUnit0Byte;最大长度为1616字节,其controlDataUnit1500Bytes,另外还预留92Bytes,加上基本的24Bytes,其最大值为1616Bytes。根据控制帧类型,控制报文分为以下几种:TPTCATDLRTTFDDOAM等。

    *  TP(Topology and Protection)报文

    TP对应的控制帧类型为CT_TOPO_PORT,以广播方式来进行拓扑发现,节点保护模式、保护状态等信息的传输。TP报文长度为26BytesTTL=255A0类型,不能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报文长度为29BytesTTL=1A0类型,不能WrapTC报文的发送也分为快慢周期,基本原理和TP一样,当Topo数据库信息变化时,先以快周期发送4个,再以慢周期发送。

    *  LRTTLoop Round Trip Time)报文

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

    *  ATDAttribute discovery)报文

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

    *  FDDFairness Differential Delay)报文

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

    *  OAMOperationsAdministrationMaintenance)报文

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

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

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

    图 8 Echo请求/响应操作

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

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

    -    ClassBClassCPTQSTQsecondary transit queue)都发送Flush帧。

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

    1.5.3      公平报文(Fairness Frame

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

    图 10  公平帧格式

    1.5.4      空闲报文(Idle Frame

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

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

    图 11  空闲帧格式

    1.5.5      拓扑数据库(Topology Database

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

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

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

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

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

    TP帧得到的信息:本地站点Mac地址、站点保护配置(wrapsteer)、东西向的保护状态、东西向最后获取的邻居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_addressSource_address被修改为RPR帧的dasa。假设报文从S1发往S5,当目的MACS5MAC相同的时候,进行剥离或下环操作,当TTL=1且目的MAC不匹配或者站点MAC和报文源MAC相同时,进行报文丢弃。报文字段的变化(如图12所示):

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

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

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

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

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

    *  远程源站点单播传输

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

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

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

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

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

    1.7      故障响应

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

    *  Passthrough

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

    *  WrapSteer模式

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

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

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

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

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

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

    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环才会进行保护倒换。保护请求的取值和优先级与保护倒换一致,其中,FSMS是手工配置的保护请求,SFSDWTR是自动保护请求。另外,SD是由驱动平台上报给软件平台的一种保护状态。

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

    FSForced Switch):强制倒换;

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

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

    MSManual Switch):手工倒换;

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

    IDLE:空闲。

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

    *  KeepAlive的检测

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

    *  Miscabling的检测

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

    1.8      公平算法

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

    1.8.1      基本原理

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

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

    1bi / wi <= fairRate,其中fairRate公平帧传递的参数,bi为收到公平帧的站点发送数据的速率,wi为此站点在环路上的带宽权重;

    2)∑bi<= LINK_RATE*(1 - fa),其中表达式左边为所有站点的上环速度之和,LINK_RATE为整个带宽大小,fa为站点预留的带宽百分比。

    1.8.2      拥塞域

    每一段拥塞域都包括拥塞起始节点(Head)和拥塞结束节点(Tail),在每一段拥塞域内,有不同的fairRate,每个节点都遵循bi / wifairRate的规则。

    拥塞尾节点是能够收到non-full通告但是不继续往上发送通告的站点,拥塞节点只要满足两个条件之一,就能成为尾节点:

    1)上游站点收到下游站点发出公平帧的fairRate和自己发出公平帧的fairRate不相同

    2)上游站点向上发出公平帧的fairRate等于FULL_RATE

    在评估站点发送流量时,需要考虑站点本身和拥塞点的情况,保证流量不超过允许的带宽。拥塞的头节点就是下游发生拥塞的第一个节点。

    图 17  拥塞域

    1.8.3      公平算法特点

    l  各环独立支持带宽公平操作,互不干扰;

    l  发生拥塞时,控制信息需要利用另一个子环传输公平帧,帧信息包括允许速率,建议速率,策略指示等;

    l  规范的只是ClassCClassB-EIR流量,上文中fa表示的是ClassAClassB-CIR所占百分比;

    l  根据不同服务级别对环路带宽提供访问控制,采用等值或加权的公平算法来控制环路总带宽的使用;

    l  每个节点可以根据服务等级、环路带宽的使用情况控制向环上转发数据包的速度,保证每个节点都获得公平的环路带宽分配;

    l  公平算法包括流量统计和策略处理以及处理中的多个阶段,需要确定三个参数:节点拥塞的门限、节点向上游节点广播的速率、节点本地能允许上环的速率;

    l  可配置权重,当分配的带宽比实际使用的带宽要大时,会释放自己多余的带宽。