建立会话的方法、优雅重启通信设备及存储介质与流程

文档序号:17298758发布日期:2019-04-03 04:42阅读:139来源:国知局
建立会话的方法、优雅重启通信设备及存储介质与流程

本发明涉及通信领域,具体而言,涉及建立会话的方法、优雅重启通信设备及存储介质。



背景技术:

目前在ldp(labeldistributionprotocol,标签分发协议)双栈会话gr(gracefulrestart,优雅重启)时,当其中一个设备发生主从切换后,在重新建立会话时,会直接根据当前接收到的会话消息进行建立会话,从而极大可能会导致新建的会话与主从切换前的会话的地址簇不一致,导致ldpgr失败,进而导致mpls(multiprotocollabelswitching,多协议标签交换)转发中断,对用户的业务产生严重影响。



技术实现要素:

为解决上述问题,本发明实施例提供建立会话的方法、协议重启通信设备及存储介质。

第一方面,本发明实施例提供了一种建立会话的方法,应用于包括主用主控卡和备用主控卡的通信设备中,所述方法包括:所述主用主控卡将与邻居设备建立的第一会话对应的会话标识信息与会话地址簇同步至所述备用主控卡;在发生主从切换后,所述备用主控卡作为新的主用主控卡接收所述邻居设备发送的会话消息;所述新的主用主控卡查询是否有与所述会话消息匹配的匹配表项;若是,所述新的主用主控卡确定所述会话消息所对应的地址簇是否与所述匹配表项中的会话地址簇匹配;若是,所述新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话。在本发明实施例中,通过主用主控卡将第一会话对应的会话标识信息与会话地址簇同步至备用主控卡;在发生主从切换后,所述备用主控卡作为新的主用主控卡接收所述邻居设备发送的会话消息;所述新的主用主控卡查询是否有与所述会话消息匹配的匹配表项;若有与所述会话消息匹配的匹配表项,所述新的主用主控卡确定所述会话消息所对应的地址簇是否与所述匹配表项中的会话地址簇匹配;若会话消息所对应的地址簇与所述匹配表项中的会话地址簇匹配,所述新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话,进而保证主用主控卡和备用主控卡在发生主从切换后,和邻居设备之间依然能够使用主从切换前相同的地址簇建立会话,进而克服了ldpgr失败导致的mpls转发中断的技术问题,实现了在主用主控卡与备用主控卡进行主从切换后,依然能够使用与第一会话相同的地址簇建立第二会话的技术效果,使得能够继续mpls转发的技术效果,并且有效提高了设备的可靠性。

进一步地,所述主用主控卡将与邻居设备建立的第一会话对应的会话标识信息与会话地址簇同步至所述备用主控卡,包括:所述主用主控卡将第一会话对应的会话标识信息与会话地址簇所对应的映射关系同步至所述备用主控卡,所述备用主控卡用于将所述映射关系存储至映射表中。

进一步地,在所述新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话之后,所述方法还包括:所述新的主用主控卡删除所述映射表中与所述第一会话所对应的所述匹配表项。

进一步地,在所述新的主用主控卡查询是否有与所述会话消息匹配的匹配表项之后,还包括:若所述新的主用主控卡查询到与所述会话消息匹配的匹配表项,确定所述会话消息使用的地址簇是否与所述匹配表项的会话地址簇一致,若不一致,删除所述会话消息。在本发明实施例中,当新的主用主控卡查询到与所述会话消息匹配的匹配表项,但该匹配表项的会话地址簇与所述会话消息的地址簇不一致时,通过删除会话消息,进而避免触发建立与主用主控卡与备用主控卡进行主从切换前地址簇不一致的会话,使得不会因为建立地址簇不一致的会话而导致原始会话和该原始会话相关的内容被删除而导致的mpls转发流量中断,进而有效避免mpls转发流量中断。

进一步地,在所述新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话之后,所述方法还包括:所述新的主用主控卡发送用于表征所述第二会话建立成功的通知信息至所述邻居设备,所述邻居设备用于基于所述通知信息删除所述邻居设备中的历史定时器。

第二方面,本发明实施例提供了一种优雅重启通信设备,包括主用主控卡和备用主控卡,所述主用主控卡包括第一同步模块,所述备用主控卡包括第二同步模块和会话通信模块,其中:

所述第一同步模块,用于将与邻居设备建立的第一会话对应的会话标识信息与会话地址簇同步至所述第二同步模块;

所述第二同步模块,用于接收所述第一同步模块发送的与邻居设备建立的第一会话对应的会话标识信息与会话地址簇;

所述会话通信模块,用于在发生主从切换后,接收所述邻居设备发送的会话消息;查询是否有与所述会话消息匹配的匹配表项;若是,确定所述会话消息所对应的地址簇是否与所述匹配表项中的会话地址簇匹配;若是,根据所述地址簇创建与所述邻居设备的第二会话。

进一步地,所述第一同步模块具体用于将第一会话对应的会话标识信息与会话地址簇所对应的映射关系同步至所述第二同步模块;

所述会话通信模块,还用于将所述映射关系存储至映射表中。

进一步地,所述会话通信模块还用于在根据所述地址簇创建与所述邻居设备的第二会话之后,删除所述映射表中与所述第一会话所对应的所述匹配表项。

进一步地,所述会话通信模块还用于在查询到与所述会话消息匹配的匹配表项时,确定所述会话消息使用的地址簇是否与所述匹配表项中的会话地址簇一致,若不一致,删除所述会话消息。

进一步地,所述会话通信模块,还用于在根据所述地址簇创建与所述邻居设备的第二会话之后,发送用于表征所述第二会话建立成功的通知信息至所述邻居设备,所述邻居设备用于基于所述通知信息删除所述邻居设备中的历史定时器。

第三方面,本发明实施例提供的一种存储介质,所述存储介质上用于存储指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的建立会话的方法。

本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为现有技术中ldp双栈会话gr失败实例图;

图2为本发明第一实施例提供的一种建立会话的方法的流程图;

图3为2所示的建立会话的方法中的ldp双栈会话gr的实例图;

图4为本发明第二实施例提供的优雅重启通信设备的结构框图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,现有技术中,有两台通信设备router-a和router-b,其中router-a是双主控设备,router-a和router-b都全局使能ldpgr能力和双栈能力(ldp双栈能力是指在同一台设备上ldp同时支持ipv4(internetprotocolversion4,因特网协议版本4)和ipv6(internetprotocolversion6,因特网协议版本6)两种地址簇),router-a通过g1接口和router-b的g1接口相连接。在开始时,router-a会通过g1接口发送ldpipv4hello消息,同理router-b也会通过g1接口发送ldpipv4hello消息。router-a和router-b在各自的g1接口收到对端的ldpipv4hello消息,然后开始建立ldpipv4会话,由于router-a和router-b都使能了gr能力,所以在建立ipv4会话时会协商gr能力。在会话建立成功之后,router-a和router-b在各自的g1接口使能ldpipv6能力,然后通过各自的g1接口发送ldpipv6hello消息,在互相收到对端的ldpipv6hello消息后,由于在router-a和router-b之间已经成功建立了ldpipv4会话,所以不会建立ldpipv6会话。在router-a发生主从切换时,router-b作为gr的helper(协助完成协议重起的设备),router-b会保留该会话以及该会话相关的转发表项,并且启动一个历史定时器用于超时之后删除保留的信息。router-a主从切换完成之后,如果先接收到router-b发送的ldpipv6hello消息,则会尝试与router-b建立ldpipv6会话,当收到后续router-b发送的ldpipv4hello消息时,不再建立ldpipv4会话。由于router-a和router-b之间的ldpipv4会话不会再次成功建立,所以当router-b的历史定时器超时之后,会删除原有ldpipv4会话和该会话相关的转发表项,导致ldpgr失败,导致mpls转发流量中断。

因此,为了解决现有技术中通信设备中的mpu(mainprocessingunit,主控卡)在发生主从切换后,导致ldpgr失败的问题,本发明实施例提供了一种建立会话的方法。

第一实施例

请参照图2,图2为本发明实施例提供的一种建立会话的方法的流程图,所述方法应用于包括主用主控卡和备用主控卡的通信设备中,所述方法包括如下步骤:

步骤s110:所述主用主控卡将与邻居设备建立的第一会话对应的会话标识信息与会话地址簇同步至所述备用主控卡。

可选地,所述主用主控卡可以是分布式设备中的mpu(mainprocessingunit,主控卡),也可以是堆叠系统中的成员设备的cpu(centralprocessingunit,中央处理器)。在此,不作具体限定。备用主控卡与所述主用主控卡互为备份,所述备用主控卡可以是mpu(mainprocessingunit,主控卡),也可以是cpu(centralprocessingunit,中央处理器)。在此,不作具体限定。

可选地,通信设备可以是路由器,也可以是交换机。

其中,第一会话是通信设备与邻居设备通信时第一次建立的会话。对于分布式通信设备来说,一般是由线卡(lpu卡)与邻居设备建立的会话。

可选地,会话标识信息包括所述邻居设备的设备信息。例如,设备信息包括该邻居设备的ip地址和邻居设备使用的标签空间信息。

会话地址簇用于表征第一会话所使用的因特网协议版本,例如,可以是ipv4或者是ipv6。

作为一种实施方式,步骤s110包括:所述主用主控卡将第一会话对应的会话标识信息与会话地址簇所对应的映射关系同步至所述备用主控卡,所述备用主控卡用于将所述映射关系存储至映射表中。

其中,映射关系是指会话标识信息与会话地址簇的对应关系。

可选地,映射表可以是备用主控卡当前新建的一个用于存储映射关系的数据表。

当然,在实际使用中,映射表也可以是预先建立的。

步骤s120:在发生主从切换后,所述备用主控卡作为新的主用主控卡接收所述邻居设备发送的会话消息。

其中,所述会话消息携带有会话标识信息。例如,会话信息可以是ldp的hello消息,其中,hello消息中携带有ldpid信息(即会话标识信息)。

步骤s130:所述新的主用主控卡查询是否有与所述会话消息匹配的匹配表项。

其中,匹配表项包括会话标识信息以及会话地址簇。

作为一种实施方式,步骤s130包括:所述新的主用主控卡根据所述会话消息所携带的会话标识信息在映射表中查询与会话标识信息匹配的匹配表项。

举例来说,如图3所示,当router-a发生主从切换后,新的主用主控卡从router-b收到ldphello消息之后,先使用收到的hello消息中携带的ldpid(即会话标识信息)在映射表中查找表项。

步骤s140:若是,所述新的主用主控卡确定所述会话消息所对应的地址簇是否与所述匹配表项中的会话地址簇匹配。

如果查找到与会话消息匹配的匹配表项时,所述新的主用主控卡确定所述会话消息所使用的地址簇是否与所述匹配表项中的会话地址簇匹配,即判断会话消息所使用的地址簇是否与匹配表项中存储的第一会话的会话地址簇相同。例如,当会话消息使用的地址簇为ipv6时,而第一会话的会话地址簇为ipv4时,通过比对,其地址簇不相同。假设会话消息的地址簇为ipv4,第一会话的会话地址簇为ipv4,则会话消息的地址簇与第一会话的会话地址簇相同。

在一可能的实施例中,若所述新的主用主控卡查询到与所述会话消息匹配的匹配表项,所述会话消息所对应的地址簇是与所述匹配表项中的会话地址簇不一致,删除所述会话消息。

在本发明实施例中,当所述新的主用主控卡查询到与所述会话消息匹配的匹配表项,但是所述会话消息使用的地址簇与匹配表项中的地址簇不相同时,通过删除会话消息,进而避免触发建立与主用主控卡与备用主控卡进行主从切换前地址簇不一致的会话,使得不会因为建立地址簇不一致的会话而导致原始会话和该原始会话相关的内容被删除而导致的mpls转发流量中断,进而有效避免mpls转发流量中断。

继续以上述例子为例来说,如图3所示,若查找到与会话消息匹配的匹配表项时,则检查匹配表项记录的会话地址簇是否和router-b发送的hello消息使用的地址簇相同。

在一可能的实施例中,若所述新的主用主控卡没有查询到与所述会话消息匹配的匹配表项,使用所述会话消息建立新会话。

步骤s150:若是,所述新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话。

如果新的主用主控卡确定所述会话消息所对应的地址簇与所述匹配表项中的会话地址簇匹配,新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话。

可选地,新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话,包括:新的主用主控卡通过标签分发协议(ldp)获取邻居设备中与所述地址簇对应的ip地址,根据ip地址建立与所述邻居设备的第二会话。从而通过使用与第一会话相同的地址簇建立第二会话,进而克服了ldpgr失败导致的mpls转发中断的技术问题,实现了在主用主控卡与备用主控卡进行主从切换后,依然能够使用与第一会话相同的地址簇建立第二会话,使得能够继续mpls转发的技术效果,并且提高了设备的可靠性。

在一可能的实施例中,在新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话之后,建立会话的方法还包括:新的主用主控卡删除所述映射表中与所述第一会话所对应的所述匹配表项。本领域技术人员很清楚的知道此时第一会话所对应的匹配表项即是第二会话对应的匹配表项。

在本发明实施例中,在建立第二会话之后,将映射表中与所述第一会话所对应的所述匹配表项进行删除,可以减少新的主用主控卡的内存占用空间。

在一可能的实施例中,在所述新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话之后,建立会话的方法还包括:所述新的主用主控卡发送用于表征所述第二会话建立成功的通知信息至所述邻居设备,所述邻居设备用于基于所述通知信息删除所述邻居设备中的历史定时器。

在本发明实施例中,通过发送通知信息至所述邻居设备,以使邻居设备删除历史定时器,可以避免当历史定时器超时时,将与第一会话和第一会话相关的内容被删除。进而有效避免mpls转发流量中断或者是数据转发丢失。

在一可能的实施例中,建立会话的方法还包括:当所述新的主用主控卡中的定时器超时后,将存储有会话标识信息与会话地址簇的映射表删除。

继续以上述例子为例来说,如图3所示,如果新的主用主控卡确定所述会话消息所对应的地址簇与所述匹配表项中的会话地址簇匹配,就建立第二会话,即router-a在收到router-b的ipv6ldphello消息时会因为地址簇不相同而删除该hello消息,在收到router-b的ipv4ldphello消息时会因为地址簇相同而触发创建ldpipv4会话,并删除该会话在ldpid与映射表中的匹配表项。从而保证router-a和router-b之间ldpipv4会话可以重建成功,ldpgr功能正确生效。当ldpipv4会话重建成功后,邻居设备删除历史定时器。当所述新的主用主控卡中的gr定时器超时后,将存储有会话标识信息与会话地址簇的映射表删除。

本发明实施例提供的建立会话的方法,通过主用主控卡将与邻居设备建立的第一会话对应的会话标识信息与会话地址簇同步至备用主控卡;在发生主从切换后,所述备用主控卡作为新的主用主控卡接收所述邻居设备发送的会话消息;所述新的主用主控卡查询是否有与所述会话消息匹配的匹配表项;若有与所述会话消息匹配的匹配表项,所述新的主用主控卡确定所述会话消息所对应的地址簇是否与所述匹配表项中的会话地址簇匹配;若会话消息所对应的地址簇与所述匹配表项中的会话地址簇匹配,所述新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话,进而保证主用主控卡和备用主控卡在发生主从切换后,和邻居设备之间依然能够使用主从切换前相同的地址簇建立会话,进而克服了ldpgr失败导致的mpls转发中断的技术问题,实现了在主用主控卡与备用主控卡进行主从切换后,依然能够使用与第一会话相同的地址簇建立第二会话的技术效果,使得能够继续mpls转发的技术效果,并且有效提高了设备的可靠性。

第二实施例

如图4所示,是优雅重启通信设备的示意图。所述优雅重启通信设备400包括主用主控卡410和备用主控卡420,所述主用主控卡410包括第一同步模块,所述备用主控卡420包括第二同步模块和会话通信模块,其中:

所述第一同步模块,用于将与邻居设备建立的第一会话对应的会话标识信息与会话地址簇同步至所述第二同步模块。

所述第二通信模块,用于接收所述第一同步模块同步过来的与邻居设备建立的第一会话对应的会话标识信息与会话地址簇。

可选地,所述第一同步模块具体用于将第一会话对应的会话标识信息与会话地址簇所对应的映射关系同步至所述第二同步模块;

所述会话通信模块,还用于将所述映射关系存储至映射表中。

在发生主从切换后,所述备用主控卡420作为新的主用主控卡,所述会话通信模块用于接收所述邻居设备发送的会话消息,查询是否有与所述会话消息匹配的匹配表项;若查询有与所述会话消息匹配的匹配表项,所述处理模块用于确定所述会话消息所对应的地址簇是否与所述匹配表项中的会话地址簇匹配。

可选地,所述会话通信模块还用于在所述会话通信模块根据所述地址簇创建与所述邻居设备的第二会话之后,删除所述映射表中与所述第二会话所对应的所述匹配表项。

可选地,所述会话通信模块还用于在查询到与所述会话消息匹配的匹配表项时,确定所述会话消息使用的地址簇是否与所述匹配表项中的会话地址簇一致,若不一致,删除所述会话消息。

可选地,所述会话通信模块还还用于在没有查询到与所述会话消息匹配的匹配表项时,使用所述会话消息建立新会话。

若所述会话消息所对应的地址簇与所述匹配表项中的会话地址簇匹配,所述会话通信模块用于根据所述地址簇创建与所述邻居设备的第二会话。

在一可能的实施例中,所述会话通信模块,还用于根据所述地址簇创建与所述邻居设备的第二会话之后,发送用于表征所述第二会话建立成功的通知信息至所述邻居设备,所述邻居设备用于基于所述通知信息删除所述邻居设备中的历史定时器。

可选地,所述优雅重启通信设备400还可以包括:至少一个通信接口430、至少一个存储器440和至少一个通信总线450。其中,通信总线450用于实现这些组件直接的连接通信。

存储器440可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。

其中,本发明实施例中设备的通信接口430用于与其他节点设备进行信令或数据的通信。存储器440中存储有计算机可读取指令,当所述计算机可读取指令由优雅重启通信设备400执行上述图1所示方法过程。

在本实施例中,优雅重启通信设备400可以是路由器,也可以是交换机。

可以理解的是,图4所示的结构仅为优雅重启通信设备400的一种结构示意图,优雅重启通信设备400还可以包括比图4所示更多或更少的组件。图4中所示的各组件可以采用硬件、软件或其组合实现。

第三实施例

本发明实施例还提供一种存储介质,所述存储介质上用于存储指令,当所述指令在计算机上运行时,所述计算机程序被处理器执行时实现第一实施例中的建立会话的方法,为避免重复,此处不再赘述。

综上所述,本发明实施例提供建立会话的方法、邻居设备及存储介质,通过主用主控卡将第一会话对应的会话标识信息与会话地址簇同步至备用主控卡;在发生主从切换后,所述备用主控卡作为新的主用主控卡接收所述邻居设备发送的会话消息;所述新的主用主控卡查询是否有与所述会话消息匹配的匹配表项;若有与所述会话消息匹配的匹配表项,所述新的主用主控卡确定所述会话消息所对应的地址簇是否与所述匹配表项中的会话地址簇匹配;若会话消息所对应的地址簇与所述匹配表项中的会话地址簇匹配,所述新的主用主控卡根据所述地址簇创建与所述邻居设备的第二会话,进而保证主用主控卡和备用主控卡在发生主从切换后,和邻居设备之间依然能够使用主从切换前相同的地址簇建立会话,进而克服了ldpgr失败导致的mpls转发中断的技术问题,实现了在主用主控卡与备用主控卡进行主从切换后,依然能够使用与第一会话相同的地址簇建立第二会话的技术效果,使得能够继续mpls转发的技术效果,并且有效提高了设备的可靠性。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

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

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

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