一种基于智能网卡的消息发送方法以及接收方法技术

技术编号:24466644 阅读:46 留言:0更新日期:2020-06-10 18:49
本发明专利技术提供一种用于智能网卡的消息发送方法和接收方法,其中,所述智能网卡所在节点存储有为所述节点生成的密钥列表,密钥列表包含了该节点与其他节点的共享密钥,其中,系统中每一对节点有一个共享密钥,不同节点对的共享密钥不同,所述发送方法包括:根据待发送的消息生成消息头和消息内容,其中所述消息头包括消息长度信息和发送消息的源节点序号,消息内容以消息键‑消息值对形式表示;基于所述消息头和消息内容以及所述密钥列表生成验证码向量;将所述消息头、消息内容以及验证码向量组成发送消息包发送。所述接收方法采用接收节点对应的密钥列表对接收到的消息进行验证,并将验证通过的消息存储在系统内存的哈希表中。

A message sending and receiving method based on intelligent network card

【技术实现步骤摘要】
一种基于智能网卡的消息发送方法以及接收方法
本专利技术涉及计算机领域,具体来说,涉及计算机网络与存储领域,更具体地说,涉及一种基于智能网卡的消息验证与存储方法及系统。
技术介绍
随着云计算、高性能计算规模的不断增大,系统稳定性面临的挑战越来越大。软件错误、系统漏洞、人为操作失误等严重威胁系统数据安全和稳定性。消息验证与消息存储是搭建高可靠性应用的基础,常用于区块链系统、数据库系统、文件系统的搭建中,快速的消息验证、消息存储有益于高可靠、高可用系统的实现。传统的网卡仅用于数据传输中的数据封装与解封、链路管理、数据编译码等,消息验证与存储处理在计算机软件层,这样消息验证与存储处理要占用系统CPU,开销较大,影响系统应用的稳定性。
技术实现思路
因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种新的能够实现消息快速发送和接收存储的基于智能网卡的消息发送方法及接收方法。根据本专利技术的第一方面,本专利技术提供一种用于智能网卡的消息发送方法,所述智能网卡所在节点存储有为所述节点生成的密钥列表,密钥列表包含了该节点与其他节点的共享密钥,其中,系统中每一对节点有一个共享密钥,不同节点对的共享密钥不同,所述方法包括如下步骤:F1、根据待发送的消息生成消息头和消息内容,其中所述消息头包括消息长度、发送消息的源节点序号、发送消息的目的节点序号等信息,消息内容以消息键-消息值对形式表示。F2、基于所述消息头和消息内容以及所述密钥列表生成验证码向量;其中,所述验证码向量被添加在消息内部且所述验证码向量包含多个消息验证码,每一个消息验证码与某一个节点对应;所述消息验证码是基于待发送消息的内容和该消息验证码对应的节点与发送消息的源节点的共享密钥生成的,包括:F21、遍历发送节点的密钥列表;F22、依次以待发送的消息内容、密钥列表中的一个密钥作为哈希函数的输入生成消息验证码;F23、将所有的消息验证码组织为验证码向量。F3、将所述消息头、消息内容以及验证码向量组成发送消息包发送。根据本专利技术的第二方面,本专利技术提供一种用于智能网卡的消息接收方法,所述智能网卡所在节点存储有为所述节点生成的密钥列表,密钥列表包含了该节点与其他节点的共享密钥,其中,系统中每一对节点有一个共享密钥,不同节点对的共享密钥不同,所述方法包括如下步骤:J1、接收根据本专利技术第一方面所述的消息发送方法发送的消息;J2、使用接收节点对应的密钥列表对接收到的消息进行验证;J3、将验证通过的消息进行存储。其中,所述步骤J2包括:J21、从接收到的消息的验证码向量中获取与本接收节点对应的消息验证码及发送消息的源节点序号;J22、基于发送消息的源节点序号从本接收节点的密钥列表中找到本接收节点与发送消息的源节点对应的共享密钥;J23、将步骤J21中获取的本接收节点对应的消息验证码与步骤J22中找到的共享密钥进行匹配验证。所述步骤J3中将所有验证成功的消息组织为队列的形式进行存储,包括:J31、提取消息队列中待存储消息的消息键;J32、基于消息键通过哈希运算计算该待存储消息对应的哈希表项;其中,采用多槽位的哈希表结构使同一个哈希表项包含多个槽位,对消息队列中不同的待存储消息对应同一个哈希表项的哈希冲突时,将发生哈希冲突的不同待存储消息存储在同一个哈希表项的不同槽位。J33、将待存储消息存储在步骤J32中计算的哈希表项对应的位置。根据本专利技术的第三方面,本专利技术提供一种智能网卡,包括存储器和处理器,所述存储器中存储计算机程序,所述处理器执行所述计算机程序以实现本专利技术第一方面和第二方面所述方法的步骤。根据本专利技术的第三方面,本专利技术提供一种基于智能网卡的网络系统,包括系统配置装置以及多个网络节点,每个网络节点包括一个如本专利技术第三方面所述的智能网卡,其中,系统配置装置用于为系统中的每一个节点生成密钥列表,以使每个节点的密钥列表包含该节点与其他所有节点的共享密钥,且每一对节点有一个共享密钥,不同的节点对共享密钥不同。所述节点还包括消息格式化模块,用于将待发送的消息进行格式化处理,将其处理成包含消息头、消息键和消息值的形式,并为待发送的消息生成验证码向量。所述智能网卡包括消息验证模块和消息存储模块,其中:消息验证模块,用于基于节点的密钥列表验证接收节点接收到的消息与其所携带的验证码向量是否匹配,将通过验证的消息以队列形式传递给消息保存模块进行下一步处理;消息保存模块,用于将通过验证的消息保存到哈希表中。与现有技术相比,本专利技术的优点在于:本专利技术实现了快速的消息验证与消息存储,将消息验证与存储操作载卸载到网络设备上,一方面降低了终端CPU负载,另一方面利用网卡的流式处理能力加速消息验证与消息存储过程。本专利技术降低了恶意攻击带来的资源损耗,将消息验证过程卸载到网卡上,当系统面对恶意攻击时,由网卡进行恶意消息的筛选,避免了恶意攻击带来的系统网络协议栈开销。本专利技术适应性强,适用基于多核处理器、基于FPGA的多种智能网卡平台。本专利技术使用灵活,不对消息验证中所用安全哈希算法和哈希表索引计算中所用哈希算法进行限制,可根据具体需求自由选择。附图说明以下参照附图对本专利技术实施例作进一步说明,其中:图1为根据本专利技术实施例的一种基于智能网卡的网络统框架示意图;图2为根据本专利技术实施例的一种基于智能网卡的网络系统中系统配置装置生成密钥列表的流程示意图;图3为根据本专利技术实施例的一种基于智能网卡的网络系统中的消息格式化模块工作流程示意图;图4为根据本专利技术实施例的一种基于智能网卡的网络系统中消息验证模块工作流程示意图;图5为根据本专利技术实施例的一种基于智能网卡的消息验证与存储方法的消息存储流程示意图。具体实施方式为了使本专利技术的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。需要说明的是,智能网卡除了承担传统网卡数据传输的功能之外,还可以承担数据的流式处理任务。使用智能网卡,可以将CPU的计算任务卸载到网络中,使数据在流动过程中得到处理,实现系统性能的优化。因此,为降低系统消息验证与存储开销,本专利技术提出一种用于智能网卡的消息发送方法和接收方法,实现快速消息验证与存储。概况地说,先为系统各节点生成密钥列表;然后在发送端将消息进行格式化并为消息生成验证码向量;在接收端智能网卡上使用验证码向量对消息进行检验;最后由智能网卡将通过检验的消息保存到系统内存的哈希表中。本专利技术方法可概括为四个主要部分:系统配置、消息格式化、消息验证和消息保存。系统配置部分是为各节点生成密钥列表;消息格式化部分由消息发送端完成,对待发送消息进行格式化处理,并利用密钥列表生成验证码向量;消息验证部分和消息保存步骤由接收端的智能网卡完成,消息验证步骤使用密钥列表检验消息与其携带的验证码向量是否匹配,以本文档来自技高网...

【技术保护点】
1.一种用于智能网卡的消息发送方法,所述智能网卡所在节点存储有为所述节点生成的密钥列表,密钥列表包含了该节点与其他节点的共享密钥,其中,系统中每一对节点有一个共享密钥,不同节点对的共享密钥不同,所述方法包括如下步骤:/nF1、根据待发送的消息生成消息头和消息内容,其中所述消息头包括消息长度、发送消息的源节点序号、发送消息的目的节点序号等信息,消息内容以消息键-消息值对形式表示;/nF2、基于所述消息头和消息内容以及所述密钥列表生成验证码向量;/nF3、将所述消息头、消息内容以及验证码向量组成发送消息包发送。/n

【技术特征摘要】
1.一种用于智能网卡的消息发送方法,所述智能网卡所在节点存储有为所述节点生成的密钥列表,密钥列表包含了该节点与其他节点的共享密钥,其中,系统中每一对节点有一个共享密钥,不同节点对的共享密钥不同,所述方法包括如下步骤:
F1、根据待发送的消息生成消息头和消息内容,其中所述消息头包括消息长度、发送消息的源节点序号、发送消息的目的节点序号等信息,消息内容以消息键-消息值对形式表示;
F2、基于所述消息头和消息内容以及所述密钥列表生成验证码向量;
F3、将所述消息头、消息内容以及验证码向量组成发送消息包发送。


2.根据权利要求1所述的一种基于智能网卡的消息发送方法,其特征在于,
所述验证码向量被添加在消息任意位置,并通过在消息头部指定消息验证码在消息内的偏移;
所述验证码向量包含多个消息验证码,每一个消息验证码与一个节点对应;
其中,所述消息验证码是基于待发送消息的内容和该消息验证码对应的节点与发送消息的源节点的共享密钥生成的。


3.根据权利要求2所述的一种基于智能网卡的消息发送方法,其特征在于,所述步骤F2包括:
F21、遍历发送节点的密钥列表;
F22、依次以待发送的消息内容、密钥列表中的一个密钥作为哈希函数的输入生成消息验证码;
F23、将所有的消息验证码组织为验证码向量。


4.一种用于智能网卡的消息接收方法,所述智能网卡所在节点存储有为所述节点生成的密钥列表,密钥列表包含了该节点与其他节点的共享密钥,其中,系统中每一对节点有一个共享密钥,不同节点对的共享密钥不同,所述方法包括如下步骤::
J1、接收根据权利要求1至4之一的消息发送方法发送的消息,
J2、使用接收节点对应的密钥列表对接收到的消息进行验证;
J3、将验证通过的消息进行存储。


5.根据权利要求4所述的一种用于智能网卡的消息接收方法,其特征在于,所述步骤J2包括:
J21、从接收到的消息的验证码向量中获取与本接收节点对应的消息验证码及发送消息的源节点序号;
J22、基于发送消息的源节...

【专利技术属性】
技术研发人员:王展张鹏杨帆安学军
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1