报文转发方法及装置、计算机可读存储介质与流程

文档序号:14717740发布日期:2018-06-16 01:55阅读:176来源:国知局
报文转发方法及装置、计算机可读存储介质与流程

本申请涉及通讯技术领域,尤其涉及一种报文转发方法及装置、计算机可读存储介质。



背景技术:

负载均衡设备基于链路实际负载情况和灵活的选路算法,可以实现对多出接口带宽资源的均衡利用。但是,由于多出接口链路实际带宽资源的差异和实际业务流量的选路情况,往往会出现部分出接口链路资源达到饱和的情况。每个出接口上转发的网络流量是有一定限制的,当某一出接口上实际转发的流量长期超过限制时,会出现部分转发的报文被丢弃或延时转发的情况,从而对网络业务的正常转发产生影响。针对该问题,目前传统的负载均衡设备均配置有链路超载监测机制,以保障链路实际转发的流量不会超过实际限制。该链路超载监测机制的原理如下:负载均衡设备会实时统计出接口链路转发的网络流量,并与该出接口的流量阈值作比较,若超过该流量阈值,则判定该出接口超载;那么不再通过该出接口转发报文,以避免该出接口出现拥堵。然而,负载均衡设备还配置有选路保持机制,以保证在一定时间内属于同一业务的流量均通过同一出接口进行转发。可见,链路超载监测机制和选路保持机制存在部分冲突。

在相关技术中,当某一出接口超载时,将该出接口上的新建业务数据调度至其他未超载的出接口,而已经通过该出接口转发的数据(即属于已创建业务)仍通过该出接口进行转发,从而避免与选路保持机制发生冲突。然而,由于网络业务的多样性,已创建业务仍然很可能使得该出接口长期处于超载状态,从而造成丢包或延时的情况,影响该出接口上所有已创建业务的正常转发。



技术实现要素:

有鉴于此,本申请提供一种报文转发方法及装置、计算机可读存储介质,可以在出接口处于超载状态时,在尽量不影响该出接口已创建业务的情况下,减少该出接口转发的流量,从而避免该出接口长期处于超载状态。

为实现上述目的,本申请提供技术方案如下:

根据本申请的第一方面,提出了一种报文转发方法,应用于负载均衡设备,所述方法包括:

当选取的转发目标报文的出接口超载时,若所述目标报文属于所述出接口的新建业务,或所述目标报文所属业务为所述出接口的已创建业务中的高带宽占用业务,则选取其他未超载的出接口转发所述目标报文;否则,通过所述出接口转发所述目标报文;其中,所述高带宽占用业务为满足预定义带宽条件的业务。

根据本申请的第二方面,提出了一种报文转发装置,应用于负载均衡设备,所述装置包括:

转发单元,当选取的转发目标报文的出接口超载时,若所述目标报文属于所述出接口的新建业务,或所述目标报文所属业务为所述出接口的已创建业务中的高带宽占用业务,则选取其他未超载的出接口转发所述目标报文;否则,通过所述出接口转发所述目标报文;其中,所述高带宽占用业务为满足预定义带宽条件的业务。

根据本申请的第三方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述技术方案中任一项所述方法的步骤。

由以上技术方案可见,在出接口处于超载状态时,本申请通过确定属于该出接口的新建业务和高带宽占用业务(该类业务流量占用了该出接口相对较大的带宽,若继续通过该出接口转发高带宽占用业务的数据,则将加重超载的状况),并选取其他未超载的出接口转发新建业务和高带宽占用业务的报文,可以有效缓解出接口链路拥堵的情况,使得出接口可以长期处于正常转发的状态。同时,保证了该出接口中部分已创建业务(即占用带宽较小的业务)不受影响,可正常进行转发。

附图说明

图1是选路保持机制的工作原理示意图。

图2是本申请一示例性实施例示出的一种报文转发方法的流程图。

图3是本申请一示例性实施例示出的另一种报文转发方法的流程图。

图4是本申请一示例性实施例示出的一种电子设备的结构示意图。

图5是本申请一示例性实施例示出的一种报文转发装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

请参见图1,图1是选路保持机制的工作原理示意图。如图1所示,负载均衡设备10通过多条出接口线路(图中仅示出出接口30和出接口40,各出接口线路的实际带宽资源不同)向ISP(Internet Service Provider,互联网服务提供商)转发报文。假定用户首次发起的网络业务数据由负载均衡设备10通过出接口30向ISP转发,而用户后续发起相同的网络业务数据(即网络目的相同)由负载均衡设备10调度至出接口40,由于经过不同出接口转发的网络数据的源IP地址也不相同,该网络业务后续转发的数据有可能会被服务端(即对端的ISP)拒绝,继而导致业务中断。因此需要通过选路保持机制,使得后续相同的网络业务数据均通过出接口30向ISP转发,以保障该网络业务不受影响。

在相关技术中,当出接口30超载时,将出接口30上的新建业务数据调度至其他未超载的出接口,而已经通过出接口30转发的数据(即属于已创建业务)仍通过出接口30进行转发,从而避免与选路保持机制发生冲突。然而,由于网络业务的多样性,已创建业务仍然很可能使得出接口30长期处于超载状态,从而造成丢包或延时的情况,影响出接口30上所有已创建业务的正常转发。

因此,本申请通过对调度出接口的方式给予改进,以解决相关技术中存在的上述技术问题。下面结合实施例进行详细说明。

请参见图2,图2是本申请一示例性实施例示出的一种报文转发方法的流程图,该方法应用于负载均衡设备,可以包括以下步骤:

步骤202,当选取的转发目标报文的出接口超载时,若所述目标报文属于所述出接口的新建业务,或所述目标报文所属业务为所述出接口的已创建业务中的高带宽占用业务,则选取其他未超载的出接口转发所述目标报文。

在本实施例中,当选取的转发目标报文的出接口超载时,若目标报文属于新建业务(不与选路保持机制冲突),则可以选取其他未超载的出接口转发该目标报文,从而可以避免超载的出接口的流量继续增加,缓解该出接口的超载状态。若目标报文所属业务为该出接口(上述处于超载状态的出接口)的已创建业务中的高带宽占用业务(所述高带宽占用业务为满足预定义带宽条件的业务),则同样可以选取其他未超载的出接口转发目标报文。由于高带宽占用业务在该接口的所有业务中属于相对占用带宽较大的业务,通过将高带宽占用业务的报文通过其他未超载的接口转发,可以避免超载的出接口长期处于超载状态;同时,该接口中另外相对占用带宽较小的业务的报文(对接口的超载影响较小)可以正常转发,不受影响。

其中,所述负载均衡设备记录有各个出接口的已创建业务的源IP地址和目的IP地址;通过以下方式可以确定所述目标报文针对所述出接口的所属业务类型:若所述目标报文的源IP地址和目的IP地址与所述出接口的已创建业务的源IP地址和目的IP地址相同或者相反,则所述目标报文属于所述出接口的已创建业务,否则,所述目标报文属于所述出接口的新建业务。同时,所述负载均衡设备记录的已创建业务配置有老化时长;当在任一已创建业务的老化时间内未转发属于所述任一已创建业务的报文时,所述任一已创建业务被删除。

在本实施例中,可以通过以下方式确定所述目标报文所属业务是否为所述出接口的已创建业务中的高带宽占用业务:先确定所述出接口的超载流量(所述超载流量为所述出接口上行流量中超出上行阈值的部分与下行流量中超出下行阈值的部分之和),然后按照总流量从大到小的顺序对所述出接口的已创建业务进行排序,各个已创建业务的总流量为各自发送数据与接收数据之和;再根据排序后的顺序依次选取所述出接口的已创建业务,直到所选取的业务的总流量之和不小于所述超载流量。满足上述条件(即上述提及的预定义带宽条件)的已创建业务即可以确定为高带宽占用业务。基于上述对已创建业务的选取,那么可以将所选取的已创建业务作为所述高带宽占用业务。具体的,可以在所述出接口持续超载的时长超过预设阈值时,执行所述排序操作。通过设定预设阈值来限制执行排序操作的频率,可以有效防止执行上述排序操作的频率过高(有时出接口可能仅在短时间内处于超载状态,而后续可快速恢复至正常状态),导致影响设备的性能。需要说明的是,当所述出接口的上行流量超过上行阈值或下行流量超过下行阈值时,所述出接口可被判定为超载。

步骤204,否则,通过所述出接口转发所述目标报文。

由以上技术方案可见,在出接口处于超载状态时,本申请通过确定属于该出接口的新建业务和高带宽占用业务(该类业务流量占用了该出接口相对较大的带宽,若继续通过该出接口转发高带宽占用业务的数据,则将加重超载的状况),并选取其他未超载的出接口转发新建业务和高带宽占用业务的报文,可以有效缓解出接口链路拥堵的情况,使得出接口可以长期处于正常转发的状态。同时,保证了该出接口中部分已创建业务(即占用带宽较小的业务)不受影响,可正常进行转发。

为了便于理解,下面结合附图对本申请的技术方案进行详细说明。

请参见图3,图3是本申请一示例性实施例示出的另一种报文转发方法的流程图,该方法应用于负载均衡设备,可以包括以下步骤:

步骤302,接收目标报文。

步骤304,选取出接口。

在本实施例中,负载均衡设备通过查询路由子流程获取转发目标报文(即接收到的需要转发的报文)的出接口。

步骤306,判定选取的出接口是否超载,若超载,则转入步骤308,否则转入步骤314。

在本实施例中,负载均衡设备实时更新各出接口的上行流量(出接口发送数据的总量)和下行流量(出接口接收数据的总量),并与相应的上行阈值、下行阈值(针对每个出接口均设有上行阈值和下行阈值)进行比较;当某一出接口的上行流量超过上行阈值,或下行流量超过下行阈值时,判定该出接口为超载,并记录此时出接口超载的时刻,以确定该出接口持续超载的时长。

举例而言,负载均衡设备可以维护如表1所示的超载调度表:

表1

步骤308,判断目标报文是否属于所选取的出接口的新建业务,若属于,则转入步骤312,否则转入步骤310。

步骤310,判断目标报文所属业务是否为出接口的已创建业务中的高带宽占用业务,若为高带宽占用业务,则转入步骤312,否则转入步骤314。

在本实施例中,当选取的转发目标报文的出接口超载时,若目标报文属于新建业务(不与选路保持机制冲突),则可以选取其他未超载的出接口转发该目标报文,从而可以避免超载的出接口的流量继续增加,缓解该出接口的超载状态。若目标报文所属业务为该出接口(上述处于超载状态的出接口)的已创建业务中的高带宽占用业务(所述高带宽占用业务为满足预定义带宽条件的业务),则同样可以选取其他未超载的出接口转发目标报文。由于高带宽占用业务在该接口的所有业务中属于相对占用带宽较大的业务,通过将高带宽占用业务的报文通过其他未超载的接口转发,可以避免超载的出接口长期处于超载状态;同时,该接口中另外相对占用带宽较小的业务的报文(对接口的超载影响较小)可以正常转发,不受影响。

具体的,负载均衡设备记录有各个出接口的已创建业务的源IP地址和目的IP地址。那么可以通过以下方式来确定目标报文针对该出接口的所属业务类型:若目标报文的源IP地址和目的IP地址与该出接口的已创建业务的源IP地址和目的IP地址相同或者相反(即属于同一数据流),则目标报文属于该出接口的已创建业务,否则,目标报文属于该出接口的新建业务。同时,负载均衡设备记录的已创建业务配置有老化时长;当在任一已创建业务的老化时间内未转发属于该任一已创建业务的报文时,删除记录的该任一已创建业务。在确定目标报文属于已创建业务后,可以通过以下方式确定目标报文所属业务是否为该出接口的已创建业务中的高带宽占用业务:先确定该出接口的超载流量(超载流量为出接口上行流量中超出上行阈值的部分与下行流量中超出下行阈值的部分之和),然后按照总流量(各个已创建业务的总流量为各自发送数据与接收数据之和)从大到小的顺序对该出接口的已创建业务进行排序;再根据排序后的顺序依次选取该出接口的已创建业务,直到所选取的业务的总流量之和不小于超载流量。其中,满足上述条件(同样也是预定义带宽条件)的已创建业务即可以确定为高带宽占用业务。基于上述对已创建业务的选取,那么可以将所选取的已创建业务作为高带宽占用业务。需要说明的是,可以在出接口持续超载的时长超过预设阈值时,执行排序操作。通过设定预设阈值来限制执行排序操作的频率,可以有效防止执行上述排序操作的频率过高(有时出接口可能仅在短时间内处于超载状态,而后续可快速恢复至正常状态),导致影响设备的性能。

举例而言,负载均衡设备可以记录各个出接口实际转发报文的详细信息,并针对每个出接口生成如表2所示的转发数据详细信息表:

表2

其中,表2中的各个表项即可理解为已创建业务。负载均衡设备在通过某一出接口转发报文时,会遍历该出接口的转发数据详细信息表,当存在与该报文具有相同源IP地址和目的IP地址的表项时,将该报文的数据长度累加至该表项的发送数据中;当存在与该报文的源IP地址、目的IP地址相反的表项时,将该报文的数据长度累加至该表项的接收数据中;当不存在与该报文具有相同或相反的IP地址和目的IP地址时,在转发数据详细信息表中新建一条表项以记录该报文的详细信息;在累加数据长度或新建表项后,需要对“更新时间”进行更新。比如,负载均衡设备通过出接口Gige_1转发报文(假定表2为该出接口的转发数据详细信息表),若该报文的源IP地址为1.1.1.1,目的IP地址为202.1.1.1,则在表项1(序号为1的表项)的“发送数据”中累加该报文的数据长度,并更新“更新时间”;若该报文的源IP地址为202.1.1.1,目的IP地址为1.1.1.1(即接收到对端返回的响应报文),则在表项1的“接收数据”中累加该报文的数据长度,并更新“更新时间”。而针对每一表项均配置有老化时长,当任一表项在该表项的老化时长内未更新时,删除该表项。

基于上述对超载调度表和转发数据详细信息表的配置,在通过步骤304选取出接口后,可以通过查询超载调度表来确定所选取的出接口是否超载,若未超载,则直接将接收到的目标报文通过该出接口进行转发;否则,需要进一步通过查询该出接口的转发数据详细信息表来确定目标报文是否属于新建业务,以及其所属业务是否为高带宽占用业务。其中,若转发数据详细信息表中存在与目标报文相同或相反的源IP地址和目的IP地址,则可以确定目标报文属于所选取出接口的已创建业务,那么需要进一步确定是否为高带宽占用业务;否则,可以确定目标报文属于新建业务,那么直接触发重新选路子流程以选取其他未超载的出接口转发目标报文。比如,目标报文的源IP地址为1.1.1.3,目的IP地址为202.1.1.3,通过步骤304选取的出接口为Gige_2(假定预设阈值为3min,即该出接口持续超载的时长超过预设阈值;同时,该出接口的已创建业务中包含目标报文所属业务)。那么,出接口Gige_2的超载流量为50MB。由于出接口Gige_2持续超载的时长超过预设阈值,触发对出接口Gige_2的转发数据详细信息表的表项的排序操作。假定按照总流量从大到小的顺序对出接口Gige_2的表项(即已创建业务)进行排序,得到前10个表项的总流量之和不小于50MB;那么可以选取该前10个表项对应的已创建业务作为高带宽占用业务,即排序后的前10个表项的“超载调度”为“是”。若目标报文所属业务(为出接口Gige_2的已创建业务)的“超载调度”为“是”时(即为排位位于前10的高带宽占用业务),则触发重新选路子流程以选取其他未超载的出接口转发目标报文;否则,仍通过出接口Gige_2转发目标报文。当然,本申请中针对高带宽占用业务的确定,还可以采用其他方式:例如,经排序后选取预设排名的已创建业务作为高带宽占用业务;只要可以确定出为出接口所有已创建业务中相对占用带宽较大的业务即可,本申请并不对此进行限制。

步骤312,重新选取其他未超载的出接口转发目标报文。

步骤314,通过所选取的出接口转发目标报文。

需要说明的是,本申请中预设阈值、老化时长等参数的具体取值可根据实际情况灵活设定,本申请并不对此进行限制。

由以上技术方案可见,在出接口处于超载状态时,本申请通过确定属于该出接口的新建业务和高带宽占用业务(该类业务流量占用了该出接口相对较大的带宽,若继续通过该出接口转发高带宽占用业务的数据,则将加重超载的状况),并选取其他未超载的出接口转发新建业务和高带宽占用业务的报文,可以有效缓解出接口链路拥堵的情况,使得出接口可以长期处于正常转发的状态。同时,保证了该出接口中部分已创建业务(即占用带宽较小的业务)不受影响,可正常进行转发。

图4示出了根据本申请的一示例性实施例的电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行,在逻辑层面上形成报文转发装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

请参考图5,在软件实施方式中,该报文转发装置可以包括转发单元501。其中:

转发单元501,当选取的转发目标报文的出接口超载时,若所述目标报文属于所述出接口的新建业务,或所述目标报文所属业务为所述出接口的已创建业务中的高带宽占用业务,则选取其他未超载的出接口转发所述目标报文;否则,通过所述出接口转发所述目标报文;其中,所述高带宽占用业务为满足预定义带宽条件的业务。

可选的,所述负载均衡设备记录有各个出接口的已创建业务的源IP地址和目的IP地址;通过以下方式确定所述目标报文针对所述出接口的所属业务类型:

若所述目标报文的源IP地址和目的IP地址与所述出接口的已创建业务的源IP地址和目的IP地址相同或者相反,则所述目标报文属于所述出接口的已创建业务,否则,所述目标报文属于所述出接口的新建业务。

可选的,所述负载均衡设备记录的已创建业务配置有老化时长;当在任一已创建业务的老化时间内未转发属于所述任一已创建业务的报文时,所述任一已创建业务被删除。

可选的,通过以下方式确定所述目标报文所属业务是否为所述出接口的已创建业务中的高带宽占用业务:

确定所述出接口的超载流量,所述超载流量为所述出接口上行流量中超出上行阈值的部分与下行流量中超出下行阈值的部分之和;

按照总流量从大到小的顺序对所述出接口的已创建业务进行排序,各个已创建业务的总流量为各自发送数据与接收数据之和;

根据排序后的顺序依次选取所述出接口的已创建业务,直到所选取的业务的总流量之和不小于所述超载流量;

将所选取的已创建业务作为所述高带宽占用业务。

可选的,在所述出接口持续超载的时长超过预设阈值时,执行所述排序操作;其中,当所述出接口的上行流量超过上行阈值或下行流量超过下行阈值时,所述出接口被判定为超载。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由报文转发装置的处理器执行以完成上述方法,该方法可以包括:

当选取的转发目标报文的出接口超载时,若所述目标报文属于所述出接口的新建业务,或所述目标报文所属业务为所述出接口的已创建业务中的高带宽占用业务,则选取其他未超载的出接口转发所述目标报文;否则,通过所述出接口转发所述目标报文;其中,所述高带宽占用业务为满足预定义带宽条件的业务。

可选的,所述负载均衡设备记录有各个出接口的已创建业务的源IP地址和目的IP地址;通过以下方式确定所述目标报文针对所述出接口的所属业务类型:

若所述目标报文的源IP地址和目的IP地址与所述出接口的已创建业务的源IP地址和目的IP地址相同或者相反,则所述目标报文属于所述出接口的已创建业务,否则,所述目标报文属于所述出接口的新建业务。

可选的,所述负载均衡设备记录的已创建业务配置有老化时长;当在任一已创建业务的老化时间内未转发属于所述任一已创建业务的报文时,所述任一已创建业务被删除。

可选的,通过以下方式确定所述目标报文所属业务是否为所述出接口的已创建业务中的高带宽占用业务:

确定所述出接口的超载流量,所述超载流量为所述出接口上行流量中超出上行阈值的部分与下行流量中超出下行阈值的部分之和;

按照总流量从大到小的顺序对所述出接口的已创建业务进行排序,各个已创建业务的总流量为各自发送数据与接收数据之和;

根据排序后的顺序依次选取所述出接口的已创建业务,直到所选取的业务的总流量之和不小于所述超载流量;

将所选取的已创建业务作为所述高带宽占用业务。

可选的,在所述出接口持续超载的时长超过预设阈值时,执行所述排序操作;其中,当所述出接口的上行流量超过上行阈值或下行流量超过下行阈值时,所述出接口被判定为超载。

其中,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等,本申请并不对此进行限制。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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