CN107547385B - Bfd协议报文的传输方法和装置 - Google Patents
Bfd协议报文的传输方法和装置 Download PDFInfo
- Publication number
- CN107547385B CN107547385B CN201710772980.0A CN201710772980A CN107547385B CN 107547385 B CN107547385 B CN 107547385B CN 201710772980 A CN201710772980 A CN 201710772980A CN 107547385 B CN107547385 B CN 107547385B
- Authority
- CN
- China
- Prior art keywords
- link
- stacking
- stacked
- load value
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开公开了一种BFD协议报文的传输方法和装置。该方法应用于堆叠设备,所述堆叠设备包括第一堆叠框和第二堆叠框,所述堆叠设备包括二条或二条以上堆叠链路,所述堆叠链路用于所述第一堆叠框和第二堆叠框之间传输BFD协议报文;所述方法包括:计算每条堆叠链路对应的负载因子,所述负载因子用于表示所述堆叠链路受故障影响的可能性;根据所述负载因子设置所述堆叠链路传输BFD协议报文的链路顺序;根据所述链路顺序选择堆叠链路传输所述BFD协议报文。本公开能够增强BFD协议报文跨框传输的稳定性。
Description
技术领域
本公开涉及网络通信技术领域,特别涉及一种BFD协议报文的传输方法和装置。
背景技术
BFD(Bidirectional Forwarding Detection,双向转发检测)提供了一个通用的、标准化的、介质无关、协议无关的快速故障检测机制,可以为各上层协议如路由协议、MPLS等统一地快速检测两台路由器间双向转发路径的故障。
如图1所述,当路由器DUT1有流量要发送到路由器DUT2,主链路是走路由器DUT1直接到路由器DUT2,备链路是走路由器DUT1-DUT3-DUT3;3台路由器设备之间都构建了OSPF(Open Shortest Path First,开放式最短路径优先)邻居,用于彼此之间传递和更新路由。如果当DUT1和DUT2之间的链路发生故障时,由于路由协议之间交互的保活报文间隔比较长,DUT1要等一段时间才知道主链路不通该走备链路,这样就会造成链路之间因故障而造成丢包比较多。为减少这种丢包,通常通过增加BFD进行改善。
如果路由器组网中的设备是IRF(Intelligent Resilient Framework,智能弹性架构)设备,本公开又称为堆叠设备,即将多台设备连接在一起,进行必要的配置后,虚拟化成一台设备。在图1中的DUT1为由两个或两个以上的堆叠框堆叠形成的堆叠设备时,DUT1的堆叠框之间通过多条堆叠链路连接。因为BFD协议报文是从DUT1的全局主控发出的,如果DUT1连接DUT2的用于交互BFD协议报文的接口不在全局主控所在的堆叠框,则BFD协议报文势必就需要通过堆叠链路,先发到目的堆叠框,然后通过目的堆叠框的接口板再发到DUT2。
目前,对全局主控所在的堆叠框发出的BFD协议报文,通常根据BFD协议报文的内容进行哈希hash负载分担,选择其中一条堆叠链路进行报文发送;通常情况下,会将BFD协议报文固定发送到一条堆叠链路上,如果这条堆叠链路发生故障,BFD协议报文有较大的可能性因为链路切换而导致协议交互超时,继而引发上层协议震荡。
发明内容
基于本公开的一个目的,本公开提供一种BFD协议报文的传输方法和装置,以解决堆叠链路在传输BFD协议报文时,现有技术的负载分担方式导致链路故障时BFD协议报文因链路切换而导致协议交互超时的技术问题。
为达到上述目的,本公开的技术方案是这样实现的:
一方面,本公开提供了一种BFD协议报文的传输方法,
应用于堆叠设备,所述堆叠设备包括第一堆叠框和第二堆叠框,所述堆叠设备包括二条或二条以上堆叠链路,所述堆叠链路用于所述第一堆叠框和第二堆叠框之间传输BFD协议报文;所述方法包括:
计算每条堆叠链路对应的负载因子,所述负载因子用于表示所述堆叠链路受故障影响的可能性;
根据所述负载因子设置所述多条堆叠链路传输BFD协议报文的链路顺序;
根据所述链路顺序选择堆叠链路传输所述BFD协议报文。
另一方面,本公开提供了一种BFD协议报文的传输装置,应用于堆叠设备,所述堆叠设备包括第一堆叠框和第二堆叠框,所述堆叠设备包括二条或二条以上堆叠链路,所述堆叠链路用于所述第一堆叠框和第二堆叠框之间传输BFD协议报文;该装置包括:
计算单元,用于每条堆叠链路对应的负载因子,所述负载因子用于表示所述堆叠链路受故障影响的可能性;
设置单元,用于根据所述负载因子设置所述堆叠链路传输BFD协议报文的链路顺序;
选择单元,用于根据所述链路顺序选择堆叠链路传输所述BFD协议报文。
另一方面,本公开提供了一种BFD协议报文的传输装置,包括处理器和机器可读存储介质,该机器可读存储介质存储有能够被处理器执行的机器可执行指令,该处理器被机器可执行指令促使:执行上述的BFD协议报文的传输方法。
另一方面,本公开提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,该机器可执行指令促使处理器:执行上述的BFD协议报文的传输方法。
本公开的有益效果是:通过配置各个堆叠链路的负载因子,根据负载因子将BFD协议报文均衡到每条堆叠链路上,这样在某条链路故障时,BFD协议报文依然能够通过其他堆叠链路快速到达目的堆叠框;且本公开选择受故障影响较小的堆叠链路传输BFD协议报文,很大概率不需进行链路切换,进而不会出现协议交换超时,能够增强BFD协议报文跨框传输的稳定性。
附图说明
图1为本公开示出的路由器之间的链路示意图;
图2为本公开示出的跨框BFD交互模型示意图;
图3为本公开实施例提供的BFD协议报文的传输方法流程图;
图4为本公开实施例提供的BFD协议报文的传输装置结构框图;
图5为本公开实施例示出的一种BFD协议报文的传输装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前,都是按hash负载分担的方式进行BFD协议报文的跨框传输,如图2所示,堆叠框1和堆叠框2组成了堆叠设备,即路由器DUT1,堆叠框1上插入堆叠单板Slot A、Slot B和Slot C,堆叠框1上插入堆叠单板Slot D和Slot E,堆叠框1和堆叠框2共连接有4条堆叠链路,堆叠链路是用于堆叠保活报文以及堆叠框1和堆叠框2之间的单播/组播/广播等协议报文的通信,同时也用于跨框流量的转发。
图2中的DUT1和DUT2部署了BFD交互协议,DUT1上连接DUT2的端口位于堆叠框2的Slot E上,但DUT1的全局主控Master M设置在堆叠框1。由于BFD协议报文是从Master M发出的,需要通过堆叠链路,转发到堆叠框2,然后堆叠框2通过Slot E将BFD协议报文板发送给DUT2。
由于堆叠框1和堆叠框2之间有多条堆叠链路,Master M发出的BFD协议报文会根据报文内容进行hash负载分担,选择其中的一条堆叠链路进行报文发送。针对一个BFD会话来说,BFD协议报文的源IP、目的IP等信息都是固定的,所以一般情况下依据hash算法会计算为固定的一条堆叠链路。若是通过堆叠链路S4进行报文传输,则由Master M发出的BFD协议报文会从Slot A到Slot E,然后发送给DUT2。参考图2所示,堆叠框2的Slot E涉及4条堆叠链路中的3条,即BFD协议报文有3/4的概率是通过Slot E转发的,一旦Slot E发生故障,BFD检测有较大的可能性因为链路切换而导致协议交互超时,继而引发上层协议震荡。
结合图2所示的组网架构看,如果Slot E发生故障,堆叠链路S2、S3、S4都会因而中断,堆叠框1发给堆叠框2的BFD报文,需要时间重新刷新转发表后,从堆叠链路S1发给堆叠框2,然后再通过Slot E发送给DUT2,此时,需要重新计算新的路径,由于BFD协议本身非常敏感,为了联动其他协议能尽快感知到链路层面的故障,所以BFD协议一般感知到协议报文超时而报down都在毫秒级别,常规的有10ms×3、100ms×3等,即一端在30ms或者300ms收不到对端的BFD协议报文,就认为BFD链路出现故障,需要上报上层协议,因而可能因为链路切换而导致协议交互超时,引发上层协议震荡。
本公开针对上述情况,设计了一种BFD协议报文的传输方法,让堆叠设备的全局主控发出的BFD协议报文,基于权重的轮询均衡到不同的堆叠链路上进行发送,增强BFD协议报文跨框转发的稳定性,减少发生BFD震荡的可能性。
图3为本公开实施例提供的BFD协议报文的传输方法流程图,本实施例的方法应用于堆叠设备,该堆叠设备包括第一堆叠框和第二堆叠框,所述堆叠设备还包括二条或二条以上堆叠链路,堆叠链路用于第一堆叠框和第二堆叠框之间传输BFD协议报文。
如图3所示,本实施例的方法包括:
S310,计算每条堆叠链路对应的负载因子,所述负载因子用于表示所述堆叠链路受故障影响的可能性。
本实施例不限定计算每条堆叠链路对应的负载因子的方式,可以主动计算,如堆叠设备的全局主控按照设定的时间周期计算每条堆叠链路对应的负载因子;也可以被动计算负载因子,如在堆叠链路发生变化,由堆叠链路端口连接,或者新增堆叠链路,则堆叠设备的全局主控在感知到堆叠链路发生变化时立即计算堆叠链路对应的负载因子。
本公开负载因子的数值越小表明堆叠链路受故障的影响越大。这是基于在堆叠链路涉及的堆叠单板有其他更多堆叠链路在位时,该堆叠链路的负载因子数值较小,其被选择用来发送BFD协议报文的机会变小,在堆叠链路涉及的堆叠单板没有其他堆叠链路在位时,配置该堆叠链路的负载因子数值较大,使其被选择用来发送BFD报文的机会增大。
如图2所示,堆叠链路S1连接在Slot A和Slot D之间,Slot D在位的堆叠链路只有唯一的堆叠链路S1,Slot A在位的堆叠链路有两条;而其他的堆叠链路S2、S3和S4均连接到Slot E,Slot E在位的堆叠链路有三条,就从堆叠设备DUT1的整体而言,堆叠链路S1受DUT1的故障影响的可能性要小于其他堆叠链路,因此堆叠链路S1的负载因子的数值要大于其他堆叠链路的负载因子。
S320,根据负载因子设置堆叠链路传输BFD协议报文的链路顺序。
在本公开所设置的链路顺序中,相邻的堆叠链路并不相同。示例性地,以图2所示的组网为例,对于一个BFD会话,若其发出的首个BFD协议报文(即保活报文)通过堆叠链路S1传输的,那么所发出的下一BFD协议报文应是堆叠链路S2/S3/S4中的一条进行传输的。
S330,根据链路顺序选择堆叠链路传输BFD协议报文。
本实施例所述的根据链路顺序选择堆叠链路传输BFD协议报文应理解为:在所述堆叠设备向远端设备发送的BFD协议报文时,按照所述链路顺序选择堆叠链路发送所述BFD协议报文;在所述堆叠设备接收来自远端设备的BFD协议报文时,按照所述链路顺序选择堆叠链路接收所述BFD协议报文。
参考图2所示,在DUT1向DUT2发送BFD协议报文时,按照链路顺序选一条择堆叠链路将由Master M发出的BFD协议报文会从堆叠框1发给堆叠框2,然后发送给DUT2;在DUT1接收DUT2发送的BFD协议报文时,按照链路顺序选一条择堆叠链路将由Slave N发出的BFD协议报文从堆叠框2发给堆叠框1。
本实施例通过计算各个堆叠链路的负载因子,根据负载因子将BFD协议报文均衡到每条堆叠链路上,这样在某条链路故障时,BFD协议报文依然能够通过其他堆叠链路快速到达目的堆叠框;且本实施例选择受故障影响较小的堆叠链路传输BFD协议报文,很大概率不需进行链路切换,进而能够降低出现协议交换超时的情况,增强BFD协议报文跨框传输的稳定性。
在本实施例的一个实现方案中,第一堆叠框和第二堆叠框分别包括一块或一块以上堆叠单板,所述堆叠链路两端分别与第一堆叠框的一块堆叠单板和第二堆叠框的一块堆叠单板连接,那么可以通过下述方法计算每条堆叠链路对应的负载因子:
分别获取连接于当前堆叠链路两端的两块堆叠单板所连接的堆叠链路的总数,并以两个总数中的非较小值作为当前堆叠链路的负载量;
根据负载量计算堆叠链路的负载因子,如将负载量的倒数作为堆叠链路的负载因子。
以图2所示的组网为例说明负载因子的配置过程。如图2所示,在堆叠设备DUT1初始化启动过程中,堆叠框1和堆叠框2通过各自的控制芯片能够获知各自堆叠单板在位的堆叠链路信息。堆叠框1上的Slot A有两条在位的堆叠链路,分别为堆叠链路S1和S2,Slot B只有一条在位的堆叠链路S3,Slot C也只有一条在位的堆叠链路S4;因此,堆叠链路S1两端的两块堆叠单板所连接的堆叠链路的总数分别为2和1,堆叠链路S2两端的两块堆叠单板所连接的堆叠链路的总数分别为2和3,堆叠链路S3两端的两块堆叠单板所连接的堆叠链路的总数分别为1和3,堆叠链路S4两端的两块堆叠单板所连接的堆叠链路的总数分别为1和3;则堆叠链路S1、S2、S3和S4对应的负载量分别为2,3,3,3;相应的,堆叠链路S1、S2、S3和S4的负载因子分别为1/2、1/3、1/3、1/3。
在计算得到每条堆叠链路的负载因子后,可根据每条堆叠链路的负载因子得到该堆叠链路的负载值,所述负载值关联于所述堆叠链路传输BFD协议报文的次数,根据所述负载值设置所述链路顺序,并在每次传输BFD协议报文后,调整所述负载值。
本实施例中的负载值反比于受故障影响的可能性,负载值数值越大受故障影响的可能性小;根据负载值对堆叠链路进行动态排序,并在每次动态排序后,调整该堆叠链路的负载值;根据每次动态排序结果选择受故障影响可能性小的堆叠链路作为传输链路。
以图2所述的堆叠链路S1和S2为例说明,堆叠链路S1、S2、S3和S4的负载因子分别为1/2、1/3、1/3、1/3,计算全部负载因子之间的比例值为(1/2):(1/3):(1/3):(1/3),堆叠链路S1、S2、S3和S4的负载因子的整数比例值为3:2:2:2,根据该整数比例值得到堆叠链路S1、S2、S3和S4的负载值分别为3,2,2,2;其中各负载值之间不存在公约数,以便于后续对堆叠链路进行排序。
一个实施例中,根据负载值设置链路顺序的过程如下:
根据负载值由大到小的顺序对堆叠链路进行第一次排序,得到初始链路序列,将初始链路序列中负载值最大的堆叠链路作为第一传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值,可以通过减小负载值的数值调整所述负载值,堆叠链路的负载值数值被减小后,该堆叠链路受故障影响可能性大,被选择用来传输BFD协议报文的机会变小;
基于初始链路序列并依据调整后的负载值进行第二次排序,得到第二链路序列,将第二链路序列中负载值最大的堆叠链路作为第二传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值;
依此,基于上次链路序列并依据调整后的负载值进行本次排序,得到本次链路序列,将本次链路序列中负载值最大的堆叠链路作为本次传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值,直至所述负载值达到设定值,如在负载值变为零时,完成所述动态排序。
其中,基于上次链路序列并依据调整后的负载值进行本次排序可以理解为:将调整后的负载值与上次链路序列中上次传输链路的下一位堆叠链路的负载值进行比较;在调整后的负载值不大于所述下一位堆叠链路的负载值时,保持本次排序,本次链路序列中各堆叠链路的排序与上次链路序列中各堆叠链路的排序相同;在调整后的负载值大于所述下一位堆叠链路的负载值时,通过互换上次链路序列中调整后的负载值对应的堆叠链路与下一位堆叠链路的排位,得到本次链路序列。
实际应用时,每次排序得到的链路序列中,可能存在两个或两个以上负载值最大值,当存在两个或两个以上负载值最大值时,将本次链路序列中负载值最大值的堆叠链路作为本次传输链路应理解为:将负载值最大值对应的堆叠链路与上次链路序列中的负载值最大值对应的堆叠链路不同,且在本次链路序列的排位靠前的负载值最大的堆叠链路作为本次传输链路。假如初始链路序列为S1,S3,S4和S2,对应的负载值依次为3,2,2,2;第二链路序列为S1,S3,S4和S2,对应的负载值依次为2,2,2,2;第一传输链路为堆叠链路S1,由于第二链路序列中每个堆叠链路的负载值均为2,此时选择堆叠链路S3作为第二传输链路。
仍以图2所示的组网为例说明链路顺序的设置过程。如前所述,堆叠链路S1、S2、S3和S4的负载因子分别被配置为1/2,1/3,1/3,1/3,则堆叠链路S1、S2、S3和S4的负载因子之间的比例值为(1/2):(1/3):(1/3):(1/3),堆叠链路S1、S2、S3和S4的负载因子的整数比例值为3:2:2:2,堆叠链路S1、S2、S3和S4的负载值分别为3,2,2,2。
为更好的描述链路顺序的设置过程,本实施例假设堆叠链路S1、S2、S3和S4的负载值分别为3,1,2,2,该负载值不同于上述计算得到的负载值3,2,2,2,对负载值3,2,2,2做了些微变动。
假设堆叠链路S1、S2、S3和S4的负载值分别用S1(3),S2(1),S3(2)和S4(2)表示,其中Sa(b)中的Sa表示堆叠链路的负载值为b。
则链路顺序的确定过程如下:步骤1:
按照上述负载值由大到小的顺序对堆叠链路进行第一次排序,所得到的初始链路序列L1:S1(3),S3(2),S4(2)和S2(1),由于堆叠链路S3和S4的负载值均为2,本实施例示例性地将堆叠链路S3排在堆叠链路S4之前,显然可以将堆叠链路S4排在堆叠链路S3之前。
初始链路序列L1中负载值最大值为3,该负载值最大值对应的堆叠链路为S1,则将堆叠链路S1作为第一传输链路,并通过将堆叠链路S1的负载值3减1调整堆叠链路S1的负载值,调整后的堆叠链路S1的负载值为2,即用S1(2)表示。
步骤2:
基于初始链路序列L1并依据调整后的负载值对堆叠链路进行第二次排序,所得到的第二链路序列L2:S1(2),S3(2),S4(2)和S2(1)。
由于初始链路序列L1中位于堆叠链路S1下一位的堆叠链路为S3,堆叠链路S3的负载值为2,等于堆叠链路S1的负载值(此时堆叠链路S1的负载值为2),因此第二链路序列L2中各堆叠链路的排序与初始链路序列L1相同。
第二链路序列L2中负载值最大值为2,负载值为2的堆叠链路有S1,S3和S4,但由于堆叠链路S1已经作为第一传输链路,且堆叠链路S3在第二链路序列L2中的排位大于堆叠链路S4,因此,将堆叠链路S3作为第二传输链路,并通过将堆叠链路S3的负载值2减1调整堆叠链路S3的负载值,调整后的堆叠链路S3的负载值为1,即用S3(1)表示。
步骤3:
基于第二链路序列L2并依据调整后的负载值对堆叠链路进行第三次排序,所得到的第三链路序列L3:S1(2),S4(2),S3(1)和S2(1)。
由于第二链路序列L2中位于堆叠链路S3下一位的堆叠链路为S4,堆叠链路S4的负载值为2,大于堆叠链路S3的负载值(此时堆叠链路S3的负载值为1),因此,互换第二链路序列L2中堆叠链路S3与堆叠链路S4排位,得到第三链路序列L3为:S1(2),S4(2),S3(1)和S2(1)。
第三链路序列L3中负载值最大值为2,负载值为2的堆叠链路有S1和S4,由于堆叠链路S1在第三链路序列L3中的排位大于堆叠链路S4,且堆叠链路S1不是第二传输链路,因此,将堆叠链路S1作为第三传输链路,并通过将堆叠链路S1的负载值2减1调整堆叠链路S1的负载值,调整后的堆叠链路S1的负载值为1,即用S1(1)表示。
步骤3:
以此类推,所得到的第四链路序列L4为:S4(2),S1(1),S3(1)和S2(1),将堆叠链路S4作为第四传输链路,并将堆叠链路S4的负载值2减1,即用S4(1)表示。
所得到的第五链路序列L5为:S4(1),S1(1),S3(1)和S2(1),将堆叠链路S1作为第五传输链路,并将堆叠链路S1的负载值1减1,由于此时堆叠链路S1的负载值为零,则堆叠链路S1不能参与后续的传输链路的选择,参与后续的传输链路选择的堆叠链路为S2,S3和S4。
所得到的第六链路序列L6为:S4(1),S3(1)和S2(1),将堆叠链路S4作为第六传输链路,并将堆叠链路S4的负载值1减1,由于此时堆叠链路S4的权重值为零,则堆叠链路S4不能参与后续的传输链路的选择,此时参与后续的传输链路选择的堆叠链路为S2和S3。
所得到的第七链路序列L7为:S3(1)和S2(1),将堆叠链路S3作为第七传输链路,并将堆叠链路S3的负载值1减1,由于此时堆叠链路S3的负载值为零,则堆叠链路S3不能参与后续的传输链路的选择,此时参与后续的传输链路选择的堆叠链路只有S2,则将堆叠链路S2作为第八传输链路。
则所确定的链路顺序依次为:S1,S3,S1,S4,S4,S4,S3,S2。
实际应用中,一个BFD会话按照上述链路顺序选择相应的传输链路发送一轮BFD协议报文,在发送完一轮BFD协议报文后,若该会话仍处于工作状态,可以继续按照该链路顺序选择相应的传输链路发送下一轮的BFD协议报文。
本实施例基于负载因子对传输BFD协议报文的堆叠链路进行分担,使BFD协议报文发送和接收都变得更加均衡,在堆叠设备的任意一个堆叠单板出现故障,或在堆叠单板的接口无法及时处理BFD协议报文,都不会对BFD协议报文的交互造成很大的影响,有效地增强BFD协议报文跨框转发的稳定性。
与上述BFD协议报文的传输方法相对应的,本公开该提供了BFD协议报文的传输装置。
图4为本公开实施例提供的BFD协议报文的传输装置结构框图,该装置应用于堆叠设备,所述堆叠设备包括第一堆叠框和第二堆叠框,所述堆叠设备包括二条或二条以上堆叠链路,所述堆叠链路用于所述第一堆叠框和第二堆叠框之间传输BFD协议报文;如图4所述,装置40包括:计算单元41、配置单元42和选择单元43;
计算单元41,用于计算每条堆叠链路对应的负载因子,所述负载因子用于表示所述堆叠链路受故障影响的可能性;
设置单元42,用于根据所述负载因子设置所述堆叠链路传输BFD协议报文的链路顺序;
选择单元43,用于根据所述链路顺序选择堆叠链路传输所述BFD协议报文。
本实施例通过计算各个堆叠链路的负载因子,根据负载因子将BFD协议报文均衡到每条堆叠链路上,这样在某条链路故障时,BFD协议报文依然能够通过其他堆叠链路快速到达目的堆叠框;且本实施例选择受故障影响较小的堆叠链路传输BFD协议报文,很大概率不需进行链路切换,进而能够降低出现协议交换超时的情况,增强BFD协议报文跨框传输的稳定性。
在本实施例的一个实现方案中,设置单元42包括:
链路计算模块,用于根据每条堆叠链路的负载因子得到该堆叠链路的负载值,所述负载值关联于所述堆叠链路传输BFD协议报文的次数;
链路排序模块,用于根据所述负载值设置所述链路顺序,并在每次传输BFD协议报文后,调整所述负载值。
其中,链路排序模块,还用于根据所述负载值由大到小的顺序对所述堆叠链路进行第一次排序,得到初始链路序列,将初始链路序列中负载值最大的堆叠链路作为第一传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值;以及,用于基于初始链路序列并依据调整后的负载值进行第二次排序,得到第二链路序列,将第二链路序列中负载值最大的堆叠链路作为第二传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值;依此,基于上次链路序列并依据调整后的负载值进行本次排序,得到本次链路序列,将本次链路序列中负载值最大的堆叠链路作为本次传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值,直至所述负载值达到设定值,完成所述动态排序。
链路排序模块用于将调整后的负载值与上次链路序列中上次传输链路的下一位堆叠链路的负载值进行比较;在调整后的负载值不大于所述下一位堆叠链路的负载值时,保持本次排序,本次链路序列中各堆叠链路的排序与上次链路序列中各堆叠链路的排序相同;在调整后的负载值大于所述下一位堆叠链路的负载值时,通过互换上次链路序列中调整后的负载值对应的堆叠链路与下一位堆叠链路的排位,得到本次链路序列。
在本实施例的另一个实现方案中,装置40的第一堆叠框和第二堆叠框分别包括一块或一块以上堆叠单板,所述堆叠链路两端分别与第一堆叠框的一块堆叠单板和第二堆叠框的一块堆叠单板连接;计算单元41用于分别获取连接于当前堆叠链路两端的两块堆叠单板所连接的堆叠链路的总数,并以两个总数中的非较小值作为当前堆叠链路的负载量;根据所述负载量计算所述堆叠链路的负载因子。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本公开提供的BFD协议报文的传输装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,参照图5所示,本公开提供的BFD协议报文的传输装置40可包括处理器501、存储有机器可执行指令的机器可读存储介质502。处理器501与机器可读存储介质502可经由系统总线503通信。并且,通过读取并执行机器可读存储介质502中与BFD协议报文的传输逻辑对应的机器可执行指令,处理器501可执行上文描述的BFD协议报文的传输方法。
本公开中提到的机器可读存储介质502可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
根据本公开公开的示例,本公开还提供了一种包括机器可执行指令的机器可读存储介质,例如图5中的机器可读存储介质502,所述机器可执行指令可由BFD协议报文的传输装置40中的处理器501执行以实现以上描述的BFD协议报文的传输方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。凡在本公开的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本公开的保护范围内。
Claims (8)
1.一种BFD协议报文的传输方法,其特征在于,应用于堆叠设备,所述堆叠设备包括第一堆叠框和第二堆叠框,所述堆叠设备包括二条或二条以上堆叠链路,所述堆叠链路用于所述第一堆叠框和第二堆叠框之间传输BFD协议报文;所述方法包括:
计算每条堆叠链路对应的负载因子,所述负载因子用于表示所述堆叠链路受故障影响的可能性;
根据所述负载因子设置所述堆叠链路传输BFD协议报文的链路顺序;
根据所述链路顺序选择堆叠链路传输所述BFD协议报文;
所述根据所述负载因子设置所述堆叠链路传输BFD协议报文的链路顺序,包括:
根据每条堆叠链路的负载因子得到该堆叠链路的负载值,所述负载值关联于所述堆叠链路传输BFD协议报文的次数;
根据所述负载值设置所述链路顺序,并在每次传输BFD协议报文后,调整所述负载值;
其中,所述根据所述负载值设置所述链路顺序包括:
根据所述负载值由大到小的顺序对所述堆叠链路进行第一次排序,得到初始链路序列,将初始链路序列中负载值最大的堆叠链路作为第一传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值;
基于初始链路序列并依据调整后的负载值进行第二次排序,得到第二链路序列,将第二链路序列中负载值最大的堆叠链路作为第二传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值;
依此,基于上次链路序列并依据调整后的负载值进行本次排序,得到本次链路序列,将本次链路序列中负载值最大的堆叠链路作为本次传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值,直至所述负载值达到设定值,完成动态排序。
2.根据权利要求1所述的方法,其特征在于,基于上次链路序列并依据调整后的负载值进行本次排序包括:
将调整后的负载值与上次链路序列中上次传输链路的下一位堆叠链路的负载值进行比较;
在调整后的负载值不大于所述下一位堆叠链路的负载值时,保持本次排序,本次链路序列中各堆叠链路的排序与上次链路序列中各堆叠链路的排序相同;
在调整后的负载值大于所述下一位堆叠链路的负载值时,通过互换上次链路序列中调整后的负载值对应的堆叠链路与下一位堆叠链路的排位,得到本次链路序列。
3.根据权利要求1所述的方法,其特征在于,第一堆叠框和第二堆叠框分别包括一块或一块以上堆叠单板,所述堆叠链路两端分别与第一堆叠框的一块堆叠单板和第二堆叠框的一块堆叠单板连接,所述算每条堆叠链路对应的负载因子,包括:
分别获取连接于当前堆叠链路两端的两块堆叠单板所连接的堆叠链路的总数,并以两个总数中的非较小值作为当前堆叠链路的负载量;
根据所述负载量计算所述堆叠链路的负载因子。
4.一种BFD协议报文的传输装置,其特征在于,应用于堆叠设备,所述堆叠设备包括第一堆叠框和第二堆叠框,所述堆叠设备包括二条或二条以上堆叠链路,所述堆叠链路用于所述第一堆叠框和第二堆叠框之间传输BFD协议报文;该装置包括:
计算单元,用于计算每条堆叠链路对应的负载因子,所述负载因子用于表示所述堆叠链路受故障影响的可能性;
设置单元,用于根据所述负载因子设置所述堆叠链路传输BFD协议报文的链路顺序;
选择单元,用于根据所述链路顺序选择堆叠链路传输所述BFD协议报文;
其中,所述设置单元包括:
链路计算模块,用于根据每条堆叠链路的负载因子得到该堆叠链路的负载值,所述负载值关联于所述堆叠链路传输BFD协议报文的次数;
链路排序模块,
用于根据所述负载值由大到小的顺序对所述堆叠链路进行第一次排序,得到初始链路序列,将初始链路序列中负载值最大的堆叠链路作为第一传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值;以及,用于基于初始链路序列并依据调整后的负载值进行第二次排序,得到第二链路序列,将第二链路序列中负载值最大的堆叠链路作为第二传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值;依此,基于上次链路序列并依据调整后的负载值进行本次排序,得到本次链路序列,将本次链路序列中负载值最大的堆叠链路作为本次传输链路,并通过增加该堆叠链路受故障影响的可能性调整该堆叠链路的负载值,直至所述负载值达到设定值,完成动态排序。
5.根据权利要求4所述的装置,其特征在于,所述链路排序模块,具体用于将调整后的负载值与上次链路序列中上次传输链路的下一位堆叠链路的负载值进行比较;在调整后的负载值不大于所述下一位堆叠链路的负载值时,保持本次排序,本次链路序列中各堆叠链路的排序与上次链路序列中各堆叠链路的排序相同;在调整后的负载值大于所述下一位堆叠链路的负载值时,通过互换上次链路序列中调整后的负载值对应的堆叠链路与下一位堆叠链路的排位,得到本次链路序列。
6.根据权利要求4所述的装置,其特征在于,第一堆叠框和第二堆叠框分别包括一块或一块以上堆叠单板,所述堆叠链路两端分别与第一堆叠框的一块堆叠单板和第二堆叠框的一块堆叠单板连接;
所述计算单元,用于分别获取连接于当前堆叠链路两端的两块堆叠单板所连接的堆叠链路的总数,并以两个总数中的非较小值作为当前堆叠链路的负载量;根据所述负载量计算所述堆叠链路的负载因子。
7.一种BFD协议报文的传输装置,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:执行如权利要求1~3任一所述的BFD协议报文的传输方法。
8.一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:执行如权利要求1~3任一所述的BFD协议报文的传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710772980.0A CN107547385B (zh) | 2017-08-31 | 2017-08-31 | Bfd协议报文的传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710772980.0A CN107547385B (zh) | 2017-08-31 | 2017-08-31 | Bfd协议报文的传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107547385A CN107547385A (zh) | 2018-01-05 |
CN107547385B true CN107547385B (zh) | 2020-10-27 |
Family
ID=60959188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710772980.0A Active CN107547385B (zh) | 2017-08-31 | 2017-08-31 | Bfd协议报文的传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107547385B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469019A (zh) * | 2010-11-18 | 2012-05-23 | 中兴通讯股份有限公司 | 一种包交换网络中聚合链路带宽的分配方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100583895C (zh) * | 2007-03-22 | 2010-01-20 | 华为技术有限公司 | 一种链路聚合方法、端口负载均衡方法及其装置 |
CN101355520B (zh) * | 2008-09-12 | 2010-08-25 | 杭州华三通信技术有限公司 | 防止堆叠中的流量中断的方法及堆叠设备 |
CN102469021B (zh) * | 2010-11-18 | 2014-08-13 | 杭州华三通信技术有限公司 | 一种智能弹性框架系统中转发业务流量的方法和成员设备 |
CN103023804B (zh) * | 2012-12-18 | 2015-08-19 | 北京星网锐捷网络技术有限公司 | 一种聚合链路自适应流量负载均衡方法、装置及网络设备 |
CN103731376B (zh) * | 2013-12-10 | 2017-05-17 | 迈普通信技术股份有限公司 | 堆叠设备上链路汇聚根端口选择的方法及系统 |
-
2017
- 2017-08-31 CN CN201710772980.0A patent/CN107547385B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469019A (zh) * | 2010-11-18 | 2012-05-23 | 中兴通讯股份有限公司 | 一种包交换网络中聚合链路带宽的分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107547385A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107360092B (zh) | 用于数据网络中的平衡负载的系统和方法 | |
US7706364B2 (en) | Virtual network device clusters | |
EP1757038B1 (en) | Virtual network device clusters | |
US11206210B2 (en) | Packet processing method and system, and device | |
CN107995123A (zh) | 一种基于交换机的负载均衡系统及方法 | |
CN104919760B (zh) | 虚拟机箱系统控制协议 | |
CN105340230A (zh) | 虚拟机架拓扑管理 | |
US9912544B2 (en) | System and method for master switch election | |
US20190312805A1 (en) | Dynamic flooding for link state protocols | |
US9354995B2 (en) | Method for controlling operations of server cluster | |
CN101729425A (zh) | Vrrp组网中流量发送的方法及设备 | |
US10560379B1 (en) | Adaptive network routing | |
US10686734B2 (en) | Network switch with interconnected member nodes | |
CN110620739B (zh) | 一种bfd报文发送方法及装置 | |
US10560400B2 (en) | Method for managing traffic item in software-defined networking | |
WO2016122934A1 (en) | Multi-chassis link aggregation (lag) switches | |
CN107547385B (zh) | Bfd协议报文的传输方法和装置 | |
US8619627B2 (en) | Automatic determination of groupings of communications interfaces | |
CN106209634B (zh) | 地址映射关系的学习方法及装置 | |
US20210297321A1 (en) | Sparse link-state flooding | |
US11394814B2 (en) | Path control by end hosts in networks | |
CN108696460B (zh) | 一种报文转发方法及装置 | |
CN116016324B (zh) | 一种报文传输方法、系统、装置及电子设备 | |
US11876680B2 (en) | Method and apparatus for determining link for forwarding service flow | |
CN117792992B (zh) | 数据传输路径控制方法、装置、介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |