掌桥专利:专业的专利平台
掌桥专利
首页

流量确定方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:30


流量确定方法、装置、电子设备及存储介质

技术领域

本申请涉及网络技术领域,尤其涉及一种流量确定方法、装置、电子设备及存储介质。

背景技术

网络传输链路上的流量符合预期要求,是保障基于该网络的上层服务正常提供的核心需求。例如,链路水位不能超过带宽的80%,否则将会影响上层服务。因此,需要基于传输链路上的流量对网络流量进行验证。网络流量验证旨在通过数学建模和推理,对传输链路上的流量进行准确、快速地模拟和验证,从而能够提前发现网络维护过程(例如,运维和变更)中是否有网络配置错误、网络拓扑错误(例如,多条链路失效)等导致的流量异常,从而有效预防网络稳定性问题。

发明内容

本申请实施例提供一种流量确定方法、装置、电子设备及存储介质,能够高效准确地确定复杂网络的传输链路上的流量分布,从而高效准确地验证流量是否预期。

第一方面,本申请实施例提供了一种流量确定方法,包括:基于目标网络的路由信息,为流入所述目标网络的多条目标数据流构建流量分布图;其中,所述路由信息包括用于确定数据流转发状态的信息;所述流量分布图中的一个节点表示一条目标数据流的一个转发状态;所述转发状态包括当前地址和下一跳信息;利用所述流量分布图中各节点之间的连接边上的流量,确定所述目标网络中各路由设备之间的传输链路上的流量。

第二方面,本申请实施例提供了一种流量验证装置,包括:流量分布图构建模块,用于基于目标网络的路由信息,为流入所述目标网络的多条目标数据流构建流量分布图;其中,所述路由信息包括用于确定数据流转发状态的信息;所述流量分布图中的一个节点表示一条目标数据流的一个转发状态;所述转发状态包括当前地址和下一跳信息;传输链路流量确定模块,用于利用所述流量分布图中各节点之间的连接边上的流量,确定所述目标网络中各路由设备之间的传输链路上的流量。

第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现本申请任一实施例提供的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请任一实施例提供的方法。

与现有技术相比,本申请具有如下优点:

本申请实施例的技术方案,通过路由表项、SR隧道信息等能够体现网络中各种协议和策略的多维路由信息,确定大规模复杂网络下数据流在不同节点的转发状态,进而高效构建流量分布图,从而能够高效准确地确定大规模复杂网络的流量分布,并为高效、准确地进行网络流量验证提供数据基础,以提高网络稳定性。

在一种实施方式中,确定的转发状态不仅限于在路由设备间的状态,还包括有同一路由设备不同端口或不同逻辑状态地址,例如在路由设备A和路由设备B之间的传输链路上可以对应流量分布图上的多个不同节点,即流量分布图上的节点为精确反应数据流转发的细粒度信息,因此,流量分布更为准确。

在一种实施方式中,可以从流入目标网络的多条待选数据流中,筛选出若干目标数据流,进行合理的流数缩减,并将总流量按照预设的分配比例分配给各目标数据流,从而在不影响计算结果的前提下,降低计算量,提高流量分布的构建效率,进而提高流量验证的效率,降低对机器性能的要求。

在另一种实施方式中,当网络发生变化导致路由信息变化时,可以仅计算因此变化而引起的传输链路上的流量水位变化,从而避免对未变化的传输链路流量水位进行复杂的重新模拟计算,大大提高网络变化下的流量水位变化的模拟效率。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或存储对象。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请的一些实施方式,而不应将其视为是对本申请范围的限制。

图1为本申请应用场景的一个网络拓扑的示例性示意图;

图2示出本申请流量确定技术方案的一个示例性场景图;

图3示出基于图1所示的网络拓扑和流量快照而构建的流量分布图的示例性示意图;

图4为本申请实施例一的流量确定方法的流程图;

图5为本申请实施例二的流量确定方法的流程图;

图6为本申请实施例二的流量确定方法的应用示例图;

图7为本申请实施例三的流量确定方法的流程图;

图8、图9和图10为本申请实施例三的增量模拟的示例图;

图11为本申请实施例三的流量确定方法的应用示例图;

图12为本申请实施例四的流量确定装置的框图;

图13为用来实现本申请实施例的电子设备的框图。

具体实施方式

在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的构思或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的,而非限制性的。

为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明。以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。

应用场景

网络流量验证(network traffic verification)是通过对要验证的网络进行建模,并计算、检查其各个传输链路承载的流量是否满足验证规则。网络流量验证技术依赖路由模拟技术对给定的网络拓扑和网络配置(network configuration)下的路由设备进行路由模拟,再对进入网络的数据流进行流量模拟。其中,网络配置是网络管理人员通过设置网络内部路由设备的通信、组织和控制,从而达到对整个网络进行管理。然而,网络规模越来越庞大,进入网络的数据流的数量和流量也越来越大,网络拓扑和配置的特性也越来越复杂,如何确保高效、准确地确定网络流量进而进行网络流量验证成为一个重大挑战。

在一种实现方式中,控制平面的定量抽象表达(Quantitative AbstractRepresentation for Control planes,QARC)工具可以用来进行流量验证,其输入三个要素:网络控制面(control plane)的抽象表达,控制面用于控制和管理路由器所有网络协议的运行,并提供了数据面进行数据处理转发前所必需的各种网络信息和转发查询项,其抽象表达通常为扩展拓扑图(extended topology graph)的形式,用于表示网络中的路由设备节点、链路和连接关系等信息;流量矩阵,用于描述网络中流量分布的矩阵,它表示了不同路由设备节点之间的流量;允许的最大链路故障数K,用于限制在验证网络时所能容忍的最大链路故障数量。QARC的输出为:在任何不超过K条链路故障的场景下,所有正常链路均不会水位超标的验证结果,或在一个不超过K条链路故障的故障场景下,使得网络中的某些链路在该场景下水位超标。

但是,QARC不支持内部边界网关协议(Internal Border Gateway Protocol,iBGP),也不支持外部边界网关协议(External Border Gateway Protocol,eBGP)中的一些在真实网络广泛部署的关键特性,例如本地优先级(local preference),社区属性(communities)等。而且,QARC不支持真实网络中部署的其它常见的重要协议,例如分段路由(Segment Routing,SR),基于策略的路由(Policy-Based Routing,PBR)等;另外,QARC只能验证水位超标这一种流量水位预期,而不能验证水位过低等其他流量水位预期。

图1示出一个网络拓扑的示例性示意图。如图1所示,通常在网络拓扑中,节点表示一个路由设备,节点之间的连接边表示传输链路,用于承载数据流的流量。本申请实施例中,路由设备包括路由器、交换机等;传输链路为路由设备之间连接的链路。数据流通常以数据包的形式被转发,且具有流向。网络拓扑表征网络中各路由设备之间的连接关系,路由设备配置信息包括通信协议的配置信息和路由策略的配置信息。通信协议可以是边界网关协议(Border Gateway Protocol,BGP),如iBGP、eBGP;也可以是中间系统到中间系统(Intermediate System to Intermediate System,IS-IS)协议,路由策略诸如PBR策略、SR策略等,因此,路由设备配置信息包括但不限于BGP信息、IS-IS协议信息、PBR信息和SR信息中的至少一种。

在图1所示的网络中,有两个自治系统(Autonomous System,AS),即两个子网AS100和AS200。其中,AS100包括一个路由设备G(网际协议(Internet Protocol Address,IP)地址:10.0.0.7),AS 200包括路由设备A(IP地址:10.0.0.1)、路由设备B(IP地址:10.0.0.2)、路由设备C(IP地址:10.0.0.3)、路由设备D(IP地址:10.0.0.4)、路由设备E(IP地址:10.0.0.5)和路由设备F(IP地址:10.0.0.6)。G和A之间通过eBGP连接。而A、B、C、D、E和F之间建立了iBGP连接。

AS100的配置信息包括:(1)BGP信息,目的地网络是30/8,其中,″/8″是子网掩码,表示该路由表项适用于前8位相同的IP地址,下一跳地址是11.0.0.5(路由设备地址),即指向目的地网络30/8的数据包通过该下一跳地址进行转发;(2)直连网络路由表项,该路由表项的目的地网络是11.0.0.4/30,指向该目的地网络的数据包通过本地设备接口直接转发。

路由设备G的配置信息包括PBR信息:针对进入接口″X″的数据包,对于符合源地址范围为20.0.0.0/8的数据包,设置其区分服务代码(Differentiated Services CodePoint,DSCP)字段值为5,从而对特定源地址的数据流进行标记,以便在后续的转发过程中进行相应的优先级等策略处理。

AS200的配置信息包括:(1)BGP信息,目的地网络是30/8,有两条转发路径,分别通过下一跳地址10.0.0.5和10.0.0.6将数据包转发至该目的地网络;(2)IS-IS信息:存在两个目的地网络为10.0.0.5/32和10.0.0.6/32的路由表项,且都使用了SR技术,即根据SR隧道转发到达这两个目的地网络。

路由设备A的配置信息包括:(1)SR信息:针对目的地网络10.0.0.5/32,通过路径10.0.0.2-10.0.0.5来转发DSCP字段值为5的数据包,且该路径10.0.0.2-10.0.0.5的权重为10。(2)SR信息:针对目的地网络10.0.0.6/32,通过两个路径来转发DSCP字段值为5的数据包,其中,路径10.0.0.3-10.0.0.6的权重为8,路径10.0.0.4-10.0.0.6的权重为2。其中,可以根据权重在两条路径上分配流量;(3)进入接口地址:11.0.0.5。

如图1所示,在当前单位时间内,假设有两条数据流f1和f2,分别通过路由设备A和路由设备G进入包括AS100和AS200D的网络,其中f1的速率稳定在8千兆比特每秒(Gigabitsper second,Gbps),而f2的速率在2Gbps至12Gbps间波动。流量模拟的核心问题是如何通过这些信息计算出网络中各个链路上承载的流量大小,难点在于:(1)如何支持BGP、PBR、SR等协议,以计算每条数据流实际的转发路径;(2)如何对流量的分布(例如,A-C-F和A-D-F承载的流量比例为8:2)进行精确地建模。

图2示出本申请流量确定技术方案的一个示例性场景图。如图2所示,针对一个网络,首先,可以基于该网络的网络拓扑和路由设备配置信息调用路由模拟模块201进行路由模拟,输出用于确定数据流转发状态的路由信息。路由信息可以是路由表项、SR隧道信息或其他如路由设备之间的连接状态、传输链路的负载等相关的路由信息。

其中,路由表是路由设备(如路由设备、交换机等)中存储的一张表,用于指导数据包的转发。它记录了目的地网络与下一跳的关系,以确定数据包应该通过哪个接口发送。路由表项是路由表中的每一条记录,它包含了目的地网络的地址(如10.0.0.0/24)、下一跳的路由设备标识、出接口/端口以及其他相关的属性。每个路由表项描述了如何将数据包转发到目的地网络。

SR隧道用于在网络中创建逻辑上的隧道路径,在SR隧道中,数据包从源节点到目的节点通过一系列的中间节点进行转发。这些中间节点可以是路由设备或交换机。SR隧道通过在数据包头部添加分段标记(Segment Identifier)来指示转发路径。每个分段标记代表着网络中的一个节点或链路,数据包根据分段标记的顺序进行转发。SR隧道通过预定义的路径和段标记,实现了对数据包的精确控制和定向转发。SR隧道信息通常可以包括:隧道起点和终点,指示SR隧道的起始节点和目标节点;分段标识,可以是节点标识、链路标识或任何其他标识符;转发顺序,指示数据包按照哪个顺序经过各个段标记进行转发;隧道属性,包括带宽、延迟、可用性等性能指标,用于优化数据包的转发路径选择;隧道状态,描述隧道的当前状态,如激活、禁用、故障等;隧道标识,用于唯一标识SR隧道的标识符,以便进行管理和配置。

示例性地,路由模拟模块201可以通过收集和分析网络拓扑信息和路由设备配置信息,创建虚拟的网络环境,并配置路由设备和链路的属性,然后使用模拟算法模拟路由设备之间的协议运行和信息交换,模拟数据包的传输和转发过程,从而输出路由表项、SR隧道信息等路由信息。以图1所示的网络为例,对路由设备A的路由模拟,包括路由设备A使得转发给10.0.0.5(路由设备E的设备地址)的数据流通过路径A-B-E转发;而使得转发给10.0.0.6(路由设备F的设备地址)的数据流通过路径A-C-F和A-D-F转发,并且这两条路径承载的流量比例为8:2。

进一步地,数据流的转发状态可以包括当前地址和下一跳信息,下一跳信息可以是下一跳的路由设备标识、下一跳的隧道分段标识或下一跳为待查找的标识信息。如图2所示,流量分布图构建模块202基于路由模拟模块201输出的路由信息以及输入网络的流量快照,可以构建相应的流量分布图(Traffic Distribution Graph,TDG)。

其中,流量快照通常指一个单位时间内,进入网络的数据流和其携带的流量。因此,流量分布图针对流入网络的多个数据流而构建,且可以基于路由信息的变化或流量快照的更新而自动更新。流量分布图可以体现多个节点的拓扑关系,流量分布图中的一个节点表示一条目标数据流的一个转发状态。

图3示出基于图1所示的网络拓扑和流量快照而构建的流量分布图的示例性示意图。如图3所示。每个节点表示一条目标数据流的一个转发状态,也就是说,数据流不同或数据流的转发状态不同都将映射出不同的节点。因此,可以用一个节点标识和一个三元组来表示流量分布图中的一个节点。其中,节点标识用于表明该节点的名称,如n

示例性地,如图3所示,节点

请继续参阅图2,当流量分布图构建完成后,流量模拟模块203可以在此基础上计算每条数据流在流量分布图上的流量分布,进而映射计算网络拓扑中各路由设备之间的传输链路在流量快照下的流量分布,即得到传输链路上的流量大小,也可以叫做流量水位。

示例性地,在配置信息中,SR策略可以为不同路由路径配置不同权重,从而在路由信息中,不同路由路径可以配置不同权重,用于确定相应路由路径被分配的流量比例,体现在流量分布图中即对应流量分布图中的节点之间的连接边的权重,用于上一节点的数据流转发至下一节点的流量比例,即表示有多少比例的流量会经过该边进行转发。例如,n

例如,对于图3的例子,f

示例性地,请继续参阅图2,流量验证模块204可以基于网络中各传输链路的流量分布,验证各个传输链路承载的流量是否满足验证规则,例如根据流量水位预期的标准值,进行水位是否超标,水位是否过低以及网络变更前后水位变化过大等多种预期目标的验证,输出满足或不满足预期的验证结果,提高网络稳定性。

需要说明的是,本申请实施例中提供的流量确定方法的上述应用场景或应用示例,是为了便于理解,本申请实施例对流量确定方法的应用不作具体限定。

此外,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择或编辑授权或者拒绝。

下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决前述技术问题进行详细说明。所列举的若干具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

实施例一

图4示出根据本申请实施例的流量确定方法的流程图。如图4所示,该流量确定方法包括步骤S401和步骤S402。

步骤S401:基于目标网络的路由信息,为流入所述目标网络的多条目标数据流构建流量分布图;其中,路由信息包括用于确定数据流转发状态的信息;流量分布图中的一个节点表示一条目标数据流的一个转发状态;转发状态包括当前地址和下一跳信息。

本申请实施例中,目标网络即为待进行流量分布确定的网络,其包括若干个路由设备和网络拓扑。其中,路由设备可以是路由器或交换机等网络设备,路由设备之间连接的链路为传输链路,用于传输数据流,承载数据流的流量,目标网络中各传输链路上的流量即为目标网络的流量分布。

路由信息可以是路由表项、SR隧道信息或其他如路由设备之间的连接状态、传输链路的负载等相关的路由信息,用于确定数据流转发状态。一条数据流的转发状态可以包括当前地址和下一跳信息,而当前地址可以是当前设备的端口或当前设备的逻辑状态位置;下一跳信息可以是下一跳的路由设备标识、下一跳的隧道分段标识或下一跳为待查找的标识信息,因此,当前地址和/或下一跳信息不同,该数据流的转发状态就不同,在流量分布图中将对应不同的节点,由此可以利用路由信息中用于确定数据流转发状态的信息,确定各目标数据流的多个转发状态;然后根据各目标数据流的各转发状态,构建流量分布图中的各节点。其中,转发状态和节点的相关介绍可以结合图3并参见应用场景部分的描述,在此不再赘述。

本申请实施例中,目标数据流是指当前单位时间进入目标网络的数据流。当前单位时间可以预设,在此不作具体限定。目标数据流可以基于流量快照确定。

路由信息可以体现数据流转发状态,因此,基于路由信息以及输入目标网络的流量快照,可以为目标网络构建当前单位时间下的流量分布图,且流量分布图可以基于路由信息的变化或流量快照的更新而自动更新。具体可结合图3以及应用场景部分的描述,在此不再赘述。

步骤S402:利用流量分布图中各节点之间的连接边上的流量,确定目标网络中各路由设备之间的传输链路上的流量。

当流量分布图构建完成后,可以在此基础上计算每条数据流在流量分布图上的流量分布。具体地,根据各目标数据流流入目标网络的流量以及各节点所表示的目标数据流和转发状态,即可以确定各节点之间的连接边上的流量,得到流量分布图上的流量分布。进一步地,将流量分布图上的流量分布映射为网络拓扑中各路由设备之间的传输链路在流量快照下的流量分布,即得到传输链路上的流量大小,也可以叫做流量水位。

根据本申请实施例的方法,通过路由表项、SR隧道信息等能够体现网络中各种协议和策略的多维路由信息,确定大规模复杂网络下数据流在不同节点的转发状态,进而高效构建流量分布图,且确定的转发状态不仅限于在路由设备间的状态,还包括有同一路由设备不同端口或不同逻辑状态,例如在路由设备A和路由设备B之间的传输链路上可以对应流量分布图上的多个不同节点,即流量分布图上的节点为精确反应数据流转发的细粒度信息,因此,流量分布更为准确,从而能够高效准确地确定大规模复杂网络的流量分布,并为高效、准确地进行网络流量验证提供数据基础,以提高网络稳定性。

在一种实施方式中,路由信息还包括用于确定数据流转发比例的信息;在步骤S401中,基于目标网络的路由信息,为流入目标网络的多条目标数据流构建流量分布图,可以包括:根据路由信息中用于确定数据流转发状态的信息,确定各目标数据流的多个转发状态;根据各目标数据流的各转发状态,构建流量分布图中的各节点;根据各目标数据流流入目标网络的流量、路由信息中用于确定数据流转发比例的信息、各节点所表示的目标数据流和转发状态,确定各节点之间的连接边上的流量和权重;其中,连接边设置有上的权重,用于确定标识连接边的上一节点的目标数据流转发至下一节点的流量比例。

示例性地,一条数据流的转发状态可以包括当前地址和下一跳信息,当前地址和/或下一跳信息不同,该数据流的转发状态就不同,在流量分布图中将对应不同的节点,可以利用路由信息中用于确定数据流转发状态的信息,确定各目标数据流的多个转发状态;然后根据各目标数据流的各转发状态,构建流量分布图中的各节点。

在路由信息中,不同路由路径可以配置不同权重,体现在流量分布图中即对应流量分布图中的节点之间的连接边的权重,用于上一节点的数据流转发至下一节点的流量比例,即表示有多少比例的流量会经过该边进行转发。例如,路由设备A的路由信息包括路径10.0.0.3-10.0.0.6的权重为8,路径10.0.0.4-10.0.0.6的权重为2,对应流量分布图中即n

基于此,流量分布图可以真实模拟和体现真实网络中的路径优先级策略,从而提高流量分布图的准确性。

在一种实施方式中,本申请实施例的方法还可以包括:根据目标网络的路由设备连接关系以及配置信息,模拟各路由设备对数据流的转发,生成路由信息;其中,配置信息包括BGP信息、IS-IS协议信息、PBR信息和SR信息中的至少一种。

BGP是边界网关协议,是一种用于在互联网中交换路由信息的协议。通过交换路由信息,决定最佳的路径来转发数据包。它使用路径矢量算法来选择最佳路径,并支持路由策略的配置,以满足特定的网络需求和策略要求。BGP策略是指在BGP协议中配置的路由策略。BGP策略用于控制和优化BGP路由的转发行为,以满足特定的网络需求和策略要求。通过配置BGP策略,网络管理员可以实现对路由选择、路由过滤、路由重分发等方面的精确控制。BGP信息可以包括以下信息中的一种或多种:路由前缀,用于指示目的地网络的IP地址范围;下一跳,用于指示到达目的地网络的下一跳路由设备的IP地址;AS路径,用于指示数据包经过的自治系统路径,从而确定最佳路径和避免环路;属性和策略信息,如权重、本地优先级、路由标记等,用于影响路由路径选择和转发行为。

IS-IS协议是一种用于在计算机网络中交换路由信息的内部网关协议,主要用于在AS内部的路由设备之间交换路由信息,以确定数据包的转发路径。IS-IS协议信息可以包括以下信息中的一种或多种:路由设备标识;邻居关系,IS-IS路由设备通过与相邻路由设备建立邻居关系,交换链路状态数据包和路由信息;属性和策略信息,如度量值、开销、优先级等用于影响路由选择和转发行为的信息。

PBR策略是一种网络路由策略,用于根据特定的条件或策略规则(如源地址、端口、协议、DSCP等),将数据包从源地址转发到目的地址,可以根据其他因素来决定数据包的转发路径。通过配置PBR策略,可以根据数据包的源地址或源子网选择特定的转发路径,也可以根据数据包的源或目的端口、协议类型选择特定的转发路径,还可以根据数据包的DSCP值或服务质量要求选择特定的转发路径,并可以对不同的转发路径进行优先级排序。PBR可以包括以下信息中的一种或多种:匹配条件,指定用于匹配数据包的条件,如源地址、目的地址、端口、协议、DSCP等;转发路径,指定数据包匹配成功后应该转发的路径或下一跳;策略规则,定义了如何根据匹配条件选择转发路径的规则;优先级,指定不同策略规则的优先级,以确定应用哪个规则来选择转发路径。

SR策略是一种基于隧道分段技术的路由策略,通过在数据包头部添加分段标记来指示转发路径,从而实现对数据包转发的精确控制。SR策略可以根据具体的服务需求,定义多个路径和策略规则,灵活地调整和优化流量的转发路径。SR策略的配置可以通过编程接口进行动态管理,以满足实时的网络需求。SR信息是指在SR策略中用于指示转发路径的信息。

在大规模复杂网络中,需要兼容多种协议和策略,路由模拟通过收集和分析网络拓扑信息和路由设备配置信息,创建虚拟的网络环境,并配置路由设备和链路的属性,然后使用模拟算法模拟路由设备之间的协议运行和信息交换,模拟数据包的传输和转发过程,从而输出准确多维的路由信息,进而构建准确的流量分布图。

实施例二

本申请实施例提供一种流量确定方法,其中,实施例一至少部分的技术方案和相应的技术效果可以引用到本申请实施例中。图5示出根据本申请实施例的流量确定方法的流程图。如图5所示,该流量确定方法包括:

步骤S501:从流入目标网络的多条待选数据流中,筛选出多条目标数据流;其中,目标数据流的数量小于待选数据流的数量;

步骤S502:将多条待选数据流的总流量作为多条目标数据流的总流量,为各目标数据流分配流量;

步骤S503:基于目标网络的路由信息,为流入目标网络的多条目标数据流构建流量分布图;其中,路由信息包括用于确定数据流转发状态的信息;流量分布图中的一个节点表示一条目标数据流的一个转发状态;转发状态包括当前地址和下一跳信息;当前地址包括当前设备的端口或当前设备的逻辑状态位置;下一跳信息包括下一跳的路由设备标识、下一跳的隧道分段标识或下一跳为待查找的标识信息;

步骤S504:利用流量分布图中各节点之间的连接边上的流量,确定目标网络中各路由设备之间的传输链路上的流量。

其中,步骤S503可以采用与步骤S401相同或相类似的实施方式,步骤S504可以采用与步骤S402相同或相类似的实施方式。

在真实网络中,输入的流量快照规模非常大,每秒输入的数据流可以达到数千甚至数十万条,如果对输入目标网络的每条数据流均进行转发路径的流量计算,对机器性能(如CPU和内存等)的要求非常高,且非常耗时和影响效率。因此,可以从流入目标网络的多条待选数据流中,筛选出若干目标数据流,进行合理的流数缩减,并将总流量按照预设的分配比例分配给各目标数据流,从而在不影响计算结果的前提下,降低计算量,提高流量分布的构建效率,进而提高流量验证的效率,降低对机器性能的要求。

示例性地,可以从1000条待选数据流中筛选出500条目标数据流,并将这1000条待选数据流的总流量1000Gps平均分配给这500条目标数据流,每条目标数据流的流量均为2Gps。或者,根据为每条目标数据流设置的分配比例,将总流量分配给每条目标数据流。

在一种实施方式中,在步骤S501中,从流入目标网络的多条待选数据流中,筛选出多条目标数据流,可以包括:基于待选数据流的流量在所述多条待选数据流的总流量中的占比,确定待选数据流的抽中概率;其中,抽中概率与占比正相关;根据各待选数据流的抽中概率,在多条待选数据流中进行预设次数的随机抽样,得到第一预设数量的目标数据流。

表1示出了一个简单的流量快照的例子。此例中,一共有4条待选数据流,每条对应表格中的一行。每条待选数据流包含一个源IP地址、目的IP地址,以及此待选数据流携带的流量。

表1

本实施方式提供了一种基于流量占比的流抽样算法。在表1的例子中,随机抽样的预设次数为2,即将进行2次随机抽样。目标数据流的数量即第一预设数量为2条,因此,如果预设的分配比例为平均分配,那么2条目标数据流均将被赋予1/2的总流量。具体地,每次抽样中,各条待选数据流被抽中的概率为其流量占总流量的比例。因此,第一条待选数据流被抽中概率为10/(10+20+30+40)=10%,第二条待选数据流被抽中概率为20/(10+20+30+40)=20%,以此类推。假设第一次抽样抽中的流是第二条待选数据流(即源地址为10.0.0.2的待选数据流),将为其赋予1/2的总流量,即50Gbps。假设第二次抽样被抽中的待选数据流是第三条待选数据流,也将为其赋予1/2的总流量,即50Gbps。两次随机抽样结束后,将得到表2的流量快照:

表2

可以看出,流入目标网络的总流量保持不变,同时数据流的数量由4条缩减为2条,从而缩减了流量快照的规模,同时保持了流量验证的准确性。

在一种实施方式中,路由信息包括路由表项,在步骤S501中,从流入目标网络的多条待选数据流中,筛选出多条目标数据流,可以包括:基于待选数据流的目的地址与路由表项之间的匹配性,将多条待选数据流分成多组,其中,匹配于同一路由表项的待选数据流为同一组;从每组待选数据流中筛选第二预设数量的目标数据流。

真实网络中,流量快照中的数据流在网络中的转发行为可能是完全一致的。因此,重复地对这些数据流计算转发行为将大大降低模拟效率。因此,本实施方式提供了一种基于路由等价性的等价类优化算法,针对转发行为一致的数据流进行合并或部分筛选,从而避免重复计算。

路由表项是路由表中的每一条记录,属于路由信息中的一种。一条路由表项包含了目的地网络的地址(如10.0.0.0/24)、下一跳的路由设备标识以及其他相关的属性,用于指导路由设备(如路由器、交换机等)根据目的地网络的地址来决定数据包的转发路径。

具体地,对于每个路由表项,根据待选数据流的目的地址(目的IP地址),确定与该路由表项的目的地网络的地址匹配的待选数据流并归为同一组;从每组待选数据流筛选第二预设数量的目标数据流,得到的目标数据流的总数量即为第二预设数量乘以组数。第二预设数量可以为1,也可以为该组数据流的数量乘以一个预设比例得到的值。

例如,对于表2中的2条数据流,其会匹配上20.0.0.0/24的路由表项,因此它们属于一个等价类,将划分为同一组。对于同一组的数据流,只取其中的1条,同时将该组中所有数据流的流量赋予该条数据流,从而构建新的流量快照,如表3。由此可见,流量快照的规模得到了缩减,同时也保持了流量验证的正确性。

表3

在一种实施方式中,基于待选数据流的目的地址与路由表项之间的匹配性,将多条待选数据流分成多组,包括:根据路由表项的目的地网络地址的前缀长度由长到短,对目标网络中的各路由表项进行排序;依序确定与各路由表项分别匹配的待选数据流,得到与各路由表项一一对应的多组待选数据流。

其中,路由表项的目的地网络地址的前缀长度体现了路由表项的粒度,前缀长度越长,即子网掩码中连续的1的个数越多,表示目的地网络的范围越小,路由表项的粒度也就越细;前缀长度越短,即子网掩码中连续的1的个数越少,表示目的地网络的范围越大,路由表项的粒度也就越粗。因此,根据路由表项的目的地网络地址的前缀长度由长到短,对目标网络中的各路由表项进行排序,也就是按照粒度从细到粗的顺序对各路由表项进行排序。

示例性地,假设注入网络的路由(路由表项)有3条,分别是10.0.0.0/8,10.0.0.0/24,20.0.0.0/24,按照最细到最粗的粒度排序对这3条路由表项进行排序,那么排序完后的顺序是10.0.0.0/24,20.0.0.0/24,10.0.0.0/8。然后,对于流量快照中的数据流,按照顺序分别匹配这些路由表项;匹配上同一条路由表项的数据流则归于一个等价类。然后,再从每组待选数据流中筛选出目标数据流。由此可以提高筛选效率,进而提高流量分布图的构建效率。

需要说明的是,本申请实施例中的基于流量占比的流抽样算法和基于路由等价性的等价类优化算法均可以用来对输入的待选数据流进行流数缩减,可以根据实际需求选择其中一种算法执行,也可以选择两种算法执行,例如先执行流抽样算法,筛选出第一目标数据流,然后基于等价类优化算法,从第一目标数据流中筛选出第二目标数据流,然后将第二目标数据流作为构建流量分布图的数据流。当然,对于两种算法的执行顺序和执行次数,本申请实施例不作限定。

在一个应用示例中,如图6所示,针对输入目标网络的流量快照,即当前单位时间下的多个待选数据流,可以按照本申请实施例中的基于流量占比的流抽样算法和基于路由等价性的等价类优化算法,从多个待选数据流中筛选出目标数据流,实现流数缩减,减少流量快照的规模,从而为提高流量模拟和流量验证的效率提供基础;针对目标网络的目标数据流,可以基于实施例一的方法进行路由模拟,并构建流量分布图进行流量模拟;然后,计算每条数据流在流量分布图上的流量分布,进而映射计算网络拓扑中各路由设备之间的传输链路在流量快照下的流量分布,即得到传输链路上的流量;进一步地,基于网络中各传输链路的流量分布,验证各个传输链路承载的流量是否满足流量验证项的要求,例如根据流量水位预期的标准值,进行水位是否超标,水位是否过低以及网络变更前后水位变化过大等多种预期目标的验证,输出通过验证或不通过验证的验证结果,提高网络稳定性。

实施例三

随着网络变化的频率和规模越来越大,例如链路故障、维护、设备升级、配置变更等。网络变化后,网络管理人员需要及时、准确地知道网络传输链路上的流量水位变化情况,以判断水位变化是否符合预期变化条件(或预设变化条件)。例如,某一传输链路故障后,其它传输链路的流量水位不能超过带宽的80%。

现有的网络流量验证技术需要对变化后的网络重新进行流量模拟,通过对比变化前后的流量水位,从而验证其变化是否符合网络管理人员的预设变化条件。现有的网络流量验证技术中,即使只有一条传输链路的流量水位发生了变化,也必须对全部传输链路的流量水位进行重新模拟计算,因此无法高效及时地知道网络传输链路上的流量水位变化情况。

请参阅图1,假设路由设备B-E之间的传输链路因为故障不能正常承载流量,从而导致目标网络中的路由信息发生变化。在此情形下,原来经过A-B-E的流量将由A-D-F和A-C-F分担。所以A-C,A-D,D-F和C-F上的流量将相应增加。在真实网络环境下,如何知道是哪些传输链路上的流量会发生变化以及变化的大小是多少。如果按照现有的解决方案对变化后的网络重新进行流量模拟,然后通过对比每条传输链路上的流量变化来解决该问题,将进行大量的重复计算,大大降低流量变化验证的效率。例如,G-A上的流量不会因B-E故障而发生变化,所以无需计算其变化。

本申请实施例提供一种流量确定方法,其中,实施例一和/或实施例二至少部分的技术方案和相应的技术效果可以引用到本申请实施例中。图7示出根据本申请实施例的流量确定方法的流程图。如图7所示,该流量确定方法包括:

步骤S701:基于目标网络的路由信息,为流入目标网络的多条目标数据流构建流量分布图;其中,路由信息包括用于确定数据流转发状态的信息;流量分布图中的一个节点表示一条目标数据流的一个转发状态;转发状态包括当前地址和下一跳信息;

步骤S702:利用流量分布图中各节点之间的连接边上的流量,确定目标网络中各路由设备之间的传输链路上的流量。

步骤S703:响应于目标网络的路由信息发生变化,确定流量分布图中发生变化的目标节点;

步骤S704:更新与目标节点连接的目标连接边上的流量;

步骤S705:利用更新后的目标连接边上的流量,计算与目标连接边对应的传输链路上的流量。

其中,步骤S701可以采用与步骤S401相同或相类似的实施方式,步骤S702可以采用与步骤S402相同或相类似的实施方式。示例性地,请参阅图1,在当前单位时间内,假设有两条数据流f1和f2,分别通过路由设备A和路由设备G进入包括AS100和AS200D的目标网络,其中f1的速率稳定在8Gbps,而f2的速率在2Gbps至12Gbps间波动。基于实施例一和/或实施例二的方法,可以构建流量分布图,如图3所示,基于流量分布图可以确定目标网络中各传输链路上的流量。

示例性地,传输链路故障、维护、设备升级、配置变更等网络变化,将会导致目标网络的路由信息发生变化。例如,在图1所示的目标网络中,假设路由设备B-E之间的传输链路因为故障不能正常承载流量,从而导致目标网络中的路由信息发生变化。下面结合图8、图9和图10介绍确定流量分布图中发生变化的目标节点以及更新与目标节点相连接的目标连接边上的流量的一个具体示例。

如图8所示,传输链路B-E故障下,路由设备A、B、E的路由表会重新收敛,从而影响数据流的转发状态,由此会影响流量分布图的部分节点,即目标节点:节点n

根据本申请实施例的方法,当网络发生变化导致路由信息变化时,可以仅计算因此变化而引起的传输链路上的流量水位变化,从而避免对未变化的传输链路流量水位进行复杂的重新模拟计算,大大提高网络变化下的流量水位变化的模拟效率。

在一种实施方式中,在步骤S705之后还可以包括:验证目标网络中是否存在流量变化不符合预设变化条件的传输链路。

其中,预设变化条件可以是网络管理人员在网络变化中对流量水位改变的预期目标,如某一传输链路故障后,其它传输链路的流量水位不能超过带宽的80%。当网络发生变化后,本申请实施例的方法可以直接得到因此变化而引起的传输链路上的流量水位变化,进而快速验证流量水位变化是否符合预期目标,从而有效减少、避免可能出现的网络变化中的网络稳定性问题。

在一个应用示例中,如图11所示,针对输入目标网络的流量快照,即当前单位时间下的多个待选数据流,可以基于实施例一或实施例二的方法进行路由模拟,并构建流量分布图进行流量模拟;然后,计算每条数据流在流量分布图上的流量分布,进而映射计算网络拓扑中各路由设备之间的传输链路在流量快照下的流量分布,即得到传输链路上的流量;进一步地,当网络发生变化导致路由信息变化时,仅计算因此变化而引起的传输链路上的流量水位变化,即进行增量流量模拟;然后结合预设变化条件等流量水位变化预期,快速验证流量水位变化是否符合预期,输出满足预期或不满足预期的验证结果,提高网络稳定性。

实施例四

与本申请实施例提供的应用场景以及实施例一至三的方法相对应地,本申请实施例还提供一种流量处理装置,如图12所示,该流量处理装置包括:流量分布图构建模块1201,用于基于目标网络的路由信息,为流入目标网络的多条目标数据流构建流量分布图;其中,路由信息包括用于确定数据流转发状态的信息;流量分布图中的一个节点表示一条目标数据流的一个转发状态;转发状态包括当前地址和下一跳信息;下一跳信息包括下一跳的路由设备标识、下一跳的隧道分段标识或下一跳为待查找的标识信息;传输链路流量确定模块1202,用于利用流量分布图中各节点之间的连接边上的流量,确定目标网络中各路由设备之间的传输链路上的流量。

在一种实施方式中,路由信息还包括用于确定数据流转发比例的信息;连接边设置有权重,用于确定上一节点的目标数据流转发至下一节点的流量比例。

在一种实施方式中,该流量确定装置还包括路由信息生成模块,用于根据目标网络的路由设备连接关系以及配置信息,模拟各路由设备对数据流的转发,生成路由信息;其中,配置信息包括边界网关协议BGP信息、中间系统到中间系统IS-IS协议信息、基于策略的路由PBR信息和分段路由SR信息中的至少一种。

在一种实施方式中,该流量确定装置还包括筛选模块,用于从流入目标网络的多条待选数据流中,筛选出多条目标数据流;其中,目标数据流的数量小于待选数据流的数量;以及将多条待选数据流的总流量分配给各目标数据流。

在一种实施方式中,筛选模块还具体用于在多条待选数据流中进行预设次数的随机抽样,得到第一预设数量的目标数据流;其中,待选数据流的抽中概率与待选数据流的流量在多条待选数据流的总流量中的占比正相关。

在一种实施方式中,路由信息包括路由表项,筛选模块还具体用于基于各待选数据流的目的地址与目标网络中的各路由表项之间的匹配性,将匹配于同一路由表项的待选数据流归为同一组;从各组待选数据流中分别筛选第二预设数量的目标数据流。

在一种实施方式中,筛选模块还具体用于根据路由表项的目的地网络地址的前缀长度由长到短,对目标网络中的各路由表项进行排序;依序分别确定匹配于各路由表项的待选数据流,得到多组待选数据流。

在一种实施方式中,该流量确定装置还包括更新模块,用于:响应于目标网络的路由信息发生变化,确定流量分布图中发生变化的目标节点;更新与目标节点相连接的目标连接边上的流量;利用目标连接边上的流量,计算与目标连接边对应的传输链路上的流量。

在一种实施方式中,该流量确定装置还包括验证模块,用于验证目标网络中是否存在流量变化不符合预设变化条件的传输链路。

在一种实施方式中,验证模块还用于验证传输链路上的流量是否符合预设的流量验证规则。

本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,并具备相应的有益效果,在此不再赘述。

实施例六

图13为用来实现本申请实施例的电子路由设备的框图。如图13所示,该电子路由设备包括:存储器1301和处理器1302,存储器1301内存储有可在处理器1302上运行的计算机程序。处理器1302执行该计算机程序时实现上述实施例中的方法。存储器1301和处理器1302的数量可以为一个或多个。

该电子路由设备还包括:

通信接口1303,用于与外界路由设备进行通信,进行数据交互传输。

如果存储器1301、处理器1302和通信接口1303独立实现,则存储器1301、处理器1302和通信接口1303可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部路由设备互连(PeripheralComponent Interconnect,PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选地,在具体实现上,如果存储器1301、处理器1302及通信接口1303集成在一块芯片上,则存储器1301、处理器1302及通信接口1303可以通过内部接口完成相互间的通信。

本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本申请实施例中提供的方法。

本申请实施例还提供了一种芯片,该芯片包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信路由设备执行本申请实施例提供的方法。

本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。

应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。

进一步地,可选地,上述存储器可以包括只读存储器和随机访问存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机访问存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM均可用。例如,静态随机访问存储器(Static RAM,SRAM)、动态随机访问存储器(Dynamic RandomAccess Memory,DRAM)、同步动态随机访问存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机访问存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机访问存储器(Enhanced SDRAM,ESDRAM)、同步链接动态随机访问存储器(Sync link DRAM,SLDRAM)和直接内存总线随机访问存储器(Direct RambusRAM,DR RAM)。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生依照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

流程图中描述的或在此以其他方式描述的任何过程或方法可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。

在流程图中描述的或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或路由设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或路由设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或路由设备而使用。

应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。

以上所述,仅为本申请的示例性实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请记载的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 配送参数的确定方法、确定装置、存储介质和电子设备
  • 加密恶意流量检测方法、装置、电子设备及存储介质
  • 一种问卷调查对象确定方法、装置、电子设备和存储介质
  • 一种车位确定方法、装置、电子设备、车辆及存储介质
  • 行业关联度、风险确定方法及装置、存储介质和电子设备
  • 一种介质质量流量确定方法、装置、电子设备及存储介质
  • 道路流量确定方法、装置、存储介质及电子设备
技术分类

06120116497945