基于部分部署分段路由的IPv6网络的流量工程方法及装置与流程

文档序号:17985357发布日期:2019-06-22 00:22阅读:302来源:国知局
基于部分部署分段路由的IPv6网络的流量工程方法及装置与流程
本文涉及流量工程
技术领域
,尤指一种基于部分部署分段路由的ipv6(internetprotocolversion6,互联网协议第6版)网络的流量工程方法及装置。
背景技术
:随着互联网飞速发展,互联网出现了网络流量爆炸式增长等问题。另外,音视频业务的不断发展也对互联网提出了服务质量的要求。受限于路由算法和调度策略,网络流量极易在链路上分配不均,从而导致网络拥塞和网络服务质量下降。流量工程是一种优化网络流量分配的技术,可以对网络流量优化调度,从而实现网络流量负载均衡,减少拥塞,提高网络资源的利用率。分段路由(segmentrouting,sr)是一种最新出现的源路由机制,它仅需要对现有igp(interiorgatewayprotocol,内部网关协议)进行简单的扩展便可应用在ip(internetprotocol,互联网协议)/mpls(multi-protocollabelswitching,多协议标签交换)或ipv6网络中。在sr网络中,每条流的状态仅储存在sr域的入口节点中,中间节点不需要存储流的状态信息,因此具有极高的可扩展性。考虑到sr的简单、易部署、可扩展等优点,基于sr的流量工程算法已经成为流量工程研究中的热点问题。其中,部署sr的ipv6网络可以称为srv6网络,srv6可以和ipv6网络无缝互操作。然而,从纯ipv6网络直接迁移到全srv6网络是困难甚至不可行的。技术实现要素:本申请提供了一种基于部分部署分段路由的ipv6网络的流量工程方法及装置,可以最小化部分部署分段路由的ipv6网络的最大链路利用率。一方面,本申请提供了一种基于部分部署分段路由的ipv6网络的流量工程方法,包括:获取ipv6网络的网络拓扑、初始的网络链路权重矩阵、设定时长内的多个流量矩阵;基于所述设定时长内的多个流量矩阵,计算所述设定时长内的代表流量矩阵;基于所述网络拓扑、所述初始的网络链路权重矩阵以及所述代表流量矩阵,对深度强化学习网络进行m次训练,根据所述深度强化学习网络的第m次训练,确定优化后的网络链路权重矩阵、分段路由节点集合以及对应的最小化的最大链路利用率;其中,m为大于0的正整数。另一方面,本申请提供一种基于部分部署分段路由的ipv6网络的流量工程装置,包括:获取模块,适于获取ipv6网络的网络拓扑、初始的网络链路权重矩阵、设定时长内的多个流量矩阵;代表流量矩阵计算模块,适于基于所述设定时长内的多个流量矩阵,计算所述设定时长内的代表流量矩阵;深度强化学习模块,适于基于所述网络拓扑、所述初始的网络链路权重矩阵以及所述代表流量矩阵,对深度强化学习网络进行m次训练,根据所述深度强化学习网络的第m次训练,确定优化后的网络链路权重矩阵、分段路由节点集合以及对应的最小化的最大链路利用率;其中,m为大于0的正整数。另一方面,本申请提供一种终端,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述的流量工程方法的步骤。另一方面,本申请提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的流量工程方法的步骤。本申请中,在部分部署分段路由的ipv6网络(即srv6网络)中,综合优化网络链路权重矩阵、部署的分段路由节点集合以及流量路径,从而最小化部分部署srv6网络的最大链路利用率。本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书、权利要求书以及附图中所描述的方案来实现和获得。附图说明附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。图1为srv6路由过程的一个示例图;图2为本申请实施例提供的基于部分部署分段路由的ipv6网络的流量工程方法的流程图;图3为散点式部署的部分部署的srv6网络的示例图;图4为节点的最大链路利用率的计算示例图;图5为本实施例中的子路径的计算示例图;图6为本实施例中的可用路径的示例图;图7为采用本实施例提供的流量工程方法的一种应用示例的效果图;图8为采用本实施例提供的流量工程方法的另一种应用示例的效果图;图9为本实施例提供的基于部分部署分段路由的ipv6网络的流量工程装置的示意图;图10为本实施例提供的终端的示意图。具体实施方式本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。在部署sr的ipv6网络(即srv6网络)中,段代表的是拓扑或基于服务的一种指令,有前缀段、节点段、邻接段等类别。在本申请实施例仅涉及节点段。sr域的入口节点会把端到端的逻辑路径分成段,然后通过一系列需要经过的中间节点表示这条路径。图1为srv6路由过程的一个例子的示意图。其中,一个包的内容可以包括ip包头、srv6包头和有效载荷(payload)。ip包头中包括目的地址(destinationaddress,da)和源地址(sourceaddress,sa)。入口路由器插入srv6包头,其中包括总段数目(lastsegment)、剩余段数(segmentleft)和段列表。需要注意的是,此处的段列表是逆序编码的,即要经过的第一个中间节点位于段列表的最后一位。如图1所示,数据包从节点a出发,段列表是<c,e>。最初ip目的地址为节点c,数据包根据igp协议沿最短路路由到达节点c,在经过节点b时不会进行任何处理。到达节点c后,段列表剩余段数减1,指向节点e,而且ip包头中的目的地址被修改为节点e,数据包根据igp协议沿最短路路由到达节点e,同样地,节点d不对数据包进行任何处理。由于从纯ipv6网络直接迁移到全srv6网络是困难甚至不可行的,因此,采用软迁移的办法,即,只将纯ipv6网络中的部分路由器升级为支持srv6的路由器,会大大提高操作的可行性和简便性。本申请实施例提供一种基于部分部署分段路由的ipv6网络的流量工程方法及装置,通过在部分部署sr的ipv6网络(即srv6网络)中,综合优化网络链路权重矩阵、分段路由节点集合以及流量路径,达到最小化srv6网络的最大链路利用率。图2为本申请实施例提供的一种基于部分部署分段路由的ipv6网络的流量工程方法的流程图。本实施例提供的流量工程方法可以由独立于srv6网络的终端(比如,台式电脑或笔记型电脑)执行。然而,本申请对此并不限定。如图2所示,本实施例提供的流量工程方法,包括以下步骤:s201、获取部分部署分段路由的ipv6网络(即部分部署srv6网络)的网络拓扑、初始的网络链路权重矩阵、设定时长内的多个流量矩阵;s202、基于设定时长内的多个流量矩阵,计算设定时长内的代表流量矩阵;s203、基于网络拓扑、初始的网络链路权重矩阵以及代表流量矩阵,对深度强化学习(reinforcementlearning,rl)网络进行m次训练,根据深度强化学习网络的第m次训练,确定优化后的网络链路权重矩阵、分段路由节点集合以及对应的最小化的最大链路利用率;其中,m为大于0的正整数。本实施例中,srv6网络的网络拓扑可以包括srv6网络中的节点集合v以及有向链路集合e。srv6网络中的流量矩阵表示在一段时间内网络所必须处理的流量需求的集合;流量矩阵中共有l条流,所述流指唯一的源点与目的点对之间的聚合流量。任一链路的利用率等于经过该链路的流量与该链路的容量之比。srv6网络的最大链路利用率为网络中所有链路的利用率中的最大值。在一示例性实施例中,s202可以包括:基于设定时长内的多个流量矩阵,采用数据挖掘聚类算法k-means,计算设定时长内的代表流量矩阵。比如,代表流量矩阵可以根据以下式子确定:其中,||||2代表的是欧氏距离。在一示例性实施例中,深度强化学习网络可以包括行动深度神经网络(actordnn)、评估深度神经网络(criticdnn)以及目标深度神经网络(targetdnn);相应地,深度强化学习网络的每次训练过程中进行以下处理:根据网络拓扑、初始的网络链路权重矩阵以及代表流量矩阵,确定初始的网络链路权重矩阵对应的网络流量分布情况、分段路由节点集合以及最大链路利用率;执行t个步骤,在每个步骤中进行以下处理:确定本步骤的网络链路权重矩阵;根据网络拓扑、本步骤的网络链路权重矩阵以及代表流量矩阵,确定本步骤的网络链路权重矩阵对应的网络流量分布情况、分段路由节点集合以及最大链路利用率;根据本步骤的网络链路权重矩阵对应的最大链路利用率和初始的网络链路权重矩阵对应的最大链路利用率,计算本步骤的奖励;将上一步骤的网络链路权重矩阵对应的网络流量分布情况、本步骤的网络链路权重矩阵、本步骤的奖励、本步骤的网络链路权重矩阵对应的网络流量分布情况记为一个事务,存储至回放缓冲区;从回放缓冲区采样设定大小的数据,计算采样出的数据中的每个事务的目标q值;基于目标q值,计算最小化损失l,并根据最小化损失l更新评估深度神经网络的参数;计算策略梯度,并根据策略梯度更新行动深度神经网络的参数;采用平滑替换方式更新目标深度神经网络的参数;其中,t为大于0的正整数。在本示例性实施例中,深度强化学习网络中的dnn被训练m组,每组有t个步骤,最后一次训练得到的网络链路权重矩阵、分段路由节点集合以及对应的最大化链路利用率作为最后的优化结果。在本示例性实施例中,根据网络拓扑、本步骤的网络链路权重矩阵以及代表流量矩阵,确定本步骤的网络链路权重矩阵对应的网络流量分布情况、分段路由节点集合以及最大链路利用率,可以包括:根据网络拓扑、本步骤的网络链路权重矩阵、代表流量矩阵以及分段路由节点部署率,确定本步骤的网络链路权重矩阵对应的分段路由节点集合;根据网络拓扑、代表流量矩阵、本步骤的网络链路权重矩阵以及本步骤的网络链路权重矩阵对应的分段路由节点集合,计算出代表流量矩阵中每条流的可用路径;构造线性规划问题,其中,目标为最小化部分部署srv6网络的最大链路利用率,变量为每条流在可用路径上的分流比;求解线性规划问题,得到每条流在可用路径上的最佳分流比以及部分部署srv6网络的最小化的最大链路利用率。在本示例性实施例中,线性规划问题的限制条件可以包括:经过任一链路的所有流量小于或等于该链路的容量与该链路的最大链路利用率的乘积;任一条流在所有的可用路径上的流量之和大于或等于该条流的流量需求大小;任一条流在任一可用路径上的流量大于或等于0。在本示例性实施例中,根据网络拓扑、本步骤的网络链路权重矩阵、代表流量矩阵以及分段路由节点部署率,确定本步骤的网络链路权重矩阵对应的分段路由节点集合,可以包括:通过弗洛伊德函数,计算出在本步骤的网络链路权重矩阵下srv6网络中任意两节点间的最短路;根据计算得到的最短路以及代表流量矩阵,计算每条链路的利用率;针对每个节点,计算以该节点为起点的链路的利用率的最大值,作为该节点的最大链路利用率;将该srv6网络中的节点按照各自的最大链路利用率从大到小的顺序进行排序;按照节点的最大链路利用率从大到小的顺序,选择目标数目的节点加入分段路由节点集合,其中,目标数据大于或等于待部署分段路由节点总数,待部署分段路由节点总数根据srv6网络的节点总数与分段路由节点的部署率确定。在本示例性实施方式中,根据节点的最大链路利用率来选择分段路由节点。其中,节点的最大链路利用率指以该节点为起点的链路中,链路的利用率的最大值。在本示例性实施例中,根据网络拓扑、初始的网络链路权重矩阵以及代表流量矩阵,确定初始的网络链路权重矩阵对应的网络流量分布情况、分段路由节点集合以及最大链路利用率,可以包括:根据网络拓扑、初始的网络链路权重矩阵、代表流量矩阵以及分段路由节点部署率,确定初始的网络链路权重矩阵对应的分段路由节点集合;根据网络拓扑、代表流量矩阵、初始的网络链路权重矩阵以及初始的网络链路权重矩阵对应的分段路由节点集合,计算出代表流量矩阵中每条流的可用路径;构造线性规划问题,其中,目标为最小化部分部署srv6网络的最大链路利用率,变量为每条流在可用路径上的分流比;求解线性规划问题,得到每条流在可用路径上的最佳分流比以及部分部署srv6网络的初始的最小化的最大链路利用率。在一示例性实施例中,在s203之后,本实施例提供的流量工程方法还可以包括:采用最小化的最大链路利用率对应的分段路由节点集合、代表流量矩阵中每条流的可用路径以及在可用路径上的分流比,优化部分部署srv6网络。在本实施例中,在通过本实施例的流量工程方法得到部分部署srv6网络的最小化的最大链路利用率之后,可以将得到该最大链路利用率所对应的每条流的可用路径以及在可用路径上的最佳分流比提供给srv6网络中的交换机,由交换机存储相关的流量路径,以供后续的流量传输使用;而且,可以根据得到该最大链路利用率所对应的分段路由节点集合,在srv6网络部署分段路由节点,从而提高网络资源利用率。下面以散点式部署的部分部署srv6网络为例对本实施例提供的流量工程方法进行说明。图3为散点式部署的部分部署srv6网络的示例图。在散点式部署的部分部署srv6网络中,只有部分节点支持srv6,其余节点仅支持ipv6和ospfv3,且支持srv6的节点在网络中散点状分布,即支持srv6的节点不一定构成原网络拓扑的联通子图。如图3所示,图中虚线框起来的节点为srv6节点,即节点b、d、f,其余节点为普通节点。包从节点a出发,此时只有一个ipv6包头和有效载荷(payload)。节点b将整个包封装在一个新的外层ipv6包头和sr包头中,目的地址是d,段列表是<d,f>。包根据最短路从节点b到达节点d。由于节点c不支持srv6,而且不是外层ipv6包头所声明的目的地址,因此,节点c不会对包进行任何处理。节点d将剩余段数减一,然后修改目的地址为f。同理,由于节点e不支持srv6,且不是外层ipv6包头所声明的目的地址,因此,节点e不会对包进行任何处理。包到达节点f后,由于节点f已经是段列表中的最后一个节点,因此,节点f会将包解封装,并把解封装后的包按最短路发送给节点g。在本示例性实施例中,整个网络可抽象为一个有向图g=(v,e),其中,v是节点集合,e是有向链路集合。对es(e)代表链路e的源点、et(e)代表链路e的目的点,c(e)代表链路e的容量,c(e)>0;ω(e)代表链路e的权重,ω(e)∈[1,216-1]且为整数;ω为权重矩阵。网络中的流量矩阵tm是已知的,其中,流量矩阵代表在一段时间内网络所必须处理的流量需求的集合。流量矩阵中共有l条流,这里的流指唯一的源点-目的点对之间的聚合流量。对任意流i,s(i)代表流i的源节点,t(i)代表流i的目的节点,d(i)代表流i的流量需求。对f(e)代表经过链路e的流量,则链路e的利用率util(e)=f(e)/c(e)。网络的最大链路利用率是在网络链路权重矩阵为ω时,流量需求l在链路e上分布的流量比例。sr_ratio为ipv6网络中分段路由节点的部署率。srn为ipv6网络中分段路由节点集合。本实施例中,基于部分部署srv6网络的流量工程方法可以通过wa-srte(weightadjustment-segmentroutingtrafficengineering)算法实现。其中,wa-srte算法使用了强化学习(rl,reinforcementlearning)方法。在rl中,有一个代理(agent)不断和环境(environment)交互,交互的内容是状态(state)、动作(action)和奖励(reward),代理可以迭代地从环境中学习。在第t步,代理可以从环境观察到状态st并采取动作at;根据动作at,状态转变为st+1,环境向代理发送反馈rt。代理根据策略π采取动作,策略π是从状态空间到动作空间的映射。rl的目标是最大化期望折扣奖励e[∑γtrt],其中,γ是折扣系数。本示例性实施例中的流量工程方法的优化目标为最小化部分部署srv6网络的最大链路利用率。在本示例中,部分部署srv6网络的流量工程问题可以转化为如下的rl问题:状态:在步骤t,状态st是当前网络流量分布情况,它取决于网络链路权重矩阵、srv6节点部署情况和路由策略;具体而言,状态是一个1*|e|的向量,动作:at是网络链路权重矩阵,具体而言,动作是一个1*|e|的向量,at=ω。奖励:奖励可以根据如下式子计算:本示例性实施例中,wa-srte算法的伪代码如下:由上可知,算法wa-srte的输入为网络拓扑g、初始的网络链路权重矩阵ω0以及一系列流量矩阵tms,输出为优化后的网络链路权重矩阵ω,分段路由节点集合(srn)和对应的最小化的最大链路利用率umax。在上述wa-srte算法中,首先根据一系列流量矩阵tms,计算出一个代表流量矩阵它可以概括在一段时间内流量矩阵的特征。然后,使用深度强化学习算法ddpg(deepdeterministicpolicygradient)进行处理。上述第2至5行伪代码为初始化过程。其中,初始化一个行动深度神经网络(actordnn)μ(s|θμ)和一个评估深度神经网络(criticdnn)q(s,a|θq),其中,s和a是神经网络的输入,θμ和θq是随机初始化的参数;还初始化两个目标深度神经网络(targetdnn)μ′和q′,使用targetdnn的目的是提高训练的稳定性。另外,还初始化了一个大小为n的回放缓冲区以及一个ornstein-uhlenbeck过程,用来生成对于动作的噪声。在本示例性实施例中,深度强化学习网络内的各个dnn被训练了m组,一组有t个步骤;m和t均为大于0的正整数。其中,可以使用get_state函数,在网络链路权重矩阵确定时,得到对应的状态(即网络流量分布情况)、对应的umax以及srn。在每组训练中,首先使用get_state函数,根据初始的网络链路权重矩阵ω0得到最初的状态s1、umax(s1)和srn1(对应上述第7行伪代码)。在每一个步骤中,可以得到动作at,并执行动作at得到st+1(对应上述第9至10行伪代码);其中,at是actordnn的输出和噪声之和,使用get_state函数,根据at可以得到st+1、umax(st+1)和srnt+1。然后,计算出奖励rt(对应上述第11行伪代码)。然后,可以将这一次事务(transition)(即st、at、rt、st+1)存储到回放缓冲区中(对应上述第12行伪代码)。然后,可以从回放缓冲区中采样出大小为n’的一批数据,并计算出这一批数据中每个事务的targetq-valueyi(对应上述第13至16行伪代码)。criticdnn的参数θq可以根据最小化损失l来更新(对应上述第17行伪代码)。actordnn的参数θμ使用策略梯度(policygradient)来更新,其中,已被证明为是actor策略表现的梯度(对应上述第18行伪代码)。targetdnn的参数使用平滑替换方式进行更新(对应上述第19和20行伪代码),其中,τ<<1。最后一次训练步骤得到的at、srnt+1和umax(st+1)是最后输出的优化结果。在一示例性实施例中,上述各个参数的取值可以如下:m=100,t=500,n=3200,n’=128,γ=0.9,τ=0.001。然而,本申请对此并不限定。下面分别对get_representative_tm函数和get_state函数进行说明。get_representative_tm函数用于根据一系列流量矩阵tms得到代表流量矩阵其中,可以使用经典的数据挖掘聚类算法k-means,根据过去一段时间的一系列流量矩阵计算代表流量矩阵具体而言,满足如下式子:其中,||||2代表的是欧氏距离。get_state函数用于在网络链路权重矩阵固定为at时,得到st+1、umax(st+1)和srnt+1。在本实施例中,可以通过以下三个步骤,得到当网络链路权重矩阵固定为at时的st+1、umax(st+1)和srnt+1:确定网络链路权重矩阵固定为at时的srnt+1;在确定srnt+1后,计算代表流量矩阵中每条流的可用路径;构造并求解线性规划问题。下面依次对这三个步骤进行详细说明。本实施例中,根据节点的最大链路利用率来选择sr节点,得到srn。其中,任一节点的最大链路利用率指以该节点为起点的链路中,链路利用率的最大值。任一节点的最大链路利用率的计算式如下所示:图4为节点的最大链路利用率的计算示例图。图中链路容量均为10。网络中有三条流d1、d2、d3,d1的路径为a-d-f-e,d2的路径为a-d-f-h,d3的路径为a-d-g。三条流的流量需求均为6。则链路a-d的负载为18,链路d-f的负载为12,链路f-e、f-h、d-g的负载均为6。如图4所示,假设此时要计算节点d的最大链路利用率,以节点d为起点的链路有d-f、d-g两条,这两条链路的利用率分别为1.2和0.6,则节点d的最大链路利用率maxu(d)=max{util(d-f),util(d-g)}=1.2。本实施例中,sr节点选择算法choose_sr_nodes的伪代码如下:由上可知,sr节点选择算法choose_sr_nodes的输入为网络拓扑g、当前的网络链路权重矩阵at、代表流量矩阵和sr节点的部署率sr_ratio,其中,sr_ratio可以是一个0到1之间的实数,实验表明sr_ratio可以设为0.3;输出为sr节点集合srn。其中,在初始化过程中,将srn初始化为空集,并将集合中节点的数目sr_num赋值为0。然后,枚举网络中的每一个节点,将任一节点的中介中心性初始化为0;然后,调用弗洛伊德函数,根据当前的网络链路权重矩阵,计算得到网络任意两个节点间的最短路(即route);然后,调用get_util函数,计算得到网络中每条链路的利用率。枚举网络中的每个节点,计算以该节点为起点的链路利用率的最大值,就得到了网络中所有节点的最大链路利用率;然后,将网络中的节点按照最大链路利用率从大到小排序,并优先选择最大链路利用率大的节点部署为sr节点;分别枚举集合v中的每一个节点,将它加入到srn中,直到srn中的节点数目大于或等于待部署的sr节点总数;最终返回最后的srn。其中,待部署的sr节点总数等于sr节点的部署率与网络中节点总数的乘积。在本实施例中,在确定sr节点部署以后,计算出每条流量需求所有可用路径。其中,流量从源节点首先根据ospf协议走最短路进行路由,在到达源点-目的节点最短路上的一个sr点后,可能会使用sr路由,流量到达路径上的最后一个sr点后,会从sr路由转为ospf路由到达目的节点。如表1所示,一条流量所有可用的子路径可以分为以下三类:第一类是流的源节点到源节点-目的节点最短路上sr点之间的最短路,这类子路径对应的是路由方式的第一阶段;流量从这类子路径出发,路由方式为传统ip路由,在经过这类子路径后,流量就到达了第一个sr节点,路由方式从传统ip路由转为sr路由;第二类是网络中任意两个sr节点之间的最短路;其中,流量在到达第一个sr节点之后,就会通过这类子路径实现“绕路”,从而达到网络流量工程的目标,在这类子路径上,流量的路由方式是使用节点段的sr路由;第三类是网络中任意sr节点(或源节点)到目的节点的最短路;其中,流量从路径上的最后一个sr节点离开后,路由方式转为传统ip路由,通过这类子路径到达目的节点。此处源节点到目的节点的最短路也可为一条可用子路径,使用此子路径则说明流量在整个过程中没有使用sr节点进行路由,直接使用了ospf协议路由从源节点走最短路到达了目的节点。表1、一条流量的可用子路径图5为本实施例中的子路径的一个计算示例图。图5中共有a到h八个节点,其中,sr节点为节点b、d、g,其余节点为普通节点。节点之间的链路用直线表示,线上的数字代表链路权重。流量需求为a到h,a到h的最短路为a–b–c–d–e–h,此路径上的sr节点为b和d,则流量所有的可用子路径如表2所示。表2、子路径计算结果在得到了一个流量需求所有可用的子路径以后,就可以把目的节点、源节点相同的两条子路径依次连接起来,得到它的所有可用路径。考虑到目前的商用路由器,一般会对一条路径使用的节点段数目进行限制,在构成可用路径时,也可以限制一条可用路径使用的节点段(即第二类子路径)的数目不超过k。表3是可用路径的计算结果。其中,在计算过程中,限制了一条路径使用的节点段数目最大为2。表3中的第二列为可用路径所对应的子路径序列,其中加粗的子路径为sr中的节点段。第三列为子路径序列所对应的图5中节点a到节点h的实际路径。图6为本实施例中的可用路径的示例图。图6中标出了四条可用路径(p1采用点双划线表示,p2采用点表示,p3采用点划线表示,p4采用虚线表示),其中,p4为按照ospf路由得到的最短路,p1、p2、p3都是加入了sr路由后,得到的“绕路”路径。表3、可用路径的计算结果图6中a到h所有路径子路径序列实际路径a–b–d–g–h(a,b)(b,d)(d,g)(g,h)a–b–c–d–g–ha–b–g–d–h(a,b)(b,g)(g,d)(g,h)a–b–f–g–d–e–ha–b–g–h(a,b)(b,g)(g,h)a–b–f–g–ha–h(a,h)a–b–c–d–e–hsr有以下特性:可以为一个流量需求定义多个段列表(即多条路径),源节点会按照一个预先配置好的分流比,将流量在定义的多条路径上分流传输。本实施例利用sr的这个特性,将流量在预先计算好的多条路径上进行分流,从而达到缓解网络拥塞的目标。例如在图6所示的例子中,假设流量需求为1,每条链路的容量也为1,若流量不进行分流,只在路径p4上路由,那么链路a–b、b–c、c–d、d–e、e–h的利用率都为100%;若流量在四条链路上均匀分流,则p1、p2、p3、p4分别承担0.25的流量,网络中所有链路的利用率都为50%,网络的最大链路利用率下降了一半,拥塞程度大大缓解。通过上述过程,已经得到了每条流所有的可用路径。本实施例针对流量在这些路径上,按照怎样的比例分流才能得到最小的最大链路利用率的问题,构造了如式(1)到式(4)所示的线性规划问题。minumax式(1)其中,网络拓扑g=(v,e),v为网络的节点集合,e为网络的有向链路集合;umax为网络的最大链路利用率;c(e)为链路e的容量;l为流量需求的数目;d(i)为第i条流的流量需求大小;pi为第i条流的可用路径集合;p为一条可用路径;fi(p)为第i条流在可用路径p上的流量比例;sp为构成可用路径p的子路径集合;s为一条子路径;is,e∈{0,1},is,e=0说明子路径s包含链路e,is,e=1说明子路径s不包含链路e。式(1)是线性规划问题的优化目标,即最小化网络的最大链路利用率。式(2)是链路容量限制;其中,对于网络中的每条链路,枚举所有流量需求i,枚举该流量需求的所有可用路径p,并枚举该可用路径的所有子路径s,若该子路径包含链路e,则在求和值上加上流量需求i在路径p上的流量。通过这样的操作,就得到了在链路e上的所有流量,这个求和值应当不大于链路e的容量c(e)与最大链路利用率umax的乘积。式(3)是链路的流量需求限制。对于每条流i,枚举它的所有路径p,流量需求i在它所有可用路径上的流量之和,应当不小于流量需求大小d(i)。式(4)是非负性约束,任何流量需求在任何路径上的流量大小,都应当是一个非负数。在上述问题中,umax为优化目标,fi(p)为变量,其余量都为已知量(可以通过数据获取或在之前的阶段计算得到)。该问题的优化目标是线性的,所有约束条件也为线性,所以该问题是一个线性规划问题,且所有变量连续取值。此问题在多项式时间内是可解的。本实施例中,针对上述线性规划问题,可以采用比如内点法、单纯形法、拉格朗日松弛法、原始对偶法等等方式进行求解。示例性地,可以直接使用数学优化问题求解器cplex及其c++编程接口进行求解。然而,本申请对此并不限定。在本实施例中,通过对上述线性规划问题进行求解,可以得到网络中的流量分布st+1和对应的最大链路利用率umax(st+1)。在一应用示例中,分别获取以下三个网络拓扑:abilene(americaresearchandeducationnetwork,美国科研教育网)、cernet(chinaeducationandresearchnetwork,中国教育和科研网)、geant(europeresearchandeducationnetwork,欧洲科研教育网)。其中,网络拓扑的链路容量已知,链路权重初始化为1。三个网络拓扑的信息可以参见表4。表4、网络拓扑的信息拓扑#节点#链路abilene1230cernet1432geant2374在本应用示例中,分别选取了三个网络拓扑在两天内的流量矩阵的数据,对于每一天(24个小时),对每个网络拓扑得到了288或96个流量矩阵。为更直观地体现算法效果,本示例将流量矩阵的数值进行了标准化,将它们的数值等比例放大或缩小,达到优化前网络的最大链路利用率在100%。其中,流量矩阵的信息可以参见表5。表5、流量矩阵的信息拓扑测量间隔(分钟)#流量矩阵abilene5288cernet5288geant1596基于上述数据集合,在一应用示例中,使用第一天的流量矩阵计算出代表流量矩阵并观察结果。图7为本应用示例的效果图。其中,图7(a)为在abilene上的效果图;图7(b)为在cernet上的效果图;图7(c)为在geant上的效果图。在图7中横轴为sr节点的部署率sr_ratio,纵轴为在当前部署率下的最大链路利用率umax。从图7可以看到仅部署30%的sr节点就可以取得和全srv6网络十分接近的流量工程优化效果。在三个拓扑上,最大链路利用率分别从100%下降到80%、55%和38%左右。基于上述数据集合,在另一应用示例中,使用第一天的流量矩阵计算得到网络链路权重和sr节点部署位置,然后,使用第二天的流量矩阵,仅针对每个流量矩阵运行线性规划问题求解,得到对应的流量路径和对应的最大链路利用率。这是因为网络链路权重和sr节点部署属于网络部署阶段,在网络部署以后不宜短期内进行变动,但是流量路径属于sr协议控制的内容,可以在网络运行中根据当前流量矩阵进行变动。图8为本应用示例中288(或96)个流量矩阵的最大链路利用率的cdf图(累计概率分布图)。其中,图8(a)为在abilene上的效果图;图8(b)为在cernet上的效果图;图8(c)为在geant上的效果图。在图8中为在当前部署率下的最大链路利用率umax,纵轴为最大链路利用率的累积概率(cumulativeprobability)。在图8中,wa-srte代表本申请实施例提供的流程工程算法,mcf代表的是理论最优值。从图8可以看到本申请实施例提供的算法结果与理论最优值非常接近。图9为本申请实施例提供的一种基于部分部署的sr网络的流量工程装置的示意图。如图9所示,本实施例提供的流量工程装置包括:获取模块901、代表流量矩阵计算模块902以及深度强化学习模块903;其中,获取模块901,适于获取部分部署分段路由的ipv6网络的网络拓扑、初始的网络链路权重矩阵、设定时长内的多个流量矩阵;代表流量矩阵计算模块902,适于基于设定时长内的多个流量矩阵,计算设定时长内的代表流量矩阵;深度强化学习模块903,适于基于网络拓扑、初始的网络链路权重矩阵以及代表流量矩阵,对深度强化学习网络进行m次训练,根据深度强化学习网络的第m次训练,确定优化后的网络链路权重矩阵、分段路由节点集合以及对应的最小化的最大链路利用率;其中,m为大于0的正整数。在一示例性实施例中,深度强化学习模块903可以包括:初始计算单元以及步骤执行单元;初始计算单元,适于在每次训练过程中进行以下处理:根据网络拓扑、初始的网络链路权重矩阵以及代表流量矩阵,确定初始的网络链路权重矩阵对应的网络流量分布情况、分段路由节点集合以及最大链路利用率;步骤执行单元,适于在每次训练过程中执行t个步骤,且在每个步骤中进行以下处理:确定本步骤的网络链路权重矩阵;根据网络拓扑、本步骤的网络链路权重矩阵以及代表流量矩阵,确定本步骤的网络链路权重矩阵对应的网络流量分布情况、分段路由节点集合以及最大链路利用率;根据本步骤的网络链路权重矩阵对应的最大链路利用率和初始的网络链路权重矩阵对应的最大链路利用率,计算本步骤的奖励;将上一步骤的网络链路权重矩阵对应的网络流量分布情况、本步骤的网络链路权重矩阵、本步骤的奖励、本步骤的网络链路权重矩阵对应的网络流量分布情况记为一个事务,存储至回放缓冲区;从回放缓冲区采样设定大小的数据,计算采样出的数据中的每个事务的目标q值;基于目标q值,计算最小化损失l,并根据最小化损失l更新评估深度神经网络的参数;计算策略梯度,并根据策略梯度更新行动深度神经网络的参数;采用平滑替换方式更新目标深度神经网络的参数;其中,t为大于0的正整数。关于本实施例提供的流量工程装置的相关说明可以参照上述方法实施例的描述,故于此不再赘述。图10为本申请实施例提供的终端的示意图。如图10所示,本申请实施例提供一种终端1000,包括:存储器1001和处理器1002,存储器1001适于存储计算机程序,该计算机程序被处理器1002执行时实现上述实施例提供的流量工程方法的步骤,比如图2所示的步骤。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的示意图,并不构成对本申请方案所应用于其上的终端1000的限定,终端1000可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,处理器1002可以包括但不限于微处理器(mcu,microcontrollerunit)或可编程逻辑器件(fpga,fieldprogrammablegatearray)等的处理装置。存储器1001可用于存储应用软件的软件程序以及模块,如本实施例中的流量工程方法对应的程序指令或模块,处理器1002通过运行存储在存储器1001内的软件程序以及模块,从而执行各种功能应用以及数据处理,比如实现本实施例提供的流量工程方法。存储器1001可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些示例中,存储器1001可包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至终端1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。此外,本申请实施例还提供一种计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现上述实施例提供的流量工程方法的步骤,比如,图2所示的步骤。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1