一种数据的转发方法、装置、堆叠设备和计算机可读介质与流程

文档序号:16433754发布日期:2018-12-28 20:20阅读:171来源:国知局
一种数据的转发方法、装置、堆叠设备和计算机可读介质与流程

本公开涉及网络通信的技术领域,尤其是涉及一种数据的转发方法、装置、堆叠设备和计算机可读介质。

背景技术

irf(intelligentresilientframework,智能弹性架构)是一种软件虚拟化技术。irf的核心思想是将多台设备连接在一起,进行必要的配置后,虚拟化成一台设备,即堆叠设备。使用这种虚拟化技术可以集合多台设备的硬件资源和软件处理能力,实现多台设备的协同工作、统一管理和不间断维护。

如果现有堆叠设备中的任意一个成员设备出现故障时,则会产生大量的跨框流量。跨框流程的大量增加会对堆叠链路产生很大压力。针对该问题,现有的一种解决方式是手动调整哈子因子的方式来切换进行流量转发的堆叠链路。但是该方法调整耗时久,很难达到一个令人满意的结果,同时也会导致报文的乱序,对一些语言视频业务会产生较大的影响。



技术实现要素:

有鉴于此,本公开的目的在于提供一种数据的转发方法、装置、堆叠设备和计算机可读介质,以解决在缓解堆叠链路的转发压力时,由于采用手动调整哈希算法来调整堆叠链路的方式导致的调整效果较差的技术问题。

第一方面,本公开实施例提供了一种数据的转发方法,应用于堆叠设备,所述堆叠设备中包括多个堆叠框,,包括:若检测到堆叠成员口中存在流量拥塞的拥塞端口,则选择用于协助所述拥塞端口转发待转发报文的第一分担端口,其中,所述待转发报文为堆叠框的上行单板通过网板向堆叠单板传输的报文,所述堆叠单板上设置有用于实现堆叠框之间堆叠连接的堆叠成员口,所述网板用于所述上行单板和所述堆叠单板之间的交换转发;为所述待转发报文中的第一目标报文设置第一索引标识,其中,所述第一索引标识表示所述第一目标报文通过所述第一分担端口向外转发;若所述第一目标报文到达所述堆叠单板,则基于所述第一索引标识哈希到所述第一分担端口,并通过所述第一分担端口转发所述第一目标报文。

第二方面,本公开实施例还提供了一种数据的转发装置,设置于堆叠设备,所述堆叠设备中包括多个堆叠框,包括:确定单元,用于在检测到所述堆叠框的堆叠成员口中存在流量拥塞的拥塞端口的情况下,选择用于协助所述拥塞端口转发待转发报文的第一分担端口,其中,所述待转发报文为堆叠框的上行单板通过网板向堆叠单板传输的报文,所述堆叠单板上设置有用于实现堆叠框之间堆叠连接的堆叠成员口,所述网板用于所述上行单板和所述堆叠单板之间的交换转发;设置单元,用于为所述待转发报文中的第一目标报文设置第一索引标识,其中,所述第一索引标识表示所述第一目标报文通过所述第一分担端口向外转发;发送单元,用于在所述第一目标报文到达所述堆叠单板的情况下,基于所述第一索引标识计算所述第一分担端口的标识信息,以通过所述第一分担端口转发所述第一目标报文。

第三方面,本公开实施例还提供了一种堆叠设备,包括多个堆叠框,每个所述堆叠框包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述方法。

第四方面,本公开实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述所述方法。

在本公开实施例中,首先,确定拥塞端口的分担端口(即,第一分担端口),之后,在待转发报文中选择部分报文(即,第一目标报文),并在该部分报文中设置第一索引标识,堆叠单板在获取到该部分报文之后,就能够基于该第一索引标识哈希到拥塞端口的分担端口,进而,通过该分担端口进行部分报文的转发。

通过上述处理方式,无需手动反复调整哈希算法,通过在部分报文中设置网板中与该分担端口相关联接口的索引标识的方式,就能够使得堆叠单板哈希到对应的分担端口,以避免出现由于反复调整哈希算法导致的长时间丢包的现象,进而解决在缓解堆叠链路的转发压力时,由于采用手动调整哈希算法来调整堆叠链路的方式导致的调整效果较差的技术问题。

本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本公开实施例的一种堆叠设备的示意图;

图2是根据本公开实施例的一种数据的转发方法的流程图;

图3是根据本公开实施例的另一种堆叠设备的示意图;

图4是根据本公开实施例的一种报文在堆叠设备中转发流程的示意图;

图5是根据本公开实施例的一种的触发方案的流程图;

图6是根据本公开实施例的另一种可选的触发方案的流程图;

图7是根据本公开实施例的一种可选的流量调整方案的流程图;

图8是根据本公开实施例的一种可选的恢复方案的流程图;

图9是根据本公开实施例的一种数据的转发装置的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

当堆叠设备中的某个堆叠框在出现故障的时候,就会出现大量跨框流量的产生。例如,如图1所示,堆叠设备中包括堆叠框1和堆叠框2,当堆叠框2的下行链路断开时,原本2框入2框出的流量全部需要走跨框转发流量,即通过堆叠框1将堆叠框2转发的数据转发出去。此时会给堆叠框1和堆叠框2之间的堆叠链路产生很大压力。由于当前堆叠链路都是通过聚合来实现的,那么这种情况下的流量跨框转发就完全依赖于手工调整哈希算法来调整堆叠链路,哈希算法的手工调整就会依赖于哈希因子以及业务流量的内容。反复调整哈希因子会导致堆叠设备长时间的丢包,并且可能没有一个较好的调整结果。而且更改哈希因子依赖于流量的内容,并且调整耗时久,很难达到一个令人满意的结果,逐包转发的话会导致报文的乱序,对一些语言视频业务会产生较大的影响。

基于此,在本实施例中,提出了一种数据的转发方法,通过本公开所提供的方法,无需手动反复调整哈希算法,通过在部分报文中设置网板中与该分担端口相关联接口的索引标识的方式,就能够使得堆叠单板哈希到对应的分担端口,以避免出现由于反复调整哈希算法导致的长时间丢包的现象,进而解决在缓解堆叠链路的转发压力时,由于采用手动调整哈希算法来调整堆叠链路的方式导致的调整效果较差的技术问题。下面将结合具体实施例介绍该方法。

需要说明的是,本实施例中所描述的堆叠框为堆叠设备中的成员设备,换句话说,多个堆叠框组成了一个堆叠设备。例如,堆叠框可以交换机,但是,在本实施例中,并不限定堆叠框一定为交换机,还可以为网络设备。

实施例1:

根据本公开实施例,提供了一种数据的转发方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图2是根据本公开实施例的一种数据的转发方法的流程图,如图2所示,该方法包括如下步骤:

步骤s202,若检测到堆叠框的堆叠成员口中存在流量拥塞的拥塞端口,则选择用于协助拥塞端口转发待转发报文的第一分担端口,其中,待转发报文为堆叠框的上行单板通过网板向堆叠单板传输的报文,所述堆叠单板上设置有用于实现堆叠框之间堆叠连接的堆叠成员口,所述网板用于所述上行单板和所述堆叠单板之间的交换转发;

拥塞端口为堆叠端口出现流量拥塞的接口;分担端口为堆叠端口中用于分担拥塞端口的部分报文(或者流量)的接口。

步骤s204,为所述待转发报文中的第一目标报文设置第一索引标识,其中,所述第一索引标识表示所述第一目标报文通过所述第一分担端口向外转发;

步骤s206,若所述第一目标报文到达所述堆叠单板,则基于第一索引标识计算第一分担端口的标识信息,以通过第一分担端口转发第一目标报文。

本公开实施例中所提供的方法,能够应用在如图3所示的堆叠设备a的堆叠框中。当堆叠框2与网络设备b之间的链路出现故障断开时,堆叠框2接收到的报文就会通过堆叠框1发送到网络设备b,此时,将在堆叠框2和堆叠框1之间产生跨框流量。

在图3的基础上,结合图4可知,如果堆叠框2接收到的报文转发到堆叠框1,那么上述步骤中所描述的上行单板即为堆叠框2中用于接收网络下发的待转发报文的单板。堆叠单板用于将堆叠框2和堆叠框1进行连接。堆叠单板上设置有堆叠设备中堆叠框的堆叠成员口。其中,堆叠成员口为各个堆叠框中用于进行堆叠连接的物理业务端口。堆叠框2的堆叠成员口和堆叠框1的堆叠成员口之间组成堆叠链路,进而实现堆叠框2和堆叠框1的连接,其中,报文可以通过该堆叠链路进行转发。网板设置在上行单板和堆叠单板之间,用于实现上行单板和堆叠单板之间的交换转发。

具体地,结合如图4所示,上述报文转发过程可以描述为:堆叠框2中的上行单板接收网络下发的待转发报文;上行单板在获取到待转发报文之后,进行哈希计算,以确定用于进行报文转发的网板;在确定该网板之后,就可以通过确定出的网板将待转发报文发送至堆叠单板,其中,网板设置在上行单板和堆叠单板之间,用于实现上行单板和堆叠单板之间的交换转发。堆叠单板在获取到待转发报文之后,进行哈希计算,得到对应的堆叠成员口,在确定出该堆叠成员口之后,就能够基于该堆叠成员口所在堆叠链路将待转发报文发送到堆叠框1中。

通过上述描述可知,网板是用于承担单板和单板之间的报文交换转发的硬件。一般情况下,网板的接口向固定的堆叠接口转发报文。例如,网板的接口1固定的向堆叠单板中的堆叠成员口1转发报文,网板的接口2固定的向堆叠单板中的堆叠成员口2转发报文。在此情况下,堆叠单板在获取到接口1转发的报文之后,就能够确定出通过堆叠成员口1所在堆叠链路向外转发报文,而不是堆叠成员口2向外转发报文。

基于此,在本公开中,在选择出第一分担端口之后,可以在待转发报文的部分报文(即,上述第一目标报文)中设置第一索引标识,该第一索引标识表征通过第一分担端口向堆叠框1转发报文。堆叠单板在获取到携带第一索引标识的报文之后,就可以基于该第一索引标识哈希到对应的转发接口,即,第一分担端口;进而,就可以通过该分担端口将该报文发送出去,以实现在不调整哈希算法的基础上,通过分担端口为拥塞端口分担报文转发任务。

采用本公开所提供的方法,无需手动反复调整哈希算法,通过在部分报文中设置网板中与该分担端口相关联接口的索引标识的方式,就能够使得堆叠单板哈希到对应的分担端口,以避免出现由于反复调整哈希算法导致的长时间丢包的现象,进而解决在缓解堆叠链路的转发压力时,由于采用手动调整哈希算法来调整堆叠链路的方式导致的调整效果较差的技术问题。

下面将结合具体实施例介绍该数据的转发方法。

在本公开中,首先,检测堆叠框的各个堆叠成员口中是否存在出现流量拥塞的拥塞端口,如果存在,则选择第一分担端口。

在本实施例中,可以通过以下两种方案来检测堆叠框的各个堆叠成员口中是否存在出现流量拥塞的拥塞端口。

方案一

检测各个堆叠成员口的带宽利用率是否超于预设阈值;其中,如果超过,则确定该堆叠成员口为拥塞端口;在判断出包含拥塞端口之后,还可以继续判断堆叠成员口中是否包含存在多余带宽的堆叠成员口;如果判断出包含,则选择第一分担端口。

需要说明的是,在本公开中,可以每隔一段时间执行一次方案一,具体时间间隔(或者轮询周期)可以根据实际需要来进行设定。通过定期执行该方案一,能够及时发现拥塞端口,并有效对该拥塞端口所转发的报文进行调整,以缓解该拥塞端口的转发压力,从而避免出现接口拥塞导致的丢包现象。

方案二

在检测堆叠框的堆叠成员口中是否存在流量拥塞的拥塞端口之前,检测到报文进入接口和报文转发接口中的任意一个接口是否发生接口dowm事件;如果是,检测堆叠框的堆叠成员口中是否存在流量拥塞的拥塞端口;其中,报文进入接口为上行单板中的报文进入接口;报文转发接口为目的堆叠框中用于向外转发待转发报文的接口,当前堆叠框向目的堆叠框传输待转发报文。

具体地,在本实施例中,如果检测到报文进入接口和报文转发接口中的任意一个接口发生dowm事件,则检测各个堆叠成员口的带宽利用率是否超于预设阈值;其中,如果超过,则确定该堆叠成员口为拥塞端口。在判断出包含拥塞端口之后,还可以继续判断堆叠成员口中是否包含存在多余带宽的堆叠成员口;如果判断出包含,则选择第一分担端口。

需要说明的是,当报文进入接口和报文转发接口中的任意一个接口发生dowm事件时,表明堆叠链路可能会出现跨框流量突然增加的情况,在此情况下,可以执行上述方案一,以防止由于轮询时间设置的过长,导致的没能及时检测并调整拥塞端口的问题。

在本实施例中,在通过上述方案一或者方案二,检测到堆叠成员口中存在流量拥塞的端口,以及选择出第一分担端口之后,就可以为待转发报文中的第一目标报文设置第一索引标识。

在一个可选的实施方式中,步骤s204,为待转发报文中的第一目标报文设置第一索引标识包括如下步骤:

步骤s2041,基于索引映射表查找网板上与第一分担端口相关联接口的索引标识,并将该索引标识确定为第一索引标识,其中,索引映射表中包含堆叠成员口与网板上接口之间的关联关系;

步骤s2042,若网板上转发待转发报文,则为第一目标报文设置第一索引标识。

具体地,在本公开实施例中,在网板将待转发报文转发至堆叠单板上之后,堆叠单板进行哈希计算,以确定用于向外发送该待转发报文的堆叠成员口。其中,堆叠单板可以采用source-port(源端口)的方式来哈希到用于向外发送该待转发报文的堆叠成员口,其中,该源端口指的就是网板同堆叠单板相连的接口。例如,堆叠单板根据source-port(源端口)的索引标识来进行哈希计算,以得到用于向外发送该待转发报文的堆叠成员口,其中,索引标识记做port_index。

在本公开实施例中,索引映射表中包括堆叠成员口与网板上接口之间的关联关系,或者对应关系。其中,一个索引标识port_index会对应到唯一的堆叠成员口上。索引映射表如下表1所示,从表1中可以看出,索引标识port_index1和索引标识port_index2对应到堆叠成员口1中;该对应关系表示索引标识记为port_index1的网板接口用于向堆叠成员口1转发报文,而不会向堆叠成员口2转发报文。从表1中可以看出,该索引映射表中还包括调整流量值和当前流量。其中,调整流量值是指堆叠成员口中的拥塞端口被分担的流量值,以及堆叠成员口中的分担端口为拥塞端口所分担的流量值。

表1

在本实施例中,可以预先设定多个特殊的索引标识port_index,例如,ff1,ff2等,用于固定对应堆叠成员口,并将该特殊的索引标识port_index更新到上述索引映射表中。需要说明的是,特殊的索引标识port_index还可以采用其他的表示方式,本实施例中不做具体限定。

当一个堆叠成员口出现拥塞,那么先判断各个堆叠成员口中其余堆叠成员口的多余带宽情况。如果各个堆叠成员口中包含存在多余带宽的堆叠成员口,则选取流量小于80%(具体的阈值选取可以根据实际需要来进行设定),并且流量最小的堆叠成员口作为第一分担端口,记做:端口3,假设该第一分担端口的对应的特殊索引标识port_index值为ff3。

在待转发报文(或者,流量)到达网板之后,根据上述索引映射表,首先确定拥塞端口所对应的网板接口(即,上述目标接口);然后,在该索引映射表中查询端口3所对应的特殊索引标识port_indexff3。在该网板接口进行待转发报文的转发过程中,从待转发报文中选择部分报文作为第一目标报文,并为该第一目标报文设置特殊索引标识port_indexff3(即,上述第一索引标识)。第一目标报文在达到堆叠单板之后,堆叠单板根据特殊索引标识port_indexff3进行哈希计算,以得到用于向外发送该待转发报文的堆叠成员口,即上述端口3。在得到该端口3之后,就可以通过该端口3来转发第一目标报文。

通过上述描述可知,在本实施例中,无需手动调整哈希算法,以解决了在堆叠设备中存在大量跨框流量的情况下,由于采用手动调整哈希算法来调整堆叠链路的方式导致的拥塞端口出现丢包现象的技术问题。采用本实施例中所提供的方法,不会出现丢包的现象,且无需手动调整哈希算法。

在另一个可选的实施方式中,为待转发报文中的第一目标报文设置第一索引标识还包括:按照预设比例值从待转发报文中选择部分报文作为第一目标报文,并为第一目标报文设置第一索引标识。

具体地,在本实施例中按照10%的比例,从每100个报文中,采样10个报文,且该10个报文中每个报文均设置一个特殊的索引标识port_index:ff3。此时,该网板的目标接口上就会有10%的报文的sourceport字段被设置成ff3,该部分报文在到达堆叠单板之后,就会被固定的哈希到堆叠成员口,例如,被固定哈希到端口3。

需要说明的是,在本实施例中,预设比例值可以选取为10%,还可以选取为除10%之外的任意一个数值,本实施例中不做具体限定。

在本实施例中,在第一分担端口转发第一目标报文之后,如果第一分担端口的流量超过第二阈值,则将预设比例值由当前数值减小至目标数值,其中,所述预设比例值为所述第一目标报文在所述待转发报文中所占的比值。

具体地,在本实施例中,在第一分担端口转发第一目标报文之后,判断第一分担端口的流量是否达到其所能传输的流量的100%(第二阈值)。如果判断出是,则需要调整预设比例值的大小,即将预设比例值由当前数值减小至目标数值。例如,预设比例值由当前的10%减小至5%。在减小预设比例值之后,就可以按照目标数值从待转发报文中选择第一目标报文,并为该第一目标报文设置第一索引标识。例如,从100个报文中,随机选择5个报文,并为该5个报文设置第一索引标识。

需要说明的是,在本实施例中,在第一分担端口向外发送上述第一目标报文之后,还可以再次判断第一分担端口的流量是否达到其所能传输的流量的100%,如果是,则继续重复上述步骤,如果不是,则执行后续的步骤。

进一步需要说明的是,在本实施例中,第二阈值并不限定为100%,还可以是其他数值,例如,98%或者99%,本实施例中不做具体限定。

在本公开实施例中,在第一分担端口转发第一目标报文之后,如果第一分担端口的流量未达到第二阈值,且拥塞端口的流量达到第二阈值,则选择用于协助拥塞端口转发待转发报文的第二分担端口;以及,为待转发报文中的第二目标报文设置第二索引标识;若所述第二目标报文到达所述堆叠单板,则基于第二索引标识哈希到第二分担端口,并通过第二分担端口转发第二目标报文,第二索引标识为网板中与第二分担端口相关联的接口的标识。

具体地,在第一分担端口转发第一目标报文之后,判断第一分担端口的流量是否达到其所能传输流量的100%(第二阈值),如果判断出未达到第二阈值,则继续判断拥塞端口的流量是否达到其所能传输流量的100%(第二阈值)。如果判断出是,那么说明拥塞端口的拥塞情况依然存在。

在此情况下,可以按照上述实施例中所描述的方法,从各个堆叠成员口中选择最小流量的堆叠成员口作为第二分担端口,例如,选择堆叠成员口中的端口4作为第二分担端口。假设,端口4所对应的特殊索引标识port_index为ff4(即,第二索引标识),那么将设置第二索引标识(ff4)的第二目标报文发送至堆叠单板,以使堆叠单板基于第二索引标识(ff4)确定第二分担端口(端口4),并通过第二分担端口(端口4)转发第二目标报文。

需要说明的是,在本实施例中,第二目标报文也是按照预设比例值从待转发报文中选择的部分报文,且第一目标报文与第二目标报文不重叠。

进一步需要说明的是,可以按照预设比例值1从待转发报文中选择部分报文作为第一目标报文;还可以按照预设比例值2从待转发报文中选择部分报文作为第一目标报文,其中,预设比例值1与预设比例值2相同或者不同。

在本实施例中,在第一分担端口转发第一目标报文之后,如果第一分担端口和拥塞端口的流量均未达到第二阈值,则将堆叠成员口的当前流量值和调整流量值写入索引映射表中,其中,索引映射表中包含堆叠单板上的堆叠成员口与网板上各个端口之间的映射关系,以及各个堆叠成员口的当前流量值和调整流量值。

具体地,在判断出拥塞端口以及各个分担端口的流量均未达到100%(第二阈值)的情况下,那么说明调整已经完成,那么此时就把各个堆叠成员口当前的流量值以及调整流量值填入索引映射表中。

上述所描述的过程为一个堆叠成员口出现流量拥塞时的处理方法,如果存在多个堆叠成员口出现拥塞,那么每个出现流量拥塞的堆叠成员口的处理方法是相同的,可以对多个堆叠成员口逐个进行调整。例如,可以按照多个堆叠成员口的优先级顺序进行逐个调整。

在本实施例中,该方法还包括:每隔预设时间从索引映射表中读取拥塞端口的当前流量值和调整流量值;基于拥塞端口的当前流量值和调整流量值判断拥塞端口是否满足恢复条件;如果满足,则为待转发报文的全部报文设置第三索引标识,以使所述待转发报文通过所述拥塞端口向外转发,其中,第三索引标识为网板中与拥塞端口相关联的接口的标识。

具体地,在本实施例中,每隔预设时间从索引映射表中读取拥塞端口的当前流量值和调整流量值。当拥塞端口的调整流量值+当前流量<端口带宽*90%的时候,则确定拥塞端口满足恢复条件。此时,将待转发报文的第一目标报文,或者第二部分或者中设置的特殊的索引标识恢复到默认值,其中,默认值为第三索引标识,表示待转发报文通过拥塞端口向外转发。在将特殊的索引标识恢复到默认值之后,可以重新记录索引映射表,从而将分担端口和拥塞端口的信息重新写入到索引映射表的对应表项中。

通过上述处理方式,本公开所提供的方法,无需手动反复调整哈希算法,通过在部分报文中设置网板中与该分担端口相关联接口的索引标识的方式,就能够使得堆叠单板哈希到对应的分担端口,以避免出现由于反复调整哈希算法导致的长时间丢包的现象,进而解决在缓解堆叠链路的转发压力时,由于采用手动调整哈希算法来调整堆叠链路的方式导致的调整效果较差的技术问题。

实施例2:

通过上述实施例1的描述可知,在本实施例中,该数据的转发方法主要包括以下几个方案:触发方案,流量调整方案和恢复方案,下面将结合图5至图8对上述三个方案分别进行介绍。

如图5所示的一种可选的触发方案的具体过程描述如下:

检测各个堆叠成员口的带宽利用率是否超于预设阈值;其中,如果超过,则确定该堆叠成员口为拥塞端口;在判断出包含拥塞端口之后,还可以继续判断堆叠成员口中是否包含存在多余带宽的堆叠成员口;如果判断出包含,则执行流量调整方案,其中,流量调整方案是为拥塞端口调整转发流量的方案。

如图6所示的另一种可选的触发方案的具体过程描述如下:

检测报文进入接口和报文转发接口中的任意一个接口是否发生接口dowm事件;如果是,检测各个堆叠成员口的带宽利用率是否超于预设阈值;其中,如果超过,则确定该堆叠成员口为拥塞端口;在判断出包含拥塞端口之后,还可以继续判断堆叠成员口中是否包含存在多余带宽的堆叠成员口;如果判断出包含,则执行流量调整方案。其中,报文进入接口为上行单板中的报文进入接口;报文转发接口为目的堆叠框中用于向外转发待转发报文的接口,当前堆叠框向目的堆叠框传输待转发报文。

如图7所示的一种可选的流量调整方案的具体过程描述如下:

步骤s701,确定拥塞端口;

步骤s702,通过索引映射表查看网板上该拥塞端口所对应的目标接口;

步骤s703,判断是否寻找到拥塞端口的第一分担端口,其中,如果未寻找到第一分担端口,则说明调整失败;如果寻找到第一分担端口,则执行步骤s704;

步骤s704,确定第一索引标识,其中,第一索引标识表示待转发报文中的第一目标报文通过第一分担端口向外转发;

步骤s705,确定预设比例值;

步骤s706,按照预设比例值从待转发报文中选择部分报文作为第一目标报文,并为第一目标报文设置第一索引标识;

步骤s707,将携带第一索引标识的第一目标报文发送至堆叠单板;以使堆叠单板基于第一索引标识确定第一分担端口,并通过第一分担端口转发该第一目标报文;

步骤s708,在第一分担端口转发第一目标报文之后,判断第一分担端口是否出现流量拥塞情况;其中,如果第一分担端口出现流量拥塞情况,则执行步骤s709;如果第一分担端口未出现流量拥塞情况,则执行步骤s710;

步骤s709,重新确定预设比例值,并返回执行步骤s706;则继续判断拥塞端口是否还出现流量拥塞情况;

步骤s710,判断拥塞端口是否存在流量拥塞情况,如果存在,则返回执行步骤s703,否则执行步骤s711;

步骤s711,将所述堆叠成员口的当前流量值和调整流量值写入索引映射表中。

如图8所示的一种可选的恢复方案的具体过程描述如下:

步骤s801,周期性查看索引映射表,以从索引映射表中读取拥塞端口的当前流量值和调整流量值;

步骤s802,判断拥塞端口是否满足恢复条件,具体可以判断当拥塞端口的调整流量值+当前流量<端口带宽*90%是否成立,如果成立,则满足恢复条件,否则不满足恢复条件;如果满足恢复条件,则执行步骤s803,否则返回执行步骤s801;

步骤s803,为待转发报文的全部报文设置第三索引标识,其中,第三索引标识为网板中与拥塞端口相关联的接口的标识,表征待转发报文通过拥塞端口向外转发。

通过图5至图8所描述的可知,本公开所提供的方法,无需手动反复调整哈希算法,通过在部分报文中设置网板中与该分担端口相关联接口的索引标识的方式,就能够使得堆叠单板哈希到对应的分担端口,以避免出现由于反复调整哈希算法导致的长时间丢包的现象,进而解决在缓解堆叠链路的转发压力时,由于采用手动调整哈希算法来调整堆叠链路的方式导致的调整效果较差的技术问题。

实施例3:

本公开实施例还提供了一种数据的转发装置,该数据的转发装置主要用于执行本公开实施例上述内容所提供的数据的转发方法,以下对本公开实施例提供的数据的转发装置做具体介绍。

图9是根据本公开实施例的一种数据的转发装置的示意图,如图9所示,该数据的转发装置主要包括确定单元10,设置单元20和发送单元30,其中:

确定单元10,用于在检测到所述堆叠框的堆叠成员口中存在流量拥塞的拥塞端口的情况下,选择用于协助所述拥塞端口转发待转发报文的第一分担端口,其中,所述待转发报文为堆叠框的上行单板通过网板向堆叠单板传输的报文,所述堆叠单板上设置有用于实现堆叠框之间堆叠连接的堆叠成员口,所述网板用于所述上行单板和所述堆叠单板之间的交换转发;

设置单元20,用于为所述待转发报文中的第一目标报文设置第一索引标识,其中,所述第一索引标识表示所述第一目标报文通过所述第一分担端口向外转发;

发送单元30,用于在所述第一目标报文到达所述堆叠单板的情况下,基于所述第一索引标识计算所述第一分担端口的标志信息,以通过所述第一分担端口转发所述第一目标报文。

在本公开中,无需手动反复调整哈希算法,通过在部分报文中设置网板中与该分担端口相关联接口的索引标识的方式,就能够使得堆叠单板哈希到对应的分担端口,以避免出现由于反复调整哈希算法导致的长时间丢包的现象,进而解决在缓解堆叠链路的转发压力时,由于采用手动调整哈希算法来调整堆叠链路的方式导致的调整效果较差的技术问题。

可选地,设置单元20包括:查找模块,用于基于索引映射表查找所述网板上与所述第一分担端口相关联的接口的索引标识,并将该索引标识确定为所述第一索引标识,其中,所述索引映射表中包含堆叠成员口与网板上接口之间的关联关系;第一设置模块,用于在所述网板上转发所述待转发报文的情况下,为所述第一目标报文设置所述第一索引标识。

可选地,该装置还用于:在所述第一分担端口转发所述第一目标报文之后,如果所述第一分担端口的流量达到第二阈值,则将所述预设比例值由当前数值减小至目标数值。

可选地,该装置还用于:在所述第一分担端口转发所述第一目标报文之后,如果所述第一分担端口的流量未达到所述第二阈值,且所述拥塞端口的流量达到所述第二阈值,则选择用于协助所述拥塞端口转发待转发报文的第二分担端口;为所述待转发报文中的第二目标报文设置第二索引标识;若所述第二目标报文到达所述堆叠单板,则基于所述第二索引标识哈希到第二分担端口,并通过所述第二分担端口转发所述第二目标报文,所述第二索引标识表示所述第二目标报文通过所述第二分担端口向外转发。

可选地,该装置还用于:在所述第一分担端口转发所述第一目标报文之后,如果所述第一分担端口和所述拥塞端口的流量均未达到所述第二阈值,则将所述堆叠成员口的当前流量值和调整流量值写入索引映射表中,其中,所述索引映射表中包含堆叠单板上的堆叠成员口与网板上各个端口之间的映射关系,以及各个堆叠成员口的当前流量值和调整流量值。

可选地,该装置还用于:每隔预设时间从所述索引映射表中读取所述拥塞端口的当前流量值和调整流量值;基于所述拥塞端口的当前流量值和调整流量值判断所述拥塞端口是否满足恢复条件;如果满足,则为所述待转发报文的全部报文设置第三索引标识,以使所述待转发报文通过所述拥塞端口向外转发,其中,所述第三索引标识为网板中与所述拥塞端口相关联接口的标识。

可选地,该装置还用于:在检测所述堆叠成员口中是否存在流量拥塞的拥塞端口之前,检测到报文进入接口和报文转发接口中的任意一个接口是否发生接口dowm事件;如果是,检测所述堆叠成员口中是否存在流量拥塞的拥塞端口;其中,所述报文进入接口为所述上行单板中的报文进入接口;所述报文转发接口为目的堆叠框中用于向外转发所述待转发报文的接口,当前堆叠框向所述目的堆叠框传输所述待转发报文。

在另一个实施例中,还提供了一种堆叠设备,包括多个堆叠框,每个所述堆叠框包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例1和实施例2中任意实施例所描述的数据的转发方法。

在另一个实施例中,还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述实施例1和实施例2中任意实施例所描述的数据的转发方法。

本公开实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

另外,在本公开实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本公开中的具体含义。

在本公开的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1