一种应用态连接同步方法与流程

文档序号:12463900阅读:258来源:国知局

本发明属于计算机技术领域,具体涉及一种应用态连接同步方法。



背景技术:

网关设备在进行数据包转发时,为了提升转发效率,通常使用连接跟踪机制,连接即是以流为单位对数据包进行区分,连接通常是通过四元组来建立,即数据包的源ip地址,源端口号,目的ip地址,目的端口号.连接跟踪机制即为在判断数据包是否应该转发时,不是逐包判断,而是判断该数据包所属的连接应不应该转发;具体来说,就是在连接建立的时候判断该连接是否应该转发,做出决策之后,属于该连接的所有数据包都执行同样的操作。

在双机热备的主备模式下,正常情况下只有主设备在使用,主设备保持着当前网络的所有连接情况.当主设备出现故障后,流量切换到备设备,由于备设备没有连接信息,所有的连接必须重新建立,导致部分流量中断,一定程度上影响网络业务。

连接同步即为在主设备正常工作的情况下,将主设备上的连接信息实时同步到备设备上,这样在主设备发生故障而切换时,由于备设备保存了连接信息,因此流量不会因为查不到连接而中断。

传统的连接同步方式基于内核态,多数利用开源软件将内核的连接进行同步。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种应用态连接同步方法。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例提供一种应用态连接同步方法,该方法为:在连接建立时,主设备在hash桶中加入连接信息,并且会产生第一同步事件,所述第一同步事件放入缓冲队列,等到所述缓冲队列装满时,将整个队列的事件信息同步到备设备中,所述备设备接收到主设备的同步信息之后,在备设备的hash桶中建立与主设备同样的连接信息。

上述方案中,所述第一同步事件包含新建连接的四元组信息以及连接建立时的时间信息。

本发明实施例还提供一种应用态连接同步方法,该方法为:主设备收到已经建立连接的数据包时,更新连接时间,并且产生连接同步请求,当该同步请求的发生时间与预先保存的同步时间的时间差在预设阈值之外时,将该同步请求转化为第二同步事件,所述第二同步事件立即被同步到备设备上。

上述方案中,该方法为:所述同步请求的发生时间与保存的同步时间的时间差小于预设阈值时,忽略该同步请求。

上述方案中,所述同步事件包含的更新时间以及该连接的hash索引值。

与现有技术相比,本发明的有益效果:

本发明采用超时更新算法,在此基础上,由于在应用态实现,使连接数据定制更加简单,合理、有效减少连接同步数据,降低心跳链路负载,提升连接同步速度。

附图说明

图1为本发明实施例提供一种应用态连接同步方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了提高同步效率,同时降低网络通信量,连接同步并不是将主设备所有的连接同步到备设备,而是采用包驱动更新算法,该算法的核心思想是,只有在主设备的连接状态发生改变时,才进行连接同步。主设备连接的状态主要包括两个方面,一个是连接建立,另一个是连接时间更新。产生这两个状态改变的驱动因素即连接建立和连接查询。

连接建立:应用态连接信息以结构体的方式保存在hash桶中。连接建立的时候,首先判断该连接能否进行转发,如果可以转发。就根据数据包的四元组信息,建立连接结构体,并根据连接的四元组计算hash值,将结构体保存到hash桶中。最后将数据包进行转发。

连接查询:新的数据包到达设备之后,获取数据包的四元组,利用四元组计算出hash值,索引到hash桶中相应的位置,取出连接信息进行对比,如果四元组信息相同,则查询到了该数据包所属的连接,如果没有查询到,则会进入连接建立流程。数据包查询到连接之后需要判断该连接的更新时间,如果更新时间超出了连接的保持时间,则需要重新建立连接。

实施例1

本发明实施例提供一种应用态连接同步方法,如图1所示,该方法为:在连接建立时,主设备在hash桶中加入连接信息,所述连接信息包括连接四元组,连接建立时间,以及其他的一些和业务相关的数据.连接建立好之后会产生第一同步事件,所述第一同步事件放入缓冲队列,等到所述缓冲队列装满时或者超出一定的时间,将整个队列的事件信息同步到备设备中,所述备设备接收到主设备的同步信息之后,在备设备的hash桶中建立与主设备同样的连接信息。

所述第一同步事件包含新建连接的四元组信息以及连接建立时的时间信息。

实施例2:

本发明实施例还提供一种应用态连接同步方法,如图1所示,该方法为:主设备收到已经建立连接的数据包时,更新连接时间,并且产生连接同步请求,当该同步请求的发生时间与预先保存的同步时间的时间差在预设阈值(即连接超时时间-1秒)之外时,将该同步请求转化为第二同步事件,所述第二同步事件立即被同步到备设备上。

所述同步请求的发生时间与保存的同步时间的时间差小于预设阈值(即连接超时时间-1秒)时,忽略该同步请求。

所述同步事件包含的更新时间以及该连接的hash索引值。

所述备设备接收到同步事件之后,根据hash索引值找到对应的连接,所述备设备只需要更新该连接的时间即可。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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