一种负载均衡方法、装置、计算机设备和可读存储介质与流程

专利2022-06-29  63


本发明涉及计算机技术领域,具体涉及一种负载均衡方法、装置、计算机设备和计算机可读存储介质。



背景技术:

国密算法即国家密码局认定的国产密码算法,即商用密码,用于实现对数据进行加密和解密,以保证数据和信息的机密性。

国密加密卡是内部实现了国密算法的芯片,用户通过在设备上安装相应的应用,并在设备上插上国密加密卡,即可调用相应的国密算法。

目前,现有技术针对设备上只安装一个国密加密卡,在国密加密卡工作失效时,设备无法正常加解密数据的缺陷,以及有限时间内国密加密卡无法处理大量数据的缺陷,通常会在设备上安装多个国密加密卡。

然而,发明人研究发现:现有技术在设备上安装多个国密加密卡时,并未考虑这些国密加密卡之间的负载均衡问题,导致设备处理性能很差。因此,提供一种负载均衡方法、装置、计算机设备和可读存储介质十分必要。



技术实现要素:

本发明的目的在于提供了一种负载均衡方法、装置、计算机设备和计算机可读存储介质,能够解决现有技术中未考虑多个国密加密卡之间的负载均衡问题导致设备处理性能很差的缺陷。

本发明的一个方面提供了一种负载均衡方法,所述方法包括:接收待加解密数据包;确定处于工作状态的国密加密卡;在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量;根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡;利用所述最优的国密加密卡对所述待加解密数据包加解密。

可选地,根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡的步骤包括:计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和吞吐量之间的比值,作为第一数据交互时间;计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和i/o性能之间的比值,作为第二数据交互时间;计算获取的每个所述国密加密卡的第一数据交互时间和第二数据交互时间的总和,作为数据处理时间;将计算的数据处理时间最小的国密加密卡确定为所述最优的国密加密卡。

可选地,在所述待加解密数据包为待加密数据包时,在接收待加解密数据包的步骤之后,所述方法还包括:确定所述待加密数据包的数据量,在所述待加密数据包的数据量大于预设数据量阈值时,拆分所述待加密数据包,以得到至少两个数据量均小于等于所述预设数据量阈值的待加密子数据包;相应地,利用所述最优的国密加密卡对所述待加解密数据包加解密的步骤包括:利用所述最优的国密加密卡对所述待加密子数据包加密。

可选地,在拆分所述待加密数据包,以得到至少两个数据量均小于等于所述预设数据量阈值的待加密子数据包的步骤之后,所述方法还包括:记录所述待加密子数据包在所述待加密数据包中的位置,得到位置信息;相应地,在利用所述最优的国密加密卡对所述待加密子数据包加密的步骤之后,所述方法还包括:将利用所述最优的国密加密卡对所述待加密子数据包加密后得到的数据作为待解密子数据包,将所述待解密子数据包和所述位置信息发送至内核,以使所述内核在接收到所述待加密数据包对应的所有所述待解密子数据包和所述位置信息之后,根据接收的所述位置信息对接收的所述待解密子数据包进行拼接,并将拆分标志和接收的所述位置信息添加至拼接结果中以形成所述待加密数据包对应的待解密数据包。

可选地,在所述待加解密数据包为待解密数据包时,在利用所述最优的国密加密卡对所述待加解密子数据包加解密的步骤之前,所述方法还包括:判断所述待解密数据包中是否包含所述拆分标志;在所述待解密数据包中包含所述拆分标志时,获取所述待解密数据包中包含的所述位置信息;将获取的所述位置信息的排列顺序作为拆分顺序,依次从所述待解密数据包中拆分出与每个所述位置信息相对应的数据,得到每个所述待解密子数据包;相应地,利用所述最优的国密加密卡对所述待加解密子数据包加解密的步骤包括:利用所述最优的国密加密卡对所述待解密子数据包解密。

可选地,在根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡的步骤之后,所述方法还包括:将所述最优的国密加密卡的当前待加解密数据包的数量加1,得到目标数据包数量;在利用所述最优的国密加密卡对所述待加解密数据包加解密时,启动计时器;接收所述最优的国密加密卡返回的加解密结果;在所述加解密结果表征加解密成功时,判断所述计时器的时间是否大于等于预设时间阈值;在所述计时器的时间大于等于所述预设时间阈值,利用与所述最优的国密加密卡对应的国密加密算法对所述待加解密数据包加解密,得到软件加解密结果;将所述最优的国密加密卡返回的加解密结果与所述软件加解密结果比较;若比较结果表征一致,则将所述目标数据包数量减1。

可选地,所述方法还包括:在所述加解密结果表征加解密失败或者所述比较结果表征不一致时,更新所述最优的国密加密卡为非工作状态,并返回执行确定处于工作状态的国密加密卡的步骤,以确定新的最优的国密加密卡;和/或在所述计时器的时间大于等于所述预设时间阈值时,将所述计时器清零。

本发明的另一个方面提供了一种负载均衡装置,所述装置包括:第一接收模块,用于接收待加解密数据包;第一确定模块,用于确定处于工作状态的国密加密卡;获取模块,用于在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量;第二确定模块,用于根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡;加解密模块,用于利用所述最优的国密加密卡对所述待加解密数据包加解密。

可选地,第二确定模块还用于:计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和吞吐量之间的比值,作为第一数据交互时间;计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和i/o性能之间的比值,作为第二数据交互时间;计算获取的每个所述国密加密卡的第一数据交互时间和第二数据交互时间的总和,作为数据处理时间;将计算的数据处理时间最小的国密加密卡确定为所述最优的国密加密卡。

本发明的又一个方面提供了一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的负载均衡方法。

本发明的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一实施例所述的负载均衡方法。

本发明提供的负载均衡方法、装置、计算机设备和计算机可读存储介质,在确定处于工作状态的国密加密卡不唯一时,为了避免现有技术中未考虑多个国密加密卡之间的负载均衡问题导致设备处理性能很差的缺陷,在接收到待加解密数据包,需要考虑将接收的待加解密数据包交由哪个国密加密卡处理,具体是获取至少两个处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量,然后根据这三个指标共同确定出最优的国密加密卡,进而将待加解密数据包交由该最优的国密加密卡进行加解密,从而保证在某个国密加密卡出现问题时,设备依然可以正常工作,且通过三个指标确定最优的国密加密卡,增强了设备的健壮性,使得设备上的所有国密加密卡都得到了充分的利用,实现了多个国密加密卡的负载均衡。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示意性示出了根据本发明实施例一的负载均衡方法的流程图;

图2示意性示出了根据本发明实施例二的负载均衡方法的流程图;

图3示意性示出了根据本发明实施例二的拆分方案的示意图;

图4示意性示出了根据本发明实施例三的负载均衡方法的流程图;

图5示意性示出了根据本发明实施例四的负载均衡方法的流程图;

图6示意性示出了根据本发明实施例五的负载均衡方法的流程图;

图7示意性示出了根据本发明实施例六的负载均衡装置的框图;

图8示意性示出了根据本发明实施例七的适于实现负载均衡方法的计算机设备的框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

实施例一

图1示意性示出了根据本发明实施例一的负载均衡方法的流程图。如图1所示,该实施例一所述的负载均衡方法可以包括步骤s11~步骤s15,其中:

步骤s11,接收待加解密数据包。

待加解密数据包可以是需要加密的数据包,也可以是需要解密的数据包,无论是需要加密的数据包还是需要解密的数据包,均可以应用于本实施例中。

步骤s12,确定处于工作状态的国密加密卡。

在终端设备中安装有多个国密加密卡,每个国密加密卡有一个状态标志,用于表征国密加密卡是处于工作状态还是非工作状态。如flag=1,表征国密加密卡处于工作状态;flag=0,表征国密加密卡处于非工作状态。

步骤s13,在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量。

在处于工作状态的国密加密卡不唯一时,需要确定将待加解密数据包交由哪个国密加密卡进行加解密。具体地,可以先获取每个处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量,其中,吞吐量表示国密加密卡在单位时间内成功获取或接收待加解密数据包的数据量,i/o性能表示国密加密卡在单位时间内成功将已加解密数据包传输至内核的数据量,其中,已加解密数据包是利用国密加密卡对待加解密数据包加解密后得到的数据。当前待加解密数据包的数据量是截止到当前时刻国密加密卡上存在所有待加解密数据包的数据量,其中包括正在加解密数据包中未加解密完的数据量,其中,确定国密加密卡当前待加解密数据包的数据量可以是确定当前待加解密数据包的字节总长度。

需要说明的是,本实施例中考虑到不同厂商或型号的国密加密卡的i/o性能存在一定的差异,即国密加密卡与内核的数据交互能力不同,所以将国密加密卡的i/o性能也作为确定最优的国密加密卡的参考因素,具体参见步骤s14。

步骤s14,根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡。

需要强调的是,本实施例并不是根据国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量中的某一个指标单独确定最优的国密加密卡,而是根据这三个指标相结合确定出最优的国密加密卡。

具体地,步骤s14可以包括步骤a1~步骤a4,其中:

步骤a1,计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和吞吐量之间的比值,作为第一数据交互时间;

步骤a2,计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和i/o性能之间的比值,作为第二数据交互时间;

步骤a3,计算获取的每个所述国密加密卡的第一数据交互时间和第二数据交互时间的总和,作为数据处理时间;

步骤a4,将计算的数据处理时间最小的国密加密卡确定为所述最优的国密加密卡。

由于国密加密卡成功处理待加解密数据包时均涉及三个阶段,第一阶段是成功获取或接收到待加解密数据包、成功对待加解密数据包进行加解密,以及成功将已待加解密数据包发送至内核,但是国密加密卡对待加解密数据包进行加解密的时间是未知的,而由于知道国密加密卡的吞吐量和i/o性能,因此可以预估国密加密卡成功获取或接收到待加解密数据包的时间(即第一数据交互时间)和国密加密卡成功将已待加解密数据包发送至内核的时间(即第二数据交互时间),因此可以预估国密加密卡成功处理完当前待加解密数据包的时间总和(即数据处理时间),进而将数据处理时间最小的国密加密卡确定为最优的国密加密卡。

本实施例中,考虑到处理时间是最能表征负载均衡的指标,因此在确定最优的国密加密卡时,优先选择处理时间最小的国密加密卡,进而可以尽最大可能的满足多个国密加密卡之间的负载均衡,使得各个国密加密卡都得了充分的利用。

步骤s15,利用所述最优的国密加密卡对所述待加解密数据包加解密。

进一步,通过以上步骤选择出最优的国密加密卡之后,即可将待加解密数据包交由该最优的国密加密卡以实现加解密的目的。

本实施提供的负载均衡方法,在确定处于工作状态的国密加密卡不唯一时,为了避免现有技术中未考虑多个国密加密卡之间的负载均衡问题导致设备处理性能很差的缺陷,在接收到待加解密数据包,需要考虑将接收的待加解密数据包交由哪个国密加密卡处理,具体是获取至少两个处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量,然后根据这三个指标共同确定出最优的国密加密卡,进而将待加解密数据包交由该最优的国密加密卡进行加解密,从而保证在某个国密加密卡出现问题时,设备依然可以正常工作,且通过三个指标确定最优的国密加密卡,增强了设备的健壮性,使得设备上的所有国密加密卡都得到了充分的利用,实现了多个国密加密卡的负载均衡。

实施例二

本发明的实施例二提供了一种负载均衡方法,该负载均衡方法主要考虑到在待加解密数据包为待加密数据包时,若待加密数据包的数据量过大,会影响负载均衡的稳定性,因此需要对待加密数据包拆分。其中,该负载均衡方法的部分步骤与上述实施例一相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图2示意性示出了根据本发明实施例二的负载均衡方法的流程图,如图2所示,该负载均衡方法可以包括步骤s21~步骤s27,其中:

步骤s21,接收待加密数据包。

步骤s22,确定所述待加密数据包的数据量。

其中确定待加密数据包的数据量可以是确定待加密数据包的字节长度。

步骤s23,在所述待加密数据包的数据量大于预设数据量阈值时,拆分所述待加密数据包,以得到至少两个数据量均小于等于所述预设数据量阈值的待加密子数据包。

考虑到在待加密数据包较大时,国密加密卡的加密过程耗时较长,会影响各个国密加密卡的负载均衡,因此,在待加密数据包较大时,即待加密数据包的数据量大于预设数据量阈值时,将待加密数据包拆分为多个小包,如拆分为至少两个数据量均小于等于预设数据量阈值的待加密子数据包。

其中,在步骤s23之后,所述方法还包括:记录所述待加密子数据包在所述待加密数据包中的位置,得到位置信息。

具体地,由于位置信息表征的是待加密子数据包在对应待加密数据包中的位置,而实际场景中可能不会只对一个待加密数据包进行拆分,因此位置信息除了记录每个待加密子数据包在对应待加密数据包中的位置之外,还包括对应待加密数据包的编号,即每个待加密子数据包继承了对应待加密数据包的编号,以表征该待加密子数据包是从哪个待加密数据包中拆分出来的。

例如,如图3所示,假设待加密数据包的编号为n,若该待加密数据包n的数据量过大,则可以将其进行拆分,如拆分得到4个待加密子数据包,其中,第一个待加密子数据包的位置信息为{n,1},n为继承的待加密数据包n的编号,1表示该待加密子数据包排列在待加密数据包n的第一个位置;依次类推。

步骤s24,确定处于工作状态的国密加密卡。

步骤s25,在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量。

步骤s26,根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡。

步骤s27,利用所述最优的国密加密卡对所述待加密子数据包加密。

由于对待加密数据包拆分之后,可以得到至少两个待加密子数据包,因此可以将任一个待加密子数据包发送至最优的国密加密卡进行加密,也可以按照排列顺序将第1个待加密子数据包发送至第1次确定的最优的国密加密卡进行加密;进一步,可以再次执行确定最优的国密加密卡的步骤,以将其他的待加密子数据包依次发送至新确定的最优的国密加密卡中进行加密。

可选地,在步骤s27之后,所述方法还可以包括,将利用所述最优的国密加密卡对所述待加密子数据包加密后得到的数据作为待解密子数据包,将所述待解密子数据包和所述位置信息发送至内核,以使所述内核在接收到所述待加密数据包对应的所有所述待解密子数据包和所述位置信息之后,根据所述位置信息对接收的所述待解密子数据包进行拼接,并将拆分标志和接收的所述位置信息添加至拼接结果中以形成所述待加密数据包对应的待解密数据包。

具体地,每个确定的最优的国密加密卡在对待加密子数据包加密之后,需要将待解密子数据包和该待解密子数据包的位置信息发送至内核,内核在接收到待加密数据包对应的所有待解密子数据包和所有待解密子数据包的位置信息之后,对根据位置信息对这些待解密子数据包进行拼接,在拼接完成后,内核会将拆分标志和接收的所有位置信息添加至拼接结果中以形成一个待解密数据包发送出去,其中,拆分标志用于表征对端设备在接收到待解密数据包之后,需要根据位置信息对待解密数据包拆分后再解密。

实施例三

本发明的实施例三提供了一种负载均衡方法,该负载均衡方法主要考虑到在待加解密数据包为待解密数据包时,若待解密数据包中携带拆分标识,需要先对待解密数据包拆分后再解密,以保证解密结果的准确性。其中,该负载均衡方法的部分步骤与上述实施例一和实施例二相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一和实施例二。具体地,图4示意性示出了根据本发明实施例三的负载均衡方法的流程图,如图4所示,该负载均衡方法可以包括步骤s31~步骤s38,其中:

步骤s31,接收待解密数据包。

步骤s32,判断所述待解密数据包中是否包含拆分标志。

其中,若待解密数据包包含拆分标识,则证明需要先对待解密数据包拆分再进行解密。

步骤s33,在所述待解密数据包中包含所述拆分标志时,获取所述待解密数据包中包含的所述位置信息。

步骤s34,将获取的所述位置信息的排列顺序作为拆分顺序,依次从所述待解密数据包中拆分出与每个所述位置信息相对应的数据,得到每个所述待解密子数据包。

本实施例中,可以将获取的位置信息从先到后的排列顺序作为拆分顺序,如第一位、第二位、第三位等。由于待解密数据包是由与位置信息对应的待解密子数据包拼接而成的,因此可以通过位置信息依次从待解密数据包中拆分出各个待解密子数据包。

例如,待解密数据由3个待解密子数据包拼接而成,可以根据首个位置信息确定首个待解密子数据包的字节位置,然后从待解密数据包中拆分出与首个待解密子数据包,依次类推。

步骤s35,确定处于工作状态的国密加密卡。

步骤s36,在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量。

步骤s37,根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡。

步骤s38,利用所述最优的国密加密卡对所述待解密子数据包解密。

由于对待解密数据包拆分之后,可以得到对应的待解密子数据包,因此可以将任一个待解密子数据包发送至最优的国密加密卡进行解密,也可以按照排列顺序将第1个待解密子数据包发送至第1次确定的最优的国密加密卡进行解密;进一步,可以再次执行确定最优的国密加密卡的步骤,以将其他的待解密子数据包依次发送至新确定的最优的国密加密卡中进行解密。

实施例四

本发明的实施例四提供了一种负载均衡方法,该负载均衡方法与上述实施例一相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图5示意性示出了根据本发明实施例四的负载均衡方法的流程图,如图5所示,该负载均衡方法可以包括步骤s41~步骤s412,其中:

步骤s41,接收待加解密数据包。

步骤s42,确定处于工作状态的国密加密卡。

步骤s43,在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量。

步骤s44,根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡。

步骤s45,将所述最优的国密加密卡的当前待加解密数据包的数量加1,得到目标数据包数量。

本实施例中,可以先确定最优的国密加密卡中当前待加解密数据包的数量,其中,当前待加解密数据包不包含待加解密数据包。然后,将确定出的当前待加解密数据包的数量加1,得到目标数据包数量,其中,目标数据包数量是增加了待加解密数据包之后的数量。

步骤s46,在利用所述最优的国密加密卡对所述待加解密数据包加解密时,启动计时器。

本实施例中,一旦最优的国密加密卡开始对待加解密数据包进行加解密,即可启动计时器,其中,计时器的初始值可以为0。

步骤s47,接收所述最优的国密加密卡返回的加解密结果。

其中,在加解密结果表征加解密成功时,执行步骤s48;在加解密结果表征加解密失败时,执行步骤s412。

步骤s48,判断所述计时器的时间是否大于等于预设时间阈值。

其中,在计时器的时间大于等于预设时间阈值,执行步骤s49;在计时器的时间小于预设时间阈值,执行步骤s411。

步骤s49,利用与所述最优的国密加密卡对应的国密加密算法对所述待加解密数据包加解密,得到软件加解密结果。

可选地,在所述计时器的时间大于等于所述预设时间阈值时,将所述计时器清零。

步骤s410,将所述最优的国密加密卡返回的加解密结果与所述软件加解密结果比较。

其中,若比较结果表征一致,则执行步骤s411;若比较结果表征一致,则执行步骤s412。

步骤s411,将所述目标数据包数量减1。

本实施例还可以定时检查最优的国密加密卡是否正常工作,即利用与最优的国密加密卡对应的国密加密算法对待加解密数据包加解密,并验证软件加解密结果与最优的国密加密卡返回的加解密结果是否一致,若一致,表明该最优的国密加密卡正常工作,即最优的国密加密卡已经成功对待加解密数据包加解密,此时可以将目标数据包数量减1。

需要说明的是,在当前时间还未到检查最优的国密加密卡是否正常工作的时机时,只要最优的国密加密卡返回的加解密结果表征加解密成功,即可将目标数据包数量减1。

步骤s412,更新所述最优的国密加密卡为非工作状态,并返回执行步骤s42,以确定新的最优的国密加密卡。

本实施例中,在加解密结果表征加解密失败或者比较结果表征一致时,认为该最优的国密加密卡已失效,可以更新该最优的国密加密卡为非工作状态,并重新确定新的最优的国密加密卡。

实施例五

图6示意性示出了根据本发明实施例五的负载均衡方法的流程图。

在图6中,以设备中安装了两个国密加密卡a和b为例,当设备收到待加解密数据包时,首先判断两个国密加密卡a和b的状态标志,其中,国密加密卡a的状态标志位flag1,国密加密卡b的状态标志位flag2。在flag1&&flag2=1时,表明国密加密卡a和b均处于工作状态,此时需要选择一个最优的国密加密卡来处理该待加解密数据包。具体选择方法可以参见实施例一,此处不再赘述,其中,t1和t2分别表示国密加密卡a和b的数据处理时间。假设选中国密加密卡a为最优的国密加密卡,则启动计时器t1,且t1的初始值为0,并且将国密加密卡a的当前待加解密数据包的数量加1,即 n1,其中,n1为国密加密卡a的当前待加解密数据包的数量, n1得到目标数据包数量。进一步,判断国密加密卡a返回的加解密结果是否表征加解密成功,若否则更新国密加密卡a为非工作状态,并重新确定新的最优的国密加密卡,由于本实施例以两个国密加密卡为例,则确定新的最优的国密加密卡即为国密加密卡b。若国密加密卡a返回的加解密结果是否表征加解密成功,则判断t1是否大于等于tth,其中,tth为预设时间阈值,即检查国密加密卡加解密结果是否正确的时间周期,若t1小于tth,则直接执行--n1,即将目标数据包数量减1,表明已成功处理完一个待加解密数据包;否则利用对应的国密加密算法验证国密加密卡a返回的加解密结果是否正确,若正确则直接执行--n1,若不正确则更新国密加密卡a为非工作状态,并重新确定新的最优的国密加密卡,其中,s1为利用与国密加密卡a对应的国密加密算法对待加解密数据包加解密后得到的数据,h1为利用国密加密卡a对待加解密数据包加解密后得到的数据,即国密加密卡a返回的加解密结果。相应地,若选中国密加密卡b为最优的国密加密卡,执行步骤与国密加密卡a类似,其中,t2为国密加密卡b的计时器的时间,n2为国密加密卡b的当前代待加解密数据包的数量,s2为利用与国密加密卡b对应的国密加密算法对待加解密数据包加解密后得到的数据,h2为利用国密加密卡b对待加解密数据包加解密后得到的数据,即国密加密卡b返回的加解密结果。

当flag1=1且flag2=0时,表明国密加密卡a处于工作状态,国密加密卡b处于非工作状态,可以直接选择国密加密卡a为最优的国密加密卡。

当flag1=0且flag2=1时,表明国密加密卡a处于非工作状态,国密加密卡b处于工作状态,可以直接选择国密加密卡b为最优的国密加密卡。

当flag1=0且flag2=0时,表明国密加密卡a和b均处于非工作状态,可以返回无国密加密卡可用的信息。

实施例六

本发明的实施例六提供了一种负载均衡装置,该负载均衡装置与上述实施例一相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图7示意性示出了根据本发明实施例六的负载均衡装置的框图,如图7所示,该负载均衡装置600可以包括第一接收模块601、第一确定模块602、获取模块603、第二确定模块604和加解密模块605,其中:

第一接收模块601,用于接收待加解密数据包;

第一确定模块602,用于确定处于工作状态的国密加密卡;

获取模块603,用于在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量;

第二确定模块604,用于根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡;

加解密模块605,用于利用所述最优的国密加密卡对所述待加解密数据包加解密。

可选地,第二确定模块还用于:计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和吞吐量之间的比值,作为第一数据交互时间;计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和i/o性能之间的比值,作为第二数据交互时间;计算获取的每个所述国密加密卡的第一数据交互时间和第二数据交互时间的总和,作为数据处理时间;将计算的数据处理时间最小的国密加密卡确定为所述最优的国密加密卡。

可选地,在所述待加解密数据包为待加密数据包时,所述装置还包括:第三确定模块,用于在接收待加解密数据包的步骤之后,确定所述待加密数据包的数据量;第一拆分模块,用于在所述待加密数据包的数据量大于预设数据量阈值时,拆分所述待加密数据包,以得到至少两个数据量均小于等于所述预设数据量阈值的待加密子数据包;相应地,加解密模块还用于:利用所述最优的国密加密卡对所述待加密子数据包加密。

可选地,所述装置还包括:记录模块,用于在拆分所述待加密数据包,以得到至少两个数据量均小于等于所述预设数据量阈值的待加密子数据包的步骤之后记录所述待加密子数据包在所述待加密数据包中的位置,得到位置信息;相应地,所述装置还包括:第一处理模块,用于在利用所述最优的国密加密卡对所述待加密子数据包加密的步骤之后,将利用所述最优的国密加密卡对所述待加密子数据包加密后得到的数据作为待解密子数据包;发送模块,用于将所述待解密子数据包和所述位置信息发送至内核,以使所述内核在接收到所述待加密数据包对应的所有所述待解密子数据包和所述位置信息之后,根据接收的所述位置信息对接收的所述待解密子数据包进行拼接,并将拆分标志和接收的所述位置信息添加至拼接结果中以形成所述待加密数据包对应的待解密数据包。

可选地,在所述待加解密数据包为待解密数据包时,所述装置还包括:第一判断模块,用于在利用所述最优的国密加密卡对所述待加解密子数据包加解密的步骤之前,判断所述待解密数据包中是否包含所述拆分标志;第二处理模块,用于在所述待解密数据包中包含所述拆分标志时,获取所述待解密数据包中包含的所述位置信息;第二拆分模块,用于将获取的所述位置信息的排列顺序作为拆分顺序,依次从所述待解密数据包中拆分出与每个所述位置信息相对应的数据,得到每个所述待解密子数据包;相应地,加解密模块还用于:利用所述最优的国密加密卡对所述待解密子数据包解密。

可选地,所述装置还包括:增加模块,用于在根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡的步骤之后,将所述最优的国密加密卡的当前待加解密数据包的数量加1,得到目标数据包数量;启动模块,用于在利用所述最优的国密加密卡对所述待加解密数据包加解密时,启动计时器;第二接收模块,用于接收所述最优的国密加密卡返回的加解密结果;第二判断模块,用于在所述加解密结果表征加解密成功时,判断所述计时器的时间是否大于等于预设时间阈值;第三处理模块,用于在所述计时器的时间大于等于所述预设时间阈值,利用与所述最优的国密加密卡对应的国密加密算法对所述待加解密数据包加解密,得到软件加解密结果;比较模块,用于将所述最优的国密加密卡返回的加解密结果与所述软件加解密结果比较;减少模块,用于若比较结果表征一致,则将所述目标数据包数量减1。

可选地,所述装置还包括:第三处理模块,用于在所述加解密结果表征加解密失败或者所述比较结果表征不一致时,更新所述最优的国密加密卡为非工作状态,并返回执行确定处于工作状态的国密加密卡的步骤,以确定新的最优的国密加密卡;和/或清零模块,用于在所述计时器的时间大于等于所述预设时间阈值时,将所述计时器清零。

实施例七

图8示意性示出了根据本发明实施例七的适于实现负载均衡方法的计算机设备的框图。本实施例中,计算机设备700可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图8所示,本实施例的计算机设备700至少包括但不限于:可通过系统总线相互通信连接的存储器701、处理器702、网络接口703。需要指出的是,图8仅示出了具有组件701-703的计算机设备700,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

本实施例中,存储器703至少包括一种类型的计算机可读存储介质,可读存储介质包括包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器701可以是计算机设备700的内部存储单元,例如该计算机设备700的硬盘或内存。在另一些实施例中,存储器701也可以是计算机设备700的外部存储设备,例如该计算机设备700上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器701还可以既包括计算机设备700的内部存储单元也包括其外部存储设备。在本实施例中,存储器701通常用于存储安装于计算机设备700的操作系统和各类应用软件,例如负载均衡方法的程序代码等。此外,存储器701还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器702在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器702通常用于控制计算机设备700的总体操作。例如执行与计算机设备700进行数据交互或者通信相关的控制和处理等的负载均衡方法的程序代码。

在本实施例中,存储于存储器701中的负载均衡方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器702)所执行,以完成本发明。

网络接口703可包括无线网络接口或有线网络接口,该网络接口703通常用于在计算机设备700与其他计算机设备之间建立通信链接。例如,网络接口703用于通过网络将计算机设备700与外部终端相连,在计算机设备700与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(globalsystemofmobilecommunication,简称为gsm)、宽带码分多址(widebandcodedivisionmultipleaccess,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。

实施例八

本实施例八还提供一种计算机可读存储介质,包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等,其上存储有计算机程序,所述计算机程序被处理器执行时实现负载均衡方法。

显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。

本发明上述实施例序号仅仅为了描述,并不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。


技术特征:

1.一种负载均衡方法,其特征在于,所述方法包括:

接收待加解密数据包;

确定处于工作状态的国密加密卡;

在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量;

根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡;

利用所述最优的国密加密卡对所述待加解密数据包加解密。

2.根据权利要求1所述的方法,其特征在于,根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡的步骤包括:

计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和吞吐量之间的比值,作为第一数据交互时间;

计算获取的每个所述国密加密卡的当前待加解密数据包的数据量和i/o性能之间的比值,作为第二数据交互时间;

计算获取的每个所述国密加密卡的第一数据交互时间和第二数据交互时间的总和,作为数据处理时间;

将计算的数据处理时间最小的国密加密卡确定为所述最优的国密加密卡。

3.根据权利要求1所述的方法,其特征在于,

在所述待加解密数据包为待加密数据包时,在接收待加解密数据包的步骤之后,所述方法还包括:确定所述待加密数据包的数据量,在所述待加密数据包的数据量大于预设数据量阈值时,拆分所述待加密数据包,以得到至少两个数据量均小于等于所述预设数据量阈值的待加密子数据包;

相应地,利用所述最优的国密加密卡对所述待加解密数据包加解密的步骤包括:利用所述最优的国密加密卡对所述待加密子数据包加密。

4.根据权利要求3所述的方法,其特征在于,

在拆分所述待加密数据包,以得到至少两个数据量均小于等于所述预设数据量阈值的待加密子数据包的步骤之后,所述方法还包括:记录所述待加密子数据包在所述待加密数据包中的位置,得到位置信息;

相应地,在利用所述最优的国密加密卡对所述待加密子数据包加密的步骤之后,所述方法还包括:将利用所述最优的国密加密卡对所述待加密子数据包加密后得到的数据作为待解密子数据包,将所述待解密子数据包和所述位置信息发送至内核,以使所述内核在接收到所述待加密数据包对应的所有所述待解密子数据包和所述位置信息之后,根据接收的所述位置信息对接收的所述待解密子数据包进行拼接,并将拆分标志和接收的所述位置信息添加至拼接结果中以形成所述待加密数据包对应的待解密数据包。

5.根据权利要求4所述的方法,其特征在于,

在所述待加解密数据包为待解密数据包时,在利用所述最优的国密加密卡对所述待加解密子数据包加解密的步骤之前,所述方法还包括:

判断所述待解密数据包中是否包含所述拆分标志;

在所述待解密数据包中包含所述拆分标志时,获取所述待解密数据包中包含的所述位置信息;

将获取的所述位置信息的排列顺序作为拆分顺序,依次从所述待解密数据包中拆分出与每个所述位置信息相对应的数据,得到每个所述待解密子数据包;

相应地,利用所述最优的国密加密卡对所述待加解密子数据包加解密的步骤包括:利用所述最优的国密加密卡对所述待解密子数据包解密。

6.根据权利要求1所述的方法,其特征在于,在根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡的步骤之后,所述方法还包括:

将所述最优的国密加密卡的当前待加解密数据包的数量加1,得到目标数据包数量;

在利用所述最优的国密加密卡对所述待加解密数据包加解密时,启动计时器;

接收所述最优的国密加密卡返回的加解密结果;

在所述加解密结果表征加解密成功时,判断所述计时器的时间是否大于等于预设时间阈值;

在所述计时器的时间大于等于所述预设时间阈值,利用与所述最优的国密加密卡对应的国密加密算法对所述待加解密数据包加解密,得到软件加解密结果;

将所述最优的国密加密卡返回的加解密结果与所述软件加解密结果比较;

若比较结果表征一致,则将所述目标数据包数量减1。

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

在所述加解密结果表征加解密失败或者所述比较结果表征不一致时,更新所述最优的国密加密卡为非工作状态,并返回执行确定处于工作状态的国密加密卡的步骤,以确定新的最优的国密加密卡;和/或

在所述计时器的时间大于等于所述预设时间阈值时,将所述计时器清零。

8.一种负载均衡装置,其特征在于,所述装置包括:

第一接收模块,用于接收待加解密数据包;

第一确定模块,用于确定处于工作状态的国密加密卡;

获取模块,用于在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量;

第二确定模块,用于根据获取的所述国密加密卡的吞吐量、i/o性能和当前待加解密数据包的数据量确定最优的国密加密卡;

加解密模块,用于利用所述最优的国密加密卡对所述待加解密数据包加解密。

9.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。

技术总结
本发明公开了一种负载均衡方法,能够解决现有技术中未考虑多个国密加密卡之间的负载均衡问题导致设备处理性能很差的缺陷,所述方法包括:接收待加解密数据包;确定处于工作状态的国密加密卡;在确定的所述国密加密卡不唯一时,获取至少两个所述处于工作状态的国密加密卡的吞吐量、I/O性能和当前待加解密数据包的数据量;根据获取的所述国密加密卡的吞吐量、I/O性能和当前待加解密数据包的数据量确定最优的国密加密卡;利用所述最优的国密加密卡对所述待加解密数据包加解密。本公开还提供了一种负载均衡装置、一种计算机设备以及一种计算机可读存储介质。

技术研发人员:高延雨;沈唤勇
受保护的技术使用者:奇安信科技集团股份有限公司;网神信息技术(北京)股份有限公司
技术研发日:2020.01.09
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-27901.html

最新回复(0)