安装规则的方法、控制器和装置转让专利

申请号 : CN201810384041.3

文献号 : CN110417562B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李清林栋黄世碧

申请人 : 华为技术有限公司

摘要 :

本申请提供了一种安装规则的方法、控制器和装置,该方法应用于包括控制器和多个转发节点的网络中,该方法包括:控制器接收来自多个转发节点中第一转发节点的查询请求,该查询请求用于查询转发规则;控制器根据该查询请求,获取主规则和直接依赖规则;控制器确定所述多个转发节点中的第二转发节点,该第二转发节点是该主规则对应的路径中的一个节点,该第二转发节点与该第一转发节点不同;控制器根据该第二转发节点确定该直接依赖规则对应的路径;控制器在该直接依赖规则对应的路径上安装对应的规则,避免了入口节点过载,并且减少了规则的安装数量,降低了安装规则的复杂度。

权利要求 :

1.一种安装规则的方法,其特征在于,所述方法应用于包括控制器和多个转发节点的网络中,所述方法包括:所述控制器接收来自所述多个转发节点中第一转发节点的查询请求,所述查询请求用于查询转发规则;

所述控制器根据所述查询请求,获取主规则和直接依赖规则;

所述控制器确定所述多个转发节点中的第二转发节点,所述第二转发节点是所述主规则对应的路径中的一个节点,所述第二转发节点与所述第一转发节点不同;

所述控制器根据所述第二转发节点确定所述直接依赖规则对应的路径,其中,所述第二转发节点是所述直接依赖规则对应的路径的起始节点;

所述控制器在所述直接依赖规则对应的路径上安装对应的规则。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述控制器确定安装策略,所述安装策略表示安装所述直接依赖规则的转发节点需要满足的条件;

其中,所述控制器确定所述多个转发节点中的第二转发节点,包括:所述控制器根据所述安装策略,确定所述多个转发节点中的第二转发节点,所述第二转发节点满足所述安装策略对应的条件。

3.根据权利要求2所述的方法,其特征在于,所述控制器确定安装策略,包括:所述控制器根据所述网络中各个转发节点的负载情况,确定所述安装策略。

4.根据权利要求3所述的方法,其特征在于,所述控制器根据所述网络中各个转发节点的负载情况,确定所述安装策略,包括:当所述网络中各个转发节点的网络负载利用率均小于第一预设门限,则所述安装策略为在各个转发节点上安装规则的总数量最少的策略;

其中,所述控制器根据所述安装策略,确定所述多个转发节点中的第二转发节点,包括:所述控制器基于所述安装策略,选择所述第二转发节点,其中,所述第二转发节点是能够满足在各个转发节点上安装规则的总数量最少的节点,所述各个转发节点是所述直接依赖规则对应的路径中的节点。

5.根据权利要求3所述的方法,其特征在于,所述控制器根据所述网络中各个转发节点的负载情况,确定所述安装策略,包括:当所述网络中存在转发节点的网络负载利用率大于或等于第一预设门限,则所述安装策略为负载均衡策略;

其中,所述控制器根据所述安装策略,确定所述多个转发节点中的第二转发节点,包括:所述控制器基于所述负载均衡策略,选择所述第二转发节点,其中,所述第二转发节点是能够均衡流表空间负载的节点,所述流表空间负载是所述直接依赖规则对应的路径中的负载。

6.根据权利要求1至5中任一项所述的方法,其特征在于,在获取所述主规则后,所述方法还包括:所述控制器确定所述主规则对应的路径,并在所述主规则对应的路径上安装所述主规则。

7.根据权利要求1至5中任一项所述的方法,其特征在于,所述控制器根据所述第二转发节点确定所述直接依赖规则对应的路径,包括:所述控制器选择所述第二转发节点到达目的节点的跳数最少的路径,作为所述直接依赖规则对应的路径。

8.一种控制器,其特征在于,所述控制器应用于包括多个转发节点的网络中,所述控制器包括:接收模块,用于接收来自所述多个转发节点中第一转发节点的查询请求,所述查询请求用于查询转发规则;

获取模块,用于根据所述查询请求,获取主规则和直接依赖规则;

第一确定模块,用于确定所述多个转发节点中的第二转发节点,所述第二转发节点是所述主规则对应的路径中的一个节点,所述第二转发节点与所述第一转发节点不同;

所述第一确定模块,还用于根据所述第二转发节点确定所述直接依赖规则对应的路径,其中,所述第二转发节点是所述直接依赖规则对应的路径的起始节点;

安装模块,用于在所述直接依赖规则对应的路径上安装对应的规则。

9.根据权利要求8所述的控制器,其特征在于,所述控制器还包括:第二确定模块,用于确定安装策略,所述安装策略表示安装所述直接依赖规则的转发节点需要满足的条件;

其中,所述第一确定模块具体用于:

根据所述安装策略,确定所述多个转发节点中的第二转发节点,所述第二转发节点满足所述安装策略对应的条件。

10.根据权利要求9所述的控制器,其特征在于,所述第二确定模块具体用于:根据所述网络中各个转发节点的负载情况,确定所述安装策略。

11.根据权利要求10所述的控制器,其特征在于,所述第二确定模块用于根据所述网络中各个转发节点的负载情况,确定所述安装策略,具体包括:当所述网络中各个转发节点的网络负载利用率均小于第一预设门限,则所述安装策略为在各个转发节点上安装规则的总数量最少的策略;

其中,所述第一确定模块用于根据所述安装策略,确定所述多个转发节点中的第二转发节点,具体包括:基于所述安装策略,选择所述第二转发节点,其中,所述第二转发节点是能够满足在各个转发节点上安装规则的总数量最少的节点,所述各个转发节点是所述直接依赖规则对应的路径中的节点。

12.根据权利要求10所述的控制器,其特征在于,所述第二确定模块用于根据所述网络中各个转发节点的负载情况,确定所述安装策略,包括:当所述网络中存在转发节点的网络负载利用率大于或等于第一预设门限,则所述安装策略为负载均衡策略;

其中,所述第一确定模块用于根据所述安装策略,确定所述多个转发节点中的第二转发节点,具体包括:基于所述负载均衡策略,选择所述第二转发节点,其中,所述第二转发节点是能够均衡流表空间负载的节点,所述流表空间负载是所述直接依赖规则对应的路径中的负载。

13.根据权利要求8至12中任一项所述的控制器,其特征在于,在获取所述主规则后,所述第一确定模块还用于:确定所述主规则对应的路径;

所述安装模块还用于:在所述主规则对应的路径上安装所述主规则。

14.根据权利要求8至12中任一项所述的控制器,其特征在于,所述第一确定模块用于根据所述第二转发节点确定所述直接依赖规则对应的路径,具体包括:选择所述第二转发节点到达目的节点的跳数最少的路径,作为所述直接依赖规则对应的路径。

15.一种计算机程序存储介质,其特征在于,所述计算机程序存储介质具有程序指令,当所述程序指令被直接或者间接执行时,使得如权利要求1-7中任一所述的方法在软件定义网络SDN中得以实现。

说明书 :

安装规则的方法、控制器和装置

技术领域

[0001] 本申请涉及信息技术领域,并且更具体地,涉及一种安装规则的方法、控制器和装置。

背景技术

[0002] 作为未来网络主流架构之一,信息中心网络(Information Centric Network,ICN)在学术界和业界都获得了广泛的关注。ICN采取基于名字的路由与寻址方式,同时ICN网络路由与转发设备具有内容缓存功能。
[0003] 另外,软件定义网络(Software Defined Networks,SDN)的集中式控制逻辑使网络管理得到有效简化。因此基于SDN的ICN内容缓存管理与路由方案一直是ICN领域研究的一大热点。在基于SDN的ICN缓存管理与动态路由机制中,SDN控制器给交换机安装规则时存在依赖规则占用大量流表空间的问题。
[0004] 现有技术在解决上述问题时采用规则分割的方式,形成没有任何覆盖关系的子规则,这样在规则安装的时候就不涉及任何依赖问题。但是,规则分割算法比较复杂,会增加SDN控制器管理的复杂度,且分割后会规则数量会增加,导致规则安装次数相应的增加。因此,亟需提出一种规则安装的方法以减少安装规则的复杂度。

发明内容

[0005] 本申请提供一种安装规则的方法、控制器和装置,避免了入口节点过载,并且减少了规则的安装数量,降低了安装规则的复杂度。
[0006] 第一方面,提供了一种安装规则的方法,所述方法应用于包括控制器和多个转发节点的网络中,所述方法包括:
[0007] 控制器接收来自所述多个转发节点中第一转发节点的查询请求,所述查询请求用于查询转发规则;控制器根据所述查询请求,获取主规则和直接依赖规则,所述直接依赖规则与所述主规则存在重叠且所述直接依赖规则的优先级高于所述主规则;控制器确定所述多个转发节点中的第二转发节点,所述第二转发节点是所述主规则对应的路径中的一个节点,所述第二转发节点与所述第一转发节点不同;控制器根据所述第二转发节点确定所述直接依赖规则对应的路径,其中,所述第二转发节点是所述直接依赖规则对应的路径的起始节点;控制器在所述直接依赖规则对应的路径上安装对应的规则。
[0008] 可选地,所述网络可以是软件定义网络SDN。
[0009] 在本申请实施例中,控制器通过获取主规则和直接依赖规则,并确定第二转发节点,并确定第二转发节点,接着根据第二转发节点确定所述直接依赖规则对应的路径,其中,所述第二转发节点是所述直接依赖规则对应的路径的起始节点,最后在所述直接依赖规则对应的路径上安装对应的规则,不需要在入口节点上安装直接依赖规则,避免了入口节点过载,并且减少了规则的安装数量。相比于现有技术中采用分割规则算法解决规则依赖的问题,本申请实施例的技术方案无需对规则分隔,降低了复杂度,减少了规则的安装次数。
[0010] 其中,所述主规则可以是能够匹配所述查询请求的最高优先级的规则。
[0011] 可选地,所述方法还包括:
[0012] 所述控制器确定安装策略,所述安装策略表示安装所述直接依赖规则的转发节点需要满足的条件;
[0013] 其中,所述控制器确定所述多个转发节点中的第二转发节点,包括:
[0014] 所述控制器根据所述安装策略,确定所述多个转发节点中的第二转发节点,所述第二转发节点满足所述安装策略对应的条件。
[0015] 可选地,所述控制器确定安装策略,包括:
[0016] 所述控制器根据所述网络中各个转发节点的负载情况,确定所述安装策略。
[0017] 在一种可能的实现方式中,所述控制器根据网络中各个转发节点的负载情况,确定所述安装策略,包括:
[0018] 当所述网络中各个转发节点的网络负载利用率均小于第一预设门限,则所述安装策略为在各个转发节点上安装规则的总数量最少的策略;
[0019] 其中,所述控制器根据所述安装策略,确定所述多个转发节点中的第二转发节点,包括:
[0020] 所述控制器基于所述安装策略,选择所述第二转发节点,其中,所述第二转发节点是能够满足在各个转发节点上安装规则的总数量最少的节点,所述各个转发节点是所述直接依赖规则对应的路径中的节点。
[0021] 这里,若采用第二转发节点作为直接依赖规则对应的路径的起始节点,可以保证网络中的安装规则的总数量最少。
[0022] 在一种可能的实现方式中,所述控制器根据网络中各个转发节点的负载情况,确定所述安装策略,包括:
[0023] 当所述网络中存在转发节点的网络负载利用率大于或等于第一预设门限,则所述安装策略为负载均衡策略;
[0024] 其中,所述控制器根据所述安装策略,确定所述多个转发节点中的第二转发节点,包括:
[0025] 所述控制器基于所述负载均衡策略,选择所述第二转发节点,其中,所述第二转发节点是能够均衡流表空间负载的节点,所述流表空间负载是所述直接依赖规则对应的路径中的负载。
[0026] 这里,若采用第二转发节点作为直接依赖规则对应的路径的起始节点,可以均衡网络规则空间率,避免出现空间利用率过高的瓶颈节点。
[0027] 可选地,在获取所述主规则后,所述方法还包括:
[0028] 所述控制器确定所述主规则对应的路径,并在所述主规则对应的路径上安装所述主规则。
[0029] 因此,在所述主规则对应的路径上安装所述主规则:可以保证主规则的转发性能无损。其中,主规则对应的路径可以称作“主路径”。上述第一转发节点是主路径的入口节点。
[0030] 可选地,所述控制器在第一转发节点安装所述主规则,并在主路径上的其他转发节点安装主规则。这里,与现有技术不同的是,第一转发节点上不需要安装上述直接依赖规则,减少了入口节点上安装规则的数量,从而避免了入口节点过载。接着,所述控制器可以在主路径上为上述直接依赖规则确定起始转发节点。
[0031] 可选地,所述控制器根据所述第二转发节点确定所述直接依赖规则对应的路径,包括:
[0032] 所述控制器选择所述第二转发节点到达目的节点的跳数最少的路径,作为所述直接依赖规则对应的路径。
[0033] 因此,控制器可以基于交换机之间的跳数最少的原则,为所述直接依赖规则选取最优路径。
[0034] 第二方面,提供了一种控制器。该控制器具有实现上述第一方面或第一方面中任意可能的实现方式中控制器的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。可选地,该控制器也可以是芯片。
[0035] 第三方面,提供了一种软件定义网络SDN,所述SDN包括控制器和多个转发节点。
[0036] 在一种可能的实现方式中,所述控制器用于接收来自所述多个转发节点中第一转发节点的查询请求,所述查询请求用于查询转发规则;还用于根据所述查询请求,获取主规则和直接依赖规则,所述直接依赖规则与所述主规则存在重叠且所述直接依赖规则的优先级高于所述主规则;还用于确定所述多个转发节点中的第二转发节点,所述第二转发节点是所述主规则对应的路径中的一个节点,所述第二转发节点与所述第一转发节点不同;还用于根据所述第二转发节点确定所述直接依赖规则对应的路径,其中,所述第二转发节点是所述直接依赖规则对应的路径的起始节点;还用于在所述直接依赖规则对应的路径上安装对应的规则。
[0037] 在一种可能的实现方式中,所述控制器可以是第二方面中的控制器。
[0038] 第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序使得控制器执行上述第一方面,及其各种实现方式中的任一种软件定义网络SDN中安装规则的方法。
[0039] 第五方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中安装规则的方法。
[0040] 第六方面,提供了一种软件定义网络SDN中安装规则的装置,该装置包括处理器、存储器和收发器。处理器与存储器和收发器连接。存储器用于存储指令,处理器用于执行该指令,收发器用于在处理器的控制下与其他网元进行通信。该处理器执行该存储器存储的指令时,该执行使得该处理器执行上述各方面中的软件定义网络SDN中安装规则的方法。

附图说明

[0041] 图1是基于SDN的ICN缓存管理与动态路由机制的示意图。
[0042] 图2是转发过程的一个示意图。
[0043] 图3是根据本申请实施例的软件定义网络SDN中安装规则的方法的示意性框图。
[0044] 图4是现有技术的规则安装的一个示意图。
[0045] 图5是本申请实施例的SDN中安装规则的方法的一个示意性流程图。
[0046] 图6是应用本申请实施例的SDN中安装规则的方法的一个例子的示意图。
[0047] 图7是应用本申请实施例的SDN中安装规则的方法的另一个例子的示意图。
[0048] 图8是根据本申请实施例的控制器的示意性框图。
[0049] 图9是根据本申请实施例的安装规则的装置的结构框图。

具体实施方式

[0050] 下面将结合附图,对本申请中的技术方案进行描述。
[0051] 在本申请实施例中,“多个”可以理解为两个或两个以上。
[0052] 本申请实施例的技术方案可以应用于需要安装转发规则或路由规则的转发节点所在的网络中,比如,软件定义网络(Software-Defined Networking,SDN),信息中心网络(Information Centric Network,ICN)或命名数据网络(Named Data Network,NDN),基于SDN的ICN转发控制平台,或者存在规则依赖的SDN网络等,本申请实施例对此不作限定。
[0053] 本申请实施例的技术方案可以应用于SDN网络中需要安装规则的场景。可选地,本申请实施例的技术方案可以应用于基于SDN的ICN缓存管理与动态路由机制中。图1是基于SDN的ICN缓存管理与动态路由机制的示意图。应理解,图1只是本申请实施例的一种可能的应用场景,并不对本申请实施例的应用场景构成具体限定。如图1所示,SDN控制器首先需要收集网络的动态缓存信息,比如,可以通过网络监测器获取网络状态信息。其中,网络监测器用于对网络中各个交换机的状态进行监控。用户向入口交换机(或边界交换机)发送用户请求。用户请求到达入口交换机后,入口交换机向SDN控制器请求内容转发规则。SDN控制器在收到内容转发规则的请求后,查看网络状态信息。如果当前网络中存在内容缓存副本,则在相应的交换机中安装规则,并将请求转发到相应的缓存节点;如果当前网络中不存在内容副本,安装其他规则,并将请求转发到内容提供者(Content Provider),即内容源服务器(图中未示出)。
[0054] 下面对本申请实施例涉及到的一些术语或概念进行介绍。
[0055] SDN是一种在学术和产业界都得到广泛关注的新型网络架构,目前已经在广域网(Wide Area Network,WAN)、骨干网等场景中部署应用。SDN通过控制平面与转发平面的分离,能够实现对网络控制的集中化和对流量的灵活调度。SDN的集中式控制逻辑使网络管理得到有效简化,因此基于SDN的ICN内容缓存管理与路由方案一直是ICN领域研究的一大热点。
[0056] ICN是未来网络主流架构之一。ICN采取基于名字的路由与寻址方式,同时ICN网络路由与转发设备具有内容缓存功能。与传统网络相比,ICN中内容或数据以独立方式存在于网络中,而非严格的位置绑定。基于内容名字的路由与寻址、采用Interest的内容拉取方式、内嵌的网内缓存功能等,使ICN避免了一些传统IP网络的固有问题,如移动性,内容传输冗余等。另外,ICN网络采用层次化的内容命名方式。层次化的命名方式能够支持内容ID的聚合,从而提升扩展性。层次化内容ID可以按照如下形式:[32bits CP ID][8bits语系][8bits区域/国家][4bits大类][4bits小类][16bits internal ID]。其中CP ID为内容源服务器的ID(比如可以是IP地址),[8bits语系][8bits区域/国家][4bits大类][4bits小类]采取通用的编码方式。例如,[113.107.238.14][00000001][00001011][0001][0010][1024]表示[腾讯][中文][中国][video][mv][内部id为1024]。
[0057] 具体而言,SDN统一管理与放置缓存内容,例如[*][英文][*][video][*]覆盖的内容(“英文视频”)都缓存在某一个节点上;当节点负载过重时,可以将其中的[*][英文][美国][video][*]覆盖的内容(“来自美国的英文视频”)转移到另一个缓存节点。如果网络中存在ICN内容缓存,需要安装指向相应缓存节点的转发规则,如[*][英文][美国][video][*]或[*][英文][*][video][*]。如果网络中不存在相应的ICN内容缓存,需要安装指向ICN内容源服务器的规则,如[192.168.0.0/16][*][*][*][*]或[192.0.0.0/8][*][*][*][*],表示指向来自用户网络192.168.0.0/16或192.0.0.0/8的内容源服务器。
[0058] 下面将结合图2描述现有场景存在的规则依赖的问题。图2示出了转发过程的一个示意图。如图2所示,如果根据网络状况(节点负载、网络带宽等),控制器生成的内容转发规则为R1=[*][英文][*][video][*]指向缓存节点N1,R2=[*][英文][美国][video][*]指向缓存节点N2,且R2的优先级高于R1。具体而言,控制器的缓存策略是:来自美国的英文视频缓存在节点N2,其他英文视频缓存在节点N1。此时如果一个新的用户请求到达入口交换机S,该用户请求匹配规则R1但是不匹配规则R2,触发控制器在网络交换机中安装规则。若只安装规则R1,后续如果有同时匹配R1和R2的内容请求(实际按照优先级R2起作用)到达S,会被转发到N1节点,从而和控制器的策略不一致,导致转发错误。
[0059] 在现有技术中,依赖规则未必会被匹配,即未必在规则失效之前有内容请求匹配相应的依赖规则,但是为了保证完备性,又不得不安装。在实际中,规则依赖问题大量存在,在IP路由表或SDN流表中都有大量的体现。但是SDN转发设备支持的规则空间是有限的,依赖规则对流表空间的消耗已变成亟需解决的问题。
[0060] 本申请实施例为了减少依赖规则的安装数量,提出了一种依赖规则的安装方法,能够调整直接依赖规则在网络拓扑中的安装位置,而不是在入口交换机处就开始安装直接依赖规则,从而减少依赖规则在网络中的安装数量。
[0061] 应理解,本申请实施例的安装规则的方法可以应用包括控制器和多个转发节点的网络中。为了便于描述,下面将以SDN网络为例进行描述。
[0062] 图3是根据本申请实施例的软件定义网络SDN中安装规则的方法300的示意性框图,所述SDN包括控制器和多个转发节点。如图3所示,所述方法300包括:
[0063] S310,所述控制器接收来自所述多个转发节点中第一转发节点的查询请求,所述查询请求用于查询转发规则。
[0064] 可选地,所述查询请求中可以包括用户请求到达的目的节点的信息,比如目的节点的地址、标识、端口信息等。可选地,目的节点可以是缓存节点(比如ICN缓存节点)或出口交换机,对此不作限定。
[0065] 可选地,所述查询请求中可以包括用户请求的内容的ID。
[0066] 上述控制器可以是SDN控制器,可以是一个独立的设备,也可以直接内嵌于物理节点,对控制器所在的位置不作限制。
[0067] 上述第一转发节点可以是入口转发节点,比如,入口交换机。比如,入口交换机是接收外部流量的交换机,会根据流表中是否存在相应的规则(比如,用户请求内容对应的规则)触发规则查询。
[0068] 可选地,第一转发节点在收到来自用户的用户请求后,基于该用户请求向控制器发送上述查询请求。
[0069] S320,所述控制器根据所述查询请求,获取主规则和直接依赖规则。
[0070] 可选地,所述直接依赖规则与所述主规则存在重叠且所述直接依赖规则的优先级高于所述主规则。
[0071] 其中,所述主规则是能够匹配所述查询请求的最高优先级的规则。这里的最高优先级指的是能够匹配查询请求的最高优先级。
[0072] 另外,直接依赖规则是与主规则存在重叠的规则,但是直接依赖规则并不能匹配上述查询请求。
[0073] 为了便于理解,下面对本申请实施例涉及到的术语进行介绍。
[0074] 对于主规则:如果入口交换机(比如上述第一转发节点)接收到来自用户的内容转发请求时,可以向控制器请求内容转发规则。控制器在收到入口第一转发节点的规则请求后,触发与该请求匹配的规则,该规则即为主规则。
[0075] 对于直接依赖规则:假设R1为主规则,若R1∩R2非空,且R2优先级高于R1,则称R1直接依赖R2,即R2为R1的直接依赖规则。其中,符号∩表示取交集。这里,R2不能匹配上述用户的内容转发请求。
[0076] 可选地,主规则R1也可以存在间接依赖规则。具体比如,假设R1为主规则,若R1∩R3为空,但存在规则R2,满足R1∩R2非空,且R2和R3非空,且R1、R2、R3的优先级次序为:R1
[0077] 这里,控制器获取主规则和直接依赖规则可以通过多种形式获取,比如,控制器通过查询,得到与上述查询请求对应的主规则和直接依赖规则;又比如,控制器可以基于预设的策略生成上述主规则和直接依赖规则;又比如,控制器可以沿用已经存在的主规则和直接依赖规则。应理解,这里只是示例性地描述了控制器获取规则的方式,实际中还可能存在其他合理的获取方式,示例并不对本申请实施例的保护范围构成限定。
[0078] 可选地,所述控制器在获取所述主规则后,可以确定所述主规则对应的路径(即从入口交换机到达内容缓存节点或出口交换机的路径),并在所述主规则对应的路径上安装所述主规则,可以保证主规则的转发性能无损。其中,主规则对应的路径可以称作“主路径”。上述第一转发节点是主路径的入口节点。
[0079] 具体而言,所述控制器在第一转发节点安装所述主规则,并在主路径上的其他转发节点安装主规则。这里,与现有技术不同的是,第一转发节点上不需要安装上述直接依赖规则,减少了入口节点上安装规则的数量,从而避免了入口节点过载。接着,所述控制器可以在主路径上为上述直接依赖规则确定起始转发节点。
[0080] S330,所述控制器确定所述多个转发节点中的第二转发节点,所述第二转发节点是所述主规则对应的路径中的一个节点,所述第二转发节点与所述第一转发节点不同。
[0081] 这里,所述控制器在主路径上的转发节点中,选取除所述第一转发节点外的一个转发节点作为上述直接依赖规则的起始转发节点,即上述第二转发节点。
[0082] 可选地,所述第二转发节点可以通过多种方式来确定。比如,所述控制器基于安装规则总数量最少的原则确定上述第二转发节点;又比如,所述控制器基于网络负载均衡策略确定上述第二转发节点。
[0083] S340,所述控制器根据所述第二转发节点确定所述直接依赖规则对应的路径,其中,所述第二转发节点是所述直接依赖规则对应的路径的起始节点。
[0084] 具体而言,所述控制器将所述第二转发节点,作为所述直接依赖规则对应的路径的起始节点,并结合查询请求对应的目的节点(比如ICN缓存节点),确定所述直接依赖规则对应的路径。
[0085] 这里,所述控制器可以考虑多种因素,选取最优的路径,作为所述直接依赖规则对应的路径,本申请实施例对此不作限定。
[0086] 可选地,S340包括:
[0087] 所述控制器选择所述第二转发节点到达目的节点的跳数最少的路径,作为所述直接依赖规则对应的路径。
[0088] 也就是说,所述控制器可以基于交换机之间的跳数最少的原则,选取所述直接依赖规则对应的路径。
[0089] 可选地,所述控制器也可以基于转发节点上的负载,选择所述第二转发节点到达目的节点的最优路径。当然,所述控制器也可以同时考虑多种因素(比如,交换机之间的跳数最少,规则空间负载均衡等因素),为所述直接依赖规则选择最佳路径,本申请实施例对此不作限定。
[0090] S350,所述控制器在所述直接依赖规则对应的路径上安装对应的规则。
[0091] 具体地,所述控制器通过向所述直接依赖规则对应的路径上的转发节点,发送指令,以指示转发节点安装相应的规则。转发节点在收到所述控制器的指令后,安装相应的规则。
[0092] 在本申请实施例中,控制器通过获取主规则和直接依赖规则,并确定第二转发节点,接着根据第二转发节点确定所述直接依赖规则对应的路径,其中,所述第二转发节点是所述直接依赖规则对应的路径的起始节点,最后在所述直接依赖规则对应的路径上安装对应的规则,不需要在入口节点上安装直接依赖规则,避免了入口节点过载,并且减少了规则的安装数量。相比于现有技术中采用分割规则算法解决规则依赖的问题,本申请实施例的技术方案无需对规则分隔,降低了复杂度,减少了规则的安装次数。
[0093] 可选地,所述方法300还包括:
[0094] 所述控制器确定安装策略,所述安装策略表示安装所述直接依赖规则的转发节点需要满足的条件;
[0095] 其中,S330,包括:
[0096] 所述控制器根据所述安装策略,确定所述多个转发节点中的第二转发节点,所述第二转发节点满足所述安装策略对应的条件。
[0097] 具体而言,所述控制器可以基于选择的安装策略,选择上述第二转发节点,其中,所述第二转发节点需要满足所述安装策略对应的条件。可选地,所述安装策略可以包括规则空间负载均衡策略和/或安装规则总数量最少策略。
[0098] 进一步地,所述控制器确定安装策略,包括:
[0099] 所述控制器根据SDN中各个转发节点的负载情况,确定所述安装策略。
[0100] 也就是说,所述控制器可以结合SDN网络中各个转发节点上的负载情况,决策选取何种安装策略。
[0101] 应理解,本领域技术人员可以得知,上述安装策略的选取也可以基于其他合理的因素,并不限于是网络负载情况。
[0102] 下面将结合下述可能的情形,详细描述如何基于网络负载确定安装策略。
[0103] 情形一:
[0104] 所述控制器根据SDN中各个转发节点的负载情况,确定所述安装策略,包括:
[0105] 当所述SDN中各个转发节点的网络负载利用率均小于第一预设门限,则所述安装策略为在各个转发节点上安装规则的总数量最少的策略;
[0106] 其中,所述控制器根据所述安装策略,确定所述多个转发节点中的第二转发节点,包括:
[0107] 所述控制器基于所述安装策略,选择所述第二转发节点,其中,所述第二转发节点是能够满足在各个转发节点上安装规则的总数量最少的节点,所述各个转发节点是所述直接依赖规则对应的路径中的节点。
[0108] 具体而言,如果SDN网络中的各个转发节点的网络负载利用率小于第一预设门限,表示当前网络的规则空间利用率不是很高,为了追求整体性能,则控制器可以将安装规则的总数量最少作为安装策略。控制器根据安装规则的总数量最少的安装策略,选择上述第二转发节点。这里,若采用第二转发节点作为直接依赖规则对应的路径的起始节点,可以保证网络中的安装规则的总数量最少。
[0109] 可选地,上述第一预设门限可以是预配置的,也可以是控制器基于网络的需求确定的,对此不作限定。
[0110] 情形二:
[0111] 所述控制器根据SDN中各个转发节点的负载情况,确定所述安装策略,包括:
[0112] 当所述SDN中存在转发节点的网络负载利用率大于或等于第一预设门限,则所述安装策略为负载均衡策略;
[0113] 其中,所述控制器根据所述安装策略,确定所述多个转发节点中的第二转发节点,包括:
[0114] 所述控制器基于所述负载均衡策略,选择所述第二转发节点,其中,所述第二转发节点是能够均衡流表空间负载的节点,所述流表空间负载是所述直接依赖规则对应的路径中的负载。
[0115] 可选地,流表空间也可以替换为规则空间,对此不作限定。
[0116] 具体而言,如果SDN网络中的各个转发节点的网络负载利用率大于或等于第一预设门限,表示当前网络出现了流表空间利用率过高的网络瓶颈节点,则控制器可以采用负载均衡策略作为安装策略。控制器根据负载均衡策略,选择上述第二转发节点。这里,若采用第二转发节点作为直接依赖规则对应的路径的起始节点,可以均衡网络中的流表空间利用率,避免出现流表空间利用率过高的瓶颈节点。
[0117] 应理解,这里只是以上述情形一和情形二为例进行说明,并不对本申请实施例的保护范围构成限定。
[0118] 还应理解,在上述情形一和情形二中,如果存在多个选择,则基于转发路径拉伸最小的安装方法选择第二转发节点,即第二转发节点满足:从第二转发节点到达目的节点的路径最短或跳数最少。
[0119] 还应理解,上述网络负载利用率可以理解为用于表示转发节点的负载情况的一个具体的量化指标,但本申请实施例并不限于此,实际中还可以采用其他指标描述负载情况。
[0120] 还应理解,本申请实施例引入的第一预设门限也可以替换为一个区间或范围,本申请实施例对此不作限定。比如,如果网络负载利用率处于一个预设的区间或范围内,则所述安装策略为在各个转发节点上安装规则的总数量最少的策略,或者,如果网络负载利用率处于另一个预设的区间或范围内,则所述安装策略为负载均衡策略。
[0121] 为了便于本领域技术人员理解本申请实施例的技术方案,下面将结合网络拓扑图举例进行描述。
[0122] 举例来说,图4示出了现有技术中规则安装的一个示意图。以图4中的拓扑为例,该拓扑包括交换机s1,s2,s3,s4,s5,s6,s7,s8,s9,以及与交换机s4连接的ICN缓存节点,与交换机s5连接的ICN缓存节点,与交换机s6连接的ICN缓存节点。其中,s1为入口交换机。控制器中存在4个规则,分别为规则R1,规则R2,规则R3和规则R4。规则R1的目的节点为s4连接的ICN缓存节点,规则R2的目的节点为s6连接的ICN缓存节点,规则R3和规则R4的目的节点为s5连接的ICN缓存节点。规则R1,规则R2,规则R3和规则R4的优先级分别为1、2、3、4(值越大,优先级越高)。其中,R1的匹配域为01**********,R2的匹配域为0***10******,R3的匹配域为01**10**11**,R4的匹配域为00**10**10**。用户向网络发送内容请求,该内容请求对应内容的ID为“010011001111”。对于上述内容“010011001111”,若采用传统的内容请求转发规则安装方式,控制器确定“010011001111”与规则R1匹配。另外,基于规则关系,控制器确定规则R2和规则R3为规则R1的直接依赖规则,规则R4为规则R1的间接依赖规则(其中,规则R2为间接依赖规则的中间规则)。控制器根据每个规则的转发策略,得到如图4中的安装规则,共需安装15条规则,且s1中承担的规则数量较多。
[0123] 图5示出了本申请实施例中安装规则的方法的一个示意性流程图。若采用本申请实施例中的方法,上述内容请求“010011001111”到达入口交换机s1后,触发控制器进行规则查询和安装,如图5所示,具体可以包括如下步骤:
[0124] 步骤1,控制器基于查询请求得到主规则和直接依赖规则。
[0125] 比如,入口交换机s1将用户的内容请求“010011001111”发送到控制器进行规则查询。控制器通过查询,发现主规则为R1,直接依赖规则包括R2和R3,这里不需要考虑间接依赖规则R4。
[0126] 步骤2,控制器基于主规则确定主规则对应的路径。
[0127] 其中,主规则R1的主路径为(s1-s2-s3-s8-s4)。控制器在主规则对应的路径上安装R1。进一步地,控制器可以根据网络负载情况,在主规则R1的主路径(s1-s2-s3-s8-s4)的内部节点中选择直接依赖规则R2和R3的中转点(即上述第二转发节点)。
[0128] 这里,中转点可以是控制器根据不同的安装策略确定的。其中,安装策略可以依赖于网络负载情况。
[0129] 步骤3,控制器判断网络中是否存在规则空间利用率大于80%(即上述第一预设门限)的节点。
[0130] 应理解,这里只是以第一预设门限的取值是80%为例进行描述,并不构成具体限定,第一预设门限的取值可以按照需要灵活选取。
[0131] 还应理解,规则空间利用率可以理解为网络负载利用率或流表空间负载,这里只是以规则空间利用率为例进行描述,并不造成限定。
[0132] 可选地,若网络中所有转发节点的负载对应的规则空间利用率均小于80%,则执行步骤4.1;若网络中存在转发节点的负载对应的规则空间利用率大于或等于80%,则执行步骤4.2。
[0133] 步骤4.1,若网络中所有转发节点的负载对应的规则空间利用率均小于80%,那么控制器可以决定依据安装规则最少的安装策略,为直接依赖规则选择中转点。控制器基于中转点,得到如图6中的安装规则,共需安装9条规则(具体即图6中各个交换机上安装规则的总数)。具体如图6所示,R2和R3的中转点为交换机s3。s3中的规则将R2指向下一跳交换机s6,从而到达与s6连接的ICN缓存节点。s3中的规则将R3指向下一跳交换机s5,从而到达与s5连接的ICN缓存节点。
[0134] 或者,步骤4.2,若网络中存在转发节点的负载对应的规则空间利用率大于或等于80%(比如s1和s3的规则空间利用率大于80%),那么控制器可以触发负载均衡策略,为直接依赖规则选择中转点(即上述第二转发节点)。控制器基于中转点,得到如图7中的安装规则,共需安装12条规则(具体即图7中各个交换机上安装规则的总数)。具体如图7所示,控制器比较s2、s3、s8、s4这四个潜在的中转点选择,发现s8作为R2和R3中转点的方式能够均衡规则空间负载,因此s8成为R2和R3的中转点。其中,R3通过s8、s9、s6、s5到达与s5连接的ICN缓存节点。R2通过s8、s9、s6到达与s6连接的ICN缓存节点。
[0135] 步骤5,控制器基于步骤4.1或步骤4.2确定的中转点,确定直接依赖规则对应的路径,并在相应的交换机上安装相应规则。
[0136] 这里,通过图6可知,若采用安装规则最少的安装策略,网络中总计需要安装9条规则;通过图7可知,若采用负载均衡策略,网络中总计需要安装12条规则。因此,不论采用哪种方式,安装的规则总数量均小于图4中的规则总数。
[0137] 综上所述,本申请实施例的SDN中安装规则的方法,可以兼顾网络中的规则安装数量以及转发节点的规则空间负载,能够为依赖规则的安装提供更加灵活的选择方式。
[0138] 应理解,图6和图7的例子仅仅是为了便于本领域技术人员理解本申请实施例,并非要将本申请实施例限于例示的具体场景。本领域技术人员根据图6和图7的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
[0139] 上面结合图1至图7详细描述了软件定义网络SDN中安装规则的方法。下面将结合图8和图9描述根据本申请实施例的装置。应理解,方法实施例所描述的技术特征同样适用于以下装置实施例。
[0140] 图8示出了根据本申请实施例的控制器800的示意性框图。所述控制器800应用于包括多个转发节点的网络中(比如SDN网络)。如图8所示,所述控制器800包括:
[0141] 接收模块810,用于接收来自所述多个转发节点中第一转发节点的查询请求,所述查询请求用于查询转发规则;
[0142] 获取模块820,用于根据所述查询请求,获取主规则和直接依赖规则;
[0143] 第一确定模块830,用于确定所述多个转发节点中的第二转发节点,所述第二转发节点是所述主规则对应的路径中的一个节点,所述第二转发节点与所述第一转发节点不同;
[0144] 所述第一确定模块830,还用于根据所述第二转发节点确定所述直接依赖规则对应的路径,其中,所述第二转发节点是所述直接依赖规则对应的路径的起始节点;
[0145] 安装模块840,用于在所述直接依赖规则对应的路径上安装对应的规则。
[0146] 可选地,所述直接依赖规则与所述主规则存在重叠且所述直接依赖规则的优先级高于所述主规则。
[0147] 可选地,所述控制器800还包括:
[0148] 第二确定模块850,用于确定安装策略,所述安装策略表示安装所述直接依赖规则的转发节点需要满足的条件;
[0149] 其中,所述第一确定模块830具体用于:
[0150] 根据所述安装策略,确定所述多个转发节点中的第二转发节点,所述第二转发节点满足所述安装策略对应的条件。
[0151] 可选地,所述第二确定模块850具体用于:
[0152] 根据所述网络中各个转发节点的负载情况,确定所述安装策略。
[0153] 在一种可能的实现方式中,所述第二确定模块850用于根据网络中各个转发节点的负载情况,确定所述安装策略,具体包括:
[0154] 当所述网络中各个转发节点的网络负载利用率均小于第一预设门限,则所述安装策略为在各个转发节点上安装规则的总数量最少的策略;
[0155] 其中,所述第一确定模块用于根据所述安装策略,确定所述多个转发节点中的第二转发节点,具体包括:
[0156] 基于所述安装策略,选择所述第二转发节点,其中,所述第二转发节点是能够满足在各个转发节点上安装规则的总数量最少的节点,所述各个转发节点是所述直接依赖规则对应的路径中的节点。
[0157] 在一种可能的实现方式中,所述第二确定模块850用于根据所述网络中各个转发节点的负载情况,确定所述安装策略,包括:
[0158] 当所述网络中存在转发节点的网络负载利用率大于或等于第一预设门限,则所述安装策略为负载均衡策略;
[0159] 其中,所述第一确定模块830用于根据所述安装策略,确定所述多个转发节点中的第二转发节点,具体包括:
[0160] 基于所述负载均衡策略,选择所述第二转发节点,其中,所述第二转发节点是能够均衡流表空间负载的节点,所述流表空间负载是所述直接依赖规则对应的路径中的负载。
[0161] 可选地,在获取所述主规则后,所述第一确定模块还用于:
[0162] 确定所述主规则对应的路径;
[0163] 所述安装模块840还用于:在所述主规则对应的路径上安装所述主规则。
[0164] 可选地,所述第一确定模块830用于根据所述第二转发节点确定所述直接依赖规则对应的路径,具体包括:
[0165] 选择所述第二转发节点到达目的节点的跳数最少的路径,作为所述直接依赖规则对应的路径。
[0166] 应理解,根据本申请实施例的控制器800可对应于前述方法实施例中安装规则的方法,并且控制器800中的各个模块的上述和其它管理操作和/或功能分别为了实现前述各个方法的相应步骤,因此也可以实现前述方法实施例中的有益效果,为了简洁,这里不作赘述。
[0167] 还应理解,上述控制器800中包括的各个模块可以通过软件和/或硬件实现。
[0168] 图9示出了根据本申请实施例的安装规则的装置900的示意性框图。如图9所示,该装置900包括:处理器901、存储器902和收发器903。
[0169] 处理器901、存储器902和收发器903之间通过内部连接通路互相通信,传递控制和/或数据信号。在一个可能的设计中,处理器901、存储器902和收发器903可以通过芯片实现。该存储器902可以存储程序代码,处理器901调用存储器902存储的程序代码,以实现该装置900的相应功能。
[0170] 还应理解,在本实施例中,控制器800是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路ASIC、电路、执行一个或多个软件或固件程序的处理器和存储器、集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到控制器800可以采用上述图9所示的形式。比如,确定模块(包括第一确定模块830和第二确定模块850)、获取模块820或者安装模块840可以通过图9所示的处理器901和存储器902来实现。接收模块810可以通过图9所示的收发器903来实现。具体地,收发器903可以具体包括接收器(可对应于接收模块910)和发送器(若需要,可对应于发送模块)。
具体的,处理器通过执行存储器中存储的计算机程序来实现。可选地,当所述控制器800是芯片时,那么接收模块810的功能和/或实现过程还可以通过管脚或电路等来实现。可选地,所述存储器为所述芯片内的存储单元,比如寄存器、缓存等,所述存储单元还可以是所述计算机设备内的位于所述芯片外部的存储单元,如图9所的存储器902。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0171] 上述本申请实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,还可以是系统芯片(System On Chip,SoC),还可以是中央处理器(Central Processor Unit,CPU),还可以是网络处理器(Network Processor,NP),还可以是数字信号处理电路(Digital Signal Processor,DSP),还可以是微控制器(Micro Controller Unit,MCU),还可以是可编程控制器(Programmable Logic Device,PLD)或其他集成芯片。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0172] 可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0173] 应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0174] 还应理解,本申请实施例引入的编号“第一”,“第二”,…等,只是为了便于描述,区分不同的对象,比如,区分不同的“转发节点”等,并不对本申请实施例构成限定。
[0175] 还应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0176] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0177] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0178] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0179] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0180] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0181] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0182] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。