具体实施方式
本发明实施例为一种RPR流量传输方案,其基本思想为:RPR环网中的节点因启动公平算法控制降低自身向拥塞子环的上环业务流量后,将因降低上环业务流量而产生的拟丢弃报文打上丢弃标签,并缓存在预先为拟丢弃报文设置的拟丢弃报文上环队列中;检测所述拥塞子环的逆环是否空闲,在空闲的情况下,将缓存的拟丢弃报文进行逆环传输,从而充分利用逆环带宽,提高了双环整体带宽利用率。
其中,当0环调整上环业务流量并出现拟丢弃报文时,1环为逆环;1环调整上环业务流量并出现拟丢弃报文时,0环为逆环。
下面结合附图并举实施例,对本发明进行详细描述。
图3示出了本发明实施例RPR流量传输方法的流程图。如图3所示,该方法包括以下步骤:
步骤301:RPR环网中的节点在子环链路出现拥塞或即将出现拥塞时,在公平算法控制下降低自身向拥塞子环的上环流量。本实施例以拥塞子环为0环为例。
本步骤中,节点实时检测两子环是否拥塞,在检测到某子环拥塞或即将拥塞时,所有向拥塞域发送流量的节点启动公平算法,通过交互公平控制报文,调整自身上环流量。其中,节点实时检测子环是否拥塞为RPR节点现有功能。
步骤302:节点为因降低自身向拥塞子环的上环流量而出现的拟丢弃报文打上丢弃标签,并缓存在预先为拟丢弃报文设置的拟丢弃报文上环队列中。
本步骤为拟丢弃报文打上丢弃标签的实现为:
在RPR环网中传输的报文都采用RPR标准规定的RPR帧格式。本发明实施例通过对现有RPR帧中基本控制信息(BaseControl)字段的特殊设置实现丢弃标签的加入。图4示出了现有技术中RPR帧中BaseControl字段格式。如图4所示,BaseControl字段还具体包括以下字段:
ri(ringlet identifier,环区分符)字段为选环标签,在上环时根据选环表进行填充。该字段表示待上环报文应该在哪个子环传输。
fe(fairness eligible,公平算法有效)字段为公平算法有效位,该字段置1表示允许接受公平算法控制,该字段置0表示不接受公平算法控制。
ft(frame type,帧类型)字段为帧类型字段,用于表示RPR帧的不同类型,包括数据报文、RPR协议控制报文、公平控制报文和空闲报文。其中,只有数据报文是面向上层服务的,其他三种报文仅在RPR环网节点之间可见,用于实现RPR环路的控制和管理。
sc(service class,服务等级)字段为服务等级字段。根据sc字段取值的不同,RPR帧被分为A、B、C三个级别。表1示出了各级别名称及其对应sc字段取值。
sc字段取值 |
名称 |
00 |
级别C:CLASS_C |
01 |
级别B:CLASS_B |
10 |
级别A中的子级别A1:CLASS_A1 |
11 |
级别A中的子级别A2:CLASS_A2 |
表1
属于级别A、级别B或级别C的业务分别被称为A类业务、B类业务和C类业务。其中,A类业务流量符合承诺信息速率(CIR);B类业务流量又分为符合承诺信息速率的B类CIR业务流量和符合突发信息速率(EIR)的B类EIR业务流量;C类业务流量没有带宽定义,属于尽力传送的低优先级流量。RPR环网可为A类业务和B类CIR业务预留带宽,保证其传输带宽。B类EIR业务和C类业务的流量可以接受公平算法控制,因此当sc字段为01或00时,fe字段才置1。
we(wrap eligible,绕回保护模式有效)字段用于表示故障恢复类型。
parity(奇偶)字段为保留位,一般定义为0。
本发明实施例中的拟丢弃报文不受公平算法控制,因此将拟丢弃报文的fe字段设置为0;同时,拟丢弃报文的优先级最低,因此将拟丢弃报文的sc字段设置为00。以下将sc和fe字段均设置为0的拟丢弃报文称为:D类报文。D类报文不作为面向用户数据的业务等级,仅用于RPR环网内部调度。
将sc字段和fe字段均设置为0可以实现为拟丢弃报文打上丢弃标签的操作。在实际中,也可以通过仅将字段parity设置为1,从而为拟丢弃报文打上丢弃标签。当然,也可以同时将sc和fe设置为0,将parity设置为1。
本实施例采用sc、fe和parity字段同时设置方式,实现为拟丢弃报文打上丢弃标签的操作。D类报文的其它字段按照RPR标准进行填充,如ri位填充按照上环节点的选环信息表填充。
本步骤中缓存拟丢弃报文的拟丢弃报文上环队列的实现为:
现有技术中每个RPR节点上根据对应的A、B、C三个业务等级划分了3个上环缓存队列,分别为A类业务上环队列、B类业务上环队列和C类业务上环队列。本发明实施例增加拟丢弃报文上环队列,作为D类业务上环队列,用于缓存待上环的D类报文。为了不影响节点正常业务的上环操作,将D类业务上环队列的优先级设置为低于C类业务上环队列的优先级。
步骤303:节点检测0环的逆环即1环的链路状态,如果1环链路空闲,则将拟丢弃报文上环队列中的拟丢弃报文进行逆环传输。
本步骤中,节点检测1环链路空闲为RPR环网中节点的已有功能,这里不详述。在实际中,为了令拟丢弃报文能够顺利从逆环传输到目的节点,还需要进行目的可达的检测,节点检测1环目的可达也为环网中节点的已有功能。
本步骤中对D类报文进行逆环传输时,节点按照队列优先级逐一对A类业务上环队列到D类业务上环队列中的报文进行如下上环处理:
a、上环时,将待上环报文中的ri字段和parity字段进行异或运算。表2示出了上环处理时对ri和parity的异或运算表。
ri值 |
Parity值 |
异或后的ri值 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
表2
b、将异或运算的运算结果作为当前ri字段值。
c、根据当前ri字段值进行上环处理,根据当前ri字段值对待上环报文进行上环处理。由于步骤a的异或运算,使得A、B、C三类业务数据按照原本的选环标签在原子环进行传输,而D类报文按照取逆后的选环标签在逆环进行传输。
至此,本流程结束。
在图3示出的流程中,采用ri和parity异或的方法来确定D类报文上环时的ri值。在实际中,确定D类报文上环时ri值的方式十分灵活,例如:在节点将拟丢弃报文打上丢弃标签时,同时将拟丢弃报文中的ri字段取反,并替换拟丢弃报文中原有ri字段值;那么,在根据优先级对A类业务上环队列到D类业务上环队列中的报文进行上环处理时,直接根据待上环报文中的ri字段,将待上环报文注入相应子环。
开始逆环传输后,逆环传输的D类报文流量不能影响逆环上原有业务传输,也就是说:将D类报文逆环传输到达目的节点之前的所经节点称为中间节点,则中间节点上的D类报文的过环操作不能影响中间节点对其他业务的过环操作;D类报文注入逆环也不能使逆环拥塞,如果D类报文注入逆环导致逆环拥塞,则称为发生拥塞转移。下面对D类报文的过环和拥塞转移的解除进行详细描述。
首先,对D类报文在中间节点的过环操作进行描述。
现有技术中,RPR环网中的每个节点针对每个子环都包括2个过环队列:主过环队列(PTQ)和次过环队列(STQ)。过环的A类报文和B类CIR报文由主过环队列缓存,过环的B类EIR报文和C类报文由次过环队列缓存。本发明实施例增加缓存D类报文的拟丢弃报文过环队列,又称D类业务过环队列。D类业务过环队列的优先级低于次过环队列。在过环操作时,按照优先级从高到低的顺序依次处理主过环队列、次过环队列和D类业务过环队列中的待过环报文。
节点处理上环和过环的操作是穿插进行的,本发明实施例增加了D类业务上环队列和D类业务过环队列后,节点处理上环和过环的优先级顺序从高到低依次为:主过环队列、A类业务上环队列、次过环队列、B类业务上环队列、C类业务上环队列、D类业务过环队列和D类业务上环队列。可见,增加的D类业务上环队列和D类业务过环队列都不会影响节点的原业务处理。
下面,对拥塞转移的解除进行详细描述。
图5示出了一种拥塞转移示意图。参见图5,其中RPR环网包括5个节点,分别为S1、S2、S3、S4和S5。0环S4至S5之间发生拥塞,启动公平算法进行节点间带宽资源的重新分配后,调整S2、S3和S4三个节点的上载流量,此时S2、S3和S4三个节点都产生D类报文,经检测1环目的可达且链路空闲,则S2、S3和S4分别将自身产生的D类报文注入1环进行逆环传输。假设逆环传输开始后,S1向1环注入大量非D类报文,导致1环S1至S5之间链路拥塞,此时出现了拥塞转移。S1至S5之间链路称为拥塞域,S1称为拥塞节点。
本发明实施例在出现拥塞转移时,节点间通过控制报文的交互,令向拥塞域发送D类报文的节点降低自身上环的D类报文流量;如果所有向拥塞域发送D类报文的节点将自身上环的D类报文流量清除,仍存在拥塞,则对拥塞子环启动公平算法控制。以图5示出的情况为例,向拥塞域发送D类报文的节点包括S2、S3和S4,当然在实际中也可能包括拥塞节点S1,这些逆环传输D类报文节点中的部分或全部降低自身上环的D类报文流量,以解除逆环拥塞。
下面对拥塞转移解除过程中拥塞节点以及其他向拥塞域发送D类报文流量的节点的处理流程进行详细描述。
图6示出了拥塞转移发生后拥塞节点的处理流程,该处理流程包括以下步骤:
步骤601:拥塞节点判断自身是否有上环到拥塞子环的D类报文流量,如果是,则执行步骤602;否则,执行步骤604。
步骤602:降低自身上环到拥塞子环的D类报文流量。
步骤603:判断通过降低自身上环的D类报文流量是否能解除拥塞,如果可以,则判定拥塞解除,退出本流程;否则,执行步骤604。
本步骤中,拥塞节点在判定拥塞后,降低上环的D类报文流量,并实时统计自身向拥塞域上环和过环的总流量(包括D类报文流量和非D类报文流量)是否降到拥塞门限值以下,如果是,则确定解除拥塞,如果直至清除自身上环的D类报文流量仍不能解除拥塞,则执行步骤604。其中,拥塞门限值是预先设定的,当上环和过环总流量达到此门限时即判定拥塞状态,当上环和过环总流量降低到拥塞门限值以下,则判定解除拥塞。
步骤604:降低自身在拥塞子环中过环的D类报文流量。较佳地,拥塞节点还根据降低后的过环D类报文流量,为上游节点确定拟丢弃报文的上环限制流量,将所确定的拟丢弃报文的上环限制流量携带在控制报文中,反向传输给相邻的上游节点,从而令上游有上环的D类报文流量的节点降低或清除其上环D类报文流量,使得拥塞节点不再接收到待过环D类报文。
本步骤中,拥塞节点降低自身过环D类报文流量,并实时统计自身向拥塞域上环和过环的总流量,直至总流量等于拥塞门限值或过环流量被清除,停止降低过环D类报文流量的操作。此时,拥塞节点统计出当前过环的D类报文流量,将该值作为上游节点的拟丢弃报文的上环限制流量。或者,将略大于当前过环的D类报文流量的值作为上游节点的拟丢弃报文的上环限制流量。
步骤605:判断通过降低自身过环的D类报文流量是否能解除拥塞,如果可以,则判定拥塞解除,退出本流程;否则,执行步骤606。
步骤606:启动公平算法控制,按照公平算法计算结果实施拥塞子环的带宽调整。
至此,本流程结束。
图7示出了节点接收到拟丢弃报文上环限制流量信息后,节点的处理流程,该处理流程包括以下步骤:
步骤701:节点接收控制报文,该控制报文携带拟丢弃报文的上环限制流量信息。本流程中将拟丢弃报文的上环限制流量信息简称为上环限制流量信息。
步骤702:判断自身是否有上环到拥塞子环的D类报文流量,如果是,则执行步骤703;否则,执行步骤705。
步骤703:根据所接收上环限制流量信息降低自身上环的D类报文流量。其中,降低自身上环的D类报文流量的标准是:令自身上环和过环的D类报文总流量等于收到的上环限制流量。
步骤704:判断通过降低自身上环的D类报文流量,是否能够达到自身上环和过环的D类报文总流量等于收到的上环限制流量,如果是,则退出本流程;否则,自身上环D类报文流量被清除后,仍不能达到自身上环和过环的D类报文总流量等于上环限制流量,则执行步骤705。
步骤705:降低自身在拥塞子环中过环的D类报文流量,直至自身过环的D类报文总流量等于收到的上环限制流量。
步骤706:将步骤701接收到的上环限制流量信息携带在控制报文中,反向传输给相邻的上游节点。结束本处理流程。
至此,本流程结束。
图6和图7的流程中涉及的携带上环限制流量信息的控制报文可以通过对现有公平控制报文的改造实现。
现有的公平控制报文包括公平控制报文类型(ffType)字段和公平速率(fairRate)字段。其中,ffType为3个比特,ffType为000表示将公平控制报文传递给相邻的上游节点,接收到该报文的节点进行公平算法控制处理;ffType为001表示广播给环上所有节点,接收到该报文的节点进行公平算法控制处理。fairRate字段为公平控制报文携带的公平算法信息。
本发明实施例将ffType设置为010,表示公平控制报文传递给相邻上游节点,接收到该报文的节点进行限制上环的D类报文流量处理。而上环限制流量信息携带在fairRate字段。
下面以图5示出的情况为例,说明图6和图7描述的拥塞转移解除过程。
参见图5,假设拥塞门限值为2Gbps;S2、S3和S4分别向1环注入目的节点为S5的D类报文流量0.5Gbps,S1和S2向1环注入目的节点为S5的非D类报文流量共1Gbps。那么,1环中从S1至S5的流量超过拥塞门限值,发生拥塞。此时,作为拥塞节点的S1,由于不存在上环的D类报文,因此其降低过环D类报文,当降低到1Gbps时,S1上环和过环总流量为2Gbps,可以退出拥塞。此时,S1将当前允许过环D类报文流量1Gbps作为上环限制流量;S1构造公平控制报文,该公平控制报文的ffType字段设置为010,fairRate字段设置为1Gbps,然后将公平控制报文通过0环传递给S2。
S2根据公平控制报文中的fairRate字段,降低自身上环的D类报文流量,当自身上环的D类业务流量降为0时,自身上环和过环的D类报文总流量等于收到的上环限制流量1Gbps。此时,满足拥塞解除条件,公平控制报文的反向传递到S2处终止。
如果S2向1环注入目的节点为S5的D类报文流量为0.3Gbps,S3和S4分别向1环注入目的节点为S5的D类报文流量0.6Gbps,则S2将自身上环的D类报文流量降为0时,S2上环和过环的D类报文总流量为1.2Gbps,大于允许向S1发送的D类报文流量1Gbps,此时S2降低过环D类报文流量,当S2过环D类报文总流量降低到1Gbps时,满足拥塞解除条件,S2将向上游节点发送公平控制报文,该公平控制报文的ffType字段为010,fairRate字段为1Gbps。S3收到公平控制报文后,根据fairRate字段将自身上环D类报文流量降低为0.4Gbps后,S3上环和过环的D类报文总流量为1Gbps,满足拥塞解除条件,公平控制报文的反向传递到S3处终止。
图6和图7示出的流程,通过从拥塞节点开始依次就近降低上游节点向拥塞子环上载D类报文流量的方式解除拥塞。在实际中,也可以在发生拥塞转移时,拥塞节点直接通知各上游节点将自身上环的所有D类报文流量清除,以解除拥塞。
在实际中,当传输D类报文子环发生故障并执行故障保护倒换时,将故障子环上所有节点中所有暂存的D类报文丢弃,避免产生这些D类报文的子环重新进入拥塞状态。
为了实现上述RPR流量传输方法,本发明实施例还提供了一种RPR节点。图8示出了本发明实施例中RPR节点的结构,参见图8,RPR节点包括拟丢弃报文确定单元81、拟丢弃报文上环队列82和逆环传输单元83;还包括A类业务上环队列86、B类业务上环队列85和C类业务上环队列84,分别用于缓存待上环的A类、B类和C类报文。其中,
丢弃报文确定单元81,用于因启动公平算法控制降低自身向拥塞子环的上环业务流量时,将因降低上环业务流量而产生的拟丢弃报文打上丢弃标签,缓存到拟丢弃报文上环队列82中。
拟丢弃报文上环队列82,用于缓存拟丢弃报文。
逆环传输单元83,用于在子环的逆环空闲的情况下,将拟丢弃报文上环队列82中的拟丢弃报文进行逆环传输。
其中,拟丢弃报文确定单元81包括标记模块811和发送模块812;
标记模块811,用于在降低自身上环流量时,将因降低上环流量而产生的拟丢弃报文打上丢弃标签,然后发送给发送模块812。将拟丢弃报文打上丢弃标签的一种实现为:将拟丢弃报文的fe字段和sc字段均设置为0,且将parity字段设置为1,其他字段按照现有的RPR标准填充。
发送模块812,用于将携带丢弃标签的拟丢弃报文缓存到拟丢弃报文上环队列82中。
其中,逆环传输单元83包括上环模块831和优先级记录模块832;
优先级记录模块832,用于记录各上环队列的优先级,其中拟丢弃报文上环队列82的优先级低于C类业务上环队列84。A、B、C类业务上环队列的优先级依次降低,这与现有技术是一致的。
上环模块831,用于根据优先级记录模块832记录的各上环队列优先级,进行上环操作。具体为:将待上环报文的ri字段与parity字段进行异或运算,将得到的运算结果作为当前ri字段值,根据当前ri字段值将待上环报文注入相应子环。
为了实现拟丢弃报文的过环,RPR节点进一步包括过环处理单元841、拟丢弃报文过环队列842、主过环队列844和次过环队列843。其中,
拟丢弃报文过环队列842,用于缓存接收自所在节点外部的待过环拟丢弃报文;
主过环队列844,用于缓存接收自所在节点外部的待过环A类报文和B类CIR报文;次过环队列843,用于缓存接收自所在节点外部的待过环B类EIR报文和C类CIR报文。这两个过环队列与现有技术是相同的。
过环处理单元841,用于记录各过环队列的优先级,其中拟丢弃报文过环队列842的优先级低于次过环队列843,次过环队列843的优先级低于主过环队列844的优先级;该过环处理单元841根据所记录的各过环队列的优先级进行过环操作。
为了解除拟丢弃报文逆环传输造成的拥塞转移,RPR节点进一步包括拥塞前置处理单元851和公平算法处理单元852,其中,
拥塞前置处理单元851,用于当某子环发生拥塞且自身为拥塞节点时,通过降低上环到拥塞子环的拟丢弃报文流量和/或降低所述拥塞子环中过环的拟丢弃报文流量来解除拥塞子环的拥塞;如果上环和过环的拟丢弃报文流量被清除后仍存在拥塞,则通知公平算法处理单元852。
公平算法处理单元852,用于接收到拥塞前置处理单元851的通知后,启动公平算法控制,进行拥塞子环中节点间带宽资源调整。
图9为图8中拥塞前置处理单元851的结构示意图。如图9所示,拥塞前置处理单元851包括判断模块91、上环限流模块92、第一过环限流模块93和第二过环限流模块94,其中,
判断模块91,用于当某子环发生拥塞且所在节点为拥塞节点时,判断逆环传输单元83的上环模块831是否有上环到拥塞子环的拟丢弃报文流量,如果有,则通知上环限流模块92;否则,通知第一过环限流模块93。
该判断模块91进一步用于,在接收到来自下游节点的拟丢弃报文的上环限制流量信息时,判断逆环传输单元83的上环模块831是否有上环到拥塞子环的拟丢弃报文流量,如果有,则通知上环限流模块92;否则,通知第一过环限流模块93。
上环限流模块92,用于在接收到判断模块91的通知时,控制逆环传输单元83的上环模块831降低上环到拥塞子环的拟丢弃报文流量;如果通过降低上环的拟丢弃报文流量能够解除拥塞,则判定拥塞解除;如果通过降低上环的拟丢弃报文流量仍不能解除拥塞,则在所在节点为拥塞节点时,通知第一过环限流模块93;如果通过降低上环的拟丢弃报文流量不能解除拥塞,但在所在节点不是拥塞节点,则通知第二过环限流模块94。
第一过环限流模块93,用于在接收到通知后,降低所在节点在拥塞子环中过环的拟丢弃报文流量;较佳地,还根据自身降低的过环拟丢弃报文流量为拥塞子环的上游节点确定拟丢弃报文的上环限制流量,并向上游节点发送;当过环的拟丢弃报文流量被清除仍不能解除拥塞时,则通知公平算法处理单元852。
第二过环限流模块94,用于在接收到通知后,降低所在节点在拥塞子环中过环的拟丢弃报文流量,并将判断模块91接收自下游节点的拟丢弃报文的上环限制流量信息向上游节点转发。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。