一种会话信息同步方法、装置及设备与流程

文档序号:14410277阅读:209来源:国知局
一种会话信息同步方法、装置及设备与流程
本申请涉及计算机领域,尤其涉及一种会话信息同步方法、装置及设备。
背景技术
:防火墙是建立在终端和服务器之间,控制二者之间通信的装置。当终端和服务器其中一方向另外一方发送的报文到达防火墙后,防火墙基于该报文发送行为建立会话(session),因此会话代表终端和服务器之间的连接状态,一个会话表示双方的一个连接。防火墙存储有包括源地址、源端口、目的地址、目的端口和协议等元素的会话信息,通过会话信息可以唯一确定一条连接。当防火墙将报文发送至另外一方,并且接收到另外一方回复的报文后,防火墙判断该回复的报文的会话信息是否与已经存储的会话信息匹配,如果匹配,则转发该回复的报文。防火墙系统是高可用集群(highavailabilitycluster,简称hacluster)系统的一个应用。通常情况下,防火墙系统包括主模块和备用模块,其中主模块为正在进行报文转发的模块,而备用模块为主模块的冗余模块。为了实现冗余设计,主模块将会话信息发送给备用模块,当主模块断电或由于一些异常原因无法正常运行,备用模块就会代替主模块进行转发,从而实现转发不中断的效果。然而,若主模块同步给备用模块的会话信息部分或全部丢失,当备用模块变为主模块后,终端和服务器之间发送的报文因为没有匹配的会话信息而不允许转发,所以会出现转发中断的现象。技术实现要素:为了解决现有技术中存在的技术问题,本申请提供了一种会话信息同步方法、装置及设备。本申请提供了一种会话信息同步方法,所述方法应用于第一模块,所述方法包括:向第二模块发送待同步的多个会话信息和各自的会话标识,所述多个会话信息的会话标识符合预设会话标识顺序规则,以使第二模块根据预设会话标识顺序规则判断是否存在丢失的会话信息;所述第一模块和所述第二模块中的其中一个为主模块,另外一个为备用模块;响应来自于所述第二模块的会话信息重发请求,所述会话信息重发请求中携带有丢失的会话信息的会话标识,向所述第二模块发送与所述丢失的会话信息的会话标识对应的会话信息,以便所述第二模块实现会话信息同步。可选的,所述向第二模块发送待同步的多个会话信息包括:当所述第二模块的同步状态标识为预设标识时,向所述第二模块发送所述第一模块存储的全部会话信息,其中,当所述第二模块启动时,所述第二模块的同步状态标识被设置为所述预设标识。可选的,所述待同步的多个会话信息和所述各自的会话标识存储在预设缓存区域中;在步骤向第二模块发送待同步的多个会话信息之前,所述方法还包括:修改所述预设缓存区域的释放标识,以使当所述待同步的多个会话信息被发送出去之后,所述预设缓存区域没有被释放到内存池中。可选的,所述第一模块包括多个第一cpu,每个第一cpu都具有自己的预设缓存区域,所述第二模块包括多个第二cpu,且所述多个第一cpu和所述多个第二cpu具有一一映射关系;所述向第二模块发送待同步的多个会话信息包括:所述多个第一cpu分别向与其具有一一映射关系的第二cpu发送存储在其预设缓存区域中的待同步的多个会话信息。可选的,当向所述第二模块发送与所述丢失的会话信息的会话标识对应的会话信息之后,所述方法还包括:删除所述预设缓存区域中的会话信息。本申请实施例提供了一种会话信息同步方法,所述方法应用于第二模块,所述方法包括:获取来自于第一模块的待同步的多个会话信息和各自的会话标识;所述第一模块和所述第二模块中的其中一个为主模块,另外一个为备用模块;根据预设会话标识顺序规则以及所述多个会话信息的会话标识,判断是否存在丢失的会话信息,若存在,则向所述第一模块发送会话信息重发请求,所述会话信息重发请求中携带有所述丢失的会话信息的会话标识,所述丢失的会话信息的会话标识根据所述预设会话标识顺序规则以及所述多个会话信息的会话标识的顺序进行确定;获取来自于所述第一模块的、与所述丢失的会话信息的会话标识对应的会话信息,并利用接收到的所述多个会话信息和所述丢失的会话信息,对会话表项中的会话信息进行同步。可选的,当判断出存在丢失的会话信息后,所述方法还包括:将所述丢失的会话信息的会话标识存储在链表中。可选的,所述方法还包括:遍历所述链表,并根据所述链表中存储的会话标识生成所述会话信息重发请求;在获取到来自于所述第一模块的、与所述丢失的会话信息的会话标识对应的会话信息之后,所述方法还包括:将所述链表中存储的已接收到的丢失的会话信息的会话标识删除。本申请实施例还提供了一种会话信息同步装置,所述装置包括:第一发送单元,用于向第二模块发送待同步的多个会话信息和各自的会话标识,所述多个会话信息的会话标识符合预设会话标识顺序规则,以使第二模块根据预设会话标识顺序规则判断是否存在丢失的会话信息;所述装置和所述第二模块中的其中一个为主模块,另外一个为备用模块;第二发送单元,用于响应来自于所述第二模块的会话信息重发请求,所述会话信息重发请求中携带有丢失的会话信息的会话标识,向所述第二模块发送与所述丢失的会话信息的会话标识对应的会话信息,以便所述第二模块实现会话信息同步。本申请实施例还提供了一种会话信息同步装置,所述装置包括:获取单元,用于获取来自于第一模块的待同步的多个会话信息和各自的会话标识;所述第一模块和所述装置中的其中一个为主模块,另外一个为备用模块;判断单元,用于根据预设会话标识顺序规则以及所述多个会话信息的会话标识,判断是否存在丢失的会话信息,若存在,则激活发送单元;所述发送单元,用于向所述第一模块发送会话信息重发请求,所述会话信息重发请求中携带有所述丢失的会话信息的会话标识,所述丢失的会话信息的会话标识根据所述预设会话标识顺序规则以及所述多个会话信息的会话标识的顺序进行确定;同步单元,用于获取来自于所述第一模块的、与所述丢失的会话信息的会话标识对应的会话信息,并利用接收到的所述多个会话信息和所述丢失的会话信息,对会话表项中的会话信息进行同步。本申请实施例还提供了一种会话信息同步设备,所述设备包括:处理器和用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:向第二模块发送待同步的多个会话信息和各自的会话标识,所述多个会话信息的会话标识符合预设会话标识顺序规则,以使第二模块根据预设会话标识顺序规则判断是否存在丢失的会话信息;所述设备和所述第二模块中的其中一个为主模块,另外一个为备用模块;响应来自于所述第二模块的会话信息重发请求,所述会话信息重发请求中携带有丢失的会话信息的会话标识,向所述第二模块发送与所述丢失的会话信息的会话标识对应的会话信息,以便所述第二模块实现会话信息同步。本申请实施例还提供了一种会话信息同步设备,所述设备包括:处理器和用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:获取来自于第一模块的待同步的多个会话信息和各自的会话标识;所述第一模块和所述设备中的其中一个为主模块,另外一个为备用模块;根据预设会话标识顺序规则以及所述多个会话信息的会话标识,判断是否存在丢失的会话信息,若存在,则向所述第一模块发送会话信息重发请求,所述会话信息重发请求中携带有所述丢失的会话信息的会话标识,所述丢失的会话信息的会话标识根据所述预设会话标识顺序规则以及所述多个会话信息的会话标识的顺序进行确定;获取来自于所述第一模块的、与所述丢失的会话信息的会话标识对应的会话信息,并利用接收到的所述多个会话信息和所述丢失的会话信息,对会话表项中的会话信息进行同步。本申请实施例提供的会话信息同步方法、装置及设备,通过第一模块向第二模块发送待同步的多个会话信息,第二模块在检测到会话信息丢失时,向第一模块发送会话信息重发请求,第一模块根据会话信息重发请求中的会话标识,将丢失的会话信息重新向第二模块发送,以便第二模块进行会话信息的同步。通过第二模块对第一模块发送的待同步会话信息状态进行监测,在发生会话信息丢失时请求第一模块重新进行发送,使第二模块能够及时获取到待同步会话信息,在第一模块由于异常情况无法正常运行时,第二模块将作为主模块进行会话信息的转发,信息转发不会中断,提高信息传输效率及用户体验。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本申请实施例提供的会话信息同步方法应用的硬件结构框图;图2为本申请实施例提供的一种会话信息同步方法流程图;图3为本申请实施例提供的另一种会话信息同步方法流程图;图4为本申请实施例提供的又一种会话信息同步方法流程图;图5为本申请实施例提供的一种会话信息同步装置;图6为本申请实施例提供的另一种会话信息同步装置;图7为本申请实施例提供的一种会话信息同步设备。具体实施方式为了使本
技术领域
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。现有技术中,对于防火墙系统中的主模块和备用模块之间的同步信息交互,通常假设高可用线路是可靠不丢包的,并未对于可能存在的会话信息丢失情况做出处理,而会话信息丢失的状况可能会导致主模块和备用模块在切换时会话不一致,从而导致异常。例如主模块a、备用模块b同时工作,因为一些网络情况造成主模块a向备用模块b发送的待同步会话信息丢失,即备用模块b与主模块a中的信息不同步,在主模块a发生故障时,备用模块b不能做出该丢失的待同步会话信息相应的报文转发,会导致该会话对应的信息传输中断。本申请实施例提供的会话信息同步方法,充分考虑了如何判断备用模块是否收到待同步的会话信息,在备用模块判断存在丢失的会话信息时,将丢失的会话信息标识发送至主模块,由主模块重新发送至备用模块,以便备用模块利用接收到的会话信息进行更新,从而保证主模块和备用模块的信息同步。在备用模块向主模块发送待同步的会话信息时,由主模块进行是否丢失会话信息的判断,实现主模块和备用模块之间的信息同步。在一种示例性的场景中,本申请实施例可以应用到如图1所示的硬件系统中,该系统包括第一设备100和第二设备200,第一设备100和第二设备200中的其中一个设备为主模块,另外一个设备为备用模块,通常情况下,主模块执行防火墙功能,实现报文的转发,备用模块是主模块的冗余模块。当主模块断电或由于一些异常原因无法正常运行,备用模块就会代替主模块进行转发,从而实现转发不中断的效果。在多核系统中,每个设备均存在多个cpu,例如第一设备100中的多个第一cpu:cpu11,cpu12,cpu13,…,cpu1m等,第二设备200中的多个第二cpu:cpu21,cpu22,cpu23,…,cpu2m等,且设备中的各个cpu彼此独立。第一cpu可以作为主模块,相应的第二cpu可以作为备用模块,或者第二cpu作为主模块,相应的第一cpu可以作为备用模块。本申请实施例中,以cpu11和cpu21为例,cpu11将会话信息发送给cpu21,cpu21判断接收到的会话信息是否存在丢失,若存在丢失的会话信息,则向cpu11发送会话信息重发请求,cpu11根据接收到的会话信息重发请求中丢失的会话信息的标识,向cpu21发送丢失的会话信息,以便cpu21利用接收到的会话信息进行更新,实现cpu11和cpu21中的会话信息的同步。在多核系统中,为了保证多核之间性能不受共享竞争资源影响,第一模块包括多个第一cpu,每个第一cpu都具有自己的预设缓存区域,第二模块包括多个第二cpu,且多个第一cpu和多个第二cpu具有一一映射关系。所述多个第一cpu分别向与其具有一一映射关系的第二cpu发送存储在其预设缓存区域中的待同步的多个会话信息。第一cpu和第二cpu是对应的,保证会话信息的安全性,同时实现多核系统中的资源独立化,避免会话信息在不同的cpu中进行传输引起的信息混乱,提高设备性能。待同步的会话信息可以存储于预设缓存区域中,例如存储于预设缓存区域中的同步信息表中。以cpu11和对应的cpu21为例,在cpu11中存储有待同步会话信息,该会话信息存储在位于预设缓存区域的同步信息表11中,cpu11中的预设缓存区域只供cpu11进行操作,其他cpu不能实现操作。cpu11将待同步会话信息向cpu21发送,cpu21在收到待同步会话信息后,将其存储在cpu21的预设缓存区域中,形成同步信息表21,cpu21中的预设缓存区域只供cpu21操作。同步信息表11和同步信息表21可以是相同的,也可以有差别。相应的,cpu12对应cpu22,cpu13对应cpu23,cpu1m对应cpu2m,cpu12中的同步信息表12对应cpu22中的同步信息表22,cpu13中的同步信息表13对应cpu23中的同步信息表23,cpu1m中的同步信息表1m对应cpu2m中的同步信息表2m,即第一设备100中的cpu与第二设备200中的cpu一一对应,且只能将同步信息发送至对应的cpu,相互对应的两个cpu中的预设缓存区域也相互对应,其中的同步信息表也相互对应。本申请实施例中,第一模块将会话信息发送给对应的第二模块,第二模块判断接收到的会话信息是否存在丢失,若存在丢失的会话信息,则向第一模块发送会话信息重发请求,第一模块根据接收到的会话信息重发请求中丢失的会话信息的标识,向第二模块发送丢失的会话信息,以便第二模块利用接收到的会话信息进行更新,实现第一模块和第二模块中的会话信息的同步。同时将会话信息设计为每核资源,只有所属的cpu能够进行操作,避免会话信息在不同的cpu中进行传输引起的信息混乱,提高设备性能。为了避免现有技术中,主模块向备用模块发送会话信息丢失造成的信息传输中断的问题,本申请实施例提供了一种会话信息同步方法,其执行主体为第一模块,如图2所示为本申请实施例提供的会话信息同步方法的流程图,包括如下步骤。步骤s101,向第二模块发送待同步的多个会话信息和各自的会话标识,所述多个会话信息的会话标识符合预设会话标识顺序规则,以使第二模块根据预设会话标识顺序规则判断是否存在丢失的会话信息。在本申请实施例中,第一模块和第二模块的其中一个为主模块,另外一个为备用模块,主模块用于执行防火墙功能,进行报文的转发,备用模块为主模块的冗余模块。主模块主要进行会话的转发,使防火墙两侧的通信顺利进行,在主模块断电或由于一些异常原因无法正常运行时,备用模块执行防火墙功能,进行会话的转发,从而实现转发不中断的效果。作为一种可能的实现方式,当主模块需要向备用模块发送待同步数据时,主模块为第一模块,备用模块为第二模块。例如主模块在执行防火墙功能过程中,将会话产生的全部或部分会话信息发送至备用模块,实现主模块和备用模块的信息同步。作为另一种可能的实现方式,当备用模块需要向主模块发送待同步数据时,备用模块为第一模块,主模块为第二模块。例如当主模块发生故障造成信息丢失时,备用模块可以作为第一模块,向主模块发送全部或部分会话信息,此时主模块作为第二模块进行待同步数据的接收。具体的,第一模块可以是第一设备100,相应的第二模块可以是第二设备200,第一模块也可以是第一设备100中的第一cpu,第二模块也可以是第二设备200中的第二cpu。待同步的会话信息可以是第一模块在进行报文转发时生成的,一条会话对应一个会话信息,会话信息可以包括源地址(left_mac)、源端口(left_key)、目的地址(right_mac)、目的端口(right_key)和协议(vsys)等五元组元素,会话信息还可以包括会话状态(state)、源入口(left_indev)和目的入口(right_indev)、源出口(left_invlan)和目的出口(right_invlan)、策略(profile)、标签(flags)、收发包个数等,会话信息的组成可依情况而定,在此不做限定。每个会话信息还可以分别具有会话标识(index),用于识别不同会话。第一模块可以在会话信息的状态发生变化时,向第二模块发送待同步的会话信息,也可以在状态有变化的会话信息数量达到预设存储量时进行待同步会话信息的发送,还可以在到达预设时间进行待同步会话信息的发送,预设时间例如可以是1秒,还可以在第二模块向第一模块发送第二模块的同步状态标识后,向第二模块发送与同步状态标识对应的待同步会话信息。第一模块向第二模块发送的待同步的多个会话信息的会话标识符合预设会话标识顺序规则,例如会话标识可以按序增长,从1至最大序号(max),例如作为第一模块的cpu11向对应的第二模块cpu21依次发送会话标识为001,002,003,…,max的会话,会话标识也可以从最大序号(max)开始按序减小,不影响本申请实施例的实现。步骤s102,响应来自于所述第二模块的会话信息重发请求,向所述第二模块发送与所述丢失的会话信息的会话标识对应的会话信息,以便所述第二模块实现会话信息同步。第一模块接收到的会话信息重发请求中携带有丢失的会话信息的会话标识。第一模块在接收到会话信息重发请求后,根据丢失的会话信息的会话标识,可立刻向第二模块发送与丢失的会话信息的会话标识对应的会话信息,也可在预设时间后发送,在此不做限定。例如第一模块在接收到包含有丢失的会话信息的会话标识为002,则对应的向第二模块发送会话表示为002的会话信息,以便第二模块根据接收到的重新发送的会话信息进行信息的同步。本申请实施例提供的会话信息同步方法,通过第一模块向第二模块发送待同步的多个会话信息,第二模块在检测到会话信息丢失时,向第一模块发送会话信息重发请求,第一模块根据会话信息重发请求中的会话标识,将丢失的会话信息重新向第二模块发送,以便第二模块进行会话信息的同步。通过第一模块重发丢失的会话信息,使第二模块能够及时获取到待同步会话信息,在第一模块由于异常情况无法正常运行时,第二模块将作为主模块进行会话信息的转发,信息转发不会中断,提高信息传输效率及用户体验。本申请实施例还提供了另一种会话信息同步方法,其执行主体为第二模块,如图3所示为本申请实施例提供的会话信息同步方法的流程图,包括如下步骤。步骤s201,获取来自于第一模块的待同步的多个会话信息和各自的会话标识。第二模块接收到的待同步的会话信息与第一模块发送的会话信息对应,可参考步骤s101,在此不再赘述。步骤s202,根据预设会话标识顺序规则以及所述多个会话信息的会话标识,判断是否存在丢失的会话信息,若存在,则向所述第一模块发送会话信息重发请求。如前所述,第一模块向第二模块发送的待同步的多个会话信息的会话标识可以具有特定的顺序,该顺序按照预设会话标识顺序规则形成,例如会话标识的顺序为001,002,003,…,max。第二模块在接收到多个会话信息后,可根据预设会话标识顺序规则以及接收到的多个会话信息的会话标识的顺序,对接收到的会话信息进行判断。举例而言,若预设会话标识顺序规则为依序增长,依序发送的会话信息的会话标识为001,002,003,…,max,而第二模块接收到的会话信息的会话标识的顺序不满足预设会话标识顺序规则,例如第二模块接收到会话标识为001,003,…,max的会话信息,而未接收到会话标识为002的会话信息,可判断会话标识为002的会话信息丢失。在第二模块判断存在丢失的会话信息后,可以向第一模块发送会话信息重发请求,该请求中携带有丢失的会话信息的会话标识。会话信息重发请求可以在判断存在丢失的会话信息后立即发送,也在判断出存在丢失的会话信息后经过预设时间进行发送。步骤s203,获取来自于所述第一模块的、与所述丢失的会话信息的会话标识对应的会话信息,并利用接收到的所述多个会话信息和所述丢失的会话信息,对会话表项中的会话信息进行同步。第二模块在接收到第一模块重发的会话信息后,利用接收到的多个待同步会话信息、与丢失的会话信息的会话标识对应的会话信息,进行会话表项中的会话信息的更新,实现第一模块和第二模块中的会话信息的同步。本申请实施例提供的会话信息同步方法,通过第一模块向第二模块发送待同步的多个会话信息,第二模块在检测到会话信息丢失时,向第一模块发送会话信息重发请求,第一模块根据会话信息重发请求中的会话标识,将丢失的会话信息重新向第二模块发送,以便第二模块进行会话信息的同步。通过第二模块对第一模块发送的待同步会话信息状态进行监测,在发生会话信息丢失时请求第一模块重新进行发送,使第二模块能够及时获取到待同步会话信息,在第一模块由于异常情况无法正常运行时,第二模块将作为主模块进行会话信息的转发,信息转发不会中断,提高信息传输效率及用户体验。基于以上会话信息同步方法,本申请实施例还提供了又一种会话信息同步方法,如图4所示为本申请实施例提供的会话信息同步方法的流程图,包括如下步骤。步骤s300,修改第一模块中的预设缓存区域的释放标识,以便当待同步的多个会话信息被发送出去之后,所述预设缓存区域没有被释放到内存池中。预设缓存区域是用来存储同步信息的区域,在使用前需要进行资源的申请,在每次进行会话信息的发送后,驱动模块将其释放标识进行修改,例如将引用基数(refcnt)在原来的基础上减1,当引用基数的值为0时,驱动模块将预设缓存区域释放到内存池中,以便对该区域进行重新分配。在实际操作中,由于存储于第一模块中的会话信息在进行发送后可能存在丢失的情况,此时用于存储会话信息的预设缓存区域已被释放,造成信息获取的不便利。针对上述问题,本申请实施例中,以引用基数作为释放标识为例,在创建预设缓存区域时,引用基数初始为1,可在每次进行会话信息的发送之前,将引用基数在原来的基础上加1,即修改为2,此时引用基数均大于0,不进行预设缓存区域的释放。在会话发送后,驱动模块将引用基数减1,即此时引用基数为1,依然不进行预设缓存区域的释放,预设缓存区域一直处于可使用状态,保证循环使用时预设缓存区域内资源的可用性,否则预设缓存区域内承载同步信息的会话信息一旦丢失,其内容并非固定不变,无法根据现有内容构建,故而如此设计可以保证重传的有效性。步骤s301,第一模块向第二模块发送待同步的多个会话信息和各自的会话标识,所述多个会话信息的会话标识符合预设会话标识顺序规则,以使第二模块根据预设会话标识顺序规则判断是否存在丢失的会话信息。在本申请实施例中,第一模块和第二模块的其中一个为主模块,另外一个为备用模块,主模块用于执行防火墙功能,进行报文的转发,备用模块为主模块的冗余模块。具体的,第一模块可以是第一设备100,相应的第二模块可以是第二设备200,第一模块也可以是第一设备100中的多个第一cpu,第二模块也可以是第二设备200中的多个第二cpu,且所述多个第一cpu和所述多个第二cpu具有一一映射关系。每个第一cpu都具有自己的预设缓存区域,多个第一cpu分别向与其具有一一映射关系的第二cpu发送存储在其预设缓存区域中的待同步的多个会话信息。第一模块可以在会话信息的状态发生变化时,例如当所述待同步的多个会话信息被新增、被删除和/或被更新时,向第二模块发送待同步的多个会话信息,也可以在状态有变化的会话信息数量达到预设存储量时进行待同步会话信息的发送,还可以在到达预设时间进行待同步会话信息的发送,预设时间例如可以是1秒,还可以在第二模块向第一模块发送第二模块的同步状态标识后,向第二模块发送与同步状态标识对应的待同步会话信息。同步状态标识是能够体现第二模块已更新会话信息状态的标识,例如第二模块已保持某时间点之前产生的会话信息,则同步状态标识可以包含该时间点,又例如第二模块刚刚启动,其内的数据被清零,即第二模块已保存的会话信息数量为零,则为第二模块设置预设标识,预设标识可以是“0”。在第二模块的同步状态标识为预设标识时,第一模块向第二模块发送第一模块存储的全部会话信息,实现第二模块的全量同步。同步信息的传递最终需要通过报文的方式由第一模块发送至第二模块,本申请实施例中,为用户交互实现同步的同步信息建立同步信息表,同步信息表中存储有至少一条会话对应的报文,每条报文包括首部和数据字段。同步信息表对应存储于第一模块的预设缓存区域中,其他模块无法对其进行任何操作。同步信息表中的报文的首部是与第一模块和第二模块相关的内容,可以为源地址、源端口、目的地址、目的端口等,如下表中的mac头和ip头,在同步信息表创建时初始化好,形成固定的内容。同步信息表中的数据字段的内容是与会话信息相关的,可包括会话标识(index)、状态、同步信息、策略、协议等。mac头ip头index状态同步信息对于每一条会话,其会话标识可按照预设会话顺序规则进行设定,该会话标识代表该会话,在同步信息表中,对会话信息的会话标识进行排序后,会话标识也是固定不变的,代表同步信息表中的不同位置,在会话信息需要更新时,存储至具有相同会话标识的相应的位置即可。主模块预设缓存区域中的同步信息表的会话标识为1至max。会话的状态可以是表示该会话的会话信息是否被对方确认收到,是否需要暂时保存。例如未发送的会话,其状态位的值为0,已经向第二模块发送且未成功接收的会话,其状态值为1,已经向第二模块发送且成功接收会话,其状态值为2。其中已经向第二模块发送的会话,若未收到发送失败的通知,默认状态值为2,在收到发送失败的通知后,状态值修改为1。同步信息为会话信息的具体内容,例如会话产生时间、协议、策略,是与每个会话信息对应的。步骤s302,第二模块获取来自于第一模块的待同步的多个会话信息和各自的会话标识。第二模块接收到的待同步的会话信息与第一模块发送的会话信息对应,在此不再赘述。步骤s303,所述第二模块根据预设会话标识顺序规则以及所述多个会话信息的会话标识,判断是否存在丢失的会话信息,若存在,则向所述第一模块发送会话信息重发请求。第二模块判断是否存在丢失的会话信息的具体过程可参考步骤s202。在本申请其他实施例中,第二模块判断存在丢失的会话信息后,还可以将该丢失的会话信息的会话标识存储在链表中。例如可以将新的丢失的会话标识存储于链表的表头。在判断存在丢失的会话信息后,还可以从表尾开始遍历,根据链表中存储的会话标识生成会话信息重发请求,并向第一模块发送。步骤s304,第一模块响应来自于所述第二模块的会话信息重发请求,向所述第二模块发送与所述丢失的会话信息的会话标识对应的会话信息,以便所述第二模块实现会话信息同步。当所述第一模块向所述第二模块发送与所述丢失的会话信息的会话标识对应的会话信息之后,还可以删除所述预设缓存区域中的会话信息。由于表头的地址和会话标识是固定的,删除数据字段中除会话标识之外的其他表项的内容即可,在产生新的会话信息时,可按照会话标识的顺序填入同步信息表中。可选的,第一模块在接收到第二模块发送的会话信息重发请求后,可优先将会话信息重发请求中的会话标识与预设缓存区域中的状态标识为1的会话信息的会话标识进行匹配,若一致,将该会话信息向第二模块进行发送。步骤s305,第二模块获取来自于所述第一模块的、与所述丢失的会话信息的会话标识对应的会话信息,并利用接收到的所述多个会话信息和所述丢失的会话信息,对会话表项中的会话信息进行同步。第二模块在接收到第一模块发送的会话信息后,将待同步会话信息存储至第二模块中的预设缓存区域,在第二模块的预设缓存区域中构建与第一模块的同步信息表对应的同步信息表。例如cpu11和cpu21是对应的第一模块和第二模块,cpu11中的预设缓存区域内保存有cpu11的同步信息表11,cpu11将待同步会话信息发送至cpu21,cpu21在接收到待同步会话信息后,创建与同步信息表11对应的同步信息表21。同步信息表21可以与同步信息表11大致相同,也可以仅包含同步信息表11中较关键的元素,例如五元组元素及会话信息的会话标识,特别的,同步信息表21中无状态项。在预设缓存区域不被释放的前提下,同步信息表也可以循环利用,即只进行需要同步的会话信息的删除,不进行地址位和会话标识位的删除,在第二模块接收到待同步会话信息和丢失的会话信息时,填充至原有的同步信息表即可。同步信息表的循环利用,节省了更新同步信息表的首部的过程,提升了整体性能。在接收到第一模块发送的与丢失的会话信息的会话标识对应的会话信息后,遍历存储会话标识的链表,第二模块相应的将在链表中存储的该丢失的会话信息的会话标识删除。由于按序性,表尾的会话信息最先被重传收到,如果在表的前面的会话信息先到则证明表尾项再次丢失,则向第一模块重发丢失的会话信息的会话标识,促使重发即可。本申请实施例提供的会话信息同步方法,通过第一模块向第二模块发送待同步的多个会话信息,第二模块在检测到会话信息丢失时,向第一模块发送会话信息重发请求,第一模块根据会话信息重发请求中的会话标识,将丢失的会话信息重新向第二模块发送,以便第二模块进行会话信息的同步。在第一模块由于异常情况无法正常运行时,第二模块将作为主模块进行会话信息的转发,信息转发不会中断,提高信息传输效率及用户体验。基于以上会话同步方法,本申请实施例还提供了一种会话信息同步装置,如图5所示,所述装置包括:第一发送单元101,用于向第二模块发送待同步的多个会话信息和各自的会话标识,所述多个会话信息的会话标识符合预设会话标识顺序规则,以使第二模块根据预设会话标识顺序规则判断是否存在丢失的会话信息;所述装置和所述第二模块中的其中一个为主模块,另外一个为备用模块,所述主模块用于执行防火墙功能,所述备用模块为所述主模块的冗余模块;第二发送单元200,用于响应来自于所述第二模块的会话信息重发请求,所述会话信息重发请求中携带有丢失的会话信息的会话标识,向所述第二模块发送与所述丢失的会话信息的会话标识对应的会话信息,以便所述第二模块实现会话信息同步。可选的,当所述装置为主模块,第二模块为备用模块时,所述第一发送单元101,具体用于:当所述待同步的多个会话信息被新增、被删除和/或被更新时,向第二模块发送待同步的多个会话信息。可选的,所述第一发送单元101,具体用于:当所述第二模块的同步状态标识为预设标识时,向所述第二模块发送所述第一模块存储的全部会话信息。可选的,当所述第二模块启动时,所述第二模块的同步状态标识被设置预设标识。可选的,所述待同步的多个会话信息和所述各自的会话标识存储在预设缓存区域中;所述装置还包括:修改单元,用于修改所述预设缓存区域的释放标识,以使当所述待同步的多个会话信息被发送出去之后,所述预设缓存区域没有被释放到内存池中。可选的,所述装置包括多个第一cpu,每个第一cpu都具有自己的预设缓存区域和所述第一发送单元101,所述第二模块包括多个第二cpu,且所述多个第一cpu和所述多个第二cpu具有一一映射关系;所述第一发送单元101,具体用于:向与对应的第一cpu具有一一映射关系的第二cpu,发送存储在所述对应的第一cpu的预设缓存区域中的待同步的多个会话信息。可选的,所述装置还包括:删除单元,用于删除所述预设缓存区域中的会话信息。本申请实施例提供的会话信息同步装置,通过第一模块向第二模块发送待同步的多个会话信息,第二模块在检测到会话信息丢失时,向第一模块发送会话信息重发请求,第一模块根据会话信息重发请求中的会话标识,将丢失的会话信息重新向第二模块发送,以便第二模块进行会话信息的同步。在第一模块由于异常情况无法正常运行时,第二模块将作为主模块进行会话信息的转发,信息转发不会中断,提高信息传输效率及用户体验。基于以上会话同步方法,本申请实施例还提供了另一种会话信息同步装置,如图6所示,所述装置包括:获取单元201,用于获取来自于第一模块的待同步的多个会话信息和各自的会话标识;所述第一模块和所述装置中的其中一个为主模块,另外一个为备用模块,所述主模块用于执行防火墙功能,所述备用模块为所述主模块的冗余模块;判断单元202,用于根据预设会话标识顺序规则以及所述多个会话信息的会话标识,判断是否存在丢失的会话信息,若存在,则激活发送单元;所述发送单元203,用于向所述第一模块发送会话信息重发请求,所述会话信息重发请求中携带有所述丢失的会话信息的会话标识,所述丢失的会话信息的会话标识根据所述预设会话标识顺序规则以及所述多个会话信息的会话标识的顺序进行确定;同步单元204,用于获取来自于所述第一模块的、与所述丢失的会话信息的会话标识对应的会话信息,并利用接收到的所述多个会话信息和所述丢失的会话信息,对会话表项中的会话信息进行同步。可选的,所述装置还包括:存储单元,用于将所述丢失的会话信息的会话标识存储在链表中。可选的,所述装置还包括:请求生成单元,用于遍历所述链表,并根据所述链表中存储的会话标识生成所述会话信息重发请求;删除单元,用于将所述链表中存储的已接收到的丢失的会话信息的会话标识删除。本申请实施例提供的会话信息同步装置,通过第一模块向第二模块发送待同步的多个会话信息,第二模块在检测到会话信息丢失时,向第一模块发送会话信息重发请求,第一模块根据会话信息重发请求中的会话标识,将丢失的会话信息重新向第二模块发送,以便第二模块进行会话信息的同步。在第一模块由于异常情况无法正常运行时,第二模块将作为主模块进行会话信息的转发,信息转发不会中断,提高信息传输效率及用户体验。基于以上会话同步方法及装置,本申请实施例还提供了一种会话信息同步设备,如图7所示,所述设备包括:处理器和用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:向第二模块发送待同步的多个会话信息和各自的会话标识,所述多个会话信息的会话标识符合预设会话标识顺序规则,以使第二模块根据预设会话标识顺序规则判断是否存在丢失的会话信息;所述设备和所述第二模块中的其中一个为主模块,另外一个为备用模块,所述主模块用于执行防火墙功能,所述备用模块为所述主模块的冗余模块;响应来自于所述第二模块的会话信息重发请求,所述会话信息重发请求中携带有丢失的会话信息的会话标识,向所述第二模块发送与所述丢失的会话信息的会话标识对应的会话信息,以便所述第二模块实现会话信息同步。基于以上会话同步方法及装置,本申请实施例还提供了另一种会话信息同步设备,如图7所示,所述设备包括:处理器和用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:获取来自于第一模块的待同步的多个会话信息和各自的会话标识;所述第一模块和所述设备中的其中一个为主模块,另外一个为备用模块,所述主模块用于执行防火墙功能,所述备用模块为所述主模块的冗余模块;根据预设会话标识顺序规则以及所述多个会话信息的会话标识,判断是否存在丢失的会话信息,若存在,则向所述第一模块发送会话信息重发请求,所述会话信息重发请求中携带有所述丢失的会话信息的会话标识,所述丢失的会话信息的会话标识根据所述预设会话标识顺序规则以及所述多个会话信息的会话标识的顺序进行确定;所述第二模块获取来自于所述第一模块的、与所述丢失的会话信息的会话标识对应的会话信息,并利用接收到的所述多个会话信息和所述丢失的会话信息,对会话表项中的会话信息进行同步。当介绍本申请的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅是本申请的具体实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1