发明内容
本发明实施例提供一种故障检测方法和设备,以减少用户配置的工作量。
为了达到上述目的,本发明实施例提供一种故障检测方法,应用于包括多个路由桥RB设备的多链路透明互联TRILL网络中,该方法包括以下步骤:
RB设备在收到来自其它RB设备的链路状态协议LSP报文之后,如果获知所述LSP报文用于进行TRILL故障检测,则确定本RB设备在所述TRILL网络中为树根RB设备或者叶子RB设备;
如果本RB设备为树根RB设备,则所述树根RB设备为所述其它RB设备创建TRILL快速检测TFD会话,并向所述其它RB设备发送连接检测报文CCM-TFD报文;如果在所述TFD会话的检测定时器超时之前收到来自所述其它RB设备的CCM-TFD报文,则确认所述其它RB设备没有发生故障;如果在所述TFD会话的检测定时器超时之后仍然未收到来自所述其它RB设备的CCM-TFD报文,则确认所述其它RB设备已经发生故障;
如果本RB设备为叶子RB设备,则所述叶子RB设备在确定所述其它RB设备为树根RB设备,且收到来自所述树根RB设备的CCM-TFD报文时,为所述树根RB设备创建TFD会话,并向所述树根RB设备发送CCM-TFD报文;如果在所述TFD会话的检测定时器超时之前收到来自所述树根RB设备的CCM-TFD报文,则确认所述树根RB设备没有发生故障;如果在所述TFD会话的检测定时器超时之后仍然未收到来自所述树根RB设备的CCM-TFD报文,则确认所述树根RB设备已经发生故障。
所述树根RB设备向所述其它RB设备发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为所述其它RB设备的Nickname,内层目的MAC地址为所述其它RB设备的介质访问控制MAC地址;
所述叶子RB设备向所述树根RB设备发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为所述树根RB设备的Nickname,内层目的MAC地址为所述树根RB设备的MAC地址。
所述CCM-TFD报文中携带了表明所述CCM-TFD报文用于进行TRILL故障检测的信息,且携带了发送所述CCM-TFD报文的RB设备的Nickname信息;所述LSP报文中携带有指定格式类型长度值TLV,所述指定格式TLV中携带了表明所述LSP报文用于进行TRILL故障检测的信息,且所述指定格式TLV中携带了发送所述LSP报文的RB设备的Nickname信息。
所述树根RB设备确认所述其它RB设备已经发生故障之后,所述树根RB设备向所述TRILL网络中未发生故障的RB设备发送CCM-TFD报文,所述CCM-TFD报文中携带了所述其它RB设备的Nickname信息,且所述CCM-TFD报文中携带了所述其它RB设备已经发生故障的信息,以触发所述TRILL网络中与所述其它RB设备直连的RB设备重新进行LSP更新;
所述叶子RB设备确认所述树根RB设备已经发生故障之后,所述叶子RB设备修改所述树根RB设备对应的优先级为所述TRILL网络中的最低优先级,以触发所述叶子RB设备重新选举树根RB设备。
所述树根RB设备确认所述其它RB设备已经发生故障之后,如果所述树根RB设备发现所述其它RB设备已经故障恢复,则所述树根RB设备向所述TRILL网络中未发生故障的RB设备发送CCM-TFD报文,所述CCM-TFD报文中携带了所述其它RB设备的Nickname信息,且所述CCM-TFD报文中携带了所述其它RB设备已经故障恢复的信息,以触发所述TRILL网络中与所述其它RB设备直连的RB设备重新进行LSP更新;
所述叶子RB设备确认所述树根RB设备已经发生故障之后,如果所述叶子RB设备发现所述树根RB设备已经故障恢复,则所述叶子RB设备修改所述树根RB设备对应的优先级为所述树根RB设备的初始优先级,以触发所述叶子RB设备重新选举树根RB设备。
本发明实施例提供一种路由桥RB设备,应用于包括多个RB设备的多链路透明互联TRILL网络中,所述RB设备具体包括:
接收模块,用于接收来自其它RB设备的链路状态协议LSP报文;
确定模块,用于在收到来自其它RB设备的LSP报文之后,如果获知所述LSP报文用于进行TRILL故障检测,则确定本RB设备在所述TRILL网络中为树根RB设备或者叶子RB设备;
处理模块,用于当本RB设备为树根RB设备时,为所述其它RB设备创建TRILL快速检测TFD会话,并向所述其它RB设备发送连接检测报文CCM-TFD报文;如果在所述TFD会话的检测定时器超时之前收到来自所述其它RB设备的CCM-TFD报文,则确认所述其它RB设备没有发生故障;如果在所述TFD会话的检测定时器超时之后仍然未收到来自所述其它RB设备的CCM-TFD报文,则确认所述其它RB设备已经发生故障;
当本RB设备为叶子RB设备,所述其它RB设备为树根RB设备,且收到来自所述树根RB设备的CCM-TFD报文时,为所述树根RB设备创建TFD会话,并向所述树根RB设备发送CCM-TFD报文;如果在所述TFD会话的检测定时器超时之前收到来自所述树根RB设备的CCM-TFD报文,则确认所述树根RB设备没有发生故障;如果在所述TFD会话的检测定时器超时之后仍然未收到来自所述树根RB设备的CCM-TFD报文,则确认所述树根RB设备已经发生故障。
当本RB设备为树根RB设备时,所述处理模块向所述其它RB设备发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为所述其它RB设备的Nickname,内层目的MAC地址为所述其它RB设备的介质访问控制MAC地址;当本RB设备为叶子RB设备时,所述处理模块向所述树根RB设备发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为所述树根RB设备的Nickname,内层目的MAC地址为所述树根RB设备的MAC地址。
所述CCM-TFD报文中携带了表明所述CCM-TFD报文用于进行TRILL故障检测的信息,且携带了发送所述CCM-TFD报文的RB设备的Nickname信息;所述LSP报文中携带有指定格式类型长度值TLV,所述指定格式TLV中携带了表明所述LSP报文用于进行TRILL故障检测的信息,且所述指定格式TLV中携带了发送所述LSP报文的RB设备的Nickname信息。
当本RB设备为树根RB设备时,所述处理模块,还用于在确认所述其它RB设备已经发生故障之后,向所述TRILL网络中未发生故障的RB设备发送CCM-TFD报文,所述CCM-TFD报文中携带了所述其它RB设备的Nickname信息,且所述CCM-TFD报文中携带了所述其它RB设备已经发生故障的信息,以触发TRILL网络中与所述其它RB设备直连的RB设备重新进行LSP更新;
当本RB设备为叶子RB设备时,所述处理模块,还用于在确认所述树根RB设备已经发生故障之后,修改所述树根RB设备对应的优先级为所述TRILL网络中的最低优先级,以触发所述叶子RB设备重新选举树根RB设备。
当本RB设备为树根RB设备时,所述处理模块,还用于在确认所述其它RB设备已经发生故障之后,如果发现所述其它RB设备已经故障恢复,则向所述TRILL网络中未发生故障的RB设备发送CCM-TFD报文,所述CCM-TFD报文中携带了所述其它RB设备的Nickname信息,且所述CCM-TFD报文中携带了所述其它RB设备已经故障恢复的信息,以触发所述TRILL网络中与所述其它RB设备直连的RB设备重新进行LSP更新;
当本RB设备为叶子RB设备时,所述处理模块,还用于在确认所述树根RB设备已经发生故障之后,如果发现所述树根RB设备已经故障恢复,则修改所述树根RB设备对应的优先级为所述树根RB设备的初始优先级,以触发所述叶子RB设备重新选举树根RB设备。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,在运行TRILL协议的数据中心网络中,基于TRILL协议检测RB设备的二层连通性,不需要进行CFD相关配置,减少用户配置的工作量,并可以快速感知链路故障。当检测到链路故障后,可重新触发拓扑计算,加快收敛速度。
具体实施方式
针对现有技术中存在的问题,本发明实施例提供一种故障检测方法,该方法应用于包括多个RB设备的TRILL网络(如运行TRILL协议的数据中心复杂二层组网)中,该多个RB设备中包括一个树根RB设备(Spine设备)和多个叶子RB设备(leaf设备);如图3所示,该方法包括以下步骤:
步骤301,RB设备在收到来自其它RB设备的LSP(Link State Protocol,链路状态协议)报文之后,如果获知该LSP报文用于进行TRILL故障检测,则确定本RB设备是树根RB设备还是叶子RB设备;如果本RB设备为树根RB设备,则执行步骤302;如果本RB设备为叶子RB设备,则执行步骤307。
本发明实施例中,通过在基于TRILL协议的LSP报文中增加指定格式TLV(Type Length Value,类型长度值)字段,以通过该指定格式TLV字段携带表明LSP报文用于进行TRILL故障检测的信息,并通过该指定格式TLV字段携带发送该LSP报文的RB设备的Nickname(名称)信息。
在一种优选的实现方式中,如图4所示,为指定格式TLV字段的示意图,其中:Type字段数值为20(0x14),Length字段数值为5,Value字段中携带如下内容:(1)MD level(级别)值为0,即认为全网RB设备在同一区域0中;(2)Version(版本)值为1,表明这是个LSP报文;(3)Op Code(操作码)值为1,表明LSP报文用于进行TRILL故障检测;(4)Mep ID为发出该LSP报文的RB设备Nickname值;(5)在Flags(标志)字段中,当树根RB设备认为有RB设备发生故障时,将RDI(Remote Defect indication,远端缺陷指示)置为1,CCM(Continuity Check Message,连接检测报文)Interval(间隔)表明CCM-TFD(TRILL Fast Detect,TRILL快速检测)报文发送时间间隔域的值,该值可配置(不同型号的RB设备支持的取值范围不同,以RB设备的实际情况为准),缺省时为4(即bit值为100),表明取值为1s。
步骤302,树根RB设备为其它RB设备(即叶子RB设备)创建TFD会话,并以单播方式向该其它RB设备发送CCM-TFD报文;其中,在该树根RB设备向其它RB设备所发送的CCM-TFD报文中,TRILL头部Egress RBNickname为该其它RB设备的Nickname,内层目的MAC(Media Access Control介质访问控制)地址为该其它RB设备的MAC地址。
具体的,树根RB设备在收到来自TRILL网络中其它RB设备的携带指定格式TLV字段的LSP报文后,如果发现该指定格式TLV字段中携带了表明LSP报文用于进行TRILL故障检测的信息时,需要为该其它RB设备创建对应的TFD会话,并以单播方式向该其它RB设备发送CCM-TFD报文。
本发明实施例中,该CCM-TFD报文中携带了表明CCM-TFD报文用于进行TRILL故障检测的信息,且该CCM-TFD报文中携带了发送CCM-TFD报文的RB设备的Nickname信息(即树根RB设备的Nickname信息)。
在一种优选的实现方式中,如图5所示,为CCM-TFD报文的格式示意图,其中:(1)MD level值为0,即认为全网RB设备在同一区域0中;(2)Version值为1,表明这是个CCM报文;(3)Op Code值为1,表明CCM-TFD报文用于进行TRILL故障检测;(4)Sequence Number(序列号),表明发送该CCM-TFD报文的序列号,同一个RB设备发送的CCM-TFD报文的序列号依次递增;(5)Nick Name,表明发送该CCM-TFD报文的RB设备的Nickname信息;(6)CCM-TFD Other TLV,在CCM-TFD报文中携带,用于通告故障或故障恢复RB设备的信息,具体通知过程和方式在后续过程中阐述。
本发明实施例中,树根RB设备以单播方式向其它RB设备(即叶子RB设备)发送CCM-TFD报文后,叶子RB设备在收到CCM-TFD报文时,会以单播方式向树根RB设备返回CCM-TFD报文;其中,在该叶子RB设备向树根RB设备发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为树根RB设备的Nickname,内层目的MAC地址为树根RB设备的MAC地址。
步骤303,树根RB设备判断在TFD会话的检测定时器超时之前是否收到来自其它RB设备的CCM-TFD报文;如果是,则执行步骤304;如果否(即TFD会话的检测定时器超时后仍未收到CCM-TFD报文),则执行步骤305。
其中,TFD会话的检测定时器默认为3.5个CCM报文发送周期。
步骤304,树根RB设备确认其它RB设备没有发生故障,结束流程。
树根RB设备在收到来自其它RB设备的CCM-TFD报文后,确认其它RB设备没有发生故障,并更新该其它RB设备对应的TFD会话的检测定时器。
步骤305,树根RB设备确认其它RB设备已经发生故障,并执行步骤306。
步骤306,树根RB设备确认其它RB设备已经发生故障后,向TRILL网络中未发生故障的RB设备发送CCM-TFD报文,该CCM-TFD报文中携带了其它RB设备的Nickname信息,并携带了其它RB设备已经发生故障的信息,以触发TRILL网络中与其它RB设备直连的RB设备重新进行LSP更新。
具体的,树根RB设备上会启动对所有叶子RB设备的故障检测,当检测到某个叶子RB设备(后续以叶子RB设备1为例)故障后,树根RB设备向TRILL网络中未发生故障的叶子RB设备发送CCM-TFD报文,该CCM-TFD报文中携带了叶子RB设备1的Nickname信息,并携带了叶子RB设备1已经发生故障的信息;未发生故障的叶子RB设备在收到该CCM-TFD报文后,可以获知叶子RB设备1已经发生故障,对于与叶子RB设备1直连的叶子RB设备,将和叶子RB设备1相连的链路cost变为最大,触发本地LSP的更新,从而触发网络中生成树的重新计算,隔离出故障的叶子RB设备1。
此外,树根RB设备在确认叶子RB设备1已经发生故障后,树根RB设备上会继续启用对叶子RB设备1的CCM-TFD检测;如果在触发路由计算之后,叶子RB设备1已经从TRILL网络中移除,则删除该CCM-TFD检测。
在一种优选实现方式中,如图5所示,通过在CCM-TFD报文中携带的CCM-TFD Other TLV(此时为Trill-Error TLV)中携带发生故障叶子RB设备的Nickname信息;在Trill-Error TLV中,Type字段数值等于10(0x0A),Length字段数值为2,Value字段数值为发生故障叶子RB设备的Nickname信息。
本发明实施例中,树根RB设备确认其它RB设备已经发生故障之后,如果树根RB设备发现其它RB设备已经故障恢复,则树根RB设备向TRILL网络中未发生故障的RB设备发送CCM-TFD报文,该CCM-TFD报文中携带了其它RB设备的Nickname信息,并携带了其它RB设备已经故障恢复的信息,以触发TRILL网络中与其它RB设备直连的RB设备重新进行LSP更新。
具体的,树根RB设备确认其它RB设备(后续以叶子RB设备1为例)已经发生故障后,如果树根RB设备发现叶子RB设备1故障恢复(叶子RB设备1故障恢复时,树根RB设备上启用的CCM-TFD检测能够检测到),树根RB设备向TRILL网络中未发生故障的RB设备发送CCM-TFD报文,该CCM-TFD报文中携带了叶子RB设备1的Nickname信息,并携带了叶子RB设备1故障恢复的信息;未发生故障的叶子RB设备在收到CCM-TFD报文后,获知叶子RB设备1已经故障恢复,对于与叶子RB设备1直连的叶子RB设备,将和叶子RB设备1相连的链路cost恢复为正常值,触发本地LSP的更新,从而触发网络中生成树的重新计算,将恢复的叶子RB设备1加入到网络。
在一种优选实现方式中,如图5所示,通过在CCM-TFD报文中携带的CCM-TFD Other TLV(此时为Trill-Recover TLV)中携带故障恢复叶子RB设备的Nickname信息;在Trill-Recover TLV中,Type字段数值为11(0x0B),Length字段数值为2,Value字段数值为故障恢复叶子RB设备的Nickname。
步骤307,叶子RB设备在确定其它RB设备为树根RB设备,且收到来自树根RB设备的CCM-TFD报文时,为树根RB设备创建TFD会话,并以单播方式向树根RB设备发送CCM-TFD报文;在该叶子RB设备向树根RB设备所发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为树根RB设备的Nickname,内层目的MAC地址为树根RB设备的MAC地址。
具体的,叶子RB设备在收到来自其它RB设备的LSP报文之后,如果确定该其它RB设备为树根RB设备(即其它RB设备对应的树根优先级最大),则启动LSP超时检测,如果树根RB设备的LSP超时,则停止TRILL检测功能(即不采用本发明实施例提供的技术方案进行处理),如果树根RB设备的LSP未超时,则在收到来自树根RB设备的CCM-TFD报文时,为树根RB设备创建TFD会话,并向树根RB设备发送CCM-TFD报文;在叶子RB设备向树根RB设备所发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为树根RB设备的Nickname,内层目的MAC地址为树根RB设备的MAC地址。
本发明实施例中,该CCM-TFD报文中携带了表明CCM-TFD报文用于进行TRILL故障检测的信息,且该CCM-TFD报文中携带了发送CCM-TFD报文的RB设备的Nickname信息(即叶子RB设备的Nickname信息)。在一种优选的实现方式中,如图5所示,为CCM-TFD报文的格式示意图。
本发明实施例中,叶子RB设备以单播方式向树根RB设备发送CCM-TFD报文之后,树根RB设备在收到CCM-TFD报文时,会以单播方式向叶子RB设备返回CCM-TFD报文;其中,在该树根RB设备向叶子RB设备发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为叶子RB设备的Nickname,内层目的MAC地址为叶子RB设备的MAC地址。
步骤308,叶子RB设备判断在TFD会话的检测定时器超时之前是否收到来自树根RB设备的CCM-TFD报文;如果是,则执行步骤309;如果否(即TFD会话的检测定时器超时后仍未收到CCM-TFD报文),则执行步骤310。
其中,TFD会话的检测定时器默认为3.5个CCM报文发送周期。
步骤309,叶子RB设备确认树根RB设备没有发生故障,结束流程。
叶子RB设备在收到来自树根RB设备的CCM-TFD报文后,确认树根RB设备没有发生故障,并更新该树根RB设备对应的TFD会话的检测定时器。
步骤310,叶子RB设备确认树根RB设备已经发生故障,并执行步骤311。
步骤311,叶子RB设备确认树根RB设备已经发生故障之后,叶子RB设备修改树根RB设备对应的优先级为TRILL网络中的最低优先级,以触发TRILL网络中的各叶子RB设备重新选举树根RB设备。
具体的,叶子RB设备上会启动对树根RB设备的CCM-TFD检测,当检测到树根RB设备发生故障后,叶子RB设备在本地将树根RB设备的优先级修改为TRILL网络中最低优先级,触发树根RB设备的重新选举,选举出新树根RB设备,从而将故障的树根RB设备隔离出网络,减少对流量转发的影响;在选举出新树根RB设备后,按照上述步骤重新启动CCM-TFD检测。
本发明实施例中,叶子RB设备确认树根RB设备已经发生故障之后,如果该叶子RB设备发现树根RB设备已经故障恢复(树根RB设备在故障恢复之后,该叶子RB设备上启用的CCM-TFD检测能够检测到该情况),则叶子RB设备需要修改树根RB设备对应的优先级为树根RB设备的初始优先级,以触发TRILL网络中的各RB设备重新选举树根RB设备。
具体的,原有树根RB设备故障恢复之后,依然认为本RB设备是网络中的树根RB设备,此时叶子RB设备启用的CCM-TFD检测就会检测到该情况,且叶子RB设备需要在本地修改树根RB设备对应的优先级为树根RB设备的初始优先级,触发树根RB设备的重新选举,如果新计算出的树根RB设备和原有树根RB设备相同,则按照上述步骤的描述进行处理,如果不相同,则表示网络可能处于震荡过程中,保持现有的树根RB设备不变。
综上所述,与现有技术相比,本发明实施例至少具有以下优点:(1)现有技术中,需要通过配置CFD在二层网络中实现快速故障检测,而CFD的配置工作过于复杂;本发明实施例中,通过TRILL协议动态触发RB设备的二层连通性检测,减少用户的配置工作;(2)现有技术中,CFD在检测到链路故障后只能输出log信息;本发明实施例中,在检测到链路故障时可以重新触发拓扑计算,加快收敛速度;(3)本发明实施例中,可以依靠辅助CPU进行检测,不影响主CPU的使用,对RB设备的性能影响不大,且不会增加额外的计算工作量;(4)当网络中有不支持本发明实施例技术方案的RB设备时,这些RB设备无法识别相关TLV,但根据TRILL协议规定,相关LSP报文还可以接收并进行洪泛,不会影响到TRILL协议原有的功能。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种路由桥RB设备,应用于包括多个RB设备的多链路透明互联TRILL网络中,如图6所示,所述RB设备具体包括:
接收模块11,用于接收来自其它RB设备的链路状态协议LSP报文;
确定模块12,用于在收到来自其它RB设备的LSP报文之后,如果获知所述LSP报文用于进行TRILL故障检测,则确定本RB设备在所述TRILL网络中为树根RB设备或者叶子RB设备;
处理模块13,用于当本RB设备为树根RB设备时,为所述其它RB设备创建TRILL快速检测TFD会话,并向所述其它RB设备发送连接检测报文CCM-TFD报文;如果在所述TFD会话的检测定时器超时之前收到来自所述其它RB设备的CCM-TFD报文,则确认所述其它RB设备没有发生故障;如果在所述TFD会话的检测定时器超时之后仍然未收到来自所述其它RB设备的CCM-TFD报文,则确认所述其它RB设备已经发生故障;
当本RB设备为叶子RB设备,所述其它RB设备为树根RB设备,且收到来自所述树根RB设备的CCM-TFD报文时,为所述树根RB设备创建TFD会话,并向所述树根RB设备发送CCM-TFD报文;如果在所述TFD会话的检测定时器超时之前收到来自所述树根RB设备的CCM-TFD报文,则确认所述树根RB设备没有发生故障;如果在所述TFD会话的检测定时器超时之后仍然未收到来自所述树根RB设备的CCM-TFD报文,则确认所述树根RB设备已经发生故障。
当本RB设备为树根RB设备时,所述处理模块13向所述其它RB设备发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为所述其它RB设备的Nickname,内层目的MAC地址为所述其它RB设备的介质访问控制MAC地址;当本RB设备为叶子RB设备时,处理模块13向所述树根RB设备发送的CCM-TFD报文中,TRILL头部Egress RB Nickname为所述树根RB设备的Nickname,内层目的MAC地址为所述树根RB设备的MAC地址。
所述CCM-TFD报文中携带了表明所述CCM-TFD报文用于进行TRILL故障检测的信息,且携带了发送所述CCM-TFD报文的RB设备的Nickname信息;所述LSP报文中携带有指定格式类型长度值TLV,所述指定格式TLV中携带了表明所述LSP报文用于进行TRILL故障检测的信息,且所述指定格式TLV中携带了发送所述LSP报文的RB设备的Nickname信息。
当本RB设备为树根RB设备时,所述处理模块13,还用于在确认所述其它RB设备已经发生故障之后,向所述TRILL网络中未发生故障的RB设备发送CCM-TFD报文,所述CCM-TFD报文中携带了所述其它RB设备的Nickname信息,且所述CCM-TFD报文中携带了所述其它RB设备已经发生故障的信息,以触发TRILL网络中与所述其它RB设备直连的RB设备重新进行LSP更新;当本RB设备为叶子RB设备时,所述处理模块13,还用于在确认所述树根RB设备已经发生故障之后,修改所述树根RB设备对应的优先级为所述TRILL网络中的最低优先级,以触发所述叶子RB设备重新选举树根RB设备。
当本RB设备为树根RB设备时,所述处理模块13,还用于在确认所述其它RB设备已经发生故障之后,如果发现所述其它RB设备已经故障恢复,则向所述TRILL网络中未发生故障的RB设备发送CCM-TFD报文,所述CCM-TFD报文中携带了所述其它RB设备的Nickname信息,且所述CCM-TFD报文中携带了所述其它RB设备已经故障恢复的信息,以触发所述TRILL网络中与所述其它RB设备直连的RB设备重新进行LSP更新;
当本RB设备为叶子RB设备时,所述处理模块13,还用于在确认所述树根RB设备已经发生故障之后,如果发现所述树根RB设备已经故障恢复,则修改所述树根RB设备对应的优先级为所述树根RB设备的初始优先级,以触发所述叶子RB设备重新选举树根RB设备。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。