一种标签数据高效且低延时的传输方法及相关装置、系统与流程

文档序号:28318437发布日期:2022-01-04 20:50阅读:125来源:国知局
一种标签数据高效且低延时的传输方法及相关装置、系统与流程

1.本发明涉及计算机通信技术领域,具体地,涉及一种标签数据高效且低延时的传输方 法及相关装置、系统。


背景技术:

2.随着电子信息技术的发展,越来越多的电子计算机服务被广泛提供给人们的生产生活 活动。然而,单台计算机设备能够提供服务的能力毕竟有限;故现在越来越多的计算机服务, 特别是功能强大的计算机服务,是通过若干台计算机设备构成的计算机集群实现的。不同的 计算机设备通过网络连接构成服务器集群,进而为人们提供各种形式的计算机服务。在对外 提供服务时,不免涉及跨计算机设备终端间的调用和数据交互,即计算机间的跨端数据通信。 而计算机设备间的跨端通信,通常都是在tcp/ip协议支持下实现的。
3.然而,传统的tcp/ip技术在数据包处理过程中,要经过操作系统及其他软件层,需 要占用大量的服务器资源和内存总线带宽,数据在系统内存、处理器缓存和网络控制器缓存 之间来回进行复制移动,给服务器的cpu和内存造成了沉重负担。尤其是网络带宽、处理器 速度与内存带宽三者的严重"不匹配性",更加剧了网络延迟效应。
4.rdma是一种远程直接数据存取技术。作为一种远程内存访问技术,rdma能够使 计算机直接存取其他计算机的内存,而不需要经过处理器的处理。rdma将数据从一个系统 快速移动到远程系统的内存中,而不对操作系统造成任何影响。正是由于rdma通信具备上 述优点,故在越来越多的应用场景中,特别是在大数据、ai领域,当有着大量的数据远程通 信请求产生时,越来越倾向于选择基于rdma协议执行跨端数据传输。
5.然而,在这些应用场景中,不免涉标签数据(即带有标签的数据对象)的跨端通信; 这其中不仅限于原本就有着对应标签的数据对象,也包括数据对象原本无标签,而在应用执 行过程中出于某种需要被(临时或永久地)打上标签的数据对象。在现有的通信技术方案中, 基于tcp/ip通信框架一般是不关注、且在技术上也不感知涉及跨端通信的标签、数据对应的 内存地址,它们一般是通过cpu拷贝以及在操作系统内核协议栈的支持下,遵循着一定的数 据格式,逐包发送到目的主机端的,并在目的主机端解析进而实现有效通信的。但是,rdma 是“零拷贝”的技术,是绕过操作内核的;另,也缺少在此之上的数据格式支持;即便是目 的主机端接收到的数据,也仅会被视为无法识别的字节流,而无法解析识别的。
6.这里的标签,特别是那些出于某个或某些特定的功能需要被通信模块以外的功能模块 生成的标签,底层通信模块更是很难感知其与数据的对应关系;同时标签往往是小的数据, 当被作为一个小的、独立的数据对象进行rdma通信时,由于rdma通信请求调用本身是 存在一定开销的,标签这种小的数据传输对象基于rdma进行传输往往是负收益的。
7.此外,为了减少重传和提高通信效率,同基于tcp/ip的通信框架一样,基于rdma 的跨端通信方案,也会设定网络链路mtu(maximum transmission unit,即最大传输单元), 对于数据的长度超过链路层mtu的数据,引入(mtu)分片机制,以提高传输效率,增强 通信
以提供给目的主机端的相关应用访问或调用;其中,
18.以收到标签分片视为完整数据传输的完成,以通知相关应用访问或调用;
19.而进一步地,若一个rdma数据报文,就能包括所述标签分片的全部数据内容,则 以收到包括了所述标签分片全部数据的rdma数据报文视为完整数据传输的完成;从全部 rdma数据报文中解析获取所述的被传输标签、数据,并通知相关应用访问/调用。
20.在第二方面的各实施例中,其中的一些作为一种可能的实现方式,优选地,其所提供 的接收数据的方法包括:在通信两端预先约定所述标签的内存偏移量,在目的主机端接收所 述标签数据(具体来说,是指包括所述标签数据的数据段)并解析时,通过预先约定的标签 内存偏移量配置,获取其中的被传输的标签、数据。
21.再一方面,本发明实施例提供一种标签数据高效且低延时的传输方法,该方法应用于 计算机跨端通信系统的标签数据rdma传输,所述系统包括源主机端设备和目的主机端设 备;其中,源主机端设备用于标签数据的发送,而目的主机端设备用于标签数据的接收。
22.结合第一、第二方面,上述的标签数据高效且低延时的传输方法,包括:
23.对于源主机端请求跨端传输的数据及其对应的标签,在源主机端执行第一方面述及的 发送数据的方法,以及在目的主机端执行第二方面述及的接收数据的方法。
24.又一方面,本发明实施例提供一种用于rdma数据传输的装置。
25.结合上述各方面,上述的装置包括:rdma网卡、处理器,和存储器;其中,所述 的存储器存储有可在所述处理器上运行的计算机程序;而所述的处理器在执行上述计算机程 序时,能够与所述rdma网卡共同执行第一方面述及的发送数据的方法,
26.和/或,第二方面述及的接收数据的方法。
27.又一方面,本发明实施例提供一种计算机网络系统。
28.结合上述各方面,上述的计算机网络系统,包括:
29.若干台(不少于两台的)第四方面述及的装置;所述装置通过rdma网络彼此连接; 上述这些装置中,或被用于rdma数据报文的发送,或被用于rdma数据报文的接收,或 者既被用于rdma数据报文的发送,又被用于其他装置发来的rdma数据报文的接收。
30.又一方面,本发明实施例提供一种计算机可读存储介质。
31.结合上述各方面,上述的计算机可读存储介质中存储有用于执行标签数据传输的代 码,其中包括:用于执行第一方面述及的发送数据的方法操作的指令,和/或,第二方面述及 的接收数据的方法操作的指令,或,第三方面述及的标签数据高效且低延时的传输方法操作 的指令。
32.上述诸实施例提供的发送数据的方法、接收数据的方法,并在此基础上的标签数据高 效且低延时的传输方法以及相关装置、计算机网络系统和计算机可读存储介质,主要是通过 在源主机端对相互对应的标签、数据进行内存拼接和rdma发送控制,以及在目的主机端对 拼接的标签数据的解析以及分片接收识别,进而在实现标签数据中标签、数据简单且高效地 一并跨端传输的基础上,还能够实现及时有效的传输完成消息通知。
33.下面通过附图、具体实施例对本发明的技术方案做进一步的描述。
附图说明
34.为更加清楚地说明本发明实施例或现有技术中的技术方案,下面将对本发明中一部分 实施例或现有技术描述中涉及的附图做简单介绍。
35.图1为本发明一些优选实施例中对请求通信的数据和对应标签进行拼接的示意图;
36.图2为上述优选实施例的一些中一种实现数据、标签拼接的具体方式示意图;
37.图3为本发明一些优选实施例中解析标签数据的示意图;
38.图4为本发明一优选实施例提供的一种标签数据高效且低延时的传输方法的流程示 意图。
具体实施方式
39.下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述。 显然,所描述的实施例仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的 实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于 本发明保护的范围。
40.在现有技术中,典型的基于tcp/ip协议的计算机跨端通信框架,虽然有着诸如技术 方案成熟、既有解决方案丰富、可靠易用等优点,但面对大数据跨端传输时,却也因基于tcp/ip 协议的通信框架设计之初的固有缺陷而在大数据通信时,特别是通信高峰时,形成通信瓶颈, 影响整体系统效率。虽然,rdma作为一种远程内存访问技术,能够使计算机直接存取其他 计算机的内存,而不需要经过处理器的处理,在一定程度上克服了上述问题。但在涉标签数 据(即带有标签的数据对象)的跨端通信时,由于rdma绕过操作内核,又因此缺少像tcp/ip 通信框架那样的数据格式机制支持,故即便是目的主机端接收到的数据,也仅会被视为无法 识别的字节流,而无法解析识别的。此外,若分开通信,不仅无法保障传输过程中标签、数 据间的对应关系,且即使能够保障二者对应关系,标签这样的字节数较少的数据传输对象基 于rdma进行传输往往是负收益的(rdma通信过程中,注册内存以及其中的控制消息通 信都是存在着一定的开销的)。此外,为了减少重传和提高通信效率,同基于tcp/ip的通信 框架一样,基于rdma的跨端通信方案,也会设定网络链路mtu,对于数据的长度超过链 路层mtu的数据,执行mtu分片。但是,rdma通信绕过操作系统内核,缺少tcp/ip 通信那样完善的数据报文发送接收以及接收后的及时通知机制;即在mtu分片粒度下,即 使目的主机端接收到全部数据分片,也未必能及时有效地通知目的主机端其他相关应用。
41.于是,本发明提供一种标签数据高效且低延时的传输方法及相关装置、系统,以实现 标签数据(其中的标签、数据)简单且高效地一并跨端传输、以及及时有效的传输完成通知 机制。
42.以下为本发明的一些优选实施例。其中,
43.本发明的一些优选实施例提供一种发送数据的方法,该方法应用于计算机跨端通信系 统中的源主机端,具体应用于标签数据的rdma传输,其能够生成包括着标签数据(即相互 对应的标签、数据)的rdma报文,以及控制发送rdma报文。该方法包括:对请求跨端 传输的数据及其对应的标签,进行内存拷贝拼接,且对拼接后标签数据执行rdma跨端通信。 其具体实现可以如图1所示,实现过程可以包括:对请求通信的数据102及其对应的标签
101; 申请一块与二者大小相同的且地址连续的空闲内存103,将标签101和数据102拷贝到空闲 内存103进行拼接;并在拼接后,将内存103注册为rdma内存;生成标签数据的rdma 报文;并发送所述rdma报文;如此,在这些rdma报文中,事实上,就包括有标签101 或数据102的全部或部分数据;而全部的rdma报文则也就荷载了上述的标签101、数据102 的全部内容;其中,
44.在生成所述的rdma数据报文时,若标签数据(即标签101和数据102之和)超过 设定的mtu,将内存103根据标签101、数据102拼接时的内存偏移量分成标签101(即标 签分片)对应的和数据102(即数据分片)对应的rdma内存缓冲区;使所述的rdma数 据报文包括标签101分片的部分/全部数据,或者数据102分片的部分数据;并在发送所述 rdma数据报文时,控制包括了标签分片的部分/全部数据的rdma数据报文最后发送。
45.在上述优选实施例中的一些中,还提供一种优选的实现方式,具体包括:在生成rdma 报文时,一个rdma数据报文,就能包括标签分片的全部内容,则使其中的一个rdma数 据报文荷载标签分片的全部内容。
46.在上述优选实施例中的一些中,还提供一种优选的实现方式,即如图2所示,包括通 过dma引擎201申请所述的空闲内存103,并通过dma引擎拷贝数据102、标签101到空 闲内存103的相邻的位置,实现二者的拼接。
47.在上述优选实施例中的一些中,其中的rdma数据传输,为单侧rdma;单侧rdma 的基本语义操作,通常包括:rdma读操作和rdma读操作两种基本语音操作方式;故这 里的rdma数据传输,可以采用rdma读操作,也可以采用rdma写操作。相较于双侧 rdma,在一次有效通信过程中,单侧rdma显然可以减少通信两端的消息交互次数,进而 提高整体通信效率。
48.本发明的另一些优选实施例提供一种接收数据的方法,该方法应用于计算机跨端通信 系统中的目的主机端,具体应用于标签数据的rdma传输,其能够接收包括着标签数据(即 相互对应的标签、数据)的rdma报文,以及从中解析获取被传输的标签、数据。该方法包 括:
49.对于接收的标签数据,即接收其全部的rdma报文,得到完整的包括着标签数据的 数据段;以及解析该数据段,获取其中的被传输的标签、数据,以提供给目的主机端的相关 应用访问或调用。其具体实现可以如图3所示,实现过程可以包括:上述的接收到源主机端 发送来的包括标签数据的数据段,同样地也是被存储在一块地址连续的内存中,即如图3中 的内存301;而上述的数据段,则包括了被传输的标签101、数据102;解析上述数据段,获 取其中的标签101、数据102,以提供给目的主机端的相关应用访问或调用;
50.其中,以收到标签分片视为完整标签数据传输的完成,获取被传输的数据102,并及 时通知相关应用访问或调用。
51.进一步地,若一个rdma数据报文就包括所述标签分片的全部数据内容,则以收到 包括了所述标签分片全部数据的rdma数据报文视为完整数据传输的完成;从全部rdma 数据报文中解析获取所述的被传输标签、数据,及时通知相关应用访问/调用。
52.在上述优选实施例中的一些中,还提供一种优选的实现方式,即利用在通信两端预先 约定所述标签的内存偏移量,在目的主机端接收所述标签数据的数据段并解析时,通过预先 约定的标签内存偏移量配置,获取其中的被传输的标签、数据。其中,所述标签,例
如标签 101,其大小固定,因此,可以在通信两端预先约定标签内存偏移量,并以标签内存偏移量配 置形式记录在通信两端,在源主机端按预先约定拼接所述标签、数据,而在目的主机端解析 所述数据段时,仅读取预存的标签内存偏移量配置,即可获取被传输的标签、数据了。此外, 所述标签往往是很少字节的一段数据,故在拼接时,优选地将其放置在前面,这样在目的主 机端解析时,按照编程习惯从数据段开头逐步解析时,其中的标签内存偏移量也不大,有利 于减小不必要开销。但是,需要强调的是,所述的标签与数据的拼接,包括但不仅限于本段 中前面所述实施例中的标签与数据拼接时标签在前的情形。
53.本发明的再一些优选实施例提供一种标签数据高效且低延时的传输方法,具体应用于 标签数据的rdma传输,所述系统包括源主机端设备和目的主机端设备;其中,源主机端设 备用于标签数据的发送,而目的主机端设备用于标签数据的接收。该方法包括:
54.对于源主机端请求跨端传输的数据及其对应的标签,
55.在源主机端执行上述任一实施例中述及的发送数据的方法,
56.以及对应地,在目的主机端执行上述任一实施例中述及的接收数据的方法。
57.图4为上述优选实施例中的一个提供的一种标签数据高效且低延时的传输方法的流 程示意图。如图4所示,其标签数据的传输过程以数据102以及与之对应的标签101为例, 包括:
58.在源主机端,
59.s101申请一块与数据102、标签101(之和)大小相同的且地址连续的空闲内存103, 将标签101和数据102拷贝到空闲内存103进行拼接;
60.s102将内存103注册为rdma内存;
61.s103生成标签数据的rdma报文;所述rdma报文即包括有标签101或数据102 的全部或部分数据;而全部的rdma报文则荷载了标签101、数据102的全部内容;
62.s104并发送所述rdma报文;
63.其中,在注册内存缓冲区后,根据标签101、数据102拼接时的内存偏移量,将它们 拼接数据段对应的rdma内存缓冲区分成标签分片对应的内存缓冲区和数据分片对应的 rdma内存缓冲区;进而生成对应二者(标签分片、数据分片)的rdma数据报文;
64.并在s104发送所述rdma数据报文时,控制包括了标签101分片的rdma数据报 文最后发送;
65.在目的主机端,
66.s201接收全部的rdma报文,获取包括着标签101、数据102拼接的标签数据的数 据段;
67.s202根据标签内存偏移量配置,从上述数据段中解析并获取标签101、数据102。其 中,
68.在整个接收过程中,以收到标签101分片视为标签数据整个传输过程完成,并及时通 知相关应用访问或调用被传输的数据102以及对应的标签101。另外,考虑到标签101以及 其他同属于一类的标签是有着固定长度的,故通过在通信两端的预先约定,在源主机端标签 数据拼接时,遵循相关规则,使拼接后的标签数据的标签内存偏移量符合相应配置,同时在 目的主机端预存同样的标签内存偏移量配置,以便收到标签数据时,直接用于解析其对应的 数据段,以获取其中的标签、数据,以提供给目的主机端的相关应用访问或调用。
69.本发明的又一些优选实施例提供一种装置,该装置包括:rdma网卡、处理器,和 存储器;其中,所述的存储器存储有可在所述处理器上运行的计算机程序;而所述的处理器 在执行上述计算机程序时,能够与所述rdma网卡共同执行上述任一实施例述及的发送数据 的方法,和/或接收数据的方法。
70.本发明的又一些优选实施例提供一种计算机网络系统,该系统包括:若干台(不少于 两台)上述任一实施例述及的装置;而它们通过rdma网络彼此连接;其中,这些装置或被 用于rdma数据报文的发送(即作为源主机端),或被用于rdma数据报文的接收(即作为 目的主机端),或者既被用于rdma数据报文的发送,又被用于其他装置发来的rdma数据 报文的接收。
71.本发明的又一些优选实施例提供一种计算机可读存储介质,该计算机可读存储介质中 存储有用于执行标签数据传输的代码,其中包括:用于执行上述任一实施例述及的发送数据 的方法操作的指令,和/或,上述任一实施例述及的接收数据的方法操作的指令,或,上述任 一实施例述及的标签数据高效且低延时的传输方法操作的指令。
72.此外,需要强调的是,上述各实施例中所述及的内存,包括但不仅限于狭义上的内存 (即计算机系统中内存卡提供的内存),也包括显卡的内存(通常被简称为显存)等。
73.以上所述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1