一种网卡、数据发送/接收方法及设备与流程

文档序号:18543299发布日期:2019-08-27 21:26阅读:549来源:国知局
一种网卡、数据发送/接收方法及设备与流程

本说明书涉及计算机技术领域,尤其涉及一种网卡、数据发送/接收方法及设备。



背景技术:

在电子通信领域,为了提高通信网络数据传输效率以及安全性,较为常用的技术方案是对通讯网络上传输的数据进行压缩以及加密。上述技术方案的实施需要通信数据发送方以及接收方具备相应的压缩/加密以及解压缩/解密能力。由于无论是压缩/加密操作还是解压缩/解密操作都需要消耗相当的数据处理资源,因此采用上述技术手段大大增加了通信数据发送方以及接收方的主机cpu的数据处理压力。

在现有技术中,为了在确保通信网络数据传输效率以及安全性的基础上降低通信数据发送方以及接收方的主机cpu的数据处理压力,采用的技术手段之一是为主机接入独立的压缩/加密以及解压缩/解密设备,例如专用与压缩/解压缩、加/解密的加速卡。当主机需要进行压缩/加密或解压缩/解密操作时,将待处理数据发送到对应的加速卡中,直接获取压缩/加密以及解压缩/解密结果数据,从而避免压缩/加密操作以及解压缩/解密操作的主机cpu处理资源消耗。

然而,在上述操作的应用场景中,虽然主机cpu本来用于压缩/加密操作以及解压缩/解密操作的数据处理资源消耗被转移到了加速卡上。但是相应的,主机cpu需要增加与加速卡进行数据交互的通信资源消耗,这就抵消了一部分的加速卡加速收益。尤其的,在单次通信数据传输长度与通信数据传输频率比值低于特定阈值时,主机cpu与加速卡进行数据交互的通信资源消耗甚至要大于被转移到加速卡上的数据处理资源消耗,这就使得加速卡的设置变得没有意义。



技术实现要素:

有鉴于此,本说明书实施例提供了一种网卡、数据发送/接收方法及设备,用于解决现有技术中通讯数据压缩/解压缩和/或加密/解密过程中对主机cpu的资源占用问题。

本说明书实施例采用下述技术方案:

本说明书实施例提供一种网卡,包括:

主机接口,用于连接主机,接收来自所述主机的待发送数据;

数据发送模块,其连接到所述主机接口以及所述网卡外部的第一数据处理模块,用于将所述待发送数据发送到所述第一数据处理模块,接收来自所述第一数据处理模块的第一处理结果数据,所述第一处理结果数据为所述第一数据处理模块压缩和/或加密所述待发送数据而生成的;

网络接口,用于连接数据接收方,发送所述第一处理结果数据到所述数据接收方。

在本说明书一实施例中,所述数据发送模块包括:

通讯数据处理单元,其连接到所述第一数据处理模块,用于接收并转发所述待发送数据以及所述第一处理结果数据;

协议栈,其连接到所述通讯数据处理单元、所述主机接口以及所述网络接口,用于分别通过所述主机接口以及所述网络接口分别建立与所述主机以及所述数据接收方之间的通讯连接并在通讯连接建立后在所述通讯数据处理单元与所述主机接口以及所述网络接口间进行数据转发。

在本说明书一实施例中,所述通讯数据处理单元包括:

外部代理单元,用于通过所述协议栈接收来自所述主机接口的待发送数据,将所述待发送数据发送到所述第一数据处理模块,接收来自所述第一数据处理模块的第一处理结果数据并输出;

主机代理单元,用于接收来自所述外部代理单元的第一处理结果数据,将所述第一处理结果数据通过所述协议栈发送到所述网络接口。

本说明书实施例还提出了一种网卡,所述网卡包括:如本说明书实施例所述的主机接口、数据发送模块、网络接口以及第一数据处理模块。

本说明书实施例还提出了一种网卡,包括:

网络接口,用于连接数据发送方,接收来自所述数据发送方的待接收数据;

数据接收模块,其连接到所述网卡外部的第二数据处理模块,用于将所述待接收数据发送到所述第二数据处理模块,接收来自所述第二数据处理模块的第二处理结果数据,所述第二处理结果数据为所述第二数据处理模块解压缩和/或解密所述待接收数据而生成的;

主机接口,用于连接主机,发送所述第二处理结果数据到所述主机。

在本说明书一实施例中,所述数据接收模块包括:

通讯数据处理单元,其连接到所述第二数据处理模块,用于接收并转发所述待接收数据以及所述第二处理结果数据;

协议栈,其连接到所述通讯数据处理单元、所述主机接口以及所述网络接口,用于分别通过所述主机接口以及所述网络接口分别建立与所述主机以及所述数据发送方之间的通讯连接并在通讯连接建立后在所述通讯数据处理单元与所述主机接口以及所述网络接口间进行数据转发。

在本说明书一实施例中,所述通讯数据处理单元包括:

主机代理单元,用于通过所述协议栈接收来自所述网络接口的待接收数据,将所述待接收数据发送到所述第二数据处理模块,接收来自所述第二数据处理模块的第二处理结果数据并输出;

外部代理单元,用于接收来自所述主机代理单元的第二处理结果数据,将所述第二处理结果数据通过所述协议栈发送到所述主机接口。

本说明书实施例还提出了一种网卡,包括:如本说明书实施例所述的主机接口、数据接收模块、网络接口以及第二数据处理模块。

本说明书实施例还提供一种数据发送方法,包括:

接收来自所述主机的待发送数据;

将所述待发送数据发送到第一数据处理模块;

接收来自所述第一数据处理模块的第一处理结果数据,所述第一处理结果数据为所述第一数据处理模块压缩和/或加密所述待发送数据而生成的;

发送所述第一处理结果数据到数据接收方。

本说明书实施例还提供一种数据接收方法,包括:

接收来自数据发送方的待接收数据;

将所述待接收数据发送到第二数据处理模块;

接收来自所述第二数据处理模块的第二处理结果数据,所述第二处理结果数据为所述第二数据处理模块解压缩和/或解密所述待接收数据而生成的;

将所述第二处理结果数据发送到主机。

本申请还提出了一种用于在用户设备端信息处理的设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备执行本说明书实施例所述的方法。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:根据本说明书实施例的技术方案,在通信过程中,即不需要主机cpu自行进行通信数据压缩/解压缩以及加/解密操作,也不需要主机cpu与进行通信数据压缩/解压缩和/或加/解密的硬件模块进行数据交互,从而释放了用于通信数据压缩/解压缩以及加/解密操作的主机cpu资源,节省了系统开销,进而最终提升了系统数据吞吐率。

附图说明

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

图1为现有技术的通信系统结构示意图;

图2~图10为本说明书实施例中网卡结构示意图;

图11以及图12为本说明书实施例中应用程序的运行方法的流程图。

具体实施方式

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

在现有技术中,为了在确保通信网络数据传输效率以及安全性的基础上降低通信数据发送方以及接收方的主机cpu的数据处理压力,采用的技术手段之一是为主机接入独立的压缩/加密以及解压缩/解密设备,例如专用与压缩/解压缩、加/解密的加速卡。当主机需要进行压缩/加密或解压缩/解密操作时,将待处理数据发送到对应的加速卡中,直接获取压缩/加密以及解压缩/解密结果数据,从而避免压缩/加密操作以及解压缩/解密操作的主机cpu处理资源消耗。

如图1所示,在一应用场景中,主机100连接到加速卡110以及网卡120。网卡120接入外部通信网络。当主机100需要通过外部通信网络发送数据时,其首先将待发送数据发送到加速卡110;然后加速卡110对待发送数据进行压缩和/或加密处理,将处理结果(第一处理结果数据)反馈给主机100;主机100接收到加速卡110反馈的第一处理结果数据后将第一处理结果数据通过网卡120发送到外部通信网络。同样的,当主机100通过网卡120接收到外部通信网络传输来的待接收数据时,其首先将待接收数据发送到加速卡100,加速卡110对待接收数据进行解压缩和/或解密处理,将处理结果(第二处理结果数据)反馈给主机100;主机100接收到加速卡110反馈的第二处理结果数据后再进行下一步的数据处理操作,完成数据接收。

在上述操作的应用场景中,虽然主机100的cpu本来用于压缩/加密操作以及解压缩/解密操作的数据处理资源消耗被转移到了加速卡110上。但是相应的,主机100cpu需要增加与加速卡110进行数据交互的通信资源消耗,这就抵消了一部分的加速卡加速收益。尤其的,在单次通信数据传输长度与通信数据传输频率比值低于特定阈值时,主机cpu与加速卡进行数据交互的通信资源消耗甚至要大于被转移到加速卡上的数据处理资源消耗,这就使得加速卡的设置变得没有意义。

针对上述问题,本说明书实施例提出了一种新的通信硬件架构,在该通信硬件架构中,主机cpu并不需要访问用于压缩/加密操作和/或解压缩/解密操作的硬件模块,而是直接访问用于网络通信的硬件模块(例如网卡),对用于压缩/加密操作和/或解压缩/解密操作的硬件模块的访问交与用于网络通信的硬件模块来完成。这相当于将与加速卡进行数据交互的通信资源消耗转移到用于网络通信的硬件模块上。这大大节省了主机系统开销,从而提升了系统数据吞吐率。

根据本说明书实施例的技术方案,在通信过程中,即不需要主机cpu自行进行通信数据压缩/解压缩以及加/解密操作,也不需要主机cpu与进行通信数据压缩/解压缩和/或加/解密的硬件模块进行数据交互,从而释放了用于通信数据压缩/解压缩以及加/解密操作的主机cpu资源,节省了系统开销,进而最终提升了系统数据吞吐率。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

具体的,在本说明书一实施例中,提出了一种网卡。具体的,如图2所示,在一实施例中,网卡包括:

主机接口201,用于连接主机200,接收来自主机200的待发送数据;

数据发送模块210,其连接到网卡外部的数据处理模块220,用于从主机接口201处获取来自主机200的待发送数据,将待发送数据发送到数据处理模块220;接收来自数据处理模块220的处理结果数据,该处理结果数据为数据处理模块220压缩和/或加密待发送数据而生成的;

网络接口202,用于连接数据接收方,发送数据发送模块210转发的处理结果数据到数据接收方。

具体的,在本说明书一实施例中,在实际应用场景中,网络接口202可以直联到数据接收方,也可以连接到通信网络,通过通信网络连接到数据接收方。

进一步的,在本说明书一实施例中,如图3所示,数据发送模块310包括:

通讯数据处理单元311,其连接到数据处理模块320,用于接收并转发来自主机300的待发送数据以及数据处理模块320生成的处理结果数据;

协议栈312,其连接到通讯数据处理单元311、主机接口301以及网络接口302,用于分别通过主机接口301以及网络接口302分别建立通讯数据处理单元311与主机300以及数据接收方之间的通讯连接并在通讯连接建立后在通讯数据处理单元311与主机接口301以及网络接口302间进行数据转发。

进一步的,在本说明书一实施例中,数据发送模块的协议栈为tcp/ip协议栈。

具体的,在本说明书一实施例中,在一应用场景中,协议栈312首先分别基于主机接口301以及网络接口302建立通讯数据处理单元311与主机300以及数据接收方的通信连接;主机300将待发送数据通过主机接口301发送到协议栈312;协议栈312发送待发送数据到通讯数据处理单元311;通讯数据处理单元311发送待发送数据到数据处理模块320;数据处理模块320压缩和/或加密待发送数据后将生成的处理结果数据返回给通讯数据处理单元311;通讯数据处理单元311将处理结果数据发送到协议栈312;协议栈312通过网络接口302将处理结果数据发送给数据接收方。

进一步的,在本说明书一实施例中,如图4所示,通讯数据处理单元411包括:

外部代理单元413,其用于通过协议栈412接收来自主机接口401的待发送数据,将待发送数据发送到数据处理模块420,接收来自数据处理模块420的处理结果数据并输出;

主机代理单元414,其用于接收来自外部代理单元413的处理结果数据,将处理结果数据通过协议栈412发送到网络接口402。

具体的,在本说明书一实施例中,在一应用场景中,协议栈412首先分别基于主机接口401以及网络接口402建立外部代理单元413与主机400间以及主机代理单元414与数据接收方间的通信连接;主机400将待发送数据通过主机接口401发送到协议栈412;协议栈412发送待发送数据到外部代理单元413;外部代理单元413发送待发送数据到数据处理模块420;数据处理模块420压缩和/或加密待发送数据后将生成的处理结果数据返回给外部代理单元413;外部代理单元413将处理结果数据发送到主机代理单元414;主机代理单元414将处理结果数据发送到协议栈412;协议栈412通过网络接口402将处理结果数据发送给数据接收方。

进一步的,在本说明书一实施例中,还提出了一种网卡。具体的,该网卡包括:本说明书实施例提出的主机接口、数据发送模块、网络接口以及连接到数据发送模块的、用于压缩和/或加密待发送数据的数据处理模块。

进一步的,在本说明书一实施例中,利用具有灵活可编程能力的网络接口卡(智能网卡)实现本说明书实施例提出的网卡,基于网络接口卡的处理模块构造用于压缩和/或加密待发送数据的数据处理模块。这样,就可以通过网络接口卡内部数据通信实现数据发送模块与用于压缩和/或加密待发送数据的数据处理模块间的数据交互,从而大大提高数据发送系统的数据吞吐效率。

具体的,在本说明书一实施例中,根据数据发送的压缩和/或加密需求确定压缩和/或加密算法;根据本说明书实施中数据发送模块数据传输逻辑编辑可调用压缩和/或加密算法的程序代码;在智能网卡的可编程芯片中写入编辑好的程序代码以及压缩和/或加密算法。使得智能网卡可以运行写入的程序代码,实现:接收待发送数据;调用写入的压缩和/或加密算法对待发送数据进行压缩和/或加密,生成处理结果数据;输出处理结果数据。

进一步的,在本说明书一实施例中,还提出了一种网卡。具体的,如图5所示,在一实施例中,网卡包括:

网络接口502,用于连接数据发送方,接收来自数据发送方的待接收数据;

数据接收模块510,其连接到网卡外部的数据处理模块520,用于从网络接口502处获取来自数据发送方的待接收数据,将待接收数据发送到数据处理模块520,接收来自数据处理模块520的处理结果数据,该处理结果数据为数据处理模块520解压缩和/或解密待接收数据而生成的;

主机接口501,用于连接主机,发送数据接收模块510转发的处理结果数据到主机500。

具体的,在本说明书一实施例中,在实际应用场景中,网络接口502可以直联到数据发送方,也可以连接到通信网络,通过通信网络连接到数据发送方。

进一步的,在本说明书一实施例中,如图6所示,数据接收模块610包括:

通讯数据处理单元611,其连接到数据处理模块620,用于接收并转发来自数据发送方的待接收数据以及数据处理模块620生成的处理结果数据;

协议栈612,其连接到通讯数据处理单元611、主机接口601以及网络接口602,用于分别通过主机接口601以及网络接口602分别建立与主机600以及数据发送方之间的通讯连接并在通讯连接建立后在通讯数据处理单元611与主机接口601以及网络接口602间进行数据转发。

进一步的,在本说明书一实施例中,数据接收模块的协议栈为tcp/ip协议栈。

具体的,在本说明书一实施例中,在一应用场景中,协议栈612首先分别基于主机接口601以及网络接口602建立通讯数据处理单元611与主机600以及数据发送方的通信连接;数据发送方将待接收数据通过网络接口602发送到协议栈612;协议栈612发送待接收数据到通讯数据处理单元611;通讯数据处理单元611发送待接收数据到数据处理模块620;数据处理模块620解压缩和/或解密待发送数据后将生成的处理结果数据返回给通讯数据处理单元611;通讯数据处理单元611将处理结果数据发送到协议栈612;协议栈612通过主机接口601将处理结果数据发送给主机600。

进一步的,在本说明书一实施例中,如图7所示,通讯数据处理单元711包括:

主机代理单元714,其用于通过协议栈712接收来自网络接口702的待接收数据,将来自网络接口702的待接收数据发送到数据处理模块720,接收来自数据处理模块720的处理结果数据并输出;

外部代理单元713,其用于接收来自主机代理单元714的处理结果数据,将处理结果数据通过协议栈712发送到主机接口701。

具体的,在本说明书一实施例中,在一应用场景中,协议栈712首先分别基于主机接口701以及网络接口702建立外部代理单元713与主机700间以及主机代理单元714与数据发送方间的通信连接;数据发送方将待接收数据通过网络接口702发送到协议栈712;协议栈712发送待接收数据到主机代理单元714;主机代理单元714发送待接收数据到数据处理模块720;数据处理模块720解压缩和/或解密待发送数据后将生成的处理结果数据返回给主机代理单元714;主机代理单元714发送处理结果数据到外部代理单元713;外部代理单元713将处理结果数据发送到协议栈712;协议栈712通过主机接口701将处理结果数据发送给主机700。

进一步的,在本说明书一实施例中,还提出了一种网卡。具体的,该系统包括:本说明书实施例提出的主机接口、数据接收模块、网络接口以及连接到数据接收模块的、用于解压缩和/或解密待发送数据的数据处理模块。

具体的,在本说明书一实施例中,利用具有灵活可编程能力的网络接口卡(智能网卡)实现本说明书实施例提出的网卡,基于网络接口卡的处理模块构造用于解压缩和/或解密待发送数据的数据处理模块。这样,就可以通过网络接口卡内部数据通信实现数据接收模块与用于解压缩和/或解密待发送数据的数据处理模块间的数据交互,从而大大提高数据接收系统的数据吞吐效率。

具体的,在本说明书一实施例中,根据数据接收的解压缩和/或解密需求确定解压缩和/或解密算法;根据本说明书实施中数据接收模块数据传输逻辑编辑可调用解压缩和/或解密算法的程序代码;在智能网卡的可编程芯片中写入编辑好的程序代码以及解压缩和/或解密算法。使得智能网卡可以运行写入的程序代码,实现:接收待接收数据;调用写入的解压缩和/或解密算法对待接收数据进行解压缩和/或解密,生成处理结果数据;输出处理结果数据。

进一步的,在本说明书一实施例中,还提出了一种网卡。具体的,如图8所示,在一实施例中,网卡包括:

用于连接主机的主机接口801以及用于连接数据接收方的网络接口802;

数据收发模块810,其连接到装置外部的数据处理模块821以及数据处理模块822,其具备本说明书实施例所述的数据接收模块以及数据发送模块的功能,具体的,数据收发模块810用于:

通过网络接口802接收来自数据发送方的待接收数据;

将来自数据发送方的待接收数据发送到数据处理模块821;

接收来自数据处理模块821的第一处理结果数据,该第一处理结果数据为数据处理模块821解压缩和/或解密待接收数据而生成的;

通过主机接口801发送第一处理结果数据到主机800;

通过主机接口801接收来自主机800的待发送数据;

将来自主机800的待发送数据发送到数据处理模块822;

接收来自数据处理模块822的第二处理结果数据,该第二处理结果数据为数据处理模块822压缩和/或加密待发送数据而生成的;

通过网络接口802发送第二处理结果数据到数据接收方。

具体的,在本说明书一实施例中,在实际应用场景中,网络接口可以直联到数据发送方和/或数据接收方,也可以连接到通信网络,通过通信网络连接到数据发送方和/或数据接收方。

进一步的,在本说明书一实施例中,如图9所示,数据收发模块910包括:

通讯数据处理单元911,其连接到数据处理模块921以及数据处理模块922,用于接收并转发来自数据发送方的待接收数据、来自主机900的待发送数据、数据处理模块921生成的第一处理结果数据以及数据处理模块922生成的第二处理结果数据;

协议栈912,其连接到通讯数据处理单元911、主机接口901以及网络接口902,用于分别通过主机接口901以及网络接口902分别建立通讯数据处理单元911与主机900、数据发送方以及数据接收方之间的通讯连接并在通讯连接建立后在通讯数据处理单元911与主机接口901以及网络接口902间进行数据转发。

进一步的,在本说明书一实施例中,数据收发模块的协议栈为tcp/ip协议栈。

具体的,在本说明书一实施例中,在一应用场景中,在数据接收过程中:协议栈912首先分别基于主机接口901以及网络接口902建立通讯数据处理单元911与主机900以及数据发送方的通信连接;数据发送方将待接收数据通过网络接口902发送到协议栈912;协议栈912发送待接收数据到通讯数据处理单元911;通讯数据处理单元911发送待接收数据到数据处理模块921;数据处理模块921解压缩和/或解密待发送数据后将生成的第一处理结果数据返回给通讯数据处理单元911;通讯数据处理单元911将第一处理结果数据发送到协议栈912;协议栈912通过主机接口901将处理结果数据发送给主机900。

在数据发送过程中:协议栈912首先分别基于主机接口901以及网络接口902建立通讯数据处理单元911与主机900以及数据接收方的通信连接;主机900将待发送数据通过主机接口901发送到协议栈912;协议栈912发送待发送数据到通讯数据处理单元911;通讯数据处理单元911发送待发送数据到数据处理模块922;数据处理模块922压缩和/或加密待发送数据后将生成的第二处理结果数据返回给通讯数据处理单元911;通讯数据处理单元911将第二处理结果数据发送到协议栈912;协议栈912通过网络接口902将第二处理结果数据发送给数据接收方。

进一步的,在本说明书一实施例中,如图10所示,通讯数据处理单元1011包括外部代理单元1013以及主机代理单元1014:

主机代理单元1014用于通过协议栈1012接收来自网络接口1002的待接收数据,将来自网络接口1002的待接收数据发送到数据处理模块1021,接收来自数据处理模块1021的第一处理结果数据并输出;

外部代理单元1013,其用于接收来自主机代理单元1014的第一处理结果数据,将第一处理结果数据通过协议栈1012发送到主机接口1001;

外部代理单元1013还用于通过协议栈1012接收来自主机接口1001的待发送数据,将待发送数据发送到数据处理模块1022,接收来自数据处理模块1022的第二处理结果数据并输出;

主机代理单元1014还用于接收来自外部代理单元1013的第二处理结果数据,将第二处理结果数据通过协议栈1012发送到网络接口1002。

具体的,在本说明书一实施例中,在一应用场景中,在数据接收过程中:

协议栈1012首先分别基于主机接口1001以及网络接口1002建立外部代理单元1013与主机1000间以及主机代理单元1014与数据发送方间的通信连接;数据发送方将待接收数据通过网络接口1002发送到协议栈1012;协议栈1012发送待接收数据到主机代理单元1014;主机代理单元1014发送待接收数据到数据处理模块1021;数据处理模块1021解压缩和/或解密待发送数据后将生成的第一处理结果数据返回给主机代理单元1014;主机代理单元1014发送第一处理结果数据到外部代理单元1013;外部代理单元1013将第一处理结果数据发送到协议栈1012;协议栈1012通过主机接口1001将第一处理结果数据发送给主机1000。

在数据发送过程中:协议栈1012首先分别基于主机接口1001以及网络接口1002建立外部代理单元1013与主机1000间以及主机代理单元1014与数据接收方间的通信连接;主机1000将待发送数据通过主机接口1001发送到协议栈1012;协议栈1012发送待发送数据到外部代理单元1013;外部代理单元1013发送待发送数据到数据处理模块1022;数据处理模块1022压缩和/或加密待发送数据后将生成的第二处理结果数据返回给外部代理单元1013;外部代理单元813将第二处理结果数据发送到主机代理单元1014;主机代理单元1014将第二处理结果数据发送到协议栈1012;协议栈1012通过网络接口1002将第二处理结果数据发送给数据接收方。

进一步的,在本说明书一实施例中,还提出了一种网卡。具体的,该网卡包括:

本说明书实施例提出的主机接口、网络接口、数据收发模块;

连接到数据收发模块的、用于解压缩和/或解密待发送数据的第一数据处理模块;

连接到数据收发模块的、用于压缩和/或加密待发送数据的第二数据处理模块。

具体的,在本说明书一实施例中,用于解压缩和/或解密待发送数据的第一数据处理模块以及用于压缩和/或加密待发送数据的第二数据处理模块为同一计算模块。进一步的,在本说明书一实施例中,用于解压缩和/或解密待发送数据的第一数据处理模块以及用于压缩和/或加密待发送数据的第二数据处理模块为一块硬件加速卡。

具体的,在本说明书一实施例中,利用具有灵活可编程能力的网络接口卡(智能网卡)实现本说明书实施例提出的网卡,基于网络接口卡的处理模块构造用于解压缩和/或解密待发送数据的第一数据处理模块以及用于压缩和/或加密待发送数据的第二数据处理模块。这样,就可以通过网络接口卡内部数据通信实现数据收发模块与用于解压缩和/或解密待发送数据的第一数据处理模块以及用于压缩和/或加密待发送数据的第二数据处理模块间的数据交互,从而大大提高数据接收系统的数据吞吐效率。

具体的,在本说明书一实施例中,根据数据收发的压缩和/或加密、解压缩和/或解密需求确定压缩和/或加密、解压缩和/或解密算法;根据本说明书实施中数据收发模块数据传输逻辑编辑可调用压缩和/或加密、解压缩和/或解密算法的程序代码;在智能网卡的可编程芯片中写入编辑好的程序代码以及压缩和/或加密、解压缩和/或解密算法。使得智能网卡可以运行写入的程序代码,实现:接收待接收数据;调用写入的解压缩和/或解密算法对待接收数据进行解压缩和/或解密,生成针对待接收数据的处理结果数据;输出针对待接收数据的处理结果数据;接收待发送数据;调用写入的压缩和/或加密算法对待发送数据进行压缩和/或加密,生成针对待发送数据的处理结果数据;输出针对待发送数据的处理结果数据。

进一步的,在本说明书一实施例中,还提出了一种数据发送方法。具体的,如图11所示,在本说明书一实施例中,数据发送方法流程包括:

s111,接收来自主机的待发送数据;

s112,将待发送数据发送到数据处理模块;

s113,接收来自数据处理模块的处理结果数据,该处理结果数据为数据处理模块压缩和/或加密待发送数据而生成的;

s114,发送处理结果数据到数据接收方。

进一步的,在本说明书一实施例中,还提出了一种数据接收方法。具体的,如图12所示,在本说明书一实施例中,数据接收方法流程包括:

s121,接收来自数据发送方的待接收数据;

s122,将待接收数据发送到数据处理模块;

s123,接收来自数据处理模块的处理结果数据,该处理结果数据为数据处理模块解压缩和/或解密待接收数据而生成的;

s124,将处理结果数据发送到主机。

进一步的,基于本发明的方法,本发明还提出了一种用于在用户设备端信息处理的设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备执行本发明所述的方法。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

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

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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