一种路由处理的方法、装置及设备与流程

文档序号:17320921发布日期:2019-04-05 21:32阅读:220来源:国知局
一种路由处理的方法、装置及设备与流程

本申请涉及网络通信领域,尤其涉及一种路由处理的方法、装置及设备。



背景技术:

随着技术的发展,网络设备中可以运行软件模块,例如路由处理模块,路由处理模块用于对路由信息进行处理,并输出路由处理结果。为了保证路由处理模块的可靠性,传统技术通过一些检测路由处理模块是否能够正常运行的手段来决定是否对路由处理模块进行容错保护。例如,检测路由处理模块在运行时所采用的进程是否正常、网络设备的内存是否够用、cpu资源消耗是否正常等。如果检测到进程不正常、内存不够用或者cpu资源消耗不正常等路由处理模块运行的问题,则认为路由处理模块的运行出现问题,需要采取容错保护措施来降低业务受损的概率。

但是,路由处理模块除了可能出现运行故障以外,还有可能发生逻辑错误,尽管路由处理模块运行状况良好,但是由于路由处理模块内部发生逻辑错误,所以输出的数据是错误的,从而影响后续业务处理。例如路由处理模块发布错误的路由,可能导致业务数据丢失或者报文转发错误,从而造成业务中断。

但是,目前没有技术方案能够解决由于路由处理模块内部发生逻辑错误而导致的业务中断的问题。



技术实现要素:

本申请实施例提供了一种路由处理的方法、装置及相关设备,用于解决由于路由处理模块内部发生逻辑错误而导致的业务中断的问题。

第一方面,本申请实施例提供了一种路由处理的方法,该方法可以应用于第一网络设备。第一网络设备可以是路由器、交换机、软件定义网络(softwaredefinednetwork,sdn)控制器等嵌入式设备,也可以是虚拟化的运行在服务器上的网络功能虚拟(networkfunctionvirtualization,nfv)设备,本申请不做具体限定。第一网络设备上运行有多个路由处理模块,多个路由处理模块实现相同的路由处理功能。例如,路由处理功能包括:根据路由信息生成路由表项,并根据生成的路由表项更新第一网络设备的路由表(routinginformationbase,rib),或根据路由信息生成路由更新报文,该路由更新报文用于对其他网络设备中的路由表进行更新等。更新路由表可以是对路由表中的路由表项进行添加、删除或修改。上述路由处理的方法包括如下步骤:首先,获取多个路由处理模块基于输入的相同的路由信息而分别输出的路由处理结果。其次,对多个路由处理模块输出的路由处理结果进行分析,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果,第一路由处理结果可以视为逻辑正确的路由处理模块输出的路由处理结果,根据第一路由处理结果执行相应的动作,避免业务数据丢失或报文转发错误,从而解决了所导致的业务中断问题,提高路由处理模块的可靠性。

由于多个路由处理模块输出的路由处理结果的时间可能不同,所以为了确定获取到了多个路由处理模块的路由处理结果,可选的,方法还包括:在获得多个路由处理模块的路由处理结果之后,启动定时器;当定时器超时时触发执行对多个路由处理模块输出的路由处理结果进行分析的步骤。

由于一般情况下,出现逻辑错误的路由处理模块属于少数,正常的路由处理模块属于多数,所以可以按照“少数服从多数”的原则对多个路由处理模块输出的路由处理结果进行分析。

作为其中一种可能的实现方式,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果包括:对多个路由处理模块输出的路由处理结果进行分组,每一组包括的路由处理结果相同;当存在一组中的路由处理结果数目大于其他任意一组中的路由处理结果的数目时,从一组路由处理结果中选择任意一个路由处理结果作为第一路由处理结果。

如果多个路由处理模块包括至少三个路由处理模块,那么作为其中一种可能的实现方式,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果包括:当至少三个路由处理模块输出的路由处理结果中相同的路由处理结果的数目大于路由处理结果总数目的二分之一时,从相同的路由处理结果中选择任意一个路由处理结果作为第一路由处理结果。

为了提高分析效率,可选的,对多个路由处理模块输出的路由处理结果进行分析包括:分别计算多个路由处理模块中每个路由处理模块输出的路由处理结果的校验和(checksum),并对多个路由处理模块分别对应的校验和进行分析。

具体的对校验和分析方法和上述对路由处理结果的分析方法相类似,即也可以采用“少数服从多数”的原则来进行分析。

作为其中一种可能的实现方式,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果包括:对多个路由处理模块对应的校验和进行分组,每一组包括的校验和相同;当存在一组中的校验和的数目大于其他任意一组中的校验和的数目时,从一组校验和中选择任意一个校验和对应的路由处理结果作为第一路由处理结果。

如果多个路由处理模块包括至少三个路由处理模块,那么作为另一种可能的实现方式,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果包括:当至少三个路由处理模块对应的校验和中相同的校验和的数目大于校验和总数目的二分之一时,根据分析结果从相同的校验和中选择任意一个校验和,并将任意一个校验和对应的路由处理结果作为第一路由处理结果。

在本申请实施例中,不同的路由处理结果,执行的动作可能不同。

如果第一路由处理结果包括第一路由表项,那么根据第一路由处理结果执行相应的动作包括:根据第一路由表项对第一网络设备的原路由表进行更新,得到第一网络设备的第一路由表。

如果第一路由处理结果包括第一路由更新信息,那么根据第一路由处理结果执行相应的动作包括:向第二网络设备发送第一路由更新报文,第一路由更新报文中携带第一路由更新信息,第一路由更新信息用于对第二网络设备的原路由表进行更新,得到第二网络设备的第一路由表。

为了在解决业务中断问题的基础上提高业务处理效率,可选的,可以在根据第一路由处理结果执行相应的动作之前,根据第二路由处理结果执行相应的动作。其中,第二路由处理结果是多个路由处理模块中其中一个路由处理模块输出的路由处理结果。如果第一路由处理结果与第二路由处理结果是相同的,那么相当于验证了第二路由处理结果是正确的,这样既避免了业务中断,保障了路由处理模块的可靠性,又提高了业务处理效率。如果第一路由处理结果与第二路由处理结果不同,可以采取补救措施进行补救,以最终达到根据第一路由处理结果执行相应动作的效果。具体的补救措施根据路由处理结果的不同而可以不同。

具体的,若第一路由处理结果包括第一路由表项,多个路由处理模块输出的路由处理结果包括第二路由表项,那么在根据第一路由处理结果执行相应的动作之前,方法还包括:根据第二路由表项对第一网络设备的原路由表进行更新,得到第一网络设备的第二路由表。而根据第一路由处理结果执行相应的动作包括:当第一路由表项与第二路由表项不同时,根据第一路由表项和第二路由表项之间的差异确定路由更新数据;根据路由更新数据对第二路由表进行更新,得到第一网络设备的第一路由表。

若第一路由处理结果包括第一路由更新信息,多个路由处理模块输出的路由处理结果包括第二路由更新信息,那么在根据第一路由处理结果执行相应的动作之前,方法还包括:向第二网络设备发送第二路由更新报文,第二路由更新报文中携带第二路由更新信息,第二路由更新信息用于对第二网络设备的原路由表进行更新,得到第二网络设备的第二路由表。而根据第一路由处理结果执行相应的动作包括:当第二路由更新信息与第一路由更新信息不同时,根据第二路由更新信息与第一路由更新信息之间的差异得到第三路由更新信息;向第二网络设备发送第一路由更新报文,第一路由更新报文中携带第三路由更新信息,第三路由更新信息用于对第二网络设备的第二路由表进行更新,得到第二网络设备的第一路由表。

可选的,上述获取多个路由处理模块基于输入的相同的路由信息而分别输出的路由处理结果,以及对多个路由处理模块输出的路由处理结果进行分析,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果的步骤,可以由逻辑仲裁数据库执行。也就是说,逻辑仲裁数据库不仅具有存储多个路由处理模块输出的路由处理结果的功能,还具有对路由处理结果的分析功能。

可选的,根据第一路由处理结果执行相应的动作的步骤可以由逻辑仲裁模块执行。

第二方面,本申请实施例还提供了一种路由处理的装置,应用于第一网络设备,第一网络设备上运行有多个路由处理模块,多个路由处理模块实现相同的路由处理功能,装置包括:获取模块,用于获取多个路由处理模块基于输入的相同的路由信息而分别输出的路由处理结果;分析模块,用于对多个路由处理模块输出的路由处理结果进行分析,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果;执行模块,用于根据第一路由处理结果执行相应的动作。

可选的,装置还包括:启动模块,用于在获得多个路由处理模块的路由处理结果之后,启动定时器;当定时器超时时触发分析模块。

可选的,分析模块,用于对多个路由处理模块输出的路由处理结果进行分组,每一组包括的路由处理结果相同;当存在一组中的路由处理结果数目大于其他任意一组中的路由处理结果的数目时,从一组路由处理结果中选择任意一个路由处理结果作为第一路由处理结果。

可选的,多个路由处理模块包括至少三个路由处理模块;

分析模块,用于当至少三个路由处理模块输出的路由处理结果中相同的路由处理结果的数目大于路由处理结果总数目的二分之一时,从相同的路由处理结果中选择任意一个路由处理结果作为第一路由处理结果。

可选的,对多个路由处理模块输出的路由处理结果进行分析包括:分别计算多个路由处理模块中每个路由处理模块输出的路由处理结果的校验和;对多个路由处理模块分别对应的校验和进行分析。

可选的,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果包括:对多个路由处理模块对应的校验和进行分组,每一组包括的校验和相同;当存在一组中的校验和的数目大于其他任意一组中的校验和的数目时,从一组校验和中选择任意一个校验和对应的路由处理结果作为第一路由处理结果。

可选的,多个路由处理模块包括至少三个路由处理模块;

根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果包括:当至少三个路由处理模块对应的校验和中相同的校验和的数目大于校验和总数目的二分之一时,根据分析结果从相同的校验和中选择任意一个校验和,并将任意一个校验和对应的路由处理结果作为第一路由处理结果。

可选的,第一路由处理结果包括第一路由表项;

执行模块,用于根据第一路由表项对第一网络设备的原路由表进行更新,得到第一网络设备的第一路由表。

可选的,第一路由处理结果包括第一路由表项,多个路由处理模块输出的路由处理结果包括第二路由表项;

装置还包括:更新模块,用于根据第二路由表项对第一网络设备的原路由表进行更新,得到第一网络设备的第二路由表;

执行模块,用于当第一路由表项与第二路由表项不同时,根据第一路由表项和第二路由表项之间的差异确定路由更新数据;根据路由更新数据对第二路由表进行更新,得到第一网络设备的第一路由表。

可选的,第一路由处理结果包括第一路由更新信息;

执行模块,用于向第二网络设备发送第一路由更新报文,第一路由更新报文中携带第一路由更新信息,第一路由更新信息用于对第二网络设备的原路由表进行更新,得到第二网络设备的第一路由表。

可选的,第一路由处理结果包括第一路由更新信息,多个路由处理模块输出的路由处理结果包括第二路由更新信息;

装置还包括:发送模块,用于向第二网络设备发送第二路由更新报文,第二路由更新报文中携带第二路由更新信息,第二路由更新信息用于对第二网络设备的原路由表进行更新,得到第二网络设备的第二路由表;

执行模块,用于当第二路由更新信息与第一路由更新信息不同时,根据第二路由更新信息与第一路由更新信息之间的差异得到第三路由更新信息;向第二网络设备发送第一路由更新报文,第一路由更新报文中携带第三路由更新信息,第三路由更新信息用于对第二网络设备的第二路由表进行更新,得到第二网络设备的第一路由表。

可选的,装置包括逻辑仲裁数据库,逻辑仲裁数据库包括获取模块和分析模块。

可选的,执行模块为逻辑仲裁模块。

第三方面,本申请实施例还提供了一种路由处理的设备,设备为第一网络设备,第一网络设备包括存储单元和处理单元,

存储单元,用于存储指令;

处理单元,用于执行存储器中的指令,执行上述路由处理的方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述路由处理的方法。

附图说明

图1为本申请实施例提供的路由处理的方法的流程图;

图2为本申请实施例提供的一种路由处理的方法的另外一个流程图;

图3为本申请实施例提供的一种路由处理的方法的另外一个流程图;

图4为本申请实施例提供的路由处理的装置的结构框图;

图5为本申请实施例提供的路由处理的设备的硬件架构图。

具体实施方式

本申请实施例提供了一种路由处理的方法、装置及相关设备,解决了由于路由处理模块发生逻辑错误而导致的业务中断的问题,提高路由处理模块的可靠性。

下面结合附图对本申请的技术方案进行详细阐述。

参见图1,该图为本申请实施例提供的路由处理的方法的流程图。

本申请实施例提供的路由处理的方法可以应用于第一网络设备,第一网络设备可以是路由器、交换机、sdn控制器等嵌入式设备,也可以是虚拟化的运行在服务器上的nfv设备,本申请不做具体限定。

第一网络设备上运行有多个路由处理模块,多个路由处理模块独立运行,用于实现相同的路由处理功能,例如,路由处理功能包括:根据路由信息生成路由表项,并根据生成的路由表项更新第一网络设备的路由表,或根据路由信息生成路由更新报文,该路由更新报文用于对其他网络设备中的路由表进行更新等。更新路由表可以是对路由表中的路由表项进行添加、删除或修改。多个路由处理模块的版本可以相同或不同,为实现相同的路由功能多个路由处理模块各自运行的路由算法可以相同或不同。

具体的,在本申请实施例中,第一网络设备的执行上述路由处理方法的模块可以称为控制模块。该方法具体包括如下步骤:

s101:控制模块获取多个路由处理模块基于输入的相同的路由信息而分别输出的路由处理结果。

在本申请实施例中,为了判断多个路由处理模块是否出现逻辑错误,可以向多个路由处理模块输入相同的路由信息。多个路由处理模块通过对输入其的路由信息进行处理,从而分别输出各自的路由处理结果。

如果多个路由处理模块都没有出现逻辑错误,那么多个路由处理模块经过对相同的路由信息进行处理会得到相同的路由处理结果。而如果多个路由处理模块中有一个或一个以上的路由处理模块出现逻辑错误,那么出现逻辑错误的路由处理模块输出的路由处理结果在很大程度上就与其他没有出现逻辑错误的路由处理模块输出的路由处理结果不同。所以可以通过对多个路由处理模块输出的路由处理结果进行分析,以判断哪个路由处理模块出现逻辑错误,哪个路由处理模块没有出现逻辑错误。

其中,输入多个路由处理模块的路由信息例如可以来自其他网络设备发送的报文,该报文例如可以为边界网关协议(bordergatewayprotocol,bgp)更新(update)消息,该bgpupdate消息携带有网络层可达信息(networklayerreachabilityinformation,nlri)。报文中携带的路由信息例如可以包括源互联网协议(internetprotocol,ip)地址、源媒体访问控制(mediaaccesscontrol,mac)地址、目的地址、协议号、端口号或自治域标识等。输入多个路由模块的路由信息还可以是第一网络设备的邻居节点的路由信息或其他类型的路由信息。

多个路由处理模块对路由信息进行处理输出的路由处理结果可以是路由表项或者是路由更新信息等。

其中,路由表项用于对第一路由设备的路由表进行更新,路由表项中可以例如包括目的ip地址、下一跳地址和出接口等。

路由更新信息用于对第二网络设备的路由表进行更新,路由更新信息中可以包括更新指令和更新数据。更新指令例如包括根据更新数据修改第二网络设备的路由表的路由表项、删除第二网络设备的路由表的路由表项和/或增加第二网络设备的路由表的路由表项。

s102:控制模块对多个路由处理模块输出的路由处理结果进行分析,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果。

s103:控制模块根据第一路由处理结果执行相应的动作。

由于一般情况下,出现逻辑错误的路由处理模块属于少数,正常的路由处理模块属于多数,所以可以按照“少数服从多数”的原则对多个路由处理模块输出的路由处理结果进行分析。

作为其中一种可能的实现方式,s102可以为:对多个路由处理模块输出的路由处理结果进行分组,将所有相同的路由处理结果分到同一个组中。其中,每个路由处理模块输出一个路由处理结果,每一组包括的一个或多个路由处理,当某一组中存在多个路由处理结果时,这些路由处理结果要相同。当存在一组的路由处理结果的数目大于其他任意一组中的路由处理结果的数目时,根据所述一组路由处理结果中的任意一个路由处理结果执行相应的动作。

例如,假设两个路由处理模块输出的路由处理结果相同,则这两个路由处理模块输出的路由处理结果可以被划分为一组,所以可以从该组的两个路由处理结果中任选其中一个作为第一路由处理结果,并根据该第一路由处理结果执行相应的动作。

例如,假设三个路由处理模块输出的路由处理结果可以分为两组,第一组包括两个路由处理结果,这两个路由处理结果相同,第二组包括一个路由处理结果,第二组包括的一个路由处理结果与第一组的两个路由处理结果不同。由于第一组包括的路由处理结果的数目大于第二组包括的路由处理结果的数目,所以可以从第一组的两个路由处理结果中选择任意一个作为第一路由处理结果,并根据该第一路由处理结果执行相应的动作。

再例如,假设六个路由处理模块输出的路由处理结果可以分为两组,第一组包括四个路由处理结果,这四个路由处理结果相同,第二组包括两个路由处理结果,这两个路由处理结果相同,但不同于第一组的四个路由处理结果。由于第一组包括的路由处理结果的数目大于第二组包括的路由处理结果的数目,所以可以从第一组的四个路由处理结果中选择任意一个作为第一路由处理结果,并根据该第一路由处理结果执行相应的动作。

再例如,假设六个路由处理模块输出的路由处理结果可以分为三组,第一组包括三个相同的路由处理结果;第二组包括两个相同的路由处理结果;第三组包括一个路由处理结果。这三组包括的路由处理结果不同。由于相比较于第二组包括的路由处理结果的数目和第三组包括的路由处理结果的数目,第一组包括的路由处理结果的数目最多,所以可以从第一组的三个相同的路由处理结果中任选一个作为第一路由处理结果,并根据该第一路由处理结果执行相应的动作。

在实际应用中,如果路由处理结果数目最多的组不止一个,则可以进行告警,以通过其他方式决定选择哪个组的路由处理结果作为第一路由处理结果,或者,直接从多个数目最多的组中任选一个组,将该组中的任意一个路由处理结果作为第一路由处理结果。

例如,假设两个路由处理模块输出的路由处理结果分为两组,每组分别对应一个路由处理结果。也就是说,这两个路由处理模块输出的路由处理结果不同,所以无法区分哪个路由处理模块发生逻辑错误,所以可以通过告警进行人工介入来确定哪个路由处理结果为第一路由处理结果。或者,直接从两个路由处理结果中选择其中一个作为第一路由处理结果。

再例如,假设五个路由处理模块输出的路由处理结果可以分为三组,第一组包括两个相同的路由处理结果,第二组也包括两个相同的路由处理结果,第三组包括一个路由处理结果。第一组包括的路由处理结果的数目和第二组包括的路由处理结果的数目相同,无法区分哪个是发生逻辑错误的路由处理模块输出的路由处理结果,哪个是没有发生逻辑错误的路由处理模块输出的路由处理结果。所以可以通过告警进行人工介入来确定是将第一组还是第二组中的路由处理结果的其中一个作为第一路由处理结果,或者,可以从第一组路由处理结果或第二组路由处理结果中任选一组路由处理结果,然后从任选的该组路由处理结果中任选一个作为第一路由处理结果。

当然,可以理解的是,上述实现方式并不构成对s102的限定,本领域技术人员还可以根据具体情况自行设计。例如,多个路由处理模块包括至少三个路由处理模块,当至少三个路由处理模块输出的路由处理结果中相同的路由处理结果的数目大于路由处理结果总数目的二分之一时,根据分析结果从相同的路由处理结果中选择任意一个作为第一路由处理结果,并所述第一路由处理结果执行相应的动作。

假设五个路由处理模块输出的路由处理结果中包括三个相同的路由处理结果,那么可以从这三个相同的路由处理结果中任选一个作为第一路由处理结果。

另外,在本申请实施例中,不同的路由处理结果,执行的动作可能不同。

例如,若第一路由处理结果为第一路由表项,那么执行的动作可以包括对第一网络设备的原路由表进行更新,得到第一网络设备的第一路由表。其中,第一网络设备的原路由表是指在第一网络设备中存储的、被更新前的路由表。若第一路由处理结果的为第一路由更新信息,那么执行的动作可以包括向第二网络设备发送第一路由更新报文,第一路由更新报文中可以携带第一路由更新信息,第一路由更新信息用于对第二网络设备的原路由表进行更新,得到第二网络设备的第一路由表。第二网络设备的原路由表是指在第二网络设备中存储的、被更新前的路由表。第二网络设备可以是路由器、交换机或sdn控制器等,本申请不做具体限定。

本申请实施例通过分别获取多个路由处理模块基于输入的相同的路由信息所输出的路由处理结果,对多个路由处理模块输出的路由处理结果进行分析,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果,第一路由处理结果可以视为正常的路由处理模块输出的路由处理结果,这样根据第一路由处理结果,即正确的路由处理结果执行相应的动作,能够解决所导致的业务中断问题,提高路由处理模块的可靠性。例如根据正确的第一路由表项对第一网络设备的原路由表进行更新,得到的第一网络设备的第一路由表为正确的路由表,基于该正确的路由表就可以进行报文的接收或转发,避免出现因报文丢失或转发错误而导致的业务中断的问题。同理,向第二网络设备发送正确的第一路由更新报文,以使第二网络设备根据正确的第一路由更新报文对第二网络设备的原路由表进行更新,得到第二网络设备的第一路由表,基于正确的第一路由表可以进行报文的接收或转发,避免出现因报文丢失或转发错误而导致的业务中断的问题。

此外,路由处理模块输出的路由处理结果可以包括一个数据,也可以包括多个数据。如果每个路由处理模块输出的路由处理结果包括多个数据,为了提高分析效率,可以分别计算多个路由处理模块中每个路由处理模块输出的路由处理结果的校验和,然后对多个路由处理模块分别对应的校验和进行分析。

例如,路由处理模块a、路由处理模块b和路由处理模块c输出的路由处理结果均分别包括3个数据。那么可以分别计算路由处理模块a输出的3个数据的校验和a、路由处理模块b输出的3个数据的校验和b,以及路由处理模块c输出的3个数据的校验和c,并根据校验和a、校验和b以及校验和c进行分析。

具体的对校验和分析方法和上述对路由处理结果的分析方法相类似,即也可以采用“少数服从多数”的原则来进行分析。

作为其中一种可能的实现方式,对多个路由处理模块对应的校验和进行分组,每一组包括的校验和相同。当存在一组中的校验和数目大于其他任意一组中校验和的数目时,从所述一组校验和中选择任意一个校验和对应的路由处理结果作为第一路由处理结果。

作为另一种可能的实现方式,当至少三个路由处理模块对应的校验和中相同的校验和的数目大于校验和总数目的二分之一时,根据分析结果从相同的校验和中选择任意一个校验和,将任意一个校验和对应的路由处理结果作为第一路由处理结果。

当然,上述两种实现方式并不构成对本申请技术方案的限定,本领域技术人员可以根据实际情况自行设计。

参见图2,该图为本申请实施例提供的一种路由处理的方法的另外一个流程图。

本申请实施例提供的路由处理的方法可以应用于第一网络设备,第一网络设备上运行有多个路由处理模块,多个路由处理模块实现相同的路由功能。

该方法可以由控制模块执行,具体包括如下步骤:

s201:控制模块获取多个路由处理模块基于输入的相同的路由信息而分别输出的路由处理结果。

本申请实施例中,s201与s101内容相同,相关解释请参见上文,此处不再赘述。

s202:控制模块在获得所述多个路由处理模块的路由处理结果之后,启动定时器。

s203:控制模块判断定时器是否超时,若是,则触发执行s204。

在实际应用中,虽然多个路由处理模块能够实现相同的功能,但是采用的算法可能不同,有的采用较简单的算法,花费的时间较少;有的采用较复杂的算法,花费的时间较多。所以,至少三个路由处理模块输出的路由处理结果的时间可能不同。

另外,多个路由处理模块可以依次从队列中读取相同的路由信息。一些队列具有可以对路由信息进行合并处理的功能,但是合并处理需要一定的时间,在这个过程中,不同的路由处理模块在不同的时间点读取到的队列中合并处理后的路由信息可能是不同的,进而对合并的路由信息处理的时间也会不同。这也是多个路由处理模块输出的路由处理结果的时间可能不同的原因。

例如,假设队列中包括如下路由信息:新建标签为100的路由、将标签100变更为标签110和将标签110变更为标签200。假设路由信息被队列经过一次合并变为:新建标签为110的路由和将标签110变更为标签200;经过二次合并变为:新建标签为200的路由。路由处理模块a读取并处理未经合并的路由信息,路由处理模块b读取并处理经过一次合并之后的路由信息,路由处理模块c读取并处理经过二次合并之后的路由信息。那么可以理解的是,路由处理模块a输出路由处理结果的时间可能晚于路由处理模块b输出路由处理结果的时间,路由处理模块b输出路由处理结果的时间可能晚于路由处理模块c输出路由处理结果的时间。

而且,有时路由处理模块在对路由信息进行处理之后,不需要输出路由处理结果。以上述例子为例,假设路由信息中还包括删除标签为200的路由,那么路由处理模块a、b和c如果逻辑正确的话,经过对上述路由信息进行处理得到的路由处理结果进行合并,是都不需要输出路由处理结果的。假设路由处理模块a发生逻辑错误,没有对删除标签为200的路由这个路由信息进行处理,输出了对路由信息为新建标签为200的路由进行处理的路由处理结果。而路由处理模块b和路由处理模块c是正常的,不输出路由处理结果,如果一直等待路由处理模块b和路由处理模块c输出路由处理结果才执行下一步动作,显然是不可以的。

所以,在本申请实施例中,控制模块在获得所述多个路由处理模块的路由处理结果之后,启动定时器,当所述定时器超时时触发执行s204对多个路由处理模块输出的路由处理结果进行分析,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果的步骤。

在具体实现时,控制模块可以在获取到第一个路由处理结果时,启动定时器,即定时器从0开始计时。如果在定时器计时期间,控制器又获取到一个路由处理结果,则重新启动定时器,即定时器再次从0开始计时;如果定时器在计时期间,控制器没有获取到路由处理结果,则在计时超时时触发执行s204。

下面举例说明。假设控制模块在1:00首先获取到路由处理模块a输出的路由处理结果,由于此时只获取到这一个路由处理结果,所以可以从1:00开始启动定时器进行第一次计时。假设定时时间为10秒钟。假设在定时器计时5秒钟时,控制模块获取到路由处理模块b输出的路由处理结果,由于5秒小于10秒,所以可以重新启动定时器进行第二次计时。假设定时器计时到10秒时未接收到路由处理模块c输出的路由处理结果,则认为路由处理模块c输出的路由处理结果为空,因而可以按照路由处理模块a和b实际输出的路由处理结果以及路由处理模块c“输出”的为空路由处理结果进行后续的分析。

另外需要说明的是,一个路由处理结果可以包括一个或多个路由处理子结果。不同的路由处理模块基于相同的路由信息输出的一个路由处理结果中包括的路由处理子结果的个数可以相同,也可以不同。

以上述例子为例,若路由处理模块a、b和c不对各自处理得到的路由处理子结果进行合并,那么路由处理模块a输出的路由处理结果包括四个路由处理子结果。其中第一个路由处理子结果为对新建标签为100的路由进行处理得到的路由处理子结果;第二个路由处理子结果为对将标签100变更为标签110进行处理得到的路由处理子结果;第三个路由处理子结果为对将标签110变更为标签200进行处理得到的路由处理子结果;第四个路由处理子结果为对删除标签为200的路由进行处理得到的路由处理子结果。路由处理模块b输出的路由处理结果包括三个路由处理子结果,第一个路由处理子结果为对新建标签为110的路由进行处理得到的路由处理子结果;第二个路由处理子结果为对将标签110变更为标签200进行处理得到的路由处理子结果;第三个路由处理子结果为对删除标签为200的路由进行处理得到的路由处理子结果。路由处理模块c输出的路由处理结果包括两个路由处理子结果,第一个路由处理子结果为对新建标签为200的路由进行处理得到的路由处理子结果;第二个路由处理子结果为对删除标签为200的路由进行处理得到的路由处理子结果。

对于至少有一个路由处理结果中包括多个路由处理子结果的情况,控制器可以在获取到第一个路由处理子结果时,启动定时器。在定时器计时期间,若控制器又获取到一个路由处理子结果,则重新启动定时器;若在定时器计时期间,控制器没有再获取到任何路由处理子结果,则在定时器超时时触发执行s204。

例如,假设控制模块首先获取到路由处理模块a输出的第一个路由处理子结果,即对新建标签为100的路由进行处理得到的路由处理子结果,由于此时只获取到这一个路由处理子结果,所以可以启动定时器。然后,在定时器计时到3秒时,控制模块获取到路由处理模块b输出的第一个路由处理子结果,即对新建标签为110的路由进行处理得到的路由处理子结果。由于3秒小于10秒钟,所以可以重新启动定时器。接着,在定时器计时8秒时,控制模块获取到路由处理模块a输出的第二个路由处理子结果,由于8秒小于10秒,所以可以再次重新启动定时器。以此类推,直到定时器开始计时之后10秒钟之内未获取到路由处理模块a、b和c输出的路由处理子结果,则认为这三个路由处理模块输出完毕。

s204:控制模块对多个路由处理模块输出的路由处理结果进行分析,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果。

由于s204和s102的内容相同,所以相关解释请参见上文,此处不再赘述。

可以理解的是,执行s204需要花费一定的时间,影响执行相应动作(例如上文中提到的根据第一路由表项对第一网络设备的原路由表项进行更新或向第二网络设备发送第一路由更新报文等)的及时性,也就影响了业务的处理效率。所以为了提高业务的处理效率,在本申请实施例中,在执行s204的同时或之前,可以先根据多个路由处理模块中的其中一个路由处理结果执行相应的动作,该其中一个路由处理结果可以称为第二路由处理结果。输出第二路由处理结果的路由处理模块可以称为主路由处理模块,其余路由处理模块可以称为备路由处理模块。

如果第一路由处理结果与第二路由处理结果是相同的,那么相当于验证了第二路由处理结果是正确的,这样既避免了业务中断,保障了路由处理模块的可靠性,又提高了业务处理效率。如果第一路由处理结果与第二路由处理结果不同,可以采取补救措施进行补救,以最终达到根据第一路由处理结果执行相应动作的效果。具体的补救措施根据路由处理结果的不同而可以不同。

下面以第二路由处理结果包括第二路由表项或第二路由更新信息为例对上述技术方案进行详细介绍。其中,若第二路由处理结果包括第二路由表项,则执行s205和s206;若第二路由处理结果包括第二路由更新信息,则执行s207和s208。其中s205和s207可以在执行s204的同时执行,也可以在执行s204之前执行。s206和s208在s204之后执行。

下面先介绍第二路由处理结果包括第二路由表项的方案。

s205:控制模块根据第二路由表项对第一网络设备的原路由表进行更新,得到第一网络设备的第二路由表。

s206:当第一路由表项与第二路由表项不同时,控制模块根据第一路由表项和第二路由表项之间的差异确定路由更新数据,并根据路由更新数据对第二路由表进行更新,得到第一网络设备的第一路由表。

第二路由表项为主路由处理模块输出的路由表项,根据第二路由表项对路由表进行更新,可以得到第二路由表。当控制模块判断出第一路由表项与第二路由表项不同时,根据第一路由表项和第二路由表项之间的差异确定路由更新数据,并根据路由更新数据对第一网络设备的第二路由表进行更新,得到第一网络设备的第一路由表。第一网络设备的第一路由表可以视为根据第一网络设备的第一路由表项对第一网络设备的原路由表进行更新得到的路由表,第一网络设备的原路由表的定义请见上文。

例如,第二路由表项包括如下内容:目的ip地址1.1.1.1、下一跳地址2.2.2.2和出接口1。第一路由表项包括如下内容:目的ip地址1.1.1.1、下一跳地址3.3.3.3和出接口2。可以看出,第一路由表项和第二路由表项是不同的,表现在下一跳地址和出接口不同。由于已经根据第二路由表项对第一网络设备的原路由表进行了更新,所以需要根据第一路由表项和第二路由表项之间的差异确定路由更新数据,以将第二路由表修改为根据第一路由表项对原路由表更新得到的第一路由表。例如路由更新数据可以包括:将与目的ip地址1.1.1.1对应的下一跳地址更新为3.3.3.3,以及将对应的出接口更新为出接口2。

本申请实施例当控制模块发现第一路由表项与第二路由表项不同时,及时的根据第一路由表项和第二路由表项之间的差异确定路由更新数据,并根据路由更新数据对第二路由表进行更新,以使第一网络设备的错误的第二路由表尽快修复为正确的第一路由表,在提高业务处理效率的基础上,尽可能的解决业务中断的问题。

下面接着介绍第二路由处理结果包括第二路由更新信息的方案。

s207:控制模块向第二网络设备发送第二路由更新报文,第二路由更新报文携带第二路由更新信息。

第二路由更新信息用于对第二网络设备的原路由表进行更新,得到第二网络设备的第二路由表。第二网络设备的原路由表的定义请见上文。

s208:当第二网络设备的第一路由更新信息与第二网络设备的第二路由更新信息不同时,控制模块根据第一路由更新信息与第二路由更新信息之间的差异得到第三路由更新信息,并向第二网络设备发送第一路由更新报文,第一路由更新报文携带第三路由更新信息。

其中,第三路由更新信息用于对第二网络设备的第二路由表进行更新,得到第二网络设备的第一路由表。第二网络设备的第一路由表可以视为根据第一路由更新信息对第二网络设备的原路由表进行更新得到的路由表。

例如,假设第一路由更新信息包括:将第二网络设备的原路由表中目的ip地址为5.5.5.5中的原始下一跳ip地址更新为100.100.100.1、创建目的ip地址为1.1.1.1和2.2.2.2的路由表项。而第二路由更新信息包括:将第二网络设备的原路由表中目的ip地址为5.5.5.5中的原始下一跳ip地址更新为100.100.100.2、创建目的ip地址为2.2.2.2和3.3.3.3的路由表项。

那么,第三路由更新信息可以为:第二网络设备的原路由表中目的ip地址为5.5.5.5中的原始下一跳ip地址由100.100.100.2更新为100.100.100.1,创建目的ip地址为1.1.1.1的路由表项,以及删除目的地址为3.3.3.3的路由表项。在第二网络设备根据上述第三路由更新信息对第二网络设备的第二路由表更新之后,第二网络设备就可以得到可以视为直接根据第一路由更新信息对第二网络设备的原路由表更新得到的第一路由表。

此外,当发现第一路由处理结果与第二路由处理结果不同时,可以在多个路由处理模块中重新选择一个路由处理模块作为主路由处理模块,该路由处理模块可以为输出第一路由处理结果的路由处理模块,原来的主路由处理模块降为备路由处理模块,这样就可以在保证业务处理效率的基础上,进一步降低业务中断的风险。

下面以一个应用场景为例介绍本申请实施例提供的路由处理的方法。

在该应用场景中,网络设备s包括第一路由处理模块、第二路由处理模块和第三路由处理模块,这三个路由处理模块实现的路由功能都相同,即都用于对该网络设备的路由表进行更新。其中,第一路由处理模块为主路由处理模块,第二路由处理模块和第三路由处理模块均为备路由处理模块。

此外,网络设备s还包括控制模块。其中,控制模块可以包括逻辑仲裁模块(logicalvotingmodule,lvm)、逻辑仲裁数据库(logicalvotingdatabase,lvdb)和领导选举服务(leaderelectionservice,les)。

其中,lvm,用于获取第一路由处理模块、第二路由处理模块和第三路由处理模块分别基于输入的相同的路由信息而输出的路由表项,并将其发送给lvdb。以及,用于根据第一路由处理模块(即主路由处理模块)输出的路由表项对网络设备s的路由表进行更新。

lvdb,用于接收并存储第一路由处理模块、第二路由处理模块和第三路由处理模块输出的路由表项。

在本申请实施例中,lvdb不仅具有存储功能,还具有分析功能。

具体的,lvdb,还用于对路由表项进行分析,根据分析结果从第一路由处理模块、第二路由处理模块和第三路由处理模块输出的路由表项中选择第一路由表项。以及判断第一路由表项与第一路由处理模块输出的第二路由表项是否相同,如果不同,则通知lvm第一路由处理模块输出的第二路由表项是错误的路由表项,并且根据第一路由处理模块输出的第二路由表项和第一路由表项之间的差异得到路由更新数据。

lvm,还用于根据路由更新数据对网络设备s的路由表进行更新,并且通知les废除第一路由处理模块作为主路由处理模块的身份,并且选举第一路由表项对应的路由处理模块为主路由处理模块。

这几个模块具体执行的步骤和实现的功能参见下文。

参见图3,本申请实施例提供的路由处理的方法包括如下步骤:

s301:lvm获取第一路由处理模块、第二路由处理模块和第三路由处理模块分别基于输入的相同的路由信息而输出的路由表项,并向lvdb发送路由表项。

s302:lvdb接收第一路由处理模块、第二路由处理模块和第三路由处理模块分别输出的路由表项,并进行存储。

在本申请实施例中,lvdb可以是内存数据库,也可以是持久化存储的数据库。lvdb中的数据可以按照键(key)-值(value)方式存储,也可以采用结构化的格式存储。

在本申请实施例中,第一路由处理模块、第二路由处理模块和第三路由处理模块分别输出的路由表项可以包括前缀信息和下一跳信息。其中,前缀信息可以存储在lvdb的前缀信息表中,下一跳信息可以存储在lvdb的下一跳信息表中。

例如,参见表1和表2,表1为前缀信息表,前缀信息表中存储有第一路由处理模块输出的前缀信息;表2为下一跳信息表,下一跳信息表中存储有第一路由处理模块输出的下一跳信息。表1和表2中设置有“可直接比较”字段和“表间引用,间接比较”字段。其中“可直接比较”字段的意思是可以直接用于后续s305的步骤。“表间引用,间接比较”字段的意思是需要从其他表中找到对应的信息进行后续s305的步骤。比如说,前缀信息表中包括下一跳标识(nexthopid)1000,根据下一跳标识1000可以查找表2,获取与该下一跳标识1000对应的下一跳信息。

表1

表2

s303:lvm根据第一路由处理模块输出的第二路由表项(例如表1和表2中存储的前缀信息和下一跳信息)对网络设备s中的原路由表进行更新,得到路由表l1。

s304:lvdb在获取第一路由处理模块、第二路由处理模块和第三路由处理模块输出各自的路由表项之后,启动定时器,并在定时器超时时触发执行s305。

假设lvdb首先获取到第一路由处理模块输出的路由表项,并启动定时器开始计时。假设定时时间为10秒。lvdb在计时6秒时获取到第三路由处理模块输出的路由表项,重新启动定时器进行计时。lvdb在计时9秒时获取到第二路由处理模块输出的路由表项,再次重新启动定时器。在定时器计时到达10秒时,lvdb可以触发执行s305。

s305:lvdb分别计算第一路由处理模块、第二路由处理模块和第三路由处理模块分别输出的路由表项的校验和。

s306:lvdb对第一路由处理模块、第二路由处理模块和第三路由处理模块对应的校验和进行分析,根据分析结果从第一路由处理模块、第二路由处理模块和第三路由处理模块分别对应的校验和中选择第一校验和。

s307:当第一校验和与第一路由处理模块对应的第二校验和相同,则lvdb不做处理;当第一校验和与第二校验和不同,则lvdb根据第一校验和对应的路由表项与第一路由处理模块输出的第二路由表项之间的差异得到路由更新数据,并把路由更新数据发送给lvm。

s308:lvm接收来自lvdb的路由更新数据,并利用路由更新数据对路由表l1进行更新,得到路由表l2。

利用路由更新数据对路由表l1更新得到的路由表l2,应当与直接利用上述第一路由表项对网络设备s中的原路由表进行更新得到的路由表相同,这样才能既保证业务处理的效率,又解决了业务中断的问题。

s309:当第一校验和与第二校验和不同,lvm通知les第一路由处理模块输出的第二路由表项是错误的。

s310:les将第二路由处理模块或第三路由处理模块选举为主路由处理模块,将第一路由处理模块降为备路由处理模块。

当第一校验和与第二校验和不同,那么说明第一校验和是第二路由处理模块或第三路由处理模块输出的路由处理结果对应的校验和。这是因为按照“少数服从多数”原则,当第二路由处理模块对应的校验和与第三路由处理模块对应的校验和相同,且与第一路由处理模块对应的校验和不同时,从第二路由处理模块对应的校验和与第三路由处理模块对应的校验和中选取一个校验和作为第一校验和。所以在选举时,可以从第二路由处理模块和第三路由处理模块中选举其中一个作为主路由处理模块,并且将第一路由处理模块降为备路由处理模块。这样,当下一次lvm再执行根据第二路由处理结果执行相应动作时,就可以根据逻辑正确的主路由处理模块输出的路由处理结果来执行,从而提高业务处理效率。

参见图4,本申请实施例还提供了一种路由处理的装置,应用于第一网络设备,该第一网络设备可以实现图1至图3所示实施例中第一网络设备的功能。该第一网络设备上运行有多个路由处理模块,多个路由处理模块实现相同的路由处理功能。

该装置包括:获取模块101、分析模块102和执行模块103。其中,获取模块101用于执行图1所示实施例中的s101、图2所示实施例中的s201以及图3所示实施例中的s301和s302。分析模块102用于执行图1所示实施例中的s102、图2所示实施例中的s204以及图3所示实施例中的s305和s306。执行模块103用于执行图1所示实施例中的s103、图2所示实施例中的s206和/或s208、以及图3所示实施例中的s307和s308。具体的,

获取模块101,用于获取多个路由处理模块基于输入的相同的路由信息而分别输出的路由处理结果;

分析模块102,用于对多个路由处理模块输出的路由处理结果进行分析,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果;

执行模块103,用于根据第一路由处理结果执行相应的动作。

本申请实施例通过分别获取多个路由处理模块基于输入的相同的路由信息所输出的路由处理结果,对多个路由处理模块输出的路由处理结果进行分析,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果,第一路由处理结果可以视为正常的路由处理模块输出的路由处理结果,这样根据第一路由处理结果,即正确的路由处理结果,执行相应的动作能够解决所导致的业务中断,提高路由处理模块的可靠性。

可选的,装置还包括:启动模块,用于在获得多个路由处理模块的路由处理结果之后,启动定时器;当定时器超时时触发分析模块。

可选的,分析模块,用于对多个路由处理模块输出的路由处理结果进行分组,每一组包括的路由处理结果相同;当存在一组中的路由处理结果数目大于其他任意一组中的路由处理结果的数目时,从一组路由处理结果中选择任意一个路由处理结果作为第一路由处理结果。

可选的,多个路由处理模块包括至少三个路由处理模块;

分析模块,用于当至少三个路由处理模块输出的路由处理结果中相同的路由处理结果的数目大于路由处理结果总数目的二分之一时,从相同的路由处理结果中选择任意一个路由处理结果作为第一路由处理结果。

可选的,对多个路由处理模块输出的路由处理结果进行分析包括:分别计算多个路由处理模块中每个路由处理模块输出的路由处理结果的校验和;对多个路由处理模块分别对应的校验和进行分析。

可选的,根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果包括:对多个路由处理模块对应的校验和进行分组,每一组包括的校验和相同;当存在一组中的校验和的数目大于其他任意一组中的校验和的数目时,从一组校验和中选择任意一个校验和对应的路由处理结果作为第一路由处理结果。

可选的,多个路由处理模块包括至少三个路由处理模块;

根据分析结果从多个路由处理模块输出的路由处理结果中选择第一路由处理结果包括:当至少三个路由处理模块对应的校验和中相同的校验和的数目大于校验和总数目的二分之一时,根据分析结果从相同的校验和中选择任意一个校验和,并将任意一个校验和对应的路由处理结果作为第一路由处理结果。

可选的,第一路由处理结果包括第一路由表项;

执行模块,用于根据第一路由表项对第一网络设备的原路由表进行更新,得到第一网络设备的第一路由表。

可选的,第一路由处理结果包括第一路由表项,多个路由处理模块输出的路由处理结果包括第二路由表项;

装置还包括:更新模块,用于根据第二路由表项对第一网络设备的原路由表进行更新,得到第一网络设备的第二路由表;

执行模块,用于当第一路由表项与第二路由表项不同时,根据第一路由表项和第二路由表项之间的差异确定路由更新数据;根据路由更新数据对第二路由表进行更新,得到第一网络设备的第一路由表。

可选的,第一路由处理结果包括第一路由更新信息;

执行模块,用于向第二网络设备发送第一路由更新报文,第一路由更新报文中携带第一路由更新信息,第一路由更新信息用于对第二网络设备的原路由表进行更新,得到第二网络设备的第一路由表。

可选的,第一路由处理结果包括第一路由更新信息,多个路由处理模块输出的路由处理结果包括第二路由更新信息;

装置还包括:发送模块,用于向第二网络设备发送第二路由更新报文,第二路由更新报文中携带第二路由更新信息,第二路由更新信息用于对第二网络设备的原路由表进行更新,得到第二网络设备的第二路由表;

执行模块,用于当第二路由更新信息与第一路由更新信息不同时,根据第二路由更新信息与第一路由更新信息之间的差异得到第三路由更新信息;向第二网络设备发送第一路由更新报文,第一路由更新报文中携带第三路由更新信息,第三路由更新信息用于对第二网络设备的第二路由表进行更新,得到第二网络设备的第一路由表。

可选的,装置包括逻辑仲裁数据库,逻辑仲裁数据库包括获取模块和分析模块。

可选的,执行模块为逻辑仲裁模块。

参见图5,本申请实施例还提供了一种控制器200,控制器200可以包括存储器201和处理器202,

所述存储器201,用于存储指令;

所述处理器202,用于执行所述存储器201中的所述指令,执行上述路由处理的方法。

存储器201和处理器202通过总线203相互连接;总线203可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

上述存储器201可以是随机存取存储器(random-accessmemory,ram)、闪存(flash)、只读存储器(readonlymemory,rom)、可擦写可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、电可擦除可编程只读存储器(electricallyerasableprogrammablereadonlymemory,eeprom)、寄存器(register)、硬盘、移动硬盘、cd-rom或者本领域技术人员知晓的任何其他形式的存储介质。

上述处理器202例如可以是中央处理器(centralprocessingunit,cpu)、通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。

本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上应用于第一网络设备的路由处理的方法。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1