CN114090484A - 远程直接数据存取方法及装置 - Google Patents

远程直接数据存取方法及装置 Download PDF

Info

Publication number
CN114090484A
CN114090484A CN202111347214.2A CN202111347214A CN114090484A CN 114090484 A CN114090484 A CN 114090484A CN 202111347214 A CN202111347214 A CN 202111347214A CN 114090484 A CN114090484 A CN 114090484A
Authority
CN
China
Prior art keywords
messages
data access
message
queue
direct data
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.)
Granted
Application number
CN202111347214.2A
Other languages
English (en)
Other versions
CN114090484B (zh
Inventor
陈国涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yunbao Intelligent Co ltd
Original Assignee
Shenzhen Yunbao Intelligent Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Yunbao Intelligent Co ltd filed Critical Shenzhen Yunbao Intelligent Co ltd
Priority to CN202111347214.2A priority Critical patent/CN114090484B/zh
Publication of CN114090484A publication Critical patent/CN114090484A/zh
Application granted granted Critical
Publication of CN114090484B publication Critical patent/CN114090484B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Communication Control (AREA)

Abstract

本申请实施例提供一种远程直接数据存取方法及装置,方法包括:根据用户下发WQEs中相关域,将不同类型的报文分队列发送;分别维护不同的乱序窗口,当乱序窗口耗尽时,若还没有收到相应的报文,则判定为丢失,若收到正常的BTH指令码的反馈报文,则直接支持RoCEv2协议;本申请能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议。

Description

远程直接数据存取方法及装置
技术领域
本申请涉及数据处理领域,具体涉及一种远程直接数据存取方法及装置。
背景技术
RDMA(Remote Direct Memory Access,远程直接数据存取)使用Queue Pair传输消息。Send queue存储本机的待处理的命令,receive queue存储来自远端的message。Sendqueue中的命令用于将一个APP的data搬到另外一个APP所在的空间。Receive queue中的命令用于存储来自远端的数据。
RDMA传输数据分为三种命令:
(1)RDMA Send,和传统的消息传递模式一样,一端主动传递信息给对端。其中send有4中包格式。Send命令有严格的顺序First/Middle/Last或者Only包。其中这些顺序体现在BTH的OpCode中。
(2)RDMA Read用于将远端的数据搬运到本地的memory中。近端发送读命令{R_Key,VA和Size}等信息到达远端,其中VA是远端待读取的memory的地址。远端将返回若干个response,完成读命令。RETH只存于读请求中,用于请求远端的地址和长度。
(3)RDMA Write用于将本地的数据搬移到远端的memory中。其中RETH报文只存在于first或者only中,当这些报文丢失或者乱序时,远端不知道怎么放置这些报文,只得丢弃后续报文,造成带宽的浪费。
现有技术中的RDMA设计本身是为了高性能低延迟时,这个目标使得RDMA对网络有严苛的要求,就是网络不丢包,否则性能下降会很大,这对底层网络硬件提出更大的挑战,同时也限制了rdma的网络规模。
现有技术中的RDMA除了不能容忍丢包外,本身也不能支持乱序。对于包的发送和接收的顺序有严格要求,这极大的限制了RDMA的大规模部署和性能。
发明内容
针对现有技术中的问题,本申请提供一种远程直接数据存取方法及装置,能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议。
为了解决上述问题中的至少一个,本申请提供以下技术方案:
第一方面,本申请提供一种远程直接数据存取方法,包括:
根据用户下发WQEs中相关域,将不同类型的报文分队列发送;
分别维护不同的乱序窗口,当乱序窗口耗尽时,若还没有收到相应的报文,则判定为丢失,若收到正常的BTH指令码的反馈报文,则直接支持RoCEv2协议。
进一步地,所述将不同类型的报文分队列发送,包括:
当上层的APP需要发送send message时,该命令进入send message队列,发送端根据MTU发送相应的报文;
接收端根据PSN*MTU,将校验通过的报文放入相应的buff。
进一步地,所述将不同类型的报文分队列发送,还包括:
当上层APP有写message时,将所有的写请求放入一个队列,此时发送方向根据写message的大小发送相应的write only报文;
当接收端接收到相应的write only报文后,根据BTH.PSN校验相应的报文,并根据RETH报头中的VA放入相应的内存。
进一步地,所述将不同类型的报文分队列发送,还包括:
当上层APP有读message时,将所有的读请求放入一个队列,此时发送方向发送命令到达对端,所述对端根据BTH.PSN校验是否丢包且发送相关反馈,如果校验通过,接收端则返回响应的读response。
进一步地,在所述将不同类型的报文分队列发送之前,还包括:
将所有的Send message使用一个单独的Send Queue队列;
将所有的read message使用一个单独的Send Queue队列;
将所有的write message使用一个单独的Send Queue队列,并将上述三个SendQueue队列可以共享一个Receive Queue或者分开。
进一步地,所述分别维护不同的乱序窗口包括:
对于Send/write操作,发送端维护一组命令的bitmap,每一个发送的PSN的初始值为0,接收端也维护一组接收命令的bitmap,当PSN和CRC校验通过后,置1;
当接收端长期没有收到PSN=4的packet后,可以发送相关的NAK反馈给发送端;
当发送端收到NAK=4的反馈包,选择性重传PSN=4的packet,同时确认PSN=1/2/3已经正常接收,并滑动发送的窗口。
进一步地,所述分别维护不同的乱序窗口还包括:
对于read操作,收发双方维护同一个命令的bitmap,同时维护同一个response的bitmap;
根据MTU+Len计算出每个命令消耗的PSN数量;
接收端根据MTU+LEN检查是否丢掉了某些read request。
进一步地,所述分别维护不同的乱序窗口还包括:
对于response,接收端和发送端维护同一个bitmap,当发现response丢包时,发送端重传读命令,并更新读命令的VA+Len等信息。
第二方面,本申请提供一种远程直接数据存取装置,包括:
分队列传输模块,用于根据用户下发WQEs中相关域,将不同类型的报文分队列发送;
乱序窗口维护模块,用于分别维护不同的乱序窗口,当乱序窗口耗尽时,若还没有收到相应的报文,则判定为丢失,若收到正常的BTH指令码的反馈报文,则直接支持RoCEv2协议。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的远程直接数据存取方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的远程直接数据存取方法的步骤。
由上述技术方案可知,本申请提供一种远程直接数据存取方法及装置,通过根据传输类型,分别将命令放入不同的队列,能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中的远程直接数据存取方法的流程示意图;
图2为本申请实施例中的远程直接数据存取装置的结构图;
图3为本申请一具体实施例中的Send命令数据流程图;
图4为本申请一具体实施例中的Write命令数据流程图;
图5为本申请一具体实施例中的Read命令数据流程图;
图6为本申请一具体实施例中的Send/write乱序窗口示意图;
图7为本申请一具体实施例中的Read request乱序窗口示意图;
图8为本申请一具体实施例中的Read response乱序窗口示意图;
图9为本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
考虑到现有技术中RDMA设计本身是为了高性能低延迟时,这个目标使得RDMA对网络有严苛的要求,就是网络不丢包,否则性能下降会很大,这对底层网络硬件提出更大的挑战,同时也限制了RDMA的网络规模。RDMA除了不能容忍丢包外,本身也不能支持乱序。对于包的发送和接收的顺序有严格要求,这极大的限制了RDMA的大规模部署和性能的问题,本申请提供一种远程直接数据存取方法及装置,通过根据传输类型,分别将命令放入不同的队列,能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议。
为了能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议,本申请提供一种远程直接数据存取方法的实施例,参见图1,所述远程直接数据存取方法具体包含有如下内容:
步骤S101:根据用户下发WQEs中相关域,将不同类型的报文分队列发送;
步骤S102:分别维护不同的乱序窗口,当乱序窗口耗尽时,若还没有收到相应的报文,则判定为丢失,若收到正常的BTH指令码的反馈报文,则直接支持RoCEv2协议。
从上述描述可知,本申请实施例提供的远程直接数据存取方法,能够通过根据传输类型,分别将命令放入不同的队列,能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议。
参见图3,在本申请的远程直接数据存取方法的一实施例中,上述步骤S101还可以具体包含如下内容:
当上层的APP需要发送send message时,该命令进入send message队列,发送端根据MTU发送相应的报文;
接收端根据PSN*MTU,将校验通过的报文放入相应的buff。
可选的,SEND命令会消耗RQ的WQEs,而每个WQEs里面就是一个buff的地址。这里是根据PSN*MTU,放入相应的buff。
例如一个buff为4Kbyte,10个buff为40Kbyte。则可以放入40个报文。即1~40,可以根据PSN计算自己的位置。
参见图4,在本申请的远程直接数据存取方法的一实施例中,上述步骤S101还可以具体包含如下内容:
当上层APP有写message时,将所有的写请求放入一个队列,此时发送方向根据写message的大小发送相应的write only报文;
当接收端接收到相应的write only报文后,根据BTH.PSN校验相应的报文,并根据RETH报头中的VA放入相应的内存。
参见图5,在本申请的远程直接数据存取方法的一实施例中,上述步骤S101还可以具体包含如下内容:
当上层APP有读message时,将所有的读请求放入一个队列,此时发送方向发送命令到达对端,所述对端根据BTH.PSN校验是否丢包且发送相关反馈,如果校验通过,接收端则返回响应的读response。
在本申请的远程直接数据存取方法的一实施例中,上述步骤S101之前还可以具体包含如下内容:
将所有的Send message使用一个单独的Send Queue队列;
将所有的read message使用一个单独的Send Queue队列;
将所有的write message使用一个单独的Send Queue队列,并将上述三个SendQueue队列可以共享一个Receive Queue或者分开。
参见图6,在本申请的远程直接数据存取方法的一实施例中,上述步骤S102还可以具体包含如下内容:
对于Send/write操作,发送端维护一组命令的bitmap,每一个发送的PSN的初始值为0,接收端也维护一组接收命令的bitmap,当PSN和CRC校验通过后,置1;
当接收端长期没有收到PSN=4的packet后,可以发送相关的NAK反馈给发送端;
当发送端收到NAK=4的反馈包,选择性重传PSN=4的packet,同时确认PSN=1/2/3已经正常接收,并滑动发送的窗口。
参见图7,在本申请的远程直接数据存取方法的一实施例中,上述步骤S102还可以具体包含如下内容:
对于read操作,收发双方维护同一个命令的bitmap,同时维护同一个response的bitmap;
根据MTU+Len计算出每个命令消耗的PSN数量;
接收端根据MTU+LEN检查是否丢掉了某些read request。
参见图8,在本申请的远程直接数据存取方法的一实施例中,上述步骤S102还可以具体包含如下内容:
对于response,接收端和发送端维护同一个bitmap,当发现response丢包时,发送端重传读命令,并更新读命令的VA+Len等信息。
为了能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议,本申请提供一种用于实现所述远程直接数据存取方法的全部或部分内容的远程直接数据存取装置的实施例,参见图2,所述远程直接数据存取装置具体包含有如下内容:
分队列传输模块10,用于根据用户下发WQEs中相关域,将不同类型的报文分队列发送;
乱序窗口维护模块20,用于分别维护不同的乱序窗口,当乱序窗口耗尽时,若还没有收到相应的报文,则判定为丢失,若收到正常的BTH指令码的反馈报文,则直接支持RoCEv2协议。
从上述描述可知,本申请实施例提供的远程直接数据存取装置,能够通过根据传输类型,分别将命令放入不同的队列,能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议。
从硬件层面来说,为了能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议,本申请提供一种用于实现所述远程直接数据存取方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现远程直接数据存取装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的远程直接数据存取方法的实施例,以及远程直接数据存取装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,远程直接数据存取方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图9为本申请实施例的电子设备9600的系统构成的示意框图。如图9所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图9是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,远程直接数据存取方法功能可以被集成到中央处理器9100中。
其中,中央处理器9100可以被配置为进行如下控制:
步骤S101:根据用户下发WQEs中相关域,将不同类型的报文分队列发送;
步骤S102:分别维护不同的乱序窗口,当乱序窗口耗尽时,若还没有收到相应的报文,则判定为丢失,若收到正常的BTH指令码的反馈报文,则直接支持RoCEv2协议。
从上述描述可知,本申请实施例提供的电子设备,通过根据传输类型,分别将命令放入不同的队列,能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议。
在另一个实施方式中,远程直接数据存取装置可以与中央处理器9100分开配置,例如可以将远程直接数据存取装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现远程直接数据存取方法功能。
如图9所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图9中所示的所有部件;此外,电子设备9600还可以包括图9中没有示出的部件,可以参考现有技术。
如图9所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的远程直接数据存取方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的远程直接数据存取方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤S101:根据用户下发WQEs中相关域,将不同类型的报文分队列发送;
步骤S102:分别维护不同的乱序窗口,当乱序窗口耗尽时,若还没有收到相应的报文,则判定为丢失,若收到正常的BTH指令码的反馈报文,则直接支持RoCEv2协议。
从上述描述可知,本申请实施例提供的计算机可读存储介质,通过根据传输类型,分别将命令放入不同的队列,能够解决RoCEv2不支持乱序和重传的问题,能够有效的提高RoCEv2的传输效率,并大规模部署相关协议。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种远程直接数据存取方法,其特征在于,所述方法包括:
根据用户下发WQEs中相关域,将不同类型的报文分队列发送;
分别维护不同的乱序窗口,当乱序窗口耗尽时,若还没有收到相应的报文,则判定为丢失,若收到正常的BTH指令码的反馈报文,则直接支持RoCEv2协议。
2.根据权利要求1所述的远程直接数据存取方法,其特征在于,所述将不同类型的报文分队列发送,包括:
当上层的APP需要发送send message时,该命令进入send message队列,发送端根据MTU发送相应的报文;
接收端根据PSN*MTU,将校验通过的报文放入相应的buff。
3.根据权利要求1所述的远程直接数据存取方法,其特征在于,所述将不同类型的报文分队列发送,还包括:
当上层APP有写message时,将所有的写请求放入一个队列,此时发送方向根据写message的大小发送相应的write only报文;
当接收端接收到相应的write only报文后,根据BTH.PSN校验相应的报文,并根据RETH报头中的VA放入相应的内存。
4.根据权利要求1所述的远程直接数据存取方法,其特征在于,所述将不同类型的报文分队列发送,还包括:
当上层APP有读message时,将所有的读请求放入一个队列,此时发送方向发送命令到达对端,所述对端根据BTH.PSN校验是否丢包且发送相关反馈,如果校验通过,接收端则返回响应的读response。
5.根据权利要求1所述的远程直接数据存取方法,其特征在于,在所述将不同类型的报文分队列发送之前,还包括:
将所有的Send message使用一个单独的Send Queue队列;
将所有的read message使用一个单独的Send Queue队列;
将所有的write message使用一个单独的Send Queue队列,并将上述三个Send Queue队列可以共享一个Receive Queue或者分开。
6.根据权利要求1所述的远程直接数据存取方法,其特征在于,所述分别维护不同的乱序窗口包括:
对于Send/write操作,发送端维护一组命令的bitmap,每一个发送的PSN的初始值为0,接收端也维护一组接收命令的bitmap,当PSN和CRC校验通过后,置1;
当接收端长期没有收到PSN=4的packet后,可以发送相关的NAK反馈给发送端;
当发送端收到NAK=4的反馈包,选择性重传PSN=4的packet,同时确认PSN=1/2/3已经正常接收,并滑动发送的窗口。
7.根据权利要求1所述的远程直接数据存取方法,其特征在于,所述分别维护不同的乱序窗口还包括:
对于read操作,收发双方维护同一个命令的bitmap,同时维护同一个response的bitmap;
根据MTU+Len计算出每个命令消耗的PSN数量;
接收端根据MTU+LEN检查是否丢掉了某些read request。
8.根据权利要求1所述的远程直接数据存取方法,其特征在于,所述分别维护不同的乱序窗口还包括:
对于response,接收端和发送端维护同一个bitmap,当发现response丢包时,发送端重传读命令,并更新读命令的VA+Len等信息。
9.一种远程直接数据存取装置,其特征在于,包括:
分队列传输模块,用于根据用户下发WQEs中相关域,将不同类型的报文分队列发送;
乱序窗口维护模块,用于分别维护不同的乱序窗口,当乱序窗口耗尽时,若还没有收到相应的报文,则判定为丢失,若收到正常的BTH指令码的反馈报文,则直接支持RoCEv2协议。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8任一项所述的远程直接数据存取方法的步骤。
CN202111347214.2A 2021-11-15 2021-11-15 远程直接数据存取方法及装置 Active CN114090484B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111347214.2A CN114090484B (zh) 2021-11-15 2021-11-15 远程直接数据存取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111347214.2A CN114090484B (zh) 2021-11-15 2021-11-15 远程直接数据存取方法及装置

Publications (2)

Publication Number Publication Date
CN114090484A true CN114090484A (zh) 2022-02-25
CN114090484B CN114090484B (zh) 2023-08-08

Family

ID=80300633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111347214.2A Active CN114090484B (zh) 2021-11-15 2021-11-15 远程直接数据存取方法及装置

Country Status (1)

Country Link
CN (1) CN114090484B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109691039A (zh) * 2018-01-16 2019-04-26 华为技术有限公司 一种报文传输的方法及装置
EP3629531A1 (en) * 2018-09-26 2020-04-01 INTEL Corporation Technologies for congestion control for ip-routable rdma over converged ethernet
CN111711566A (zh) * 2020-07-03 2020-09-25 西安电子科技大学 多路径路由场景下的接收端乱序重排方法
CN111786748A (zh) * 2019-08-29 2020-10-16 北京京东尚科信息技术有限公司 数据重传方法和系统、网卡、装置、服务器和存储介质
CN112637015A (zh) * 2020-12-23 2021-04-09 盛科网络(苏州)有限公司 一种基于psn实现rdma网络的丢包检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109691039A (zh) * 2018-01-16 2019-04-26 华为技术有限公司 一种报文传输的方法及装置
EP3629531A1 (en) * 2018-09-26 2020-04-01 INTEL Corporation Technologies for congestion control for ip-routable rdma over converged ethernet
CN111786748A (zh) * 2019-08-29 2020-10-16 北京京东尚科信息技术有限公司 数据重传方法和系统、网卡、装置、服务器和存储介质
CN111711566A (zh) * 2020-07-03 2020-09-25 西安电子科技大学 多路径路由场景下的接收端乱序重排方法
CN112637015A (zh) * 2020-12-23 2021-04-09 盛科网络(苏州)有限公司 一种基于psn实现rdma网络的丢包检测方法及装置

Also Published As

Publication number Publication date
CN114090484B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
CN111031058A (zh) 基于WebSocket的分布式服务器集群交互方法及装置
CN107835040B (zh) 一种基于蓝牙的数据通讯的方法、设备及存储介质
CN112689012A (zh) 跨网络的代理通讯方法及装置
CN110312283B (zh) 一种信息处理方法及装置
US11537190B2 (en) Dual processor system for reduced power application processing
CN111445331A (zh) 交易撮合方法及装置
CN110764881A (zh) 分布式系统后台重试方法及装置
CN111555854A (zh) 用于移动终端游戏过程的3d渲染切换方法及系统
CN111510493B (zh) 分布式数据传输方法及装置
CN112243262A (zh) 通过拆分承载发送数据的电子装置和操作电子装置的方法
CN111338780A (zh) 并发文件的传输方法及装置
CN101719872A (zh) 基于零拷贝方式的多队列报文发送和接收方法和装置
CN106302093B (zh) 一种通信方法、系统及服务器
CN113055483A (zh) 消息中间件数据处理方法、装置及系统
CN1758801B (zh) 移动通信终端中的消息发送设备和方法
CN114090484B (zh) 远程直接数据存取方法及装置
CN111782366A (zh) 一种分布式任务调度方法及装置
CN107241788A (zh) 可穿戴设备的功耗控制方法及装置
CN111930624A (zh) 测试链路报文数据处理方法及装置
CN111338905A (zh) 应用节点数据处理方法及装置
CN115099930A (zh) 金融业务数据处理方法及装置
CN110247808B (zh) 信息发送方法、装置、设备及可读存储介质
CN113596583A (zh) 视频流子弹时间数据处理方法及装置
CN113626086A (zh) 基于共享启动空间的多核处理器启动方法及装置
CN1756261B (zh) 一种基于sctp端点的缓冲区管理方法

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
GR01 Patent grant
GR01 Patent grant