CN116320079A - 报文传输方法、装置、电子设备和存储介质 - Google Patents
报文传输方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116320079A CN116320079A CN202111467655.6A CN202111467655A CN116320079A CN 116320079 A CN116320079 A CN 116320079A CN 202111467655 A CN202111467655 A CN 202111467655A CN 116320079 A CN116320079 A CN 116320079A
- Authority
- CN
- China
- Prior art keywords
- rdma
- message
- value information
- key value
- hash table
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及通信技术领域,特别涉及一种报文传输方法、装置、电子设备和存储介质。报文传输方法包括:接收远程直接数据存取RDMA数据包;对所述RDMA数据包进行解析,获取RDMA报文头和RDMA报文;根据所述RDMA报文头获取键值信息;根据所述键值信息从预设的散列表中获取所述RDMA报文的目的地址,并将所述RDMA报文写入所述目的地址对应的内存空间中。由于发送端的键值信息和接收端的目的地址以散列表的形式存储在接收端中,接收端不用对为各发送端分配的接收内存空间进行管理,只需要对散列表进行管理和维护,提高接收端进行内存空间管理的灵活性。解决现有技术中由于接收端需要对为各发送端分配的接收内存空间进行管理所导致的内存空间管理复杂的问题。
Description
技术领域
本申请实施例涉及通信技术领域,特别涉及一种报文传输方法、装置、电子设备和存储介质。
背景技术
远程直接内存访问技术(Remote Direct Memory Access,简称RDMA)是为了降低中央处理器(central processing unit,简称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报文写入目的地址对应的内存空间中。由于发送端的键值信息和接收端的目的地址以散列表的形式存储在接收端中,接收端不用对为各发送端分配固定的接收内存空间进行管理,只需要对散列表进行管理和维护,可以提高接收端进行内存空间管理的灵活性。解决了现有技术中由于接收端需要对为各发送端分配固定的接收内存空间进行管理所导致的内存空间管理复杂的技术问题。
附图说明
图1是本申请实施例提供的报文传输方法的流程图;
图2是本申请实施例提供的报文传输方法的流程图;
图3是本申请实施例提供的报文传输方法的流程图;
图4是本申请实施例提供的报文传输方法的流程图;
图4a是本申请实施例提供的接收端和发送端的结构示意图;
图5是本申请实施例提供的报文传输方法的流程图;
图6是本申请实施例提供的报文传输装置的结构示意图;
图7是本申请实施例提供的报文传输装置的结构示意图;
图8是本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本申请的实施例涉及一种报文传输方法,应用在接收端,如图1所示,包括:
步骤101,接收远程直接数据存取RDMA数据包。
在一示例实施中,接收端所接收的RDMA数据包是经过封装的以太网包,发送端在获取到需要进行报文传输的RDMA报文后,生成该RDMA报文的RDMA报文头,将RDMA报文头和RDMA报文封装成RDMA数据包,发送给接收端。其中,本申请实施例并不对RDMA报文头和RDMA报文封装成RDMA数据包的封装方式进行限定,任意一种封装方式均可以,但发送端在确定好封装方式之后,需要将确定好的封装方式对应的解封装方法发送至接收端,以使接收端能够从RDMA数据包中还原出RDMA报文头和RDMA报文。
步骤102,对RDMA数据包进行解析,获取RDMA报文头和RDMA报文。
在一示例实施中,接收端在接收到RDMA数据包之后,首先采用预设的解封装方式对RDMA数据包进行解封装操作,从RDMA数据包中解析出RDMA报文头和RDMA报文,其中,预设的解封装方式是与发送端所使用的封装方式对应的解封装方式。
步骤103,根据RDMA报文头获取键值信息。
在一示例实施中,RDMA报文头实际上使用键值信息生成的,可以直接从RDMA报文头中的指定位置出获取到键值信息。
步骤104,根据键值信息从预设的散列表中获取RDMA报文的目的地址,并将RDMA报文写入目的地址对应的内存空间中。
在一示例实施中,接收端预先存储有键值信息和目的地址对应关系的散列表,在确定好键值信息之后,就可以根据键值信息从散列表中查找与该键值信息对应的目的地址,在RDMA报文的目的地址确定之后,接收端会将RDMA报文写入与该目的地址对应的内存空间中,当RDMA报文全部写入完成时,该RDMA报文的报文传输工作也就完成。
本申请实施例,在接收端的报文传输过程中,接收远程直接数据存取RDMA数据包;对RDMA数据包进行解析,获取RDMA报文头和RDMA报文;根据RDMA报文头获取键值信息;根据键值信息从预设的散列表中获取RDMA报文的目的地址,并将RDMA报文写入目的地址对应的内存空间中。由于发送端的键值信息和接收端的目的地址以散列表的形式存储在接收端中,接收端不用对为各发送端分配固定的接收内存空间进行管理,只需要对散列表进行管理和维护,可以提高接收端进行内存空间管理的灵活性。解决了现有技术中由于接收端需要对为各发送端分配固定的接收内存空间进行管理所导致的内存空间管理复杂的技术问题。
本申请的实施例涉及一种报文传输方法,应用在接收端,如图2所示,包括:
步骤201,接收远程直接数据存取RDMA数据包。
在一示例实施中,本步骤与本申请实施例的步骤101大致相同,此处不一一赘述。
步骤202,对RDMA数据包进行解析,获取RDMA报文头和RDMA报文。
在一示例实施中,本步骤与本申请实施例的步骤102大致相同,此处不一一赘述。
步骤203,根据RDMA报文头获取键值信息。
在一示例实施中,本步骤与本申请实施例的步骤103大致相同,此处不一一赘述。
步骤204,对键值信息进行哈希运算,获取条目索引。
在一示例实施中,键值信息实际上是一段长度不固定的字符段,可以对键值信息进行哈希运算,来得到一个固定长度的字符段,将该固定长度的字符段作为散列值,而散列值实际上就是散列表中各散列调度的条目索引。
步骤205,根据条目索引查找预设的散列表,获取与条目索引对应的散列表条目中的目的地址,并将RDMA报文写入目的地址对应的内存空间中。
在一示例实施中,在获取到条目索引之后,在散列表中查找与该条目索引对应的散列表条目,在查到找散列表条目之后,从该散列表条目中获取到目的地址,散列表条目中的目的地址就是所接收到的RDMA报文的目的地址,在RDMA报文的目的地址确定之后,接收端会将RDMA报文写入与该目的地址对应的内存空间中,当RDMA报文全部写入完成时,该RDMA报文的报文传输工作也就完成。
在一示例实施中,由于散列表条目是由键值信息和目的地址构成的,在散列表条目确定好之后,可以先将散列表条目中的键值信息和接收端所接收的键值信息进行对比,检测这两个键值信息是否一致,只有在两个键值信息一致时,才将RDMA报文写入到目的地址中。
本申请的实施例,在其他实施例的基础之上还可以通过查表的方式获取到RDMA报文的传输地址,省略了发送端在RDMA报文在传输前需要通过各类握手协议交互来获取接收端的接收地址这一步骤,提高了进行报文传输的速度和效率。
本申请的实施例涉及一种报文传输方法,应用在接收端,如图3所示,包括:
步骤301,接收发送端的协商报文,其中,协商报文中包含各消息类型对应的各键值信息。
在一示例实施中,在接收端和发送端第一次建立链接时,接收端和发送端首先需要进行协商,发送端确定RDMA报文的消息类型和键值信息的对应关系,接收端确定RDMA报文的键值信息和目的地址的对应关系;发送端在为每一种消息类型的RDMA报文构造好键值信息之后,将各键值信息封装为协商报文发送给接收端。
步骤302,解析协商报文获取各键值信息,并对各键值信息进行哈希运算获取各散列值。
在一示例实施中,接收端在接收到发送端发送的协商报文之后,会从协商报文中解析出各键值信息,如键值信息1、键值信息2和键值信息3;在对各键值信息进行哈希运算得到各散列值,如散列值1、散列值2和散列值3。
在一示例实施中,在接收端只需要获取到键值信息即可,并不关注该键值信息与哪种消息类型对应。
在一示例实施中,接收端除了获取到键值信息,还需要获取该键值信息与哪种消息类型对应,以便根据消息类型为各键值信息分配相对应的目的地址,是得本申请在分配目的地址时,可以根据各消息类型所需要的内存空间来分配。
步骤303,根据接收端的内存空间为各键值信息分配各目的地址。
在一示例实施中,在接收端获取到键值信息后,可以根据接收端当前的内存空间来给各键值信息分配相对于的内存空间,在内存空间分配好之后,可以将获取到所分配的内存空间的目的地址,如目的地址1、目的地址2和目的地址3。
步骤304,将各散列值作为各键值信息在散列表中的各条目索引,将各键值信息和各目的地址作为各散列表条目存储在散列表中。
在一示例实施中,在键值信息、散列值和目的地址都确定好之后,将散列值作为散列值中散列条目的条目索引、将键值信息和目的地址作为散列值中散列条目的条目内容,以此来形成散列表。
在一示例实施中,在接收发送端的协商报文时,还可以接收该发送端的标识,为与接收端连接的各发送端分别建立一个散列子表,在根据键值信息查找散列表时,可以先根据RDMA数据包中的发送端标识从散列表中确定散列子表之后再查找该散列子表获取目的地址。
在一示例实施中,散列表的样式如表1所示:
表1接收端的散列表
在一示例实施中,在需要对散列表进行修改或需要重新分配目的地址时,可以先确定好需要修改的第一键值信息,根据第一键值信息获取第一散列值,在散列表中查找与第一散列值对应的第一散列条目,直接修改该第一散列条目中的键值信息或目的地址即可;也可以删除与第一散列值对应的第一散列条目,并重新为第一键值信息构建新的散列条目。
在一示例实施中,接收端可以对散列表中的各散列条目的使用频率进行检测,当使用频率低于预设阈值时,删除与该使用频率对应的散列条目。
本申请的实施例,在其他实施例的基础之上还可以接收端在接收RDMA报文之前,先于发送端进行协商,确定键值信息和目的地址的对应关系,并存储在散列表中,在接收端增加与其进行连接的发送端的个数和消息类型时只会增加少量散列表大小,对于接收数据区的管理变得更加灵活,且在键值信息和目的地址的对应关系发生变更时,只需要修改散列表,不需要与所有发送端进行重新协商,避免了进行重新协商占用大量带宽。
本申请的实施例涉及一种报文传输方法,应用在发送端,如图4所示,包括:
步骤401,根据待发送的远程直接数据存取RDMA报文构造键值信息。
在一示例实施中,发送端在确定好要传输的RDMA报文之后,首先会根据要传输的RDMA报文构造一个键值信息,所构造的键值信息可以是一段长度不固定的字符断。
在一示例实施中,发送端和接收端的结构示意图如图4a所示,发送端和接收端为两个可以互相进行远程直接内存访问的系统或芯片。发送端由CPU、RDMA_TX和ETH组成,接收端由CPU、RDMA_RX和ETH组成。其中,CPU负责发送端和接收端的连接建立、内存空间的分配、RDMA报文消息类型的指定以及散列表的维护等工作;RDMA_TX的作用是根据CPU指定的消息类型封装RDMA数据包并发送出去;RDMA_RX负责接收RDMA数据包,并从RDMA数据包中提取键值信息进行哈希运算查找散列表,得到RDMA报文的目的地址,然后根据目的地址将报文写入对应的内存空间中;ETH是以太网接口,实现发送端的以太网L1和接收端的以太网L1的处理功能。
步骤402,根据键值信息从预设报文头中获取RDMA报文头。
在一示例实施中,发送端预设有键值信息和RDMA报文头的映射表,发送端在获取到要传输的RDMA报文的键值信息之后,根据键值信息查找映射表,从中获取到与键值信息对应的RDMA报文头。
步骤403,对RDMA报文头和RDMA报文进行封装,生成RDMA数据包。
在一示例实施中,在获取到RDMA报文头之后,对RDMA报文头和RDMA报文进行封装,将RDMA报文头和RDMA报文封装为RDMA数据包,本申请并不对封装方式进行具体的限定,任意一种对数据报文进行封装的方法都可以采用。
在一示例实施中,当发送端要传输的RDMA报文包含多种消息类型时,可以将RDMA报文根据消息类型进行划分,一种消息类型封装为一个RDMA数据包,也可以将多种键值信息对应的RDMA报文头合并为一种RDMA报文头,合并后的RDMA报文头包含有多个键值信息,之后将合并后的RDMA报文头和RDMA报文进行封装。
步骤404,将RDMA数据包发送至接收端,以供接收端根据所述RDMA报文头获取键值信息,根据键值信息从预设散列表中获取RDMA报文的目的地址,将RDMA报文写入目的地址对应的内存空间中。
在一示例实施中,获取到RDMA数据包之后,根据发送端和接收端的传输协议,将RDMA数据包传输到接收端,接收端在接收到RDMA数据包之后,从中解析出RDMA报文头和RDMA报文,再从RDMA报文头中获取到键值信息,从预设的散列表中获取到与键值信息对应的目的地址,之后将RDMA报文写入与目的地址对应的内存空间中,完成RDMA报文的传输。
本申请的实施例,在接收端的报文传输过程中,根据待发送的远程直接数据存取RDMA报文构造键值信息;根据键值信息从预设报文头中获取RDMA报文头;对RDMA报文头和RDMA报文进行封装,生成RDMA数据包;将RDMA数据包发送至接收端,以供接收端根据RDMA报文头获取键值信息,根据键值信息从预设散列表中获取RDMA报文的目的地址,将RDMA报文写入目的地址对应的内存空间中。由于发送端的键值信息和接收端的目的地址以散列表的形式存储在接收端中,发送端不需要在每次进行报文传输前与接收端进行协商,也不需要管理接收端的相关信息,接收端不用对为各发送端分配固定的接收内存空间进行管理,只需要对散列表进行管理和维护,可以提高接收端和发送端进行内存空间管理的灵活性。
本申请的实施例涉及一种报文传输方法,应用在发送端,如图5所示,包括:
步骤501,获取待发送的远程直接数据存取RDMA报文的消息类型,并根据消息类型构造所述键值信息。
在一示例实施中,首先根据预设的报文分类方式对待发送的RDMA报文进行分类,获取到RDMA报文的消息类型,从而根据消息类型获取到对应的键值信息,发送端预设有消息类型和键值信息对应关系的映射表。
步骤502,判断消息类型是否为新增消息类型。
在一示例实施中,当RDMA报文的消息类型是新增消息类型时,执行步骤503,否则执行步骤505。
步骤503,根据键值信息构造协商报文,并发送给接收端,以供接收端根据协商报文中的键值信息为消息类型分配目的地址。
在一示例实施中,当消息类型是新增消息类型时,说明接收端也并未为该消息类型的RDMA报文分配目的地址,因此,需要先为该键值信息构造协商报文,将该协商报文发送到接收端,接收端在接收到协商报文之后,根据协商报文中的键值信息分配目的地址,并将键值信息和目的地址的对应关系存储在散列表中。
步骤504,根据键值信息构造RDMA报文头,并存储在预设报文头中。
在一示例实施中,若消息类型是新增消息类型,在发送端也并未有与新增消息类型对应的RDMA报文头,因此,需要先根据该新增消息类型对应的键值信息构造好RDMA报文头,并存储在预设的报文头中。
步骤505,根据键值信息从预设报文头中获取RDMA报文头。
在一示例实施中,本步骤与本申请实施例的步骤402大致相同,此处不一一赘述。
步骤506,对RDMA报文头和RDMA报文进行封装,生成RDMA数据包。
在一示例实施中,本步骤与本申请实施例的步骤403大致相同,此处不一一赘述。
步骤507,将RDMA数据包发送至接收端,以供接收端根据RDMA报文头获取键值信息,根据键值信息从预设散列表中获取RDMA报文的目的地址,将RDMA报文写入目的地址对应的内存空间中。
在一示例实施中,本步骤与本申请实施例的步骤404大致相同,此处不一一赘述。
本申请的实施例,在其他实施例的基础之上还可以在发送端检测到所需要传输的RDMA报文是一种新的消息类型时,提前与接收端进行协商,使得接收端可以为该新消息类型的RDMA报文分配好目的地址,避免接收端在接收端RDMA报文时无处存放,导致RDMA报文传输失败。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本申请实施例涉及一种报文传输装置,应用在接收端,图6是本实施例所述的报文传输装置的示意图,包括:接收模块601、解析模块602、获取模块603和写入模块604。
其中,接收模块601,用于接收远程直接数据存取RDMA数据包;
解析模块602,用于对RDMA数据包进行解析,获取RDMA报文头和RDMA报文;
获取模块603,用于根据RDMA报文头获取键值信息;
写入模块604,用于根据键值信息从预设的散列表中获取RDMA报文的目的地址,并将RDMA报文写入目的地址对应的内存空间中。
本申请实施例涉及一种报文传输装置,应用在发送端,图7是本实施例所述的报文传输装置的示意图,包括:构造模块701、获取模块702、封装模块703和传输模块704。
其中,构造模块701,用于根据待发送的远程直接数据存取RDMA报文构造键值信息;
获取模块702,用于根据所述键值信息从预设报文头中获取RDMA报文头;
封装模块703,用于对所述RDMA报文头和所述RDMA报文进行封装,生成RDMA数据包;
传输模块704,用于将所述RDMA数据包发送至接收端,以供所述接收端根据所述RDMA报文头获取所述键值信息,根据所述键值信息从预设散列表中获取所述RDMA报文的目的地址,将所述RDMA报文写入所述目的地址对应的内存空间中
不难发现,本实施例为与上述方法实施例对应的系统实施例,本实施例可以与上述方法实施例互相配合实施。上述实施例中提到的相关技术细节和技术效果在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明另一个实施例涉及一种电子设备,如图8所示,包括:至少一个处理器801;以及,与所述至少一个处理器801通信连接的存储器802;其中,所述存储器802存储有可被所述至少一个处理器801执行的指令,所述指令被所述至少一个处理器801执行,以使所述至少一个处理器801能够执行上述各实施例中的报文传输方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明另一个实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种报文传输方法,其特征在于,应用在接收端,所述方法包括:
接收远程直接数据存取RDMA数据包;
对所述RDMA数据包进行解析,获取RDMA报文头和RDMA报文;
根据所述RDMA报文头获取键值信息;
根据所述键值信息从预设的散列表中获取所述RDMA报文的目的地址,并将所述RDMA报文写入所述目的地址对应的内存空间中。
2.根据权利要求1所述的报文传输方法,其特征在于,所述方法还包括:
接收发送端的协商报文,其中,所述协商报文中包含各消息类型对应的各键值信息;
解析所述协商报文获取所述各键值信息,并对各所述键值信息进行哈希运算获取各散列值;
根据所述接收端的内存空间为各所述键值信息分配各所述目的地址;
将各所述散列值作为各所述键值信息在所述散列表中的各条目索引,将各所述键值信息和各所述目的地址作为各散列表条目存储在所述散列表中。
3.根据权利要求2所述的报文传输方法,其特征在于,所述方法还包括:
当各述键值信息中存在需要重新分配所述目的地址的第一键值信息时,获取所述第一键值信息对应的第一散列值;
修改所述散列表中与所述第一散列值对应的散列表条目;或者,
删除所述散列表中与所述第一散列值对应的散列表条目,为所述第一散列值创建新散列表条目,存储在所述散列表中。
4.根据权利要求1所述的报文传输方法,其特征在于,所述根据所述键值信息从预设的散列表中获取所述RDMA报文的目的地址,包括:
对所述键值信息进行哈希运算,获取条目索引;
根据所述条目索引查找所述散列表,获取与所述条目索引对应的散列表条目中的所述目的地址。
5.一种报文传输方法,其特征在于,应用在发送端,所述方法包括:
根据待发送的远程直接数据存取RDMA报文构造键值信息;
根据所述键值信息从预设报文头中获取RDMA报文头;
对所述RDMA报文头和所述RDMA报文进行封装,生成RDMA数据包;
将所述RDMA数据包发送至接收端,以供所述接收端根据所述RDMA报文头获取所述键值信息,根据所述键值信息从预设散列表中获取所述RDMA报文的目的地址,将所述RDMA报文写入所述目的地址对应的内存空间中。
6.根据权利要求5所述的报文传输方法,其特征在于,所述根据待发送的远程直接数据存取RDMA报文构造键值信息,包括:
获取所述RDMA报文的消息类型,并根据所述消息类型构造所述键值信息。
7.根据权利要求6所述的报文传输方法,其特征在于,所述方法还包括:
当检测到所述消息类型为新增消息类型时,根据所述键值信息构造所述RDMA报文头,并存储在所述预设报文头中;
根据所述键值信息构造协商报文,并发送给所述接收端,以供所述接收端根据所述协商报文中的键值信息为所述消息类型分配目的地址。
8.一种报文传输装置,其特征在于,应用在接收端,包括:
接收模块,用于接收远程直接数据存取RDMA数据包;
解析模块,用于对所述RDMA数据包进行解析,获取RDMA报文头和RDMA报文;
获取模块,用于根据所述RDMA报文头获取键值信息;
写入模块,用于根据所述键值信息从预设的散列表中获取所述RDMA报文的目的地址,并将所述RDMA报文写入所述目的地址对应的内存空间中。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至4中任一项或权利要求5至7中任一项所述的报文传输方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项或权利要求5至7中任一项所述的报文传输方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111467655.6A CN116320079A (zh) | 2021-12-03 | 2021-12-03 | 报文传输方法、装置、电子设备和存储介质 |
PCT/CN2022/077783 WO2023097903A1 (zh) | 2021-12-03 | 2022-02-24 | 报文传输方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111467655.6A CN116320079A (zh) | 2021-12-03 | 2021-12-03 | 报文传输方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116320079A true CN116320079A (zh) | 2023-06-23 |
Family
ID=86611469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111467655.6A Pending CN116320079A (zh) | 2021-12-03 | 2021-12-03 | 报文传输方法、装置、电子设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116320079A (zh) |
WO (1) | WO2023097903A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106992915B (zh) * | 2016-01-21 | 2020-11-03 | 中兴通讯股份有限公司 | 一种报文解封装处理、数据写入方法及装置 |
CN106209640B (zh) * | 2016-06-24 | 2019-03-05 | 湖南恒茂高科股份有限公司 | Down MEP报文处理方法与系统 |
CN109426631A (zh) * | 2017-08-30 | 2019-03-05 | 深圳市中兴微电子技术有限公司 | 一种基于rdma的通信方法、装置及存储介质 |
US10657095B2 (en) * | 2017-09-14 | 2020-05-19 | Vmware, Inc. | Virtualizing connection management for virtual remote direct memory access (RDMA) devices |
-
2021
- 2021-12-03 CN CN202111467655.6A patent/CN116320079A/zh active Pending
-
2022
- 2022-02-24 WO PCT/CN2022/077783 patent/WO2023097903A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023097903A1 (zh) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112422393B (zh) | 可扩展虚拟局域网报文发送方法、计算机设备和可读介质 | |
CN110086865B (zh) | 一种支持多个fc-ae-1553节点并行工作的节点卡及其实现方法 | |
CN110109852B (zh) | 硬件实现tcp_ip协议的方法 | |
KR20040010707A (ko) | 공유된 속성들에 근거하여 압축된 큐 쌍으로부터 다중의가상 큐 쌍들을 생성하는 장치 | |
CN111245776A (zh) | 车载数据传输方法、装置、设备和存储介质 | |
WO2023124427A1 (zh) | 一种数据处理方法、网络节点和计算机可读存储介质 | |
CN113746692A (zh) | 网络流量统计的方法、电子设备及存储介质 | |
CN111930757B (zh) | 数据处理方法、系统、封装节点和解封装节点 | |
CN106713183B (zh) | 网络设备的接口板以及该网络设备和报文转发方法 | |
TWI737881B (zh) | 資料傳輸方法及發送端 | |
KR100677144B1 (ko) | Wusb 버스를 경유하여 데이터를 송수신하는 방법 및장치 | |
CN113852533B (zh) | 一种多通道数据通信系统、方法及电子设备 | |
US20130332504A1 (en) | Station, target apparatus, initiator apparatus, communication system, and communication method | |
CN108614792B (zh) | 1394事务层数据包存储管理方法及电路 | |
CN109358820B (zh) | 数据访问方法、装置、电子设备及计算机可读存储介质 | |
CN116320079A (zh) | 报文传输方法、装置、电子设备和存储介质 | |
CN116095197B (zh) | 数据传输方法及相关装置 | |
CN113328926A (zh) | 一种fc-ae-1553和fc-ae-asm的混合网络系统 | |
CN107257563B (zh) | 一种远距离低功耗网络系统及组网方法 | |
CN114024844B (zh) | 数据调度方法、数据调度装置及电子设备 | |
CN112187669B (zh) | 一种数据交互方法、装置、设备及可读存储介质 | |
CN111865801B (zh) | 一种基于Virtio端口传输数据的方法和系统 | |
EP3955524A1 (en) | Method for managing remote storage device by means of management device | |
CN107317773B (zh) | 一种片上网络通信接口及通信方法 | |
JP7488599B2 (ja) | 効率的に伝送するイーサネット装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |