算法的卸载方法、装置和系统与流程

文档序号:17585571发布日期:2019-05-03 21:17阅读:319来源:国知局
算法的卸载方法、装置和系统与流程

本申请涉及互联网领域,具体而言,涉及一种算法的卸载方法、装置和系统。



背景技术:

随着互联网技术的发展,用户可以通过互联网来获取各种各样的信息,并享受互联网提供的各种在线服务,例如,网上购物、支付、转账等。http(hypertexttransferprotocol)超文本传输协议是目前互联网上应用最广泛的应用层协议,基于传输层的tcp协议进行通信,在客户端与服务器之间传输超文本文件。但是,由于互联网是开放环境,而http协议被用于在web浏览器和网络服务器之间传递信息时,是以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了web浏览器和网络服务器之间的传输报文,可以直接读懂其中的信息,因而,http协议不适合传输一些敏感信息,例如,银行卡号、密码等信息。

ssl(securesocketslayer,安全套接层),及其继任者传输层安全(transportlayersecurity,tls)是为网络通信提供安全及数据完整性的一种安全传输协议,在http的基础上加入ssl协议(即https,hypertexttransferprotocoloversecuresocketlayer),可以实现数据的安全传输。因而,https是以安全为目标的http通道,在web浏览器与网站服务器进行数据加密传输、身份认证,可以用于敏感信息的传输,例如,交易支付等信息。

目前,tls/ssl是现有网络通信中应用最广泛的安全协议层,许多互联网公司也都早已提出全网https的目标。但是tls/ssl协议的一个显著代价是握手协商中(加密/解密/压缩/解压缩等运算步骤)的计算密集性,服务器主机需要耗费大量时间处理(这也是https比http明显要慢的主要原因)。通过硬件加速和卸载(即offload,需要注意的是,此处的卸载是指通过增加芯片或其他pci插卡等来处理或运行本应该在服务器上的cpu内运行的一些算法,从而降低对服务器cpu资源的消耗)的方式,可以将运算密集的加解密算法等操作在服务器主机的cpu之外单独进行,从而使cpu能够处理更多的协议栈和操作系统层面的请求、并达到较少延迟、提高性能的目的。

但是在传统tls/ssl卸载方法中,采用的都是局部卸载,即网络协议全流程仍然在主机上运行,只是对其中的若干步骤进行卸载。这种局部的卸载和优化程度不够完全,虽然能够减少主机上的一些主要加解密算法步骤的计算压力,但是对于整个流程而言,会另外引入一些资源开销和时延代价。这部分引入的折衷代价在某些场景下甚至会和卸载方案本身带来的好处抵消(如aes加密流数据时,频繁调用卸载的开销有时会大于主机直接计算的开销)。

针对上述现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种算法的卸载方法、装置和系统,以至少解决现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的技术问题。

根据本发明实施例的一个方面,提供了一种算法的卸载方法,包括:扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务;在传输层安全协议处理任务之后,扩展装置使用网络协议处理单元将处理结果作为数据报文进行封装;扩展装置内部署的网络控制器外发封装后的数据报文。

根据本发明实施例的一个方面,还提供了一种算法的卸载方法,包括:扩展装置接收数据报文,并使用本地的网络控制器将数据报文传输至网络协议处理单元进行解析;扩展装置使用本地的传输层安全协议对解析结果进行处理;扩展装置将处理结果上传到主机。

根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的算法的卸载方法。

根据本发明实施例的另一方面,还提供了一种计算机设备,计算机设备用于运行程序,其中,程序运行时执行上述任意一项的算法的卸载方法。

根据本发明实施例的另一方面,还提供了一种算法的卸载系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务;在传输层安全协议处理任务之后,扩展装置使用网络协议处理单元将处理结果作为数据报文进行封装;扩展装置内部署的网络控制器外发封装后的数据报文。

根据本发明实施例的另一方面,还提供了一种算法的卸载系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:扩展装置接收数据报文,并使用本地的网络控制器将数据报文传输至网络协议处理单元进行解析;扩展装置使用本地的传输层安全协议对解析结果进行处理;扩展装置将处理结果上传到主机。

根据本发明实施例的另一方面,还提供了一种算法的卸载系统,包括:主机,用于提供应用程序;扩展装置,与所述主机通过扩展接口连接,用于在所述主机发送数据报文的情况下,根据主机调用的接口,启动本地的传输层安全协议来处理任务,并在所述传输层安全协议处理任务之后,使用网络协议处理单元将处理结果作为数据报文进行封装后,通过网络控制器发送;其中,所述扩展装置还用于在所述主机接收数据报文的情况下,接收所述数据报文,使用本地的网络控制器将所述数据报文传输至网络协议处理单元进行解析,并使用本地的传输层安全协议对解析结果进行处理后,将处理结果上传到所述主机。

根据本发明实施例的另一方面,还提供了一种集成芯片,包括:扩展接口,用于与主机连接,其中,所述主机用于提供应用程序;传输层安全协议处理单元,用于根据所述主机调用的接口处理任务;网络协议处理单元,与所述传输层安全协议处理单元通信,用于数据报文进行封装或解析;网络控制器,用于发送或接收数据报文。

在本发明实施例中,通过扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务;在传输层安全协议处理任务之后,扩展装置使用网络协议处理单元将处理结果作为数据报文进行封装;扩展装置内部署的网络控制器外发封装后的数据报文,达到了使得扩展卡完成了tls/ssl协议层之下的几乎全部流程的目的,从而实现了减少主机上的计算压力、有更多的计算资源提供给应用程序使用,同时扩展卡上通过并行计算核心等方式保证了安全网络协议中的延时和吞吐量的技术效果,进而解决了现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据现有技术的一种可选的tls/ssl卸载方案的硬件结构示意图;

图2(a)是根据现有技术的一种可选的tls/ssl卸载方案在发送数据包时的工作流程示意图;

图2(b)是根据现有技术的一种可选的tls/ssl卸载方案在接收数据包时的工作流程示意图;

图3是根据本申请实施例的一种可选的算法的卸载系统示意图;

图4是根据本申请实施例的一种可选的tls/ssl卸载方案的硬件结构示意图;

图5是根据本申请实施例的一种算法的卸载方法流程图;

图6(a)是根据本申请实施例的一种可选的tls/ssl卸载方案在发送数据包时的工作流程示意图;

图6(b)是根据本申请实施例的一种可选的tls/ssl卸载方案在发送数据包时的工作流程示意图;

图7是根据本申请实施例的一种算法的卸载方法流程图;

图8是根据本申请实施例的一种存在toe的情况下加速网卡卸载协议模式示意图;

图9是根据本申请实施例的一种存在toe的情况下主机和加速网卡混合协议模式示意图;

图10是根据本申请实施例的一种不存在toe的情况下主机和加速网卡混合协议模式示意图;

图11是根据本申请实施例的一种算法的卸载装置示意图;

图12是根据本申请实施例的一种算法的卸载装置示意图;以及

图13是根据本申请实施例的一种可选的计算机设备的硬件结构框图;以及

图14是根据本申请实施例的一种集成芯片示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

ssl:(securesocketlayer,安全套接层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。ssl通过互相认证、使用数字签名确保数据完整性、使用加密确保数据私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:ssl记录协议和ssl握手协议。

tls:(transportlayersecurity,安全传输层协议),用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成:tls记录协议和tls握手协议。

http:(hypertexttransferprotocol,超文本传输协议)是一种用于从网站服务器传输超文本到本地web浏览器的传输协议,以明文方式发送内容。不提供任何方式的数据加密,不适合传输敏感信息,例如,银行卡号、密码等信息。

https:(hypertexttransferprotocoloversecuresocketlayer,安全套接字层协议),是以安全为目标的http通道,即在http的基础上加入ssl协议。在web浏览器与网站服务器进行数据加密传输、身份认证,可以用于敏感信息的传输,例如,交易支付等信息。

nic:(networkinterfacecard,网络接口卡,简称网卡),是连接计算机与网络的硬件设备,无论是双绞线连接、同轴电缆连接还是光纤连接,都必须借助网卡才能实现数据的通信。smartnic为智能网卡。

toe(tcpoffloadengine,tcp卸载引擎),使用网卡上专用处理器来完成一些或所有数据包的处理任务,也就是说,通过采用配有toe芯片的专用网卡,包括tcp在内的四层处理请示都可以从主机处理器转移到网卡,以便在加速网络响应的同时提高服务器的性能。

mac(mediaaccesscontrol,介质访问控制),是数据链路层的一个子层,数据链路层分成llc(logicallinkcontrol,逻辑链路控制)和mac两个子层,其中,上面的llc子层用于实现数据链路层与硬件无关的功能,例如,流量控制、差错恢复等;较低的mac子层提供llc和物理层之间的接口。

phy(physicallayer,物理层),osi的最底层。网卡工作在osi的物理层(第一层)和数据链路层(第二层),其中,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口;数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。

rsa(rsaalgorithm,rsa算法),目前最有影响力和最常用的公钥加密算法,是一种非对称密码算法,即需要一对密钥,使用其中一个加密,则需要用另一个才能解密。

aes(advancedencryptionstandard,高级加密标准),为对称密钥加密中的算法之一。

卸载(offload),本申请实施例中提到的卸载是指通过系统内置的嵌入式芯片或pci插卡来承担服务器cpu需要撑到的协议或加密算法,从而降低服务器cpu的资源占用,提供系统的性能。例如,ttl/ssl卸载,是指将服务器cpu上的ttl/ssl协议相关的加解密算法在独立于cpu之外的硬件加速卡(或称扩展卡)上运行。而本申请实施例提供的算法卸载系统是将载服务器上相关协议(例如,ttl/ssl协议、tcp/ip协议栈处理以及对应的卸载控制等)、ttl/ssl加解密算法,以及基础网卡功能相关的控制和数据通路等的处理操作在独立于服务器的cpu之外上扩展装置上进行,实现服务器的全局卸载。

实施例1

根据本申请实施例,提供了一种算法的卸载系统实施例。需要说明的是,本实施例可以在基于https协议在web浏览器与网站服务器之间进行数据传输的过程中,用于对网站服务器的主机进行加速。

目前,为了提高数据传输的安全,大多应用或服务采用与https在web浏览器与网站服务器之间传输数据。https是http和ttl/ssl协议的组合,ttl/ssl是一种加密协议,本身不具有实际的应用意义。当网站服务器运行http协议时,ttl/ssl的加解密会占用服务器主机较多的cpu资源,降低服务器性能,导致网站服务器向web浏览器的响应速度变慢,严重影响用户上网体验。

为了减少cpu资源的占用,现有技术中,采用专门的ttl/ssl硬件加速卡对服务器进行ssl卸载,通过ttl/ssl硬件加速卡来执行ttl/ssl加解密算法等操作,,减少服务器主机上运行ttl/ssl加解密算法步骤的计算压力。例如,图1是根据现有技术的一种可选的tls/ssl卸载方案的硬件结构示意图,如图1所示,传统的tls/ssl卸载方案中,其硬件结构主要由三个部分组成:主机、网卡和tls/ssl加速卡,三个部分之间通过总线协议互联。其中,服务器主机上通常运行用以提供web服务的应用程序,安全层协议栈(tls/ssl)软件,tcp/ip协议栈,扩展卡驱动等等。应用程序通过调用传输层安全框架(tls/ssl)的接口,以及经由tls/ssl加速卡的驱动,完成安全协议算法的硬件卸载;并通过主机的内核完成tcp/ip协议栈处理,经由网卡的驱动,完成底层网络报文的收发。网卡通过主机接口接收控制面的配置,并通过控制器完成数据面的处理和转发。tls/ssl加速卡上一般有多个并行处理的硬件加速单元用于卸载加解密算法。所有的算法加速核心都通过可信仲裁单元进行任务派发和数据域的隔离。

图2(a)和2(b)是根据现有技术的一种可选的tls/ssl卸载方案的工作流程示意图,其中,发送数据包的基本流程如图2(a)所示,包括如下步骤:

(1)主机发起任务,由应用程序到主机tls/ssl协议栈,再到tls/ssl加速卡驱动,通过总线协议接口配置到加速卡硬件;

(2)加速卡上开始进行仲裁和计算任务,完成后的结果通过总线接口返回给主机;

(3)主机根据不同的情况,可能会多次调用上边的步骤(1)和(2);

(4)主机对加密后的数据报文进行tcp/ip协议封装,并通过总线协议接口配置到网卡硬件;

(5)网卡根据控制面的设置,对数据面的报文进行对应的外发操作处理。

其接收数据包的基本流程如图2(b)所示,包括如下步骤:

(1)网卡收到数据报文,通过总线协议接口上送给主机;

(2)主机对接收到的数据报文进行tcp/ip协议栈解析,处理得到的数据,如果是未经过加密的,则直接上送至应用程序;数据如果是经过加密的,则需要下述步骤:

(3)进入tls/ssl协议层解析,并由tls/ssl加速卡驱动通过总线协议接口配置到加速卡硬件;

(4)主机根据不同的情况,可能会多次调用上边的步骤(3);

(5)解密后的明文数据上传到应用程序。

从上述步骤可看出,传统tls/ssl卸载方法虽然减少了主机上的一些主要加解密算法步骤的计算压力,但是对于整个流程而言,却另外引入了一些资源开销和时延代价。这是因为,在传统的tls/ssl卸载方法中,所有流量都走到主机,主机的cpu资源仍然会花费相当一部分比例在tcp/ip协议栈和tls/ssl的协议层解析等步骤上。其次,在每一次发送/接收的数据通路中,在主机与两个扩展卡之间包含多次的驱动接口调用、总线协议接口通信、以及相应的内核态/用户态上下文切换等等。另外,传统的“主机+网卡+加速卡”的架构,其间的互联都是通过系统公共总线,每个数据包会对应有多次的总线数据交换,相当于是成倍增大了总线流量负担。

由上可以看出,对于整个流程,会引入另外一些资源开销和时延,例如aes加密流数据时,频繁调用ssl卸载的开销可能会大于服务器主机直接计算加解密算法的开销。

发明人经研究发现,仅仅将https应用中的ssl加解密算法进行卸载的方案,服务器主机的仍然要消耗cpu资源来处理tcp/ip协议栈和ttl/ssl协议层的解析等步骤,如果可以将这些步骤从主机上卸载并转移到ttl/ssl硬件加速卡上,可以在ttl/ssl硬件加速卡上完成安全协议算法、握手流程,以及底层网络协议栈处理的全硬件卸载,达到减少对服务器主机上cpu资源的占用。

在上述应用场景下,作为一种可选的实施例,图3是根据本申请实施例的一种可选的算法的卸载系统示意图,如图3所示,该系统包括:主机301和扩展装置303。

其中,主机301可以是基于https协议进行数据传输的服务器主机,包括但不限于任意一种基于https应用的网站或业务服务器,用于提供基于web服务的应用程序、扩展装置(扩展卡)驱动等。

扩展装置301与主机301通过主机总线连接,可以在主机301基于https协议进行数据传输的过程中,用于卸载服务器上相关协议(例如,ttl/ssl协议、tcp/ip协议栈处理以及对应的卸载控制等)、ttl/ssl加解密算法,以及基础网卡功能相关的控制和数据通路等的处理,以减少主机301的cpu资源消耗。

需要说明的是,在服务器主机与web浏览器之间基于https协议进行数据传输时包括数据的发送和接收,下面从服务器主机向web浏览器发送数据和接收来自web浏览器的数据两个方面来进行说明。图4是根据本申请实施例的一种可选的算法的卸载系统示意图,如图4所示,主机301主要运行用来提供web服务的应用程序,扩展卡驱动等;而扩展装置303(也称“扩展卡”、“加速网卡”等)上包含相关协议卸载(tcp/ip协议栈、tls/ssl协议层以及对应的卸载控制等)模块、tls/ssl算法硬件加速模块、基础网卡功能相关的控制和数据通路模块等。即将安全层协议栈软件,tcp/ip协议栈,卸载到扩展装置303(也称加速网卡、扩展卡等)。其中,主机和扩展卡两个部分之间通过主机总线协议互联。

其中,扩展装置303通过主机接口与主机301的应用程序进行通信(全卸载方式下,此接口通信中的数据都是明文)。应用程序通过调用传输层安全框架(tls/ssl)的接口,将应用数据进行相应的tls/ssl处理、tcp/ip封装、以及其他网络通信中所需要的处理等的数据路径就全部卸载到了扩展装置303(tls/ssl加速网卡),通过扩展装置303完成安全协议算法、握手流程、以及底层网络协议栈处理的完全硬件卸载。

需要说明的是,扩展装置303(即扩展卡)上一般有多个并行处理的硬件加速单元用于卸载加解密算法。所有这些算法加速核心都通过可信仲裁单元进行任务派发和数据域的隔离。

作为一种可选的实施方案,当服务器主机向web浏览器发送数据包时,主机301发起发送数据包的任务,并由主机301的应用程序调用扩展装置303的传输层安全协议的接口,扩展装置303用于根据主机调用的接口,启动本地的传输层安全协议(tls/ssl)来处理任务;并在传输层安全协议(tls/ssl)处理任务之后,扩展装置303使用网络协议处理单元将处理结果作为数据报文进行封装,并通过扩展装置303内部署的网络控制器外发封装后的数据报文。

可选地,在扩展装置303启动本地的传输层安全协议(tls/ssl)来处理任务时,可以先判断是否需要使用传输层安全协议(tls/ssl)来处理该任务,并在需要使用传输层安全协议(tls/ssl)来处理该任务的情况下,对任务进行仲裁,并将任务发送至算法加速单元进行处理,得到该任务的处理结果。

在扩展装置303将任务发送至算法加速单元进行处理,得到该任务的处理结果后,扩展装置303使用网络协议处理单元对该任务的处理结果进行封装,并将封装结果配置给网络控制器,使用网络控制器发送封装后的数据报文。

由上可以看出,当主机发起发送数据包括的任务后,由扩展装置303对该任务完成传输层安全协议(例如,tls/ssl)算法、网络协议(例如,tcp/ip)封装,和底层网络协议栈的功能。

作为一种可选的实施例,在扩展装置303上,可以使用软件栈来运行传输层安全协议的服务,通过传输层安全协议的引擎单元来进行加解密算法的卸载,通过tcp卸载引擎(toe)来执行网络协议(tcp/ip)的硬件加速处理。

基于上述实施例,作为一种可选的实施方式,在扩展装置303使用网络(tcp/ip)协议处理单元将处理结果作为数据报文进行封装之前,还可以判断扩展装置303中是否存在tcp卸载引擎(toe);并在扩展装置303中存在tcp卸载引擎(toe)的情况下,使用tcp卸载引擎(toe)执行网络协议(tcp/ip)的硬件加速处理。

可选地,在扩展装置303中不存在tcp卸载引擎(toe)的情况下,判断扩展装置303的资源(例如,cpu资源)使用量是否超过预定阈值,如果超过则使用负载均衡调度模块(或称“流量调度模块”)将部分流量旁路到主机上处理。

作为另一种可选的实施方案,当服务器主机接收来自web浏览器的数据包时,扩展装置303接收数据报文,并使用本地的网络控制器将数据报文传输至网络协议处理单元(例如,tcp/ip处理单元)进行解析,得到解析结果,并使用本地的传输层安全协议(tls/ssl)对解析结果进行处理,得到处理结果,将该处理结果上传到主机。

需要说明的是,作为一种可选的实施例,扩展装置303可以通过tcp卸载引擎(toe)来执行网络协议(tcp/ip)的硬件加速处理。其中,当扩展装置303接收数据报文后,可以首先判断扩展装置303中是否存在tcp卸载引擎(toe),并在扩展装置303中存在tcp卸载引擎(toe)的情况下,使用tcp卸载引擎(toe)执行网络协议处理单元(例如,tcp/ip处理单元)的硬件加速处理,并将数据报文存储到处理器的内存区。

可选地,在将数据报文存储到处理器的内存区之后,处理器对数据报文进行协议栈处理;如果需要执行tls卸载,则发给安全套接层(ssl)进行解密处理,并调用传输层安全协议来完成硬件加速;如果不需要执行tls卸载,根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机。

可选地,作为一种可选的实施方式,当扩展装置303接收数据报文,并使用本地的网络控制器将数据报文传输至网络(tcp/ip)协议处理单元进行解析,得到解析结果之后,可以判断该解析结果中的数据是否经过加密,其中,当解析结果中的数据没有经过加密的情况下,扩展装置303直接将解析结果上传至主机;当解析结果中的数据经过加密的情况下,再使用本地的传输层安全协议(tls/ssl)对解析结果进行处理。

具体地,在使用本地的传输层安全协议(tls/ssl)对解析结果进行处理时,扩展装置303的处理器可以先判断该解析结果是否需要发给传输层安全协议的安全套接层进行处理,并在该解析结果需要发给传输层安全协议的安全套接层进行处理的情况下,使用传输层安全协议的安全套接层处理解析结果;在该解析结果不需要发给传输层安全协议的安全套接层进行处理的情况下,则旁路到主机中处理解析结果。

其中,作为第一种可选的实施方式,在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行加解密数据,如果加解密结果满足预定条件,则上传至主机301。

作为第二种可选的实施方式,在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行解密数据,并根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机301。

基于上述任意一种可选的实施防方式,当扩展装置303使用本地的传输层安全协议(tls/ssl)对解析结果进行处理的过程中,传输层安全协议(tls/ssl)层对解析结果进行处理,得到处理结果,并将处理结果进行仲裁,并发送至对应的算法加速单元进行加解密处理,得到解密结果。

需要说明的是,对于一些应用场合的特殊需求(如加速网卡的固件热升级等),可以开启主机的tcp/ip、tls/ssl等协议栈处理,相当于是传统tls/ssl卸载方案的兼容版本。一旦热升级之类的操作就绪,主机可以仍然切换回全卸载方案,以减少载荷、提高效率。

容易注意到的是,本申请实施例提供的tls/ssl全卸载方案中,扩展卡完成了tls/ssl协议层之下的几乎全部流程,能够显著的减少主机上的计算压力,在具体实现中,可以有多种不同的具体形式。例如,arm核心的智能网卡+tls/ssl硬件加速模块+toe等。

实施例2

根据本申请实施例,还提供了一种算法的卸载方法实施例,用于基于https协议进行数据传输的服务器主机向web浏览器发送数据的过程中,本实施例可以应用于实施例1中的一种算法的卸载系统中,包括但不限于实施例1中场景。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

由于现有的基于https协议的服务器主机的硬件卸载加速方案,只能将基于http协议进行数据传输的过程中关于ttl/ssl加解密算法的部分卸载,而服务器主机对相关协议(例如,ttl/ssl协议、tcp/ip协议栈处理以及对应的卸载控制等)、ttl/ssl加解密算法,以及基础网卡功能相关的控制和数据通路等的处理仍然消耗大量的cpu资源。

为了解决上述问题,本申请提供了一种算法的卸载方法实施例,图5是根据本申请实施例的一种算法的卸载方法流程图,如图5所示,包括如下步骤:

步骤s502,扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务。

作为一种可选的实施例,上述主机可以是基于https协议进行数据传输的服务器主机,包括但不限于任意一种基于https应用的网站或业务服务器;上述扩展装置可以是集成了tls/ssl协议处理模块、tcp/ip协议层处理模块的扩展卡或硬件加速网卡,用于对主机上的应用数据进行tls/ssl处理、tcp/ip封装等操作。主机与扩展装置之间通过总线接口通信,使得主机只需要提供基于web服务的应用程序、扩展卡驱动即可。

需要说明的是,由于主机与扩展装置通过总线接口连接,主机需要发送数据时,可以建立发送数据的任务,并调用扩展装置上的相应的接口(例如,tls/ssl接口),使得扩展启动本地的传输层安全协议(tls/ssl)来对当前任务进行处理(例如,tls/ssl加密处理)。

容易注意的是,上述扩展装置可以根据主机调用的接口,启用相应的协议卸载流程,此时,扩展装置上的tls/ssl协议层(即传输层安全协议层)可以对服务器主机的协议卸载流程进行流程控制,例如,有计算任务则进行仲裁,将计算任务派发给对应的算法硬件加速单元,直到计算结果返回。可选地,根据不同的情况下,可能进行多次上述流程控制操作。

步骤s504,在传输层安全协议处理任务之后,扩展装置使用网络协议处理单元将处理结果作为数据报文进行封装。

作为一种可选的实施例,上述网络协议处理单元可以是用于主机提供web服务时对发送的数据报文进行tcp/ip封装,对接收到的数据报文进行tcp/ip协议栈解析等处理操作;因而,当服务器主机(即上述主机)发送数据时,调用扩展装置上的相应的接口(例如,tls/ssl接口),使得扩展启动本地的传输层安全协议(tls/ssl)来对当前任务进行tls/ssl加密处理得到处理结果后作为数据报文进行封装,并通过总线协议接口配置到网络控制器。

步骤s506,扩展装置内部署的网络控制器外发封装后的数据报文。

在上述步骤s506中,当扩展装置上的tcp/ip协议栈处理单元对加密后的数据报文进行tcp/ip协议封装,并配置到网络控制器后,通过网络控制器根据控制面的设置,对数据面的报文进行对应的外发操作处理。

以图4所示的算法的卸载系统为例,本申请实施例提供的tls/ssl全卸载的硬件加速方案主要包括如下几个模块:主机301和扩展装置303(即tls/ssl卸载加速网卡,为表述简洁,本申请的方案中使用“扩展卡”或者“加速网卡”来代替“tls/ssl全卸载硬件加速网卡”的名称)。主机301和扩展装置303两个部分之间通过主机总线协议互联。

其中,主机301,用于提供web服务的应用程序,扩展卡驱动等。而安全层协议栈软件,tcp/ip协议栈等作为可选项,可以卸载到加速网卡,也可以在主机完成。应用程序通过调用传输层安全框架(tls/ssl)的接口后,之后的数据路径就全部卸载到了tls/ssl加速网卡,完成安全协议算法、握手流程、以及底层网络协议栈处理的完全硬件卸载;对于一些应用场合的特殊需求(如加速网卡的固件热升级等),可以开启主机的tcp/ip、tls/ssl等协议栈处理,相当于是传统tls/ssl卸载方案的兼容版本。一旦热升级之类的操作就绪,主机可以仍然切换回全卸载方案,以减少载荷、提高效率。

扩展装置303(即tls/ssl全卸载硬件加速网卡),包含有相关协议卸载(tcp/ip协议栈、tls/ssl协议层以及对应的卸载控制等等)、tls/ssl算法硬件加速模块、基础网卡功能相关的控制和数据通路模块等。扩展卡通过主机接口与应用程序进行通信(全卸载方式下,此接口通信中的数据都是明文)。在扩展卡上对这些应用数据进行相应的tls/ssl处理、tcp/ip封装、以及其他网络通信中所需要的处理等。扩展卡上一般有多个并行处理的硬件加速单元用于卸载加解密算法。所有这些算法加速核心都通过可信仲裁单元进行任务派发和数据域的隔离。

由上可知,在本申请上述实施例中,服务器主机向web浏览器发送数据的过程中,通过扩展装置根据主机调用的接口,启动本地的传输层安全协议(tls/ssl)来处理主机发送数据的相关任务,并在传输层安全协议(tls/ssl)处理相关任务之后,使用扩展装置内部的网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行tcp/ip封装,最后通过扩展装置内部署的网络控制器外发封装后的数据报文,达到了使得扩展卡完成了tls/ssl协议层之下的几乎全部流程的目的,从而实现了减少主机上的计算压力、有更多的计算资源提供给应用程序使用,同时扩展卡上通过并行计算核心等方式保证了安全网络协议中的延时和吞吐量的技术效果,进而解决了现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的技术问题。

在一种可选的实施例中,在扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务之前,上述方法还可以包括如下步骤:

步骤s501,主机发起任务,并由主机的应用程序调用扩展装置的传输层安全协议的接口,使得扩展装置对任务完成传输层安全协议算法、网络协议封装,和底层网络协议栈的功能。

具体地,在上述实施例中,上述任务可以是服务器主机向web浏览器发送数据的任务;由于扩展装置集成了tls/ssl协议处理模块、tcp/ip协议层处理模块的扩展卡或硬件加速网卡,用于对主机上的应用数据进行tls/ssl处理、tcp/ip封装等操作,因而,当服务器主机发起任务后,可以由主机的应用程序调用扩展装置的tls/ssl接口,通过扩展装置来完成对发送数据的任务的tls/ssl加解密、tcp/ip封装、对协议卸载流程控制,以及将封装后的数据报文配置到网络控制器等底层网络协议栈的功能。

通过上述实施例,实现了通过与服务器主机独立的扩展卡完成了tls/ssl协议层之下的几乎全部流程,能够显著的减少主机上的计算压力。

在一种可选的实施例中,启动本地的传输层安全协议来处理任务,包括:

步骤s5021,判断是否需要使用传输层安全协议来处理任务;

步骤s5023,如果需要,则对任务进行仲裁,并将任务发送至算法加速单元进行处理,得到任务的处理结果。

具体地,在上述实施例中,由于不是所有的数据包都需要执行tls/ssl加解密操作,因而,在启动本地的传输层安全协议(tls/ssl)来处理任务时,首先判断主机发起的任务是否需要传输层安全协议(tls/ssl)来处理,在需要传输层安全协议(tls/ssl)处理的情况下,才将任务发送至扩展装置内的算法加速单元进行处理,得到任务的处理结果。

在一种可选的实施例中,扩展装置使用网络协议处理单元将处理结果作为数据报文进行封装,包括:网络协议处理单元对处理结果进行封装,并将封装结果配置给网络控制器。

可选地,一种可选的实施例中,在扩展装置上,可以使用软件栈来运行传输层安全协议的服务,通过传输层安全协议的引擎单元来进行加解密算法的卸载,通过tcp卸载引擎来执行网络协议的硬件加速处理。

基于上述实施例,作为一种可选的实施方式,在扩展装置使用网络协议处理单元将处理结果作为数据报文进行封装之前,上述方法还可以包括如下步骤:

步骤s5031,判断扩展装置中是否存在tcp卸载引擎;

步骤s5033,如果存在,则使用tcp卸载引擎执行网络协议的硬件加速处理。

在一种可选的实施例中,上述方法还包括:步骤s5035,如果不存在,则判断扩展装置的资源使用量是否超过预定阈值,如果超过则使用负载均衡调度模块(或称“流量调度模块”)将部分流量旁路到主机上处理。

作为一种可选的实施例,图6(a)和图6(b)是根据现有技术的一种可选的tls/ssl卸载方案的工作流程示意图,其中,发送数据包的基本流程如图6(a)所示,包括如下步骤:

(1)主机发起任务,由应用程序调用扩展卡(加速网卡)的tls/ssl层接口,经由驱动程序,通过总线协议接口进行配置;

(2)扩展卡上的“协议卸载控制”单元根据主机调用的接口,启用相应协议卸载流程;

(3)扩展卡上的tls/ssl协议层开始进行流程控制,如有计算任务则进行仲裁,将计算任务派发给对应的算法硬件加速单元,直到计算结果返回;

(4)根据不同的情况,可能会多次进行上边的(3)步骤;

(5)扩展卡上的tcp/ip协议栈处理单元对加密后的数据报文进行tcp/ip协议封装,并配置到网络控制器;

(6)网络控制器根据控制面的设置,对数据面的报文进行对应的外发操作处理。

作为一种可选的实施例,基于图其接收数据包的基本流程如图6(b)所示,包括如下步骤:

(1)扩展卡收到数据报文;

(2)扩展卡上的网络控制器将对应的数据传送到tcp/ip协议解析处理;

(3)解析后得到的数据如果是未经过加密的,则直接通过“协议卸载控制单元”上送至主机的应用程序;数据如果是经过加密的,则需要下述步骤:

(4)扩展卡上的tls/ssl协议层开始解析,对计算任务则进行仲裁并派发给对应的算法硬件加速单元,直到计算结果返回;

(5)根据不同的情况,可能会多次进行上边的(4)步骤;

(6)解密后的明文数据通过“协议卸载控制单元”上送到主机的应用程序。

从上述步骤可看出,本申请提出的tls/ssl全卸载方案中,扩展卡完成了tls/ssl协议层之下的几乎全部流程,能够显著的减少主机上的计算压力。而且对于包括主机在内的整个流程而言,有如下优点:

①避免了所有流量都经过主机,主机的cpu资源不再会花费在tcp/ip协议栈和tls/ssl的协议层解析等网络传输相关的步骤上。

②在每一次发送/接收的数据通路中,在主机与扩展卡之间的驱动接口调用次数明显减少,也即总线协议接口通信、相应的内核态/用户态上下文切换等次数减少。

③“主机+加速网卡”的架构,使得主机的资源能更多的分配给应用程序使用,而且主机总线接口一侧仅需要处理明文数据,缓解了总线带宽压力、简化了数据处理流程、同时还避免了额外资源开销和时延代价。

实施例3

根据本申请实施例,还提供了一种算法的卸载方法实施例,用于基于https协议进行数据传输的服务器主机接收来自web浏览器的数据的过程中,本实施例可以应用于实施例1中的一种算法的卸载系统中,包括但不限于实施例1中场景。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图7是根据本申请实施例的一种算法的卸载方法流程图,如图7所示,包括如下步骤:

步骤s702,扩展装置接收数据报文,并使用本地的网络控制器将数据报文传输至网络协议处理单元进行解析;

步骤s704,扩展装置使用本地的传输层安全协议对解析结果进行处理;

步骤s706,扩展装置将处理结果上传到主机。

具体地,在上述步骤中,当服务器主机接收来自web浏览器的数据的时候,上述主机用于接收数据,此时,通过与主机独立的扩展装置(即tls/ssl全卸载硬件加速网卡)来接收数据报文,并通过扩展装置上的网络控制器将对应的数据传送到tcp/ip协议解析处理,然后通过扩展扩展装置上的传输层安全协议(tls/ssl)对解析结果进行处理,并将处理后的结果上传的主机(即服务器主机)。

容易注意到的是,扩展装置上的tls/ssl协议层(即传输层安全协议层)进行的解析操作包括但不限于对计算任务则进行仲裁并派发给对应的算法硬件加速单元,直到计算结果返回,根据不同的情况,可能会多次进行上述操作。

由上可知,在本申请上述实施例中,服务器主机接收来自web浏览器发送数据的过程中,通过扩展装置接收数据报文,并使用扩展装置内部的网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行tcp/ip解析,得到解析结果,使用扩展装置本地的传输层安全协议(tls/ssl)来处理解析结果,并将处理后的结果上传上至主机(即服务器主机),达到了使得扩展卡完成了tls/ssl协议层之下的几乎全部流程的目的,从而实现了减少主机上的计算压力、有更多的计算资源提供给应用程序使用,同时扩展卡上通过并行计算核心等方式保证了安全网络协议中的延时和吞吐量的技术效果,进而解决了现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的技术问题。

在一种可选的实施例中,在使用本地的网络控制器将数据报文传输至网络(tcp/ip)协议处理单元进行解析之后,上述方法还可以包括如下步骤:

步骤s7051,判断解析结果中的数据是否经过加密;

步骤s7053,如果解析结果中的数据没有经过加密,则直接将解析结果上传至主机;

步骤s7055,如果解析结果中的数据经过加密,则执行使用本地的传输层安全协议对解析结果进行处理的步骤。

具体地,在上述实施例中,在使用本地的网络控制器将数据报文传输至网络(tcp/ip)协议处理单元进行解析之后,判断解析得到的数据是否是经过加密的,如果是未经过加密的,则直接通过“协议卸载控制单元”上送至主机的应用程序;数据如果是经过加密的,扩展卡上的tls/ssl协议层开始解析,对计算任务则进行仲裁并派发给对应的算法硬件加速单元,直到计算结果返回。

可选地,基于上述实施例,作为一种可选的实施方式,使用本地的传输层安全协议对解析结果进行处理,可以包括如下步骤:

步骤s7055a,传输层安全协议层对解析结果进行处理,得到处理结果;

步骤s7055b,将处理结果进行仲裁,并发送至对应的算法加速单元进行解密处理,得到解密结果。

通过上述实施例,采用算法加速单元进行解密处理,可以实现硬件的加速。

可选地,一种可选的实施例中,在扩展装置上,可以使用软件栈来运行传输层安全协议的服务,通过传输层安全协议的引擎单元来进行加解密算法的卸载,通过tcp卸载引擎(toe)来执行网络协议(tcp/ip)的硬件加速处理。

基于上述实施例,作为一种可选的实施方式,在扩展装置接收数据报文之后,上述方法还可以包括如下步骤:

步骤s7031,判断扩展装置中是否存在tcp卸载引擎;

步骤s7033,如果存在,则使用tcp卸载引擎执行网络协议处理单元(例如,tcp/ip处理单元)的硬件加速处理,并将数据报文存储到处理器的内存区。

在一种可选的实施例中,在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行加解密数据,如果加解密结果满足预定条件,则上传至主机。

在一种可选的实施例中,在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行解密数据,并根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机。

在一种可选的实施例中,扩展装置使用本地的传输层安全协议对解析结果进行处理,可以包括如下步骤:

步骤s7041,扩展装置的处理器判断解析结果是否需要发给传输层安全协议的安全套接层进行处理;

步骤s7043,如果需要,则使用传输层安全协议的安全套接层处理解析结果;

步骤s7044,如果不需要,则旁路到主机中处理解析结果。

一种可选的实施例中,图8是根据本申请实施例的一种存在toe的情况下加速网卡卸载协议模式示意图,如图8所示,在卸载协议模式下,主机运行apache等http网络服务应用程序,扩展卡上处理所有网络相关的协议控制和数据处理。扩展卡上的软件栈可采用“arm处理器+linux操作系统”的实现形式。

在扩展卡上,分别通过软件栈运行tls/ssl协议层服务,通过toe单元进行tcp/ip协议栈的硬件加速处理,通过tls/ssl引擎进行加解密算法的计算卸载。

在实施例1中,以收包过程为例,简述工作流程如下:

(1)mac收到数据报文后,经由toe处理(s1);

(2)将处理过的数据存储到arm的内存区(s2),arm内核处理toe的数据;

(3)arm的内核接到的数据是tls/app层的,根据协议和预设条件,判断该数据包是交给ssl处理(s4),还是旁路上传到host(s6);

(4)如果由ssl处理,通过libcrypto和用户态驱动等调用设置到tlsengine硬件(s5);

(5)处理过的数据如果是sessiondata,上传至host(s6);

(6)pciedma写入host的内存区并给出中断。

注:有toe时,扩展卡的arm上运行的内核不需要处理tcp/ip协议栈,只需要将toe模块的接口和数据封装成socket接口的各操作函数,便于其他进程调用。

注:pciedma写入host内存区后,在等待host响应中断时,应该采用异步方式保证吞吐率,而host段采用ringbuffer类似的形式完成接收。

注:host发送报文时,路径相反,过程和思路类似。

此实施例能够工作在大多数常见的服务器应用背景下。

另一种可选的实施例中,图9是根据本申请实施例的一种存在toe的情况下主机和加速网卡混合协议模式示意图,如图9所示,在某些服务器的应用场景中,会有如下的需求(混合协议模式)

有的轻量级应用程序也是可以卸载到扩展卡上的,好处是减少处理时延;

有时候主机上有少数的应用程序会直接调用openssl的较低层接口,不需要对tls/ssl进行硬件卸载。

所以主机运行http网络服务应用程序的同时,还需要包括tls/ssl协议层相关的运行库(仅在很少的情况下才需要调用到);而扩展卡上处理所有网络相关的协议控制和数据处理,还可以有轻量级的应用程序。扩展卡上的软件栈仍可采用“arm处理器+linux操作系统”的实现形式。

在扩展卡上,分别通过软件栈运行tls/ssl协议层服务,通过toe单元进行tcp/ip协议栈的硬件加速处理,通过tls/ssl引擎进行加解密算法的计算卸载。

在实施例2中,以收包过程为例,简述工作流程如下:

(1)mac收到数据报文后,经由toe处理(s1);

(2)将处理过的数据存储到arm的内存区(s2),arm内核处理toe的数据;

(3)arm的内核接到的数据是tls/app层的,根据协议和预设条件,判断该数据包是交给ssl处理(s4),还是旁路上传到host(s6);

(4)如果由ssl处理,通过libcrypto和用户态驱动等调用设置到tlsengine硬件(s5);

(5)根据处理过数据的类型和目的地址,上送至arm上的应用程序(通过进程间通信),或者通过主机总线接口上传至host(s6);

(6)pciedma写入host的内存区并给出中断。

注:有toe时,扩展卡的arm上运行的内核不需要处理tcp/ip协议栈,只需要将toe模块的接口和数据封装成socket接口的各操作函数,便于其他进程调用。

注:pciedma写入host内存区后,在等待host响应中断时,应该采用异步方式保证吞吐率,而host段采用ringbuffer类似的形式完成接收。

注:host发送报文时,路径相反,过程和思路类似。

在一种可选的实施例中,上述方法还包括:步骤s7035,如果扩展装置中不存在tcp卸载引擎,则将数据报文存储到处理器的内存区,或旁路给主机进行处理。

在一种可选的实施例中,在将数据报文存储到处理器的内存区之后,方法还包括:

步骤s7036a,处理器对数据报文进行协议栈处理;

步骤s7036b,如果需要执行tls卸载,则发给安全套接层(ssl)进行解密处理,并调用传输层安全协议来完成硬件加速。

在一种可选的实施例中,上述方法还包括:步骤s7036c,如果不需要执行tls卸载,根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机。

一种可选的实施例中,图10是根据本申请实施例的一种不存在toe的情况下主机和加速网卡混合协议模式示意图,如图10所示,在某些扩展卡的实现中,出于成本、设计复杂度等各方面考虑,是不包含toe硬件模块的。在这种情况下扩展卡上的arm处理器资源会分配一部分用于tcp/ip协议栈解析,需要考虑当扩展卡的处理资源饱和的情形、加入分流单元。

此实施例中描述在混合协议模式下、无toe模块时的工作流程。

所以主机运行http网络服务应用程序的同时,还需要包括tls/ssl协议层相关的运行库(仅在很少的情况下才需要调用到);而扩展卡上处理所有网络相关的协议控制和数据处理,还可以有轻量级的应用程序。扩展卡上的软件栈仍可采用“arm处理器+linux操作系统”的实现形式。

在扩展卡上,分别通过软件栈运行tls/ssl协议层和tcp/ip协议栈,通过tls/ssl引擎进行加解密算法的计算卸载。由于此时在网口流量增大(如线速)的情况下arm会成为系统流量的制约瓶颈,所以需要区分以下流量:

(1)正常的https流量。这部分流量的特点是由客户端发起,会优先交由arm上的tls/ssl卸载完成,当arm核的资源使用超过一定的水位时,会将一部分新的流量旁路到pcie,由host直接处理;

(2)混杂的http和其他无关的流量。这部分一般是不应该进入到arm的tls/ssl卸载模块,可以考虑旁路到host或是丢弃;

(3)必需的http和其他协议、其他端口的流量。这部分比如网络侦测、证书链验证。这一部分流量有可能是由arm发起,也可能是由子网内其它设备发起。所以需要判别发起来源和回包地址,以保证arm、host各自的网络流程和状态机控制;

所以,在没有toe模块时就需要有分流模块,将与arm无关的流量导流至host、以及按照arm配置下来的分流规则进行筛选。

在实施例3中,以接收数据包过程为例,简述工作流程如下:

(1)mac收到数据报文后,送给分流单元做分流(s1);

(2)将数据存储到arm的内存区(s2),或是旁路到pcie给host上送(s3);

(3)arm的内核接到的数据先做协议栈处理,若该数据包需要tls的hw卸载,则交给ssl处理(s4),之后的流程上下文状态和解密后的数据上传到host(s6);

(4)如果由ssl处理,通过libcrypto和用户态驱动等调用tls/ssl硬件加速(s5);

(5)根据处理过数据的类型和目的地址,上送至arm上的应用程序(通过进程间通信),或者通过主机总线接口上传至host(s6);

(6)pciedma写入host的内存区并给出中断。

注:没有toe时,arm的内核需要处理tcp/ip协议栈。

注:pciedma写入host内存区后,在等待host响应中断时,应该采用异步方式保证吞吐率,而host段采用ringbuffer类似的形式完成接收。

注:host发送报文时,路径相反,思路类似。

需要说明的是,本申请提出的是将tls/ssl协议层之下的部分进行全卸载的方式,在具体实现中,可以有多种不同的具体形式。比如arm核心的智能网卡+tls/ssl硬件加速模块+toe。

本申请提出的方案通过对tls/ssl协议层之下的流程进行全卸载,并且在扩展卡上采用了重新设计的“协议卸载”、“计算任务仲裁”、“基本网络控制”三个层面的架构,解决了传统tls/ssl协议局部卸载的“代价折衷”痛点。

可以看出,本申请提出的tls/ssl全卸载方案中,主机上的计算压力显著减少、有更多的计算资源提供给应用程序使用,同时扩展卡上通过并行计算核心等方式保证了安全网络协议中的延时和吞吐量。

实施例4

根据本申请实施例,还提供了一种用于实现上述实施例2中算法的卸载方法的装置实施例,图11是根据本申请实施例的一种算法的卸载装置示意图,如图11所示,该装置包括:启动模块111、封装模块113和发送模块115。

其中,启动模块111,用于通过扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务;

封装模块113,用于在传输层安全协议处理任务之后,通过扩展装置使用网络协议处理单元将处理结果作为数据报文进行封装;

发送模块115,用于通过扩展装置内部署的网络控制器外发封装后的数据报文。

此处需要说明的是,上述启动模块111、封装模块113和发送模块115对应于实施例2中的步骤s502至s506,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

由上可知,在本申请上述实施例中,服务器主机向web浏览器发送数据的过程中,通过扩展装置根据主机调用的接口,启动本地的传输层安全协议(tls/ssl)来处理主机发送数据的相关任务,并在传输层安全协议(tls/ssl)处理相关任务之后,使用扩展装置内部的网络协议处理单元将处理结果作为数据报文进行tcp/ip封装,最后通过扩展装置内部署的网络控制器外发封装后的数据报文,达到了使得扩展卡完成了tls/ssl协议层之下的几乎全部流程的目的,从而实现了减少主机上的计算压力、有更多的计算资源提供给应用程序使用,同时扩展卡上通过并行计算核心等方式保证了安全网络协议中的延时和吞吐量的技术效果,进而解决了现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的技术问题。

在一种可选的实施例中,上述装置还包括:第一处理模块,用于通过主机发起任务,并由主机的应用程序调用扩展装置的传输层安全协议的接口,使得扩展装置对任务完成传输层安全协议算法、网络协议封装,和底层网络协议栈的功能。

此处需要说明的是,上述第一处理模块对应于实施例2中的步骤s501,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述启动模块包括:第一判断模块,用于判断是否需要使用传输层安全协议来处理任务;第一执行模块,用于如果需要,则对任务进行仲裁,并将任务发送至算法加速单元进行处理,得到任务的处理结果。

此处需要说明的是,上述第一判断模块和第一执行模块对应于实施例2中的步骤s5021至s5023,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述封装模块还用于通过网络协议处理单元对处理结果进行封装,并将封装结果配置给网络控制器。

在一种可选的实施例中,在扩展装置上,使用软件栈来运行传输层安全协议的服务,通过传输层安全协议的引擎单元来进行加解密算法的卸载,通过tcp卸载引擎来执行网络协议的硬件加速处理。

在一种可选的实施例中,上述装置还包括:第二判断模块,用于判断扩展装置中是否存在tcp卸载引擎;第二执行模块,用于如果存在,则使用tcp卸载引擎执行网络协议的硬件加速处理。

此处需要说明的是,上述第二判断模块和第二执行模块对应于实施例2中的步骤s5031至s5033,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述装置还包括:第三执行模块,用于如果不存在,则判断扩展装置的资源使用量是否超过预定阈值,如果超过则使用负载均衡调度模块(或称“流量调度模块”)将部分流量旁路到主机上处理。

此处需要说明的是,上述第三执行模块对应于实施例2中的步骤s5035,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

实施例5

根据本申请实施例,还提供了一种用于实现上述实施例3中算法的卸载方法的装置实施例,图12是根据本申请实施例的一种算法的卸载装置示意图,如图12所示,该装置包括:解析模块121、第三处理模块123和上传模块125。

其中,解析模块121,用于通过扩展装置接收数据报文,并使用本地的网络控制器将数据报文传输至网络协议处理单元进行解析;

第三处理模块123,用于扩展装置使用本地的传输层安全协议对解析结果进行处理;

上传模块125,用于通过扩展装置将处理结果上传到主机。

此处需要说明的是,上述解析模块121、第三处理模块123和上传模块125对应于实施例3中的步骤s702至s706,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

由上可知,在本申请上述实施例中,服务器主机接收来自web浏览器发送数据的过程中,通过扩展装置接收数据报文,并使用扩展装置内部的网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行tcp/ip解析,得到解析结果,使用扩展装置本地的传输层安全协议(tls/ssl)来处理解析结果,并将处理后的结果上传上至主机(即服务器主机),达到了使得扩展卡完成了tls/ssl协议层之下的几乎全部流程的目的,从而实现了减少主机上的计算压力、有更多的计算资源提供给应用程序使用,同时扩展卡上通过并行计算核心等方式保证了安全网络协议中的延时和吞吐量的技术效果,进而解决了现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的技术问题。

在一种可选的实施例中,上述装置还包括:第三判断模块,用于判断解析结果中的数据是否经过加密;第四执行模块,用于如果解析结果中的数据没有经过加密,则直接将解析结果上传至主机;第五执行模块,用于如果解析结果中的数据经过加密,则执行使用本地的传输层安全协议对解析结果进行处理的步骤。

此处需要说明的是,上述第三判断模块、第四执行模块和第五执行模块对应于实施例3中的步骤s7051至s7053,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述第五执行模块包括:第四处理模块,用于传输层安全协议层对解析结果进行处理,得到处理结果;解密模块,用于将处理结果进行仲裁,并发送至对应的算法加速单元进行加解密处理,得到解密结果。

此处需要说明的是,上述第四处理模块和解密模块对应于实施例3中的步骤s7055a至s7055b,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述装置还包括:第四判断模块,用于判断扩展装置中是否存在tcp卸载引擎;第六执行模块,用于如果存在,则使用tcp卸载引擎执行网络协议处理单元(例如,tcp/ip处理单元)的硬件加速处理,并将数据报文存储到处理器的内存区。

此处需要说明的是,上述第四判断模块和第六执行模块对应于实施例3中的步骤s7031至s7033,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述第三处理模块包括:第五判断模块,用于扩展装置的处理器判断解析结果是否需要发给传输层安全协议的安全套接层进行处理;第七执行模块,用于如果需要,则使用传输层安全协议的安全套接层处理解析结果;第八执行模块,用于如果不需要,则旁路到主机中处理解析结果。

此处需要说明的是,上述第五判断模块、第七执行模块和第八执行模块对应于实施例3中的步骤s7041至s7043,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述第七执行模块还用于在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行加解密数据,如果加解密结果满足预定条件,则上传至主机。

在一种可选的实施例中,上述第七执行模块还用于在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行解密数据,并根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机。

在一种可选的实施例中,上述装置还包括:第九执行模块,用于如果扩展装置中不存在tcp卸载引擎,则将数据报文存储到处理器的内存区,或旁路给主机进行处理。

此处需要说明的是,上述第九执行模块对应于实施例3中的步骤s7035,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述装置还包括:第五处理模块,用于通过处理器对数据报文进行协议栈处理;第六处理模块,用于如果需要执行tls卸载,则发给安全套接层(ssl)进行解密处理,并调用传输层安全协议来完成硬件加速。

此处需要说明的是,上述第五处理模块和第六处理模块对应于实施例3中的步骤s7036a至s7036b,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述装置还包括:第七处理模块,用于如果不需要执行tls卸载,根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机。

此处需要说明的是,上述第七处理模块对应于实施例3中的步骤s7036c,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

实施例6

本申请的实施例可以提供一种计算机设备,该计算机设备可以是计算机设备群中的任意一个计算机设备设备。可选地,在本实施例中,上述计算机设备也可以替换为计算机设备等终端设备。

可选地,在本实施例中,上述计算机设备可以位于计算机网络的多个网络设备中的至少一个访问设备。

图13是根据本申请实施例的一种可选的计算机设备的硬件结构框图。如图13所示,计算机设备13可以包括一个或多个(图中仅示出一个)处理器132(处理器132可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器134、以及用于通信功能的传输装置136。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图13所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机设备13还可包括比图13中所示更多或者更少的组件,或者具有与图13所示不同的配置。

需要说明的是,图13示出的计算终端硬件结构框图,不仅可以作为上述实施例1中可信服务器201的示例性框图,还可以作为上述服务中心203的示例性框图。

应当注意到的是上述一个或多个处理器132和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机设备13中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

处理器132可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务;在传输层安全协议处理任务之后,扩展装置使用网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行封装;扩展装置内部署的网络控制器外发封装后的数据报文。

存储器134可用于存储应用软件的软件程序以及模块,如本申请实施例中的监测配网设备的网络接入状态的方法对应的程序指令/数据存储装置,处理器132通过运行存储在存储器134内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的监测配网设备的网络接入状态的方法。存储器134可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器134可进一步包括相对于处理器132远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备13。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置136用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机设备13的通信供应商提供的无线网络。在一个实例中,传输装置136包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置136可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机设备13的用户界面进行交互。

此处需要说明的是,在一些可选实施例中,上述图13所示的计算机设备13可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图13仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备13中的部件的类型。

此处需要说明的是,在一些实施例中,上述图13所示的计算机设备具有触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。在一些实施例中,上述图13所示的计算机设备具有图像用户界面(gui),用户可以通过触摸触敏表面上的手指接触和/或手势来与gui进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。

在本实施例中,上述计算机设备13可以执行应用程序的监测配网设备的网络接入状态的方法中以下步骤的程序代码:扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务;在传输层安全协议处理任务之后,扩展装置使用网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行封装;扩展装置内部署的网络控制器外发封装后的数据报文。

可选的,上述处理器还可以执行如下步骤的程序代码:扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务;在传输层安全协议处理任务之后,扩展装置使用网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行封装;扩展装置内部署的网络控制器外发封装后的数据报文。

可选的,上述处理器还可以执行如下步骤的程序代码:主机发起任务,并由主机的应用程序调用扩展装置的传输层安全协议的接口,使得扩展装置对任务完成传输层安全协议算法、网络(tcp/ip)协议封装,和底层网络协议栈的功能。

可选的,上述处理器还可以执行如下步骤的程序代码:判断是否需要使用传输层安全协议来处理任务;如果需要,则对任务进行仲裁,并将任务发送至算法加速单元进行处理,得到任务的处理结果。

可选的,上述处理器还可以执行如下步骤的程序代码:网络(tcp/ip)协议处理单元对处理结果进行封装,并将封装结果配置给网络控制器。

可选的,上述处理器还可以执行如下步骤的程序代码:在扩展装置上,使用软件栈来运行传输层安全协议的服务,通过传输层安全协议的引擎单元来进行加解密算法的卸载,通过tcp卸载引擎(toe)来执行网络协议(tcp/ip)的硬件加速处理。

可选的,上述处理器还可以执行如下步骤的程序代码:判断扩展装置中是否存在tcp卸载引擎(toe);如果存在,则使用tcp卸载引擎(toe)执行网络协议(tcp/ip)的硬件加速处理。

可选的,上述处理器还可以执行如下步骤的程序代码:如果不存在,则判断扩展装置的资源使用量是否超过预定阈值,如果超过则使用负载均衡调度模块将部分流量旁路到主机上处理。

可选的,上述处理器还可以执行如下步骤的程序代码:扩展装置接收数据报文,并使用本地的网络控制器将数据报文传输至网络协议处理单元(例如,tcp/ip处理单元)进行解析;扩展装置使用本地的传输层安全协议对解析结果进行处理;扩展装置将处理结果上传到主机。

可选的,上述处理器还可以执行如下步骤的程序代码:判断解析结果中的数据是否经过加密;如果解析结果中的据没有经过加密,则直接将解析结果上传至主机;如果解析结果中的数据经过加密,则执行使用本地的传输层安全协议对解析结果进行处理的步骤。

可选的,上述处理器还可以执行如下步骤的程序代码:传输层安全协议层对解析结果进行处理,得到处理结果;将处理结果进行仲裁,并发送至对应的算法加速单元进行加解密处理,得到解密结果。

可选的,上述处理器还可以执行如下步骤的程序代码:判断扩展装置中是否存在tcp卸载引擎(toe);如果存在,则使用tcp卸载引擎(toe)执行网络协议处理单元(例如,tcp/ip处理单元)的硬件加速处理,并将数据报文存储到处理器的内存区。

可选的,上述处理器还可以执行如下步骤的程序代码:扩展装置的处理器判断解析结果是否需要发给传输层安全协议的安全套接层进行处理;如果需要,则使用传输层安全协议的安全套接层处理解析结果;如果不需要,则旁路到主机中处理解析结果。

可选的,上述处理器还可以执行如下步骤的程序代码:在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行加解密数据,如果加解密结果满足预定条件,则上传至主机。

可选的,上述处理器还可以执行如下步骤的程序代码:在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行解密数据,并根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机。

可选的,上述处理器还可以执行如下步骤的程序代码:如果不存在,则将数据报文存储到处理器的内存区,或旁路给主机进行处理。

可选的,上述处理器还可以执行如下步骤的程序代码:处理器对数据报文进行协议栈处理;如果需要执行tls卸载,则发给安全套接层(ssl)进行解密处理,并调用传输层安全协议来完成硬件加速。

可选的,上述处理器还可以执行如下步骤的程序代码:如果不需要执行tls卸载,根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机。

本领域普通技术人员可以理解,图13所示的结构仅为示意,计算机设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图13其并不对上述电子装置的结构造成限定。例如,计算机设备13还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例7

本申请的实施例还提供了一种存储介质。可选的,在本实施例中,上述存储介质可以用于保存上述实施例所提供的监测配网设备的网络接入状态的方法所执行的程序代码,其中,在程序运行时控制存储介质所在设备执行实施例中任意一项的可选的或优选的监测配网设备的网络接入状态的方法。

可选的,在本实施例中,上述存储介质可以位于计算机网络中移动终端群中的任意一个移动终端中,或者位于移动终端群中的任意一个移动终端中。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务;在传输层安全协议处理任务之后,扩展装置使用网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行封装;扩展装置内部署的网络控制器外发封装后的数据报文。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:主机发起任务,并由主机的应用程序调用扩展装置的传输层安全协议的接口,使得扩展装置对任务完成传输层安全协议算法、网络(tcp/ip)协议封装,和底层网络协议栈的功能。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断是否需要使用传输层安全协议来处理任务;如果需要,则对任务进行仲裁,并将任务发送至算法加速单元进行处理,得到任务的处理结果。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:网络(tcp/ip)协议处理单元对处理结果进行封装,并将封装结果配置给网络控制器。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在扩展装置上,使用软件栈来运行传输层安全协议的服务,通过传输层安全协议的引擎单元来进行加解密算法的卸载,通过tcp卸载引擎(toe)来执行网络协议(tcp/ip)的硬件加速处理。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断扩展装置中是否存在tcp卸载引擎(toe);如果存在,则使用tcp卸载引擎(toe)执行网络协议(tcp/ip)的硬件加速处理。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:如果不存在,则判断扩展装置的资源使用量是否超过预定阈值,如果超过则使用负载均衡调度模块将部分流量旁路到主机上处理。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:扩展装置接收数据报文,并使用本地的网络控制器将数据报文传输至网络协议处理单元(例如,tcp/ip处理单元)进行解析;扩展装置使用本地的传输层安全协议对解析结果进行处理;扩展装置将处理结果上传到主机。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断解析结果中的数据是否经过加密;如果解析结果中的据没有经过加密,则直接将解析结果上传至主机;如果解析结果中的数据经过加密,则执行使用本地的传输层安全协议对解析结果进行处理的步骤。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:传输层安全协议层对解析结果进行处理,得到处理结果;将处理结果进行仲裁,并发送至对应的算法加速单元进行加解密处理,得到解密结果。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断扩展装置中是否存在tcp卸载引擎(toe);如果存在,则使用tcp卸载引擎(toe)执行网络协议处理单元(例如,tcp/ip处理单元)的硬件加速处理,并将数据报文存储到处理器的内存区。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:扩展装置的处理器判断解析结果是否需要发给传输层安全协议的安全套接层进行处理;如果需要,则使用传输层安全协议的安全套接层处理解析结果;如果不需要,则旁路到主机中处理解析结果。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行加解密数据,如果加解密结果满足预定条件,则上传至主机。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在使用传输层安全协议的安全套接层处理解析结果的过程中,tcp卸载引擎通过调用驱动程序来使用传输层加密装置进行解密数据,并根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:如果不存在,则将数据报文存储到处理器的内存区,或旁路给主机进行处理。

可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:处理器对数据报文进行协议栈处理;如果需要执行tls卸载,则发给安全套接层(ssl)进行解密处理,并调用传输层安全协议来完成硬件加速。

可选的,上述处理器还可以执行如下步骤的程序代码:如果不需要执行tls卸载,根据解密结果的类型和目的地址,将解密结果上传至处理器上的应用程序,或通过主机总线上传至主机。

实施例8

本申请的实施例还提供了一种算法的卸载系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:

扩展装置根据主机调用的接口,启动本地的传输层安全协议来处理任务;

在传输层安全协议处理任务之后,扩展装置使用网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行封装;

扩展装置内部署的网络控制器外发封装后的数据报文。

由上可知,在本申请上述实施例中,服务器主机向web浏览器发送数据的过程中,通过扩展装置根据主机调用的接口,启动本地的传输层安全协议(tls/ssl)来处理主机发送数据的相关任务,并在传输层安全协议(tls/ssl)处理相关任务之后,使用扩展装置内部的网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行tcp/ip封装,最后通过扩展装置内部署的网络控制器外发封装后的数据报文,达到了使得扩展卡完成了tls/ssl协议层之下的几乎全部流程的目的,从而实现了减少主机上的计算压力、有更多的计算资源提供给应用程序使用,同时扩展卡上通过并行计算核心等方式保证了安全网络协议中的延时和吞吐量的技术效果,进而解决了现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的技术问题。

实施例9

本申请的实施例还提供了一种算法的卸载系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:

扩展装置接收数据报文,并使用本地的网络控制器将数据报文传输至网络协议处理单元(例如,tcp/ip处理单元)进行解析;扩展装置使用本地的传输层安全协议对解析结果进行处理;扩展装置将处理结果上传到主机。

由上可知,在本申请上述实施例中,服务器主机接收来自web浏览器发送数据的过程中,通过扩展装置接收数据报文,并使用扩展装置内部的网络协议处理单元(例如,tcp/ip处理单元)将处理结果作为数据报文进行tcp/ip解析,得到解析结果,使用扩展装置本地的传输层安全协议(tls/ssl)来处理解析结果,并将处理后的结果上传上至主机(即服务器主机),达到了使得扩展卡完成了tls/ssl协议层之下的几乎全部流程的目的,从而实现了减少主机上的计算压力、有更多的计算资源提供给应用程序使用,同时扩展卡上通过并行计算核心等方式保证了安全网络协议中的延时和吞吐量的技术效果,进而解决了现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的技术问题。

实施例10

根据本申请实施例,还提供了一种用于实现上述实施例2和3中算法的卸载方法的集成芯片实施例,图14是根据本申请实施例的一种集成芯片示意图,如图14所示,该集成芯片包括:

其中,扩展接口141,用于与主机连接,其中,主机用于提供应用程序;

传输层安全协议处理单元143,用于根据主机调用的接口处理任务;

网络协议处理单元145,与传输层安全协议处理单元通信,用于数据报文进行封装或解析;

网络控制器147,用于发送或接收数据报文。

需要说明的是,本实施例提供的集成芯片可以通过嵌入式的方式安装在服务器主机上,也可以通过各种总线接口(例如,pcie接口)与服务器主机连接。

由上可知,在本申请上述实施例中,通过扩展接口141与服务器主机连接,当服务器主机向web浏览器发送数据的过程中,通过传输层安全协议处理单元143根据主机调用的接口,来处理主机发送数据的相关任务,并在传输层安全协议(tls/ssl)处理相关任务之后,使用网络协议处理单元145将处理结果作为数据报文进行协议封装(例如tcp/ip封装),最后通过网络控制器147外发封装后的数据报文;当服务器主机接收来自web浏览器数据的过程中,通过网络控制器147接收数据报文,并通过网络协议处理单元145对接收到的数据报文进行解析,使用传输层安全协议处理单元143来处理解析结果,并将处理后的结果通过扩展接口141上传上至主机(即服务器主机)达到了使得扩展卡完成了tls/ssl协议层之下的几乎全部流程的目的,从而实现了减少主机上的计算压力、有更多的计算资源提供给应用程序使用,同时扩展卡上通过并行计算核心等方式保证了安全网络协议中的延时和吞吐量的技术效果,进而解决了现有技术采用局部硬件卸载的方案导致服务器主机的资源占用仍旧比较大的技术问题。

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

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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