CN102769626A - 一种会话信息同步方法、装置以及系统 - Google Patents
一种会话信息同步方法、装置以及系统 Download PDFInfo
- Publication number
- CN102769626A CN102769626A CN2012102625446A CN201210262544A CN102769626A CN 102769626 A CN102769626 A CN 102769626A CN 2012102625446 A CN2012102625446 A CN 2012102625446A CN 201210262544 A CN201210262544 A CN 201210262544A CN 102769626 A CN102769626 A CN 102769626A
- Authority
- CN
- China
- Prior art keywords
- session information
- data structure
- structure body
- alternate device
- receives
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明公开了一种会话信息同步方法、装置以及系统,该方法包括:A、高可用性系统中的主设备确定自身和备份设备的心跳和引擎正常时,与所述备份设备建立用户数据包协议UDP连接;B、将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给所述备份设备;C、根据接收到所述备份设备反馈的确认信息,确定所述备份设备接收所述选取的会话信息后,转向步骤B。该方案可以实现准确、可靠的将数据结构体发送给备份设备,实现了无缝切换,延长了网络安全系统的持续运行时间。
Description
技术领域
本发明涉及网络安全技术领域,尤指一种针对高可用性系统中网络安全设备的会话信息同步方法、装置以及系统。
背景技术
目前,随着网络应用的迅速增长,保证网络安全系统的持续运行时间越来越重要,防火墙等网络安全设备的持续运行时间影响着整个网络安全系统的持续运行时间,同时也极大的制约了网络应用,高可用性(High Availability,HA)是保证网络安全系统持续运行时间的一个重要技术。HA用来描述一个系统经过专门的设计,从而减少停工时间,而保持系统持续运行时间的高度可用性。在网络安全系统的HA功能中,数据同步是影响网络安全系统持续运行时间或者中断时间的一个重要因素,数据同步包括动态的会话信息同步和静态的配置文件同步。
HA系统有三种工作模式:主备模式、主主模式和集群模式。现有的HA系统中,主设备在处理业务会产生会话信息,主设备将产生的会话信息同步给备份设备,备份设备根据主设备同步过来的会话信息更新自身的会话信息,这样当发生主备切换后,备份设备可以直接接替主设备继续处理业务,不会造成业务中断,从而保证网络安全系统的持续运行时间。在现有的会话信息同步方法中,主设备仅仅将会话信息同步给备份设备,并不关心备份设备是否能够完整地接收到同步的会话信息,也就是说主设备并不能确保备份设备可靠地接收到同步的会话信息,一旦备份设备没有及时接收到完整的会话信息,当主备切换后,备份设备因为没有保存完整的会话信息而不能正常接替主设备继续处理业务,这就会造成网络安全系统中断,也就会缩短网络安全系统的持续运行时间。
综上所述,现有的会话信息同步方法不能确保网络安全系统可靠地同步会话信息,进而缩短网络安全系统的持续运行时间。
发明内容
本发明实施例提供一种会话信息同步方法、装置以及系统,用以解决现有的会话信息同步方法不能确保网络安全系统可靠地同步会话信息,进而缩短网络安全系统的持续运行时间的问题。
一种会话信息同步方法,包括:
A、高可用性系统中的主设备确定自身和备份设备的心跳和引擎正常时,与所述备份设备建立用户数据包协议UDP连接;
B、将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给所述备份设备;
C、根据接收到所述备份设备反馈的确认信息,确定所述备份设备接收所述选取的会话信息后,转向步骤B。
一种会话信息同步方法,包括:
高可用性系统中的备份设备与主设备建立用户数据包协议UDP连接;
接收到所述主设备同步的会话信息后,向所述主设备反馈确认信息;其中,每个所述数据结构体中存放设定条数的会话信息;
根据接收到的会话信息更新自身的会话信息。
一种会话信息同步装置,包括:
连接单元,用于确定自身所在的高可用性系统中的主设备和备份设备的心跳和引擎正常时,与所述备份设备建立用户数据包协议UDP连接;
同步单元,用于将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给所述备份设备;
确定单元,用于根据接收到所述备份设备反馈的确认信息,确定所述备份设备接收所述选取的会话信息后,转向所述同步单元。
一种会话信息同步装置,包括:
连接单元,用于自身所在的高可用性系统中的备份设备与主设备建立用户数据包协议UDP连接;
反馈单元,用于接收到所述主设备同步的会话信息后,向所述主设备反馈确认信息;其中,每个所述数据结构体中存放设定条数的会话信息;
更新单元,用于根据接收到的会话信息更新自身的会话信息。
一种会话信息同步装置,包括上述两种会话信息同步装置。
一种会话信息同步系统,包括至少两个上述会话信息同步装置。
本发明有益效果如下:
本发明实施例提供的会话信息同步方法、装置以及系统,通过A、高可用性系统中的主设备确定自身和备份设备的心跳和引擎正常时,与所述备份设备建立用户数据包协议UDP连接;B、将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给所述备份设备;C、根据接收到所述备份设备反馈的确认信息,确定所述备份设备接收所述选取的会话信息后,转向步骤B。该方案的主设备在检测到自身和备份设备的心跳和引擎都正常时,才会与备份设备建立UDP连接,这样可以保证顺利地同步会话信息,不会造成资源浪费;将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给备份设备,在确定备份设备接收到同步的会话信息后,再发送另外选取的会话信息,这样可以实现可靠地将完整的会话信息发送给备份设备。该方案中的主设备不仅仅向备份设备同步会话信息,通过在同步前检测自身和备份设备的心跳和引擎是否正常、以及接收到备份设备返回的确认消息来确保备份设备接收到完整的会话信息,进而保证主备切换后,备份设备可以直接接替主设备进行业务处理,真正实现了无缝切换,延长了网络安全系统的持续运行时间。
附图说明
图1为本发明实施例中一种会话信息同步方法的流程图;
图2为本发明实施例中会话信息、数据体与发送/接收链表的关系示意图;
图3为本发明实施例中主设备、备份设备发送的UDP单播心跳数据包的结构示意图;
图4为本发明实施例中发送链表的结构示意图;
图5为本发明实施例中另一种会话信息同步方法的流程图;
图6为本发明实施例中接收链表的结构示意图;
图7为本发明实施例中一种会话信息同步装置的结构示意图;
图8为本发明实施例中与图7中的会话同步装置对应的优选的会话信息同步装置的结构示意图;
图9为本发明实施例中另一种会话信息同步装置的结构示意图;
图10为本发明实施例中与图9中的会话装置对应的优选的会话信息同步装置的结构示意图;
图11为本发明实施例中优选的会话信息同步系统的结构示意图;
图12为本发明实施例中与图11中的会话同步系统对应的会话信息同步的流程图。
具体实施方式
针对现有的会话信息同步方法不能确保网络安全系统可靠地同步会话信息,进而缩短网络安全系统的持续运行时间的问题,本发明实施例提供一种会话信息同步方法,该方法的流程如图1所示,具体执行步骤如下:
S10:高可用性系统中的主设备确定自身和备份设备的心跳和引擎正常时,与备份设备建立UDP连接。
HA系统有三种工作模式:主备模式、主主模式和集群模式。
主备模式下的两台设备,一台作为主设备,另一台作为备份设备。主设备处理所有业务,并将产生的会话信息和配置文件发送到备份设备进行备份;备份设备不处理业务,只用做备份。当主设备故障,备份设备接替主设备处理业务,从而保证新发起的会话能正常建立,当前正在进行的会话也不会中断。
主主模式下的两台设备均为主设备,都处理业务,同时又作为另一台设备的备份设备,备份对端的会话信息和配置文件。当其中一台故障后,另一台设备负责处理全部业务,从而保证新发起的会话能正常建立,当前正在进行的会话也不会中断。
集群模式下多台主设备一起工作,各自处理一个或几个业务,各为业务定义一个或多个备份设备,当某个主设备故障时,运行在其上的服务就可以被其它备份设备接管。
本发明实施例中的方法适用于上述HA系统的三种工作模式中的主设备。主设备的备份设备可以是一台,也可以是多台,无论主设备设有一台还是多台备份设备,工作原理都是类似的,下面以主设备设有一台备份设备为例进行说明。
在本发明实施例中,主设备和备份设备之间使用的是UDP单播,现有的还可以采用多播、广播等方式,但多播、广播等方式的缺点是网络负载较大,并且没有确认机制,因此,在这里采用UDP单播方式,从而可以避免多播、广播等方式的缺点。
S11:将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给备份设备。
主设备有自身维护的会话信息,还会有新建、更新或删除会话时,产生的会话信息,在所有的会话信息中选取一些会话信息同步给备份设备。
S12:根据接收到备份设备反馈的确认信息,确定备份设备接收选取的会话信息后,转向S11。
当确定备份设备接收到同步的会话信息后,可以继续选取一部分会话信息同步备份设备。
该方案的主设备在检测到自身和备份设备的心跳和引擎都正常时,才会与备份设备建立UDP连接,这样可以保证顺利地同步会话信息,不会造成资源浪费;将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给备份设备,在确定备份设备接收到同步的会话信息后,再发送另外选取的会话信息,这样可以实现可靠地将完整的会话信息发送给备份设备。当主备切换后,备份设备可以直接接替主设备进行业务处理,真正实现了无缝切换,延长了网络安全系统的持续运行时间。
具体的,上述S10中的高可用性系统中的主设备确定自身和备份设备的心跳和引擎正常,具体包括:主设备以第一设定周期向备份设备发送携带引擎当前状态的UDP单播心跳数据包;以及当主设备在第二设定周期内接收到备份设备以第一设定周期发送的UDP单播心跳数据包、并解析出备份设备引擎的当前状态为激活状态时,确定自身和备份设备的心跳和引擎正常。
用户可根据当前网络的实际情况,设置第一设定周期和第二设定周期,其中第一设定周期是发送UDP单播心跳数据包的周期,第二设定周期时没有接收到UDP单播心跳数据包的周期,可以分别设置为1和3,即每秒发送一个UDP单播心跳数据包,当3秒收不到对端设备发送的UDP单播心跳数据包时,则认为对端设备心跳异常。当对端设备心跳异常时,同步会话信息是没有任何意义的,因此,将不会同步会话信息,直到对端设备恢复心跳为止。
如图3所示,UDP单播心跳数据包的结构可以为:
其中:
type:表示UDP单播心跳数据包的类型,一共有9种,在本发明实施例中,需要的是第5种(NS_HB_MSG_MASTER_READY)和第6种(NS_HB_MSG_SLAVE_READY)类型,其他7种类型在这里不再赘述。
who:本设备主、备类型,即master or slave,主或备。
mode:高可用性工作模式,即master-master or master-slave,主主或主备。
status:本设备实时工作状态,即active or standby,主或备。
reserved:本设备引擎的状态,即active or inactive,激活或非激活。
data:本设备有关链路的详细信息,比如接口状态等,在链路保持与切换中使用,本文不再详细阐述。
具体的,上述S11中的将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给备份设备,具体包括:将自身维护的会话信息以及实时产生的会话信息存放到数据结构体中,将数据结构体添加到发送链表中;在将会话信息存放到数据结构体和将数据结构体添加到发送链表的过程中,在发送链表中选取第一设定个数的数据结构体同步给备份设备;其中,每个数据结构体中存放设定条数的会话信息,发送链表中的已存放指针指向已存放的最后一个数据结构体的位置、正在存放指针指向正在存放的数据结构体的位置。
主设备将自身维护的会话信息存放在数据结构体ns_sync_pkt中,每当主设备新建、更新或删除会话时,这些实时产生的会话信息也可以存放在ns_sync_pkt中,然后将所有这些ns_sync_pkt添加到发送链表中。
每个ns_sync_pkt中可以存放设定条数的会话信息,设定条数具体可以依据实际情况进行设定。ns_sync_pkt是可扩展的,可以存放会话信息,根据网络安全系统的发展,后续也可以存放其他同步信息,放入发送链表进行同步,具有较高的可扩展性。
可以通过事件处理函数用来收集创建、更新或者删除会话等事件发生时需要同步的会话信息,为同步做准备。为了不影响高可用性系统正常的数据处理流程,可以采用Linux内核Notifier机制的思想,对会话信息同步进行设计,在系统初始化的时候注册事件处理函数。当事件发生时,通知事件处理函数,在处理函数中异步处理会话信息的同步。
发送/接收会话信息时,每次操作一个ns_sync_pkt,其中会话信息、数据体与发送/接收链表的关系如图2所示,一个ns_sync_pkt中可以存放一个或者多个需要同步Session的信息,可以是多个Session创建信息、更新信息或者多个Session删除。
ns_sync_pkt结构体定义为:
通讯采用UDP数据包,发送的信息结构大小为ETH_DATA_LEN-20-8-sizeof(struct ct_sync_pkthdr),几乎接近1500,这个大小是为了最大化的使用同步之间的连接。
发送链表中存储的是需要同步给备份设备的ns_sync_pkt,也就是需要同步给备份设备的会话信息,可以选取第一设定个数的ns_sync_pkt同步给备份设备。
该方案中将自身维护的会话信息和实时产生的会话信息存放到数据结构体中,然后将数据结构体添加到发送链表中,与此同时,在发送链表中选取第一设定个数的数据结构体同步给备份设备,会话信息的存放与发送时两个相对独立的过程,可以并行处理,这样就提高了处理效率。
具体的,上述在待发送序列中选取第一设定个数的数据结构体同步给备份设备,具体包括:将发送链表中从已发送指针未指过位置起的第一设定个数的数据结构体同步给备份设备;已发送指针指向已经发送出去的最后一个数据结构体的位置。
当向备份设备发送数据结构体时,可以从已发送指针未指过位置起,第一设定个数的数据结构体同步给备份设备,例如,可以每次同步给备份设备100个数据结构体,当然也可以是其它个数,这可以依据实际情况进行设定。
上述S12中的根据接收到备份设备反馈的确认信息,确定备份设备接收选取的会话信息,具体包括:当接收到备份设备反馈的确认信息时,解析确认信息中携带的接收到的数据结构体的编码标识;其中,备份设备每接收到第二设定个数的数据结构体反馈一个确认信息,第二设定数目不大于第一设定数目;当接收到的备份设备反馈的最后一个接收到的数据结构体的编码标识与第一个接收到的数据结构体的编码标识之差小于第一设定个数与1之差时,向备份设备重新发送第一设定个数的数据结构体;当接收到的备份设备反馈的最后一个接收到的数据结构体的编码标识信息与第一个接收到的数据结构体的编码标识之差等于第一设定个数与1之差时,将确收指针指向已收到确认信息的最后一个数据结构体。
如图4所示为发送链表的结构示意图,发送链表定义为ns_sync_send_ring,初时化ns_sync_send_ring为1024*10个ns_synk_pkt。
发送链表由很多个ns_sync_pkt组成。当系统初始化时初始化4个指针,alloc,cur,send和backlog,它们的定义为:
已存放指针cur指向当前放在链表里的最后一个ns_sync_pkt的位置;
正在存放指针alloc指向正在放入链表的那个ns_sync_pkt的位置;
已发送指针send指向已经发送出去的最后一个ns_sync_pkt的位置;
已确收指针backlog指向已经收到确认的最后一个ns_sync_pkt的指针。
例如,主设备向备份设备发送了100个数据结构体,备份设备每接收到20个数据结构体就向主设备返回一个确认信息,当接收到备份设备反馈的第一个接收到的数据结构体的编码标识为1,最后一个接收到的数据结构体的编码标识为98,那么,98-1=97,100-1=99,由于98小于99,说明备份设备没有接收主设备发送的100个数据结构体。主设备就会向备份设备重新发送者100个数据结构体。
再例如,当接收到备份设备反馈的第一个接收到的数据结构体的编码标识为101,最后一个接收到的数据结构体的编码标识为200,那么,200-101=99,100-1=99,说明备份设备接收主设备发送的100个数据结构体。主设备就会向备份设备重新发送者100个数据结构体,将确收指针指向已收到确认信息的最后一个数据结构体。然后再向备份设备发送下一个第一设定个数的数据结构体即可。
此外,还有一些特殊情况,比如:第一种,TCP会话有超时设置,如何保证同步过来的会话信息不会因为超时而被误删;第二种,基于动态端口的TCP协议流,如何保持主设备和备份设备一致性,当动态端口TCP流量切换到备份设备时仍能够正常识别并处理,针对安全设备的特殊性,解决方案如下:
针对第一种情况:为每条创建的会话添加第一标识信息得到会话信息。
为了防止会话信息自动超时删除,将创建的会话添加第一标识信息这样就得到了会话信息。假设添加的第一标识信息是SYNCED,若携带SYNCED的会话信息同步给备份设备,在主备切换前,备份设备不会删除携带SYNCED的会话信息,这样针对TCP协议流就可以保证主设备和备份设备的会话信息的一致性。
针对第二种情况:将基于动态协议的动态端口状态信息同步给备份设备。
对于动态协议来说,假设基于动态端口的会话还未建立,但是包含动态端口的数据包已经发送,此时发生了主备切换,那么再建立动态端口会话时,对端设备会因为没有会话丢弃数据包。此时,我们采用trust_table表来记录动态协议的动态端口状态信息,并将该trust_table表也添加到待发送序列中,同步给备份设备。
基于同一发明构思,本发明实施例提供一种会话信息同步方法,该方法的流程如图5所示,包括:
S50:高可用性系统中的备份设备与主设备建立UDP连接。
步骤S10-S14是从主设备一侧讲述会话信息同步方法的具体流程的,下面从备份设备一侧讲述。
S51:接收到主设备同步的会话信息后,向主设备反馈确认信息。
S52:根据接收到的会话信息更新自身的会话信息。
当备份设备接收到主设备同步过来的会话信息后,就可以更新自身的会话信息了,当发生主备切换后,备份设备可以直接接替主设备进行业务处理,这样就实现了无缝切换,保证了用户体验。
较佳的,上述S10中的高可用性系统中的备份设备与主设备建立UDP连接之后,还包括:以第一设定周期向主设备发送携带引擎当前状态的UDP单播心跳数据包;以及接收主设备以第一设定周期发送的UDP单播心跳数据包。
具体的,上述S51中的接收到主设备同步的会话信息,向主设备反馈确认信息,具体包括:将接收到的数据结构体放入接收链表中,将接收链表中已接收指针指向已经接收到的最后一个数据结构体的位置,将正在接收指针指向正在接收的数据结构体的位置;当接收到第三设定个数的数据结构体时,向主设备反馈携带接收到的数据结构体的编码标识的确认信息;其中,每个所述数据结构体中存放设定条数的会话信息。
如果主设备每次向备份设备发送100个数据结构体,备份设备可以每接收到20个数据结构体就向主设备反馈一个确认信息。备份设备接收到的主设备同步过来的数据结构体可以存储在接收链表中。
编码标识是备份设备接收到的数据结构体的编号,例如,接收到的第一个数据结构体的编号可以设置为1、第二个可以设置为2、依次类推。当然也可以采用其他的标号方式,这里不再赘述。
备份设备将添加的编码标识添加到确认信息中发送给主设备。
上述S12中的根据接收到的会话信息更新自身的会话信息之后,还包括:将已处理指针指向已经处理完的最后一个数据结构体的位置。
如图6所示为接收链表的结构,接收链表定义为ns_sync_recv_ring,初始化为ns_sync_recv_ring为1024*10个。链表由很多个ns_sync_pkt组成。当系统初始化时初始化3个指针:已接收指针alloc、正在接收指针cur、已处理指针send,其中:
cur指向当前放在链表里的最后一个ns_sync_pkt的位置;
alloc指向正在放入链表的那个ns_sync_pkt的位置;
send指向已经处理完的最后一个ns_sync_pkt的位置。
较佳的,上述会话信息同步方法,还包括:主备切换前,不删除仅携带第一标识信息的会话信息;主备切换后,为接收到的数据结构体中存放的没有携带第二标识信息的会话信息添加第二标识信息;以及删除携带第二标识信息且存在时间超过设定时间的会话信息。
主备切换前,备份设备A不删除仅携带第一标识信息的会话信息的原理在前文已有介绍,这里不再赘述。当主备切换后,备份设备A就变为主设备A,再为该会话信息添加第二标识信息ACTIVE,该会话信息就同时携带有SYNCED+ACTIVE,由于该会话信息携带第二标识信息ACTIVE,所以主设备A可以删除该会话信息;再次主备切换后,主设备A又变为备份设备A,该会话信息只携带第一标识信息SYNCED,备份设备A就不能删除该会话信息了。也就是说仅携带第一标识信息SYNCED的会话信息是不允许超时删除的,携带第二标识信息ACTIVE的会话信息才允许超时删除的。
较佳的,上述会话信息同步方法,还包括:接收主设备发送的基于动态协议的动态端口状态信息并更新。
这样,当主备切换过来以后,就可以根据trust_table表来记录动态协议的动态端口状态信息来接收数据包了。
基于同一发明构思,本发明实施例提供一种会话信息同步装置,该装置的结构如图7所示,包括:
连接单元70,用于确定自身所在的高可用性系统中的主设备和备份设备的心跳和引擎正常时,与备份设备建立用户数据包协议UDP连接。
同步单元71,用于将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给备份设备。
确定单元72,用于根据接收到备份设备反馈的确认信息,确定备份设备接收选取的会话信息后,转向同步单元。
具体的,上述连接单元70,具体用于:主设备以第一设定周期向备份设备发送携带引擎当前状态的UDP单播心跳数据包;以及当主设备在第二设定周期内接收到备份设备以第一设定周期发送的UDP单播心跳数据包、并解析出备份设备引擎的当前状态为激活状态时,确定自身和备份设备的心跳和引擎正常。
具体的,上述同步单元71,具体用于:将自身维护的会话信息以及实时产生的会话信息存放到数据结构体中,将数据结构体添加到发送链表中;在将会话信息存放到数据结构体和将数据结构体添加到发送链表的过程中,在发送链表中选取第一设定个数的数据结构体同步给备份设备;其中,每个数据结构体中存放设定条数的会话信息,发送链表中的已存放指针指向已存放的最后一个数据结构体的位置、正在存放指针指向正在存放的数据结构体的位置。
具体的,上述同步单元71,具体用于:将发送链表中从已发送指针未指过位置起的第一设定个数的数据结构体同步给备份设备;已发送指针指向已经发送出去的最后一个数据结构体的位置。
上述确定单元72,具体用于:当接收到备份设备反馈的确认信息时,解析确认信息中携带的接收到的数据结构体的编码标识;其中,备份设备每接收到第二设定个数的数据结构体反馈一个确认信息,第二设定数目不大于第一设定数目;当接收到的备份设备反馈的最后一个接收到的数据结构体的编码标识与第一个接收到的数据结构体的编码标识之差小于第一设定个数与1之差时,向备份设备重新发送第一设定个数的数据结构体;当接收到的备份设备反馈的最后一个接收到的数据结构体的编码标识信息与第一个接收到的数据结构体的编码标识之差等于第一设定个数与1之差时,将确收指针指向已收到确认信息的最后一个数据结构体。
一种优选的会话信息同步装置的结构如图8所示,该装置除了如图7所示的结构外,还包括管理单元73,用于:为创建的每条会话添加第一标识信息得到会话信息。
较佳的,上述同步单元71,还用于:将基于动态协议的动态端口状态信息同步给备份设备。
基于同一发明构思,本发明实施例提供一种会话信息同步装置,该装置的结构如图9所示,包括:
连接单元90,用于自身所在的高可用性系统中的备份设备与主设备建立用户数据包协议UDP连接。
反馈单元91,用于接收到主设备同步的会话信息后,向主设备反馈确认信息。
更新单元92,用于根据接收到的会话信息更新自身的会话信息。
一种优选的会话信息同步装置的结构如图10所示,该装置除了如图9所示的结构外,还包括:
发送单元93,用于以第一设定周期向主设备发送携带引擎当前状态的UDP单播心跳数据包。
接收单元94,用于接收主设备以第一设定周期发送的UDP单播心跳数据包。
具体的,上述反馈单元91,具体用于:将接收到的数据结构体放入接收链表中,将接收链表中已接收指针指向已经接收到的最后一个数据结构体的位置,将正在接收指针指向正在接收的数据结构体的位置;当接收到第三设定个数的数据结构体时,向主设备反馈携带接收到的数据结构体的编码标识的确认信息;其中,每个数据结构体中存放设定条数的会话信息。
上述更新单元,还用于:将已处理指针指向已经处理完的最后一个数据结构体的位置。
较佳的,如图10所示,上述会话信息同步装置还包括管理单元95,用于:主备切换前,不删除仅携带第一标识信息的回话信息;主备切换后,为接收到的数据结构体中存放的没有携带第二标识信息的会话信息添加所述第二标识信息;以及删除携带所述第二标识信息且存在时间超过设定时间的会话信息。
具体的,上述更新单元92,还用于:接收主设备发送的基于动态协议的动态端口状态信息并更新。
基于同一发明构思,本发明实施例提供一种会话信息同步装置,该装置的结构包括如图7和如图9所示的会话信息同步装置。
基于同一发明构思,本发明实施例提供一种会话信息同步系统,包括:
至少一个如图7所示的会话信息同步装置和至少一个如图9所示的会话信息同步装置;或者
至少一个如图9所示的会话信息同步装置和至少一个如图11所示的会话信息同步装置;或者
至少一个如图7所示的会话信息同步装置和至少一个如图11所示的会话信息同步装置。
下面说明会话信息同步系统中主备设备的工作流程,该系统的结构如图11所示,其中,会话信息同步系统包括主设备101和备份设备102。可以设置在主设备101中设置心跳模块1010,也可以在备份设备102中设置心跳模块1020,其中心跳模块1010、1020都维护对端状态标记,当对端心跳发生变化时,心跳模块1010、1020会更新该标记。同时引擎1011会轮询心跳模块1010中的标记,引擎1021会轮循心跳模块1020中的标记,若引擎1011、1021发现各自轮询的标记发生变化时,会开始主动对自身的会话信息进行控制。
当主设备101确定自身和备份设备的心跳模块和引擎正常时,与备份设备102建立UDP连接,之后的处理流程如图12所示,在主设备101上会发生很多事件,注册并处理这些事件后,会得到会话信息,将这些会话信息提交给发送链表,发送链表向备份设备102发送会话信息;备份设备102接收到主设备101同步的会话信息后,放入接收链表中,并向主设备101反馈确认信息,根据接收到的会话信息更新自身的会话信息;主设备101接收到备份设备101反馈的确认信息,就可以确定备份设备102接收到会话信息,然后可以继续向备份设备102同步会话信息。
该方案采用UDP连接和确认协议处理机制,这就可以确保备份设备可以及时接收到完整的会话信息,传输过程非常可靠;事件处理过程与会话信息同步过程处理过程完全分开,这就可以提高网络安全系统的处理性能,并且备份设备接收的会话信息能够及时更新,从而保证主备切换后业务不会中断,延长了网络安全系统的持续运行时间;发送链表和接收链表采用循环链表结构,发送链表有4个指针,接收链表有3个指针,能够异步处理数据结构体,提高处理速度和实时性,从而保证网络安全系统能够可靠性地同步会话信息。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (24)
1.一种会话信息同步方法,其特征在于,包括:
A、高可用性系统中的主设备确定自身和备份设备的心跳和引擎正常时,与所述备份设备建立用户数据包协议UDP连接;
B、将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给所述备份设备;
C、根据接收到所述备份设备反馈的确认信息,确定所述备份设备接收所述选取的会话信息后,转向步骤B。
2.如权利要求1所述的方法,其特征在于,高可用性系统中的主设备确定自身和备份设备的心跳和引擎正常,具体包括:
所述主设备以第一设定周期向备份设备发送携带引擎当前状态的UDP单播心跳数据包;以及
当所述主设备在第二设定周期内接收到所述备份设备以所述第一设定周期发送的UDP单播心跳数据包、并解析出所述备份设备引擎的当前状态为激活状态时,确定自身和所述备份设备的心跳和引擎正常。
3.如权利要求1所述的方法,其特征在于,将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给所述备份设备,具体包括:
将自身维护的会话信息以及实时产生的会话信息存放到数据结构体中,将所述数据结构体添加到发送链表中;
在将会话信息存放到数据结构体和将数据结构体添加到发送链表的过程中,在所述发送链表中选取第一设定个数的数据结构体同步给所述备份设备;
其中,每个所述数据结构体中存放设定条数的会话信息,所述发送链表中的已存放指针指向已存放的最后一个数据结构体的位置、正在存放指针指向正在存放的数据结构体的位置。
4.如权利要求3所述的方法,其特征在于,在所述发送链表中选取第一设定个数的数据结构体同步给所述备份设备,具体包括:
将所述发送链表中从已发送指针未指过位置起的第一设定个数的数据结构体同步给所述备份设备;所述已发送指针指向已经发送出去的最后一个数据结构体的位置;
根据接收到所述备份设备反馈的确认信息,确定所述备份设备接收所述选取的会话信息,具体包括:
当接收到所述备份设备反馈的确认信息时,解析所述确认信息中携带的接收到的数据结构体的编码标识;其中,所述备份设备每接收到第二设定个数的数据结构体反馈一个确认信息,所述第二设定数目不大于所述第一设定数目;
当接收到的所述备份设备反馈的最后一个接收到的数据结构体的编码标识与第一个接收到的数据结构体的编码标识之差小于所述第一设定个数与1之差时,向所述备份设备重新发送所述第一设定个数的数据结构体;
当接收到的所述备份设备反馈的最后一个接收到的数据结构体的编码标识信息与第一个接收到的数据结构体的编码标识之差等于所述第一设定个数与1之差时,将确收指针指向所述已收到确认信息的最后一个数据结构体。
5.如权利要求1所述的方法,其特征在于,还包括:
为创建的每条会话添加第一标识信息得到会话信息。
6.如权利要求1-5任一所述的方法,其特征在于,还包括:
将基于动态协议的动态端口状态信息同步给所述备份设备。
7.一种会话信息同步方法,其特征在于,包括:
高可用性系统中的备份设备与主设备建立用户数据包协议UDP连接;
接收到所述主设备同步的会话信息后,向所述主设备反馈确认信息;
根据接收到的会话信息更新自身的会话信息。
8.如权利要求7所述的方法,其特征在于,高可用性系统中的备份设备与主设备建立UDP连接之后,还包括:
以第一设定周期向所述主设备发送携带引擎当前状态的UDP单播心跳数据包;以及
接收所述主设备以所述第一设定周期发送的UDP单播心跳数据包。
9.如权利要求7所述的方法,其特征在于,接收到所述主设备同步的会话信息,向所述主设备反馈确认信息,具体包括:
将接收到的数据结构体放入接收链表中,将所述接收链表中已接收指针指向已经接收到的最后一个数据结构体的位置,将正在接收指针指向正在接收的数据结构体的位置;其中,每个所述数据结构体中存放设定条数的会话信息;
当接收到第三设定个数的数据结构体时,向所述主设备反馈携带接收到的数据结构体的编码标识的确认信息;
根据接收到的会话信息更新自身的会话信息之后,还包括:
将已处理指针指向已经处理完的最后一个数据结构体的位置。
10.如权利要求9所述的方法,其特征在于,还包括:
主备切换前,不删除仅携带第一标识信息的会话信息;
主备切换后,为接收到的数据结构体中存放的没有携带第二标识信息的会话信息添加所述第二标识信息;以及删除携带所述第二标识信息且存在时间超过设定时间的会话信息。
11.如权利要求7-10任一所述的方法,其特征在于,还包括:
接收所述主设备发送的基于动态协议的动态端口状态信息并更新。
12.一种会话信息同步装置,其特征在于,包括:
连接单元,用于确定自身所在的高可用性系统中的主设备和备份设备的心跳和引擎正常时,与所述备份设备建立用户数据包协议UDP连接;
同步单元,用于将在自身维护的会话信息以及实时产生的会话信息中选取的会话信息同步给所述备份设备;
确定单元,用于根据接收到所述备份设备反馈的确认信息,确定所述备份设备接收所述选取的会话信息后,转向所述同步单元。
13.如权利要求12所述的装置,其特征在于,所述单元,具体用于:
所述主设备以第一设定周期向备份设备发送携带引擎当前状态的UDP单播心跳数据包;以及
当所述主设备在第二设定周期内接收到所述备份设备以所述第一设定周期发送的UDP单播心跳数据包、并解析出所述备份设备引擎的当前状态为激活状态时,确定自身和所述备份设备的心跳和引擎正常。
14.如权利要求12所述的装置,其特征在于,所述同步单元,具体用于:
将自身维护的会话信息以及实时产生的会话信息存放到数据结构体中,将所述数据结构体添加到发送链表中;
在将会话信息存放到数据结构体和将数据结构体添加到发送链表的过程中,在所述发送链表中选取第一设定个数的数据结构体同步给所述备份设备;
其中,每个所述数据结构体中存放设定条数的会话信息,所述发送链表中的已存放指针指向已存放的最后一个数据结构体的位置、正在存放指针指向正在存放的数据结构体的位置。
15.如权利要求14所述的装置,其特征在于,所述同步单元,具体用于:
将所述发送链表中从已发送指针未指过位置起的第一设定个数的数据结构体同步给所述备份设备;所述已发送指针指向已经发送出去的最后一个数据结构体的位置;
所述确定单元,具体用于:
当接收到所述备份设备反馈的确认信息时,解析所述确认信息中携带的接收到的数据结构体的编码标识;其中,所述备份设备每接收到第二设定个数的数据结构体反馈一个确认信息,所述第二设定数目不大于所述第一设定数目;
当接收到的所述备份设备反馈的最后一个接收到的数据结构体的编码标识与第一个接收到的数据结构体的编码标识之差小于所述第一设定个数与1之差时,向所述备份设备重新发送所述第一设定个数的数据结构体;
当接收到的所述备份设备反馈的最后一个接收到的数据结构体的编码标识信息与第一个接收到的数据结构体的编码标识之差等于所述第一设定个数与1之差时,将确收指针指向所述已收到确认信息的最后一个数据结构体。
16.如权利要求12所述的装置,其特征在于,还包括管理单元,用于:
为创建的每条会话添加第一标识信息得到会话信息。
17.如权利要求12-16任一所述的装置,其特征在于,所述同步单元,还用于:
将基于动态协议的动态端口状态信息同步给所述备份设备。
18.一种会话信息同步装置,其特征在于,包括:
连接单元,用于自身所在的高可用性系统中的备份设备与主设备建立用户数据包协议UDP连接;
反馈单元,用于接收到所述主设备同步的会话信息后,向所述主设备反馈确认信息;
更新单元,用于根据接收到的会话信息更新自身的会话信息。
19.如权利要求18所述的装置,其特征在于,还包括:
发送单元,用于以第一设定周期向所述主设备发送携带引擎当前状态的UDP单播心跳数据包;
接收单元,用于接收所述主设备以所述第一设定周期发送的UDP单播心跳数据包。
20.如权利要求18所述的装置,其特征在于,所述反馈单元,具体用于:
将接收到的数据结构体放入接收链表中,将所述接收链表中已接收指针指向已经接收到的最后一个数据结构体的位置,将正在接收指针指向正在接收的数据结构体的位置;其中,每个所述数据结构体中存放设定条数的会话信息;
当接收到第三设定个数的数据结构体时,向所述主设备反馈携带接收到的数据结构体的编码标识的确认信息;
所述更新单元,还用于:将已处理指针指向已经处理完的最后一个数据结构体的位置。
21.如权利要求20所述的装置,其特征在于,还包括管理单元,用于:
主备切换前,不删除仅携带第一标识信息的回话信息;
主备切换后,为接收到的数据结构体中存放的没有携带第二标识信息的会话信息添加所述第二标识信息;以及删除携带所述第二标识信息且存在时间超过设定时间的会话信息。
22.如权利要求18-21任一所述的装置,其特征在于,所述更新单元,还用于:
接收所述主设备发送的基于动态协议的动态端口状态信息并更新。
23.一种会话信息同步装置,其特征在于,包括:如权利要求12-17任一所述的会话信息同步装置和如权利要求18-22任一所述的会话信息同步装置。
24.一种会话信息同步系统,其特征在于,包括:
至少一个如权利要求12-17任一所述的会话信息同步装置和至少一个如权利要求18-22任一所述的会话信息同步装置;或者
至少一个如权利要求12-17任一所述的会话信息同步装置和至少一个如权利要求23所述的会话信息同步装置;或者
至少一个如权利要求18-22任一所述的会话信息同步装置和至少一个如权利要求23所述的会话信息同步装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210262544.6A CN102769626B (zh) | 2012-07-26 | 2012-07-26 | 一种会话信息同步方法、装置以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210262544.6A CN102769626B (zh) | 2012-07-26 | 2012-07-26 | 一种会话信息同步方法、装置以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102769626A true CN102769626A (zh) | 2012-11-07 |
CN102769626B CN102769626B (zh) | 2015-11-18 |
Family
ID=47096876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210262544.6A Active CN102769626B (zh) | 2012-07-26 | 2012-07-26 | 一种会话信息同步方法、装置以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102769626B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103441870A (zh) * | 2013-08-20 | 2013-12-11 | 苏州迈科网络安全技术股份有限公司 | 一种智能实时无缝切换的双机备份方法 |
CN103581300A (zh) * | 2013-10-10 | 2014-02-12 | 国家电网公司 | 互动会议系统信息资料在线保全方法 |
CN104702684A (zh) * | 2015-03-10 | 2015-06-10 | 杭州华三通信技术有限公司 | 一种数据同步方法和装置 |
CN104954324A (zh) * | 2014-03-26 | 2015-09-30 | 阿里巴巴集团控股有限公司 | 一种Session容灾方法及装置 |
CN106169999A (zh) * | 2016-07-27 | 2016-11-30 | 杭州迪普科技有限公司 | 会话备份的方法及装置 |
CN107995022A (zh) * | 2017-10-25 | 2018-05-04 | 东软集团股份有限公司 | 会话同步方法及装置、存储介质、电子设备 |
CN108023968A (zh) * | 2017-12-21 | 2018-05-11 | 东软集团股份有限公司 | 一种会话信息同步方法、装置及设备 |
CN108710661A (zh) * | 2018-05-11 | 2018-10-26 | 武汉轻工大学 | 一种基于内存顺序表实现文本文件的数据管理方法和装置 |
CN108984105A (zh) * | 2017-06-02 | 2018-12-11 | 伊姆西Ip控股有限责任公司 | 对网络存储设备中的复制任务进行分配的方法和设备 |
CN110011767A (zh) * | 2019-04-17 | 2019-07-12 | 北京百度网讯科技有限公司 | 用于tcp连接备份的方法和装置 |
US10616728B2 (en) * | 2018-03-14 | 2020-04-07 | I/O Interconnect, Ltd. | Wireless connecting method, backup device, and non-transitory backup device-readable storage medium |
CN110995530A (zh) * | 2019-11-15 | 2020-04-10 | 北京连山科技股份有限公司 | 解决短周期内数据单向到达问题的方法及设备 |
CN112217735A (zh) * | 2020-09-08 | 2021-01-12 | 网宿科技股份有限公司 | 信息同步方法与负载均衡系统 |
CN112732483A (zh) * | 2020-12-31 | 2021-04-30 | 联想(北京)有限公司 | 一种数据恢复方法、装置及系统 |
CN113905055A (zh) * | 2021-09-11 | 2022-01-07 | 苏州浪潮智能科技有限公司 | 一种bmc之间数据同步传输的方法、装置、设备及可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725702A (zh) * | 2004-07-20 | 2006-01-25 | 联想网御科技(北京)有限公司 | 一种网络安全设备及其组成的实现高可用性的系统及方法 |
CN101446972A (zh) * | 2008-12-12 | 2009-06-03 | 中兴通讯股份有限公司 | 一种动态数据同步的方法和系统 |
CN102045187A (zh) * | 2009-10-10 | 2011-05-04 | 杭州华三通信技术有限公司 | 一种利用检查点实现高可用性系统的方法和设备 |
-
2012
- 2012-07-26 CN CN201210262544.6A patent/CN102769626B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725702A (zh) * | 2004-07-20 | 2006-01-25 | 联想网御科技(北京)有限公司 | 一种网络安全设备及其组成的实现高可用性的系统及方法 |
CN101446972A (zh) * | 2008-12-12 | 2009-06-03 | 中兴通讯股份有限公司 | 一种动态数据同步的方法和系统 |
CN102045187A (zh) * | 2009-10-10 | 2011-05-04 | 杭州华三通信技术有限公司 | 一种利用检查点实现高可用性系统的方法和设备 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103441870A (zh) * | 2013-08-20 | 2013-12-11 | 苏州迈科网络安全技术股份有限公司 | 一种智能实时无缝切换的双机备份方法 |
CN103581300B (zh) * | 2013-10-10 | 2018-06-19 | 国家电网公司 | 互动会议系统信息资料在线保全方法 |
CN103581300A (zh) * | 2013-10-10 | 2014-02-12 | 国家电网公司 | 互动会议系统信息资料在线保全方法 |
CN104954324A (zh) * | 2014-03-26 | 2015-09-30 | 阿里巴巴集团控股有限公司 | 一种Session容灾方法及装置 |
CN104954324B (zh) * | 2014-03-26 | 2018-04-10 | 阿里巴巴集团控股有限公司 | 一种Session容灾方法及装置 |
CN104702684A (zh) * | 2015-03-10 | 2015-06-10 | 杭州华三通信技术有限公司 | 一种数据同步方法和装置 |
CN104702684B (zh) * | 2015-03-10 | 2019-01-08 | 新华三技术有限公司 | 一种数据同步方法和装置 |
CN106169999A (zh) * | 2016-07-27 | 2016-11-30 | 杭州迪普科技有限公司 | 会话备份的方法及装置 |
CN108984105A (zh) * | 2017-06-02 | 2018-12-11 | 伊姆西Ip控股有限责任公司 | 对网络存储设备中的复制任务进行分配的方法和设备 |
CN108984105B (zh) * | 2017-06-02 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 对网络存储设备中的复制任务进行分配的方法和设备 |
CN107995022A (zh) * | 2017-10-25 | 2018-05-04 | 东软集团股份有限公司 | 会话同步方法及装置、存储介质、电子设备 |
CN107995022B (zh) * | 2017-10-25 | 2021-03-05 | 东软集团股份有限公司 | 会话同步方法及装置、存储介质、电子设备 |
CN108023968A (zh) * | 2017-12-21 | 2018-05-11 | 东软集团股份有限公司 | 一种会话信息同步方法、装置及设备 |
US10616728B2 (en) * | 2018-03-14 | 2020-04-07 | I/O Interconnect, Ltd. | Wireless connecting method, backup device, and non-transitory backup device-readable storage medium |
CN108710661A (zh) * | 2018-05-11 | 2018-10-26 | 武汉轻工大学 | 一种基于内存顺序表实现文本文件的数据管理方法和装置 |
CN110011767A (zh) * | 2019-04-17 | 2019-07-12 | 北京百度网讯科技有限公司 | 用于tcp连接备份的方法和装置 |
CN110995530A (zh) * | 2019-11-15 | 2020-04-10 | 北京连山科技股份有限公司 | 解决短周期内数据单向到达问题的方法及设备 |
CN112217735A (zh) * | 2020-09-08 | 2021-01-12 | 网宿科技股份有限公司 | 信息同步方法与负载均衡系统 |
CN112732483A (zh) * | 2020-12-31 | 2021-04-30 | 联想(北京)有限公司 | 一种数据恢复方法、装置及系统 |
CN113905055A (zh) * | 2021-09-11 | 2022-01-07 | 苏州浪潮智能科技有限公司 | 一种bmc之间数据同步传输的方法、装置、设备及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102769626B (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102769626A (zh) | 一种会话信息同步方法、装置以及系统 | |
US8756412B2 (en) | Gateway supporting transparent redundancy in process control systems and other systems and related method | |
CN102035687B (zh) | Tcp连接的备份方法及其设备 | |
CN104243205A (zh) | 一种虚拟交换机故障时的报文处理方法和设备 | |
CN103544303A (zh) | 一种数据同步方法、系统和设备 | |
CN110313138A (zh) | 使用多个网元实现高可用性 | |
CN103747535A (zh) | 一种capwap控制通道的恢复方法、装置及系统 | |
CN108833569A (zh) | 一种数据同步方法及相关装置 | |
CN102769627A (zh) | 一种配置文件同步方法及装置 | |
CN103607302A (zh) | 故障信息上报方法、监控设备及管理设备 | |
CN107872396A (zh) | 具有超时控制的通信方法、处理设备、终端设备和服务器 | |
EP2472793A1 (en) | Method, device and system for transmitting e1 bidirectional looped network data | |
JP2003337717A (ja) | オンライントランザクション処理の障害時復旧同期システム | |
CN105281940B (zh) | 一种基于netconf协议的hello报文交互的方法、设备和系统 | |
CN104717280B (zh) | 数据同步的标记方法和装置 | |
CN104935614B (zh) | 一种数据传输方法及装置 | |
US9686128B2 (en) | Wireless network adapter and self-configuration method of same | |
CN101686199B (zh) | 以太网保护系统中控制报文的处理方法、装置及系统 | |
CN102480366A (zh) | 一种关于会议系统软件的双机热备份运行方法 | |
CN103713964B (zh) | 一种数据备份、恢复的方法和电子设备 | |
CN102123079A (zh) | 一种事务报文处理方法和装置 | |
CN102684865A (zh) | 一种数据同步的方法、系统及设备 | |
CN111200578A (zh) | 一种通信方法、客户端设备及服务端设备 | |
WO2016177211A1 (zh) | 地址解析协议arp表项的同步方法及装置 | |
CN103916409A (zh) | 一种数据同步的方法、终端与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee after: NSFOCUS Technologies Group Co.,Ltd. Patentee after: NSFOCUS TECHNOLOGIES Inc. Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd. Patentee before: NSFOCUS TECHNOLOGIES Inc. |