CN115883458A - 一种数据传输方法、系统、设备及存储介质 - Google Patents
一种数据传输方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115883458A CN115883458A CN202111146474.3A CN202111146474A CN115883458A CN 115883458 A CN115883458 A CN 115883458A CN 202111146474 A CN202111146474 A CN 202111146474A CN 115883458 A CN115883458 A CN 115883458A
- Authority
- CN
- China
- Prior art keywords
- data
- network
- instruction information
- network card
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种数据传输方法、系统、设备及存储介质。在本申请实施例中,处理器可响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据;将所述原始数据传递至本机的网卡;在所述网卡中,按照所述原始数据对应的加速指令信息对所述原始数据进行加速处理,以获得处理后数据;利用所述网卡将所述处理后数据发送至通信目的端。据此,本申请实施例中,可将原本需要由处理器执行的数据处理工作,卸载到本机的网卡中,这样,可实现在网络传输过程中对数据实施所需的处理和计算,从而卸载处理器上的相应工作开销,提高处理器的利用率,进而减少数据处理导致的传输时延,实现加速传输。
Description
技术领域
本申请涉及网络通信技术领域,尤其涉及一种数据传输方法、系统、设备及存储介质。
背景技术
在远程直接内存访问RDMA(Remote Direct Memory Access)网络中,对于分布式应用来说,运行在不同计算节点上的进程之间需要频繁地进行网络数据交换。目前,网络数据交换需要依赖CPU来进行数据处理,这对CPU造成了沉重的负担,影响CPU的利用率,进而导致网络数据交换的效率不佳。
发明内容
本申请的多个方面提供一种数据传输方法、系统、设备及存储介质,用以在改善RDMA网络中的数据传输速率。
本申请实施例提供一种数据传输方法,包括:
响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据,其中,所述数据传输请求中包含加速指令信息;
将所述原始数据和所述加速指令信息传递至本机的网卡;
在所述网卡中,按照所述加速指令信息对所述原始数据进行加速处理,以获得处理后数据;
利用所述网卡将所述处理后数据发送至通信目的端。
本申请实施例还提供一种通信端,包括处理器和网卡;
所述处理器,用于响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据,其中,所述数据传输请求中包含加速指令信息;将所述原始数据和所述加速指令信息传递至本机的网卡;
所述网卡,用于按照所述加速指令信息对所述原始数据进行加速处理,以获得处理后数据;将所述处理后数据发送至通信目的端。
本申请实施例还提供一种数据传输系统,包括第一通信端和第二通信端,所述第一通信端中包含第一处理器和第一网卡,所述第二通信端中包含第二处理器和第二网卡;
所述第一处理器,用于响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据,所述数据传输请求中包含加速指令信息;将所述原始数据和所述加速指令信息传递至所述第一网卡;
所述第一网卡,用于按照所述加速指令信息对所述原始数据进行加速处理,已获得处理后数据;将所述处理后数据发送至所述第二网卡;
所述第二网卡,用于对所述处理后数据进行加速处理后,写入所述第二通信端的内存。
本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的数据传输方法。
在本申请实施例中,处理器可响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据;将所述原始数据传递至本机的网卡;在所述网卡中,按照所述原始数据对应的加速指令信息对所述原始数据进行加速处理,以获得处理后数据;利用所述网卡将所述处理后数据发送至通信目的端。据此,本申请实施例中,可将原本需要由处理器执行的数据处理工作,卸载到本机的网卡中,这样,可实现在网络传输过程中对数据实施所需的处理和计算,从而卸载处理器上的相应工作开销,提高处理器的利用率,进而减少数据处理导致的传输时延,实现加速传输。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的一种数据传输系统的结构示意图;
图2为本申请一示例性实施例提供的一种示例性传输方案逻辑示意图;
图3为本申请另一示例性实施例提供的一种数据传输方法的流程示意图;
图4为本申请又一示例性实施例提供的一种通信端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在RDMA网络中,网络数据交换需要依赖CPU来进行数据处理,导致网络数据交换的效率不佳。为此,本申请的一些实施例中:处理器可响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据;将所述原始数据传递至本机的网卡;在所述网卡中,按照所述原始数据对应的加速指令信息对所述原始数据进行加速处理,以获得处理后数据;利用所述网卡将所述处理后数据发送至通信目的端。据此,本申请实施例中,可将原本需要由处理器执行的数据处理工作,卸载到本机的网卡中,这样,可实现在网络传输过程中对数据实施所需的处理和计算,从而卸载处理器上的相应工作开销,提高处理器的利用率,进而减少数据处理导致的传输时延,实现加速传输。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的数据传输系统的结构示意图。如图1所示,该系统可包括:第一通信端10和第二通信端20,其中,第一通信端10中包含第一处理器11和第一网卡12,第二通信端20中包含第二处理器21和第二网卡22。
基于此,第一处理器11,可用于响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据,数据传输请求中包含加速指令信息;将原始数据和加速指令信息传递至第一网卡12;
第一网卡12,可用于按照加速指令信息对原始数据进行加速处理,以获得处理后数据;将处理后数据发送至第二网卡22;
第二网卡22,可用于对处理后数据进行加速处理后,写入第二通信端20的内存。
在上述数据传输过程中,第一通信端10作为发送端,第二通信端20作为接收端。应用程序可以是RDMA网络中任意的分布式应用。本实施例提供的数据传输方案可适用于RDMA网络对应的各种应用场景中,例如、云计算场景等,本实施例对应用场景不做限定。另外,本实施例对第一通信端10和第二通信端20的物理实现形式不做限定,例如,在云计算场景中,本实施例中的第一通信端10和第二通信端20可以是云网络中的计算节点、云服务器等。
参考图1,应用程序的进程可分布在第一通信端10和第二通信端20上。本实施例中,在应用层,应用程序可发起数据传输请求,这样,第一处理器11可从内存中提取所需传输的原始数据,并以消息message为单位,将原始数据传递至第一网卡12。其中,原始数据是相对于后文中的处理后数据而言的,该描述并不限定数据的状态,原始数据可以是应用程序产出的最初始数据,当然也可以是已经经历了第一处理器11的一些处理和计算后产生的数据。
本实施例中,可在第一网卡12和第二网卡22中部署加速算子,加速算子用于执行加速处理工作。对第一网卡12来说,在接收到第一处理器11传递的原始数据后,可利用其上部署的加速算子对原始数据进行加速处理。其中,本实施例中,可在第一网卡12上按需部署加速算子,以支持不同应用场景的加速需求,另外,第一网卡12上部署的加速算子的类型可以是一种或多种。加速算子可包括但不限于加解密算子、视频编解码算子、包检测算子等。
在对原始数据进行加速处理之前,本实施例中,可确定原始数据对应的加速指令信息。其中,加速指令信息包括处理动作和动作参数;处理动作可包括加解密、视频编/解码和包检测中的一种或多种。举例来说,可在加速指令信息中指定先对原始数据执行视频编码动作、再对编码后数据执行加密动作。优选地,加速指令信息中的处理动作可选择那些无需再返回内存进行后续处理的处理动作,这可减少网卡与处理器之间的数据往返拷贝,因此,可获得更好的硬件加速效果。
本实施例中,可由应用程序将原始数据对应的加速指令信息配置在数据传输请求中,这样,对于第一处理器11来说,可从数据传输请求中解析加速指令信息;将加速指令信息发送至网卡。图2为本申请一示例性实施例提供的一种示例性传输方案逻辑示意图。参考图2,加速指令信息可作为第一网卡12的一项输入,而原始数据也作为第一网卡12的另一项输入。在此基础上,第一网卡12可按照加速指令信息对原始数据进行加速处理,以获得处理后数据;并将处理后数据发送至第二网卡22。其中,第一网卡12可以前述的message为单位对原始数据进行加速处理。继续参考图2,应用程序还可将通信地址信息(例如图中的源内存地址、目标内存地址、数据长度等)配置到数据传输请求,这可作为第一网卡12的又一项输入。另外,如果第一网卡12只不过的加速算子还需要应用程序给出其它元数据,第一处理器11还可将这些元数据放在第一网卡12对应的cache,以便第一网卡12使用。
综上,本实施例中,第一网卡12可调用其上部署的加速算子来执行加速指令信息中指定的处理动作,第一网卡12上部署的一个或多个加速算子可相互配合,完成对原始数据的加速处理,并产生处理后数据。其中,第一网卡12上部署的加速算子可位于网络传输通道上,也即是,对原始数据的加速处理过程和网络传输过程相互耦合。这样,在完成加速处理之后,第一网卡12可将处理后数据发送至第二通信端20上的第二网卡22。
图2为本申请一示例性实施例提供的一种示例性传输方案逻辑示意图。参考图2,对于第一网卡12来说,在将处理后数据发送至第二网卡22的过程中,若处理后数据的长度超过预设标准,则可对处理后数据进行分包,以产生至少一个网络数据包,并将至少一个网络数据包发送至第二网卡22。一种优选地分包方案可以是:基于第一通信端10与第二通信端20约定的数据粒度,对处理后数据进行分包。举例来说,若第一通信端10和第二通信端20约定的数据粒度为数据块,则在分包的过程中,可在单个网络数据包中封装整数个数据块,也即不对数据块进行破坏,这样,不同网络数据包之间相互独立。基于上文提及的,第一网卡12可以消息message为单位对原始数据进行处理,这保证了第一网卡12可获知原始数据的全貌,因此,可从全局上更加准确更加合理地完成分包工作。
在第一通信端10和第二通信端20未约定各自为应用程序提供的加速指令信息的情况下,第一网卡12可将原始数据对应的加速指令信息也发送至第二网卡22中,例如,可将原始数据对应的加速指令信息配置到处理后数据中以实现传递,这可保证第二网卡22能够顺利确定出自身应该对处理后数据执行何种加速处理。承接上述的分包发送的方式,这种情况下,参考图2,可将原始数据的加速指令信息(对应图2中的Action及参数1…N)配置到至少一个网络数据包中,这里,加速指令信息用于向第二通信端20提示已对网络数据包中的数据执行的处理操作。可选地,原始数据对应的加速指令信息可配置在网络数据包的包头中,当然,原始数据对应的加速指令信息在网络数据包中的配置位置并不限于此。而在第一通信端10和第二通信端20已约定各自为应用程序提供的加速指令信息的情况下,第一网卡12可无需将原始数据对应的加速指令信息发送至第二网卡22,第二网卡22按照约定采用默认的加速指令信息执行加速处理即可。也就是说,本申请实施例中,第一网卡12可将原始数据对应的加速指令信息作为可选项来提供给第二网卡22。
另外,如上文提及的,第一网卡12可以消息message为单位对原始数据进行处理,基于此,第一网卡12可为与原始数据对应的处理后数据配置消息message标识。承接上述的分包发送的方式,第一网卡12可分别为至少一个网络数据包配置包packet标识。第一网卡12还可为处理后数据配置目的内存地址、目的内存偏移等目的地址信息。基于此,本实施例中,第一网卡12可为至少一个网络数据包分别生成包属性信息,例如,参考图2,单个网络数据包的包属性信息中可包括message标识、对应的packet标识、目的内存地址和目的内存偏移中的一种或多种信息。这样,包属性信息用于向目的通信端提示网络数据包的标识信息、与其它网络数据包之间的关系信息和目的地址信息中的一种或多种信息。其中,message标识和包packet标识可用于提示网络数据包之间的关系,相同message标识的各个网络数据包隶属于应用程序的同一次数据传输请求下。第一网卡12可将包属性信息配置到网络数据包中,以将包属性信息传递至第二网卡22中。可选地,包属性信息可配置在网络数据包的包头中,也可作为负载配置在网络数据包的数据字段中,当然,包属性信息在网络数据包中的配置位置并不限于此。
对第二网卡22来说,在接收到第一网卡12提供的处理后数据后,可对处理后数据进行加速处理,以产生目的数据,并可将目的数据写入第二通信端20的内存。
在对处理数据进行加速处理的过程中,第二网卡22可确定接收到的处理后数据对应的加速指令信息,并可按照处理后数据对应的加速指令信息,对处理后数据进行加速处理。在第一网卡12已经向第二网卡22提供了原始数据对应的加速指令信息的情况下,第二网卡22可根据原始数据对应的加速指令信息以及与第一通信端10约定的处理指令对应关系,来确定出处理后数据对应的加速指令信息。而在第一通信端10和第二通信端20已经约定各自为应用程序提供的加速指令信息的情况下,第二网卡22可按照约定将默认的加速指令信息确定为处理后数据对应的加速指令信息。
承接上文中第一网卡12按照分包发送的方式传递处理后数据的情况,第二网卡22可以网络数据包作为处理单位对处理后数据进行加速处理。而正如前文提及的,经过第一网卡12的分包处理而获得的至少一个网络数据包是相互独立的,这样,即使第二网卡22收到的网络数据包是乱序的,也不会影响第二网卡22的加速处理进度,因此,第二网卡22可并行处理多个网络数据包,这可节省更多的加速处理时间,从而进一步提高第二网卡22对数据传输的加速效果。在这种分包发送的方式下,以第二网卡22接收到的目标数据包为例,第二网卡22可确定目标数据包对应的目标指令信息;按照目标指令信息,对目标数据包进行加速处理,以获得目的数据;将目的数据传递至内存中。其中,确定目标数据包对应的目标指令信息的方案可以是:解析目标数据包中包含的加速指令信息,目标数据包中包含的加速指令信息用于提示其它通信端已对目标数据包中的数据所执行的处理操作;基于解析出的加速指令信息以及与其它通信端约定的处理指令对应关系,确定目标数据对应的目标指令信息。第二网卡22还可解析目标数据包中包含的包属性信息,从中获取到目标数据包的message标识、对应的packet标识、目的内存地址和目的内存偏移等信息,这样,参考图2,经过第二网卡22的加速处理后,获得的目的数据的一种示例性数据结构可以是:目的内存地址、目的内存偏移和数据,这使得第二网卡22可将目的数据准确写入第二通信端20的内存。
至此,可完成应用程序发起的一次数据传输过程。
值得说明的是,第一通信端10和第二通信端20在不同的数据传输过程中,可能承担发送端的角色,也可能承担接收端的角色。以第一通信端10为例,第一通信端10除了可在上述与第二通信端20进行数据传输的过程中承担发送端的角色之外,还在其它数据处理过程中承担接收端的角色。这种情况下,第一网卡12可接收其它通信端发送的目标数据包;确定目标数据包对应的目标指令信息;按照目标指令信息,对目标数据包进行加速处理,以获得目的数据;将目的数据传递至内存中。其中,确定目标数据包对应的目标指令信息的方案可以是:解析目标数据包中包含的加速指令信息,目标数据包中包含的加速指令信息用于提示其它通信端已对目标数据包中的数据所执行的处理操作;基于解析出的加速指令信息以及与其它通信端约定的处理指令对应关系,确定目标数据对应的目标指令信息。第一网卡12还可解析目标数据包中包含的包属性信息,从中获取到目标数据包的message标识、对应的packet标识、目的内存地址和目的内存偏移等信息,这样,第一网卡12可将目的数据准确写入第一通信端10的内存,实现加速接收。
据此,本实施例中,处理器可响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据;将原始数据传递至本机的网卡;在网卡中,按照原始数据对应的加速指令信息对原始数据进行加速处理,以获得处理后数据;利用网卡将处理后数据发送至通信目的端。据此,本申请实施例中,可将原本需要由处理器执行的数据处理工作,卸载到本机的网卡中,这样,可实现在网络传输过程中对数据实施所需的处理和计算,从而卸载处理器上的相应工作开销,提高处理器的利用率,进而减少数据处理导致的传输时延,实现加速传输。另外,根据加速指令信息中的处理动作的不同,可从不同方面实现传输加速,例如降低RPC处理过程中的数据通信和处理延迟,提高网络带宽等,而反过来,可按照需要的加速方面,来确定加速指令信息中的处理动作和处理参数,从而达到期望的加速效果。
图3为本申请另一示例性实施例提供的一种数据传输方法的流程示意图。该方法可由数据传输装置执行,该数据传输装置可实现为软件和/或硬件的结合,该数据传输装置可集成在通信端中。参考图3,该方法可包括:
步骤300、响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据,其中,数据传输请求中包含加速指令信息;
步骤301、将原始数据和加速指令信息传递至本机的网卡;
步骤302、在网卡中,按照加速指令信息对原始数据进行加速处理,以获得处理后数据;
步骤303、利用网卡将处理后数据发送至通信目的端。
在一可选实施例中,加速指令信息包括处理动作和动作参数;处理动作包括加解密、视频编/解码和包检测中的一种或多种。
在一可选实施例中,步骤303可包括:
在网卡中,基于与通信目的端约定的数据粒度,对处理后数据进行分包,以产生至少一个网络数据包;
将至少一个网络数据包发送至通信目的端。
在一可选实施例中,在将至少一个网络数据包发送至通信目的端之前,该方法还包括:
将加速指令信息配置到至少一个网络数据包中,加速指令信息用于向目的通信端提示已对网络数据包中的数据执行的处理操作;和/或
将包属性信息配置到至少一个网络数据包中,包属性信息用于向目的通信端提示网络数据包的标识信息、与其它网络数据包之间的关系信息和目的内存地址中信息的一种或多种信息。
在一可选实施例中,步骤基于与通信目的端约定的数据粒度,对处理后数据进行分包,以产生至少一个网络数据包,可包括:
为处理后数据配置消息message标识;
将处理后数据拆分为至少一个网络数据包,单个网络数据包中包含整数倍数据粒度的数据;
分别为至少一个网络数据包配置包packet标识;
分别在至少一个网络数据包中添加message标识和对应的packet标识。
在一可选实施例中,该方法还包括:
利用网卡接收其它通信端发送的目标数据包;
确定目标数据包对应的目标指令信息;
按照目标指令信息,对目标数据包进行加速处理,以获得目的数据;
将目的数据传递至内存中。
在一可选实施例中,步骤确定目标数据包对应的目标指令信息,可包括:
解析目标数据包中包含的加速指令信息,目标数据包中包含的加速指令信息用于提示其它通信端已对目标数据包中的数据所执行的处理操作;
基于解析出的加速指令信息以及与其它通信端约定的处理指令对应关系,确定目标数据对应的目标指令信息。
值得说明的是,上述关于数据传输方法各实施例中的技术细节,可参考前述的系统实施例中关于第一通信端的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤300至步骤303的执行主体可以为设备A;又比如,步骤300的执行主体可以为设备A,步骤303的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如301、302等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
图4为本申请又一示例性实施例提供的一种通信端的结构示意图。如图4所示,该通信端可包括:内存40、处理器41和网卡42。
处理器,可用于响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据,其中,数据传输请求中包含加速指令信息;将原始数据和加速指令信息传递至本机的网卡;
网卡,可用于按照加速指令信息对原始数据进行加速处理,以获得处理后数据;将处理后数据发送至通信目的端。
在一可选实施例中,网卡在将处理后数据发送至通信目的端的过程中,可用于:
基于与通信目的端约定的数据粒度,对处理后数据进行分包,以产生至少一个网络数据包;
将至少一个网络数据包发送至通信目的端。
在一可选实施例中,加速指令信息包括处理动作和动作参数;处理动作包括加解密、视频编/解码和包检测中的一种或多种。
在一可选实施例中,网卡在将处理后数据发送至通信目的端的过程中,可用于:
在网卡中,基于与通信目的端约定的数据粒度,对处理后数据进行分包,以产生至少一个网络数据包;
将至少一个网络数据包发送至通信目的端。
在一可选实施例中,网卡在将至少一个网络数据包发送至通信目的端之前,还可用于:
将加速指令信息配置到至少一个网络数据包中,加速指令信息用于向目的通信端提示已对网络数据包中的数据执行的处理操作;和/或
将包属性信息配置到至少一个网络数据包中,包属性信息用于向目的通信端提示网络数据包的标识信息、与其它网络数据包之间的关系信息和目的内存地址中信息的一种或多种信息。
在一可选实施例中,网卡在基于与通信目的端约定的数据粒度,对处理后数据进行分包,以产生至少一个网络数据包的过程中,可用于:
为处理后数据配置消息message标识;
将处理后数据拆分为至少一个网络数据包,单个网络数据包中包含整数倍数据粒度的数据;
分别为至少一个网络数据包配置包packet标识;
分别在至少一个网络数据包中添加message标识和对应的packet标识。
在一可选实施例中,网卡还可用于:
接收其它通信端发送的目标数据包;
确定目标数据包对应的目标指令信息;
按照目标指令信息,对目标数据包进行加速处理,以获得目的数据;
将目的数据传递至内存中。
在一可选实施例中,网卡在确定目标数据包对应的目标指令信息的过程中,可用于:
解析目标数据包中包含的加速指令信息,目标数据包中包含的加速指令信息用于提示其它通信端已对目标数据包中的数据所执行的处理操作;
基于解析出的加速指令信息以及与其它通信端约定的处理指令对应关系,确定目标数据对应的目标指令信息。
图4中仅示意性给出部分组件,并不意味着通信端只包括图4所示组件。
值得说明的是,上述关于通信端各实施例中的技术细节,可参考前述的系统实施例中关于第一通信端的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由通信端执行的各步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种数据传输方法,包括:
响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据,其中,所述数据传输请求中包含加速指令信息;
将所述原始数据和所述加速指令信息传递至本机的网卡;
在所述网卡中,按照所述加速指令信息对所述原始数据进行加速处理,以获得处理后数据;
利用所述网卡将所述处理后数据发送至通信目的端。
2.根据权利要求1所述的方法,所述加速指令信息包括处理动作和动作参数;所述处理动作包括加解密、视频编/解码和包检测中的一种或多种。
3.根据权利要求1所述的方法,所述利用所述网卡将所述处理后数据发送至通信目的端,包括:
在所述网卡中,基于与所述通信目的端约定的数据粒度,对所述处理后数据进行分包,以产生至少一个网络数据包;
将所述至少一个网络数据包发送至所述通信目的端。
4.根据权利要求3所述方法,在将所述至少一个网络数据包发送至所述通信目的端之前,还包括:
将所述加速指令信息配置到所述至少一个网络数据包中,所述加速指令信息用于向所述目的通信端提示已对网络数据包中的数据执行的处理操作;和/或
将包属性信息配置到所述至少一个网络数据包中,所述包属性信息用于向所述目的通信端提示网络数据包的标识信息、与其它网络数据包之间的关系信息和目的地址信息中的一种或多种信息。
5.根据权利要求3所述的方法,所述基于与所述通信目的端约定的数据粒度,对所述处理后数据进行分包,以产生至少一个网络数据包,包括:
为所述处理后数据配置消息message标识;
将所述处理后数据拆分为至少一个网络数据包,单个网络数据包中包含整数倍数据粒度的数据;
分别为所述至少一个网络数据包配置包packet标识;
分别在所述至少一个网络数据包中添加所述message标识和对应的packet标识。
6.根据权利要求1所述的方法,还包括:
利用所述网卡接收其它通信端发送的目标数据包;
确定所述目标数据包对应的目标指令信息;
按照所述目标指令信息,对所述目标数据包进行加速处理,以获得目的数据;
将所述目的数据传递至所述内存中。
7.根据权利要求6所述的方法,所述确定所述目标数据包对应的目标指令信息,包括:
解析所述目标数据包中包含的加速指令信息,所述目标数据包中包含的加速指令信息用于提示所述其它通信端已对所述目标数据包中的数据所执行的处理操作;
基于解析出的加速指令信息以及与所述其它通信端约定的处理指令对应关系,确定所述目标数据对应的目标指令信息。
8.一种通信端,包括处理器和网卡;
所述处理器,用于响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据,其中,所述数据传输请求中包含加速指令信息;将所述原始数据和所述加速指令信息传递至本机的网卡;
所述网卡,用于按照所述加速指令信息对所述原始数据进行加速处理,以获得处理后数据;将所述处理后数据发送至通信目的端。
9.根据权利要求8所述的通信端,所述网卡在将所述处理后数据发送至通信目的端的过程中,用于:
基于与所述通信目的端约定的数据粒度,对所述处理后数据进行分包,以产生至少一个网络数据包;
将所述至少一个网络数据包发送至所述通信目的端。
10.一种数据传输系统,包括第一通信端和第二通信端,所述第一通信端中包含第一处理器和第一网卡,所述第二通信端中包含第二处理器和第二网卡;
所述第一处理器,用于响应于应用程序发起的数据传输请求,从内存中提取所需传输的原始数据,所述数据传输请求中包含加速指令信息;将所述原始数据和所述加速指令信息传递至所述第一网卡;
所述第一网卡,用于按照所述加速指令信息对所述原始数据进行加速处理,已获得处理后数据;将所述处理后数据发送至所述第二网卡;
所述第二网卡,用于对所述处理后数据进行加速处理后,写入所述第二通信端的内存。
11.根据权利要求10所述的系统,所述第二网卡在对所述处理后数据进行加速处理后,写入所述第二通信端的内存的过程中,用于:
接收所述第一网卡发送的目标数据包;
确定所述目标数据包对应的目标指令信息;
按照所述目标指令信息,对所述目标数据包进行加速处理,以获得目的数据;
将所述目的数据写入所述第二通信端的内存。
12.一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-7任一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146474.3A CN115883458A (zh) | 2021-09-28 | 2021-09-28 | 一种数据传输方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146474.3A CN115883458A (zh) | 2021-09-28 | 2021-09-28 | 一种数据传输方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115883458A true CN115883458A (zh) | 2023-03-31 |
Family
ID=85755843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111146474.3A Pending CN115883458A (zh) | 2021-09-28 | 2021-09-28 | 一种数据传输方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115883458A (zh) |
-
2021
- 2021-09-28 CN CN202111146474.3A patent/CN115883458A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113760452B (zh) | 一种容器调度方法、系统、设备及存储介质 | |
US20200007445A1 (en) | Enhanced service function chain | |
CN112261094B (zh) | 一种报文处理方法及代理服务器 | |
CN112751898B (zh) | 负载均衡方法、装置、介质及设备 | |
CN111163130A (zh) | 一种网络服务系统及其数据传输方法 | |
CN112202623B (zh) | 一种数据处理方法及装置 | |
CN112702338B (zh) | Ike报文获取方法及装置 | |
CN110581826B (zh) | 一种核心网通信方法、装置及系统 | |
CN113595694B (zh) | 数据的传输方法、计算设备及存储介质 | |
CN115883458A (zh) | 一种数据传输方法、系统、设备及存储介质 | |
CN111147385A (zh) | 一种软件定义数据中心网络数据平面转发方法及系统 | |
CN112653716A (zh) | 服务绑定的方法及装置 | |
CN113271336B (zh) | 基于dpdk的机器人中间件dds数据传输方法、电子设备及计算机可读存储介质 | |
CN114979236A (zh) | 数据传输方法、装置、存储介质以及电子设备 | |
CN110798366A (zh) | 任务逻辑的处理方法、装置及设备 | |
CN110958278A (zh) | 基于api网关实现的数据处理方法、系统和api网关 | |
CN112738181B (zh) | 集群外部ip接入的方法、装置及服务器 | |
CN114244758A (zh) | 安卓平台的网络诊断方法、存储介质、电子设备及系统 | |
CN113645283A (zh) | 一种多链路通信方法、装置、存储介质及电子设备 | |
CN115378764B (zh) | 通信方法、装置、存储介质及电子装置 | |
CN110874267A (zh) | 一种轮询调度方法、装置、存储介质及设备 | |
CN114978950B (zh) | 基于fpga、cpu协同的网络算法调用方法及系统 | |
WO2024087064A1 (zh) | 通信方法、电子设备及存储介质 | |
US20240137315A1 (en) | Metadata enhancement for packet capture using vxlan encapsulation | |
CN115633351A (zh) | 数据传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |