一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种发送数据的方法、低延时接收数据的方法及相关装置与流程

2022-02-21 03:40:33 来源:中国专利 TAG:


1.本发明涉及计算机通信技术领域,具体地,涉及一种发送数据的方法、低延时接收数据的方法及相关装置。


背景技术:

2.随着电子信息技术的发展,越来越多的电子计算机服务被广泛提供给人们的生产生活活动。然而,单台计算机设备能够提供服务的能力毕竟有限;故现在越来越多的计算机服务,特别是功能强大的计算机服务,是通过若干台计算机设备构成的计算机集群实现的。不同的计算机设备通过网络连接构成服务器集群,进而为人们提供各种形式的计算机服务。在对外提供服务时,不免涉及跨计算机设备终端间的调用和数据交互,即计算机间的跨端数据通信。而计算机设备间的跨端通信,通常都是在tcp/ip协议支持下实现的。
3.然而,传统的tcp/ip技术在数据包处理过程中,要经过操作系统及其他软件层,需要占用大量的服务器资源和内存总线带宽,数据在系统内存、处理器缓存和网络控制器缓存之间来回进行复制移动,给服务器的cpu和内存造成了沉重负担。尤其是网络带宽、处理器速度与内存带宽三者的严重"不匹配性",更加剧了网络延迟效应。
4.rdma是一种远程直接数据存取技术。作为一种远程内存访问技术,rdma能够使计算机直接存取其他计算机的内存,而不需要经过处理器的处理。rdma将数据从一个系统快速移动到远程系统的内存中,而不对操作系统造成任何影响。正是由于rdma通信具备上述优点,故在越来越多的应用场景中,特别是在大数据、ai领域,当有着大量的数据远程通信请求产生时,越来越倾向于选择基于rdma协议执行跨端数据传输。
5.然而,为了减少重传和提高通信效率,同基于tcp/ip的通信框架一样,基于rdma 的跨端通信方案,也会设定网络链路mtu(maximum transmission unit,即最大传输单元),对于数据的长度超过链路层mtu的数据,引入(mtu)分片机制,以提高传输效率,增强通信系统健壮性。但是,不同于tcp/ip通信的是,rdma通信绕过操作系统内核,缺少tcp/ip 通信那样完善的数据报文发送接收以及接收后的及时通知机制;也就是说,虽然在每个基本语义操作层面,rdma通信在发送接收两端有着一套控制消息交互机制保障着作为操作对象的数据段的通信进度监控;但在此粒度之下,即使目的主机端接收到全部数据分片,也未必能及时有效地通知目的主机端其他相关应用。


技术实现要素:

6.有鉴于此,本发明提供一种发送数据的方法、低延时接收数据的方法及相关装置。
7.一方面,本发明实施例提供一种发送数据的方法,该方法应用于计算机跨端通信系统中的源主机端,具体应用于rdma数据传输,其能够生成rdma报文,以及发送rdma报文。
8.上述的发送数据的方法,包括:
9.对于请求跨端传输的数据,若其长度超过设定的mtu,则为所述数据附加一个传输标识,且使所述传输标识和所述数据拼接在一块地址连续的内存中;
10.将上述的附传输标识数据对应的内存注册为rdma内存;生成相应的rdma数据报文;并发送所述rdma数据报文;其中,
11.在生成所述的rdma数据报文前,将所述附传输标识数据对应的rdma内存缓冲区,将根据内存偏移量以及设定的mtu,分成若干个小于mtu阈值的附传输标识数据分片;进而对应每个分片生成相应的rdma数据报文;并在发送所述rdma数据报文时,控制包括了所述传输标识内容的分片的rdma数据报文最后发送。
12.在第一方面的各实施例中,其中的一些作为一种可能的实现方式,优选地,在生成 rdma报文时,使其中的一个rdma数据报文,就能包括所述传输标识分片的全部数据(内容)。其中,作为传输进度的标识的话,上述的传输标识,也包括生成rdma报文阶段的传输标识分片形态,完全可以不占用太多字节即实现上述功能。因此,通过控制传输标识长度的设定,使一个rdma数据报文就包括所述传输标识分片的全部数据内容,将不仅是在减少些许rdma报文发送的层面,而是多方面取得增益效果,大大提高接收相应速度和整体通信效率。
13.在第一方面的各实施例中,其中的一些作为又一种可能的实现方式,所提供的发送数据的方法包括:通过dma引擎申请一块地址连续的内存,作为上述的地址连续内存,并通过dma引擎拷贝所述数据到上述内存,并附上所述传输标识的,即使所述传输标识与所述数据拼接的。
14.在第一方面的各实施例中,其中的一些作为又一种可能的实现方式,所提供的发送数据的方法包括:其中的rdma数据传输,为单侧rdma;即其基本语义操作为rdma读操作,或者是rdma写操作,以减少通信两端间的消息传输和交互,提供整体通信效率。
15.另一方面,本发明实施例提供一种接收数据的方法,该方法应用于计算机跨端通信系统中的目的主机端,具体应用于rdma数据传输,其能够接收rdma报文,以及从中获取被传输的数据,并基于传输标识及时通知目的主机端相关应用。
16.结合第一方面,对应地,上述的接收数据方法,包括:
17.接收源主机端发来的数据;具体来说,接收其全部的rdma数据报文,从中得到完整的被传输的数据;而所述的完整被传输数据,对应源主机端的发送数据,若其长度超过设定的mtu,即对应地为源主机端发来的附传输标识数据,包括:传输标识和被传输的数据;其中,以收到包括传输标识的全部分片视为完整数据传输的完成,则即去掉所附传输标识,从中获得所述的被传输数据,并通知相关应用访问/调用。
18.在第二方面的各实施例中,其中的一些作为一种可能的实现方式,优选地,当一个 rdma数据报文,包括传输标识的全部内容时,那么,当收到包括传输标识的分片的rdma 数据报文时,即视为完整数据传输的完成,直接从其他的rdma数据报文中获取被传输的数据,并通知相关应用访问/调用即可,以提高整体通信效率。
19.再一方面,本发明实施例提供一种基于主动分片的rdma低延时数据传输方法,该方法应用于计算机跨端通信系统的rdma数据传输,所述系统包括源主机端设备和目的主机端设备;其中,源主机端设备用于数据的发送,而目的主机端设备用于数据的接收。
20.结合第一、第二方面,上述的基于rdma的基于主动分片的rdma低延时数据传输方法,包括:
21.对于源主机端请求跨端传输的数据,在源主机端执行第一方面述及的发送数据的方法,以及在目的主机端执行第二方面述及的接收数据的方法。
22.又一方面,本发明实施例提供一种用于rdma数据传输的装置。
23.结合上述各方面,上述的装置包括:rdma网卡、处理器,和存储器;其中,所述的存储器存储有可在所述处理器上运行的计算机程序;而所述的处理器在执行上述计算机程序时,能够与所述rdma网卡共同执行第一方面述及的发送数据的方法,
24.和/或,第二方面述及的接收数据的方法。
25.又一方面,本发明实施例提供一种计算机网络系统。
26.结合上述各方面,上述的计算机网络系统,包括:
27.若干台(不少于两台的)第四方面述及的的装置;所述装置通过rdma网络彼此连接;上述这些装置中,或被用于rdma数据报文的发送,或被用于rdma数据报文的接收,或者既被用于rdma数据报文的发送,又被用于其他装置发来的rdma数据报文的接收。
28.又一方面,本发明实施例提供一种计算机可读存储介质。
29.上述的计算机可读存储介质中存储有用于执行标签数据传输的代码,其中包括:用于执行第一方面述及的发送数据的方法操作的指令,和/或,第二方面述及的接收数据的方法操作的指令,或,第三方面述及的基于主动分片的rdma低延时数据传输方法操作的指令。
30.上述诸实施例提供的发送数据的方法、接收数据的方法,并在此基础上的基于主动分片的rdma低延时数据传输方法,以及相关装置、计算机网络系统和计算机可读存储介质,主要是在源主机端通过对请求跨端通信的数据(数据长度超过设定mtu的)附加传输标识,且使所述传输标识和数据拼接在一块地址连续的内存中;并以附传输标识数据为rdma传输对象,且通过主动分片执行rdma跨端发送,控制其中包括传输标识的分片的发送;以及在目的主机端解析附传输标识数据获得被传输的数据,以及以接收的传输标识为数据接收完成信号,通知目的主机端相关应用访问或调用,进而实现及时有效的数据通信的。
31.下面通过附图、具体实施例对本发明的技术方案做进一步的描述。
附图说明
32.为更加清楚地说明本发明实施例或现有技术中的技术方案,下面将对本发明中一部分实施例或现有技术描述中涉及的附图做简单介绍。
33.图1为本发明一优选实施例提供的一种基于主动分片的rdma低延时数据传输方法的流程示意图。
具体实施方式
34.下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.在现有技术中,典型的基于tcp/ip协议的计算机跨端通信框架,虽然有着诸如技术方案成熟、既有解决方案丰富、可靠易用等优点,但面对大数据跨端传输时,却也因基于tcp/ip 协议的通信框架设计之初的固有缺陷而在大数据通信时,特别是通信高峰时,形成通信瓶颈,影响整体系统效率。虽然,rdma作为一种远程内存访问技术,能够使计算机直接
存取其他计算机的内存,而不需要经过处理器的处理,在一定程度上克服了上述问题。但为了减少重传和提高通信效率,同基于tcp/ip的通信框架一样,基于rdma的跨端通信方案,也会设定网络链路mtu,对于数据的长度超过链路层mtu的数据,执行mtu分片。但是,rdma 通信绕过操作系统内核,缺少tcp/ip通信那样完善的数据报文发送接收以及接收后的及时通知机制;即在mtu分片粒度下,即使目的主机端接收到全部数据分片,也未必能及时有效地通知目的主机端其他相关应用。
36.于是,本发明提供一种发送数据的方法、低延时接收数据的方法及相关装置,以实现较长数据在基于rdma通信时也能及时有效的被传输。
37.以下为本发明的一些优选实施例。其中,
38.本发明的一些优选实施例提供一种发送数据的方法,该方法应用于计算机跨端通信系统中的源主机端,具体应用于rdma数据传输,其能够生成rdma报文,以及发送rdma 报文。该方法通过为请求跨端传输的数据(数据长度超过设定mtu的)附加传输标识,且使所述传输标识和数据拼接在一块地址连续的内存中;并以附传输标识数据为rdma传输对象,执行rdma跨端发送,通过主动分片并控制包括传输标识的分片的发送,实现有组织、有目的的传输,以期结合目的主机端实现被传输数据的及时通信。
39.其中,在给请求通信的数据附加传输标识(其中数据长度超过设定的mtu)时,其实现过程如下:
40.申请一块地址连续的空闲内存,生成一个传输标识,并将数据拷贝到内存中与传输标识拼接;然后将所述传输标识和所述数据拼接的附传输标识数据对应的内存注册为rdma内存;生成相应的rdma数据报文;并发送所述rdma数据报文;其中,
41.在生成所述的rdma数据报文前将前面述及的附传输标识数据对应的rdma内存缓冲区,根据内存偏移量,分成若干个小于mtu阈值的附传输标识数据分片;进而对应每个分片生成相应的rdma数据报文;
42.并在发送所述rdma数据报文时,控制包括了所述传输标识内容的分片的rdma数据报文最后发送。
43.在上述优选实施例中的一些中,还提供一种优选的实现方式,具体包括:在生成rdma 报文时,使其中的一个rdma数据报文,包括传输标识分片的全部内容。其中,作为传输进度的标识的话,传输标识完全可以不占用太多字节即实现上述功能。因此,通过控制传输标识长度的设定,使一个rdma数据报文就包括所述传输标识分片的全部数据内容,将不仅是在减少些许rdma报文发送的层面,而是多方面取得增益效果,大大提高接收相应速度和整体通信效率。
44.在上述优选实施例中的一些中,还提供一种优选的实现方式,具体包括:通过dma 引擎申请空闲内存,作为上述的地址连续内存,并通过dma引擎拷贝数据到上述内存,并附上传输标识,具体来说,是将二者在内存中拼接,即将它们拷贝到相邻的位置。
45.在上述优选实施例中的一些中,其中的rdma数据传输,为单侧rdma;单侧rdma 的基本语义操作,通常包括:rdma读操作和rdma读操作两种基本语音操作方式;故这里的rdma数据传输,可以采用rdma读操作,也可以采用rdma写操作。相较于双侧 rdma,在一次有效通信过程中,单侧rdma显然可以减少通信两端的消息交互次数,进而提高整体通信效率。
46.本发明的另一些优选实施例提供一种接收数据的方法,该方法应用于计算机跨端
通信系统中的目的主机端,具体应用于rdma数据传输,其能够接收rdma报文,以及从中获取被传输的数据,并基于传输标识及时通知目的主机端相关应用。该方法通过在目的主机端解析附传输标识数据获得被传输的数据,以及以接收的传输标识为数据接收完成信号,通知目的主机端相关应用访问或调用,以实现被传输的数据及时有效的传输。前面述及的数据与传输标识以附传输标识数据的形式被目的主机端接收后存储在地址连续的内存上;其中,接收其全部的rdma数据报文,从中得到完整的被传输数据;而所述的完整被传输数据,对应源主机端的发送数据,若其长度超过设定的mtu,即是上述源主机端发来的附传输标识数据,包括:传输标识和被传输的数据;
47.去掉其传输标识,即获得被传输数据;
48.其中,以收到包括传输标识的分片视为完整数据传输的完成,获取被传输的数据,并通知相关应用访问或调用。
49.在上述优选实施例中的一些中,还提供一种优选的实现方式,当传输标识大小仅通过一个rdma报文即可传输的情形,即一个rdma数据报文,包括传输标识分片的全部内容时,那么,当收到包括传输标识的分片的rdma数据报文时,直接从其他的包括了所述数据分片内容的rdma数据报文中获取被传输的数据,并通知相关应用访问/调用即可,以提高整体通信效率。
50.本发明的再一些优选实施例提供一种基于主动分片的rdma低延时数据传输方法,具体应用于rdma数据传输,所述系统包括源主机端设备和目的主机端设备;其中,源主机端设备用于数据的发送,而目的主机端设备用于数据的接收。该方法包括:
51.对于源主机端请求跨端传输的数据,
52.在源主机端执行上述任一实施例中述及的发送数据的方法,
53.以及对应地,在目的主机端执行上述任一实施例中述及的接收数据的方法。
54.图1为上述优选实施例中的一个提供的一种基于rdma的低延时数据传输方法的流程示意图。如图1所示,包括:
55.s101为被传输的数据附加传输标识:
56.申请一块地址连续的空闲内存;生成一个传输标识,并将所述数据拷贝到内存中与传输标识拼接;
57.s102将上述内存(即对应附传输标识数据的内存)注册为rdma内存;
58.s103生成相应的rdma数据报文;
59.s104发送所述rdma数据报文;
60.其中,在注册内存缓冲区后,根据内存偏移量,将整个附传输标识数据对应的rdma 内存缓冲区分成若干个小于mtu阈值的附传输标识数据分片;对应地为每个分片生成相应的rdma数据报文;并在发送所述rdma数据报文时,控制包括了所述传输标识内容的分片的rdma数据报文最后发送。
61.在目的主机端,
62.s201接收全部的rdma数据报文,得到附传输标识数据;
63.s202解析附传输标识数据得到被传输的数据,其过程即去掉其中的传输标识即可。
64.而在整个接收过程中,以收到包括传输标识的分片视为整个传输过程完成,并及
时通知相关应用访问或调用被传输的数据。
65.本发明的又一些优选实施例提供一种装置,该装置包括:rdma网卡、处理器,和存储器;其中,所述的存储器存储有可在所述处理器上运行的计算机程序;而所述的处理器在执行上述计算机程序时,能够与所述rdma网卡共同执行上述任一实施例述及的发送数据的方法,和/或接收数据的方法。
66.本发明的又一些优选实施例提供一种计算机网络系统,该系统包括:若干台(不少于两台)上述任一实施例述及的装置;而它们通过rdma网络彼此连接;其中,这些装置或被用于rdma数据报文的发送(即作为源主机端),或被用于rdma数据报文的接收(即作为目的主机端),或者既被用于rdma数据报文的发送,又被用于其他装置发来的rdma数据报文的接收。
67.本发明的又一些优选实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于执行标签数据传输的代码,其中包括:用于执行上述任一实施例述及的发送数据的方法操作的指令,和/或,上述任一实施例述及的接收数据的方法操作的指令,或,上述任一实施例述及的基于主动分片的rdma低延时数据传输方法操作的指令。
68.此外,需要强调的是,上述各实施例中所述及的内存,包括但不仅限于狭义上的内存 (即计算机系统中内存卡提供的内存),也包括显卡的内存(通常被简称为显存)等。先
69.以上所述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献