1.本发明实施例涉及但不限于通信技术领域,尤其涉及一种路径确定方法、网元及计算机可读存储介质。
背景技术:2.5g网络切片(slice)对承载网的核心需求,就是不同的网络切片需要有其专属的承载子网络,为了支持5g网络切片的需求,现有的方式是采用内部网关协议(interior gateway protocol,igp)灵活算法(flex algorithm,fa)技术,在同一拓扑内运行多种igp算法而计算得到多种fa平面,每个fa平面可表示一张网络切片,可将不同的上层业务流量承载在不同的fa平面上。
3.当前的igp fa技术可支持在转发平面实现不同算法(algorithm)的不同服务质量(quality of service,qos)策略,例如包括不同的带宽、流量服务等级、队列调度策略、丢弃策略等。但是,igp fa技术所支持的上述能力,仅是一个节点内部的转发平面的本地行为,当前的igp fa技术并不支持基于带宽资源预留的路径选择,因此无法针对整个网络切片内的业务流量进行路径编排以避免不必要的流量拥塞。
技术实现要素:4.以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
5.本发明实施例提供了一种路径确定方法、网元及计算机可读存储介质,能够实现基于带宽资源预留的路径选择,从而能够针对整个网络切片内的业务流量进行路径编排以避免不必要的流量拥塞。
6.第一方面,本发明实施例提供了一种路径确定方法,应用于网元,所述方法包括:
7.获取网络切片内所有物理链路的链路带宽数据,所述链路带宽数据与所述网络切片相对应,所述网络切片由内部网关协议灵活算法创建得到;
8.获取所述网络切片内的传输通道的需求带宽;
9.根据所述链路带宽数据和所述需求带宽在所有所述物理链路中确定所述传输通道的路径。
10.第二方面,本发明实施例还提供了一种网元,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面所述的路径确定方法。
11.第三方面,本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上所述的路径确定方法。
12.本发明实施例包括:获取网络切片内所有物理链路的链路带宽数据,其中链路带宽数据与网络切片相对应,网络切片由内部网关协议灵活算法创建得到;获取网络切片内的传输通道的需求带宽;根据链路带宽数据和需求带宽在所有物理链路中确定传输通道的
路径。根据本发明实施例提供的方案,根据网络切片内的传输通道所需要的需求带宽,以及该网络切片内所有物理链路的链路带宽数据,在所有物理链路中确定出满足该传输通道的路径,由于传输通道的路径是根据物理链路的链路带宽数据和该传输通道所需要的需求带宽而确定出的,即实现了基于带宽资源预留的路径选择,从而能够针对整个网络切片内的业务流量进行路径编排以避免不必要的流量拥塞。
13.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
14.附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
15.图1是本发明一个实施例提供的用于执行路径确定方法的网络拓扑的示意图;
16.图2是本发明一个实施例提供的路径确定方法的流程图;
17.图3是本发明另一实施例提供的路径确定方法中根据链路带宽数据和需求带宽确定传输通道的路径的具体流程图;
18.图4是本发明另一实施例提供的路径确定方法中根据链路带宽数据和需求带宽确定传输通道的路径的具体流程图;
19.图5是本发明另一实施例提供的路径确定方法中获取最大预留带宽的具体流程图;
20.图6是本发明另一实施例提供的路径确定方法中获取已用链路带宽的具体流程图;
21.图7是本发明另一实施例提供的路径确定方法中获取可用链路带宽的具体流程图;
22.图8是本发明一个实施例提供的maximum reservable link bandwidth per algorithm sub-tlv的字段结构的示意图;
23.图9是本发明一个实施例提供的utilized link bandwidth per algorithm sub-tlv的字段结构的示意图;
24.图10本发明一个实施例提供的available link bandwidth per algorithm sub-tlv的字段结构的示意图;
25.图11是本发明一个具体示例提供的用于执行路径确定方法的网络拓扑的示意图。
具体实施方式
26.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
27.需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
28.本发明提供了一种路径确定方法、网元及计算机可读存储介质,通过获取网络切片内所有物理链路的链路带宽数据,以及获取网络切片内的传输通道所需要的需求带宽,然后根据该链路带宽数据和该需求带宽在所有物理链路中确定出满足该传输通道的路径,由于该传输通道的路径是根据物理链路的链路带宽数据和该传输通道的需求带宽而确定出的,因此实现了基于带宽资源预留的路径选择,从而能够针对整个网络切片内的业务流量进行路径编排以避免不必要的流量拥塞。
29.下面结合附图,对本发明实施例作进一步阐述。
30.如图1所示,图1是本发明一个实施例提供的用于执行路径确定方法的网络拓扑的示意图。在图1的示例中,该网络拓扑包括第一节点110、第二节点120、第三节点130和第四节点140。其中,第一节点110、第二节点120、第三节点130和第四节点140均归属于同一个网络切片,第一节点110和第二节点120之间、第二节点120和第三节点130之间、第三节点130和第四节点140之间、第一节点110和第四节点140之间、第二节点120和第四节点140之间,均连接有物理链路。第一节点110、第二节点120、第三节点130和第四节点140均可以是路由器或者交换机等网络设备,能够对报文进行转发。
31.另外,该网络拓扑中还可以包括有网络控制器(图1中未示出),例如软件定义网络(software defined network,sdn)控制器等,该网络控制器分别与第一节点110、第二节点120、第三节点130和第四节点140连接,能够分别对第一节点110、第二节点120、第三节点130和第四节点140进行控制。
32.在该网络切片中,网络控制器或者需要发送报文的首节点,能够根据该网络切片中的物理链路的链路带宽数据,以及用于传输报文的传输通道所需要的需求带宽,在该网络切片中确定从首节点至尾节点的报文转发路径。
33.本发明实施例描述的网络拓扑以及应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域技术人员可知,随着网络拓扑的演变和新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
34.本领域技术人员可以理解的是,图1中示出的拓扑结构并不构成对本发明实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
35.基于上述网络拓扑的结构,提出本发明的路径确定方法的各个实施例。
36.如图2所示,图2是本发明一个实施例提供的路径确定方法的流程图,该路径确定方法可以应用于网络中的网元,例如图1所示网络拓扑中的网络控制器或者需要发送报文的首节点(如第一节点110),该路径确定方法包括但不限于有步骤s100、步骤s200和步骤s300。
37.步骤s100,获取网络切片内所有物理链路的链路带宽数据,链路带宽数据与网络切片相对应。
38.需要说明的是,该网络切片为由内部网关协议灵活算法创建得到的网络切片。
39.需要说明的是,链路带宽数据可以包括最大预留带宽、已用链路带宽、可用链路带宽和已分配预留带宽中的一个或者多个,本实施例对此并不作具体限定。例如,链路带宽数据可以包括最大预留带宽和已分配预留带宽;又如,链路带宽数据可以为可用链路带宽。
40.最大预留带宽为物理链路为网络切片所分配的最大的可用额度带宽。例如,假设
物理链路的物理带宽为100g,则可以将该100g物理带宽中的20g分配给该网络切片,所以,专属于该网络切片的最大预留带宽为20g。网络控制器或者需要发送报文的首节点可以在对物理链路进行带宽规划的过程中获取该最大预留带宽。
41.已用链路带宽为最大预留带宽中已被使用的链路带宽。已用链路带宽会跟随网络中业务流量的变化而动态变化,并且已用链路带宽不大于与其对应的最大预留带宽。例如,假设某一物理链路为某一网络切片分配的最大预留带宽为20g,当该物理链路运行流量后,检测到该物理链路运行的流量中有1g带宽是归属于该网络切片的,即可以确定对应于该网络切片的已用链路带宽为1g。网络控制器或者需要发送报文的首节点,可以将经过物理链路的与相应网络切片对应的流量带宽作为该已用链路带宽,其中,该流量带宽可以从网络中通过实时测量而得到。
42.可用链路带宽为最大预留带宽中剩余下的可用的链路带宽,可用链路带宽可根据最大预留带宽与已用链路带宽的差值而得到,可用链路带宽会跟随已用链路带宽的变化而动态变化。例如,假设某一物理链路为某一网络切片分配的最大预留带宽为20g,当该物理链路运行流量后,检测到该物理链路运行的流量中有1g带宽是归属于该网络切片的,即可以确定对应于该网络切片的可用链路带宽为19g。网络控制器或者需要发送报文的首节点,可以从网络中获取到物理链路的与相应网络切片对应的可用链路带宽。
43.已分配预留带宽为物理链路在最大预留带宽中为网络切片中的传输通道所分配的静态预留带宽之和。已分配预留带宽不大于与其对应的最大预留带宽。例如,假设某一物理链路为某一网络切片分配的最大预留带宽为20g,并且在该网络切片中建立有一条支持2g带宽的第一传输通道和一条支持4g带宽的第二传输通道,该第一传输通道和该第二传输通道均经过该物理链路,为了保证这些传输通道中数据的有效传输,可以将该20g最大预留带宽中的2g分配给该第一传输通道,并将该20g最大预留带宽中的4g分配给该第二传输通道,因此,该物理链路的已分配预留带宽为6g。需要说明的是,已分配预留带宽与物理链路的运行流量并没有关系,无论物理链路是否运行流量,都不会改变已分配预留带宽。网络控制器或者需要发送报文的首节点可以在进行传输路径规划的过程中获取该已分配预留带宽。
44.步骤s200,获取网络切片内的传输通道的需求带宽。
45.需要说明的是,传输通道是报文从首节点传输至尾节点的一个传输路径。网络控制器或者需要发送报文的首节点可以在建立传输通道之前先确定该传输通道的需求带宽,例如,可以在根据报文转发策略计算传输通道的过程中,获取该传输通道的需求带宽。传输通道可以为流量工程路径(traffic engineering path,te path)或最短路径(shortest path)等,本实施例对此并不作具体限定。
46.传输通道的需求带宽,是指传输通道所需要支持的流量带宽,属于一种规划指标。
47.步骤s300,根据链路带宽数据和需求带宽在所有物理链路中确定传输通道的路径。
48.本步骤中,由于在步骤s100中获取了网络切片内的所有物理链路的链路带宽数据,并且在步骤s200中获取了网络切片内的传输通道的需求带宽,因此可以根据该链路带宽数据和该需求带宽在所有物理链路中确定该传输通道的路径。由于需求带宽是传输通道所需要的用于传输数据报文的带宽要求,因此,满足需求带宽的链路带宽数据所对应的物
理链路,可以作为该传输通道所经过的路径,所以,根据链路带宽数据和需求带宽即可在所有物理链路中确定出传输通道的路径。例如,假设获取到的某一物理链路的链路带宽数据为10g,而获取到的传输通道的需求带宽为5g,即该物理链路的链路带宽数据满足该传输通道的需求带宽,因此该传输通道的路径可以包括该物理链路。
49.通过采用包括有上述步骤s100、步骤s200和步骤s300的路径确定方法,使得在获取到网络切片内所有物理链路的链路带宽数据以及网络切片内的传输通道所需要的需求带宽之后,可以根据该链路带宽数据和该需求带宽在所有物理链路中确定出满足该传输通道的路径,由于该传输通道的路径是根据物理链路的链路带宽数据和该传输通道的需求带宽而确定出的,因此实现了基于带宽资源预留的路径选择,从而能够针对整个网络切片内的业务流量进行路径编排以避免不必要的流量拥塞。
50.在一实施例中,在链路带宽数据包括最大预留带宽和已分配预留带宽的情况下,如图3所示,步骤s300可以包括但不限于有以下步骤:
51.步骤s310,根据最大预留带宽和已分配预留带宽的差值得到可分配预留带宽;
52.步骤s320,根据可分配预留带宽在所有物理链路中确定待选链路,其中,待选链路为可分配预留带宽大于等于需求带宽的物理链路;
53.步骤s330,从待选链路中确定传输通道的路径。
54.需要说明的是,本实施例中的步骤s310至步骤s330可由网络控制器执行。当网络控制器获取到网络切片内所有物理链路的最大预留带宽和该网络切片内的传输通道的需求带宽之后,网络控制器可以集中统一的维护网络切片内的物理链路的带宽资源预留情况,从而能够为网络切片内的传输通道选择相应的链路资源。其中,物理链路的最大预留带宽可通过标准rfc7752中定义的边界网关协议链路状态(bordergateway protocol link state,bgp-ls)协议而获取得到。
55.为了使某条物理链路的最大预留带宽对应的带宽资源能够专属于相应网络切片内的所有业务流量,网络控制器可以利用最大预留带宽和已分配预留带宽维护网络切片内的物理链路的带宽资源预留情况。具体地,网络控制器可以先根据最大预留带宽和已分配预留带宽的差值得到可分配预留带宽,然后在所有物理链路中确定可分配预留带宽大于等于需求带宽的物理链路作为待选链路,接着从这些待选链路中选择合适的物理链路,从而确定传输通道的路径,使得所有经过该物理链路的传输通道所分配得到的静态预留带宽之和(即当前的已分配预留带宽),不会超过该物理链路的最大预留带宽。即是说,当网络控制器需要计算属于特定网络切片内的经过某条物理链路的传输通道时,可以在该物理链路的最大预留带宽所表示的最大可预留带宽资源的范围内进行带宽的静态预留,使得在进行带宽的静态预留之后所剩余的可分配预留带宽不小于0即可。
56.以一个具体例子进行说明,假设某一网络切片内的某条物理链路(记为link-1)的最大预留带宽为10g,当需要在该网络切片内部署一条传输通道(记为te-path-1),并且该传输通道的需求带宽(记为rlb@te-path-1)为1g,此时,网络控制器根据每一条物理链路的最大预留带宽和已分配预留带宽的差值,分别计算得到每一条物理链路的可分配预留带宽,其中,网络控制器根据link-1的最大预留带宽(即10g)和已分配预留带宽(假设初始为0,即还没有为任何传输通道分配静态预留带宽)的差值,计算得到link-1的可分配预留带宽为10g,经判断,确定link-1的可分配预留带宽(即10g)大于te-path-1的需求带宽(即
1g),因此,确定link-1为待选链路,然后结合链路优先级或者最短路径等要求,确定link-1可以作为te-path-1的路径,即网络控制器选择让te-path-1经过link-1,此时,网络控制器可以维护以下信息:
[0057]“link-1的最大预留带宽为10g,其中rlb@te-path-1预留1g,剩余9g可分配预留带宽”。
[0058]
接着,当需要在该网络切片内部署另一条传输通道(记为te-path-2),并且该传输通道的需求带宽(记为rlb@te-path-2)为2g,此时,网络控制器根据每一条物理链路的最大预留带宽和已分配预留带宽的差值,分别计算得到每一条物理链路的可分配预留带宽,其中,网络控制器根据link-1的最大预留带宽(即10g)和已分配预留带宽(rlb@te-path-1预留了1g)的差值,计算得到link-1的可分配预留带宽为9g,经判断,确定link-1的可分配预留带宽(即9g)大于te-path-2的需求带宽(即2g),因此,确定link-1为待选链路,然后结合链路优先级或者最短路径等要求,确定link-1可以作为te-path-2的路径,即网络控制器选择让te-path-2经过link-1,此时,网络控制器可以维护以下信息:
[0059]“link-1的最大预留带宽为10g,其中rlb@te-path-1预留1g,rlb@te-path-2预留2g,剩余7g可分配预留带宽”。
[0060]
网络控制器针对网络切片内的每一条物理链路均维护与上述类似的信息,并基于上述信息判断一条物理链路是否能够被包含在一条传输通道中,即判断物理链路的可分配预留带宽是否大于等于该传输通道的需求带宽,如果不满足该判断条件,则该传输通道不能经过该物理链路。
[0061]
值得注意的是,当物理链路是捆绑链路时,网络控制器同样可根据上述判断条件判断一条传输通道能否经过一条捆绑链路,即,判断网络切片内经过该捆绑链路的所有传输通道的静态预留带宽之和(即已分配预留带宽)没有超过该捆绑链路的最大预留带宽,如果满足该判断条件,则网络控制器可以进一步选择是将该捆绑链路自身包含在该传输通道中,还是将该捆绑链路中的某个二层成员链路包含在该传输通道中。例如,假设捆绑链路的最大预留带宽为10g,该捆绑链路包含有两个二层成员链路,并且这两个二层成员链路的最大预留带宽均为5g,那么,如果传输通道的需求带宽为10g,则在这种情况下,需要将捆绑链路自身包含在该传输通道中,沿该传输通道转发的业务流量在该捆绑链路中将实现负荷分担;如果传输通道的需求带宽为5g,则可选择任意一个二层成员链路包含在该传输通道中,沿该传输通道转发的业务流量将会沿所选择的二层成员链路转发。
[0062]
在一实施例中,在链路带宽数据包括可用链路带宽的情况下,如图4所示,步骤s300可以包括但不限于有以下步骤:
[0063]
步骤s340,根据可用链路带宽在所有物理链路中确定待选链路,其中,待选链路为可用链路带宽大于等于需求带宽的物理链路;
[0064]
步骤s350,从待选链路中确定传输通道的路径。
[0065]
需要说明的是,本实施例中的步骤s340至步骤s350可由网络控制器或者需要发送报文的首节点执行。当网络控制器或首节点获取到网络切片内所有物理链路的可用链路带宽之后,网络控制器或首节点可以维护网络切片内的物理链路的带宽资源预留情况,从而能够为网络切片内的传输通道选择相应的链路资源。当网络切片内建立有传输通道,并且该传输通道经过某一物理链路时,该传输通道所承载的业务流量会使得该物理链路的可用
链路带宽发生变化,从而会影响针对经过该物理链路的其他传输通道的路径计算,因此可以根据物理链路的可用链路带宽和传输通道的需求带宽确定传输通道的路径。
[0066]
为了使某条物理链路的最大预留带宽对应的带宽资源能够专属于相应网络切片内的所有业务流量,网络控制器或首节点可以利用可用链路带宽维护网络切片内的物理链路的带宽资源预留情况。具体地,网络控制器或首节点可以在所有物理链路中确定可用链路带宽大于等于需求带宽的物理链路作为待选链路,接着从这些待选链路中选择合适的物理链路,从而确定传输通道的路径,使得所有经过该物理链路的传输通道的需求带宽不会超过该物理链路的可用链路带宽。即是说,当网络控制器或首节点需要计算属于特定网络切片内的经过某条物理链路的传输通道时,可以根据传输通道的需求带宽选择可用链路带宽合适的物理链路,使得物理链路的可用链路带宽不小于传输通道的需求带宽即可。
[0067]
以一个具体例子进行说明,假设某一网络切片内的某条物理链路(记为link-10)的最大预留带宽为10g,当前该物理链路并没有运行流量,因此该物理链路的可用链路带宽为10g。当需要在该网络切片内部署一条传输通道(记为te-path-3),并且该传输通道的需求带宽(记为rlb@te-path-3)为3g,此时,网络控制器或首节点对物理链路进行判断,将可用链路带宽大于等于需求带宽的物理链路作为待选链路,其中,网络控制器或首节点在对link-10进行判断时,确定link-10的可用链路带宽(即10g)大于te-path-3的需求带宽(即3g),因此,确定link-10为待选链路,然后结合链路优先级或者最短路径等要求,确定link-10可以作为te-path-3的路径,即网络控制器或首节点选择让te-path-3经过link-10(此时te-path-3并没有运行流量),因此,网络控制器或首节点可以维护以下信息:
[0068]
网络控制器维护的信息为:“link-10的最大预留带宽为10g,其中rlb@te-path-3预留3g,剩余7g可分配预留带宽;已用链路带宽为0g,可用链路带宽为10g”。
[0069]
首节点的链路状态数据库中维护的信息为:“link-10的最大预留带宽为10g,已用链路带宽为0g,可用链路带宽为10g”。
[0070]
当te-path-3运行流量后,例如,te-path-3运行1g流量,网络控制器或首节点会检测到link-10的可用链路带宽发生了变化,此时,网络控制器或首节点会获取到新的可用链路带宽为9g,因此,网络控制器或首节点可以维护以下信息:
[0071]
网络控制器维护的信息为:“link-10的最大预留带宽为10g,其中rlb@te-path-3预留3g,剩余7g可分配预留带宽;已用链路带宽为1g,可用链路带宽为9g”。
[0072]
首节点的链路状态数据库中维护的信息为:“link-10的最大预留带宽为10g,已用链路带宽为1g,可用链路带宽为9g”。
[0073]
接着,当需要在该网络切片内部署另一条传输通道(记为te-path-4),并且该传输通道的需求带宽(记为rlb@te-path-4)为4g,此时,网络控制器或首节点对物理链路进行判断,将可用链路带宽大于等于需求带宽的物理链路作为待选链路,其中,网络控制器或首节点在对link-10进行判断时,确定link-10的可用链路带宽(即9g)大于te-path-4的需求带宽(即4g),因此,确定link-10为待选链路,然后结合链路优先级或者最短路径等要求,确定link-10可以作为te-path-4的路径,即网络控制器或首节点选择让te-path-4经过link-10(此时te-path-4并没有运行流量),因此,网络控制器或首节点可以维护以下信息:
[0074]
网络控制器维护的信息为:“link-10的最大预留带宽为10g,其中rlb@te-path-3预留3g,rlb@te-path-4预留4g,剩余3g可分配预留带宽;已用链路带宽为1g,可用链路带宽
为9g”。
[0075]
首节点的链路状态数据库中维护的信息为:“link-10的最大预留带宽为10g,已用链路带宽为1g,可用链路带宽为9g”。
[0076]
当te-path-4运行流量后,例如,te-path-4运行1g流量,网络控制器或首节点会检测到link-10的可用链路带宽发生了变化,此时,网络控制器或首节点会获取到新的可用链路带宽为8g,因此,网络控制器或首节点可以维护以下信息:
[0077]
网络控制器维护的信息为:“link-10的最大预留带宽为10g,其中rlb@te-path-3预留3g,rlb@te-path-4预留4g,剩余3g可分配预留带宽;已用链路带宽为2g,可用链路带宽为8g”。
[0078]
首节点的链路状态数据库中维护的信息为:“link-10的最大预留带宽为10g,已用链路带宽为2g,可用链路带宽为8g”。
[0079]
网络控制器或首节点针对网络切片内的物理链路维护与上述类似的信息,并基于上述信息判断一条物理链路是否能够被包含在一条传输通道中,即判断物理链路的可用链路带宽是否大于等于该传输通道的需求带宽,如果不满足该判断条件,则该传输通道不能经过该物理链路。
[0080]
值得注意的是,当物理链路是捆绑链路时,网络控制器或首节点同样可根据上述判断条件判断一条传输通道能否经过一条捆绑链路,即,判断该捆绑链路的可用链路带宽是否大于等于该传输通道的需求带宽,如果满足该判断条件,则网络控制器或首节点可以进一步选择是将该捆绑链路自身包含在该传输通道中,还是将该捆绑链路中的某个二层成员链路包含在该传输通道中。例如,假设捆绑链路的可用链路带宽为10g,该捆绑链路包含有两个二层成员链路,并且这两个二层成员链路的可用链路带宽均为5g,那么,如果传输通道的需求带宽为10g,则在这种情况下,需要将捆绑链路自身包含在该传输通道中,沿该传输通道转发的业务流量在该捆绑链路中将实现负荷分担;如果传输通道的需求带宽为5g,则可选择任意一个二层成员链路包含在该传输通道中,沿该传输通道转发的业务流量将会沿所选择的二层成员链路转发。
[0081]
在一实施例中,在确定传输通道的路径之后,该路径确定方法还可以包括但不限于有以下步骤:
[0082]
根据网络切片为路径配置服务质量策略。
[0083]
需要说明的是,网络中的每个节点都能够动态的感知哪些本地链路加入到了某个网络切片,并能够动态的激活这些本地链路上的与该网络切片对应的最大预留带宽的配置,或者,能够动态的感知哪些本地链路不再加入到某个网络切片,并能够动态的去激活这些本地链路上的与该网络切片对应的最大预留带宽的配置。
[0084]
当节点的某条本地链路上的与某个网络切片对应的最大预留带宽的配置被激活后,该节点可以配置与该本地链路绑定的并与该网络切片对应的服务质量策略(quality of service policy,qos policy),从而能够为该网络切片的流量提供带宽保证,并且不会侵占不属于该网络切片的带宽资源。需要说明的是,如果这条本地链路同时加入到多个网络切片,那么该节点可以配置多条与该本地链路绑定的qos policy,并且这些qos policy与这些网络切片一一对应,即配置每网络切片每qospolicy。
[0085]
需要说明的是,针对某一物理链路的与某一网络切片对应的qos policy,可以包
含有与该网络切片对应的在该物理链路上配置的最大预留带宽、流量服务等级、队列调度策略和丢弃策略等,其中,队列调度策略可以包括低延时队列(low latency queuing)、优先级队列(priority queuing)和加权公平队列(weighted fair queuing)等,丢弃策略可以包括尾部丢弃和随机丢弃等。
[0086]
需要说明的是,确定物理链路中的转发报文属于哪个网络切片,可以有多种不同的方式,例如,可以根据本地转发表项中给出的与该转发报文对应的algorithm值,确定该转发报文所属的网络切片,或者,可以根据该转发报文中显式携带的algorithm信息,确定该转发报文所属的网络切片。在确定了转发报文所对应的网络切片之后,即可为该网络切片配置与该网络切片相关的qospolicy。
[0087]
在一实施例中,在确定传输通道的路径之后,该路径确定方法还可以包括但不限于有以下步骤:
[0088]
根据网络切片对路径进行队列资源划分,得到与网络切片对应的资源子队列。
[0089]
需要说明的是,为了能够向特定的网络切片的流量提供带宽保证,可以将物理链路的队列资源按照该物理链路所加入的网络切片进行划分,从而为每个网络切片分配专属的资源子队列,因此,网络切片的流量将会使用专属于该网络切片的资源子队列,从而可以避免非相干的流量侵占该网络切片的带宽资源。
[0090]
需要说明的是,在一实施例中,该路径确定方法还可以同时包括有上述步骤“根据网络切片为路径配置服务质量策略”,以及上述步骤“根据网络切片对路径进行队列资源划分,得到与网络切片对应的资源子队列”。当路径确定方法同时包括有上述两个步骤时,该路径确定方法所能够带来的技术效果,可以分别参照针对上述两个步骤的具体说明,为了避免内容重复,此处不再赘述。
[0091]
在一实施例中,在确定传输通道的路径之后,该路径确定方法还可以包括但不限于有以下步骤:
[0092]
根据网络切片为路径配置流量整形器。
[0093]
需要说明的是,流量整形器用于限定路径的传输带宽不超过最大预留带宽。为了保证特定网络切片的流量不侵占不属于该网络切片的带宽资源,可以在物理链路上维护与该网络切片对应的流量整形器(traffic shaper),从而限定该物理链路上的流量转发的速率,使得该物理链路上的流量不超过相应的最大预留带宽。
[0094]
在一实施例中,在链路带宽数据包括最大预留带宽的情况下,如图5所示,步骤s100中的获取网络切片内所有物理链路的链路带宽数据,可以包括但不限于有以下步骤:
[0095]
步骤s110,根据网络切片配置并获取本地链路的最大预留带宽;
[0096]
步骤s120,获取网络切片内的其他网元所对应的物理链路的最大预留带宽。
[0097]
需要说明的是,当创建网络切片后,可为该网络切片中所包含的各条物理链路,分别配置专属于该网络切片的最大预留带宽。网络切片中包含有哪些物理链路资源,需要在网络中对该网络切片所对应的灵活算法定义(flexible algorithm definition,fad)通告完成以后,才能够获知,当fad的内容发生变化,网络切片内所包含的物理链路也可能会发生变化,因此,网络中的每个节点均会动态的感知哪些本地链路加入到了某个网络切片,并动态的激活这些本地链路上的与该网络切片对应的最大预留带宽的配置,或者,动态的感知哪些本地链路不再加入到某个网络切片,并动态的去激活这些本地链路上的与该网络切
片对应的最大预留带宽的配置。
[0098]
需要说明的是,对于归属于同一个网络切片的不同物理链路,所配置的最大预留带宽可以相同,也可以不同,可以根据实际情况进行适当的选择,本实施例对此并不作具体限定。
[0099]
需要说明的是,网络切片内的其他网元(如节点)所对应的物理链路的最大预留带宽,会由这些节点向其它邻居节点进行泛洪,因此,首节点能够获取到这些节点的本地链路的最大预留带宽,所以,结合首节点为其本地链路配置的最大预留带宽,该首节点所维护的链路状态数据库(link-state database)中将会包含有全网所有物理链路的最大预留带宽的信息。
[0100]
需要说明的是,对于本地链路是捆绑链路的情况,则该捆绑链路的各条二层成员链路均会有与其自身对应的最大预留带宽的配置。值得注意的是,一条二层成员链路可能会属于多个网络切片,因此,该二层成员链路会具有多个最大预留带宽的配置,并且这些最大预留带宽与这些网络切片一一对应。另外,捆绑链路所加入的网络切片是该捆绑链路的所有二层成员链路所加入的网络切片的集合,因此,捆绑链路也会有与其自身对应的最大预留带宽的配置,其中,捆绑链路的针对某一网络切片的最大预留带宽,为该捆绑链路中所有属于该网络切片的二层成员链路的最大预留带宽之和。
[0101]
在一实施例中,在链路带宽数据还包括已用链路带宽的情况下,如图6所示,步骤s100中的获取网络切片内所有物理链路的链路带宽数据,还可以包括但不限于有以下步骤:
[0102]
步骤s130,获取本地链路的已用链路带宽;
[0103]
步骤s140,获取网络切片内的其他网元所对应的物理链路的已用链路带宽。
[0104]
需要说明的是,网络中各节点均可针对向各条物理链路转发的属于特定网络切片的流量进行统计和测量,从而得到与该网络切片相关的已用链路带宽。已用链路带宽给出了该物理链路中专属于某一网络切片的实际已用带宽,由于该网络切片内已部署的业务流量并非时时刻刻都是满负荷运行,或者,虽然在物理链路中配置了与该网络切片对应的最大预留带宽,但该网络切片仅部署了少量的业务,所以,已用链路带宽不一定能够达到最大预留带宽。例如,假设一条物理带宽为100g的物理链路,同时加入了第一网络切片和第二网络切片,其中,在该物理链路中配置的与第一网络切片对应的最大预留带宽为10g,与第二网络切片对应的最大预留带宽为20g,但是,在该物理链路中实际采集到的与第一网络切片对应的已用链路带宽可能为1g,而与第二网络切片对应的已用链路带宽可能为2g。
[0105]
需要说明的是,网络切片内的其他网元(如节点)所对应的物理链路的已用链路带宽,会由这些节点向其它邻居节点进行泛洪,因此,首节点能够获取到这些节点的本地链路的已用链路带宽,所以,结合首节点获取到的本地链路的已用链路带宽,该首节点所维护的链路状态数据库中将会包含有全网所有物理链路的已用链路带宽的信息。
[0106]
需要说明的是,对于本地链路是捆绑链路的情况,则该捆绑链路的各条二层成员链路均会有与其自身对应的已用链路带宽。值得注意的是,一条二层成员链路可能会属于多个网络切片,因此,该二层成员链路会对应有多个已用链路带宽,并且这些已用链路带宽与这些网络切片一一对应。另外,捆绑链路所加入的网络切片是该捆绑链路的所有二层成员链路所加入的网络切片的集合,因此,捆绑链路也会有与其自身对应的已用链路带宽,其
bandwidth per algorithm sub-tlv,用以对外通告最大预留带宽,该新增的sub-tlv可以包含在isis协议现有的tlv-22、tlv-222、tlv-23、tlv-223、tlv-141和tlv-25中通告。该新增的sub-tlv通告了两个直接连接的isis邻居之间的针对特定网络切片的最大预留带宽,并且是从发起链路状态通告(link-state advertisement,lsa)的节点至其邻居节点的单向的最大预留带宽。该新增的sub-tlv的结构如图8所示,在图8中,该新增的sub-tlv包括有如下字段结构:type:占1字节,表示本sub-tlv是maximum reservable link bandwidth per algorithm sub-tlv;
[0118]
length:占1字节,表示不包括type字段和length字段的本sub-tlv的长度;
[0119]
algorithm:占1字节,表示相应的算法类型,用于区分网络切片,其中,取值范围128至255可用于fa机制,表示maximum reservable link bandwidth字段中的值是对应于特定的网络切片的;
[0120]
maximumreservablelinkbandwidth:占4字节,表示与algorithm字段对应的网络切片的最大预留带宽。
[0121]
需要说明的是,对于与网络切片无关的最大预留带宽,可被归类为algorithm字段取值为0时对应的最大预留带宽,因此,对于与网络切片无关的最大预留带宽,也可使用这个新增的sub-tlv进行通告(需将algorithm字段设置为0),或者,可采用传统的已知sub-tlv(如标准rfc5305定义的maximum reservable link bandwidth sub-tlv)进行通告。值得注意的是,不管采用哪种方式进行通告,所通告的与网络切片无关的最大预留带宽,都是在物理链路的物理带宽的基础之上,扣除掉所有网络切片在该物理链路上的最大预留带宽之和。
[0122]
(2)通告已用链路带宽:
[0123]
在一实施例中,可以在标准rfc8570的基础上新增utilized link bandwidth per algorithm sub-tlv,用以对外通告已用链路带宽,该新增的sub-tlv可以包含在isis协议现有的tlv-22、tlv-222、tlv-23、tlv-223、tlv-141和tlv-25中通告。该新增的sub-tlv通告了两个直接连接的isis邻居之间的针对特定网络切片的已用链路带宽,并且是从发起链路状态通告的节点至其邻居节点的单向的已用链路带宽。该新增的sub-tlv的结构如图9所示,在图9中,该新增的sub-tlv包括有如下字段结构:
[0124]
type:占1字节,表示本sub-tlv是utilized link bandwidth per algorithm sub-tlv;
[0125]
length:占1字节,表示不包括type字段和length字段的本sub-tlv的长度;
[0126]
algorithm:占1字节,表示相应的算法类型,用于区分网络切片,其中,取值范围128至255可用于fa机制,表示utilized link bandwidth字段中的值是对应于特定的网络切片的;
[0127]
utilized link bandwidth:占4字节,表示与algorithm字段对应的网络切片的已用链路带宽。
[0128]
需要说明的是,对于与网络切片无关的已用链路带宽,可被归类为algorithm字段取值为0时对应的已用链路带宽,因此,对于与网络切片无关的已用链路带宽,也可使用这个新增的sub-tlv进行通告(需将algorithm字段设置为0),或者,可采用传统的已知sub-tlv(如标准rfc8570定义的unidirectional utilized bandwidth sub-tlv)进行通告。
[0129]
(3)通告可用链路带宽:
[0130]
在一实施例中,可以在标准rfc8570的基础上新增available link bandwidth per algorithm sub-tlv,用以对外通告可用链路带宽,该新增的sub-tlv可以包含在isis协议现有的tlv-22、tlv-222、tlv-23、tlv-223、tlv-141和tlv-25中通告。该新增的sub-tlv通告了两个直接连接的isis邻居之间的针对特定网络切片的可用链路带宽,并且是从发起链路状态通告的节点至其邻居节点的单向的可用链路带宽。该新增的sub-tlv的结构如图10所示,在图10中,该新增的sub-tlv包括有如下字段结构:
[0131]
type:占1字节,表示本sub-tlv是available link bandwidth per algorithm sub-tlv;
[0132]
length:占1字节,表示不包括type字段和length字段的本sub-tlv的长度;
[0133]
algorithm:占1字节,表示相应的算法类型,用于区分网络切片,其中,取值范围128至255可用于fa机制,表示available link bandwidth字段中的值是对应于特定的网络切片的;
[0134]
available link bandwidth:占4字节,表示与algorithm字段对应的网络切片的可用链路带宽。
[0135]
需要说明的是,对于与网络切片无关的可用链路带宽,可被归类为algorithm字段取值为0时对应的可用链路带宽,因此,对于与网络切片无关的可用链路带宽,也可使用这个新增的sub-tlv进行通告(需将algorithm字段设置为0)。
[0136]
此外,对于开放式最短路径优先(open shortest path first,ospf)协议,例如基于ipv4网络的ospfv2和基于ipv6网络的ospfv3,同样可以采用与上述isis协议类似的方式,通过新增sub-tlv并通告该新增的sub-tlv,从而实现针对特定网络切片的最大预留带宽、已用链路带宽和可用链路带宽的通告,此处不再赘述。
[0137]
为了更加清楚的说明路径确定方法的处理流程,下面以具体的示例进行说明。
[0138]
示例一:
[0139]
在如图11所示的网络拓扑中,创建有两个网络切片,其中,第一网络切片flex-algo 128对应的algorithm取值为128,第二网络切片flex-algo 129对应的algorithm取值为129。第一网络切片flex-algo 128包含有第一节点110、第二节点120、第三节点130、第四节点140以及这些节点间相连的双向物理链路,第二网络切片flex-algo 129包含有第一节点110、第二节点120、第三节点130、第五节点150以及这些节点间相连的双向物理链路。第一网络切片flex-algo 128和第二网络切片flex-algo 129共享第一节点110与第二节点120之间的第一物理链路link1以及第二节点120与第三节点130之间的第二物理链路link2。
[0140]
第一物理链路link1的物理带宽为100g,分配给第一网络切片flex-algo 128的最大预留带宽为10g,分配给第二网络切片flex-algo 129的最大预留带宽为20g;第二物理链路link2的物理带宽为100g,分配给第一网络切片flex-algo 128的最大预留带宽为10g,分配给第二网络切片flex-algo 129的最大预留带宽为20g;该网络拓扑中其它物理链路的物理带宽均为1g,并且这些物理链路的全部物理带宽均分配给相应的网络切片。例如,第一节点110和第四节点140之间的物理链路的物理带宽为1g,并且这1g的带宽资源全部分配给第一网络切片flex-algo 128,即是说,第一节点110和第四节点140之间的物理链路为第一网
络切片flex-algo 128分配的最大预留带宽为1g。
[0141]
此时,在第一网络切片flex-algo 128内创建一条从第一节点110至第三节点130的传输通道(记为te-path-sd-1),该传输通道的需求带宽为5g。当采用网络控制器进行路径计算时,网络控制器先通过bgp-ls协议收集到网络拓扑中所有物理链路的链路带宽数据,其中包含有各个物理链路的最大预留带宽(记为mrlb-a)、已用链路带宽(记为ulb-a)和可用链路带宽(记为alb-a)等信息。则网络控制器会维护如下表1所示的原始静态带宽预留信息:
[0142][0143]
表1原始静态带宽预留信息表
[0144]
网络控制器根据第一网络切片flex-algo 128自身的约束条件和额外的带宽约束条件等进行te-path-sd-1的路径的计算,得到te-path-sd-1的路径为《link1,link2》,即te-path-sd-1需要经过link1和link2,此时,网络控制器将维护如下表2所示的更新后的静态带宽预留信息:
[0145][0146]
表2更新后的静态带宽预留信息表
[0147]
当创建好的te-path-sd-1开始承载业务流量后,网络控制器将会从网络中收集到相应物理链路的更新后的ulb-a信息和alb-a信息。当te-path-sd-1上的业务流量为满负荷运行,则网络控制器测量到的link1中对应于第一网络切片flex-algo 128的ulb-a为5g,测量到的link2中对应于第一网络切片flex-algo 128的ulb-a也为5g,因此可以计算得到link1中对应于第一网络切片flex-algo 128的alb-a为5g,而link2中对应于第一网络切片flex-algo 128的alb-a也为5g。此时,网络控制器将维护如下表3所示的运行流量后的静态带宽预留信息:
[0148][0149]
表3运行流量后的静态带宽预留信息表
[0150]
此时,当在第一网络切片flex-algo 128内创建另一条从第一节点110至第三节点130的传输通道(记为te-path-sd-2),该传输通道的需求带宽为6g。当采用网络控制器进行路径计算时,网络控制器判断到link1和link2的可分配预留带宽和可用链路带宽均不满足te-path-sd-2的需求带宽,因此路径计算失败,即te-path-sd-2的路径不能通过link1和link2。
[0151]
示例二:
[0152]
在如图11所示的网络拓扑中,创建有两个网络切片,其中,第一网络切片flex-algo 128对应的algorithm取值为128,第二网络切片flex-algo 129对应的algorithm取值为129。第一网络切片flex-algo 128包含有第一节点110、第二节点120、第三节点130、第四节点140以及这些节点间相连的双向物理链路,第二网络切片flex-algo 129包含有第一节点110、第二节点120、第三节点130、第五节点150以及这些节点间相连的双向物理链路。第一网络切片flex-algo 128和第二网络切片flex-algo 129共享第一节点110与第二节点120之间的第一物理链路link1以及第二节点120与第三节点130之间的第二物理链路link2。
[0153]
第一物理链路link1的物理带宽为100g,分配给第一网络切片flex-algo 128的最大预留带宽为10g,分配给第二网络切片flex-algo 129的最大预留带宽为20g;第二物理链路link2的物理带宽为100g,分配给第一网络切片flex-algo 128的最大预留带宽为10g,分配给第二网络切片flex-algo 129的最大预留带宽为20g;该网络拓扑中其它物理链路的物理带宽均为1g,并且这些物理链路的全部物理带宽均分配给相应的网络切片。例如,第一节点110和第四节点140之间的物理链路的物理带宽为1g,并且这1g的带宽资源全部分配给第一网络切片flex-algo 128,即是说,第一节点110和第四节点140之间的物理链路为第一网络切片flex-algo 128分配的最大预留带宽为1g。
[0154]
此时,在第一网络切片flex-algo 128内创建一条从第一节点110至第三节点130的传输通道(记为te-path-sd-1),该传输通道的需求带宽为5g。当采用首节点(即第一节点110)进行路径计算时,第一节点110先通过igp协议收集到igp域中所有物理链路的链路带宽数据,其中包含有各个物理链路的最大预留带宽(记为mrlb-a)、已用链路带宽(记为ulb-a)和可用链路带宽(记为alb-a)等信息。则第一节点110的链路状态数据库中会保存有如表4所示的原始链路带宽信息:
[0155][0156]
表4原始链路带宽信息表
[0157]
第一节点110根据第一网络切片flex-algo 128自身的约束条件和额外的带宽约束条件等进行te-path-sd-1的路径的计算,由于link1和link2的alb-a均大于te-path-sd-1的需求带宽,因此可以得到te-path-sd-1的路径为《link1,link2》,即te-path-sd-1需要经过link1和link2。
[0158]
当创建好的te-path-sd-1开始承载业务流量后,link1和link2的ulb-a信息和alb-a信息都将会被更新。当te-path-sd-1上的业务流量为满负荷运行,则第一节点110可以测量到link1中对应于第一网络切片flex-algo 128的ulb-a为5g,测量到link2中对应于第一网络切片flex-algo 128的ulb-a也为5g,因此可以计算得到link1中对应于第一网络切片flex-algo 128的alb-a为5g,而link2中对应于第一网络切片flex-algo 128的alb-a也为5g。此时,第一节点110的链路状态数据库中会保存有如表5所示的运行流量后的链路带宽信息:
[0159][0160][0161]
表5运行流量后的链路带宽信息表
[0162]
此时,当在第一网络切片flex-algo 128内创建另一条从第一节点110至第三节点130的传输通道(记为te-path-sd-2),该传输通道的需求带宽为6g。当采用首节点(即第一节点110)进行路径计算时,第一节点110判断到link1和link2的可用链路带宽均不满足te-path-sd-2的需求带宽,因此路径计算失败,即te-path-sd-2的路径不能通过link1和link2。
[0163]
另外,本发明的一个实施例还提供了一种网元,该网元包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
[0164]
处理器和存储器可以通过总线或者其他方式连接。
[0165]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络
连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0166]
需要说明的是,本实施例中的网元,可以应用为如图1所示实施例中的网络控制器或者第一节点110,本实施例中的网元能够构成图1所示实施例中的网络拓扑的一部分,这些实施例均属于相同的发明构思,因此这些实施例具有相同的实现原理以及技术效果,此处不再详述。
[0167]
实现上述实施例的路径确定方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的路径确定方法,例如,执行以上描述的图2中的方法步骤s100至s300、图3中的方法步骤s310至s330、图4中的方法步骤s340至s350、图5中的方法步骤s110至s120、图6中的方法步骤s130至s140、图7中的方法步骤s150至s160。
[0168]
以上所描述的网元实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0169]
此外,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述节点实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的路径确定方法,例如,执行以上描述的图2中的方法步骤s100至s300、图3中的方法步骤s310至s330、图4中的方法步骤s340至s350、图5中的方法步骤s110至s120、图6中的方法步骤s130至s140、图7中的方法步骤s150至s160。
[0170]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0171]
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。