数据流传输方法和装置转让专利

申请号 : CN201710610243.0

文献号 : CN108418755B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋文栋傅志刚

申请人 : 新华三技术有限公司

摘要 :

本申请提供了业务调度方法和装置。在本申请中,提前将第一网络设备与第二网络设备之间的调度业务所应用的每一条调度路径的转发信息下发至第一网络设备、该调度路径上介于第一网络设备与第二网络设备之间的中间调度业务对象(这相当于在第一网络设备与第二网络设备铺好路),如此,在后续调整调度路径时,SDN控制器无需再下发转发信息,提高路径调整效率。

权利要求 :

1.一种数据流传输方法,其特征在于,该方法应用于软件自定义网络SDN控制器,该方法包括:确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;

为所述多条路径中的每条路径分配路径标识,其中,为每条路径分配的路径标识唯一对应该路径及所述指定业务;

针对所述多条路径中的每条路径,向该路径上除所述第二网络设备之外的网络设备下发转发信息,转发信息至少携带:路经标识、路径下一跳,所述转发信息用于指示将携带该路径的路径标识的数据流转发至接收该转发信息的网络设备在该路径上的下一跳;

根据预设规则从所述多条路径中选择一条路径,将选择的路径的路径标识发送至所述第一网络设备,以使第一网络设备在所述指定业务的数据流中添加所述选择的路径的路径标识。

2.根据权利要求1所述的方法,其特征在于,所述确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径包括:计算从第一网络设备至第二网络设备的路径;

若计算出的路径的条数小于或等于M,则将计算出的所有路径确定为用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;

若计算出的路径的条数大于M,则按照路径代价从低至高的顺序对计算出的路径排序,从序列中选择出前M条路径确定为用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;

其中,所述M为所述第一网络设备至第二网络设备的最大路径数量。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

当检测到所述选择的路径满足路径调整条件时,根据预设规则从所述多条路径中重新选择一条路径并通知该重新选择的路径的路径标识给所述第一网络设备,以使第一网络设备在所述指定业务的数据流中添加所述重新选择的路径的路径标识;

其中,所述路径调整条件包括:路径质量未满足所述指定业务对应的路径约束条件,和/或,路径中包含故障down链路。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

将所述多条路径记录至路径规划列表;

在满足路径优化条件时,对所述路径规划列表记录的路径进行路径优化,所述路径优化至少包括:在路径规划列表中新增路径、从路径规划列表中删除路径;

针对所述路径规划列表新增的每一路径,向该路径上除所述第二网络设备之外的网络设备下发转发信息。

5.根据权利要求4所述的方法,其特征在于,所述对路径规划列表记录的路径进行路径优化包括:从所述路径规划列表中删除故障down的路径;

计算从第一网络设备发送至第二网络设备的路径,并将计算的路径记录至候选路径列表,从候选路径列表中删除记录在所述路径规划列表中的路径;

若候选路径列表删除记录在所述路径规划列表中的路径后不为空,则利用候选路径列表中的路径对所述路径规划列表中的路径进行路径优化。

6.根据权利要求5所述的方法,其特征在于,所述利用候选路径列表中的路径对路径规划列表中的路径进行路径优化包括:若所述候选路径列表中的路径数量K小于或等于H,则将所述候选路径列表中所有路径添加至所述路径规划列表;所述H为M与所述路径规划列表中路径数量L之间的差值,所述M为所述第一网络设备至第二网络设备的最大路径数量;

若所述K大于所述H,则按照路径代价从低至高的原则从所述候选路径列表中提取H条路径并添加至所述路径规划列表,并从所述候选路径列表中删除所述H条路径,将删除H条路径后的候选路径列表中的第一指定路径替换路径规划列表中第二指定路径,其中,第一指定路径的路径代价小于第二指定路径的路径代价。

7.一种数据流传输装置,其特征在于,该装置应用于软件自定义网络SDN控制器,包括:路径确定模块,确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;

转发信息配置模块,用于为所述多条路径中的每条路径分配路径标识,并针对所述多条路径中的每条路径,向该路径上除所述第二网络设备之外的网络设备下发转发信息,所述为每条路径分配的路径标识唯一对应该路径及所述指定业务,所述转发信息至少携带:路经标识、路径下一跳,所述转发信息用于指示将携带该路径的路径标识的数据流转发至接收该转发信息的网络设备在该路径上的下一跳;

路径调整模块,用于根据预设规则从所述多条路径中选择一条路径,将选择的路径的路径标识发送至所述第一网络设备,以使第一网络设备在所述指定业务的数据流中添加所述选择的路径的路径标识。

8.根据权利要求7所述的装置,其特征在于,所述路径确定模块确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径包括:计算从第一网络设备至第二网络设备的路径;

若计算出的路径的条数小于或等于M,则将计算出的所有路径确定为用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;

若计算出的路径的条数大于M,则按照路径代价从低至高的顺序对计算出的路径排序,从序列中选择出前M条路径确定为用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;

其中,所述M为所述第一网络设备至第二网络设备的最大路径数量。

9.根据权利要求7所述的装置,其特征在于,所述路径调整模块进一步当检测到所述选择的路径满足路径调整条件时,根据预设规则从所述多条路径中重新选择一条路径并通知给所述第一网络设备,以使第一网络设备在所述指定业务的数据流中添加所述重新选择的路径的路径标识;

其中,所述路径调整条件包括:路径质量未满足所述指定业务对应的路径约束条件,和/或,故障down链路。

10.根据权利要求7所述的装置,其特征在于,所述路径确定模块进一步将所述多条路径记录至路径规划列表;

所述路径调整模块在满足路径优化条件时,对所述路径规划列表记录的路径进行路径优化,所述路径优化至少包括:在路径规划列表中新增路径、从路径规划列表中删除路径;

针对所述路径规划列表新增的每一路径,向该路径上除所述第二网络设备之外的网络设备下发转发信息。

11.根据权利要求10所述的装置,其特征在于,所述路径调整模块对路径规划列表记录的路径进行路径优化包括:从所述路径规划列表中删除故障down的路径;

计算从第一网络设备发送至第二网络设备的路径,并将计算的路径记录至候选路径列表,从候选路径列表中删除记录在所述路径规划列表中的路径;

若候选路径列表删除记录在所述路径规划列表中的路径后不为空,则利用候选路径列表中的路径对所述路径规划列表中的路径进行路径优化。

12.根据权利要求11所述的装置,其特征在于,所述路径调整模块利用候选路径列表中的路径对路径规划列表中的路径进行路径优化包括:若所述候选路径列表中的路径数量K小于或等于H,则将所述候选路径列表中所有路径添加至所述路径规划列表;所述H为M与所述路径规划列表中路径数量L之间的差值,所述M为所述第一网络设备至第二网络设备的最大路径数量;

若所述K大于所述H,则按照路径代价从低至高的原则从所述候选路径列表中提取H条路径并添加至所述路径规划列表,并从所述候选路径列表中删除所述H条路径,将删除H条路径后的候选路径列表中的第一指定路径替换路径规划列表中第二指定路径,其中,第一指定路径的路径代价小于第二指定路径的路径代价。

说明书 :

数据流传输方法和装置

技术领域

[0001] 本申请涉及网络通信技术,特别涉及数据流传输方法和装置。

背景技术

[0002] 软件定义网络(SDN:Software Defined Network)控制器是基于多协议标签交换(MPLS:Multi-Protocol Label Switching)进行数据流传输的。而目前,数据流传输应用的基础网络大多是IP网络,为了适应数据流传输的业务需求,SDN控制器也提供了基于IP网络的数据流传输。
[0003] 在基于IP网络的数据流传输过程中,SDN控制器需要向数据流经由的路径上的各个网络设备下发路由,路由指示了出口或下一跳,用于实现数据流的一跳传输。一旦数据流传输经由的路径发生变化,SDN控制器需重新选择新的路径,并向选择的新的路径上的各个网络设备下发路由,这会导致路径调整的时间过长。

发明内容

[0004] 本申请提供了数据流传输方法和装置,以防止传输数据流的路径发生调整路径调整时间过长导致的技术问题。
[0005] 本申请提供的技术方案包括:
[0006] 一种数据流传输方法,该方法应用于软件自定义网络SDN控制器,该方法包括:
[0007] 确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;
[0008] 为所述多条路径中的每条路径分配路径标识,其中,为每条路径分配的路径标识唯一对应该路径及所述指定业务;
[0009] 针对所述多条路径中的每条路径,向该路径上除所述第二网络设备之外的网络设备下发转发信息,转发信息用于指示将携带该路径的路径标识的数据流转发至接收该转发信息的网络设备在该路径上的下一跳;
[0010] 根据预设规则从所述多条路径中选择一条路径,将选择的路径的路径标识发送至所述第一网络设备,以使第一网络设备在所述指定业务的数据流中添加所述选择的路径的路径标识。
[0011] 一种数据流传输装置,该装置应用于软件自定义网络SDN控制器,包括:
[0012] 路径确定模块,确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;
[0013] 转发信息配置模块,用于为所述多条路径中的每条路径分配路径标识,并针对所述多条路径中的每条路径,向该路径上除所述第二网络设备之外的网络设备下发转发信息,所述为每条路径分配的路径标识唯一对应该路径及所述指定业务,所述转发信息用于指示将携带该路径的路径标识的数据流转发至接收该转发信息的网络设备在该路径上的下一跳;
[0014] 路径调整模块,用于根据预设规则从所述多条路径中选择一条路径,将选择的路径的路径标识发送至所述第一网络设备,以使第一网络设备在所述指定业务的数据流中添加所述选择的路径的路径标识。
[0015] 由以上技术方案可以看出,本发明中,提前将数据流从第一网络设备发送至第二网络设备的所有路径的转发信息下发至路径上除第二网络设备之外的网络设备(这相当于在第一网络设备之间第二网络设备铺好用于传输指定业务的数据流的路径),如此,即使后续传输所述数据流的路径发生调整,SDN控制器也无需再下发调整后的路径对应的转发信息,提高路径调整效率。

附图说明

[0016] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0017] 图1为本申请提供的方法流程图;
[0018] 图2为本申请提供的实施组网示意图;
[0019] 图3为本申请提供的实施例应用的行业纵向组网图;
[0020] 图4为本申请提供的路径优化流程图;
[0021] 图5为本申请提供的装置结构示意图;
[0022] 图6为本申请提供的图5所示装置的硬件结构示意图。

具体实施方式

[0023] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0024] 参见图1,图1为本发明提供的方法流程图。该流程应用于SDN控制器。如图1所示,该流程可包括以下步骤:
[0025] 步骤101,SDN控制器确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径。
[0026] 在本申请中,作为一个实施例,第一网络设备、第二网络设备是由SDN控制器基于指定业务的网络范围确定出的起止调度业务对象。这里的指定业务可为不同类型的各业务,比如视频业务、办公业务等。
[0027] 如图2所示组网,存在节点1至节点6共6个节点,视频业务的网络范围为:应用在节点1至节点3之间。以指定业务为视频业务为例,SDN控制器依据定义的视频业务的网络范围确定出节点1、节点3为进行视频业务调度的起止调度业务对象,其中,节点1为起始调度业务对象,即上述的第一网络设备,节点3为终止调度业务对象,即上述的第二网络设备。
[0028] 作为一个实施例,上述指定业务的网络范围是基于组网中的网络拓扑定义的。这里的网络拓扑可基于边界网关协议链路状态(BGP-LS:BorderGateway Protocol Link State)动态收集,也可由用户手工添加,本申请并不具体限定。
[0029] 当确定完用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径后,在本申请中,第一网络设备至第二网络设备之间的其他业务均可以共享该确定出的多条路径。
[0030] 在本申请中,作为一个实施例,不管是路径还是业务,均可通过差分服务代码点(DSCP:Differentiated Services Code Point)进行区分。然而,DSCP的个数是有限的,比如只有1至47、49至63共62个数值可以使用,这就需要限制上述步骤101确定出的用于将指定业务的数据流从第一网络设备发送至第二网络设备的路径数量N,以及限制第一网络设备与第二网络设备之间的业务数量T。作为一个实施例,上述N大于1且小于等于预设路径最大数M,M为规划出的从第一网络设备至第二网络设备的最大路径数量,T大于或等于1且小于等于预设业务最大数S。其中,S、M满足以下条件:DSCP个数=S*(M+1)。
[0031] 基于上述的M,则步骤101中,确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径可包括:计算从第一网络设备至第二网络设备的路径;若计算出的路径的条数小于或等于M,则将计算出的所有路径确定为用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;若计算出的路径的条数大于M,则按照路径代价从低至高的顺序对计算出的路径排序,从序列中选择出前M条路径确定为用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径。最终,确定出的用于将指定业务的数据流从第一网络设备发送至第二网络设备的路径数量不超过M。
[0032] 步骤102,SDN控制器为步骤101确定出的多条路径中的每条路径分配路径标识。
[0033] 在本申请中,为每条路径分配的路径标识唯一对应该路径及所述指定业务。这里的路径标识为DSCP中的数值,下文会举例描述,这里暂不描述。
[0034] 步骤103,SDN控制器针对步骤101确定出的多条路径中的每条路径,向该路径上除第二网络设备之外的网络设备下发转发信息。
[0035] 在本申请中,转发信息用于指示将携带该路径的路径标识的数据流转发至接收该转发信息的网络设备在该路径上的下一跳,转发信息至少携带:路径标识、路径下一跳。
[0036] 步骤104,SDN控制器根据预设规则从步骤101确定出的多条路径中选择一条路径,将选择的路径的路径标识发送至第一网络设备,以使第一网络设备在指定业务的数据流中添加选择的路径的路径标识。
[0037] 当第一网络设备收到指定业务的数据流,在指定业务的数据流上增加该收到的路径标识,并通过之前收到的转发信息(第一网络设备在收到的上述路径标识对应的路径上的转发信息转发给下一跳(第一网络设备在收到的上述路径标识对应的路径上的下一跳)。当第一网络设备在收到的上述路径标识对应的路径上的下一跳收到数据流时,依据数据流携带的路径标识选择对应的转发信息转发,最终使得指定业务的数据流沿着收到的路径标识所对应的路径转发。
[0038] 至此,完成图1所示的流程。
[0039] 通过图1所示流程可以看出,本申请中,在第一网络设备调度指定业务的数据流至第二网络设备之前,SDN控制器提前将用于发送指定业务数据流的每一路径的转发信息下发至该路径上除第二网络设备之外的网络设备,这相当于先在第一网络设备与第二网络设备之间提前铺好用于发送指定业务数据流的所有路径,不用等到后续指定业务数据流的发送路径发生调整时再下发调整后的路径的转发信息,提高路径调整效率。
[0040] 进一步地,在本申请中,上述步骤101确定出的用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径是公有路径,可被其他任意两个网络设备之间的业务共享,这能简化路径资源消耗。
[0041] 作为一个实施例,在本申请中,为了保证指定业务的数据流始终沿着最优的路径转发,本申请中,需要实时监测为指定业务的数据流选择的路径(也称为指定业务数据流的当前路径),一旦监测到指定业务数据流的当前路径满足路径调整条件,则需要更新指定业务数据流的当前路径。这里的满足路径调整条件包括:指定业务数据流的当前路径的路径质量未满足指定业务对应的路径约束条件,和/或,指定业务数据流的当前路径中包含故障(down)链路。这里,指定业务对应的路径约束条件是根据业务需求自定义的,比如为路径延时时间、路径丢包率、路径带宽大小等。
[0042] 具体地,SDN控制器在检测到指定业务数据流的当前路径满足路径调整条件时,则意味着指定业务数据流的当前路径不再适宜继续转发指定业务的数据流,也不会再是上述步骤101确定出的多条路径中最优的路径,基于此,为了保证指定业务的数据流始终按照最优的路径转发,则SDN控制器根据预设规则从上述步骤101确定出的多条路径中重新选择一条路径并通知该重新选择的路径的路径标识给第一网络设备,以使第一网络设备在指定业务的数据流中添加重新选择的路径的路径标识,这也意味着指定业务数据流的当前路径变为上述重新选择的路径,实现了指定业务的数据流始终按照最优的路径转发。
[0043] 在本申请中,SDN控制器将根据预设规则从上述步骤101确定出的多条路径中重新选择一条路径并通知给第一网络设备,相当于指定业务数据流的路径调整,但因为之前已向上述多条路径中的每条路径上除第二网络设备之外的网络设备下发转发信息,如此,即使路径调整,也不需要将重新选择的路径的转发信息下发,这大大提高了路径调整效率。
[0044] 下面通过以下实施例对本申请提供的图1所示方法进行描述:
[0045] 参见图3,图3为本申请提供的实施例应用的行业纵向组网图。在图3所示的行业纵向组网中,假如SDN控制器根据预定义的业务网络范围生成的起始调度业务对象为图3中的节点3_A、终止调度业务对象为节点3_C。其中,行业纵向组网中的业务网络范围可依据基于整个行业纵向组网的网络拓扑或预先配置的网络拓扑定义。这里的网络拓扑包括:节点信息(厂商、版本、以及接口信息等),链路信息(包括节点之间的连接关系)、链路可分配带宽以及动态链路属性比如延时、丢包率、实时带宽等。
[0046] SDN控制器在节点3_A与节点3_C之间建立双向隧道。建立的双向隧道举例为GRE隧道。双向隧道的隧道源地址为节点3_A的环回(LoopBack)口地址,隧道目的地址为节点3_C的LoopBack口地址。本实施例以节点3_A与节点3_C之间建立的双向隧道为GRE隧道为例,GRE隧道的隧道源地址为节点3_A的LoopBack口地址1.1.1.1,隧道目的地址为节点3_C的LoopBack口地址1.1.1.3。需要说明的是,若节点3_A与节点3_C之间已建立了GRE隧道,则此步骤可省略。
[0047] 作为一个实施例,为了保证节点3_A到节点3_C的所有业务都优先通过GRE隧道转发,则在节点3_A与节点3_C之间建立GRE隧道后,节点3_C可将本地私网路由通过边界网关协议(BGP:Border Gateway Protocol)发布到GRE隧道,以实现节点3_A到节点3_C的所有业务都优先通过GRE隧道转发。
[0048] SDN控制器检查到还未规划从节点3_A至节点3_C的路径,则确定出从节点3_A发送至节点3_C的路径。确定出的路径尽量不重复、路径代价(cost)最低且数量小于预设路径最大数M的调度路径。作为一个实施例,这里的M取值为5。
[0049] 基于图3所示的组网,假如SDN控制器确定出从节点3_A发送至节点3_C的路径为:
[0050] 路径1:节点3_A->节点3_C cost为1,跳数为1;
[0051] 路径2:节点3_A->节点3_B->节点3_D->节点3_C,cost为3,跳数为3;
[0052] 路径3:节点3_A->节点3_E->节点3_F->节点3_B->节点3_D->节点3_C,cost为5,跳数为5。
[0053] SDN控制器在确定出用于从节点3_A发送至节点3_C的路径后,针对每一路径,确定节点3_A到节点3_C之间的每一业务应用至该路径的DSCP。
[0054] 假如节点3_A到节点3_C之间存在的业务数量是5(小于预设业务最大数S),该5个业务以及上述确定出的从节点3_A发送至节点3_C的路径的DSCP规划如表1所示:
[0055]
[0056] 表1
[0057] 举例描述表1中的数字,以数字“1”为例,在表1中,数字“1”为DSCP资源中的数值,表示为业务1的标识。再以数字“2”为例,在表1中,数字“2”为DSCP资源中的数值,与业务1和路径1均对应,具体为业务1应用至路径1的路径标识。表1中其他数字的意义类似,不再一一举例。
[0058] 以表1所示的业务1为例,其他业务类似,则SDN控制器针对每一路径,向该路径上除节点3_C之外的节点(节点3_A、该路径上介于节点3_A到节点3_C之间的中间节点)下发转发信息。
[0059] 以路径1为例,如上描述的路径1为:节点3_A->节点3_C,则SDN控制器向节点3_A下发路径1的转发信息。节点3_A为路径1的首跳节点,作为一个实施例,SDN控制器向节点3_A下发的转发信息举例可为全局基于策略的路由(PBR:Policy-Based Routing),具体包括:上述GRE隧道的源地址、目的地址、对应业务1的路径1的标识即(DSCP为2)、下一跳(具体为节点3_C)。
[0060] 再以路径2为例,如上描述的路径2为:节点3_A->节点3_B->节点3_D->节点3_C,则SDN控制器向节点3_A、向节点3_B、节点3_D下发转发信息。节点3_A为路径2上的首跳节点,作为一个实施例,SDN控制器向节点3_A下发的转发信息举例可为全局PBR,具体包括:上述GRE隧道的源地址、目的地址、对应业务1的路径2的标识即(DSCP为3)、下一跳(具体为节点3_B)。节点3_B为路径2上的非首跳节点,作为一个实施例,SDN控制器向节点3_B下发的转发信息可为基于入接口的PBR,具体包括:上述GRE隧道的源地址、目的地址、对应业务1的路径
2的标识即(DSCP为3)、下一跳(具体为节点3_D)。节点3_D也为路径2上的非首跳节点,作为一个实施例,SDN控制器向节点3_D下发的转发信息可为基于入接口的PBR,具体包括:上述GRE隧道的源地址、目的地址、对应业务1的路径2的标识即(DSCP为3)、下一跳(具体为节点
3_C)。路径为路径3的情况类似调度路径,不再赘述。
[0061] 需要说明的是,假如SDN控制器检查出节点3_A与节点3_C之间已规划调度路径,则上述确定调度路径、下发转发信息的步骤可省略。
[0062] 仍以表1所示的业务1为例,SDN控制器从上述三个路径即路径1、路径2、路径3中选出最优的一条路径,这里的最优是指路径质量、路径带宽、路径cost等路径参数最优。
[0063] 假如SDN控制器选择出路径1最优,则SDN控制器发送通知消息(记为消息a)给节点3_A。该消息a携带业务1选用的路径1的DSCP即2,用于指示业务1选用路径1作为可用业务路径。
[0064] 节点3_A接收SDN控制器发送的消息a,保存消息a携带的DSCP即2。
[0065] 节点3_A后续收到业务1的数据流时,识别收到的数据流为业务1的数据流,则在数据流上封装GRE隧道头,GRE隧道头中的隧道源地址字段为上述GRE隧道的源地址,隧道目的地址字段为上述GRE隧道的目的地址。GRE隧道头中的DSCP字段为:上述消息a携带的DSCP即2。作为一个实施例,节点3_A识别收到的数据流为业务1的数据流具体为:识别数据流的原始特征比如业务对应的端口号等,从预先定义出的数据流原始特征与业务之间的对应关系中找到包含该识别出的原始特征的对应关系,若该找到的对应关系中的业务标识为业务1的标识,则确定收到的数据流为业务1的数据流。
[0066] 节点3_A将封装了GRE隧道头的数据流通过DSCP为2时对应的路径即路径1转发。
[0067] 节点3_C接收数据流,依据数据流的GRE隧道头中的隧道源地址和目的地址对数据流进行GRE隧道头解封装并转发。
[0068] 在实际应用中,即使之前路径1在被选为业务1的可用业务路径时是最优的,但随着路径1传输数据流的增多,路径1的链路质量也会发生变化,基于此,本申请中,SDN控制器会实时监控路径1的链路质量,一旦检测到路径1的链路质量低劣,达到需要调整的路径调整条件,这里的路径调整条件如上所述,则基于当前各调度路径即路径1、路径2、路径3的链路质量重新选出最优的一条路径。
[0069] 假如SDN控制器选择出路径2最优,则SDN控制器发送通知消息(记为消息b)给节点3_A。该消息b携带业务1选用的路径2的DSCP即3,用于指示之前为业务1选用的路径1需更新为路径2。基于SDN控制器提前将业务1应用的所有路径的转发信息下发的前提,此时即使进行路径调整,SDN控制器只需通知节点3_A将之前为业务1选择的路径1更新为路径2即可,并不下发路径2的转发信息,大大提高了路径调整效率。
[0070] 节点3_A接收SDN控制器发送的消息b,保存消息b携带的DSCP即3。
[0071] 节点3_A后续收到业务1的数据流时,识别收到的数据流为业务1的数据流,则在数据流上封装GRE隧道头,GRE隧道头中的隧道源地址字段为上述GRE隧道的源地址,隧道目的地址字段为上述GRE隧道的目的地址。GRE隧道头中的DSCP字段为上述消息b携带的DSCP即3。
[0072] 节点3_A将封装了GRE隧道头的数据流通过DSCP为3时对应的路径即路径2转发。
[0073] 节点3_B接收到数据流,识别数据流的GRE隧道头中DSCP字段,发现DSCP为3,从之前已收到的所有转发信息中找到包含DSCP为3的转发信息,通过找到的转发信息中的下一跳转发。
[0074] 节点3_D与节点3_B类似,当接收到数据流时,识别数据流的GRE隧道头中DSCP字段,发现DSCP为3,从之前已收到的所有转发信息中找到包含DSCP为3的转发信息,通过找到的转发信息中的下一跳转发。
[0075] 节点3_C接收数据流,依据数据流的GRE隧道头中的隧道源地址和目的地址对数据流进行GRE隧道头解封装并转发。
[0076] 需要说明的是,在本实施例中,当SDN控制器为业务1选择路径后,为方便对业务1的流量采集,可在为业务1选择的路径上指定采集出端口,下发流量采集策略(匹配规则为GRE隧道源地址、GRE隧道目的地址、DSCP)给该指定采集出端口,在指定采集出端口上采集业务1的流量作为流量调度的依据。作为一个实施例,指定采集出端口可为:为业务1选择的路径上除节点3_C之外各个节点转发业务1数据流的出端口。
[0077] 以上对本申请提供的实施例进行了描述。
[0078] 需要说明的是,作为一个实施例,SDN控制器在确定出用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径后,可将确定出的多条路径记录至路径规划列表。
[0079] SDN控制器实时监测路径优化条件,这里的路径优化条件具体实现时可为网络拓扑发生变化比如新增up的链路或链路down、且该变化导致之前确定出的用于将指定业务的数据流从第一网络设备发送至第二网络设备的路径发生变化。
[0080] 当SDN监测到路径优化条件满足时,则对路径规划列表记录的路径进行路径优化。作为一个实施例,这里的路径优化至少包括:在路径规划列表中新增路径、从路径规划列表中删除路径。图4具体示出了如何对路径规划列表进行调度路径的优化。
[0081] 参见图4,图4为本申请提供的调度路径优化流程图。如图4所示,该流程可包括以下步骤:
[0082] 步骤401,SDN控制器从路径规划列表中删除故障(down)的路径。
[0083] 步骤402,SDN控制器计算第一网络设备与第二网络设备之间的路径,将计算的路径记录至候选路径列表。
[0084] 作为一个实施例,SDN控制器若计算出的路径的条数小于或等于M,则将计算出的各路径作为候选调度路径记录至候选路径列表,若计算出的路径的条数大于M,则按照路径代价从低至高的顺序对计算出的路径排序,从序列中选择出前M条路径作为候选调度路径记录至候选路径列表。最终,候选路径列表记录的路径数量不超过M。
[0085] 步骤403,SDN控制器从候选路径列表中删除记录在所述路径规划列表中的路径,若候选路径列表删除记录在所述路径规划列表中的路径后不为空,则利用候选路径列表中的路径对所述路径规划列表中的路径进行路径优化。
[0086] 至于如何利用候选路径列表中的路径对路径规划列表中的路径进行路径优化,具体为:
[0087] 步骤a1,比较候选路径列表中的路径数量K与H,H为M与路径规划列表中路径数量L之间的差值,若K小于或等于H,执行步骤a2,若K大于H,执行步骤a3。
[0088] 步骤a2,将候选路径列表中所有路径添加至所述路径规划列表。结束路径优化。
[0089] 步骤a3,按照路径代价从低至高的原则从候选路径列表中提取H条路径并添加至路径规划列表,从候选路径列表中删除上述H条路径,将删除H条路径后的候选路径列表中的第一指定路径替换路径规划列表中第二指定路径,其中,第一指定路径的路径代价小于第二指定路径的路径代价。
[0090] 作为一个实施例,这里,将删除H条路径后的候选路径列表中的第一指定路径替换路径规划列表中第二指定路径包括:
[0091] 比较候选路径列表中路径代价最低的路径与所述路径规划列表中路径代价最高的路径,
[0092] 如果前者的路径代价大于后者的路径代价,结束路径优化,
[0093] 如果前者的路径代价小于后者的路径代价,则将所述路径规划列表中路径代价最高的业务路径替换为所述候选路径列表中路径代价最低的业务路径,并从候选路径列表中删除所述路径代价最低的业务路径,若候选路径列表删除上述路径代价最低的路径后不为空,则返回比较所述候选路径列表中路径代价最低的业务路径与所述路径规划列表中路径代价最高的业务路径的步骤。
[0094] 至此,完成图4所示的流程。
[0095] 通过图4所示流程中步骤401至步骤403,完成调度路径的优化。
[0096] 最终,路径规划列表中记录的路径相比于优化之前记录的路径会发生以下变化:
[0097] 路径规划列表新增加了一些优化的调度路径(记为第一类调度路径);
[0098] 路径规划列表原来记录的调度路径因为优化而被删除(记为第二类调度路径)。
[0099] 对于以上两类调度路径,本申请还提供了对应的解决方法,具体为:
[0100] 对于第一类调度路径,则向第一类调度路径上除第二网络设备之外的网络设备下发转发信息,以保证第一类调度路径及时正常转发指定业务。
[0101] 对于第二类调度路径,则通知第二类调度路径上除第二网络设备之外的网络设备删除第二类调度路径的转发信息,以使各调度对象及时删除冗余的转发信息。作为一个实施例,在本申请中,一般都是先向第一类调度路径上除第二网络设备之外的网络设备下发转发信息,之后才通知第二类调度路径除第二网络设备之外的网络设备删除第二类调度路径的转发信息,其目的是防止数据流传输中断。
[0102] 至此,完成本发明提供的方法描述。
[0103] 下面对本发明提供的装置进行描述:
[0104] 参见图5,图5为本申请提供的装置结构图。该装置应用于SDN控制器,包括:
[0105] 路径确定模块501,确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;
[0106] 转发信息配置模块502,用于为所述多条路径中的每条路径分配路径标识,并针对所述多条路径中的每条路径,向该路径上除所述第二网络设备之外的网络设备下发转发信息,所述为每条路径分配的路径标识唯一对应该路径及所述指定业务,所述转发信息用于指示将携带该路径的路径标识的数据流转发至接收该转发信息的网络设备在该路径上的下一跳;
[0107] 路径调整模块503,用于根据预设规则从所述多条路径中选择一条路径,将选择的路径的路径标识发送至所述第一网络设备,以使第一网络设备在所述指定业务的数据流中添加所述选择的路径的路径标识。
[0108] 作为一个实施例,所述路径确定模块501确定用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径包括:
[0109] 计算从第一网络设备至第二网络设备的路径;
[0110] 若计算出的路径的条数小于或等于M,则将计算出的所有路径确定为用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;
[0111] 若计算出的路径的条数大于M,则按照路径代价从低至高的顺序对计算出的路径排序,从序列中选择出前M条路径确定为用于将指定业务的数据流从第一网络设备发送至第二网络设备的多条路径;
[0112] 其中,所述M为所述第一网络设备至第二网络设备的最大路径数量。
[0113] 作为一个实施例,所述路径调整模块503进一步当检测到所述选择的路径满足路径调整条件时,根据预设规则从所述多条路径中重新选择一条路径并通知给所述第一网络设备,以使第一网络设备在所述指定业务的数据流中添加所述重新选择的路径的路径标识;
[0114] 其中,所述路径调整条件包括:路径质量未满足所述指定业务对应的路径约束条件,和/或,故障down链路。
[0115] 作为一个实施例,所述路径确定模块501进一步将所述多条路径记录至路径规划列表;
[0116] 所述路径调整模块503在满足路径优化条件时,对所述路径规划列表记录的路径进行路径优化,所述路径优化至少包括:在路径规划列表中新增路径、从路径规划列表中删除路径;针对所述路径规划列表新增的每一路径,向该路径上除所述第二网络设备之外的网络设备下发转发信息。
[0117] 所述路径调整模块503对路径规划列表记录的路径进行路径优化包括:
[0118] 从所述路径规划列表中删除故障down的路径;
[0119] 计算从第一网络设备发送至第二网络设备的路径,并将计算的路径记录至候选路径列表,从候选路径列表中删除记录在所述路径规划列表中的路径;
[0120] 若候选路径列表删除记录在所述路径规划列表中的路径后不为空,则利用候选路径列表中的路径对所述路径规划列表中的路径进行路径优化。
[0121] 作为一个实施例,所述路径调整模块503利用候选路径列表中的路径对路径规划列表中的路径进行路径优化包括:
[0122] 若所述候选路径列表中的路径数量K小于或等于H,所述H为M与所述路径规划列表中路径数量L之间的差值,则将所述候选路径列表中所有路径添加至所述路径规划列表;
[0123] 若所述K大于所述H,则按照路径代价从低至高的原则从所述候选路径列表中提取H条路径并添加至所述路径规划列表,并从所述候选路径列表中删除所述H条路径,将删除H条路径后的候选路径列表中的第一指定路径替换路径规划列表中第二指定路径,其中,第一指定路径的路径代价小于第二指定路径的路径代价。
[0124] 至此,完成本发明提供的装置结构图。
[0125] 相应地,本申请还提供了对应图5所示装置的硬件结构图。如图6所示,其可包括:机器可读存储介质601、处理器602;机器可读存储介质601、处理器602可经由系统总线通信
603。
[0126] 其中,机器可读存储介质601,用于存储上述路径确定模块501、转发信息配置模块502、路径调整模块503所执行的操作对应的机器可执行指令;
[0127] 处理器602,用于加载并执行机器可执行指令,以实现上述的业务调度方法。
[0128] 作为一个实施例,机器可读存储介质601可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0129] 至此,完成图6所示的硬件结构描述。
[0130] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。