基于ASIC可信远程内存交换卡及其数据交换方法与流程

文档序号:15845127发布日期:2018-11-07 08:55阅读:164来源:国知局
基于ASIC可信远程内存交换卡及其数据交换方法与流程

本发明属于网络设备技术领域,尤其是涉及一种基于asic可信远程内存交换卡及其数据交换方法。

背景技术

随着网络的快速发展,特别在公共安全、公用事业等专网为了实现关联业务互联互通,资源共享的电子化、自动化网络建设,广泛应用了数据交换服务器。而服务器与网络的连接则依赖网卡,其性能和稳定性对于网络通讯来说至关重要,随着通讯技术的不断发展,服务器及其网卡性能也在不断提升。但面对大数据交换、高并发等应用的快速增长,现有tcp/ip软硬件架构和应用高cpu消耗的技术特征导致服务器应用程序运行速度慢,数据交换效率低的问题日趋突出。目前有带rdma的网卡产品,但其不带硬件可信认证加密算法,更不支持国密算法。如果要实现可信认证、加密算法,过多依赖于应用层软件的处理,将会大大降低数据交换速度。从信息安全方面考虑,数据交换服务器还是需要做统一可信认证授权管理,交换数据做加密保护,目前这其中用到的密码设备大多采用密码卡加工控机主板这类架构方式。

在以太网数据交换服务器间的典型数据传输如图1,服务器发送的数据经应用层软件的缓冲区→操作系统tcp/ip协议栈缓冲区(经过层层封装)→驱动层的缓冲区→网卡的缓冲区,最后通过网络传输到接收端服务器,接收端则通过反方向的层层解析,才能得到发送端传输过来的数据。其中网络层,传输层,应用层都要消耗cpu资源,运行基本流程如下:服务器1上的应用程序a向服务器2上的应用b发送数据。作为传输的一部分,服务器2上的内核必须首先接收并解析数据包报头,确定数据属于应用程序b,然后唤醒应用程序b,等待应用程序b执行系统调用到内核,最后复制数据从内核自己的内存空间到应用程序b提供的缓冲区中。这个过程意味着大多数网络通信必须至少在系统的主内存总线上复制两次(一次当主机网卡使用dma(直接内存存取)将数据放入内核提供的内存缓冲区,另一次内核将数据移动到应用程序的内存缓冲区时),这还意味着计算机必须执行多个上下文切换以在内核上下文和应用程序b上下文之间切换。

上述以太网数据交换服务器,当网络流量较高时,单位时间内需处量的报文数量就越多,就会给服务器系统带来极高的cpu负载,并会降低其它任务的处理速度及数据交换传输的速率。同样,如果服务器应用较多时会消耗大量cpu资源,降低了服务器处理速度,制约了数据交换的速率。

针对上述问题,人们提出了各种不同的解决方案,例如,为了提高以太网服务器间数据交换的效果,常用方法主要是提高硬件性能和采用更高速率传输协议。

1、采用最高性能的服务器及网络设备,其拥有多cpu处理器多核,较大的内存空间,更高的单端口带宽,如将原来速率为1gbps(千兆)网口升级为10gbps(万兆)或更大的20g,40g等,以提高数据处理速度及传输速率。但代价是高昂的成本,对现有网络进行改造的话很可能工程量巨大。

2、采用更高速的传输协议,克服了传输数据软件的固有瓶颈,提高传输速率,虽然在应用层有一定改善,但它仍然大量依赖于服务器的cpu、tcp/ip栈,所以还是会存在以上问题。

以往我们将目光都集中在了软件定义网络技术的普及,10g、20g网卡单端口带宽的提升等单方面的新技术,而忽略了整体性能。一个网络的性能高低与每个环节都息息相关,并不是简单地将网络出口由1g换成10g或20g就能改变的,从流量访问一直到应用软件的处理都需要提升,最大的瓶颈在哪里?对于一台交换机,其端口能做线速转发是基本要求,但对于服务器来说就很困难,正如之前所分析的那样因为服务器收到数据流量还要解析,将每个报文的内容都要解析出来,然后提供给应用层软件,发送数据也类似,需要进行层层封装后才交给网卡。为什么交换机能做到线速转发呢?主要是交换机往往做三层解析就足够,而且是由专门芯片来完成,不消耗cpu资源。

从信息安全方面考虑,数据交换服务器需要做统一可信认证授权管理,这其中用到的密码设备大多采用密码卡加上工控机主板这种架构方式。应用系统采用用户名加口令方式实现身份认证,网络之间的信息传输都是明文。这种传统的认证方式存在很多的安全隐患,信息极易泄密。而使用pki/ca证书体系的身份认证机制,需要事先申请证书,这对用户来说申请过程繁琐、使用复杂,对应用商来说开发难度大、部署困难,难以推广。这类架构在性能(额外占用pci-e插槽)、成本(需要另购密码卡)、系统应用等方面都有改进空间。因此,设计出一种数据交换传输的效果好的交换卡显得尤为必要和迫切。



技术实现要素:

本发明的目的是针对上述问题,提供一种硬件架构简单,提高数据交换效果的基于asic可信远程内存交换卡。

本发明的另一个目的是针对上述问题,提供一种硬件架构简单,提高数据交换效果的基于asic可信远程内存交换卡的数据交换方法。

为达到上述目的,本发明采用了下列技术方案:本基于asic可信远程内存交换卡,包括线路板,其特征在于,所述的线路板上设有fpga芯片,所述的fpga芯片上连接有芯片外围电路,所述的电路板上设有与fpga芯片相连的asic以太网控制器,所述的asic以太网控制器为支持具有rdma功能的asic以太网控制器,所述的线路板上设有和fpga芯片相连的可信认证模块,所述的asic以太网控制器上分别连接有iic接口、下载接口及其外围电路,在线路板上设有与asic以太网控制器相连的pci-e接口,在线路板上还设有分别和线路板与fpga芯片相连的电源电路,且所述的fpga芯片还分别和若干设置在线路板上的sfp+万兆光接口相连。

本发明目的在于提高以太网数据交换服务器工作效率,大大降低数据交换对服务器cpu资源的消耗,提高数据交换速率。在此交换卡中还具有加密、解密功能,配合可信认证服务器,能实现数据交换前的可信认证和授权。特别是对已有服务器及网络设备不进行大改,或者新增设备的情况下均是一种理想的方案。

此方案中具有rdma功能的asic属于专用定制功能的集成电路,相比采用fpga开发rdma在难度、成本方面都较低,设计周期也短,asic技术运用成熟稳定可加速产品上市进程,所以这类芯片在大部分rdma网络通信里应用很广泛。而fpga具有并行处理、运算高效的优势,但开发难度大,适合应用于特定场合。本方案充分发挥asic和fpga优点,将其有机结合,采用asic芯片完成其善长的rdma部分,用fpga来完成光纤链路收发,加、解密运算等功能。此方案中rdma提供了从一台计算机的内存到另一台计算机的内存的直接访问,而不涉及任何一台计算机的操作系统。这种技术能够实现高吞吐量、低延迟、低cpu利用率的网络。

在上述的基于asic可信远程内存交换卡中,所述的芯片外围电路包括分别依次设置在线路板上且和fpga芯片相连的eeprom存储器、flash存储器、sdram内存和时钟电路。

在上述的基于asic可信远程内存交换卡中,所述的外围电路包括设置在线路板上且分别和asic以太网控制器相连的控制器flash存储器、控制器eeprom存储器以及控制器时钟电路。

在上述的基于asic可信远程内存交换卡中,所述的可信认证模块包括设置在线路板上且分别和fpga芯片相连的算法模块、安全模块以及物理噪声源模块。

在上述的基于asic可信远程内存交换卡中,所述的fpga芯片分别和设置在线路板上的调试接口和拨码开关相连。

在上述的基于asic可信远程内存交换卡中,所述的线路板上设有至少一个和fpga芯片相连的电路状态指示模块。

在上述的基于asic可信远程内存交换卡中,在线路板上分别设有串口模块和microusb接口。

在上述的基于asic可信远程内存交换卡中,所述的fpga芯片连接有若干设置在线路板上的状态指示灯。

上述的基于asic可信远程内存交换卡的基于asic可信远程内存交换卡的数据交换方法如下所述:

本基于asic可信远程内存交换卡的数据交换方法,包括以下步骤:

s1、可信认证:通过可信认证模块进行可信认证;

s2、数据交换:在全双工通讯时,asic以太网控制器通过pci-e接口接收来自服务器应用软件的数据,然后发送给fpga芯片时行加密后通过线路板的sfp+万兆光接口发送到网络上,同时,线路板的sfp+万兆光接口接收来自网络的数据,经fpga芯片解密后传输给以asic以太网控制器,asic以太网控制器采用roce技术实现rdma功能,将发送给本服务器的数据缓存在线路板的内存中,供服务器应用程序读取。

在上述的基于asic可信远程内存交换卡的数据交换方法中,所述的可信认证模块的算法模块支持的算法包括sm4国密对称算法、sm2非对称算法、sm9非对称算法、sm3杂凑算法中的任意一种或多种组合。

与现有的技术相比,本基于asic可信远程内存交换卡及其数据交换方法的优点在于:充分发挥asic和fpga优点,将其有机结合,采用asic芯片完成其善长的rdma部分,用fpga来完成光纤链路高速收发,加、解密运算等功能。独创性的将fpga、支持rdma的asic以太网控制器、加密技术三种关键技术结合在一张faenic板卡的方式,充分利用了以太网控制器开发难度、成本低,设计周期短,可靠性高,功耗低、尺寸小,结合fpga并行处理、运算高效的特点,并嵌入了加密卡技术。通过在板卡中采用这些方法,不仅能提高数据交换的速率,提升服务cpu的处理能力,同时也增加了数据交换的安全性。

附图说明

图1为传统数据传输示意图;

图2为本发明提供的原理框图;

图3为采用rdma技术的数据交换的示意图;

图4为rdma接口架构图;

图5为pki/ca系统可信认证流程图;

图6为基于sm9的可信认证流程图;

图中,线路板1、电源电路11、sfp+万兆光接口12、电路状态指示模块13、串口模块14、microusb接口15、状态指示灯16、fpga芯片2、eeprom存储器21、flash存储器22、sdram内存23、时钟电路24、调试接口25、拨码开关26、算法模块27、安全模块28、物理噪声源模块29、pci-e接口3、asic以太网控制器4、iic接口41、下载接口42、控制器flash存储器43、控制器eeprom存储器44、控制器时钟电路45。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步详细的说明。

如图2所示,本基于asic可信远程内存交换卡,包括线路板1,线路板1上设有fpga芯片2,fpga芯片2上连接有芯片外围电路,电路板1上设有与fpga芯片2相连的asic以太网控制器4,asic以太网控制器4为支持具有rdma功能的asic以太网控制器,线路板1上设有和fpga芯片2相连的可信认证模块,asic以太网控制器4上分别连接有iic接口41、下载接口42及其外围电路,在线路板1上设有与asic以太网控制器4相连的pci-e接口3,在线路板1上还设有分别和线路板1与fpga芯片2相连的电源电路11,且fpga芯片2还分别和若干设置在线路板1上的sfp+万兆光接口12相连。

优选地,这里的芯片外围电路包括分别依次设置在线路板1上且和fpga芯片2相连的eeprom存储器21、flash存储器22、sdram内存23和时钟电路24,这里的外围电路包括设置在线路板1上且分别和asic以太网控制器4相连的控制器flash存储器43、控制器eeprom存储器44以及控制器时钟电路45。

进一步地,这里的可信认证模块包括设置在线路板1上且分别和fpga芯片2相连的算法模块27、安全模块28以及物理噪声源模块29。

其中,这里的fpga芯片2分别和设置在线路板1上的调试接口25和拨码开关26相连。这里的线路板1上设有至少一个和fpga芯片2相连的电路状态指示模块13。

优选地,在线路板1上分别设有串口模块14和microusb接口15,fpga芯片2连接有若干设置在线路板1上的状态指示灯16,这里的状态指示灯16主要用于显示对应的sfp+万兆光接口12光纤链路是否连通指示及数据传输、速率指示作用。

其中:fpga芯片2主用于光纤接口数据收发、配合算法模块27进行数据解密或加密,然后传输给以及网控制器进行处理。

asic以太网控制器4利用roce(rdmaoverconvergedethernet)技术提供高效的rdma功能,向带宽和延迟敏感应用领域提供低延迟和高性能的服务。不同系列的以太网控制器提供不同数量的光接口,速率可从支持10g/40g/56g/100g甚至更高。在全双工通讯时,一方面asic以太网控制器4通过pci-e接口3接收来自服务器应用软件的数据,然后发送给fpga芯片2进行加密后通过板卡的光口发送到网络上,另一方面,此板卡的光口接收来自网络的数据,经fpga芯片2解密后传输给asic以太网控制器4,其将发送给本服务器的数据缓存在板卡的内存中,供服务器应用程序读取。

fpga芯片2的eeprom存储器21主要用于存储密钥等关键数据,flash存储器22用于存储fpga芯片2配置程序,sdram内存23用于缓存接收、发送的数据。

这里的算法模块27主要实现国密对称算法(sm4、sm9等)、非对称算法(sm2等)、杂凑算法(sm3等)。安全模块28主要用于密钥等关键数据的安全,一旦检测到不符合接口要求的非法访问,安全模块将清除密钥等关键数据,防止泄密。物理噪声源模块29用于产生国密算法要求的硬件随机数。时钟电路24用于产生fpga芯片2工作所需的时钟信号。拨码开关26用于设置fpga芯片2工作模式。

asic以太网控制器4外围的控制器flash存储器43用来存储asic以太网控制器4配置程序,以设置其工作模式和状态,可以通过下载接口进行下载。控制器eeprom存储器44用来存储板卡的id、mac等信息,可以通过iic接口进行访问。

microusb接口15实现与密码钥匙的交互访问,完成身份认证及密码管理功能。其中,这里的串口模块14用于调试时打印调试信息。电路状态指示模块13主要用于fpga程序运行等相关工作状态指示。调试接口25主要用于fpga程序下载,仿真。sfp+万兆光接口12用于光纤连接通讯。

本基于asic可信远程内存交换卡的数据交换方法,包括以下步骤:

s1、可信认证:通过可信认证模块进行可信认证;

s2、数据交换:在全双工通讯时,asic以太网控制器4通过pci-e接口3接收来自服务器应用软件的数据,然后发送给fpga芯片2进行加密后通过线路板1的sfp+万兆光接口12发送到网络上,同时,线路板1的sfp+万兆光接口12接收来自网络的数据,经fpga芯片2解密后传输给以asic以太网控制器4,asic以太网控制器4采用roce技术实现rdma功能,将发送给本服务器的数据缓存在线路板1的内存中,供服务器应用程序读取。

其中,这里的可信认证模块的算法模块27支持的算法包括sm4国密对称算法、sm2非对称算法、sm9非对称算法、sm3杂凑算法中的任意一种或多种组合。

本发明的目的在于提高以太网数据交换服务器工作效率,大大降低数据交换对服务器cpu资源的消耗,提高数据交换速率。在此交换卡中还具有加密、解密功能,配合可信认证服务器,能实现数据交换前的可信认证和授权。特别是对已有服务器及网络设备不进行大改,或者新增设备的情况下均是一种理想的方案。

此方案中具有rdma功能的asic属于专用定制功能的集成电路,相比采用fpga开发rdma在难度、成本方面都较低,设计周期也短,asic技术运用成熟稳定可加速产品上市进程,所以这类芯片在大部分rdma网络通信里应用很广泛。而fpga具有并行处理、运算高效的优势,但开发难度大,适合应用于特定场合。本方案充分发挥asic和fpga优点,将其有机结合,采用asic芯片完成其善长的rdma部分,用fpga来完成光纤链路收发,加、解密运算等功能。

此方案中rdma(remotedirectmemoryaccess远程直接数据存取技术)提供了从一台计算机的内存到另一台计算机的内存的直接访问,而不涉及任何一台计算机的操作系统。这种技术能够实现高吞吐量、低延迟、低cpu利用率的网络。

rdma传输,如图3,不同于现有的ip(网际层)传输,因为它们绕过了数据传输过程中的内核干预,并且在此过程中大大减少了处理网络数据通常需要的cpu开销。rdma协议让服务器知道何时有数据包来自网络,哪个应用程序应该接收该数据包,以及它应该去应用程序那块内存空间中。(而不是将数据包发送到要处理的内核,然后复制到用户应用程序的内存中)它是将数据包的内容直接放置在应用程序的缓冲区中,而无需进行任何进一步的干预。然而,它不能使用大多数ip网络应用程序所基于的标准套接字api(应用程序编程接口)来完成,因此它必须提供自己的api(图4),并且应用程序必须移植到此api中,然后才能直接使用rdma技术。

为确保数据交换的安全,在数据交换前需进行可信认证,目前广泛应用的pki/ca系统,基本流程如下(图5):

1、a首先向认证服务器发起可信认证请求,包括自己的身份和随机数,以及自已和认证服务器之间共享密钥ka加密的b身份和随机数。

2、认证服务器收到后,根据a的身份找到与a共享的密钥ka解密数据后,首先比较解密得到的随机数与外面的随机数是否相等。若相等,则表明解密正确,实现对a身份的认可。然后认证服务器根据之前解密获得的b身份,表明a需要和b进行认证,它查找得到与b的共享密钥kb,用kb加密身份a和b,表明这一证明是为b认证a而生成的。然后认证服务器将证书发给了a。

3、a收到证书后,转发给了b,(或者认证服务器发给a和b)。

4、b得到证书后,用kb解密证书,对比双方的身份,从而实现对a的认证,认证通过后,双方可以协商进行数据交换了。可采用认证时密钥进行加密传输数据或协商采用其它的密钥,即认证与传输采用不同密钥。

基于ibc技术的sm9加密算法应用相比pki/ca具有灵活的安全策略、成本低、管理方便等明显的效率和运营优势,所以板卡还支持基于标识密码算法sm9的可信认证。基本流程如下(图6):

1、“用户x”要向“用户y”发送数据交换请求,“用户x”在自己的信任标识域中加入“用户y”的公钥标识(如e-mail地址),然后采用“用户y”e-mail加密交换请求数据,再使用自己的标识(如e-mail地址)进行签名并发送给“用户y”。

2、“用户y”收到了“用户x”的信件,将通过已有的私钥对“用户x”的信件进行解密认证(如果没有私钥的话,需向认证授权管理服务器认证并申请得到对应“用户y”的私钥),在这个解密和认证的过程中,“用户y”是不需要与服务器进行认证,因此可以做到离线解密认证。

3、解密成功后“用户y”看到了数据交换请求的内容,同时可以看到“用户x”对数据所做的签名,所以对该邮件进行准确的身份认证。认证通过后,双方可以协商进行数据交换了。可采用认证时密钥进行加密传输数据或协商采用其它的密钥,即认证与传输采用不同密钥。

此板卡的加密部分支持国密对称算法(sm4)、非对称算法(sm2、sm9)、杂凑算法(sm3)等。可对交换数据进行加密传输,保证数据交换安全性。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

尽管本文较多地使用了线路板1、电源电路11、sfp+万兆光接口12、电路状态指示模块13、串口模块14、microusb接口15、状态指示灯16、fpga芯片2、eeprom存储器21、flash存储器22、sdram内存23、时钟电路24、调试接口25、拨码开关26、算法模块27、安全模块28、物理噪声源模块29、pci-e接口3、asic以太网控制器4、iic接口41、下载接口42、控制器flash存储器43、控制器eeprom存储器44、控制器时钟电路45等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。

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