CN105472023B - 一种远程直接存储器存取的方法及装置 - Google Patents

一种远程直接存储器存取的方法及装置 Download PDF

Info

Publication number
CN105472023B
CN105472023B CN201510998375.6A CN201510998375A CN105472023B CN 105472023 B CN105472023 B CN 105472023B CN 201510998375 A CN201510998375 A CN 201510998375A CN 105472023 B CN105472023 B CN 105472023B
Authority
CN
China
Prior art keywords
electronic equipment
address
rdma
request message
write request
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.)
Active
Application number
CN201510998375.6A
Other languages
English (en)
Other versions
CN105472023A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510998375.6A priority Critical patent/CN105472023B/zh
Publication of CN105472023A publication Critical patent/CN105472023A/zh
Application granted granted Critical
Publication of CN105472023B publication Critical patent/CN105472023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]

Abstract

本发明公开一种远程直接存储器存取的方法及装置,该方法应用于第一电子设备中,第一电子设备与第二电子设备之间建立有远程直接存储器存取RDMA连接,该方法包括:第一电子设备通过RDMA连接接收到第二电子设备发送的第一RDMA写请求报文后,从该第一RDMA写请求报文的RDMA协议头中获取第一地址;将第一地址与预存的标志地址进行比较,如果第一地址与标志地址相同,则从第一RDMA写请求报文的协议扩展头中获取第二地址,利用第二地址将处理后的第一RDMA写请求报文写到第二电子设备中第二地址对应的存储区域中。解决现有技术中使用标准的RDMA造成了部分无效的交互,浪费了传输带宽资源和数据交互的延时问题。

Description

一种远程直接存储器存取的方法及装置
技术领域
本发明涉及电子技术领域,尤其涉及一种远程直接存储器存取的方法及装置。
背景技术
远端直接数据存取(Remote direct memory access,RDMA)一般用于网络中主机之间的数据传输。在数据传输过程中,数据源端和数据目的端的主机CPU不需要参与数据的搬移和复制,从而减轻CPU的负担,降低网络上主机之间数据交换的延时。根据底层承载的协议的不同,RDMA技术可以基于TCP协议和无损融合以太网实现。三种实现方式在传输层及以上是相同的。
RDMA协议中,如图1所示,任意两个主机之间需要交互的应用之间需要建立一个队列对(QP)进行通信。
在建立的队列对中包括主机和设备,主机和设备之间的通信,需要主机先将报文传递到设备,设备完成处理后再将报文返回给主机,标准的RDMA写请求操作流程,完成一次报文从主机到设备,设备处理完后再到主机处理流程如图2所示:
步骤201,设备将本地数据缓存地址B传给主机,用于缓存主机发给设备处理的数据的存储;
步骤202,主机返回响应给设备,表面主机已经正确接收到地址信息;
步骤203,主机将需要设备处理的数据通过RDMA写请求报文方式写到设备上的地址B中;
步骤204,设备返回响应给主机,表面设备已经正确接收到报文,设备对报文进行处理,比如压缩解压缩、加解密等硬件加速处理;
步骤205,主机将地址A传递给设备,用于设备处理完成后返回给主机时的存储地址;
步骤206,设备返回响应给主机,表面设备已经正确接收到地址信息;
步骤207,设备将处理完成的数据通过RDMA写请求报文方式写到主机上的地址A中;
步骤208,主机返回响应给设备,表面主机已经正确接收到处理完成后的报文。
现有技术中的主机和设备之间的数据传递基于标准的RDMA协议,数据传递过程交互频繁,对数据交互的时延和速率都有很大的影响。并且,设备接收到报文后可以直接处理报文,或者只需要在设备的接口进行协议无关的缓存,并不需要按照RDMA协议进行地址的申请、注册等管理,所以对应这种主机和设备之间的数据交互,使用标准的RDMA造成了部分无效的交互,浪费了传输带宽资源和数据交互的延时。
发明内容
本发明提供一种远程直接存储器存取的方法及装置,本发明所提供的方法和装置解决现有技术中使用标准的RDMA造成了部分无效的交互,浪费了传输带宽资源和数据交互的延时问题。
第一方面,提供一种远程直接存储器存取的方法,该方法应用于第一电子设备中,第一电子设备与第二电子设备之间建立有远程直接存储器存取RDMA连接;其中,一种典型的应用场景是第一电子设备可以是用于进行业务加速的加速器(例如,基于FPGA等硬件实现的,具备比通用CPU处理能力更强的专用加速器),加速器通常只接收请求,然后返回结果,是一个被动执行的单元;第二电子设备可以是业务请求方,通常也称为主机,实际产品中,可以是服务器、终端等需要进行业务处理的各类产品。
该方法包括:
第一电子设备通过所述RDMA连接接收到第二电子设备发送的第一RDMA写请求报文后,从该第一RDMA写请求报文的RDMA协议头中获取第一地址;
其中,第一电子设备在收到第一RDMA写请求报文时,会先解析报文,得到相应字段的信息,在解析报文时,可以一次性将全部的信息完成解析出来,也可以先解析一部分(如先解析报文头),然后再根据需要解析另外一些部分的信息(如净荷字段),这些都为本领域技术人员所公知的技术,本发明实施例并不对此进行限定及详细描述。
将所述第一地址与预存的标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,对第一RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;
上述两个步骤中的“预存的标志地址”可以理解为一个“伪地址”,该地址的作用仅在于满足协议的要求(因为RDMA协议规定在头中需要携带这个地址),同时,该地址也是通信双约定,共同知道的一个地址,在实际中,会将这个约定地址作为“预存的标志地址”来判断收到的第一地址是不是这个伪地址。在具体实现时,“预存的标志地址”可以保存在一个存储在易失或非易失存器中的文件中,或者也可以通过编程的方式写入代码,在程序执行时,被存在一个临时的存储区中;当“第一地址”与“预存的标志地址”相同时,就判断这是一个“伪地址”,然后进行后续操作;
上述步骤中的“协议扩展头”可以是用户自定义的一个字段,例如,可以采用协议预留的字段,或者也可以在净荷字段中预留一部分来作为这个协议扩展头;
上述步骤中的,“第二地址”即为要写入到第二设备中的存储地址,这是一个真实的地址(并不是前面提到的“伪地址”),后续也是按照正常的流程将其放入到RDMA协议头中(而不是放入到“扩展协议头”);
用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
结合第一方面,在第一种可能的实现方式中,第一电子设备接收到第二电子设备发送的第一RDMA写请求报文之前,当第一电子设备和第二电子设备协商建立RDMA连接时,所述该方法还包括:
第一电子设备接收到第二电子设备发起的RDMA建链请求报文,在响应报文中携带第一电子设备的属性标志;其中,该属性标志用于标示所述第一电子设备对于接收到的RDMA写请求报文直接处理不进行缓存;
接收第二电子设备反馈的所述标志地址;其中,所述标志地址是所述第二电子设备根据所述响应报文中的属性标志构造的地址;
将所述标志地址记录在建立地RDMA连接对应的上下文信息中。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述将所述第一地址与预存的标志地址进行比较之前,该方法还包括:
从所述第一RDMA写请求报文中获取所述RDMA连接对应的连接号;
利用所属连接号查询所述RDMA连接对应的上下文信息,从所述上下文信息中获取所述标志地址。
第二方面,提供一种远程直接存储器存取的装置,该装置应用于第一电子设备中,第一电子设备与第二电子设备之间建立有远程直接存储器存取RDMA连接,该装置包括:
获取模块,用于通过所述RDMA连接接收到第二电子设备发送的第一RDMA写请求报文后,从该第一RDMA写请求报文的RDMA协议头中获取第一地址;
数据处理模块,用于将所述第一地址与预存的标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,对第一RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;
反馈模块,用于利用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
结合第二方面,在第一种可能的实现方式中,所述装置还包括:
标志地址获取模块,用于当第一电子设备和第二电子设备协商建立RDMA连接时,接收到第二电子设备发起的RDMA建链请求报文,在响应报文中携带第一电子设备的属性标志;其中,该属性标志用于标示所述第一电子设备对于接收到的RDMA写请求报文直接处理不进行缓存;接收第二电子设备反馈的所述标志地址;其中,所述标志地址是所述第二电子设备根据所述响应报文中的属性标志构造的地址;将所述标志地址记录在建立地RDMA连接对应的上下文信息中。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该装置还包括:
标识地址获取模块,用于从所述第一RDMA写请求报文中获取所述RDMA连接对应的连接号;利用所属连接号查询所述RDMA连接对应的上下文信息,从所述上下文信息中获取所述标志地址。
上述技术方案中的一个或两个,至少具有如下技术效果:
本发明实施例所提供的方法和装置中,第一电子设备可以是全硬件构造,接收RDMA写请求报文后可以直接进行处理,不需要按照标准的RDMA协议进行缓存,所以第一电子设备端并不需要传递存储RDMA写请求报文的地址给第二电子设备。进而第二电子设备在将RDMA写请求报文发送给第一电子设备的时候,可以构造第一电子设备端存储RDMA写请求报文的一个虚假地址。同时由于报文都是由第二电子设备发送到第一电子设备再到第二电子设备的交互,所以第二电子设备可以在将报文净荷传递给第一电子设备的同时,将自身空闲地址一起传给第一电子设备,作为第一电子设备返回报文给第二电子设备时的存储地址,通过上述方法节省了两次地址传递的交互流程。省去了不必要的地址传输,降低了主机和设备之间报文交互的延时和节省了传输带宽。
附图说明
图1为现有技术中主机之间建立一个队列对进行通信的示意图;
图2为现有技术中标准的RDMA写请求操作流程的示意图;
图3为本发明实施例提供一种远程直接存储器存取的方法示意图;
图4为本发明实施例所提供方法应用到实际场景中的流程示意图;
图5为本发明实施例提供一种远程直接存储器存取的装置的结构示意图;
图6为本发明实施例提供的另一种远程直接存储器存取的装置的结构示意图;
图7为本发明实施例提供的另一种远程直接存储器存取的装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合说明书附图对本发明实施例作进一步详细描述。
如图3所示,本发明实施例提供一种远程直接存储器存取的方法,该方法应用于第一电子设备中,第一电子设备与第二电子设备之间建立有远程直接存储器存取RDMA连接,该方法包括:
本实施例所提供的方法主要应用于第一电子设备和第二电子设备之间通信的应用场景,其中报文交互都是有第二电子设备发给第一电子设备进行处理,并且第一电子设备处理完成后直接返回给第二电子设备的通信场景中。
步骤301,第一电子设备通过所述RDMA连接接收到第二电子设备发送的第一RDMA写请求报文后,从该第一RDMA写请求报文的RDMA协议头中获取第一地址;
在现有技术的方案中,第一地址的作用是标示第一RDMA写请求报文写入第一电子设备时的存储地址,但是在本发明实施例中,因为第一RDMA写请求报文是直接进行处理的报文并不需要第一电子设备对其进行缓存,所以在实现第一RDMA写请求报文的处理时,并不需要缓存地址;在该情况下,为了减少处理流程,本发明实施例中提供的第一地址是第二电子设备构造的虚假地址,该第一地址的作用是用于标示第一电子设备接收到第一RDMA写请求报文后直接进行处理,并不需要进行缓存。
步骤302,将所述第一地址与预存的标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,并对第一RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;
在该实施例中,在RDMA协议头中解析出的第一地址如果与第一电子设备本地存储的标志地址相同,则说明该第一地址是虚假地址,第一电子设备则不需要对第一RDMA写请求报文进行缓存;进一步,在处理完第一RDMA写请求报文后,也不需要再与第二电子设备交互获取反馈结果数据的存储地址,因为第二电子设备在发送第一RDMA写请求报文之前,就已经申请了存储结果数据的地址并携带在第一RDMA写请求报文中,所以第一电子设备检测到与标志地址相同的第一地址后,还可以从第一RDMA写请求报文的扩展协议头中获取到第二电子设备存储结果数据的第二地址。
步骤303,用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
因为第二地址是携带在第一RDMA写请求报文中的,所以第一电子设备在反馈结果数据的时候,可以直接将第二地址和所述结果数据构造第二RDMA写请求报文,并利用第二地址将第二RDMA写请求报文写入第二电子设备。
本发明实施例中,第一电子设备可以是全硬件构造,接收RDMA写请求报文后可以直接进行处理,不需要按照标准的RDMA协议进行缓存,所以第一电子设备端并不需要传递存储RDMA写请求报文的地址给第二电子设备。进而第二电子设备在将RDMA写请求报文发送给第一电子设备的时候,可以构造第一电子设备端存储RDMA写请求报文的一个虚假地址。同时由于报文都是由第二电子设备发送到第一电子设备再到第二电子设备的交互,所以第二电子设备可以在将报文净荷传递给第一电子设备的同时,将自身空闲地址一起传给第一电子设备,作为第一电子设备返回报文给第二电子设备时的存储地址,通过上述方法节省了两次地址传递的交互流程。省去了不必要的地址传输,降低了主机和设备之间报文交互的延时和节省了传输带宽。
在本发明实施例中,第一电子设备和第二电子设备可以通过协商的方式实现标志地址的识别,则在该实施例中两个电子设备协商标志地址的方式可以包括多种,以下提供一种可实现的方式;当第一电子设备和第二电子设备协商建立RDMA连接时,实现具体包括:
A,第一电子设备接收到第二电子设备发起的RDMA建链请求报文,在响应报文中携带第一电子设备的属性标志;其中,该属性标志用于标示所述第一电子设备对于接收到的RDMA写请求报文直接处理不进行缓存;
在该实施例中,如果响应报文中携带有第一电子设备的属性标志,则表明第一电子设备对于建链成功后的RDMA业务报文可直接处理后返回给第二电子设备,不需要进行缓存;
B,接收第二电子设备反馈的所述标志地址;其中,所述标志地址是所述第二电子设备根据所述响应报文中的属性标志构造的地址;
对于接收到响应报文的第二电子设备,如果从响应报文中获取到携带的第一电子设备的特殊属性标志,则构造标志地址,并将该标志地址通过RDMA建链协商报文发给第一电子设备;在本发明实施例中,第一地址和标识地址可以是相同的两个地址,另外可以是具有对应关系的两个地址。
C,将所述标志地址记录在建立地RDMA连接对应的上下文信息中。
进一步,当第一电子设备在收到第二电子设备发送的第一RDMA写请求报文后,可以通过以下方式去获取该第一RDMA写请求报文对应的标志地址,具体方法包括:
从所述第一RDMA写请求报文中获取所述RDMA连接对应的连接号;
利用所属连接号查询所述RDMA连接对应的上下文信息,从所述上下文信息中获取所述标志地址。
为了更详细的说明本发明实施例所提供的方法,以下结合具体的应用场景对本发明的方案进一步的说明,具体应用场景,该方法主要应用于设备(即第一电子设备)和主机(即第二电子设备)之间通信的应用场景,其中报文交互都是有主机发给设备进行处理,并且设备处理完成后直接返回给主机的通信场景中。该方法具体包括(方法具体实现流程如图4所示):
步骤401,主机根据属性标志构造虚假地址V,通过建链过程中建链协商报文传给设备端,并在建立RDMA链路成功后,主机和设备分别在RDMA链路上下文中记录该虚假地址V(该虚假地址V对应图3所示实施例的标志地址);
如果主机请求使用设备的硬件处理引擎,表示设备端只是作为从设备,对主机发送的数据进行处理后反馈给主机;则会在建链请求中携带属性标志,属性标志用于指示设备只是作为主机的从设备进行数据处理。
步骤402,主机端每次向设备端发送RDMA写请求报文的时候,都首先申请本地空闲地址A,地址A用于设备处理完RDMA写请求报文后返回主机的存储地址;
步骤403,主机构造RDMA写请求报文,RDMA写请求报文RDMA的协议头中对端地址用虚假地址V填充,本地空闲地址A填充在扩展头中,主机端将构造好的RDMA写请求报文发送到设备;
步骤404,设备接收到RDMA写请求报文后,根据RDMA写请求报文中携带的连接号查询RDMA连接对应的上下文,确定虚假地址V是否与本地存的虚假地址相同;若相同,则从该报文的协议扩展头中获取主机端的空闲地址;完成协议校验后,给主机发送响应信息,表示设备已经正常接收到RDMA写请求报文;
如果虚假地址V是否与本地存的虚假地址相同,则说明链路对应的设备只是主机的从设备,RDMA写请求报文协议头中地址为虚假地址不与具体的缓存空间对应;同时报文含有协议扩展头,该协议扩展头含有主机端的空闲地址A。
步骤405,设备解析RDMA写请求报文,将报文净荷进行处理;
本步骤中,假设前面只解析了报文头,则本步骤继续进行解析,解析出报文净荷;
步骤406,设备用地址A构造新的RDMA写报文,将新的RDMA写报文写到主机地址A中;
步骤407,主机在接收到新的RDMA写报文后给设备发送响应信息,表示主机已经正确接收到处理完成后的报文。
如图5所示,本发明实施例还提供一种远程直接存储器存取的装置,该装置应用于第一电子设备中,第一电子设备与第二电子设备之间建立有远程直接存储器存取RDMA连接,该装置包括:
获取模块501,用于通过所述RDMA连接接收到第二电子设备发送的第一RDMA写请求报文后,从该第一RDMA写请求报文的RDMA协议头中获取第一地址;
数据处理模块502,用于将所述第一地址与预存的标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,对第一RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;
反馈模块503,用于利用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
进一步,在具体实现标志地址的协商时候,该装置还可以包括:
标志地址获取模块,用于当第一电子设备和第二电子设备协商建立RDMA连接时,接收到第二电子设备发起的RDMA建链请求报文,在响应报文中携带第一电子设备的属性标志;其中,该属性标志用于标示所述第一电子设备对于接收到的RDMA写请求报文直接处理不进行缓存;接收第二电子设备反馈的所述标志地址;其中,所述标志地址是所述第二电子设备根据所述响应报文中的属性标志构造的地址;将所述标志地址记录在建立地RDMA连接对应的上下文信息中。
更优化的,该装置还包括:
标识地址获取模块,用于从所述第一RDMA写请求报文中获取所述RDMA连接对应的连接号;利用所属连接号查询所述RDMA连接对应的上下文信息,从所述上下文信息中获取所述标志地址。
如图6所示,本发明还提供另一种远程直接存储器存取装置,用于执行前述各个实施例中的远程直接存储器存取方法,该装置设置于第一或第二电子设备中,第一电子设备与第二电子设备之间建有RDMA连接,该装置包括至少一个处理器601(例如CPU),至少一个网络接口602或者其他通信接口,存储器603,和至少一个通信总线604,用于实现这些装置之间的连接通信。处理器601用于执行存储器603中存储的可执行模块,例如计算机程序。存储器603可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口602(可以是有线或者无线)实现该系统网关与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等;该服务器中还设置有文件系统;该文件系统用于管理目录和文件,并且每个目录对应一个目录存储对象,该目录存储对象中包括对应的目录中所包括的文件或目录的属性列表,所述属性列表中包括所述文件或目录的名称和属性信息。
在一些实施方式中,存储器存储了程序6031,程序可以被处理器执行,这个程序包括:
接收到第二电子设备发送的第一RDMA写请求报文后,从该第一RDMA写请求报文的RDMA协议头中获取第一地址;
将所述第一地址与预存的标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,对第一RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;
用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
如图7所示,为另一种远程直接存储器存取装置70的另一个硬件实现架构图,其基于FPGA芯片71及一些附属电路72(如电源电路等)实现,通过对FPGA进行硬件编程,使之能够执行上述实施例中的相应方法。
在一种典型的应用场景中,第一电子设备中的远程直接存储器存取装置可采用图7所示的硬件架构,第二电子设备中对应的远程直接存储器存取装置可采用如图6所示的硬件架构。
本申请实施例中的上述一个或多个技术方案,至少具有如下的技术效果:
本发明实施例中,第一电子设备可以是全硬件构造,接收RDMA写请求报文后可以直接进行处理,不需要按照标准的RDMA协议进行缓存,所以第一电子设备端并不需要传递存储RDMA写请求报文的地址给第二电子设备。进而第二电子设备在将RDMA写请求报文发送给第一电子设备的时候,可以构造第一电子设备端存储RDMA写请求报文的一个虚假地址。同时由于报文都是由第二电子设备发送到第一电子设备再到第二电子设备的交互,所以第二电子设备可以在将报文净荷传递给第一电子设备的同时,将自身空闲地址一起传给第一电子设备,作为第一电子设备返回报文给第二电子设备时的存储地址,通过上述方法节省了两次地址传递的交互流程。省去了不必要的地址传输,降低了主机和设备之间报文交互的延时和节省了传输带宽。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种远程直接存储器存取的方法,其特征在于,该方法应用于第一电子设备中,所述第一电子设备与第二电子设备之间建立有远程直接存储器存取RDMA连接,该方法包括:
所述第一电子设备通过所述RDMA连接接收到所述第二电子设备发送的第一RDMA写请求报文后,从该第一RDMA写请求报文的RDMA协议头中获取第一地址;
将所述第一地址与预存的标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,对第一RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;所述第二地址为所述第二电子设备的空闲地址;
用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
2.如权利要求1所述的方法,其特征在于,第一电子设备接收到第二电子设备发送的第一RDMA写请求报文之前,当第一电子设备和第二电子设备协商建立RDMA连接时,所述该方法还包括:
第一电子设备接收到第二电子设备发起的RDMA建链请求报文,在响应报文中携带第一电子设备的属性标志;其中,该属性标志用于标示所述第一电子设备对于接收到的RDMA写请求报文直接处理不进行缓存;
接收第二电子设备反馈的所述标志地址;其中,所述标志地址是所述第二电子设备根据所述响应报文中的属性标志构造的地址;
将所述标志地址记录在建立的RDMA连接对应的上下文信息中。
3.如权利要求2所述的方法,其特征在于,所述将所述第一地址与预存的标志地址进行比较之前,该方法还包括:
从所述第一RDMA写请求报文中获取所述RDMA连接对应的连接号;
利用所述连接号查询所述RDMA连接对应的上下文信息,从所述上下文信息中获取所述标志地址。
4.一种远程直接存储器存取的装置,其特征在于,该装置应用于第一电子设备中,第一电子设备与第二电子设备之间建立有远程直接存储器存取RDMA连接,该装置包括:
获取模块,用于通过所述RDMA连接接收到第二电子设备发送的第一RDMA写请求报文后,从该第一RDMA写请求报文的RDMA协议头中获取第一地址;
数据处理模块,用于将所述第一地址与预存的标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,对第一RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;所述第二地址为所述第二电子设备的空闲地址;
反馈模块,用于利用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
5.如权利要求4所述的装置,其特征在于,所述装置还包括:
标志地址获取模块,用于当第一电子设备和第二电子设备协商建立RDMA连接时,接收到第二电子设备发起的RDMA建链请求报文,在响应报文中携带第一电子设备的属性标志;其中,该属性标志用于标示所述第一电子设备对于接收到的RDMA写请求报文直接处理不进行缓存;接收第二电子设备反馈的所述标志地址;其中,所述标志地址是所述第二电子设备根据所述响应报文中的属性标志构造的地址;将所述标志地址记录在建立的RDMA连接对应的上下文信息中。
6.如权利要求5所述的装置,其特征在于,该装置还包括:
标识地址获取模块,用于从所述第一RDMA写请求报文中获取所述RDMA连接对应的连接号;利用所述连接号查询所述RDMA连接对应的上下文信息,从所述上下文信息中获取所述标志地址。
CN201510998375.6A 2014-12-31 2015-12-26 一种远程直接存储器存取的方法及装置 Active CN105472023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510998375.6A CN105472023B (zh) 2014-12-31 2015-12-26 一种远程直接存储器存取的方法及装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2014108555802 2014-12-31
CN201410855580 2014-12-31
CN201510998375.6A CN105472023B (zh) 2014-12-31 2015-12-26 一种远程直接存储器存取的方法及装置

Publications (2)

Publication Number Publication Date
CN105472023A CN105472023A (zh) 2016-04-06
CN105472023B true CN105472023B (zh) 2018-11-20

Family

ID=55609286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510998375.6A Active CN105472023B (zh) 2014-12-31 2015-12-26 一种远程直接存储器存取的方法及装置

Country Status (1)

Country Link
CN (1) CN105472023B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109426631A (zh) * 2017-08-30 2019-03-05 深圳市中兴微电子技术有限公司 一种基于rdma的通信方法、装置及存储介质
CN109981480A (zh) * 2017-12-27 2019-07-05 华为技术有限公司 一种数据传输方法及第一设备
CN110647480B (zh) * 2018-06-26 2023-10-13 华为技术有限公司 数据处理方法、远程直接访存网卡和设备
CN109587112B (zh) * 2018-10-25 2021-02-12 华为技术有限公司 一种发送数据的方法、接收数据的方法、设备及系统
CN112243046B (zh) 2019-07-19 2021-12-14 华为技术有限公司 通信方法和网卡
CN110704361A (zh) * 2019-08-28 2020-01-17 阿里巴巴集团控股有限公司 Rdma数据发送及接收方法、电子设备及可读存储介质
CN114731282B (zh) * 2019-11-22 2023-06-02 华为技术有限公司 处理非缓存写数据请求的方法、缓存器和节点
US20210306166A1 (en) * 2020-03-30 2021-09-30 Mellanox Technologies Tlv Ltd. Network information transmission systems
CN113326228B (zh) * 2021-07-30 2022-01-11 阿里云计算有限公司 基于远程直接数据存储的报文转发方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1832488A (zh) * 2006-04-13 2006-09-13 杭州华为三康技术有限公司 实现SPI4设备与PCI Express设备互连的系统及方法
CN103902486A (zh) * 2014-04-08 2014-07-02 华为技术有限公司 一种远端直接内存访问实现方法、装置及系统
CN103929415A (zh) * 2014-03-21 2014-07-16 华为技术有限公司 Rdma下数据读写的方法、装置和网络系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7944920B2 (en) * 2002-06-11 2011-05-17 Pandya Ashish A Data processing system using internet protocols and RDMA

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1832488A (zh) * 2006-04-13 2006-09-13 杭州华为三康技术有限公司 实现SPI4设备与PCI Express设备互连的系统及方法
CN103929415A (zh) * 2014-03-21 2014-07-16 华为技术有限公司 Rdma下数据读写的方法、装置和网络系统
CN103902486A (zh) * 2014-04-08 2014-07-02 华为技术有限公司 一种远端直接内存访问实现方法、装置及系统

Also Published As

Publication number Publication date
CN105472023A (zh) 2016-04-06

Similar Documents

Publication Publication Date Title
CN105472023B (zh) 一种远程直接存储器存取的方法及装置
CN105052114A (zh) Diameter/XML协议转换
CN110166414B (zh) 一种通信方法、装置及系统
CN104243281B (zh) 基于移动互联网的语音通信方法
HK1066953A1 (en) Method for streaming data between a server and a client
CN104618365B (zh) 协议报文处理方法、装置及终端
CN104125145B (zh) 基于网页浏览器的通信方法、设备和系统
CN102710765A (zh) 一种cdn服务器实现透明代理的方法、装置及系统
CN110460641A (zh) 数据传输方法、装置及系统
CN102594886B (zh) 浏览器与浏览器直通的方法、装置和通信系统
CN101714926A (zh) 网络设备管理方法、装置及系统
US11863633B2 (en) Cloud communication method and apparatus
CN1863202B (zh) 提高负载均衡设备和服务器处理性能的方法
CN108667817A (zh) 报文转换系统和报文转换方法
CN103581361A (zh) 一种域名解析代理方法、设备及系统
CN104601206A (zh) 用于控制主机和控制器之间的消息的方法和装置
CN103796191A (zh) 向用户终端发送数据的方法、装置及终端
US11457094B2 (en) Network system and conversion apparatus crossing different transmission protocols
CN103731424B (zh) 一种网络数据的传输方法、装置及系统
CN110430478B (zh) 组网通信方法、装置、终端设备及存储介质
CN103560937A (zh) 数据访问方法和入口服务器
CN108011801A (zh) 数据传输的方法、设备、装置及系统
CN108111575B (zh) 一种可扩展的客户机与虚拟机数据交互系统
US9509559B2 (en) Bandwidth control apparatus, bandwidth control method, and bandwidth control program
KR100431206B1 (ko) 고속 라우터에서 분산 포워딩을 위한 테이블 관리 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant