一种快速重路由机制中的消息处理方法和装置 【技术领域】
本发明涉及通信技术领域,尤其涉及一种快速重路由机制中的消息处理方法和装置。
背景技术
随着网络业务的发展,作为多业务统一承载的IP(Internet Protocol,互联网协议)网络在可靠性方面,必须达到传统电信网络的水平,如保护切换的速度小于50ms,才能满足电信业务的需要。
为达到上述目的,业内提出了结合MPLS(Multiprotocol Label Switching,多协议标签交换)技术与流量工程的MPLS TE(Traffic Engineering,流量工程),通过建立到达指定路径的LSP(Label Switching Path,标签交换路径)隧道进行资源预留,使网络流量绕开拥塞节点,达到平衡网络流量的目的,并进行定时优化,在资源紧张的情况下,根据优先级和抢占参数抢占低优先级的LSP隧道的带宽资源。
FRR(Fast ReRoute,快速重路由)是MPLS TE中实现网络局部保护的技术,切换速度可以达到50ms,能够最大程度减少网络故障时数据的丢失。对LSP隧道配置FRR功能后,当LSP隧道上的某条链路或某个节点失效时,流量会被切换到保护链路上,绕过失败的链路或者节点;同时,LSP隧道的头节点尝试建立新的LSP隧道,从而达到保护主路径的功能。
如图1所示,为现有技术中的MPLS TE FRR切换的转发示意图,RT1和RT2之间的主LSP隧道发生故障,RT1首先执行ARP(Address ResolutionProtocol,地址解析协议)的更新动作,将所有从主LSP隧道转发的出口表项都设置为Dummy表项,通过保存的软件信息从路由表中查找报文对应的EgrIndex索引,将EgrIndex索引中的DPort信息设置为31,此时,不能进行流量转发,RT1接收到的报文被丢弃;随后,RT1执行主LSP隧道到备份LSP隧道的FRR切换动作,通过保存的软件信息从路由表中查找报文对应的EgrIndex索引,将Dummy表项设置为备份LSP隧道的信息,将DMac设置为RT3的MAC,将SMAC设置为RT1的MAC,将DPort设置为RT1和RT3连接的出端口,业务流量可以再一次进行转发。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
在进行FRR切换的过程中,节点设备中的平台软件功能实体需要向驱动软件功能实体依次发送ARP更新消息和FRR切换消息,驱动软件功能实体需要依次处理接收到的两条消息,处理时间较长,降低了驱动软件功能实体的执行速度,无法实现MPLS TE LSP的快速切换。
【发明内容】
本发明提供了一种快速重路由机制中的消息处理方法和装置,用于实现MPLS TE LSP的快速切换。
本发明提供了一种快速重路由机制中的消息处理方法,应用于包括平台软件功能实体和驱动软件功能实体的节点设备中,所述方法包括以下步骤:
当所述驱动软件功能实体接收到来自所述平台软件功能实体的地址解析协议ARP更新消息后,所述驱动软件功能实体不处理所述ARP更新消息,而是判断所述ARP更新消息之后接收到的下一消息是否为快速重路由FRR切换消息;
如果判断结果为是,所述驱动软件功能实体将所述接收到的ARP更新消息删除,只处理所述接收到的FRR切换消息;
如果判断结果为否,所述驱动软件功能实体对所述ARP更新消息和所述ARP更新消息之后接收到的下一消息进行正常处理。
优选地,所述驱动软件功能实体的状态包括初始状态、正常状态和等待状态,所述驱动软件功能实体处于初始状态或正常状态时,
所述驱动软件功能实体接收到来自平台软件功能实体的ARP更新消息之后,还包括:
所述驱动软件功能实体保存所述接收到的ARP更新消息,将自身的状态迁移到所述等待状态。
优选地,所述驱动软件功能实体处于初始状态时,还包括:
当所述驱动软件功能实体接收到的消息不是ARP更新消息时,所述驱动软件功能实体保存当前接收到的消息,将自身的状态迁移到所述正常状态。
优选地,所述驱动软件功能实体处于正常状态时,还包括:
当所述驱动软件功能实体接收到地消息不是ARP更新消息时,所述驱动软件功能实体处理当前接收到的消息,并进行初始化设置,将自身的状态迁移到初始状态。
优选地,所述驱动软件功能实体的状态还包括仲裁状态,
所述驱动软件功能实体将自身的状态迁移到等待状态之后,还包括:
当所述驱动软件功能实体接收到的消息为FRR切换消息时,所述驱动软件功能实体将自身的状态迁移到所述仲裁状态,将所述FRR切换消息之前接收到的ARP更新消息删除;
所述驱动软件功能实体将自身的状态迁移到所述正常状态。
优选地,所述驱动软件功能实体处于等待状态时,
所述驱动软件功能实体判断所述ARP更新消息之后接收到的下一消息不是FRR切换消息之后,还包括:
所述驱动软件功能实体保存所述ARP更新消息之后接收到的下一消息,将自身状态迁移到所述正常状态。
本发明还提供了一种节点设备,包括平台软件功能实体和驱动软件功能实体,所述驱动软件功能实体包括:
收发模块,用于接收来自所述平台软件功能实体的消息;
判断模块,与所述收发模块电性连接,用于判断所述收发模块接收到的消息是否为ARP更新消息,并在所述收发模块接收到的消息为ARP更新消息时,判断所述收发模块在所述ARP更新消息之后接收到的下一消息是否为FRR切换消息;
处理模块,与所述判断模块电性连接,用于在所述判断模块判断接收到ARP更新消息时,不处理所述ARP更新消息,在所述判断模块判断所述ARP更新消息之后接收到的下一消息为FRR切换消息时,将所述ARP更新消息删除,只处理所述FRR切换消息,在所述判断模块判断所述ARP更新消息之后接收到的下一消息不是FRR切换消息时,对所述ARP更新消息和所述ARP更新消息之后接收到的下一消息进行正常处理。
优选地,所述驱动软件功能实体的状态包括初始状态、正常状态和等待状态,所述驱动软件功能实体处于初始状态或正常状态时,
所述处理模块,还用于在所述判断模块判断接收到的消息为ARP更新消息时,保存所述接收到的ARP更新消息,将自身的状态迁移到所述等待状态。
优选地,所述驱动软件功能实体处于初始状态时,
所述处理模块,还用于在所述判断模块判断接收到的消息不是ARP更新消息时,保存当前接收到的消息,将自身的状态迁移到所述正常状态。
优选地,所述驱动软件功能实体处于正常状态时,
所述处理模块,还用于在所述判断模块判断接收到的消息不是ARP更新消息时,处理当前接收到的消息,并进行初始化设置,将自身的状态迁移到初始状态。
优选地,所述驱动软件功能实体处于等待状态时,
所述处理模块,还用于在所述判断模块判断所述ARP更新消息之后接收到的下一消息不是FRR切换消息时,保存所述ARP更新消息之后接收到的下一消息,将自身状态迁移到所述正常状态。
本发明中的驱动软件功能实体通过删除FRR切换消息之前接收到的ARP更新消息,简化了消息处理流程,提高了软件执行的速度,为MPLS TE LSP实现快速切换提供了保证。
【附图说明】
图1现有技术中的MPLS TE FRR切换的转发示意图;
图2为本发明中的一种快速重路由机制中的消息处理方法流程图;
图3为本发明中的消息仲裁机制的有限状态机示意图;
图4为本发明的应用场景中的驱动软件功能实体从初始状态迁移到等待状态或正常状态的流程图;
图5为本发明的应用场景中的驱动软件功能实体从等待状态迁移到正常状态的流程图;
图6为本发明的应用场景中的驱动软件功能实体从正常状态迁移到初始状态或等待状态的流程图;
图7为本发明中的一种节点设备结构示意图。
【具体实施方式】
本发明提供的技术方案中,其核心思想为在节点设备的驱动软件功能实体中引入消息仲裁机制,接收所有来自平台软件功能实体的消息,判断接收到ARP更新消息后的下一消息是否为FRR切换消息,如果下一消息为FRR切换消息,则将之前接收到的ARP更新消息合并掉,只处理FRR切换消息;否则,对所有接收到的消息进行正常处理。
下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,为本发明中的一种快速重路由机制中的消息处理方法流程图,应用于包括平台软件功能实体和驱动软件功能实体的节点设备中,该方法包括以下步骤:
步骤201,当驱动软件功能实体接收到来自平台软件功能实体的ARP更新消息后,驱动软件功能实体不处理该ARP更新消息。
步骤202,驱动软件功能实体判断ARP更新消息之后接收到的下一消息是否为FRR切换消息,如果判断结果为是,则执行步骤203;如果判断结果为否,则执行步骤204。
步骤203,驱动软件功能实体将接收到的ARP更新消息删除,只处理接收到的FRR切换消息。
具体地,当ARP更新消息之后接收到的下一消息不是FRR切换消息时,驱动软件功能实体只处理接收到的FRR切换消息,将所有从主LSP隧道转发的出口表项设置为备份LSP隧道的信息。
步骤204,驱动软件功能实体对ARP更新消息和该ARP更新消息之后接收到的下一消息进行正常处理。
具体地,当ARP更新消息之后接收到的下一消息不是FRR切换消息时,驱动软件功能实体处理ARP更新消息,将所有从主LSP隧道转发的出口表项都设置为Dummy表项,通过保存的软件信息从路由表中查找报文对应的EgrIndex索引,将EgrIndex索引中的DPort信息设置为31。
本发明中的驱动软件功能实体通过删除FRR切换消息之前接收到的ARP更新消息,简化了消息处理流程,提高了软件执行的速度,为MPLS TE LSP实现快速切换提供了保证。
本发明提供的快速重路由机制中的消息处理方法中,引入了消息仲裁机制,并在节点设备的驱动软件功能实体中建立shim软件层,以实现上述消息仲裁机制。
具体地,驱动软件功能实体中的shim软件层接收来自节点设备的其他模块的消息,如果该消息不是ARP更新消息,则不触发消息仲裁机制,直接处理该消息;如果该消息为ARP更新消息,则触发消息仲裁流程,判断该ARP更新消息之后接收到的下一消息是否为FRR切换消息。
如果ARP更新消息之后接收到的下一消息为FRR切换消息,消息仲裁机制将该ARP更新消息合并掉,只处理FRR切换消息;如果ARP更新消息之后接收到的下一消息不是FRR切换消息,则对该ARP更新消息和该ARP更新消息之后接收到的下一消息进行正常处理。
本发明中的消息仲裁机制还引入了有限状态机,如图3所示,为本发明中的消息仲裁机制的有限状态机示意图,驱动软件功能实体的状态包括初始状态、正常状态、等待状态和仲裁状态。
当驱动软件功能实体处于初始状态或正常状态时,驱动软件功能实体接收到来自平台软件功能实体的ARP更新消息之后,保存该接收到的ARP更新消息,并将自身的状态迁移到等待状态。
当驱动软件功能实体将自身的状态迁移到等待状态之后接收到的消息为FRR切换消息时,驱动软件功能实体将自身的状态迁移到仲裁状态,将FRR切换消息之前接收到的ARP更新消息删除,再将自身的状态迁移到正常状态。
当驱动软件功能实体处于等待状态,且判断ARP更新消息之后接收到的下一消息不是FRR切换消息时,驱动软件功能实体保存ARP更新消息之后接收到的下一消息,并将自身状态迁移到正常状态。
当驱动软件功能实体处于初始状态,且驱动软件功能实体接收到的消息不是ARP更新消息时,驱动软件功能实体保存当前接收到的消息,将自身的状态迁移到正常状态。
当驱动软件功能实体处于正常状态,且驱动软件功能实体接收到的消息不是ARP更新消息时,驱动软件功能实体处理当前接收到的消息,并进行初始化设置,将自身的状态迁移到初始状态。
如图4所示,为本发明的应用场景中的驱动软件功能实体从初始状态迁移到等待状态或正常状态的流程图,包括以下步骤:
步骤401,驱动软件功能实体接收来自平台软件功能实体的消息。
步骤402,驱动软件功能实体判断自身的状态是否为初始状态,如果判断结果为是,则执行步骤403;如果判断结果为否,则结束流程。
步骤403,驱动软件功能实体判断接收到的消息是否为ARP更新消息,如果判断结果为是,则执行步骤404;如果判断结果为否,则执行步骤405。
步骤404,驱动软件功能实体保存当前接收到的消息,并将自身的状态迁移到等待状态。
步骤405,驱动软件功能实体保存当前接收到的消息,并将自身的状态迁移到正常状态。
如图5所示,为本发明的应用场景中的驱动软件功能实体从等待状态迁移到正常状态的流程图,包括以下步骤:
步骤501,驱动软件功能实体接收来自平台软件功能实体的消息。
步骤502,驱动软件功能实体判断自身的状态是否为等待状态,如果判断结果为是,则执行步骤503;如果判断结果为否,则结束流程。
步骤503,驱动软件功能实体判断接收到的消息是否为FRR切换消息,如果判断结果为是,则执行步骤504;如果判断结果为否,则执行步骤507。
步骤504,驱动软件功能实体将自身的状态迁移到仲裁状态。
步骤505,驱动软件功能实体将FRR切换消息之前接收到的ARP更新消息合并掉,只处理接收到的FRR切换消息。
步骤506,驱动软件功能实体将自身的状态迁移到正常状态。
步骤507,驱动软件功能实体保存当前接收到的消息,并将自身的状态迁移到正常状态。
如图6所示,为本发明的应用场景中的驱动软件功能实体从正常状态迁移到初始状态或等待状态的流程图,包括以下步骤:
步骤601,驱动软件功能实体接收来自平台软件功能实体的消息。
步骤602,驱动软件功能实体判断自身的状态是否为正常状态,如果判断结果为是,则执行步骤603;如果判断结果为否,则结束流程。
步骤603,驱动软件功能实体判断当前接收到的消息是否与上一次接收到的消息类型相同,如果判断结果为是,则执行步骤604;如果判断结果为否,则执行步骤605。
步骤604,驱动软件功能实体处理当前接收到的消息,并将自身的状态迁移到初始状态。
步骤605,驱动软件功能实体判断当前接收到的消息是否为ARP更新消息,如果判断结果为是,则执行步骤606;如果判断结果为否,则执行步骤607。
步骤606,驱动软件功能实体处理上一次接收到的消息,并将自身的状态迁移到等待状态。
步骤607,驱动软件功能实体处理当前接收到的消息,并将自身的状态迁移到初始状态。
需要说明的是,本发明方法可以根据实际需要对各个步骤顺序进行调整。
本发明通过有限状态机实现消息仲裁机制,将驱动软件功能实体处理的ARP更新消息合并掉,只处理ARP更新消息之后接收到的FRR切换消息,简化FRR切换过程中的消息处理流程,提高了软件执行的速度,为MPLS TELSP实现快速切换提供了保证。
本发明在上述实施方式中提供了快速重路由机制中的消息处理方法和应用场景,相应地,本发明还提供了应用上述消息处理方法的节点设备。
如图7所示,为本发明中的一种节点设备结构示意图,包括平台软件功能实体710和驱动软件功能实体720。其中,驱动软件功能实体720包括:
收发模块721,用于接收来自平台软件功能实体710的消息。
判断模块722,与收发模块721电性连接,用于判断收发模块721接收到的消息是否为ARP更新消息,并在收发模块721接收到的消息为ARP更新消息时,判断收发模块721在该ARP更新消息之后接收到的下一消息是否为FRR切换消息。
处理模块723,与判断模块722电性连接,用于在判断模块722判断接收到ARP更新消息时,不处理该ARP更新消息,在判断模块722判断ARP更新消息之后接收到的下一消息为FRR切换消息时,将该ARP更新消息删除,只处理FRR切换消息,在判断模块722判断ARP更新消息之后接收到的下一消息不是FRR切换消息时,对该ARP更新消息和ARP更新消息之后接收到的下一消息进行正常处理。
上述驱动软件功能实体720的状态包括初始状态、正常状态和等待状态,驱动软件功能实体720处于初始状态或正常状态时,上述处理模块723,还用于在判断模块722判断接收到的消息为ARP更新消息时,保存接收到的ARP更新消息,将自身的状态迁移到等待状态。
上述驱动软件功能实体720处于初始状态时,上述处理模块723,还用于在判断模块722判断接收到的消息不是ARP更新消息时,保存当前接收到的消息,将自身的状态迁移到正常状态。
上述驱动软件功能实体720处于正常状态时,上述处理模块723,还用于在判断模块722判断接收到的消息不是ARP更新消息时,处理当前接收到的消息,并进行初始化设置,将自身的状态迁移到初始状态。
上述驱动软件功能实体720处于等待状态时,上述处理模块723,还用于在判断模块722判断ARP更新消息之后接收到的下一消息不是FRR切换消息时,保存该ARP更新消息之后接收到的下一消息,将自身状态迁移到正常状态。
本发明中的驱动软件功能实体通过删除FRR切换消息之前接收到的ARP更新消息,简化了消息处理流程,提高了软件执行的速度,为MPLS TE LSP实现快速切换提供了保证。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。