CN113422704A - 数据测量方法、装置、电子设备及计算机存储介质 - Google Patents
数据测量方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN113422704A CN113422704A CN202110164009.6A CN202110164009A CN113422704A CN 113422704 A CN113422704 A CN 113422704A CN 202110164009 A CN202110164009 A CN 202110164009A CN 113422704 A CN113422704 A CN 113422704A
- Authority
- CN
- China
- Prior art keywords
- time
- data
- receiving
- sending
- response message
- 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
- 238000000691 measurement method Methods 0.000 title claims abstract description 26
- 238000005259 measurement Methods 0.000 title claims abstract description 25
- 230000004044 response Effects 0.000 claims abstract description 136
- 230000005540 biological transmission Effects 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims description 41
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种数据测量方法、装置、电子设备及计算机存储介质,数据测量方法,包括:通过数据发送端的RDMA网卡硬件接口,获取向数据接收端发送的数据包的发送完成时间;获取数据接收端接收数据包的第一接收时间,以及数据接收端针对数据包的响应消息的回复时间,其中,第一接收时间通过数据接收端的RDMA网卡硬件接口获得;通过数据发送端的RDMA网卡硬件接口,获取接收响应消息的第二接收时间;根据发送完成时间、第一接收时间、回复时间和第二接收时间,确定数据包的传输往返时间。本申请实施例提供的数据测量方案,通过保证发送完成时间、第一接收时间和第二接收时间的精确性,极大地缩小得到的数据包在网络上的传输往返时间RTT的误差。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种数据测量方法、装置、电子设备及计算机存储介质。
背景技术
随着云存储等系统的不断发展,低延迟成为网络数据传输的热点需求,传统的TCP协议不能满足低延迟的存储需求,因此,远程直接内存访问(Remote Direct AccessMemory,RDMA)技术被广泛应用。RDMA是一种在进行网络数据传输时,直接在设备的存储区域进行数据的操作、无需操作系统和处理器来干预的技术。由于无需操作系统和处理器的干预,因此可以极大减少传输时间,降低延迟。
为了更好地提供低延迟的数据传输服务,基于RDMA协议传输数据时,需要对传输的数据包在网络上的传输往返时间(RTT)进行精准测量。然而,由于基于RDMA协议传输数据时的传输时间较短,导致测量RTT时,网络拥塞等误差对测量结果的影响较大,导致现有的测量方案无法准确测量基于RDMA协议传输数据时的RTT。
发明内容
有鉴于此,本申请实施例所解决的技术问题之一在于提供一种数据测量方法、装置、电子设备及计算机存储介质,用以克服或缓解现有技术中的部分问题。
根据本申请实施例的第一方面,提供了一种数据测量方法,应用于通过RDMA网卡向数据接收端发送数据的数据发送端,其中,所述方法包括:
通过所述数据发送端的RDMA网卡硬件接口,获取向数据接收端发送的数据包的发送完成时间;
获取所述数据接收端接收所述数据包的第一接收时间,以及所述数据接收端针对所述数据包的响应消息的回复时间,其中,所述第一接收时间通过所述数据接收端的RDMA网卡硬件接口获得;
通过所述数据发送端的RDMA网卡硬件接口,获取接收所述响应消息的第二接收时间;
根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间。
根据本申请实施例的第三方面,提供了一种数据测量方法,应用于通过RDMA网卡接收数据的数据接收端,其中,所述方法包括:
通过数据接收端的RDMA网卡硬件接口,获取所述数据接收端接收数据包的第一接收时间;
获取所述数据接收端针对所述数据包的响应消息的回复时间;
将所述第一接收时间以及所述回复时间发送至数据发送端,以使所述数据发送端根据向所述数据接收端发送的数据包的发送完成时间、所述第一接收时间、所述回复时间和接收所述响应消息的第二接收时间,确定所述数据包的传输往返时间,其中,所述发送完成时间以及所述第二接收时间均通过所述数据发送端的RDMA网卡硬件接口获得。
根据本申请实施例的第三方面,提供了一种数据测量装置,应用于通过RDMA网卡向数据接收端发送数据的数据发送端,其中,所述装置包括:
发送完成时间获取模块,用于通过所述数据发送端的RDMA网卡硬件接口,获取向数据接收端发送的数据包的发送完成时间;
回复确定模块,用于获取所述数据接收端接收所述数据包的第一接收时间,以及所述数据接收端针对所述数据包的响应消息的回复时间,其中,所述第一接收时间通过所述数据接收端的RDMA网卡硬件接口获得;
第二接收时间获取模块,用于通过所述数据发送端的RDMA网卡硬件接口,获取接收所述响应消息的第二接收时间;
往返时间确定模块,用于根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间。
根据本申请实施例的第四方面,提供了一种数据测量装置,应用于通过RDMA网卡接收数据的数据接收端,其中,所述装置包括:
第一接收时间确定模块,用于通过数据接收端的RDMA网卡硬件接口,获取所述数据接收端接收数据包的第一接收时间;
回复时间获取模块,用于获取所述数据接收端针对所述数据包的响应消息的回复时间;
发送模块,用于将所述第一接收时间以及所述回复时间发送至数据发送端,以使所述数据发送端根据向所述数据接收端发送的数据包的发送完成时间、所述第一接收时间、所述回复时间和接收所述响应消息的第二接收时间,确定所述数据包的传输往返时间,其中,所述发送完成时间以及所述第二接收时间均通过所述数据发送端的RDMA网卡硬件接口获得。
根据本申请实施例的第五方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的数据测量方法对应的操作。
根据本申请实施例的第六方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的数据测量方法。
本申请实施例提供的方案,通过RDMA网卡硬件接口,获取获取向数据接收端发送的数据包的发送完成时间、获取所述数据接收端接收所述数据包的第一接收时间以及获取数据发送端接收所述响应消息的第二接收时间,可以将数据发送端的RDMA网卡处理数据包发送请求过程、数据发送端的RDMA网卡处理响应消息的过程、以及数据接收端对数据包进行验证的过程排除在测量时间段之外,从而可以保证发送完成时间、所述第一接收时间和所述第二接收时间的精确性,之后根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间,可以尽量减少RDMA网卡处理数据发送请求所需的时间、处理数据接收事件所需的时间等不精确因素对测量结果的影响,使得确定的数据包的传输往返时间能够更加精确地反映发送数据包过程的网络延时。尤其在出现网络拥塞情况时,通过本申请实施例提供的数据测量方案,通过保证发送完成时间、所述第一接收时间和所述第二接收时间的精确性,极大地缩小得到的数据包在网络上的传输往返时间RTT的误差。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1A为本申请实施例一的一种包括RDMA网卡的系统的结构示意图;
图1B为本申请实施例一的一种数据测量方法的步骤流程图;
图1C为图1B所示实施例中的一种场景示例的示意图;
图2为本申请实施例二的一种数据测量方法的步骤流程图;
图3为本申请实施例三的一种数据测量装置的结构框图;
图4为本申请实施例四的一种数据测量装置的结构框图;
图5为本申请实施例五的一种电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
实施例一
图1A为本申请实施例一提供的一种包括RDMA网卡的系统,如图1A所示,系统可以包括:多个具有数据处理能力的设备,图1A示例性地示出了设备A、B、C、D,但实际上并不限于此。
多个设备可以组成任意的系统,例如分布式存储系统、云计算系统等,本实施例对此不进行限定。
多个设备之间通过网络连接,网络可以为因特网、内联网、局域网、广域网、存储区域网络等,只要能够实现多个设备之间的通信即可,本实施例对此不进行限定。
本实施例中,每个设备上都可以设置有RDMA网卡(又称RNIC),多个设备通过RDMA网卡以及网络,可以进行实现基于RDMA协议的数据传输。示例的,设备A的RDMA网与设备B的RDMA网卡配合,可以实现设备A基于RDMA协议通过网络直接访问设备B的内存。
RDMA网卡为支持RDMA协议的网卡,RDMA协议允许网卡对应用程序的缓冲区直接访问,RDMA网卡使用工作队列(Queue Pair,QP)与应用程序连接。
工作队列QP是成对建立的,包括发送队列(Send Queue,SQ)以及接收队列(Receive Queue,RQ),其中,SQ建立在数据发送端,用于存储数据发送端的存储设备和数据接收端的存储设备之间进行数据传输的指令,RQ建立在数据接收端,用于存储将接收到的数据存储至预设存储位置的指令。
数据发送端提交工作请求(WR)到工作队列后,会工作队列中会增加与工作请求(WR)对应的工作队列元素(Work Queue Element,WQE)。
RDMA的硬件可以不断地根据工作队列(WQ)中的工作队列元素WQE来执行对应的工作请求(WR),从而完成工作请求所请求传输的数据。
当数据发送端向数据接收端发送数据包时,可以执行图1B所示的方法,确定所述数据包的传输往返时间。
图1B示出了本申请实施例提供的一种数据测量方法的流程示意图。如图1B所示,数据测量方法包括:
步骤S101、通过数据发送端的RDMA网卡硬件接口,获取向数据接收端发送的数据包的发送完成时间。
本实施例中,数据发送端与数据接收端可以为上述系统中的任意两个设备。数据发送端发送的数据包也可以为数据发送端的应用程序对应的数据包,本实施例对此不进行限定。
本实施例中的数据发送端与数据接收端可以为任意包括RDMA网卡的电子设备,例如服务器、PC机、移动终端(如手机等)、云计算系统中的计算节点、分布式存储系统中的存储节点等。
RDMA网卡即支持RDMA协议的网卡,RDMA网卡提供有多个硬件接口供用户空间使用,位于用户空间的应用程序可以通过RDMA网卡的硬件接口,向RDMA网卡提交工作请求WR,还可以通过RDMA网卡的硬件接口从RDMA网卡获取反馈的信息。
具体地,数据发送端的RDMA网卡完成发送数据包的动作(verbs)后,可以通过RDMA的原语,例如ibv_ex_create_cq()或者ibv_exp_poll_cq()等来获取数据包发送完成的完成事件(completion)的发生时间T1,并将获取到的T1作为数据包的发送完成时间,以此保证了获取到的发送完成时间的精确性。
步骤S102、通过数据接收端的RDMA网卡硬件接口,获取所述数据接收端接收数据包的第一接收时间。
类似的,本实施例中,数据接收端的RDMA网卡完成发送数据包的接收动作(verbs)后,同样可以通过RDMA的原语,来获取数据包接收完成的完成事件(completion)的发生时间T2,并将T2作为接收数据包的第一接收时间,以此保证了获取到的第一接收时间的精确性。
本实施例中,发送完成时间T1与第一接收时间T2之间的时间段,即从数据包被数据发送端的RDMA网卡发出,到数据包被数据接收端的RDMA网卡接收过程中,数据包在网络上的传输时间。
步骤S103、获取所述数据接收端针对所述数据包的响应消息的回复时间。
数据接收端接收到数据包后,对数据包中的数据进行验证,验证通过后,会发送响应消息至数据发送端,以告知数据发送端数据包传输成功。
从接收数据包的第一接收时间T2到响应消息的回复时间T3之间的时间段,可以为数据接收端接收到数据包后,对数据包中的数据进行验证所需的时间。
示例的,响应消息的回复时间T3可以为数据发送端提交返回响应消息的工作请求(WR)到工作队列的时间,可以为数据接收端的RDMA网卡完成返回响应消息的工作请求的完成事件(completion)的发生时间,也可以为其他能够表征数据接收端发送响应消息的时间,本实施例对此不进行限定。
步骤S104、通过数据接收端的RDMA网卡,将所述第一接收时间以及所述回复时间发送至数据发送端。
本实施例中,可以使用数据发送端与数据接收端预先建立的QP,将所述第一接收时间以及所述回复时间发送至数据发送端。
示例地,数据接收端可以通过向数据发送端返回一个消息,同时将所述第一接收时间以及所述回复时间发送至数据发送端;数据接收端也可以通过向数据发送端返回两个消息,分别将第一接收时间以及回复时间发送至数据发送端,本实施例对此不进行限定。
具体通过数据接收端的RDMA网卡发送响应消息、第一接收时间T2以及回复时间T3的方法可参考相关技术,在此不再赘述。
步骤S105、通过所述数据发送端的RDMA网卡硬件接口,获取接收所述响应消息的第二接收时间。
类似地,数据发送端的RDMA网卡完成接收响应消息的动作(verbs)后,可以通过RDMA的原语,例如ibv_ex_create_cq()或者ibv_exp_poll_cq()等来获取响应消息接收完成的完成事件(completion)的发生时间T4,并将获取到的T4作为数据包的第二接收时间,保证了获取到的第二接收时间的精确性。
本实施例中,回复时间T3与第二接收时间T4之间的时间段,即从响应消息被数据接收端发出,到响应消息被数据接收端的RDMA网卡接收过程中,响应消息在网络上的传输时间。
步骤S106、通过所述数据发送端根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间。
本实施例中,发送完成时间T1与第一接收时间T2之间的时间段为数据包在网络上的传输时间。回复时间T3与第二接收时间T4之间的时间段,为数据包对应的响应消息在网络上的传输时间。两个传输时间的和即为数据包在网络上的传输往返时间。
参见图1C,示出了一种本申请的数据测量方案的具体的应用场景。
参见图1C,以客户端Client与服务端Server通过RDMA网卡(网卡即为图1C中的NIC)传输数据包为例进行说明。
如图1C所示,Client可以提交发送数据包的请求至Client的RDMA网卡,RDMA网卡完成数据包的发送后,Client可以通过RDMA网卡硬件接口获取数据包的发送完成时间T1。
同时,Client的RDMA网卡发送的数据包经由网络传输后,被Server的RDMA网卡接收。
Server可以通过RDMA网卡硬件接口获取数据包的第一接收时间T2。且,Server可以在对数据包进行验证后,生成响应消息,并通过Server的RDMA网卡将响应消息返回至Client。
示例的,在图1C中,Server可以在生成响应消息的过程中,将第一接收时间T2写入响应消息中,且Server确定响应消息生成完成后,可以将完成时间作为回复时间T3写入响应消息中,并提交发送响应消息的请求至Server的RDMA网卡,从而通过RDMA网卡将携带有第一接收时间T2、回复时间T3的响应消息返回至Client。
Client的RDMA网卡接收响应消息后,Client可以通过RDMA网卡硬件接口获取接收响应消息的第二接收时间T4。
然后,Client可以根据自身的发送完成时间T1、第二接收时间T4,以及接收的第一接收时间T2、回复时间T3,计算数据包在网络上的传输往返时间RTT,即图1C中的虚线对应的时间。
本申请实施例提供的方案,通过RDMA网卡硬件接口,获取获取向数据接收端发送的数据包的发送完成时间、获取所述数据接收端接收所述数据包的第一接收时间以及获取数据发送端接收所述响应消息的第二接收时间,可以将数据发送端的RDMA网卡处理数据包发送请求过程、数据发送端的RDMA网卡处理响应消息的过程、以及数据接收端对数据包进行验证的过程排除在测量时间段之外,从而可以保证发送完成时间、所述第一接收时间和所述第二接收时间的精确性,之后根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间,可以尽量减少RDMA网卡处理数据发送请求所需的时间、处理数据接收事件所需的时间等不精确因素对测量结果的影响,使得确定的数据包的传输往返时间能够更加精确地反映发送数据包过程的网络延时。尤其在出现网络拥塞情况时,通过本申请实施例提供的数据测量方案,通过保证发送完成时间、所述第一接收时间和所述第二接收时间的精确性,极大地缩小得到的数据包在网络上的传输往返时间RTT的误差。
实施例二
图2为本申请实施例二的一种数据测量方法的步骤流程图。如图2所示,数据测量方法包括:
步骤S201、通过数据发送端的RDMA网卡硬件接口,获取向数据接收端发送的数据包的发送完成时间。
本步骤的具体实现方式可参考上述实施例,在此不再赘述。
步骤S202、通过数据接收端的RDMA网卡硬件接口,获取所述数据接收端接收数据包的第一接收时间。
本步骤的具体实现方式可参考上述实施例,在此不再赘述。
步骤S203、通过所述数据接收端的所述RDMA网卡发送携带有所述第一接收时间的响应消息。
本实施例中,在数据接收端处理完数据发送端发送的数据后,可以根据处理结果生成响应消息,响应消息中可以携带有数据的标识,以使数据发送端根据数据标识确定数据成功发送。响应消息具体可以为ACK消息,或者数据接收端响应于接收到的数据生成的回复数据。
响应消息中还可以携带有第一接收时间,以使数据发送端可以根据接收的响应消息后获得第一接收时间,第一接收时间通过数据接收端的RDMA网卡硬件接口获得。
当然,上述仅为举例说明,响应消息中携带的内容并不仅限于此,本领域的技术人员可根据需求设置,本实施例对此不进行限定。
步骤S204、通过所述数据接收端的RDMA网卡硬件接口,获取发送所述响应消息的回复时间。
本实施例中,数据发送端通过数据接收端的RDMA网卡发送响应信息后,同样可以通过数据接收端的RDMA网卡硬件接口,获取响应消息发送完成的完成事件对应的发生时间,并将此作为响应消息的回复时间。
与通过应用程序获取响应消息的回复时间相比,通过数据接收端的RDMA网卡硬件接口获得的回复时间更加精确,从而可以提高确定的数据包的传输往返时间的精确性。
具体通过RDMA网卡硬件接口获取回复时间的方法与上述类似,在此不再赘述。
步骤S205、通过所述数据接收端的所述RDMA网卡,发送所述响应消息的回复时间。
本实施例中,由于是通过所述数据接收端的RDMA网卡硬件接口获取的回复时间的,因此,在完成响应消息的发送之后,才能获取到响应消息的回复时间,故需要数据接收端的再次通过RDMA网卡将响应消息的回复时间发送至数据接收端。
本申请的另一实现方案中,在执行步骤S202之后,可以通过所述数据接收端的应用程序确定针对所述数据包的响应消息的回复时间,并将所述回复时间写入所述响应消息中;并通过所述数据接收端的不可靠数据报队列,向所述数据发送端发送携带有所述回复时间的所述响应消息,发送完成后,可以继续执行步骤S206。由于第一接受时间的确定发生在响应消息的生成之前,因此响应消息中可以携带有所述第一接收时间。
由此,可以通过一次响应消息的发送,同时将第一回复时间以及响应消息的回复时间发送至数据发送端,减小了开销。
可选地,本实施例中,用于发送响应消息的不可靠数据报队列的优先级,高于除所述不可靠数据报队列之外的其他数据发送队列的优先级。由此,可以缩短数据发送端从省城响应消息到发出响应消息所需的时间,从而可以缩短数据接收端获取到响应消息的时间,进而缩短从发出数据包到收到数据包的响应消息所需的时间,提高了获得的数据包的传输往返时间的实时性。
具体地,如果使用用于传输数据的QP进行响应消息的发送和接收,则响应消息的发送和接收过程会被多种队头阻塞(head-of-line blocking)所延迟从而导致RTT的测量不准确,具体的堵塞情况可以包括:
(1)已经提交到该QP中但是尚未发送的数据对响应消息的阻塞
(2)由于RDMA网卡上对不同的QP之间进行的发送调度导致的响应消息发送延迟
(3)网络中和端上数据的排队导致的响应消息传输延迟
(4)响应消息接收产生的完成事件在网卡上Completion Queue中的排队导致对ACK处理的延迟。
通过不可靠数据报队列(UD)发送响应消失,且用于发送响应消息的不可靠数据报队列的优先级,高于除所述不可靠数据报队列之外的其他数据发送队列的优先级。可以尽量避免响应消息受到上述队头阻塞的影响。
具体设置不可靠数据报队列(UD)优先级的方法可参考相关技术,在此不再赘述。
另外,在执行上述步骤S203-S205的过程中,也可以通过不可靠数据报队列(UD)发送响应消息或者发送响应消息的回复时间,且用于发送响应消息或者发送响应消息的回复时间的不可靠数据报队列的优先级,高于除所述不可靠数据报队列之外的其他数据发送队列的优先级,以提高确定的数据包的传输往返时间的实时性。
可选地,本实施例中,通过所述数据接收端的不可靠数据报队列,向多个所述数据发送端发送所述第一接收时间以及所述回复时间。由此,可以通过一个应用程序的一个不可靠数据报队列,即可向多个数据发送端的应用程序返回第一接收时间、响应消息或者响应消息的回复时间。
具体地,由于不可靠数据报队列(UD)发送数据时,可以通过无连接的UD QP类型进行通信,可以避免所有的应用程序之间建立大量数量的连接(100节点存储场景下,每节点千数量级的连接),每个进程只需要一个UD的QP来和其他进程进行响应消息的发送和接收。即,一个应用程序对应的UD,可以同时向多个应用程序返回携带有第一接收时间以及所述回复时间的响应消息,降低了需要建立的连接的数量。
步骤S206、通过所述数据发送端的RDMA网卡硬件接口,获取接收所述响应消息的第二接收时间。
可选地,本申请实施例中,可以通过所述数据发送端的不可靠数据报队列,接收多个所述数据接收端返回的所述第一接收时间以及针对所述数据包的响应消息的回复时间。例如,可以接收携带有第一接收时间以及回复时间的响应消息,或者接收携带有第一接收时间的响应消息,并再次接收响应消息的回复时间等。
与上述类似,通过所述数据接收端的不可靠数据报队列,可以接收多个所述数据接收端的应用程序返回的所述第一接收时间、响应消息或者响应消息的回复时间等,从而可以进一步降低了需要建立的连接的数量。
本实施例中,数据接收端中用于接收所述第一接收时间以及所述回复时间的所述不可靠数据报队列的优先级,高于除所述不可靠数据报队列之外的其他数据接收队列的优先级。以降低拥堵,降低拥堵的原理与上述类似,在此不再赘述。
此外,针对一个应用程序而言,用于发送响应消息的不可靠数据报队列UD和用于接收响应消息的不可靠数据报队列UD可以复用,进一步降低了需要建立的连接的数量。
步骤S207、通过所述数据发送端根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间。
可选地,本申请实施例中,可以根据所述第二接收时间以及所述发送完成时间,确定所述数据包的总计往返时长;根据所述回复时间以及所述第一接收时间,确定所述数据接收端的响应时长;根据所述总计往返时长以及所述响应时长,确定所述数据包的传输往返时间。
具体地,数据包的传输往返时间=总计往返时长-响应时长=(第二接收时间-发送完成时间)-(回复时间-第一接收时间)。
本实施例中,在计算获得数据包的传输往返时间后,可以根据数据包的传输往返时间,确定即将发送的数据包的大小等,以对网络拥塞进行控制。具体控制网络拥塞的方法可参考相关技术,本实施例不再赘述。
实施例三
图3为本申请实施例三的一种数据测量装置的结构框图,应用于通过RDMA网卡向数据接收端发送数据的数据发送端,如图所示,其包括:
发送完成时间获取模块301,用于通过所述数据发送端的RDMA网卡硬件接口,获取向数据接收端发送的数据包的发送完成时间;
回复确定模块302,用于获取所述数据接收端接收所述数据包的第一接收时间,以及所述数据接收端针对所述数据包的响应消息的回复时间,其中,所述第一接收时间通过所述数据接收端的RDMA网卡硬件接口获得;
第二接收时间获取模块303,用于通过所述数据发送端的RDMA网卡硬件接口,获取接收所述响应消息的第二接收时间;
往返时间确定模块304,用于根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间。
可选地,所述回复确定模块,用于通过所述数据发送端的不可靠数据报队列,接收多个所述数据接收端返回的所述第一接收时间以及针对所述数据包的响应消息的回复时间。
可选地,用于接收所述第一接收时间以及所述回复时间的所述不可靠数据报队列的优先级,高于除所述不可靠数据报队列之外的其他数据接收队列的优先级。
可选地,所述往返时间确定模块,包括:总计时长确定模块,用于根据所述第二接收时间以及所述发送完成时间,确定所述数据包的总计往返时长;响应时长确定模块,用于根据所述回复时间以及所述第一接收时间,确定所述数据接收端的响应时长;往返时间确定子模块,用于根据所述总计往返时长以及所述响应时长,确定所述数据包的传输往返时间。
实施例四
图4为本申请实施例四的一种数据测量装置的结构框图,应用于通过RDMA网卡接收数据的数据接收端,如图所示,其包括:
第一接收时间确定模块401,用于通过数据接收端的RDMA网卡硬件接口,获取所述数据接收端接收数据包的第一接收时间;
回复时间获取模块402,用于获取所述数据接收端针对所述数据包的响应消息的回复时间;
发送模块403,用于将所述第一接收时间以及所述回复时间发送至数据发送端,以使所述数据发送端根据向所述数据接收端发送的数据包的发送完成时间、所述第一接收时间、所述回复时间和接收所述响应消息的第二接收时间,确定所述数据包的传输往返时间,其中,所述发送完成时间以及所述第二接收时间均通过所述数据发送端的RDMA网卡硬件接口获得。
可选地,所述回复时间获取模块,用于通过所述数据接收端的应用程序确定针对所述数据包的响应消息的回复时间,并将所述回复时间写入所述响应消息中;
发送模块,用于通过所述数据接收端的不可靠数据报队列,向所述数据发送端发送携带有所述回复时间的所述响应消息。
可选地,用于发送响应消息的不可靠数据报队列的优先级,高于除所述不可靠数据报队列之外的其他数据发送队列的优先级。
可选地,所述所述回复时间获取模块,用于通过所述数据接收端的所述RDMA网卡发送携带有所述第一接收时间的响应消息;通过所述数据接收端的RDMA网卡硬件接口,获取发送所述响应消息的回复时间;
发送模块,用于通过所述数据接收端的所述RDMA网卡,发送所述响应消息的回复时间。
可选地,发送模块,用于通过所述数据接收端的不可靠数据报队列,向多个所述数据发送端发送所述第一接收时间以及所述回复时间。
本申请实施例的数据测量装置用于实现前述多个方法实施例中相应的数据测量方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的数据测量装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
参照图5,示出了根据本申请实施例五的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它电子设备或服务器进行通信。
处理器502,用于执行程序510,具体可以执行上述数据测量方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510中各步骤的具体实现可以参见上述数据测量方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的数据测量方法。此外,当通用计算机访问用于实现在此示出的数据测量方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的数据测量方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (14)
1.一种数据测量方法,应用于通过RDMA网卡向数据接收端发送数据的数据发送端,其中,所述方法包括:
通过所述数据发送端的RDMA网卡硬件接口,获取向数据接收端发送的数据包的发送完成时间;
获取所述数据接收端接收所述数据包的第一接收时间,以及所述数据接收端针对所述数据包的响应消息的回复时间,其中,所述第一接收时间通过所述数据接收端的RDMA网卡硬件接口获得;
通过所述数据发送端的RDMA网卡硬件接口,获取接收所述响应消息的第二接收时间;
根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间。
2.根据权利要求1所述的方法,其中,所述获取所述数据接收端接收所述数据包的第一接收时间,以及所述数据接收端针对所述数据包的响应消息的回复时间,包括:
通过所述数据发送端的不可靠数据报队列,接收多个所述数据接收端返回的所述第一接收时间以及针对所述数据包的响应消息的回复时间。
3.根据权利要求2所述的方法,其中,用于接收所述第一接收时间以及所述回复时间的所述不可靠数据报队列的优先级,高于除所述不可靠数据报队列之外的其他数据接收队列的优先级。
4.根据权利要求1所述的方法,其中,所述根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间,包括:
根据所述第二接收时间以及所述发送完成时间,确定所述数据包的总计往返时长;
根据所述回复时间以及所述第一接收时间,确定所述数据接收端的响应时长;
根据所述总计往返时长以及所述响应时长,确定所述数据包的传输往返时间。
5.一种数据测量方法,应用于通过RDMA网卡接收数据的数据接收端,其中,所述方法包括:
通过数据接收端的RDMA网卡硬件接口,获取所述数据接收端接收数据包的第一接收时间;
获取所述数据接收端针对所述数据包的响应消息的回复时间;
将所述第一接收时间以及所述回复时间发送至数据发送端,以使所述数据发送端根据向所述数据接收端发送的数据包的发送完成时间、所述第一接收时间、所述回复时间和接收所述响应消息的第二接收时间,确定所述数据包的传输往返时间,其中,所述发送完成时间以及所述第二接收时间均通过所述数据发送端的RDMA网卡硬件接口获得。
6.根据权利要求5所述的方法,其中,
所述获取所述数据接收端针对所述数据包的响应消息的回复时间,包括:通过所述数据接收端的应用程序确定针对所述数据包的响应消息的回复时间,并将所述回复时间写入所述响应消息中;
将所述回复时间发送至数据发送端,包括:通过所述数据接收端的不可靠数据报队列,向所述数据发送端发送携带有所述回复时间的所述响应消息。
7.根据权利要求6所述的方法,其中,用于发送响应消息的不可靠数据报队列的优先级,高于除所述不可靠数据报队列之外的其他数据发送队列的优先级。
8.根据权利要求5所述的方法,其中,
所述获取所述数据接收端针对所述数据包的响应消息的回复时间,包括:
通过所述数据接收端的所述RDMA网卡发送携带有所述第一接收时间的响应消息;
通过所述数据接收端的RDMA网卡硬件接口,获取发送所述响应消息的回复时间;
将所述回复时间发送至数据发送端,包括:
通过所述数据接收端的所述RDMA网卡,发送所述响应消息的回复时间。
9.根据权利要求5所述的方法,其中,所述将所述第一接收时间以及所述回复时间发送至数据发送端,包括:
通过所述数据接收端的不可靠数据报队列,向多个所述数据发送端发送所述第一接收时间以及所述回复时间。
10.根据权利要求5所述的方法,其中,所述根据向所述数据接收端发送的数据包的发送完成时间、所述第一接收时间、所述回复时间和接收所述响应消息的第二接收时间,确定所述数据包的传输往返时间,包括:
根据所述第二接收时间以及所述发送完成时间,确定所述数据包的总计往返时长;
根据所述回复时间以及所述第一接收时间,确定所述数据接收端的响应时长;
根据所述总计往返时长以及所述响应时长,确定所述数据包的传输往返时间。
11.一种数据测量装置,应用于通过RDMA网卡向数据接收端发送数据的数据发送端,其中,所述装置包括:
发送完成时间获取模块,用于通过所述数据发送端的RDMA网卡硬件接口,获取向数据接收端发送的数据包的发送完成时间;
回复确定模块,用于获取所述数据接收端接收所述数据包的第一接收时间,以及所述数据接收端针对所述数据包的响应消息的回复时间,其中,所述第一接收时间通过所述数据接收端的RDMA网卡硬件接口获得;
第二接收时间获取模块,用于通过所述数据发送端的RDMA网卡硬件接口,获取接收所述响应消息的第二接收时间;
往返时间确定模块,用于根据所述发送完成时间、所述第一接收时间、所述回复时间和所述第二接收时间,确定所述数据包的传输往返时间。
12.一种数据测量装置,应用于通过RDMA网卡接收数据的数据接收端,其中,所述装置包括:
第一接收时间确定模块,用于通过数据接收端的RDMA网卡硬件接口,获取所述数据接收端接收数据包的第一接收时间;
回复时间获取模块,用于获取所述数据接收端针对所述数据包的响应消息的回复时间;
发送模块,用于将所述第一接收时间以及所述回复时间发送至数据发送端,以使所述数据发送端根据向所述数据接收端发送的数据包的发送完成时间、所述第一接收时间、所述回复时间和接收所述响应消息的第二接收时间,确定所述数据包的传输往返时间,其中,所述发送完成时间以及所述第二接收时间均通过所述数据发送端的RDMA网卡硬件接口获得。
13.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-10中任一项所述的数据测量方法对应的操作。
14.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-10中任一所述的数据测量方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110164009.6A CN113422704A (zh) | 2021-02-05 | 2021-02-05 | 数据测量方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110164009.6A CN113422704A (zh) | 2021-02-05 | 2021-02-05 | 数据测量方法、装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113422704A true CN113422704A (zh) | 2021-09-21 |
Family
ID=77711800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110164009.6A Pending CN113422704A (zh) | 2021-02-05 | 2021-02-05 | 数据测量方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422704A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855935A (zh) * | 2005-04-19 | 2006-11-01 | 索尼株式会社 | 信息处理装置和方法、程序、以及记录介质 |
CN103427935A (zh) * | 2012-05-16 | 2013-12-04 | 中国科学院声学研究所 | 一种消除位置误差的网络时延测量方法及系统 |
CN104144088A (zh) * | 2014-07-24 | 2014-11-12 | 重庆邮电大学 | 一种提高时延测量精度的网络时延测量方法 |
CN111796260A (zh) * | 2019-08-12 | 2020-10-20 | 维沃移动通信有限公司 | 一种测距方法及设备 |
CN111817977A (zh) * | 2019-04-12 | 2020-10-23 | 华为技术有限公司 | 一种网络拥塞控制方法和装置 |
-
2021
- 2021-02-05 CN CN202110164009.6A patent/CN113422704A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855935A (zh) * | 2005-04-19 | 2006-11-01 | 索尼株式会社 | 信息处理装置和方法、程序、以及记录介质 |
CN103427935A (zh) * | 2012-05-16 | 2013-12-04 | 中国科学院声学研究所 | 一种消除位置误差的网络时延测量方法及系统 |
CN104144088A (zh) * | 2014-07-24 | 2014-11-12 | 重庆邮电大学 | 一种提高时延测量精度的网络时延测量方法 |
CN111817977A (zh) * | 2019-04-12 | 2020-10-23 | 华为技术有限公司 | 一种网络拥塞控制方法和装置 |
CN111796260A (zh) * | 2019-08-12 | 2020-10-20 | 维沃移动通信有限公司 | 一种测距方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6705003B2 (ja) | データ伝送方法および関連するデバイス | |
EP4123997A2 (en) | Multi-path rdma transmission | |
CN106850402B (zh) | 消息的传输方法和装置 | |
US7917597B1 (en) | RDMA network configuration using performance analysis | |
CN109690510B (zh) | 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法 | |
He et al. | Reliable blast UDP: Predictable high performance bulk data transfer | |
CN109787868B (zh) | 一种选取路由路径的方法、系统及服务器 | |
US20080049617A1 (en) | System for fine grained flow-control concurrency to prevent excessive packet loss | |
CN110677221B (zh) | 重传控制方法、通信接口和电子设备 | |
US11403253B2 (en) | Transport protocol and interface for efficient data transfer over RDMA fabric | |
CN113422793A (zh) | 数据传输方法、装置、电子设备及计算机存储介质 | |
WO2022089258A1 (zh) | 网络接口卡、控制器、存储装置和报文发送方法 | |
CN112653634A (zh) | 一种流量控制方法、装置、设备及可读存储介质 | |
Le et al. | Rogue: Rdma over generic unconverged ethernet | |
CN104780212A (zh) | 选择连接速度最快的服务器的方法和终端 | |
CN105487937A (zh) | 一种rdma实现方法和装置 | |
WO2023040949A1 (zh) | 网络接口卡、消息发送方法和存储装置 | |
CN113076281B (zh) | 一种Ceph内核客户端进行通信的方法、系统、设备及介质 | |
CN116303173B (zh) | 减少rdma引擎片上缓存的方法、装置、系统及芯片 | |
CN113422704A (zh) | 数据测量方法、装置、电子设备及计算机存储介质 | |
CN111404842B (zh) | 数据传输方法、装置及计算机存储介质 | |
CN104780117A (zh) | 一种网络拥塞信息的获取方法和装置 | |
CN114979022A (zh) | 远程直接数据存取的实现方法、装置、适配器和存储介质 | |
CN114443537A (zh) | 一种pcie信号发送端参数配置方法、装置、设备及介质 | |
CN113411228A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40058766 Country of ref document: HK |