[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] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。