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

数据包路由方法、装置、计算机设备、存储介质

文献发布时间:2023-06-19 19:30:30


数据包路由方法、装置、计算机设备、存储介质

技术领域

本申请涉及数据通信技术领域,特别是涉及一种数据包路由方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

为满足日新月异的业务增量和扩容调整需求,出现了基于软件定义网络(Software-Defined Networking,简称SDN)解耦化的基础网络架构。用户可以利用基于软件定义网络解耦化的基础网络架构将虚拟网络从物理网络中解耦,有效解决网络配置不灵活的问题,从而保障网络服务质量(Quality of Service,简称QoS)。

传统技术中,针对目前软件定义网络架构中控制器上时序优先的流量调度算法的不足,Airton Ishimori等人提出的一种业务流的服务质量(QoSFlow)框架,引入分层令牌桶(Hierarchical Token Bucket,简称HTB)、随机公平队列(Stochastic FairnessQueueing,简称SFQ)、随机早期检测(Random Early Detection,简称RED)等多种队列调度算法降低数据包转发处理时延,有效提高了视频等数据流的峰值信噪比(Peak Signal toNoise Ratio,简称PNSR)。

Seyhan Civanlar等人通过以时延和网络丢包率的加权平均作为服务质量约束模型,计算服务质量视频业务和尽力型业务(Best-Effor,简称BE业务)的路径,进而搜索满足约束的最优路径,一定程度上保障了时延、丢包率等服务质量需求。

针对网络中多类型多媒体业务并行处理的需求,Jun Huang等人提出了一种混合调度算法,借助优先级队列和通用处理器的共享,进一步实现对于不同业务的服务质量保障。

然而,传统技术中采用的这些路由算法虽然实现了较好的流量分布策略,一定程度上保障了高优先级业务的服务质量,但对全局网络业务的多样性考虑不全,容易存在适用场景过于单一的问题。

发明内容

基于此,有必要针对上述技术问题,提供一种多样化的数据包路由方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种数据包路由方法。所述方法包括:

获取数据包路由的多个链路路径,以及每个所述链路路径在多个维度下的服务质量参数;

采用与每个所述维度对应的权重因子对同一维度下的服务质量参数进行加权处理,生成每个所述链路路径的第一路径权重,根据所述第一路径权重对多个所述链路路径进行组合得到第一目标路径;

根据与每个所述维度对应的尺度类别对所述第一目标路径中链路路径的服务质量参数进行处理,生成所述第一目标路径在每个所述维度下的参数尺度值;

响应于所述第一目标路径在每个所述维度下的参数尺度值满足路由约束条件的判断结果,按照所述第一目标路径对所述数据包进行路由。

在其中一个实施例中,所述方法还包括:

响应于所述第一目标路径在每个所述维度下的参数尺度值不满足所述路由约束条件的判断结果,对与每个所述维度对应的权重因子进行调整,得到调整后的所述权重因子;

采用调整后的所述权重因子对每个所述链路路径在每个所述维度下的服务质量参数进行加权处理,生成每个所述链路路径与调整后的所述权重因子对应的第二路径权重;

根据所述第二路径权重对多个所述链路路径进行组合得到第二目标路径;

响应于所述第二目标路径在每个所述维度下的参数尺度值满足所述路由约束条件的判断结果,按照所述第二目标路径对所述数据包进行路由。

在其中一个实施例中,所述方法还包括:

根据每个所述维度对应的尺度类别以及所述路由约束条件,生成对所述第一目标路径的多约束模型;

对所述多约束模型进行松弛处理,确定出与每个所述维度对应的权重因子。

在其中一个实施例中,所述对所述多约束模型进行松弛处理,确定出与每个所述维度对应的权重因子,包括:

采用多个松弛因子对所述多约束模型进行松弛处理,确定每个所述松弛因子和所述第一目标路径在每个所述维度下的服务质量参数之间的权重关系;

根据所述权重关系对每个所述松弛因子进行梯度迭代处理,直至满足迭代停止条件时,将迭代处理后的每个所述松弛因子作为与每个所述维度对应的权重因子。

在其中一个实施例中,所述采用多个松弛因子对所述多约束模型进行松弛处理,确定每个所述松弛因子和所述第一目标路径在每个所述维度下的参数尺度值之间的参数关系,包括:

在所述多约束模型中存在非线性约束的情况下,对所述非线性约束进行线性转换处理,得到处理后的所述多约束模型;

采用多个所述松弛因子对处理后的所述多约束模型进行线性松弛处理,确定每个所述松弛因子和每个所述维度下的参数尺度值之间的参数关系。

在其中一个实施例中,在所述采用与每个所述维度对应的权重因子对同一维度下的服务质量参数进行加权处理,生成每个所述链路路径的第一路径权重之前,还包括:

根据每个所述维度下的服务质量参数对多个所述链路路径进行组合得到第三目标路径;

响应于所述第三目标路径在每个所述维度下的参数尺度值不满足所述路由约束条件的判断结果,执行所述采用与每个所述维度对应的权重因子对同一维度下的服务质量参数进行加权处理的操作。

在其中一个实施例中,所述根据与每个所述维度对应的尺度类别对所述第一目标路径中链路路径的服务质量参数进行处理,生成所述第一目标路径在每个所述维度下的参数尺度值,包括:

在所述维度对应的尺度类别为加法类别的情况下,对多个所述链路路径在所述维度下的服务质量参数进行加和处理,生成与所述维度对应的参数尺度值;

在所述维度对应的尺度类别为乘法类别的情况下,将多个所述链路路径在所述维度下的服务质量参数相乘,生成与所述维度对应的参数尺度值;

在所述维度对应的尺度类别为凹性类别的情况下,比较多个所述链路路径在所述维度下的服务质量参数,根据所述服务质量参数的比较结果确定出与所述维度对应的参数尺度值。

第二方面,本申请还提供了一种数据包路由装置。所述装置包括:

数据获取模块,用于获取数据包路由的多个链路路径,以及每个所述链路路径在多个维度下的服务质量参数;

路径确定模块,用于采用与每个所述维度对应的权重因子对同一维度下的服务质量参数进行加权处理,生成每个所述链路路径的第一路径权重,根据所述第一路径权重对多个所述链路路径进行组合得到第一目标路径;

尺度值生成模块,用于根据与每个所述维度对应的尺度类别对所述第一目标路径中链路路径的服务质量参数进行处理,生成所述第一目标路径在每个所述维度下的参数尺度值;

数据路由模块,用于响应于所述第一目标路径在每个所述维度下的参数尺度值满足路由约束条件的判断结果,按照所述第一目标路径对所述数据包进行路由。

第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项实施例所述的数据包路由方法。

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

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面任一项实施例所述的数据包路由方法。

上述数据包路由方法、装置、计算机设备、存储介质和计算机程序产品,通过获取数据包路由的多个链路路径,以及每个链路路径在多个维度下的服务质量参数;采用与每个维度对应的权重因子对同一维度下的服务质量参数进行加权处理,生成每个链路路径的第一路径权重,根据第一路径权重对多个链路路径进行组合得到第一目标路径,能够综合考虑多个维度下的服务质量参数,从而提高第一目标路径的多样性和灵活性。通过根据与每个维度对应的尺度类别对第一目标路径中链路路径的服务质量参数进行处理,生成第一目标路径在每个维度下的参数尺度值;响应于第一目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照第一目标路径对数据包进行路由,能够基于维度对应的尺度类别对目标路径的服务质量参数进行评价,从而提高参数尺度值的准确率,进而在参数尺度值满足路由约束条件的情况下,利用目标路径提高数据包路由的服务质量以及路由效率。

附图说明

图1为一个实施例中数据包路由方法的流程示意图;

图2为一个实施例中第二目标路径路由步骤的流程示意图;

图3为另一个实施例中数据包路由方法的流程示意图;

图4为另一个实施例中数据包路由方法的流程示意图;

图5为一个实施例中数据包路由装置的结构框图;

图6为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

需要说明的是,本申请所涉及的数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经过各方充分授权的信息和数据。

在一个实施例中,如图1所示,提供了一种数据包路由方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

本实施例中,该方法包括以下步骤:

步骤S102,获取数据包路由的多个链路路径,以及每个链路路径在多个维度下的服务质量参数。

其中,链路路径可以用于表征将数据包从业务请求源节点路由至目的节点所经过的多个链路节点之间的路径。

维度可以包括但不仅限于网络时延维度、丢包率维度或带宽维度等多种服务质量参数的评价维度。相应的,服务质量参数可以包括但不仅限于在网络时延维度下的网络时延参数、在丢包率维度下的丢包率参数以及在带宽维度下的带宽参数等多种参数。

具体地,服务器可以响应于数据包路由请求,获取数据包路由的源节点、目的节点以及存储有当前网络拓扑信息的路由表。在路由表中查询得到从源节点路由至目的节点的多个链路路径。获取每个链路路径在多个维度下的服务质量参数,譬如网络时延维度下的网络时延参数、丢包率维度下的丢包率参数或带宽维度下的带宽参数等。

步骤S104,采用权重因子对服务质量参数进行加权处理,生成每个链路路径的第一路径权重,根据第一路径权重对链路路径进行组合得到第一目标路径。

具体地,服务器中可以预先存储有与每个维度对应的权重因子。对于每个链路路径可以执行以下处理:采用与每个维度对应的权重因子对同一维度下的服务质量参数进行加权运算处理,得到每个链路路径在每个维度下的加权质量参数。对每个维度下的加权质量参数进行加和处理,生成与每个链路路径对应的第一路径权重。

采用迪克斯特拉算法(Dijkstra's Algorithm,简称Dijkstra算法)以每个链路路径的第一路径权重作为数据包在链路路径上的路由代价,确定出从源节点路由至目的节点的最小代价路径。按照最小代价路径对相应的多个链路路径进行组合得到第一目标路径。

譬如,在一个网络拓扑G(V,E)中,数据包路由的源节点为s,目的节点为t。其中V可以用于表征网络拓扑G中的链路节点集合,E可以用于表征链路节点之间的链路路径集合。将源节点s存储至已标记点集合中,将链路节点集合V中的任意链路节点(除源节点s以外)存储至未标记点集合中。根据链路路径集合E中每个链路路径的第一路径权重(也即路由代价),依次确定未标记点集合中的链路节点与源节点s之间的最小第一路径权重,并将已确定最小第一路径权重的链路节点从未标记点集合中转移至已标记点集合中存储,直至未标记点集合为空集,得到从源节点s路由至目标节点t的最小第一路径权重。按照最小第一路径权重对相应的链路路径进行组合得到第一目标路径。

步骤S106,根据与每个维度对应的尺度类别对第一目标路径中链路路径的服务质量参数进行处理,生成第一目标路径在每个维度下的参数尺度值。

其中,尺度类别可以包括但不仅限于加法类别、乘法类别或凹性类别等多种类别中的任一种或多种。

参数尺度值可以用于衡量第一目标路径在每个维度下的服务质量参数。

具体地,服务器中可以预先存储有与每种尺度类别对应的尺度值生成逻辑。对第一目标路径可以执行以下操作:确定与每个维度对应的尺度类别,采用与尺度类别对应的尺度值生成逻辑对第一目标路径中每个链路路径的服务质量参数进行处理,生成第一目标路径在该维度下的参数尺度值。

譬如,在尺度类别为加法类别时,与尺度类别对应的尺度值生成逻辑可以是对第一目标路径中每个链路路径的服务质量参数相加,将第一目标路径中每个链路路径的服务质量参数之和作为第一目标路径在该维度下的参数尺度值。

在尺度类别为乘法类别时,与尺度类别对应的尺度值生成逻辑可以是对第一目标路径中每个链路路径的服务质量参数相乘,将第一目标路径中每个链路路径的服务质量参数的乘积作为第一目标路径在该维度下的参数尺度值。

在尺度类别为凹性类别时,与尺度类别对应的尺度值生成逻辑可以是比较第一目标路径中每个链路路径的服务质量参数,将第一目标路径中服务质量参数的最小值作为第一目标路径在该维度下的参数尺度值。

步骤S108,响应于第一目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照第一目标路径对数据包进行路由。

其中,路由约束条件中可以包括对于每个维度下的服务质量参数的约束阈值,譬如对于网络时延维度的时延上限阈值、对于丢包率维度的丢包率上限阈值或对于带宽维度的带宽下限阈值等。

具体地,服务器可以根据当前链路路径的物理参数确定路由约束条件,譬如根据当前链路路径的剩余带宽确定对于带宽维度下的服务质量参数的约束条件、根据当前链路路径的端对端时延参数确定对于网络时延维度下的服务质量参数的约束条件、根据当前链路路径的丢包率阈值确定对于丢包率维度下的服务质量参数等;或者,服务器也可以获取用户预先配置的与数据包的路由优先级对应的路由约束条件,譬如当数据包的路由优先级为A时,采用与路由优先级A对应的丢包率阈值X对丢包率维度下的服务质量参数进行约束,当数据包的路由优先级为B时,采用与路由优先级B对应的丢包率阈值Y对丢包率维度下的服务质量参数进行约束。

由于第一目标路径中包括多个链路路径,并且每个链路路径在多个维度下的服务质量参数可能存在差异,因此需要采用参数尺度值代表第一目标路径在每个维度下的服务质量参数。采用路由约束条件对第一目标路径在每个维度下的参数尺度值进行判断,当第一目标路径在每个维度下的参数尺度值均满足路由约束条件时,响应于第一目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照第一目标路径对数据包进行路由。

可选地,在一些实施例中,在服务器确定第一目标路径在网络时延维度下的参数尺度值小于路由约束条件中的时延上限阈值,并且第一目标路径在丢包率维度下的参数尺度值小于路由约束条件中的丢包率上限阈值,并且第一目标路径在带宽维度下的参数尺度值大于路由约束条件中的带宽下限阈值时,可以确定第一目标路径在每个维度下的参数尺度值满足路由约束条件。

上述数据包路由方法,通过获取数据包路由的多个链路路径,以及每个链路路径在多个维度下的服务质量参数;采用与每个维度对应的权重因子对同一维度下的服务质量参数进行加权处理,生成每个链路路径的第一路径权重,根据第一路径权重对多个链路路径进行组合得到第一目标路径,能够综合考虑多个维度下的服务质量参数,从而提高第一目标路径的多样性和灵活性。通过根据与每个维度对应的尺度类别对第一目标路径中链路路径的服务质量参数进行处理,生成第一目标路径在每个维度下的参数尺度值;响应于第一目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照第一目标路径对数据包进行路由,能够基于维度对应的尺度类别对目标路径的服务质量参数进行评价,从而提高参数尺度值的准确率,进而在参数尺度值满足路由约束条件的情况下,利用目标路径提高数据包路由的服务质量以及路由效率。

在一个实施例中,如图2所示,还提供了一种数据包路由方法,包括:

步骤S202,响应于第一目标路径在每个维度下的参数尺度值不满足路由约束条件的判断结果,对权重因子进行调整,得到调整后的权重因子。

具体地,当第一目标路径在至少一个维度下的参数尺度值不满足路由约束条件时,服务器可以响应于第一目标路径在每个维度下的参数尺度值不满足路由约束条件的判断结果,对与每个维度对应的权重因子进行调整,得到调整后的权重因子。譬如,服务器可以根据第一目标路径的参数尺度值和路由约束条件中约束阈值的比较结果,将权重因子增大或减小或对权重因子进行迭代处理。

步骤S204,采用调整后的权重因子对每个链路路径的服务质量参数进行加权处理,生成每个链路路径与调整后的权重因子对应的第二路径权重。

具体地,服务器可以采用与每个维度对应的调整后的权重因子对每个链路路径的服务质量参数进行加权处理,得到与调整后的权重因子对应的加权质量参数。对每个维度下与调整后的权重因子对应的加权质量参数进行加和处理,生成每个链路路径与调整后的权重因子对应的第二路径权重。

步骤S206,根据第二路径权重对多个链路路径进行组合得到的第二目标路径。

具体地,服务器可以采用迪克斯特拉算法以第二路径权重作为每个链路路径的路由代价,确定出数据包从源节点路由至目的节点的最小代价路径。按照最小代价路径对相应的多个链路路径进行组合得到第二目标路径。具体的第二目标路径的生成操作,可以参照上述实施例中提供的第一目标路径的生成方法实现,在此不作具体阐述。

步骤S208,响应于第二目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照第二目标路径对数据包进行路由。

具体地,服务器可以根据与每个维度对应的尺度类别对第二目标路径中链路路径在每个维度下的服务质量参数进行处理,参照上述实施例中提供的参数尺度值生成方法,得到第二目标路径在每个维度下的参数尺度值。采用路由约束条件对第二目标路径在每个维度下的参数尺度值进行判断,响应于第二目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照第二目标路径对数据包进行路由。

可选地,在一些实施例中,服务器还可以响应于第二目标路径在每个维度下的参数尺度值不满足路由约束条件的判断结果,重复执行步骤S202~S206的操作,对权重因子进行调整,采用调整后的权重因子确定出新的第二目标路径。直至新的第二目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照新的第二目标路径对数据包进行路由。

本实施例中,通过在第一目标路径不满足路由约束条件的情况下,对权重因子进行调整,从而利用调整后的权重因子确定出新的第二目标路径,再次采用路由约束条件对新的第二目标路径进行判断,直至得到的新的第二目标路径满足路由约束条件时,按照第二目标路径对数据包进行路由,能够提高数据包路由的灵活性。

在一个实施例中,数据包路由方法还可以包括:根据每个维度对应的尺度类别以及路由约束条件,生成对第一目标路径的多约束模型,对多约束模型进行松弛处理,确定出与每个维度对应的权重因子。

具体地,服务器可以根据每个维度对应的尺度类别确定出与第一目标路径在每个维度下的服务质量参数和参数尺度值之间的关系。采用路由约束条件在每个维度下的约束阈值对第一目标路径在每个维度下的参数尺度值进行约束,构建对第一目标路径在每个维度下的服务质量参数的多约束模型。采用松弛算法(譬如线性规划松弛算法、基于数学规划的松弛算法、拉格朗日松弛算法等多种求解下界的算法中的任一种或多种)对多约束模型进行松弛处理,简化多约束模型的求解难度,得到松弛后的多约束模型。从松弛后的多约束模型中确定出服务质量参数与路径权重之间的关系。根据服务质量参数与路径权重之间的关系,确定出与每个维度对应的权重因子。

可选地,服务器可以参照以下公式确定每个维度下的服务质量参数和参数尺度值之间的关系:

其中,i可以用于表征数据包路由的源节点。j可以用于表征数据包路由的目的节点。(,j)可以用于表征从源节点i到目的节点j的链路路径。p可以用于表征从源节点i到目的节点j的第一目标路径。d(p)可以用于表征第一目标路径在网络时延维度下的网络时延尺度值。d

可选地,服务器可以参照以下公式建立最小代价多约束模型:

也即

其中,w

本实施例中,通过根据每个维度对应的尺度类别以及路由约束条件,生成对第一目标路径的多约束模型,对多约束模型进行松弛处理,确定出与每个维度对应的权重因子,能够综合考虑路由约束条件对第一目标路径在每个维度下的服务质量参数的约束,提高多约束模型的准确率,从而进一步地提高利用多约束模型确定出的权重因子的准确率。

在一个实施例中,服务器可以采用多个松弛因子对多约束模型进行松弛处理,确定每个松弛因子和第一目标路径在每个维度下的服务质量参数之间的权重关系,根据权重关系对每个松弛因子进行梯度迭代处理,直至满足迭代停止条件时,将迭代处理后的每个松弛因子作为与每个维度对应的权重因子。

具体地,服务器中可以预先存储有多个拉格朗日乘子。采用拉格朗日乘子作为松弛因子对多约束模型进行拉格朗日松弛处理,得到松弛后的多约束模型。从松弛后的多约束模型中确定出每个松弛因子和第一目标路径在每个维度下的服务质量参数之间的权重关系。

可以采用线性表达式的求解方式对权重关系进行梯度迭代处理,得到迭代处理后的松弛因子。将迭代处理后的松弛因子以及第一目标路径在每个维度下的服务质量参数代入松弛因子和服务质量参数之间的权重关系中,在迭代处理后的松弛因子满足权重关系时,确定此时满足迭代停止条件,将迭代处理后的松弛因子作为权重因子,得到与每个维度对应的权重因子。后续,服务器可以采用与每个维度对应的权重因子,以及服务质量参数与当前权重因子之间的权重关系,建立并存储与链路路径对应的第一路径权重关系式,从而提高后续第一路径权重的确定效率。

可选地,在一些实施例中,服务器可以参照以下公式对多约束模型进行拉格朗日松弛处理:

其中,μ

由于上述拉格朗日松弛后的多约束模型中μ

其中,公式参数的定义可以参照上述实施例中提供的同一公式参数的定义确定。由上述公式可知,对多约束模型进行拉格朗日松弛处理后,能够将多约束模型求解下界的问题简化成为了一个权重最小路由问题,以简化多约束模型的求解难度。

可选地,在一些实施例中,由于松弛因子和服务质量参数之间存在线性正相关,因此服务器可以参照以下公式,采用传统线性表达式的求解方式对每个松弛因子进行梯度迭代处理:

/>

其中,Δ

可选地,在一些实施例中,服务器可以参照以下公式生成与链路路径对应的第一路径权重:

W

其中,W

本实施例中,通过对松弛后的多约束模型采用梯度迭代的方式确定出权重因子,能够提高权重因子的确定效率以及准确率。

在一个实施例中,服务器还可以在多约束模型中存在非线性约束的情况下,对非线性约束进行线性转换处理,得到处理后的多约束模型。采用多个松弛因子对处理后的多约束模型进行线性松弛处理,确定每个松弛因子和每个维度下的参数尺度值之间的参数关系。

具体地,由于非线性约束的下界求解难度相对于线性约束的下界求解难度而言较大,因此,优选地,可以在多约束模型中存在非线性约束的情况下,对非线性约束进行线性转换处理,将多约束模型转换为线性约束模型,从而用多个松弛因子对处理后的多约束模型进行线性松弛处理,确定每个松弛因子和每个维度下的参数尺度值之间的参数关系。

譬如,服务器可以参照以下公式将多约束模型中与乘法类别对应的非线性约束转换为与加法类别对应的线性约束:

其中,公式参数的定义可以参照上述实施例中提供的同一公式参数的定义确定。

本实施例中,通过对非线性约束进行线性转换处理,采用多个松弛因子对处理后的多约束模型进行线性松弛处理,确定每个松弛因子和每个维度下的参数尺度值之间的参数关系,能够简化多约束模型的松弛难度,从而提高参数关系的确定效率。

在一个实施例中,在步骤S104,采用权重因子对服务质量参数进行加权处理,生成每个链路路径的第一路径权重,根据第一路径权重对链路路径进行组合得到第一目标路径之前,服务器还可以根据每个维度下的服务质量参数对多个链路路径进行组合得到第三目标路径,响应于第三目标路径在每个维度下的参数尺度值不满足路由约束条件的判断结果,执行步骤S104的操作。

具体地,服务器可以分别以每个维度下的服务质量参数作为数据包在链路路径上的路由代价,采用迪克斯特拉算法根据每个链路路径的服务质量参数确定出从源节点路由至目的节点的最小代价路径,按照最小代价路径对相应的多个链路路径进行组合得到第三目标路径。根据与每个维度对应的尺度类别生成第三目标路径在每个维度下的参数尺度值。采用路由约束条件对第三目标路径在每个维度下的参数尺度值进行判断。在第三目标路径满足路由约束条件的情况下,可以直接按照第三目标路径对数据包进行路由。在第三目标路径不满足路由约束条件的情况下,可以响应于第三目标路径在每个维度下的参数尺度值不满足路由约束条件的判断结果,执行步骤S104的操作。

可选地,在一些实施例中,服务器可以将网络延迟维度下的网络延迟参数作为路由代价,采用迪克斯特拉算法确定出网络延迟参数最小的第三目标路径。获取第三目标路径在网络延迟维度下的参数尺度值以及在带宽维度下的参数尺度值。当第三目标路径在网络延迟维度下的参数尺度值大于路由约束条件中的端对端时延阈值,和/或,第三目标路径在带宽维度下的参数尺度值小于路由约束条件中的剩余带宽阈值时,确定与网络延迟参数对应的第三目标路径不满足路由约束条件。否则,则确定与网络延迟参数对应的第三目标路径满足路由约束条件,直接按照与网络延迟参数对应的第三目标路径进行数据包路由。

可选地,在一些实施例中,服务器可以将带宽维度下的带宽参数作为路由代价,采用迪克斯特拉算法确定出带宽参数最小的第三目标路径。获取第三目标路径在带宽维度下的参数尺度值以及在带宽维度下的参数尺度值。当第三目标路径在带宽维度下的参数尺度值大于路由约束条件中的端对端时延阈值,和/或,第三目标路径在带宽维度下的参数尺度值小于路由约束条件中的剩余带宽阈值时,确定与带宽参数对应的第三目标路径不满足路由约束条件。否则,则确定与带宽参数对应的第三目标路径满足路由约束条件,直接按照与带宽参数对应的第三目标路径进行数据包路由。

可选地,在一些实施例中,如图3所示,服务器可以将网络延迟维度下的网络延迟参数作为路由代价,采用迪克斯特拉算法确定出网络延迟参数最小的第三目标路径。采用路由约束条件对当前第三目标路径进行判断。在当前第三目标路径满足路由约束条件时,直接采用当前路径对数据包进行路由。

在确定当前第三目标路径不满足路由约束条件时,将带宽维度下的带宽参数作为路由代价,采用迪克斯特拉算法确定出带宽参数最小的第三目标路径。采用路由约束条件对当前第三目标路径进行判断。在当前第三目标路径满足路由约束条件时,直接采用当前路径对数据包进行路由。

在确定当前第三目标路径不满足路由约束条件时,采用权重因子对链路路径的服务质量参数进行加权处理,确定出链路路径的第一路径权重,通过第一路径权重生成第一目标路径。采用路由约束条件对第一目标路径进行判断。在第一目标路径满足路由约束条件时,直接采用当前路径对数据包进行路由。在确定第一目标路径不满足路由约束条件时,调整权重因子,重复上述操作确定出与调整后的权重因子对应的新的第一目标路径,直至新的第一目标路径满足路由约束条件时,按照当前路径对数据包进行路由。

与网络延迟参数对应的第三目标路径不满足路由约束条件时,确定出与网络延迟参数对应的第三目标路径,采用路由约束条件对当前的第三目标路径进行判断。在确定与网络延迟参数对应的第三目标路径也不满足路由约束条件时,执行采用权重因子对链路路径的服务质量参数进行加权处理的操作。

本实施例中,通过以一个维度下的服务质量参数作为路由代价,确定出与该维度下的服务质量参数对应的第三目标路径,采用路由约束条件对第三目标路径进行判断,在第三目标路径满足路由约束条件的情况下直接按照第三目标路径进行数据包路由,在第三目标路径不满足路由约束条件的情况下采用权重因子对服务质量参数进行加权处理,从而确定出与加权处理后的服务质量参数对应的第一目标路径,能够提高数据包路由的多样性和灵活性。

在一个实施例中,步骤S106,根据与每个维度对应的尺度类别对第一目标路径中链路路径的服务质量参数进行处理,生成第一目标路径在每个维度下的参数尺度值,包括:

在维度对应的尺度类别为加法类别的情况下,对多个链路路径在维度下的服务质量参数进行加和处理,生成与维度对应的参数尺度值。

在维度对应的尺度类别为乘法类别的情况下,将多个链路路径在维度下的服务质量参数相乘,生成与维度对应的参数尺度值。

在维度对应的尺度类别为凹性类别的情况下,比较多个链路路径在维度下的服务质量参数,根据服务质量参数的比较结果确定出与维度对应的参数尺度值。

譬如,在第一目标路径p中包括链路节点a、b、c、d、……、e、f的情况下,确定出链路路径(a,b)的服务质量参数c(a,b)、链路路径(c,d)的服务质量参数c(b,c)以及链路路径(e,f)的服务质量参数c(e,f)。

服务器可以参照以下公式生成与加法类别对应的参数尺度值:

c(p)=(a,b)+(b,c)+∧+(,f)

服务器可以参照以下公式生成与乘法类别对应的参数尺度值:

c(p)=(a,b)×c(b,c)×∧×c(,f)

服务器可以参照以下公式生成与凹性类别对应的参数尺度值:

c(p)=in{c(a,b),(b,c),∧,(e,)}

其中,加法类别下的维度可以包括但不仅限于网络延迟维度。乘法类别下的维度可以包括但不仅限于丢包率维度。凹性类别下的维度可以包括但不仅限于带宽维度。

本实施例中,通过根据维度对应的尺度类别对同一维度下的服务质量参数进行处理,生成与维度对应的参数尺度值,能够提高参数尺度值的准确率。

在一个实施例中,如图4所示,提供了一种数据包路由方法的流程示意图,包括:

步骤S402,获取数据包路由的多个链路路径,以及每个链路路径在多个维度下的服务质量参数。

具体地,服务器可以根据数据包路由的源节点和目的节点在路由网络拓扑中确定出与数据包路由对应的多个链路路径,获取每个链路路径在多个维度下的服务质量参数。

步骤S404,根据每个维度下的服务质量参数对多个链路路径进行组合得到第三目标路径。

具体地,服务器可以分别将每个维度下的服务质量参数作为路由代价,采用迪克斯特拉算法确定出与每个维度下的服务质量参数对应的最小代价路径,按照最小代价路径对相应的多个链路路径进行组合得到第三目标路径。根据维度对应的尺度类别对第三目标路径在同一维度下的服务质量参数进行处理,生成第三目标路径在每个维度下的参数尺度值。

采用路由约束条件对第三目标路径的参数尺度值进行判断,在第三目标路径不满足路由约束条件的情况下执行步骤S406。在第三目标路径满足路由约束条件的情况下,直接按照第三目标路径进行数据包路由。

步骤S406,响应于第三目标路径不满足路由约束条件的判断结果,采用权重因子对服务质量参数进行加权处理,生成每个链路路径的第一路径权重,根据第一路径权重生成第一目标路径。

具体地,服务器可以响应于第三目标路径不满足路由约束条件的判断结果,获取与每个维度对应的权重因子,采用权重因子对同一维度下的服务质量参数进行加权处理,生成每个链路路径的第一路径权重。以第一路径权重作为路由代价,采用迪克斯特拉算法确定出与第一路径权重对应的最小代价路由。按照最小代价路由对相应的多个链路路径进行组合生成第一目标路径。

步骤S408,根据与每个维度对应的尺度类别对服务质量参数进行处理,生成第一目标路径的参数尺度值。

步骤S410,比较路由约束条件中的约束阈值与第一目标路径的参数尺度值,确定第一目标路径是否满足路由约束条件。

步骤S412,按照第一目标路径对数据包进行路由。

步骤S414,对权重因子进行调整,采用调整后的权重因子确定出第二目标路径,按照第二目标路径对数据包进行路由。

具体地,服务器可以根据与每个维度对应的尺度类别对第一目标路径中每个链路路径在同一维度下的服务质量参数进行处理,生成第一目标路径在每个维度下的参数尺度值。采用路由约束条件中与每个维度对应的约束阈值与第一目标路径在每个维度下的参数尺度值进行比较。

根据同一维度下约束阈值与参数尺度值的比较结果,确定出第一目标路径是否满足路由约束条件。在确定第一目标路径满足路由约束条件的情况下,执行步骤S412按照第一目标路径对数据包进行路由。

在确定第一目标路径不满足路由约束条件的情况下,执行步骤S414对权重因子进行调整,采用调整后的权重因子参照上述实施例中提供的第二目标路径的生成方法,确定出第二目标路径。采用路由约束条件对第二目标路径在每个维度下的参数尺度值进行判断,在第二目标路径满足路由约束条件的情况,按照第二目标路径对数据包进行路由。

本实施例中,通过获取数据包路由的多个链路路径,以及每个链路路径在多个维度下的服务质量参数;采用与每个维度对应的权重因子对同一维度下的服务质量参数进行加权处理,生成每个链路路径的第一路径权重,根据第一路径权重对多个链路路径进行组合得到第一目标路径,能够综合考虑多个维度下的服务质量参数,从而提高第一目标路径的多样性和灵活性。通过根据与每个维度对应的尺度类别对第一目标路径中链路路径的服务质量参数进行处理,生成第一目标路径在每个维度下的参数尺度值;响应于第一目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照第一目标路径对数据包进行路由,能够基于维度对应的尺度类别对目标路径的服务质量参数进行评价,从而提高参数尺度值的准确率,进而在参数尺度值满足路由约束条件的情况下,利用目标路径提高数据包路由的服务质量以及路由效率。

可选地,在一些实施例中,如下表1.1所示,提供了一种实现上述任一实施例中的数据包路由方法的伪代码:

/>

表1.1

由上表1.1可知,数据包路由方法的主要耗时在于采用迪克斯特拉算法确定出最小代价路径的步骤以及对权重因子进行迭代调整的步骤。其中,采用迪克斯特拉算法确定出最小代价路径的步骤的时间复杂度为O(n

本实施例中,通过结合软件定义网络架构(Software-Defined Networking,简称SDN)的可直接编程特性和集中控制特性,实现上述任一实施例中提供的数据包路由方法,能够灵活改变数据包路由策略,更有效地保障多类型业务的路由服务质量,动态自适应地满足多类型业务的服务质量需求,从而提高数据包路由的响应速度及网络性能。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其他的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据包路由方法的数据包路由装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据包路由装置实施例中的具体限定可以参见上文中对于数据包路由方法的限定,在此不再赘述。

在一个实施例中,如图5所示,提供了一种数据包路由装置500,包括:数据获取模块502、路径确定模块504、尺度值生成模块506和数据路由模块508,其中:

数据获取模块502,用于获取数据包路由的多个链路路径,以及每个链路路径在多个维度下的服务质量参数;

路径确定模块504,用于采用与每个维度对应的权重因子对同一维度下的服务质量参数进行加权处理,生成每个链路路径的第一路径权重,根据第一路径权重对多个链路路径进行组合得到第一目标路径;

尺度值生成模块506,用于根据与每个维度对应的尺度类别对第一目标路径中链路路径的服务质量参数进行处理,生成第一目标路径在每个维度下的参数尺度值;

数据路由模块508,用于响应于第一目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照第一目标路径对数据包进行路由。

在一个实施例中,数据包路由装置500还包括:权重调整模块,用于响应于第一目标路径在每个维度下的参数尺度值不满足路由约束条件的判断结果,对与每个维度对应的权重因子进行调整,得到调整后的权重因子;第二权重模块,用于采用调整后的权重因子对每个链路路径在每个维度下的服务质量参数进行加权处理,生成每个链路路径与调整后的权重因子对应的第二路径权重;第二路径模块,用于根据第二路径权重对多个链路路径进行组合得到第二目标路径;第二路由模块,用于响应于第二目标路径在每个维度下的参数尺度值满足路由约束条件的判断结果,按照第二目标路径对数据包进行路由。

在一个实施例中,数据包路由装置500还包括:模型生成模块,用于根据每个维度对应的尺度类别以及路由约束条件,生成对第一目标路径的多约束模型;权重确定模块,用于对多约束模型进行松弛处理,确定出与每个维度对应的权重因子。

在一个实施例中,权重确定模块,包括:关系确定单元,用于采用多个松弛因子对多约束模型进行松弛处理,确定每个松弛因子和第一目标路径在每个维度下的服务质量参数之间的权重关系;因子迭代单元,用于根据权重关系对每个松弛因子进行梯度迭代处理,直至满足迭代停止条件时,将迭代处理后的每个松弛因子作为与每个维度对应的权重因子。

在一个实施例中,关系确定单元,还用于在多约束模型中存在非线性约束的情况下,对非线性约束进行线性转换处理,得到处理后的多约束模型;采用多个松弛因子对处理后的多约束模型进行线性松弛处理,确定每个松弛因子和每个维度下的参数尺度值之间的参数关系。

在一个实施例中,路径确定模块504,还用于根据每个维度下的服务质量参数对多个链路路径进行组合得到第三目标路径;响应于第三目标路径在每个维度下的参数尺度值不满足路由约束条件的判断结果,执行采用与每个维度对应的权重因子对同一维度下的服务质量参数进行加权处理的操作。

在一个实施例中,尺度值生成模块506,还用于在维度对应的尺度类别为加法类别的情况下,对多个链路路径在维度下的服务质量参数进行加和处理,生成与维度对应的参数尺度值;在维度对应的尺度类别为乘法类别的情况下,将多个链路路径在维度下的服务质量参数相乘,生成与维度对应的参数尺度值;在维度对应的尺度类别为凹性类别的情况下,比较多个链路路径在维度下的服务质量参数,根据服务质量参数的比较结果确定出与维度对应的参数尺度值。

上述数据包路由装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储链路路径在多个维度下的服务质量参数,链路路径的路径权重、路由约束阈值等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据包路由方法。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可以存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其他介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

技术分类

06120115932349