一种路由收敛的方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种路由收敛的方法及装置。
背景技术
随着数据中心的数据访问量逐渐增大以及用户对网络可靠性的要求越来越高,堆叠技术应运而生。堆叠技术是指将至少两台独立的网络设备通过堆叠端口连接起来,组成堆叠系统。从逻辑上来说,该堆叠系统相当于一台独立的网络设备,用户可以通过一个IP地址来管理和维护该堆叠系统。堆叠系统中的网络设备存在主设备(即处于主状态的网络设备)和备设备(即处于备状态的网络设备)之分。主设备负责对堆叠系统进行统一管理以及集中式协议处理。
等价多路径(Equal-Cost Multipath,ECMP)是指网络中存在多条到达同一目的地址的路径,并且这些路径所需要的开销相同。当堆叠系统支持ECMP时,主设备会运行动态路由协议,生成交换芯片路由表、交换芯片ECMP表以及交换芯片下一跳表,并将上述交换芯片表项下发给堆叠系统中的各个备设备。堆叠系统中的各个网络设备会根据上述交换芯片表项转发数据。
现有技术中,当主设备故障时,堆叠系统中的某一备设备会倒换为主设备。之后,新的主设备会重新运行动态路由协议,在路由收敛后,更新交换芯片表项;并将更新后的交换芯片表项下发给堆叠系统中的备设备,以便于堆叠系统能够正常转发数据。
但是,在获取到更新后的交换芯片表项之前,堆叠系统中的各个网络设备依旧按照原先的交换芯片表项转发数据。而原先的交换芯片表项中存在下一跳的出端口属于原先的主设备的情况。由于原先的主设备已经故障,因此原先的主设备的出端口不能正常使用。若数据由原先的主设备的出端口转发,则会出现数据丢失的问题,影响堆叠系统的正常运行。现有技术中,新的主设备需要运行较长时间的动态路由协议才能实现路由收敛,导致堆叠系统中的网络设备在较长的时间内必须根据原先的交换芯片表项转发数据,进而造成堆叠系统在主设备故障后的较长时间内不能正常运行。
发明内容
本申请提供一种路由收敛的方案,用于解决现有技术中堆叠系统在主设备故障后的较长时间内不能正常运行的问题。
为了达到上述目的,本申请实施例如下技术方案:
第一方面,本申请实施例提供一种路由收敛的方法,所述方法包括:
目标设备接收主设备下发的交换芯片表项,所述交换芯片表项用于向堆叠系统中的网络设备指示到达不同目的地址的负载路由,所述负载路由包括下一跳的出端口;
目标设备倒换为主设备;
目标设备根据检测到的无效的出端口,修改交换芯片表项,以删除交换芯片表项中与无效的出端口相关的负载路由;
目标设备将修改后的交换芯片表项下发给备设备,以便于备设备根据修改后的交换芯片表项实现路由收敛。
第二方面,本申请实施例提供一种路由收敛的装置,所述装置包括:
收发单元,用于接收主设备下发的交换芯片表项,所述交换芯片表项用于向堆叠系统中的网络设备指示到达不同目的地址的负载路由,所述负载路由包括下一跳的出端口;
倒换单元,用于将自身倒换为主设备;
修改单元,用于根据检测到的无效的出端口,修改交换芯片表项,以删除交换芯片表项中与无效的出端口相关的负载路由;
所述收发单元,还用于将修改后的交换芯片表项下发给备设备,以便于备设备根据修改后的交换芯片表项实现路由收敛。
第三方面,本申请实施例提供一种网络设备,所述网络设备包括:
通信接口,用于接收主设备下发的交换芯片表项,所述交换芯片表项用于向堆叠系统中的网络设备指示到达不同目的地址的负载路由,所述负载路由包括下一跳的出端口;
处理器,用于将所述网络设备倒换为主设备;
所述处理器,还用于检测到无效的出端口,指示交换芯片修改交换芯片表项;
所述交换芯片,用于根据所述处理器的指示,修改交换芯片表项,以删除交换芯片表项中与无效的出端口相关的负载路由;
所述通信接口,还用于将修改后的交换芯片表项下发给备设备,以便于备设备根据修改后的交换芯片表项实现路由收敛。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有一个或多个程序,所述一个或多个程序包括指令,当所述网络设备的处理器执行所述指令时,所述网络设备执行如第一方面或第一方面的任一种可能的实现方式中所述的路由收敛的方法。
本申请实施例提供一种路由收敛的方法及装置,目标设备根据检测到的无效的出端口,删除交换芯片表项中与无效的出端口相关的负载路由,从而生成修改后的交换芯片表项。目标设备将修改后的交换芯片表项下发给备设备;备设备根据修改后的交换芯片表项转发数据,不会通过无效的出端口转发数据,避免数据丢失的问题,实现负载路由的重新收敛。可以理解的是,相比于现有技术中新的主设备运行动态路由协议实现路由收敛所需的时间,本申请实施例中目标设备检测到无效的出端口所需的时间较少,从而本申请实施例的技术方案能够更快地更新交换芯片表项,更快地使堆叠系统的负载路由重新收敛,进而缩短堆叠系统在主设备故障后不能正常运行的时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种堆叠系统的示例性网络拓扑图;
图2为本申请实施例提供的一种堆叠系统的交换芯片表项生成示意图;
图3为本申请实施例提供的一种路由收敛的方法的流程图;
图4为本申请实施例提供的一种出端口检测方法的流程图;
图5为本申请实施例提供的一种路由收敛的装置的结构示意图;
图6为本申请实施例提供的另一种路由收敛的装置的结构示意图;
图7为本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
为了便于下文的理解,本申请实施例先具体介绍现有技术中堆叠系统的主设备如何生成交换芯片表项,堆叠系统中的网络设备如何根据交换芯片表项转发数据,以及现有技术中堆叠系统在主设备故障后的处理流程。
图1是一种堆叠系统的示例性网络拓扑图。其中,网络设备L1、L2、L3组成一个堆叠系统LW,网络设备L1、L2、L3分别通过路由器R1、R2、R3连接互联网。假设互联网中存在IP地址A、B、C,网络设备L1为主设备,则网络设备L1会通过地址解析协议(Address ResolutionProtocol,ARP)学习到ARP表(该ARP表保存每个下一跳的IP地址和MAC地址的对应关系),并通过动态路由协议(例如开放式最短路径最先协议(Open Shortest Path First,OSPF))生成堆叠系统LW到达互联网的路由表。该路由表如表一所示:
表一
如图2所示,网络设备L1将学习到的路由表和ARP表发送给转发信息库(ForwardInformation Base,FIB),FIB根据上述路由表和ARP表,分别生成软件的交换芯片路由表、交换芯片ECMP表和交换芯片下一跳表;FIB会调用交换芯片提供的应用程序编程接口(Application Programming Interface,API),将其生成的交换芯片路由表、交换芯片ECMP表和交换芯片下一跳表等交换芯片表项写入交换芯片中。
堆叠系统根据写入交换芯片的交换芯片表项进行数据转发。堆叠系统中的网络设备先根据数据转发的目的地址,从交换芯片路由表中确定ECMP索引;再根据确定的ECMP索引,从交换芯片ECMP表中确定下一跳索引;之后根据确定的下一跳索引,从交换芯片下一跳表中确定下一跳IP地址、下一跳MAC地址以及出端口;最后根据确定的下一跳IP地址、下一跳MAC地址和出端口,将数据转发出去。需要说明的是,由于堆叠系统是支持ECMP的,因此一个ECMP索引可能对应多个下一跳索引,并且这些索引对应的下一跳的出端口可能分布在不同的设备上。这种情况下,数据会平均地从这多个下一跳索引分别对应的出端口发送出去,以达到负载均衡的效果。
为了便于理解,结合图2中的交换芯片表项,以将数据从堆叠系统转发到IP地址A为例进行说明。由于数据转发的目的地址是IP地址A,因此能够从交换芯片路由表中确定ECMP索引为1,从而能够确定下一跳索引1、2、3,进而确定下一跳的出端口Port1/1、Port1/2、Port1/3。数据会平均地从这三个出端口发送出去。
现有技术中,当堆叠系统的主设备出现故障时,堆叠系统的某一备设备会倒换为新的主设备;新的主设备会重新运行动态路由协议,并在路由收敛后更新交换芯片表项;然后将更新后的交换芯片表项下发给堆叠系统中的备设备,以便于堆叠系统能够正常转发数据。
但是,在获取到更新后的交换芯片表项之前,堆叠系统中的各个网络设备依旧按照原先的交换芯片表项转发数据。而网络设备根据原先的交换芯片表项转发数据,可能会出现数据丢失的问题,影响堆叠系统的正常运行。结合图2中的交换芯片表项进行说明,假设主设备L1故障,若在获取到更新后的交换芯片表项之前,若网络设备L2或L3需要将数据转发到IP地址A,则数据会平均地通过Port1/1、Port1/2、Port1/3这三个出端口转发。但因为Port1/1不能正常使用,所以由Port1/1转发的数据会被丢失,导致堆叠系统LW不能正常运行。
申请人发现:现有技术中,新的主设备需要运行较长时间的动态路由协议才能实现路由收敛,导致堆叠系统中的网络设备在较长的时间内必须根据原先的交换芯片表项转发数据,进而造成堆叠系统在主设备故障后的较长时间内不能正常运行。
为了解决上述问题,本申请实施例提供一种路由收敛的方法,如图3所示,所述方法包括:
101、目标设备接收主设备下发的交换芯片表项。
其中,所述交换芯片表项用于向堆叠系统中的网络设备指示到达不同目的地址的负载路由,所述负载路由包括下一跳的出端口。交换芯片表项包括:交换芯片路由表,交换芯片下一跳表和交换芯片ECMP表。
需要说明的是,目标设备可以是堆叠系统中权限最高的备设备,或者是堆叠系统中预设的备设备。在主设备故障的情况下,目标设备能够自动倒换为新的主设备,负责管理堆叠系统。
具体实现过程中,主设备可以周期性地向备设备下发交换芯片表项;或者主设备仅在更新交换芯片表项后,向备设备下发更新后的交换芯片表项。备设备接收到所述交换芯片表项之后,会将所述交换芯片表项保存在自身的FIB中;同时备设备通过交换芯片提供的API,将所述交换芯片表项写入自身的交换芯片中,以便于备设备的交换芯片根据所述交换芯片表项转发数据。
可选的,主设备下发的交换芯片表项携带有主设备的标识。这样,在堆叠系统发生主备倒换后,备设备能够根据不同交换芯片表项携带的主设备的标识,区分新旧主设备下发的交换芯片表项。
102、目标设备倒换为主设备。
具体实现过程中,主设备会周期性向目标设备发送心跳信息,该心跳信息表示主设备正常工作。若目标设备在预设时长内未接收到目标设备的心跳信息,则目标设备能够判断出主设备不能正常工作。这种情况下,目标设备会自动倒换为新的主设备。
或者,目标设备定期检测主设备的工作状态;当目标设备检测到主设备不处于正常工作状态时,目标设备自动倒换为新的主设备。
103、目标设备根据检测到的无效的出端口,修改交换芯片表项,以删除交换芯片表项中与无效的出端口相关的负载路由。
具体实现过程中,目标设备根据检测到的交换芯片下一跳表中无效的出端口,删除交换芯片ECMP表中无效的下一跳索引,所述无效的下一跳索引为与无效的出端口对应的下一跳索引。
结合图2中的交换芯片表项进行说明,假设Port1/2为无效的出端口,Port11对应的下一跳索引为下一跳索引2,则下一跳索引2为无效的下一跳索引。
可选的,“删除交换芯片ECMP表中无效的下一跳索引”的具体实现方法为:目标设备遍历软件保存(FIB中)的交换芯片ECMP表中的各个ECMP组,确定目标ECMP组。其中,所述ECMP组为ECMP索引对应的所有下一跳索引组成的集合,所述目标ECMP组为包含无效的下一跳索引的ECMP组。之后,目标设备将目标ECMP组中无效的下一跳索引删除。
结合图2中的交换芯片表项进行说明,假设下一跳索引1为无效的下一跳索引,因此ECMP索引1对应的ECMP组为目标ECMP组,目标设备需要从ECMP索引1对应的ECMP组中删除下一跳索引1。删除无效的下一跳索引的的交换芯片ECMP表如表二所示。
表二
另外,在目标设备删除软件保存的交换芯片ECMP表中无效的下一跳索引时,目标设备相应地删除自身交换芯片存储的交换芯片ECMP表中无效的下一跳索引。具体的,目标设备通过使用交换芯片提供相应的接口来实现上述操作,该接口的实现方式可以但不局限于通过传递一个ECMP索引以及该ECMP组中所有的下一跳索引给交换芯片,让交换芯片中对应的ECMP组内的索引信息更新成设定的值。
可以理解的是,在目标设备删除自身交换芯片存储的交换芯片ECMP表中无效的下一跳索引后,目标设备的交换芯片不会通过无效的出端口转发数据,从而目标设备能够实现路由收敛。
104、目标设备将修改后的交换芯片表项下发给备设备,以便于备设备根据修改后的交换芯片表项实现路由收敛。
具体实现过程中,目标设备将自身FIB中存储的所述修改后的交换芯片表项下发给备设备。可选的,目标设备也可以将自身交换芯片中所述修改后的交换芯片表项下发给备设备。
在接收目标设备发送的所述修改后的交换芯片表项后,备设备更新自身FIB中存储的交换芯片表项;并且,备设备通过交换芯片提供的API,将所述修改后的交换芯片表项写入自身的交换芯片中,以便于备设备的交换芯片根据所述修改后的交换芯片表项转发数据。由于备设备的交换芯片根据所述修改的交换芯片表项转发数据时,不会通过无效的出端口转发数据,因此备设备能够实现路由收敛。
可以理解的是,交换芯片表项一般由多个不同的表组成。目标设备在修改交换芯片表项时,可能仅修改其中一部分的表。在这种情况下,目标设备可以仅将修改过的表下发给备设备,以节约主备设备之间的流量消耗和时间消耗。示例性的,在步骤103的具体实现过程中,目标设备仅修改交换芯片ECMP表。因此,在目标设备向备设备下发修改后的交换芯片表项时,目标设备可以仅向备设备下发修改后的交换芯片ECMP表。
本申请实施例提供一种路由收敛的方法,目标设备根据检测到的无效的出端口,删除交换芯片表项中与无效的出端口相关的负载路由,从而生成修改后的交换芯片表项。目标设备将修改后的交换芯片表项下发给备设备;备设备根据修改后的交换芯片表项转发数据,不会通过无效的出端口转发数据,避免数据丢失的问题,实现负载路由的重新收敛。可以理解的是,相比于现有技术中新的主设备运行动态路由协议实现路由收敛所需的时间,本申请实施例中目标设备检测到无效的出端口所需的时间较少,从而本申请实施例的技术方案能够更快地更新交换芯片表项,更快地使堆叠系统的负载路由重新收敛,进而缩短堆叠系统在主设备故障后不能正常运行的时间。
可以理解的是,步骤103“目标设备根据检测到的无效的出端口,修改交换芯片表项,以删除交换芯片表项中与无效的出端口相关的负载路由”的实现前提是目标设备检测到无效的出端口。基于此,本申请实施例提供一种出端口检测方法。如图4所示,所述方法包括:
201、目标设备获取交换芯片表项中各个出端口的全局端口号。
其中,所述全局端口号包括:设备号和本地端口号。设备号为出端口所属的网络设备的设备号。本地端口号为出端口在自身所属的网络设备上的端口号。
示例性的,全局端口号可以为:Port1/2,其中设备号为2,本地端口号为Port1。
一般情况下,交换芯片下一跳表存储着下一跳的出端口,因此目标设备能从交换芯片下一跳表中获取到各个出端口的全局端口号。
202、目标设备检测出端口的设备号是否在堆叠系统的拓扑信息中。
其中,堆叠系统的拓扑信息包括组成堆叠系统的网络设备的设备号。主设备可以运行相关的拓扑协议获取堆叠系统的拓扑信息。
具体实现过程中,若出端口的设备号在堆叠系统的拓扑信息中,则说明该出端口所属的网络设备是堆叠系统的组成部分,从而执行步骤203;若出端口的设备号不在堆叠系统的拓扑信息中,则说明出端口所属的网络设备不是堆叠系统的组成部分,对于堆叠系统而言,该出端口是无效的出端口,从而执行步骤204。
可以理解的是,故障的网络设备不属于堆叠系统的组成部分,整个堆叠系统的拓扑信息中不包括故障的网络设备的设备号。
203、若所述出端口的设备号在堆叠系统的拓扑信息中,则目标设备检测所述出端口的本地端口号是否有效;
具体实现过程中,目标设备检测出端口所属的网络设备是否存在该出端口的本地端口号,并且该出端口的本地端口号是否处于UP状态。若出端口所属的网络设备不存在该出端口的本地端口号,或者该出端口的本地端口号不处于UP状态,则该出端口的本地端口号是无效的,从而执行步骤204;若出端口所属的网络设备存在该出端口的本地端口号,并且该出端口的本地端口号处于UP状态,则该出端口的本地端口号是有效的,从而执行步骤205。
204、目标设备确定所述出端口是无效的出端口。
205、目标设备确定所述出端口是有效的出端口。
通过上述方法,目标设备能够检测出交换芯片表项中无效的出端口。
如图5所示,本申请实施例提供一种路由收敛的装置,所述装置包括:
收发单元11,用于接收主设备下发的交换芯片表项,所述交换芯片表项用于向堆叠系统中的网络设备指示到达不同目的地址的负载路由,所述负载路由包括下一跳的出端口。
倒换单元12,用于将自身倒换为主设备。
修改单元13,用于根据检测到的无效的出端口,修改交换芯片表项,以删除交换芯片表项中与无效的出端口相关的负载路由。
所述收发单元11,还用于将修改后的交换芯片表项下发给备设备,以便于备设备根据修改后的交换芯片表项实现路由收敛。
一种具体的实现方式中,所述交换芯片表项包括:交换芯片ECMP表和交换芯片下一跳表。所述修改单元13,具体用于根据检测到的交换芯片下一跳表中无效的出端口,删除交换芯片ECMP表中无效的下一跳索引,所述无效的下一跳索引为与无效的出端口对应的下一跳索引。
一种具体的实现方式中,所述修改单元,具体用于遍历交换芯片ECMP表中的各个ECMP组,确定目标ECMP组,所述目标ECMP组为包含无效的下一跳索引的ECMP组;将目标ECMP组中无效的下一跳索引删除。
本申请实施例提供一种路由收敛的装置,修改单元根据检测到的无效的出端口,删除交换芯片表项中与无效的出端口相关的负载路由,从而生成修改后的交换芯片表项。收发单元将修改后的交换芯片表项下发给备设备;备设备根据修改后的交换芯片表项转发数据,不会通过无效的出端口转发数据,避免数据丢失的问题,实现负载路由的重新收敛。可以理解的是,相比于现有技术中新的主设备运行动态路由协议实现路由收敛所需的时间,本申请实施例中检测到无效的出端口所需的时间较少,从而本申请实施例提供的路由收敛的装置能够更快地更新交换芯片表项,更快地使堆叠系统的负载路由重新收敛,进而缩短堆叠系统在主设备故障后不能正常运行的时间。
基于图5所示的装置的基础上,本申请实施例提供另一种路由收敛的装置。如图6所示,所述装置还包括:
检测单元14,用于获取交换芯片表项中各个出端口的全局端口号,所述全局端口号包括:设备号和本地端口号;检测出端口的设备号是否在堆叠系统的拓扑信息中;若所述出端口的设备号不在堆叠系统的拓扑信息中,则确定所述出端口是无效的出端口;若所述出端口的设备号在堆叠系统的拓扑信息中,则检测所述出端口的本地端口号是否有效;若所述出端口的本地端口号无效,则确定所述出端口是无效的出端口。
通过上述装置,能够检测出交换芯片表项中无效的出端口。
如图7所示,本申请实施例提供一种网络设备,所述网络设备包括:处理器21、存储器22、通信接口23、总线24以及交换芯片25。所述处理器21、存储器22、通信接口23和交换芯片25通过所述总线24互相通信。其中,所述存储器22用于存储多个指令以实现本申请提供的路由收敛的方法。所述交换芯片25用于根据自身存储的交换芯片表项转发数据。所述通信接口23,用于接收主设备下发的交换芯片表项,所述交换芯片表项用于向堆叠系统中的网络设备指示到达不同目的地址的负载路由,所述负载路由包括下一跳的出端口;所述处理器21,用于将所述网络设备倒换为主设备;所述处理器21,还用于检测到无效的出端口,指示交换芯片25修改交换芯片表项;所述交换芯片25,用于根据所述处理器21的指示,修改交换芯片表项,以删除交换芯片表项中与无效的出端口相关的负载路由;所述通信接口23,还用于将修改后的交换芯片表项下发给备设备,以便于备设备根据修改后的交换芯片表项实现路由收敛。
其中,交换芯片表项包括:交换芯片路由表、交换芯片等价多路径ECMP表和交换芯片下一跳表。
进一步的,所述处理器21,还用于检测到的交换芯片下一跳表中存在无效的出端口,指示所述交换芯片25删除交换芯片ECMP表中无效的下一跳索引,所述无效的下一跳索引为与无效的出端口对应的下一跳索引。所述交换芯片25,具体用于根据所述处理器21的指示,删除交换芯片ECMP表中无效的下一跳索引。
进一步的,所述处理器21,还用于获取交换芯片表项中各个出端口的全局端口号,所述全局端口号包括:设备号和本地端口号;检测出端口的设备号是否在堆叠系统的拓扑信息中;若所述出端口的设备号不在堆叠系统的拓扑信息中,则确定所述出端口是无效的出端口;若所述出端口的设备号在堆叠系统的拓扑信息中,则检测所述出端口的本地端口号是否有效;若所述出端口的本地端口号无效,则确定所述出端口是无效的出端口。
进一步的,所述处理器21,还用于遍历软件保存的交换芯片ECMP表中的各个ECMP组,确定目标ECMP组,所述目标ECMP组为包含无效的下一跳索引的ECMP组;指示所述交换芯片25删除交换芯片ECMP表中目标ECMP组存在的无效的下一跳索引。所述交换芯片25,还用于根据所述处理器21的指示,删除交换芯片ECMP表中目标ECMP组存在的无效的下一跳索引。
其中,本申请实施例所述的处理器21可以是一个处理器,也可以是多个处理元件的统称。例如,该处理器21可以是中央处理器(Central Processing Unit,简称CPU),也可以是特定集成电路(Application Specific Integrated Circuit,简称ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digitalsignal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)。
存储器22可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码等。且存储器22可以包括随机存储器(RAM),也可以包括非易失性存储器(non-volatile memory),例如磁盘存储器,闪存(Flash)等。
总线24可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。该总线24可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序加载到计算机上被计算机执行时,使计算机执行如图3或图4所示的方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。