WO2026016822A1 - Packet transmission method and apparatus - Google Patents
Packet transmission method and apparatusInfo
- Publication number
- WO2026016822A1 WO2026016822A1 PCT/CN2025/105053 CN2025105053W WO2026016822A1 WO 2026016822 A1 WO2026016822 A1 WO 2026016822A1 CN 2025105053 W CN2025105053 W CN 2025105053W WO 2026016822 A1 WO2026016822 A1 WO 2026016822A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- rdma
- message
- address
- rdma message
- packet
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本申请要求于2024年07月15日提交国家知识产权局、申请号为202410949418.0、申请名称为“报文传输方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to Chinese Patent Application No. 202410949418.0, filed on July 15, 2024, entitled "Message Transmission Method and Apparatus", the entire contents of which are incorporated herein by reference.
本申请涉及通信技术领域,尤其涉及一种报文传输方法及装置。This application relates to the field of communication technology, and in particular to a message transmission method and apparatus.
远程直接内存访问(remote direct memory access,RDMA)技术是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA技术能直接通过网络接口访问内存数据,无需数据通过中央处理器(central processing unit,CPU)搬移至内核,再由内核搬移至网卡,无需操作系统内核的介入,适合在大规模并行计算机集群中使用。RDMA技术支持对消息进行RDMA操作,如将消息的RDMA报文写入。Remote Direct Memory Access (RDMA) technology was developed to address the latency issues in server-side data processing during network transmission. RDMA allows direct access to memory data through the network interface, eliminating the need for data to be moved from the central processing unit (CPU) to the kernel and then from the kernel to the network interface card (NIC). It requires no intervention from the operating system kernel, making it suitable for use in large-scale parallel computer clusters. RDMA technology supports RDMA operations on messages, such as writing RDMA message packets.
然而,目前RDMA操作还不够灵活,如何提高RDMA操作的灵活性是目前研究的问题。However, RDMA operation is not flexible enough at present, and how to improve the flexibility of RDMA operation is a current research problem.
本申请实施例提供一种报文传输方法及装置,用以提高RDMA操作的灵活性。This application provides a message transmission method and apparatus to improve the flexibility of RDMA operation.
为达到上述目的,本申请采用如下技术方案:To achieve the above objectives, this application adopts the following technical solution:
第一方面,提供一种报文传输方法,应用于第一装置,该方法包括:第一装置获取第一远程直接内存访问RDMA报文,并向第二装置发送第一RDMA报文。第一RDMA报文是M个RDMA报文中的任意一个RDMA报文,M个RDMA报文包括个RDMA报文组,为大于1的整数,个RDMA报文组中的每个RDMA报文组中有一个RDMA报文的头部包含地址信息,M为大于1的整数,N为小于M的正整数,地址信息用于确定包含地址信息的RDMA报文写入第二装置的内存的地址。A first aspect provides a message transmission method applied to a first device, the method comprising: the first device acquiring a first Remote Direct Memory Access (RDMA) message and sending the first RDMA message to a second device. The first RDMA message is any one of M RDMA messages, the M RDMA messages including... One RDMA message group, It is an integer greater than 1. Each RDMA message group contains an RDMA message header that includes address information, where M is an integer greater than 1 and N is a positive integer less than M. The address information is used to determine the address at which the RDMA message containing the address information is written to the memory of the second device.
由此可知,对于M个RDMA报文,以每组(或者说RDMA报文组)包含的RDMA报文为单位,在每个RDMA报文组中设置一个RDMA报文的头部包含地址信息,该地址信息用于确定包含地址信息的RDMA报文写入第二装置的内存的地址,用以每个分组中其他RDMA报文写入第二装置的内存的地址就可以依据该地址信息确定,也即,以分组为粒度进行RDMA操作从而写入内存,如不同分组的RDMA报文可以写入相同或不同的内存区域,这些区域可以离散也可以连续,能够提高RDMA操作的灵活性。Therefore, for M RDMA messages, taking the RDMA messages contained in each group (or RDMA message group) as a unit, an address information is set in the header of an RDMA message in each RDMA message group. This address information is used to determine the address of the RDMA message containing the address information to be written to the memory of the second device. The address of other RDMA messages in each group to be written to the memory of the second device can be determined based on this address information. That is, RDMA operation is performed at the group level to write to memory. For example, RDMA messages from different groups can be written to the same or different memory regions. These regions can be discrete or continuous, which can improve the flexibility of RDMA operation.
一种可能的设计方案中,个RDMA报文组中每个RDMA报文组中的第一个RDMA报文的头部可以包含地址信息,也即,M个RDMA报文中第(a-1)*N+1个RDMA报文的头部可以包含地址信息,如第1个RDMA报文、第N+1个RDMA报文等等,a为遍历1至的整数,小于或等于M。In one possible design scheme, The header of the first RDMA message in each RDMA message group can contain address information. That is, the header of the (a-1)*N+1th RDMA message in M RDMA messages can contain address information, such as the 1st RDMA message, the N+1th RDMA message, etc., where 'a' represents the number of RDMA messages from 1 to 1. integers, Less than or equal to M.
可选地,第一RDMA报文的包序号为X,M个RDMA报文中的首个RDMA报文的包序号为Y,若(X-Y)模N为0,且(X-Y)*MTU小于M个RDMA报文的尺寸,或者说X-Y小于M,则第一RDMA报文的头部包含地址信息,MTU为第一RDMA报文的最大传输单元,如此可以确保携带地址信息的RDMA报文是属于M个RDMA报文,避免将其他报文错误写入M个RDMA报文的内存空间。Optionally, the sequence number of the first RDMA message is X, and the sequence number of the first RDMA message among the M RDMA messages is Y. If (X-Y) modulo N is 0, and (X-Y)*MTU is less than the size of the M RDMA messages, or in other words, X-Y is less than M, then the header of the first RDMA message contains address information, and MTU is the maximum transmission unit of the first RDMA message. This ensures that the RDMA message carrying address information belongs to the M RDMA messages, and avoids writing other messages incorrectly into the memory space of the M RDMA messages.
例如,地址信息为首个RDMA报文的地址,首个RDMA报文的地址为首个RDMA报文写入第二装置的内存的地址,用以第一RDMA报文写入第二装置的内存的地址就可以依据该首个RDMA报文的地址确定。For example, the address information is the address of the first RDMA message, which is the address where the first RDMA message is written to the memory of the second device. The address where the first RDMA message is written to the memory of the second device can be determined based on the address of the first RDMA message.
进一步的,第一RDMA报文的地址相较于首个RDMA报文的地址的偏移为(X-Y)*MTU,第一RDMA报文的地址为第一RDMA报文写入第二装置的内存的地址,该偏移+首个RDMA报文的地址即为第一RDMA报文的地址,也就是说,在偏移确定的情况下,第二装置仅需要从RETH获取的首个RDMA报文的地址就可以确定第一RDMA报文的地址,简单且高效。Furthermore, the offset of the address of the first RDMA message relative to the address of the first RDMA message is (X-Y)*MTU. The address of the first RDMA message is the address where the first RDMA message is written into the memory of the second device. This offset plus the address of the first RDMA message is the address of the first RDMA message. In other words, with the offset determined, the second device only needs to obtain the address of the first RDMA message from RETH to determine the address of the first RDMA message, which is simple and efficient.
进一步的,在第一RDMA报文的头部携带地址信息的情况下,该第一RDMA报文的头部为RETH,第一RDMA报文的BTH包含指示信息,指示信息指示第一RDMA报文包含RETH,以避免第二装置解包出现错误。Furthermore, if the header of the first RDMA message carries address information, the header of the first RDMA message is RETH, and the BTH of the first RDMA message contains indication information indicating that the first RDMA message contains RETH, so as to avoid errors in unpacking by the second device.
又例如,地址信息为第一RDMA报文所在的RDMA报文组的分组标识。这种情况下,首个RDMA报文的包序号为Y,第一RDMA报文所在的RDMA报文组的分组标识为第一RDMA报文的地址相较于首个RDMA报文的地址的偏移为MTU为第一RDMA报文的最大传输单元,第一RDMA报文的地址为第一RDMA报文写入到第二装置的内存的地址。For example, the address information is the packet identifier of the RDMA packet group to which the first RDMA packet belongs. In this case, the sequence number of the first RDMA packet is Y, and the packet identifier of the RDMA packet group to which the first RDMA packet belongs is... The address of the first RDMA message is offset from the address of the first RDMA message. MTU is the maximum transmission unit of the first RDMA message, and the address of the first RDMA message is the address where the first RDMA message is written to the memory of the second device.
也就是说,依据RDMA报文组的分组标识可以确定每个RDMA报文组中第一个RDMA报文的地址,该RDMA报文组中其他RDMA报文的地址都可以依据该第一个RDMA报文的地址确定,从而可以实现每个RDMA报文都被写入到正确的位置。In other words, the address of the first RDMA message in each RDMA message group can be determined based on the group identifier. The addresses of other RDMA messages in the same RDMA message group can be determined based on the address of the first RDMA message, thus ensuring that each RDMA message is written to the correct location.
进一步的,第一RDMA报文的头部为BTH,无需额外携带扩展头,进一步降低开销。Furthermore, the header of the first RDMA message is BTH, eliminating the need for an additional extended header and further reducing overhead.
一种可能的设计方案中,M个RDMA报文对应队列对QP,QP的RDMA报文丢包率与N的取值负相关,如丢包率越高,N取值的越小,反之越大,以实现根据丢包率进行动态分组,兼顾系统性能和传输开销。例如,在丢包率比较低时,重传也很少发生,因此可以将N的取值配置的比较大,地址信息所占的开销比例比较少,传输开销比较小。在丢包率比较高时,重传时常发生,因此可以将N的取值配置的比较小,以降低重传开销,保证系统性能。In one possible design, M RDMA packets correspond to queue pairs QP. The packet loss rate of QP's RDMA packets is negatively correlated with the value of N; that is, the higher the packet loss rate, the smaller the value of N, and vice versa. This allows for dynamic packet grouping based on the packet loss rate, balancing system performance and transmission overhead. For example, when the packet loss rate is low, retransmissions are infrequent, so the value of N can be configured to be relatively large, resulting in a smaller proportion of overhead for address information and lower transmission overhead. When the packet loss rate is high, retransmissions occur frequently, so the value of N can be configured to be relatively small to reduce retransmission overhead and ensure system performance.
一种可能的设计方案中,第一方面所述的方法还可以包括:第一装置接收配置信息,配置信息用于指示个RDMA报文组中的每个RDMA报文组中有一个RDMA报文的头部包含地址信息,以实现RDMA报文分组传输的方式可以根据实际情况动态配置,配置灵活。In one possible design, the method described in the first aspect may further include: a first device receiving configuration information, the configuration information being used to indicate... Each RDMA packet group contains an RDMA packet header with address information, allowing the RDMA packet packet transmission method to be dynamically configured according to actual conditions, providing flexibility in configuration.
可选地,配置信息用于指示个RDMA报文组中每个RDMA报文组中的第一个RDMA报文的头部包含地址信息。Optionally, configuration information is used to indicate The header of the first RDMA message in each RDMA message group contains address information.
一种可能的设计方案中,第一方面所述的方法还包括:第一装置接收来自第二装置的反馈信息,反馈信息指示第二RDMA报文确认丢包,第二RDMA报文属于M个RDMA报文;第一装置根据反馈信息,向第二装置重传M个RDMA报文中的Q个RDMA报文,Q为正整数,Q个RDMA报文包括:从第二RDMA报文到第二RDMA报文所在的RDMA报文组中的最后一个RDMA报文,即只用重传第二RDMA报文所在分组中的部分RDMA报文即可,其他分组的RDMA报文不需要重传,重传开销比较小,提高通信效率。In one possible design, the method described in the first aspect further includes: a first device receiving feedback information from a second device, the feedback information indicating that the second RDMA message has been lost, and the second RDMA message belongs to M RDMA messages; the first device retransmitting Q RDMA messages from the M RDMA messages to the second device according to the feedback information, where Q is a positive integer, and the Q RDMA messages include: from the second RDMA message to the last RDMA message in the RDMA message group to which the second RDMA message belongs, that is, only a portion of the RDMA messages in the group to which the second RDMA message belongs needs to be retransmitted, and the RDMA messages in other groups do not need to be retransmitted, the retransmission overhead is relatively small, and the communication efficiency is improved.
第二方面,提供一种报文传输方法,应用于第二装置,该方法包括:第二装置接收第一远程直接内存访问RDMA报文,第一RDMA报文属于M个RDMA报文,写入第一RDMA报文。M个RDMA报文包括个RDMA报文组,为大于1的整数,个RDMA报文组中的每个RDMA报文分组中有一个RDMA报文的头部包含地址信息,M为大于1的整数,N为小于M的正整数,地址信息用于确定包含地址信息的RDMA报文写入第二装置的内存的地址;Secondly, a message transmission method is provided, applied to a second device, the method comprising: the second device receiving a first Remote Direct Memory Access (RDMA) message, the first RDMA message belonging to M RDMA messages, and writing the first RDMA message into the first RDMA message. The M RDMA messages include... One RDMA message group, It is an integer greater than 1. Each RDMA packet in the RDMA packet group contains an RDMA packet header containing address information, where M is an integer greater than 1 and N is a positive integer less than M. The address information is used to determine the address where the RDMA packet containing the address information is written to the memory of the second device.
一种可能的设计方案中,个RDMA报文组中每个RDMA报文组中的第一个RDMA报文的头部可以包含地址信息,也即,M个RDMA报文中第(a-1)*N+1个RDMA报文的头部可以包含地址信息,a为遍历1至的整数,小于或等于M。In one possible design scheme, The header of the first RDMA message in each RDMA message group can contain address information. That is, the header of the (a-1)*N+1th RDMA message in M RDMA messages can contain address information, where a is the number of RDMA messages traversed from 1 to N. integers, Less than or equal to M.
可选地,第一RDMA报文的包序号为X,M个RDMA报文中的首个RDMA报文的包序号为Y,若(X-Y)模N为0,且(X-Y)*MTU小于M个RDMA报文的尺寸,则第一RDMA报文的头部包含地址信息,MTU为第一RDMA报文的最大传输单元。Optionally, the sequence number of the first RDMA message is X, and the sequence number of the first RDMA message among the M RDMA messages is Y. If (X-Y) modulo N is 0, and (X-Y)*MTU is less than the size of the M RDMA messages, then the header of the first RDMA message contains address information, and MTU is the maximum transmission unit of the first RDMA message.
例如,地址信息为首个RDMA报文的地址,首个RDMA报文的地址为首个RDMA报文写入第二装置的内存的地址。For example, the address information is the address of the first RDMA message, and the address of the first RDMA message is the address where the first RDMA message is written to the memory of the second device.
进一步的,第一RDMA报文的地址相较于首个RDMA报文的地址的偏移为(X-Y)*MTU,第一RDMA报文的地址为第一RDMA报文写入第二装置的内存的地址,该偏移+首个RDMA报文的地址即为第一RDMA报文的地址。Furthermore, the offset of the address of the first RDMA message relative to the address of the first RDMA message is (X-Y)*MTU. The address of the first RDMA message is the address where the first RDMA message is written to the memory of the second device. This offset plus the address of the first RDMA message is the address of the first RDMA message.
进一步的,在第一RDMA报文的头部携带地址信息的情况下,该第一RDMA报文的头部为RETH,第一RDMA报文的BTH包含指示信息,指示信息指示第一RDMA报文包含RETH。Furthermore, if the header of the first RDMA message carries address information, the header of the first RDMA message is RETH, and the BTH of the first RDMA message contains indication information indicating that the first RDMA message contains RETH.
又例如,地址信息为第一RDMA报文所在的RDMA报文组的分组标识。这种情况下,首个RDMA报文的包序号为Y,第一RDMA报文所在的RDMA报文组的分组标识为第一RDMA报文的地址相较于首个RDMA报文的地址的偏移为MTU为第一RDMA报文的最大传输单元,第一RDMA报文的地址为第一RDMA报文写入到第二装置的内存的地址。For example, the address information is the packet identifier of the RDMA packet group to which the first RDMA packet belongs. In this case, the sequence number of the first RDMA packet is Y, and the packet identifier of the RDMA packet group to which the first RDMA packet belongs is... The address of the first RDMA message is offset from the address of the first RDMA message. MTU is the maximum transmission unit of the first RDMA message, and the address of the first RDMA message is the address where the first RDMA message is written to the memory of the second device.
进一步的,第一RDMA报文的头部为BTH。Furthermore, the header of the first RDMA message is BTH.
一种可能的设计方案中,M个RDMA报文对应队列对QP,QP的RDMA报文丢包率与N的取值负相关。In one possible design, M RDMA messages correspond to queue pairs QP, and the RDMA message loss rate of QP is negatively correlated with the value of N.
一种可能的设计方案中,第二装置写入第一RDMA报文,包括:第二装置可以根据地址信息,确定第一RDMA报文的地址,并根据第一RDMA报文的地址,写入第一RDMA报文。In one possible design, the second device writes the first RDMA message, including: the second device can determine the address of the first RDMA message based on the address information, and write the first RDMA message based on the address of the first RDMA message.
可选地,第二装置根据地址信息,确定第一RDMA报文的地址,包括:第二装置根据地址信息,确定第一RDMA报文的地址相较于M个RDMA报文中的首个RDMA报文的地址的偏移,并根据首个RDMA报文的地址以及偏移,确定第一RDMA报文的地址。首个RDMA报文的地址为首个RDMA报文写入第二装置的内存的地址。Optionally, the second device determines the address of the first RDMA message based on the address information, including: the second device determines the offset of the address of the first RDMA message relative to the address of the first RDMA message among the M RDMA messages, and determines the address of the first RDMA message based on the address of the first RDMA message and the offset. The address of the first RDMA message is the address where the first RDMA message is written to the memory of the second device.
一种可能的设计方案中,第二方面所述的方法还可以包括:第二装置发送反馈信息,并接收来自第一装置重传的M个RDMA报文中的Q个RDMA报文。反馈信息指示第二RDMA报文确认丢包,第二RDMA报文属于M个RDMA报文;Q为正整数,Q个RDMA报文包括:从第二RDMA报文到第二RDMA报文所在的RDMA报文组中的最后一个RDMA报文。In one possible design, the method described in the second aspect may further include: the second device sending feedback information and receiving Q RDMA messages from the M RDMA messages retransmitted by the first device. The feedback information indicates that the second RDMA message has been confirmed as lost, and the second RDMA message belongs to the M RDMA messages; Q is a positive integer, and the Q RDMA messages include: from the second RDMA message to the last RDMA message in the RDMA message group to which the second RDMA message belongs.
可以理解,第二方面所述的方法的技术效果也可以参考上述第一方面所述的方法的相关介绍,不再赘述。It is understandable that the technical effects of the method described in the second aspect can also refer to the relevant introduction of the method described in the first aspect above, and will not be repeated here.
第三方面,提供一种报文传输方法,应用于第三装置,该方法包括:第三装置获取队列对QP的远程直接内存访问RDMA报文丢包率,并根据RDMA报文丢包率,向QP所在的第一装置发送配置信息,配置信息指示与QP关联的N个RDMA报文组中有一个RDMA报文的头部包含地址信息,N为正整数,RDMA报文丢包率与N的取值负相关,地址信息用于确定包含地址信息的RDMA报文写入内存的地址。Thirdly, a message transmission method is provided, applied to a third device. The method includes: the third device acquiring the packet loss rate of Remote Direct Memory Access (RDMA) messages for the queue to QP, and sending configuration information to the first device where QP is located based on the RDMA message packet loss rate. The configuration information indicates that one of the N RDMA message groups associated with QP has address information in its header, where N is a positive integer, the RDMA message packet loss rate is negatively correlated with the value of N, and the address information is used to determine the address at which the RDMA message containing address information is written to memory.
一种可能的设计方案中,第三装置为用于会话管理的网元,第三装置获取队列QP的RDMA报文丢包率,包括:用于会话管理的网元从与QP关联的如下至少一个网元获取RDMA报文丢包率:用于策略管理的网元、用于用户面传输的网元、或接入网设备。In one possible design, the third device is a network element for session management. The third device obtains the RDMA packet loss rate of the queue QP by: the network element for session management obtaining the RDMA packet loss rate from at least one of the following network elements associated with the QP: a network element for policy management, a network element for user plane transmission, or an access network device.
可选地,用于会话管理的网元从与QP关联的用于策略管理的网元获取RDMA报文丢包率,包括:在建立或修改QP关联的会话的情况下,用于会话管理的网元从用于策略管理的网元获取会话的策略与计费规则PCC规则;用于会话管理的网元获取PCC规则中的丢包率上限PER,PER被作为RDMA报文丢包率,即可以重用已有的会话建立或修改流程获取到RDMA报文丢包率,无需引入新的流程,实现简单。Optionally, the network element used for session management obtains the RDMA packet loss rate from the network element used for policy management associated with the QP. This includes: when establishing or modifying a session associated with the QP, the network element used for session management obtains the session's policy and charging rules (PCC rules) from the network element used for policy management; the network element used for session management obtains the upper limit of packet loss rate (PER) in the PCC rules, and PER is used as the RDMA packet loss rate. This means that the existing session establishment or modification process can be reused to obtain the RDMA packet loss rate without introducing a new process, making the implementation simple.
可选地,用于会话管理的网元从与QP关联的接入网设备获取RDMA报文丢包率,包括:用于会话管理的网元从接入网设备获取QP关联的数据无线承载DRB或服务质量Qos流的丢包率,DRB或QoS流的丢包率被作为RDMA报文丢包率,例如,用于会话管理的网元可以通过已有的订阅方式从接入网设备获取RDMA报文丢包率,无需引入额外的流程,实现简单。Optionally, the network element used for session management obtains the RDMA packet loss rate from the access network device associated with the QP, including: the network element used for session management obtains the packet loss rate of the data radio bearer (DRB) or quality of service (QoS) flow associated with the QP from the access network device, and the packet loss rate of the DRB or QoS flow is used as the RDMA packet loss rate. For example, the network element used for session management can obtain the RDMA packet loss rate from the access network device through existing subscription methods without introducing additional procedures, which is simple to implement.
可选地,用于会话管理的网元从与QP关联的用于用户面传输的网元获取RDMA报文丢包率,包括:用于会话管理的网元从用于用户面传输的网元获取QP关联的PER,PER为QP关联的会话的下行数据的PER,PER被作为RDMA报文丢包率,此时可以复用已有的N4会话的流程从用于用户面传输的网元获取RDMA报文丢包率,无需引入额外的流程,实现简单。Optionally, the network element used for session management obtains the RDMA packet loss rate from the network element associated with QP for user plane transmission. This includes: the network element used for session management obtaining the PER associated with QP from the network element associated with user plane transmission. The PER is the PER of the downlink data of the QP-associated session. The PER is used as the RDMA packet loss rate. In this case, the existing N4 session process can be reused to obtain the RDMA packet loss rate from the network element associated with user plane transmission. No additional process needs to be introduced, making the implementation simple.
可选地,第三装置为接入网设备,第三装置获取队列QP的RDMA报文丢包率,包括:接入网设备获取QP关联的DRB或Qos流的丢包率,DRB或Qos流的丢包率被作为RDMA报文丢包,也即自行从本地获取,无需信令交互,可避免交互所带来的通信开销;或者,在建立或修改QP关联的会话的情况下,接入网设备从用于策略管理的网元获取会话的QoS配置,并获取QoS配置中的PER,PER被作为RDMA报文丢包率,即也可以重用已有的会话建立或修改流程获取到RDMA报文丢包率,无需引入新的流程,实现简单。Optionally, the third device is an access network device. The third device obtains the RDMA packet loss rate of the queue QP by: the access network device obtaining the packet loss rate of the DRB or QoS flow associated with the QP, and the packet loss rate of the DRB or QoS flow is used as the RDMA packet loss rate. That is, it obtains the data locally without signaling interaction, thus avoiding the communication overhead caused by interaction; or, in the case of establishing or modifying a session associated with QP, the access network device obtains the QoS configuration of the session from the network element used for policy management, and obtains the PER in the QoS configuration. The PER is used as the RDMA packet loss rate. That is, the existing session establishment or modification process can be reused to obtain the RDMA packet loss rate without introducing a new process, which is simple to implement.
一种可能的设计方案中,第三方面所述的方法还可以包括:第三装置获取MTU,MTU为QP关联的RDMA报文的最大传输单元;第三装置根据RDMA报文丢包率,向QP所在的第一装置发送配置信息,包括:第三装置根据RDMA报文丢包率以及MTU,向第一装置发送配置信息。也即,RDMA分组大小还需要考虑MTU的因素,确保分组能够更加合理。In one possible design, the method described in the third aspect may further include: the third device obtaining the MTU, where MTU is the maximum transmission unit of the RDMA message associated with QP; the third device sending configuration information to the first device where QP resides based on the RDMA message packet loss rate, including: the third device sending configuration information to the first device based on the RDMA message packet loss rate and MTU. That is, the RDMA packet size also needs to consider the MTU factor to ensure that the packets are more reasonable.
可选地,第三装置根据RDMA报文丢包率以及MTU,向第一装置发送配置信息,包括:第三装置确定MTU对应的RDMA报文的多种丢包率,并从多种丢包率中确定与RDMA报文丢包率匹配的丢包率,匹配的丢包率对应N的一种取值;如此,第三装置根据匹配的丢包率,向第一装置发送配置信息。其中,不同MTU对应的丢包率也不同,如MTU越大,其对应的各种丢包率整体会更低,以保证系统容量。Optionally, the third device sends configuration information to the first device based on the RDMA packet loss rate and the MTU. This includes: the third device determining multiple packet loss rates for the RDMA packets corresponding to the MTU, and determining a packet loss rate that matches the RDMA packet loss rate from among the multiple packet loss rates, where the matched packet loss rate corresponds to a value of N; thus, the third device sends the configuration information to the first device based on the matched packet loss rate. Different MTUs correspond to different packet loss rates; for example, a larger MTU generally results in lower overall packet loss rates to ensure system capacity.
可选地,第三装置获取MTU,包括:第三装置从第一装置和/或QP关联的用于用户面传输的网元获取MTU。Optionally, the third device acquires the MTU by: the third device acquiring the MTU from the first device and/or the network element associated with the QP for user plane transmission.
进一步的,第三装置为用于会话管理的网元,第三装置从第一装置获取MTU,包括:用于会话管理的网元接收来自第一装置的会话请求消息,会话请求消息用于请求建立或修改QP关联的会话,会话请求消息包括MTU;用于会话管理的网元从会话请求消息中获取MTU;或者;第三装置为接入网设备,第三装置从第一装置获取MTU,包括:接入网设备接收来自第一装置的无线资源控制RRC消息,RRC消息用于请求建立/重建立QP关联的RRC连接,RRC消息包括MTU;接入网设备从RRC消息中获取MTU。也即,可以重用已有的建立或修改流程获取到MTU,无需引入新的流程,实现简单。Furthermore, the third device is a network element used for session management. The third device obtains the MTU from the first device, including: the network element for session management receiving a session request message from the first device, the session request message being used to request the establishment or modification of a QP-associated session, and the session request message including the MTU; the network element for session management obtaining the MTU from the session request message; or; the third device is an access network device, and the third device obtains the MTU from the first device, including: the access network device receiving a Radio Resource Control (RRC) message from the first device, the RRC message being used to request the establishment/re-establishment of a QP-associated RRC connection, and the RRC message including the MTU; the access network device obtaining the MTU from the RRC message. That is, the existing establishment or modification process can be reused to obtain the MTU without introducing a new process, simplifying implementation.
进一步的,第三装置为用于会话管理的网元,第三装置从用于用户面传输的网元获取MTU,包括:用于会话管理的网元接收来自用于用户面传输的网元针对会话请求消息返回的会话响应消息,会话请求消息用于请求建立或修改QP关联的会话,会话响应消息包括MTU;用于会话管理的网元从会话响应消息中获取MTU。也即,可以重用已有的建立或修改流程获取到MTU,无需引入新的流程,实现简单。Furthermore, the third device is a network element used for session management. This third device obtains the MTU from the network element used for user plane transmission, including: the network element used for session management receiving a session response message returned by the network element used for user plane transmission in response to a session request message. The session request message is used to request the establishment or modification of a QP-associated session, and the session response message includes the MTU; the network element used for session management obtains the MTU from the session response message. That is, the existing establishment or modification process can be reused to obtain the MTU without introducing a new process, simplifying implementation.
第四方面,提供一种通信装置。该通信装置用于执行第一方面或第三方面中任意一种实现方式所述的报文传输方法。Fourthly, a communication apparatus is provided. This communication apparatus is used to perform the message transmission method described in any implementation of the first or third aspect.
在本申请中,第四方面所述的通信装置可以为终端设备或网络设备,或者芯片(系统)或其他部件或组件,或者包含该终端设备或网络设备的装置。其中,上述芯片(系统)或其他部件或组件均可以应用于终端设备或网络设备。In this application, the communication device described in the fourth aspect can be a terminal device or a network device, or a chip (system) or other component or assembly, or a device containing the terminal device or network device. The aforementioned chip (system) or other component or assembly can all be applied to the terminal device or network device.
应理解,第四方面所述的通信装置包括实现上述第一方面或第三方面中任一方面所述的报文传输方法相应的模块、单元、或手段(means),该模块、单元、或手段可以通过硬件实现,软件实现,或者通过硬件执行相应的软件实现。该硬件或软件包括一个或多个用于执行上述报文传输方法所涉及的功能的模块或单元。It should be understood that the communication apparatus described in the fourth aspect includes modules, units, or means that implement the message transmission method described in either the first or third aspect. These modules, units, or means can be implemented in hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units for performing the functions involved in the aforementioned message transmission method.
第五方面,提供一种通信装置。该通信装置包括:至少一个处理器,该至少一个处理器用于执行第一方面或第三方面中任意一种可能的实现方式所述的报文传输方法。Fifthly, a communication apparatus is provided. The communication apparatus includes at least one processor configured to execute the message transmission method described in any possible implementation of the first or third aspect.
在一种可能的设计方案中,第五方面所述的通信装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第五方面所述的通信装置与其他通信装置通信。In one possible design, the communication device described in the fifth aspect may further include a transceiver. This transceiver may be a transceiver circuit or an interface circuit. The transceiver can be used for communication between the communication device described in the fifth aspect and other communication devices.
在一种可能的设计方案中,第五方面所述的通信装置还可以包括存储器。该存储器可以与至少一个处理器集成在一起,也可以分开设置。该存储器可以用于存储第一方面或第三方面中任一方面所述的报文传输方法所涉及的计算机程序和/或数据。In one possible design, the communication device described in the fifth aspect may further include a memory. This memory may be integrated with at least one processor or may be disposed separately. The memory may be used to store computer programs and/or data related to the message transmission method described in either the first or third aspect.
在本申请中,第五方面所述的通信装置可以为终端设备或网络设备,或者芯片(系统)或其他部件或组件,或者包含该终端设备或网络设备的装置。其中,上述芯片(系统)或其他部件或组件均可以设置于终端设备或网络设备中。In this application, the communication device described in the fifth aspect can be a terminal device or a network device, or a chip (system) or other component or assembly, or a device containing the terminal device or network device. The aforementioned chip (system) or other component or assembly can all be disposed within the terminal device or network device.
第六方面,提供一种通信装置。该通信装置包括:至少一个处理器,该至少一个处理器与存储器耦合,该至少一个处理器用于执行存储器中存储的计算机程序,以使得该通信装置执行第一方面或第三方面中任意一种可能的实现方式所述的报文传输方法。A sixth aspect provides a communication device. The communication device includes: at least one processor coupled to a memory, the at least one processor being configured to execute a computer program stored in the memory, such that the communication device performs the message transmission method described in any possible implementation of the first or third aspect.
在一种可能的设计方案中,第六方面所述的通信装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第六方面所述的通信装置与其他通信装置通信。In one possible design, the communication device described in the sixth aspect may further include a transceiver. This transceiver may be a transceiver circuit or an interface circuit. The transceiver can be used for communication between the communication device described in the sixth aspect and other communication devices.
在本申请中,第六方面所述的通信装置可以为终端设备或网络设备,或者芯片(系统)或其他部件或组件,或者包含该终端设备或网络设备的装置。其中,上述芯片(系统)或其他部件或组件均可以设置于终端设备或网络设备中。In this application, the communication device described in the sixth aspect can be a terminal device or a network device, or a chip (system) or other component or assembly, or a device containing the terminal device or network device. The aforementioned chip (system) or other component or assembly can all be disposed within the terminal device or network device.
第七方面,提供了一种通信装置,包括:至少一个处理器和存储器;该存储器用于存储计算机程序,当该至少一个处理器执行该计算机程序时,以使该通信装置执行第一方面或第三方面中的任意一种实现方式所述的报文传输方法。A seventh aspect provides a communication device, comprising: at least one processor and a memory; the memory being used to store a computer program, which, when executed by the at least one processor, causes the communication device to perform the message transmission method described in any implementation of the first or third aspect.
在一种可能的设计方案中,第七方面所述的通信装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第七方面所述的通信装置与其他通信装置通信。In one possible design, the communication device described in the seventh aspect may further include a transceiver. This transceiver may be a transceiver circuit or an interface circuit. The transceiver can be used for communication between the communication device described in the seventh aspect and other communication devices.
在本申请中,第七方面所述的通信装置可以为终端设备或网络设备,或者芯片(系统)或其他部件或组件,或者包含该终端设备或网络设备的装置。其中,上述芯片(系统)或其他部件或组件均可以设置于终端设备或网络设备中。In this application, the communication device described in the seventh aspect can be a terminal device or a network device, or a chip (system) or other component or assembly, or a device containing the terminal device or network device. The aforementioned chip (system) or other component or assembly can all be disposed within the terminal device or network device.
第八方面,提供了一种通信装置,包括:至少一个处理器;所述至少一个处理器用于与存储器耦合,并读取存储器中的计算机程序之后,根据该计算机程序执行如第一方面或第三方面中的任意一种实现方式所述的报文传输方法。Eighthly, a communication apparatus is provided, comprising: at least one processor; said at least one processor is configured to be coupled to a memory, and after reading a computer program from the memory, to execute a message transmission method as described in any implementation of the first or third aspect according to the computer program.
在一种可能的设计方案中,第八方面所述的通信装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第八方面所述的通信装置与其他通信装置通信。In one possible design, the communication device described in the eighth aspect may further include a transceiver. This transceiver may be a transceiver circuit or an interface circuit. The transceiver can be used for communication between the communication device described in the eighth aspect and other communication devices.
在本申请中,第八方面所述的通信装置可以为终端设备或网络设备,或者芯片(系统)或其他部件或组件,或者包含该终端设备或网络设备的装置。其中,上述芯片(系统)或其他部件或组件均可以设置于终端设备或网络设备中。In this application, the communication device described in the eighth aspect can be a terminal device or a network device, or a chip (system) or other component or assembly, or a device containing the terminal device or network device. The aforementioned chip (system) or other component or assembly can all be disposed within the terminal device or network device.
第九方面,提供一种至少一个处理器。其中,至少一个处理器用于执行第一方面或第三方面中任意一种可能的实现方式所述的报文传输方法。A ninth aspect provides at least one processor. The at least one processor is configured to execute the message transmission method described in any possible implementation of the first or third aspect.
第十方面,提供一种通信系统。该通信系统包括用于执行上述第一方面所述的方法的第一装置,以及用于执行上述第而方面所述的方法的第二装置。A tenth aspect provides a communication system. The communication system includes a first means for performing the method described in the first aspect, and a second means for performing the method described in the second aspect.
可选地,该通信系统还包括用于执行上述第三方面所述的方法的第三装置。Optionally, the communication system further includes a third means for performing the method described in the third aspect above.
第十一方面,提供一种计算机可读存储介质,包括:计算机程序或指令;当该计算机程序或指令在计算机上运行时,使得该计算机执行第一方面或第三方面中任意一种可能的实现方式所述的报文传输方法。Eleventhly, a computer-readable storage medium is provided, comprising: a computer program or instructions; when the computer program or instructions are executed on a computer, the computer causes the computer to perform the message transmission method described in any possible implementation of the first or third aspect.
第十二方面,提供一种计算机程序产品,包括计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行第一方面或第三方面中任意一种可能的实现方式所述的报文传输方法。In a twelfth aspect, a computer program product is provided, comprising a computer program or instructions that, when executed on a computer, cause the computer to perform the message transmission method described in any possible implementation of the first or third aspect.
此外,上述第四方面至第十二方面所述的通信装置的技术效果,可以参考上述第一方面或第三方面所述的报文传输方法的技术效果,此处不再赘述。Furthermore, the technical effects of the communication devices described in the fourth to twelfth aspects above can be referred to the technical effects of the message transmission methods described in the first or third aspects above, and will not be repeated here.
图1为RDMA的应用场景示意图;Figure 1 is a schematic diagram of RDMA application scenarios;
图2为IB架构的示意图;Figure 2 is a schematic diagram of the IB architecture;
图3为QP的连接示意图;Figure 3 is a schematic diagram of the QP connection;
图4为RDMA报文格式的示意图;Figure 4 is a schematic diagram of the RDMA message format;
图5为现有技术的示意图一;Figure 5 is a schematic diagram of the prior art;
图6为现有技术的示意图二;Figure 6 is a schematic diagram of the prior art;
图7为本申请实施例提供的通信系统的架构示意图;Figure 7 is a schematic diagram of the architecture of the communication system provided in an embodiment of this application;
图8为本申请实施例提供的报文传输方法的流程示意图;Figure 8 is a flowchart illustrating the message transmission method provided in an embodiment of this application;
图9为本申请实施例提供的报文传输方法的应用场景示意图一;Figure 9 is a schematic diagram of an application scenario of the message transmission method provided in the embodiments of this application;
图10为本申请实施例提供的报文传输方法的应用场景示意图二;Figure 10 is a schematic diagram of the second application scenario of the message transmission method provided in the embodiment of this application;
图11为本申请实施例提供的报文传输方法的应用场景示意图三;Figure 11 is a schematic diagram of the third application scenario of the message transmission method provided in the embodiment of this application;
图12为本申请实施例提供的报文传输方法的应用场景示意图四;Figure 12 is a schematic diagram of an application scenario of the message transmission method provided in the embodiments of this application;
图13为本申请实施例提供的通信装置的结构示意图二;Figure 13 is a second structural schematic diagram of the communication device provided in an embodiment of this application;
图14为本申请实施例提供的通信装置的结构示意图二。Figure 14 is a schematic diagram of the structure of the communication device provided in the embodiment of this application.
本申请实施例的技术方案可以应用于各种通信系统,例如无线网络(Wi-Fi)系统,车到任意物体(vehicle to everything,V2X)通信系统、设备间(device-todevie,D2D)通信系统、车联网通信系统、第四代(4th generation,4G)移动通信系统,如长期演进(long term evolution,LTE)系统、全球互联微波接入(worldwide interoperability for microwave access,WiMAX)通信系统、第五代(5th generation,5G)移动通信系统,如新空口(new radio,NR)系统,以及未来的通信系统。The technical solutions of this application embodiment can be applied to various communication systems, such as Wi-Fi wireless network systems, vehicle-to-everything (V2X) communication systems, device-to-device (D2D) communication systems, vehicle-to-everything (V2X) communication systems, fourth-generation (4G) mobile communication systems, such as long-term evolution (LTE) systems, worldwide interoperability for microwave access (WiMAX) communication systems, fifth-generation (5G) mobile communication systems, such as new radio (NR) systems, and future communication systems.
下面将结合附图,对本申请中的技术术语和相关技术方案进行描述。The technical terms and related technical solutions in this application will be described below with reference to the accompanying drawings.
远程直接内存访问(remote direct memory access,RDMA):Remote direct memory access (RDMA):
面对高性能计算、大数据分析等输入/输出(input/output,IO)高并发、低时延应用,现有传输控制协议/因特网互联协议(transmission control protocol/internet protocol,TCP/IP)软硬件架构不能满足应用的需求,这主要体现在传统的TCP/IP网络通信是通过内核发送消息,这种通信方式存在很高的数据移动和数据复制的开销。RDMA技术就是为了解决网络传输中服务器端数据处理的延迟而产生的。如图1所示,RDMA技术能直接通过网络接口访问内存数据,无需数据通过中央处理器(central processing unit,CPU)搬移至内核,再由内核搬移至网卡,无需操作系统内核的介入(RDMA网卡直接去内存读取应用(application,APP)数据,无需CPU介入数据搬移)。这允许高吞吐、低延迟的网络通信,适合在大规模并行计算机集群中使用。当速率高达40吉比特每秒(Gbps),传统TCP/IP的传输方式导致CPU占用率通常高达100%;而使用RDMA网卡时,CPU占用率通常可以在5%左右。For high-performance computing, big data analytics, and other applications requiring high concurrency and low latency input/output (IO), the existing TCP/IP hardware and software architecture cannot meet the application requirements. This is mainly because traditional TCP/IP network communication involves sending messages through the kernel, which incurs significant overhead from data movement and copying. RDMA technology was developed to address the latency issues in server-side data processing during network transmission. As shown in Figure 1, RDMA technology can directly access memory data through the network interface, eliminating the need for data to be moved from the central processing unit (CPU) to the kernel and then from the kernel to the network card. It also eliminates the need for operating system kernel intervention (the RDMA network card directly reads application (APP) data from memory, without CPU intervention for data movement). This allows for high-throughput, low-latency network communication, making it suitable for use in large-scale parallel computer clusters. When the data rate reaches 40 gigabits per second (Gbps), the traditional TCP/IP transmission method typically results in CPU utilization of up to 100%; while when using an RDMA network card, CPU utilization is usually around 5%.
RDMA协议栈:RDMA protocol stack:
无限带宽(InfiniBand,IB)是一种基于IB架构的RDMA技术,它提供了一种基于通道的点对点消息队列转发模型,每个应用都可通过创建的虚拟通道直接获取本应用的数据消息,无需其他操作系统及协议栈的介入。IB架构的应用层采用了RDMA技术,可以提供远程节点间的RDMA读写访问,以卸载CPU工作负载。网络传输采用了高带宽的传输,链路层设置特定的重传机制保证服务质量,不需要数据缓冲。InfiniBand (IB) is a Remote DMA (Remote Data Access) technology based on the IB architecture. It provides a channel-based point-to-point message queue forwarding model, allowing each application to directly access its own data messages through a created virtual channel without the need for other operating systems or protocol stacks. The application layer of the IB architecture utilizes RDMA technology to provide RDMA read/write access between remote nodes, offloading CPU workloads. Network transmission employs high-bandwidth transmission, and the link layer uses specific retransmission mechanisms to ensure quality of service, eliminating the need for data buffering.
基于以太网的RDMA(RDMA over converged ethernet,RoCE)协议分为两个版本,RoCE v1协议和RoCE v2协议。RoCE v1协议:基于以太网承载RDMA,部署于二层网络,其它的报文结构是在原有的IB架构的报文上增加二层以太网的报文头,通过以太类型(Ethertype)0x8915标识RoCE报文。RoCE v2协议:基于用户数据报协议(user datagram protocol,UDP)/IP协议承载RDMA,可部署于三层网络,它的报文结构是在原有的IB架构的报文上增加UDP头、IP头和二层以太网报文头,通过UDP目的端口号4791标识RoCE报文。The RDMA over converged Ethernet (RoCE) protocol has two versions: RoCE v1 and RoCE v2. RoCE v1: RDMA is carried over Ethernet and deployed in Layer 2 networks. Its message structure adds a Layer 2 Ethernet header to the existing IB architecture, identifying RoCE messages using the Ethernet type 0x8915. RoCE v2: RDMA is carried over the User Datagram Protocol (UDP)/IP protocol and can be deployed in Layer 3 networks. Its message structure adds a UDP header, an IP header, and a Layer 2 Ethernet header to the existing IB architecture, identifying RoCE messages using the UDP destination port number 4791.
因特网广域RDMA协议(internet wide-area RDMA protocol,iWARP)是基于以太网和TCP/IP协议的RDMA技术,可以运行在标准的以太网基础设施上。iWARP并没有指定物理层信息,所以能够工作在任何使用TCP/IP协议的网络上层。iWARP允许很多传输类型来共享相同的物理连接,如网络、I/O、文件系统、块存储和处理器之间的消息通讯。The Internet Wide-Area RDMA protocol (iWARP) is an RDMA technology based on Ethernet and TCP/IP protocols, capable of running on standard Ethernet infrastructure. iWARP does not specify physical layer information, thus it can work on any network layer using the TCP/IP protocol. iWARP allows many transport types to share the same physical connection, such as network, I/O, file systems, block storage, and inter-processor message communication.
RDMA基本服务类型:RDMA Basic Service Types:
RDMA的基本通信单元是队列对(queue pair,QP),基于QP的通信模型有很多种,在RDMA领域称其为“服务类型”。IB协议中通过“可靠性”和“连接”两个维度来描述一种服务类型。The basic communication unit of RDMA is the queue pair (QP). There are many communication models based on QP, which are referred to as "service types" in the RDMA field. In the IB protocol, a service type is described through two dimensions: "reliability" and "connectivity".
可靠性:通信中的可靠指的是通过一些机制保证发出去的数据包都能够被正常接收。即“可靠服务在发送和接受者之间保证了信息最多传递一次,并且能够保证其按照发送顺序完整的被接收”。RDMA可以通过3个机制保证可靠性:Reliability: In communication, reliability refers to ensuring that all sent data packets are received correctly through mechanisms. That is, "a reliable service guarantees that information is delivered at most once between the sender and receiver, and that it is received completely in the order it was sent." RDMA can guarantee reliability through three mechanisms:
1)应答机制:发送端给接收端发了一个数据包,接收端在收到后回复一个“我收到了”的消息给发送端,这样,发送端就知道接收端收到自己发送的数据包。在通信领域一般称接收端的这个回复为应答包或确认(acknowledge,ACK)。在IB协议的可靠服务类型中,使用了应答机制来保证数据包被对方收到。在IB的可靠服务类型中,接收端不是每一个包都回复,也可以一次回复多个包的ACK。1) Acknowledgment Mechanism: The sender sends a data packet to the receiver. Upon receiving it, the receiver replies with a "Received" message, thus informing the sender that the receiver has received the data packet. In the field of communications, this reply from the receiver is generally called an acknowledgment packet (ACK). In the IB protocol's reliable service type, an acknowledgment mechanism is used to ensure that data packets are received by the other party. In IB's reliable service type, the receiver does not necessarily reply to every packet; it can also reply with ACKs for multiple packets at once.
2)数据校验机制:发送端通过一定的算法计算头部(header)和有效载荷(payload),得到一个校验值放到数据包的末尾。接收端收到数据包后,也会用相同的算法计算出校验值,然后与数据包中的校验值比对,如果不一致,说明数据中包含错误(一般是链路问题导致的),那么接收端就会丢弃这个数据包。2) Data verification mechanism: The sending end calculates a checksum for the header and payload using a specific algorithm and places it at the end of the data packet. The receiving end, upon receiving the data packet, also calculates its checksum using the same algorithm and compares it with the checksum in the data packet. If they do not match, it indicates an error in the data (usually caused by a link problem), and the receiving end will discard the data packet.
3)保序机制:保序机制用以保证先被发送到物理链路上的数据包一定要先于后发送的数据包被接收端收到。例如,有一些业务对数据包的先后顺序是有需求的,比如语音或者视频。IB协议定义包序号(packet sequence number,PSN)的概念,即每个数据包都有一个递增的编码,如PSN,用来检测是否丢包,比如接收端收到了PSN=1的数据包,但是在没收到PSN=2的数据包的情况下就收到了PSN=3的数据包,那么接收端就会认为传输过程中发生错误,向发送端回复否定应答(negative acknowledge,NACK)给发送端,让其重发丢失的数据包。3) Order Preservation Mechanism: The order preservation mechanism ensures that data packets sent to the physical link first are received by the receiver before data packets sent later. For example, some services require the order of data packets, such as voice or video. The IB protocol defines the concept of packet sequence number (PSN), which means that each data packet has an incrementing code, such as PSN, used to detect packet loss. For example, if the receiver receives a data packet with PSN=1, but receives a data packet with PSN=3 before receiving a data packet with PSN=2, the receiver will consider that an error has occurred during transmission and send a negative acknowledgment (NACK) to the sender, requesting that the sender retransmit the lost data packet.
连接(connection):IB协议中的连接通常是逻辑概念,区别于物理连接,连接是一条通信的“管道”,一旦管道建立好了,管道这端发出的数据包会沿着这条管道到达另一端。如图2所示,每个QP与其建立连接的QP之间保证连接,QP维护该信息,如5个节点的QP之间需要相互通信,则需要建立20个5*(5-1)个QP,QP间的上下文维护需要占用网卡资源,导致开销较大。Connection: In the IB protocol, a connection is usually a logical concept, distinct from a physical connection. A connection is a communication "pipeline." Once the pipeline is established, data packets sent from one end of the pipeline will travel along it to the other end. As shown in Figure 2, each QP maintains a connection with the QPs it establishes a connection with. The QP maintains this information. For example, if QPs of 5 nodes need to communicate with each other, then 20 QPs of 5*(5-1) need to be established. The context maintenance between QPs consumes network card resources, resulting in significant overhead.
数据报(datagram)与连接相反,发送端和接收端间不需要“建立管道”的步骤,保证发送端到接收端物理上是可以到达,发送端能够从任何路径发给任意的接收端。因此,IB协议对数据报的定义如下:对于数据报服务来说,QP不会跟一个唯一的远端节点绑定,而是通过工作队列元素(work queue element,WQE)来指定目的节点,并且,和连接类型的服务一样,建立通信的过程也需要两端交换对端信息,但是数据报服务对于每个目的节点都需要执行一次这个交换过程。也如图2所示,5个节点间的相互通信对应建立5个QP即可,数据报服务的QP上下文信息相比较与连接服务的QP上下文信息更少,开销更小。In contrast to connections, datagrams do not require a "pipeline" between the sender and receiver, guaranteeing physical reachability. The sender can send data to any receiver from any path. Therefore, the IB protocol defines a datagram as follows: For datagram services, a QP (Queued Message) is not bound to a single remote node, but rather the destination node is specified through a work queue element (WQE). Similar to connection-type services, establishing communication requires exchanging information between the two ends; however, datagram services perform this exchange once for each destination node. As shown in Figure 2, communication between five nodes requires establishing five QPs. The QP context information for datagram services is less than that for connection-type services, resulting in lower overhead.
上述的可靠性与连接/数据报有4种组合,可靠(Reliable)与连接组合,即RC,不可靠(Unreliable)与连接组合,即UC,可靠与数据报组合,即RD,不可靠与数据报组合,即UD。RDMA支持RC、UC、RD、UD,其中,RC与UD是RDMA中较为常见的服务类型。RC为主流,RC的QP关系为一对一,其特点类似TCP,通过ACK,PSN和循环冗余校验(cyclic redundancy check,CRC)保障可靠性,不支持选择重传和乱序吗收,发生错误,整个消息重传。RC支持发(send)、读(read)、write(写)、原子(atomic),适用到可靠性高、节点规模不大的场景,如分布式人工智能(artificial intelligence,AI)、存储系统等。UC的QP关系为一对一,其特点是不进行丢包、错误重传。UC支持发(send)、读(read),适用到不要求可靠性,上层应用负载,节点规模不大,大消息的场景。UD的QP关系为一对多,其特点是类似UDP,不保障按序性。UD支持发(send),适用到不要求可靠性,节点规模大,多节点交互,多播需求的场景,如存储三副本等。The aforementioned reliability and connectivity/datagram combinations include four types: Reliable and connectivity (RC), Unreliable and connectivity (UC), Reliable and datagram (RD), and Unreliable and datagram (UD). RDMA supports RC, UC, RD, and UD, with RC and UD being the most common service types. RC is the mainstream approach, with a one-to-one QP relationship. Its characteristics are similar to TCP, ensuring reliability through ACK, PSN, and cyclic redundancy check (CRC). It does not support selective retransmission or out-of-order delivery; in case of an error, the entire message is retransmitted. RC supports send, read, write, and atomic operations, making it suitable for scenarios with high reliability and small node scale, such as distributed artificial intelligence (AI) and storage systems. UC also has a one-to-one QP relationship, characterized by not retransmitting packets in case of loss or errors. UC supports both sending and reading, making it suitable for scenarios where reliability is not critical, upper-layer application load is high, the number of nodes is small, and large messages are handled. UD's QP relationship is one-to-many, and its characteristics are similar to UDP, not guaranteeing in-order delivery. UD supports sending, making it suitable for scenarios where reliability is not critical, the number of nodes is large, multi-node interaction is required, and multicast is needed, such as storage with three replicas.
RDMA数据报文:RDMA data packets:
RDMA数据报文也可以称为RDMA报文,RDMA传输层(IB传输层)的基本传输报文头(base transport header,BTH)包含操作码(OpCode)字段,用于指示传输层报文的服务类型,如8比特(bit)的高3位为000表示RC服务类型,高3位为001表示UC服务类型,高3位为010表示RD服务类型,高3位为011表示UD服务类型。BTH中QP的指示域(或者说QP号)大小为24比特,QP号的指示范围为0到224-1。RDMA data packets, also known as RDMA messages, have a base transport header (BTH) in the RDMA transport layer (IB transport layer). The opcode field indicates the service type of the transport layer message. For example, the high 3 bits (000) indicate RC service type, 001 indicate UC service type, 010 indicate RD service type, and 011 indicate UD service type. The QP indicator field (or QP number) in the BTH is 24 bits in size, and the QP number ranges from 0 to 2^ 24-1 .
RDMA报文格式如图3所示,其包含RDMA链路层报文头(local routing header,LRH)、RDMA网络层报文头(global routing header,GRH)、RDMA传输层基本报文头BTH,RDMA传输层扩展报文头(extended transport header,ETH)、消息载荷(message payload)、R_密钥(R_Key)或者即时数据(immediate data)、恒定循环移位码(invariant CRC)、不确定的循环移位码(variant CRC)。ETH有多种不同类型,如可靠数据报扩展传输头(reliable datagram extended transport header,RDETH)、数据报扩展传输头(datagram extended transport header,DETH)、RDMA扩展传输头(RDMA extended transport header,RETH)等。The RDMA message format is shown in Figure 3. It includes the RDMA link layer header (local routing header, LRH), the RDMA network layer header (global routing header, GRH), the RDMA transport layer basic header (BTH), the RDMA transport layer extended transport header (ETH), the message payload, the R_key or immediate data, the invariant cyclic shift code (CRC), and the variant cyclic shift code (CRC). ETH has several different types, such as the reliable datagram extended transport header (RDETH), the datagram extended transport header (DETH), and the RDMA extended transport header (RETH).
其中,GRH中会携带源GID、目的GID信息。BTH中会携带目的QP信息,此外BTH中的操作码会指示QP的服务类型及具体的扩展报文头类型。DETH中会携带源QP信息,其他的扩展报文头不携带源QP信息。The GRH header carries source and destination GID information. The BTH header carries destination QP information, and the opcode in the BTH header indicates the service type of the QP and the specific extended header type. The DETH header carries source QP information, while other extended headers do not carry source QP information.
RDMA的具体介绍也可参考:https://www.afs.enea.it/asantoro/V1r1_2_1.Release_12062007.pdf。For a detailed introduction to RDMA, please refer to: https://www.afs.enea.it/asantoro/V1r1_2_1.Release_12062007.pdf.
目前,现有RDMA的重传方式为回到Q(go-back-Q)重传。在RDMA发/写/读原语的最大消息大小与服务类型相关,RC、UC、RD服务时最大消息大小为2吉字节(GBytes),而传输层报文的载荷在建链过程中会协商为256/512/1024/2048/4096字节中的一个,即最大传输单元(maximum transmission unit,MTU)。因此,消息的发送会被拆成N个报文,如图4所示,当其中一个报文发生丢包/解析错误等,需要重传该报文及之后的所有报文,如重传到PSN为Q+2的报文。这种方式会导致通信的性能损失明显,在千分之一的丢包率的情况下,对于RDMA发/写会有接近50%的性能损失。例如,如图5所示,RDMA写的消息为1千字节(Kbyte),MTU为1024字节(byte),当丢包率为千分之一时,归一化的系统吞吐量只有0.349,系统性能损失比较大。Currently, the retransmission method for existing RDMA is go-back-Q retransmission. The maximum message size for RDMA transmit/write/read primitives is related to the service type. For RC, UC, and RD services, the maximum message size is 2 gigabytes (GBytes). The payload of the transport layer message is negotiated during link establishment to one of 256/512/1024/2048/4096 bytes, i.e., the maximum transmission unit (MTU). Therefore, message transmission is split into N packets, as shown in Figure 4. If one packet is lost or encounters a parsing error, that packet and all subsequent packets need to be retransmitted, such as retransmitting a packet with a PSN of Q+2. This method leads to a significant performance loss in communication; with a packet loss rate of 0.1%, there will be nearly a 50% performance loss for RDMA transmit/write. For example, as shown in Figure 5, when the message written by RDMA is 1 kilobyte and the MTU is 1024 bytes, the normalized system throughput is only 0.349 when the packet loss rate is 0.1%, resulting in a significant loss in system performance.
此外,一些网卡提供RDMA写的乱序接收机制,如图6所示,通过将写首报文(write first)、写中间报文(write middle)、写末报文(write last)全部改为大于MTU的消息切分成MTU大小的消息,仅以单独写(write only)报文发送。每个write only的报文都添加RETH,用以哪个报文丢包了就单独重传该报文。然而,每个报文都携带RETH也会导致传输开销很大。In addition, some network interface cards (NICs) provide an out-of-order reception mechanism for RDMA writes, as shown in Figure 6. This is achieved by splitting the write first, write middle, and write last packets into messages larger than the MTU, and sending them as write-only packets. Each write-only packet includes a Retrieval Token (RETH) to ensure that any lost packet is retransmitted separately. However, carrying a RETH in every packet can lead to significant transmission overhead.
因此,在RDMA场景下,如何兼顾系统性能和传输开销是目前研究的问题。Therefore, in RDMA scenarios, how to balance system performance and transmission overhead is a current research problem.
针对上述技术问题,本申请实施例提出了如下技术方案。下面将结合附图,对本申请中的技术方案进行描述。To address the aforementioned technical problems, this application proposes the following technical solutions. The technical solutions in this application will now be described in conjunction with the accompanying drawings.
本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。This application will present various aspects, embodiments, or features relating to systems that may include multiple devices, components, modules, etc. It should be understood and appreciated that individual systems may include additional devices, components, modules, etc., and/or may not include all the devices, components, modules, etc. discussed in conjunction with the accompanying drawings. Furthermore, combinations of these approaches are also possible.
另外,在本申请实施例中,“示例地”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。Furthermore, in the embodiments of this application, words such as "exemplarily" and "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as an "example" in this application should not be construed as being better or more advantageous than other embodiments or designs. Rather, the use of the word "example" is intended to present the concept in a specific manner.
第一,在本申请中,“用于指示”可以包括用于直接指示和用于间接指示。当描述某一“信息”用于指示A时,可以包括该信息直接指示A或间接指示A,而并不代表该信息中一定携带有A。First, in this application, "for indicating" can include both direct and indirect indication. When describing "information" for indicating A, it can include whether the information directly indicates A or indirectly indicates A, but does not necessarily mean that the information carries A.
将一个信息所指示的信息称为待指示信息,则具体实现过程中,对待指示信息进行指示的方式有很多种,例如但不限于,可以直接指示待指示信息,如待指示信息本身或者该待指示信息的索引等。也可以通过指示其他信息来间接指示待指示信息,其中该其他信息与待指示信息之间存在关联关系。还可以仅仅指示待指示信息的一部分,而待指示信息的其他部分则是已知的或者提前约定的。例如,还可以借助预先约定(例如协议规定)的各个信息的排列顺序来实现对特定信息的指示,从而在一定程度上降低指示开销。同时,还可以识别各个信息的通用部分并统一指示,以降低单独指示同样的信息而带来的指示开销。The information indicated by a given piece of information is called the information to be indicated. In the specific implementation process, there are many ways to indicate the information to be indicated, such as, but not limited to, directly indicating the information to be indicated, such as the information to be indicated itself or its index. It can also be indirectly indicated by indicating other information, where there is a relationship between the other information and the information to be indicated. It can also indicate only a part of the information to be indicated, while the other parts are known or pre-agreed upon. For example, the indication of specific information can be achieved by using a pre-agreed (e.g., protocol-defined) arrangement of various pieces of information, thereby reducing the indication overhead to some extent. At the same time, common parts of various pieces of information can be identified and indicated uniformly to reduce the indication overhead caused by individually indicating the same information.
此外,具体的指示方式还可以是现有各种指示方式,例如但不限于,上述指示方式及其各种组合等。各种指示方式的具体细节可以参考现有技术,本文不再赘述。由上文所述可知,举例来说,当需要指示相同类型的多个信息时,可能会出现不同信息的指示方式不相同的情形。具体实现过程中,可以根据具体的需要选择所需的指示方式,本申请实施例对选择的指示方式不做限定,如此一来,本申请实施例涉及的指示方式应理解为涵盖可以使得待指示方获知待指示信息的各种方法。Furthermore, the specific indication method can also be any existing indication method, such as, but not limited to, the above-mentioned indication methods and their various combinations. Specific details of various indication methods can be found in existing technologies, and will not be repeated here. As described above, for example, when multiple pieces of information of the same type need to be indicated, the indication methods for different pieces of information may differ. In the specific implementation process, the required indication method can be selected according to specific needs. This application embodiment does not limit the selected indication method; therefore, the indication methods involved in this application embodiment should be understood to cover various methods that enable the party to be indicated to obtain the information to be indicated.
待指示信息可以作为一个整体一起发送,也可以分成多个子信息分开发送,而且这些子信息的发送周期和/或发送时机可以相同,也可以不同。具体发送方法本申请不进行限定。其中,这些子信息的发送周期和/或发送时机可以是预先定义的,例如根据协议预先定义的,也可以是发射端设备通过向接收端设备发送配置信息来配置的。其中,该配置信息可以例如但不限于包括无线资源控制(radio resource control,RRC)信令、媒体接入控制(medium access control,MAC)层信令和物理层信令中的一种或者至少两种的组合。其中,MAC层信令例如包括MAC控制元素(control element,CE);物理(physical,PHY)层信令例如包括下行控制信息(downlink control information,DCI)。The instruction information can be sent as a whole or divided into multiple sub-information messages, and the sending period and/or timing of these sub-information messages can be the same or different. This application does not limit the specific sending method. The sending period and/or timing of these sub-information messages can be predefined, for example, according to a protocol, or configured by the transmitting device by sending configuration information to the receiving device. This configuration information can include, for example, but not limited to, one or a combination of at least two of radio resource control (RRC) signaling, medium access control (MAC) layer signaling, and physical layer signaling. MAC layer signaling includes, for example, a MAC control element (CE); physical (PHY) layer signaling includes, for example, downlink control information (DCI).
第二,在下文示出的实施例中第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,区分不同的指示信息。Second, in the embodiments shown below, the first, second, and various numerical designations are merely distinctions for descriptive convenience and are not intended to limit the scope of the embodiments of this application. For example, to distinguish different indication information.
第三,“预设”、或“预定义”、或“预配置”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,还可以是通过协议中预先规定的,本申请对于其具体的实现方式不做限定。其中,“保存”可以是指,保存在一个或者多个存储器中。所述一个或者多个存储器可以是单独的设置,也可以是集成在编码器或者译码器,处理器、或通信装置中。所述一个或者多个存储器也可以是一部分单独设置,一部分集成在译码器、处理器、或通信装置中。存储器的类型可以是任意形式的存储介质,本申请并不对此限定。Third, "pre-defined," "pre-configured," or "pre-specified" can be achieved by pre-saving corresponding codes, tables, or other means of indicating relevant information in the device (e.g., including terminal devices and network devices), or by pre-defining them in a protocol. This application does not limit the specific implementation method. "Saving" can refer to saving in one or more memories. These memories can be separate installations or integrated into the encoder, decoder, processor, or communication device. Alternatively, some memories can be separately installed, while others are integrated into the decoder, processor, or communication device. The type of memory can be any form of storage medium, and this application does not limit this.
第四,本申请实施例中涉及的“协议”可以是指通信领域的标准协议,例如可以包括3GPP的LTE协议(如技术规范(technical specification,TS)36,即TS36系列的技术规范)、NR协议(如TS38系列的技术规范)以及应用于未来的通信系统中的相关协议,本申请对此不作限定。Fourth, the “protocol” involved in the embodiments of this application may refer to standard protocols in the field of communication, such as 3GPP’s LTE protocols (such as technical specification (TS) 36, i.e., the TS36 series of technical specifications), NR protocols (such as the TS38 series of technical specifications), and related protocols applied to future communication systems. This application does not limit this.
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。The network architecture and business scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。The network architecture and business scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
为便于理解本申请实施例,首先以图7中示出的通信系统为例详细说明适用于本申请实施例的通信系统。示例性地,图7为本申请实施例提供的方法所适用的一种通信系统的架构示意图。To facilitate understanding of the embodiments of this application, the communication system applicable to the embodiments of this application will be described in detail first using the communication system shown in FIG7 as an example. Exemplarily, FIG7 is a schematic diagram of the architecture of a communication system to which the method provided in the embodiments of this application is applicable.
如图7中的(a)所示,该通信系统可以包含第一装置和第二装置,可选地,还可以包含第三装置。As shown in Figure 7(a), the communication system may include a first device and a second device, and optionally, may also include a third device.
第一装置可以是终端设备或网络设备,第二装置也可以是终端设备或网络设备。第三装置可以是网络设备,在第二装置为网络设备的情况下,第三装置与第二装置可以是相同的网络设备,或也可以是不同的网络设备,具体做限制。The first device can be a terminal device or a network device, and the second device can also be a terminal device or a network device. The third device can be a network device. If the second device is a network device, the third device and the second device can be the same network device or different network devices, subject to specific limitations.
示例性地,如图7中的(b)所示,网络设备可以包括网络设备201a至网络设备201c,终端设备可以包括终端设备202a至终端设备202f。终端设备可以通过无线的方式与网络设备相连,网络可以通过有线或无线的方式与核心网相连。For example, as shown in FIG7(b), the network devices may include network devices 201a to 201c, and the terminal devices may include terminal devices 202a to 202f. The terminal devices may be connected to the network devices wirelessly, and the network may be connected to the core network via wired or wireless means.
其中,网络设备与终端设备可以进行信息交互。Among them, network devices and terminal devices can exchange information.
终端设备可以是具有收发功能的终端,或也可以是设置于该终端设备的芯片或芯片系统。该终端设备也可以称为用户设备(user equipment,UE)、接入终端、用户单元(subscriber unit)、用户站、移动站(mobile station,MS)、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。本申请的实施例中的终端设备可以是手机(mobile phone)、蜂窝电话(cellular phone)、智能电话(smart phone)、平板电脑(Pad)、无线数据卡、个人数字助理电脑(personal digital assistant,PDA)、无线调制解调器(modem)、手持设备(handset)、膝上型电脑(laptop computer)、机器类型通信(machine type communication,MTC)终端、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、智能家居设备(例如,冰箱、电视、空调、电表等)、智能机器人、机械臂、车间设备、无人驾驶中的无线终端、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程医疗(telemedicine)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、车载终端、具有终端功能的路边单元(road side unit,RSU)等、飞行设备(例如,智能机器人、热气球、无人机、飞机)等。本申请的终端设备还可以是作为一个或多个部件或者单元而内置于车辆的车载模块、车载模组、车载部件、车载芯片或者车载单元。终端设备还可以是其他具有终端功能的设备,例如,终端设备还可以是D2D通信中担任终端功能的设备。本申请的实施例对终端设备的设备形态不做限定,用于实现终端的功能的装置可以是终端设备;也可以是能够支持终端实现该功能的装置,例如芯片系统。该装置可以被安装在终端中或者和终端匹配使用。本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。The terminal device can be a terminal with transceiver capabilities, or it can be a chip or chip system installed in the terminal device. The terminal device can also be referred to as user equipment (UE), access terminal, subscriber unit, user station, mobile station (MS), mobile station, remote station, remote terminal, mobile device, user terminal, terminal, wireless communication equipment, user agent, or user device. In the embodiments of this application, the terminal device can be a mobile phone, cellular phone, smartphone, tablet computer, wireless data card, personal digital assistant computer (PDA), wireless modem, handset, laptop computer, machine-type communication (MTC) terminal, computer with wireless transceiver capabilities, virtual reality (VR) terminal, augmented reality (AR) terminal, or smart home device. The terminal equipment in this application can include (e.g., refrigerators, televisions, air conditioners, electricity meters, etc.), intelligent robots, robotic arms, workshop equipment, wireless terminals in autonomous driving, wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in telemedicine, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, vehicle-mounted terminals, roadside units (RSUs) with terminal functions, and flying equipment (e.g., intelligent robots, hot air balloons, drones, airplanes). The terminal equipment in this application can also be an onboard module, onboard unit, onboard component, onboard chip, or onboard unit built into a vehicle as one or more components or units. The terminal equipment can also be other devices with terminal functions; for example, the terminal equipment can also be a device that performs terminal functions in D2D communication. The embodiments of this application do not limit the device form of the terminal device. The device used to implement the functions of the terminal can be a terminal device; it can also be a device that supports the terminal in implementing the functions, such as a chip system. The device can be installed in the terminal or used in conjunction with the terminal. In the embodiments of this application, the chip system can be composed of chips, or it can include chips and other discrete components.
网络设备可以是具有无线收发功能的设备,或也可以是设置于该设备的芯片或芯片系统,位于通信系统的接入网(access network,AN),用以为终端提供接入服务。例如,网络设备可以被称为无线接入网(radio access network,RAN)设备,具体可以是未来的移动通信系统,或者在未来的移动通信系统中,网络设备也可以有其他命名方式,其均涵盖在本申请实施例的保护范围以内,本申请对此不做任何限定。或者,网络设备也可以包括5G,如新空口(new radio,NR)系统中的gNB,或,5G中的基站的一个或一组(包括多个天线面板)天线面板,或者,还可以为构成gNB、传输点(transmission and reception point,TRP或者transmission point,TP)或传输测量功能(transmission measurement function,TMF)的网络节点,如集中式单元(central unit,CU),分布式单元(distributed unit,DU),CU-控制面(control plane,CP),CU-用户面(user plane,UP),或者无线单元(radio unit,RU)、具有基站功能的RSU,或者有线接入网关,或者5G的核心网网元等。或者,网络设备还可以包括:WiFi系统中的接入点(access point,AP),无线中继节点、无线回传节点、各种形式的宏基站、微基站(也称为小站)、中继站、接入点、可穿戴设备、车载设备等等。Network devices can be devices with wireless transceiver capabilities, or they can be chips or chip systems located in the access network (AN) of a communication system to provide access services to terminals. For example, network devices can be called radio access network (RAN) devices, specifically future mobile communication systems, or network devices can have other naming conventions in future mobile communication systems, all of which are covered within the protection scope of the embodiments of this application, and this application does not impose any limitations on them. Alternatively, network equipment can also include 5G, such as a gNB in a New Radio (NR) system, or one or a group of antenna panels (including multiple antenna panels) of a 5G base station. It can also be network nodes constituting a gNB, a transmission and reception point (TRP) or transmission point (TP), or a transmission measurement function (TMF), such as a central unit (CU), a distributed unit (DU), a CU-control plane (CP), a CU-user plane (UP), a radio unit (RU), an RSU with base station functionality, a wired access gateway, or core network elements of 5G. Alternatively, network equipment can also include: access points (APs) in WiFi systems, wireless relay nodes, wireless backhaul nodes, various forms of macro base stations, micro base stations (also called small cells), relay stations, access points, wearable devices, vehicle-mounted equipment, etc.
CU和DU可以是单独设置,或者也可以包括在同一个网元中,例如基带单元(baseband unit,BBU)中。RU可以包括在射频设备或者射频单元中,例如包括在射频拉远单元(remote radio unit,RRU)、有源天线处理单元(active antenna unit,AAU)或远程射频头(remote radio head,RRH)中。可以理解的是,网络设备可以为CU节点、或DU节点、或包括CU节点和DU节点的设备。此外,CU可以划分为接入网RAN中的网络设备,也可以将CU划分为核心网CN中的网络设备,在此不做限制。在不同系统中,CU(或CU-CP和CU-UP)、DU或RU也可以有不同的名称,但是本领域的技术人员可以理解其含义。例如,在ORAN系统中,CU也可以称为O-CU(开放式CU),DU也可以称为O-DU,CU-CP也可以称为O-CU-CP,CU-UP也可以称为O-CU-UP,RU也可以称为O-RU。为描述方便,本申请中以CU,CU-CP,CU-UP、DU和RU为例进行描述。本申请中的CU(或CU-CP、CU-UP)、DU和RU中的任一单元,可以是通过软件模块、硬件模块、或者软件模块与硬件模块结合来实现。本申请实施例中,对网络设备的形态不作限定,用于实现网络设备的功能的装置可以是网络设备;也可以是能够支持网络设备实现该功能的装置,例如芯片系统。该装置可以被安装在网络设备中或者和网络设备匹配使用。CU and DU can be separate entities or included in the same network element, such as a baseband unit (BBU). RU can be included in radio frequency equipment or radio frequency units, such as remote radio units (RRU), active antenna units (AAU), or remote radio heads (RRH). It is understood that network equipment can be CU nodes, DU nodes, or equipment including both CU and DU nodes. Furthermore, CU can be classified as a network device in the access network (RAN) or a network device in the core network (CN), without limitation. In different systems, CU (or CU-CP and CU-UP), DU, or RU may have different names, but their meanings will be understood by those skilled in the art. For example, in an ORAN system, CU can also be called O-CU (open CU), DU can also be called O-DU, CU-CP can also be called O-CU-CP, CU-UP can also be called O-CU-UP, and RU can also be called O-RU. For ease of description, this application uses CU, CU-CP, CU-UP, DU, and RU as examples. Any of the units among CU (or CU-CP, CU-UP), DU, and RU in this application can be implemented through software modules, hardware modules, or a combination of software and hardware modules. In the embodiments of this application, the form of the network device is not limited; the device used to implement the function of the network device can be the network device itself; it can also be a device capable of supporting the network device in implementing that function, such as a chip system. This device can be installed in the network device or used in conjunction with the network device.
或者,网络设备也可以是核心网网元,如用户面功能(user plane function,UPF)、鉴权服务器功能(authentication server function,AUSF)、接入和移动性管理功能(access and mobility management function,AMF)、会话管理功能(session management function,SMF)、网络切片选择功能(network slice selection function,NSSF)、网络开放功能(network exposure function,NEF)、网络存储功能(network repository function,NRF)、策略控制功能(policy control function,PCF)、统一数据管理(unified data management,UDM)、统一数据存储(unified data repository,UDR)、以及应用功能(application function,AF)等;或者在未来的通信系统中,网络设备也可以是其他网元,或也可以将上述的网络功能网元进行组合或拆分,或调整其部署位置,具体不做限制。Alternatively, network devices can also be core network elements, such as user plane function (UPF), authentication server function (AUSF), access and mobility management function (AMF), session management function (SMF), network slice selection function (NSSF), network exposure function (NEF), network repository function (NRF), policy control function (PCF), unified data management (UDM), unified data repository (UDR), and application function (AF), etc. In future communication systems, network devices can also be other network elements, or the above-mentioned network function elements can be combined or split, or their deployment locations can be adjusted, without any specific restrictions.
在通信系统中,第一装置可以将M个RDMA报文分组/分段,如自行分组/分段,或者根据第三装置的配置进行分组/分段。在每个RDMA报文组中设置一个RDMA报文的头部包含地址信息,该地址信息用于确定包含地址信息的RDMA报文写入第二装置的内存的地址,用以每个分组中其他RDMA报文写入第二装置的内存的地址就可以依据该地址信息确定。一方面,以分组为粒度进行RDMA操作从而写入内存,如不同分组的RDMA报文可以写入相同或不同的内存区域,这些区域可以离散也可以连续,能够提高RDMA操作的灵活性。另一方面,若某个分组/分段中的RDMA报文丢包,则第一装置可仅重传该分组/分段中该丢包的RDMA报文之后的RDMA报文,其他分组的报文则不需要重传,因此可以降低RDMA的重传开销,提高通信效率。In a communication system, the first device can group/segment M RDMA messages, either automatically or according to the configuration of the third device. Each RDMA message group includes an address information header. This address information determines the address at which the RDMA message containing the address information is written to the memory of the second device. The addresses at which other RDMA messages within each group are written to the memory of the second device can then be determined based on this address information. On one hand, performing RDMA operations at the group level allows for writing to memory. RDMA messages from different groups can be written to the same or different memory regions, which can be discrete or contiguous, increasing the flexibility of RDMA operations. On the other hand, if an RDMA message in a group/segment is lost, the first device can retransmit only the RDMA messages following the lost message in that group/segment; messages from other groups do not need to be retransmitted. This reduces RDMA retransmission overhead and improves communication efficiency.
应理解,本申请实施例提供的报文传输方法,可以适用于图6-图7所示的设备,如第一装置与第二装置之间,具体实现可以参考下述方法实施例,此处不再赘述。本申请实施例中的方案还可以应用于其他通信系统中,相应的名称也可以用其他通信系统中的对应功能的名称进行替代。It should be understood that the message transmission method provided in this application embodiment can be applied to the devices shown in Figures 6-7, such as between the first device and the second device. Specific implementations can be found in the following method embodiments, which will not be repeated here. The solutions in this application embodiment can also be applied to other communication systems, and the corresponding names can be replaced with the names of the corresponding functions in other communication systems.
还应理解,图6-图7仅为便于理解而示例的简化示意图,该通信系统中还可以包括其他网络设备,和/或,其他终端设备,图6-图7中未予以画出。It should also be understood that Figures 6 and 7 are simplified schematic diagrams for ease of understanding only, and the communication system may also include other network devices and/or other terminal devices, which are not shown in Figures 6 and 7.
下面将结合图8,通过方法实施例具体介绍上述通信系统中各设备之间的交互流程。本申请实施例提供的报文传输方法可以适用于上述通信系统,如第一装置与第二装置之间的交互,下面具体介绍。The interaction process between devices in the above-described communication system will be specifically described below with reference to Figure 8 and through method embodiments. The message transmission method provided in this application embodiment can be applied to the above-described communication system, such as the interaction between the first device and the second device, which will be described in detail below.
如图8所示,该报文传输方法的流程如下:As shown in Figure 8, the process of this message transmission method is as follows:
S801,第一装置获取第一RDMA报文。S801, the first device acquires the first RDMA message.
第一RDMA报文属于M个RDMA报文,或者说是M个RDMA报文中的任一个RDMA报文,M为大于1的整数。The first RDMA message belongs to M RDMA messages, or any one of the M RDMA messages, where M is an integer greater than 1.
M个RDMA报文属于一个RDMA消息,如M个RDMA报文是通过处理该RDMA消息而得到的RDMA报文中的部分/全部RDMA报文。例如,该RDMA消息经由第一装置的QP处理得到M个RDMA报文,也可以说,M个RDMA报文对应该QP,或者说该QP的M个RDMA报文。RDMA消息可以是RDMA写消息,或者说(RDMA)写操作的消息,或其他任何可能的命名,或也可以是RDMA发送消息,或者说(RDMA)发送操作的消息,或其他任何可能的命名,具体不做限制。若RDMA消息是RDMA写消息,则M个RDMA报文可以为RDMA写报文,即,第一RDMA报文也可以为RDMA写报文。若RDMA消息是RDMA发送消息,则M个RDMA报文可以为RDMA发报文,即,第一RDMA报文也可以为RDMA发报文。M RDMA messages belong to one RDMA message. For example, the M RDMA messages are part/all of the RDMA messages obtained by processing this RDMA message. For instance, this RDMA message is processed by the QP of the first device to obtain M RDMA messages. It can also be said that the M RDMA messages correspond to this QP, or that the QP contains M RDMA messages. An RDMA message can be an RDMA write message, or a message indicating an RDMA write operation, or any other possible name. It can also be an RDMA send message, or a message indicating an RDMA send operation, or any other possible name; there is no specific limitation. If the RDMA message is an RDMA write message, then the M RDMA messages can be RDMA write messages, that is, the first RDMA message can also be an RDMA write message. If the RDMA message is an RDMA send message, then the M RDMA messages can be RDMA send messages, that is, the first RDMA message can also be an RDMA send message.
M个RDMA报文包括个RDMA报文组,为向上取整,设则K为大于1的整数,K个RDMA报文组中的每个RDMA报文组中有一个RDMA报文的头部包含地址信息,N为小于M的正整数。例如,M=100,N=10,那么K=10,即10个RDMA报文组,每个RDMA报文组包含10个RDMA报文。例如,M=53,N=7,那么K=8,即8个RDMA报文组,第1至7个RDMA报文组各自包含7个RDMA报文,第8个RDMA报文组各自包含4个RDMA报文,或者该包含4个RDMA报文也可以是任一个报文组,其在8个RDMA报文组中的位置或索引不做限制。每个RDMA报文组所包含的RDMA报文数目即为该RDMA报文组的分组长度,在此基础上,分组长度可以相同,也可以不同。方便理解,本申请以分组长度相同为例进行介绍,如分组长度为N。M RDMA messages include One RDMA message group, To round up, let K is an integer greater than 1. Each of the K RDMA packet groups contains one RDMA packet whose header includes address information. N is a positive integer less than M. For example, if M = 100 and N = 10, then K = 10, meaning 10 RDMA packet groups, each containing 10 RDMA packets. Alternatively, if M = 53 and N = 7, then K = 8, meaning 8 RDMA packet groups. The first to seventh RDMA packet groups each contain 7 RDMA packets, and the eighth RDMA packet group each contains 4 RDMA packets. The group containing 4 RDMA packets can also be any packet group, and its position or index within the 8 RDMA packet groups is not restricted. The number of RDMA packets contained in each RDMA packet group is the packet length of that RDMA packet group. The packet lengths can be the same or different. For ease of understanding, this application uses the example of a packet length of N.
地址信息可以用于确定包含地址信息的RDMA报文写入第二装置的内存的地址,如首个RDMA报文的地址或分组标识,具体可以参考下文的介绍,用以与该RDMA报文属于同一个RDMA报文组的RDMA报文,如余下的N-1个RDMA报文,其写入第二装置的内存的地址都可根据该包含地址信息的RDMA报文的地址确定。Address information can be used to determine the address of the RDMA message containing address information to be written into the memory of the second device, such as the address of the first RDMA message or the group identifier, as detailed below. It is used to determine the address of the remaining N-1 RDMA messages that belong to the same RDMA message group as the first RDMA message.
N的取值可以是动态的,如M个RDMA报文对应到某个QP,该QP的RDMA报文丢包率与N的取值负相关,如丢包率越高,N取值的越小,反之越大,也就是说,QP的RDMA报文丢包率可以决定该QP处理得到的RDMA报文的分组长度N,以实现根据丢包率进行动态分组,兼顾系统性能和传输开销。例如,在RDMA报文丢包率>2.6*10e-2时,每1个RDMA报文为一个RDMA报文组,即N=1;在RDMA报文丢包率>3.5*10e-3时,每5个RDMA报文为一个RDMA报文组,即N=5;在RDMA报文丢包率>4.5*10e-3时,每10个RDMA报文为一个RDMA报文组,即N=10;在RDMA报文丢包率<4.5*10e-3时,每50个RDMA报文为一个RDMA报文组,即N=50。The value of N can be dynamic. For example, M RDMA packets correspond to a certain QP. The packet loss rate of the RDMA packets of the QP is negatively correlated with the value of N. For example, the higher the packet loss rate, the smaller the value of N, and vice versa. In other words, the packet loss rate of the RDMA packets of the QP can determine the packet length N of the RDMA packets processed by the QP, so as to realize dynamic packetization according to the packet loss rate, taking into account system performance and transmission overhead. For example, when the RDMA packet loss rate is >2.6*10e-2, each RDMA packet is a group of RDMA packets, i.e., N=1; when the RDMA packet loss rate is >3.5*10e-3, each group of 5 RDMA packets is a group of RDMA packets, i.e., N=5; when the RDMA packet loss rate is >4.5*10e-3, each group of 10 RDMA packets is a group of RDMA packets, i.e., N=10; when the RDMA packet loss rate is <4.5*10e-3, each group of 50 RDMA packets is a group of RDMA packets, i.e., N=50.
可以看出,在丢包率比较低时,重传也很少发生,因此可以将N的取值配置的比较大,地址信息所占的开销比例比较少,传输开销比较小。在丢包率比较高时,重传时常发生,第一装置以分组为粒度进行重传,如至多重传N个RDMA报文,因此可以将N的取值配置的比较小,以降低重传开销,从而也能够保证系统性能。It can be seen that when the packet loss rate is low, retransmissions are infrequent, so the value of N can be configured to be relatively large, resulting in a smaller proportion of overhead for address information and lower transmission overhead. When the packet loss rate is high, retransmissions occur frequently. The first device performs retransmissions at the packet level, such as retransmitting up to N RDMA packets. Therefore, the value of N can be configured to be relatively small to reduce retransmission overhead and thus ensure system performance.
具体而言,K个RDMA报文组中每个RDMA报文组中的第一个RDMA报文的头部可以包含地址信息,也即,M个RDMA报文中的第(a-1)*N+1个RDMA报文的头部可以包含地址信息,如第1个RDMA报文、第N+1个RDMA报文、第2N+1个RDMA报文等等,a为遍历1至K的整数,K为大于1的整数,(K-1)*N+1小于或等于M,即最后一个包含地址信息的RDMA报文也属于M个RDMA报文,如此可以确保携带地址信息的RDMA报文是属于M个RDMA报文,避免将其他RDMA报文错误写入M个RDMA报文的内存空间。Specifically, the header of the first RDMA message in each of the K RDMA message groups can contain address information. That is, the header of the (a-1)*N+1th RDMA message in the M RDMA messages can contain address information, such as the 1st RDMA message, the N+1th RDMA message, the 2N+1th RDMA message, etc., where a is an integer from 1 to K, K is an integer greater than 1, and (K-1)*N+1 is less than or equal to M. This means that the last RDMA message containing address information also belongs to the M RDMA messages. This ensures that the RDMA message carrying address information belongs to the M RDMA messages and avoids writing other RDMA messages into the memory space of the M RDMA messages by mistake.
可以理解,上述的每个RDMA报文组中的第一个RDMA报文的头部包含地址信息仅为一种示例,如也可以是每个RDMA报文组中的第1+x个RDMA报文,如M个RDMA报文中第(a-1)*N+1+x个RDMA报文的头部可以包含地址信息,x为正整数,且(K-1)*N+1+x小于或等于M,具体实现与上述类似,也可以参考理解。It is understood that the header of the first RDMA message in each RDMA message group mentioned above containing address information is only one example. It could also be the 1+xth RDMA message in each RDMA message group. For example, the header of the (a-1)*N+1+xth RDMA message in M RDMA messages can contain address information, where x is a positive integer and (K-1)*N+1+x is less than or equal to M. The specific implementation is similar to the above, and can be understood by referring to it.
方便理解,以第一RDMA报文为例:For ease of understanding, let's take the first RDMA message as an example:
每个RDMA报文都有自身的包序号(如PSN),用以唯一标识该RDMA报文,如需要传输1000个RDMA报文,其包序号可以为从1到1000。设置:第一RDMA报文的包序号为X,M个RDMA报文中的首个RDMA报文的包序号为Y。若(X-Y)模N为0,且(X-Y)*MTU小于M个RDMA报文的尺寸,或者说X-Y小于M,则表示第一RDMA报文属于M个RDMA报文,且为第(a-1)*N+1个RDMA报文,那么第一RDMA报文的头部可以包含上述的地址信息。应理解,X-Y=0,第一RDMA报文即为首个RDMA报文,X-Y≠0,第一RDMA报文为非首个RDMA报文,如中间RDMA报文。Each RDMA message has its own sequence number (e.g., PSN) to uniquely identify it. If 1000 RDMA messages need to be transmitted, their sequence numbers can range from 1 to 1000. Let's set the sequence number of the first RDMA message as X, and the sequence number of the first RDMA message among M RDMA messages as Y. If (X-Y) modulo N is 0, and (X-Y)*MTU is less than the size of the M RDMA messages, or in other words, X-Y is less than M, then the first RDMA message belongs to the M RDMA messages and is the (a-1)*N+1th RDMA message. In this case, the header of the first RDMA message can contain the address information mentioned above. It should be understood that if X-Y = 0, the first RDMA message is the first RDMA message; if X-Y ≠ 0, the first RDMA message is not the first RDMA message, such as an intermediate RDMA message.
MTU为第一RDMA报文的最大传输单元,可由第一装置与第二装置协商得到。MTU is the maximum transmission unit of the first RDMA message, which can be negotiated between the first device and the second device.
方式1:Method 1:
在第一RDMA报文的头部携带地址信息的情况下,第一RDMA报文的头部可以为RETH,上述的地址信息携带在RETH中,具体可以为首个RDMA报文的地址。首个RDMA报文的地址可以是首个RDMA报文写入第二装置的内存的地址,如虚拟地址(virtual address,VA),用以第一RDMA报文写入第二装置的内存的地址可以依据首个RDMA报文的地址确定,具体实现可以参考下述S803的相关介绍,在此不再赘述。When the header of the first RDMA message carries address information, the header of the first RDMA message can be a RETH, and the aforementioned address information is carried in the RETH, specifically the address of the first RDMA message. The address of the first RDMA message can be the address where the first RDMA message is written to the memory of the second device, such as a virtual address (VA). The address used to write the first RDMA message to the memory of the second device can be determined based on the address of the first RDMA message. For specific implementation details, please refer to the relevant introduction of S803 below, which will not be repeated here.
可选地,在第一RDMA报文包含RETH的情况下,第一RDMA报文的BTH还可以包含指示信息,该指示信息可以指示第一RDMA报文包含RETH,以避免第二装置解包出现错误。例如,第一RDMA报文的BTH中包含15比特(bit)的预留位,可以使用其中的1比特,该比特的取值为1即表示为指示信息,取值为0表示不包含指示信息,或者为空置位,或者还可以有其他方式实现,具体不做限制,下面通过示例1介绍。Optionally, if the first RDMA message contains RETH, the BTH of the first RDMA message may also contain indication information. This indication information can indicate that the first RDMA message contains RETH to avoid errors in unpacking by the second device. For example, the BTH of the first RDMA message contains 15 reserved bits, of which 1 bit can be used. A value of 1 indicates indication information, a value of 0 indicates no indication information is contained, or it is a blank bit. Other implementation methods are also possible, and there are no specific limitations. Example 1 illustrates this below.
示例1:Example 1:
第一装置(如应用层)可以根据RDMA服务生成对应的RDMA消息,如针对RDMA写操作生成RDMA写消息,针对RDMA发送操作生成RDMA发送消息,并获取RDMA消息的消息大小(message size),RDMA报文的MTU(packet MTU)。第一装置可以对RDMA消息进行处理,得到RDMA报文(如上述的M个RDMA)。对于首个RDMA报文,第一装置可记录首个RDMA报文的包序号,如PSN_first,以及记录首个RDMA报文的RETH携带的地址,如首个RDMA报文的虚拟地址(VA_First)。对于任一个中间RDMA报文,即非首个和最后一个RDMA报文,第一装置可以获取中间RDMA报文的包序号,如PSN_middle,并确定PSN_middle-PSN_first,如记为PSN偏移。第一装置可以确定PSN偏移模N是否为0,或者说PSN偏移对N进行取模运算的值是否为0,以及PSN偏移*MTU是否小于RDMA消息的消息大小。若PSN偏移模N为0,且PSN偏移*MTU小于RDMA消息的消息大小,则说明该中间RDMA报文为第(a-1)*N+1个RDMA报文,第一装置采用本申请新定义的处理方式,为该中间RDMA报文添加RETH,将该RETH携带的地址设置为VA_First,以及还在该中间RDMA报文的BTH中添加指示信息,指示该中间RDMA报文携带RETH。例如,如图9所示,在N=3的情况下,PSN=4的中间RDMA报文添加RETH,携带VA_First。若PSN偏移模N不为0,或者PSN偏移*MTU大于RDMA消息的消息大小,则第一装置采用现有的方式进行处理,具体不做赘述。The first device (e.g., the application layer) can generate corresponding RDMA messages based on the RDMA service, such as generating an RDMA write message for an RDMA write operation and an RDMA send message for an RDMA send operation, and obtain the message size and packet MTU of the RDMA message. The first device can process the RDMA messages to obtain RDMA packets (such as the M RDMA packets mentioned above). For the first RDMA packet, the first device can record the sequence number of the first RDMA packet, such as PSN_first, and the address carried by the RETH of the first RDMA packet, such as the virtual address (VA_First) of the first RDMA packet. For any intermediate RDMA packet, i.e., neither the first nor the last RDMA packet, the first device can obtain the sequence number of the intermediate RDMA packet, such as PSN_middle, and determine PSN_middle - PSN_first, denoted as the PSN offset. The first device can determine whether the PSN offset modulo N is 0, or whether the value of the PSN offset modulo N is 0, and whether the PSN offset * MTU is less than the message size of the RDMA message. If the PSN offset modulo N is 0 and the PSN offset * MTU is less than the message size of the RDMA message, it indicates that the intermediate RDMA message is the (a-1)*N+1th RDMA message. The first device uses the newly defined processing method of this application to add RETH to the intermediate RDMA message, set the address carried by the RETH to VA_First, and add indication information to the BTH of the intermediate RDMA message to indicate that the intermediate RDMA message carries RETH. For example, as shown in Figure 9, when N=3, the intermediate RDMA message with PSN=4 adds RETH and carries VA_First. If the PSN offset modulo N is not 0, or the PSN offset * MTU is greater than the message size of the RDMA message, the first device uses the existing method for processing, which will not be elaborated further.
应理解,在上述示例中,第一装置对RDMA消息/报文的处理可以由第一装置的QP实现,如RDMA服务所关联的QP,或也可以由第一装置的其他软件/功能/实体实现,或在一些场景下,如分布式场景,也可以替换为除第一装置以外的装置实现,本申请实施例不做具体限制,下文所涉及的相关内容亦是同理,不再赘述。It should be understood that in the above examples, the processing of RDMA messages/packets by the first device can be implemented by the QP of the first device, such as the QP associated with the RDMA service, or it can be implemented by other software/functions/entities of the first device. In some scenarios, such as distributed scenarios, it can also be replaced by devices other than the first device. The embodiments of this application do not impose specific limitations, and the relevant content involved below is also the same and will not be repeated.
方式2:Method 2:
在第一RDMA报文的头部携带地址信息的情况下,第一RDMA报文的头部为BTH,上述的地址信息可以携带BTH中,无需额外携带扩展头,进一步降低开销。例如,地址信息具体可以为第一RDMA报文所在的RDMA报文组的分组标识,具体可以是分组号、分组序号或分组索引,如分组标识表示向下取整,用以第一RDMA报文写入第二装置的内存的地址可以依据首个RDMA报文的地址以及该分组标识确定,具体实现也可以参考下述S803的相关介绍,不再赘述。分组标识可通过BTH预留的15个比特中的部分比特承载,例如,4个比特,0000表示N0=0,即第0个RDMA报文组,0001表示N0=1,即第1个RDMA报文组,0010表示N0=2,即第2个RDMA报文组,以此类推,1111表示N0=15,即第15个RDMA报文组,下面通过示例2介绍。When address information is carried in the header of the first RDMA message, the header of the first RDMA message is BTH. The aforementioned address information can be carried in the BTH, eliminating the need for an additional extended header and further reducing overhead. For example, the address information can specifically be the packet identifier of the RDMA message group to which the first RDMA message belongs, specifically the packet number, packet sequence number, or packet index, such as the packet identifier. The address used to write the first RDMA message to the memory of the second device, indicating rounding down, can be determined based on the address of the first RDMA message and the group identifier. For specific implementation details, please refer to the relevant description in S803 below, which will not be repeated here. The group identifier can be carried by a portion of the 15 bits reserved in BTH. For example, 4 bits: 0000 represents N0=0, i.e., the 0th RDMA message group; 0001 represents N0=1, i.e., the 1st RDMA message group; 0010 represents N0=2, i.e., the 2nd RDMA message group; and so on, with 1111 representing N0=15, i.e., the 15th RDMA message group. This will be illustrated in Example 2 below.
示例2:Example 2:
第一装置可以根据RDMA服务生成对应的RDMA消息,并获取RDMA消息的消息大小,RDMA报文的MTU。第一装置可处理RDMA消息,得到RDMA报文。对于首个RDMA报文,第一装置可记录首个RDMA报文的包序号,如PSN_first。对于任一个中间RDMA报文,第一装置可以获取中间RDMA报文的包序号,如PSN_middle,并确定PSN_middle-PSN_first,如记为PSN偏移。第一装置可以确定PSN偏移模N是否为0。若PSN偏移模N为0,则第一装置采用本申请新定义的处理方式,在中间RDMA报文的BTH中添加分组标识,如例如,如图10所示,在N=3的情况下,PSN=4的中间RDMA报文的BTH中添加分组标识若PSN偏移模N不为0,则第一装置采用现有的方式进行处理,具体不做赘述。The first device can generate a corresponding RDMA message according to the RDMA service and obtain the message size and MTU of the RDMA packet. The first device can process the RDMA message to obtain the RDMA packet. For the first RDMA packet, the first device can record the packet sequence number of the first RDMA packet, such as PSN_first. For any intermediate RDMA packet, the first device can obtain the packet sequence number of the intermediate RDMA packet, such as PSN_middle, and determine PSN_middle - PSN_first, denoted as the PSN offset. The first device can determine whether the PSN offset modulo N is 0. If the PSN offset modulo N is 0, the first device adopts the newly defined processing method of this application to add a group identifier to the BTH of the intermediate RDMA packet, such as... For example, as shown in Figure 10, when N=3, a packet identifier is added to the BTH of the intermediate RDMA message with PSN=4. If the PSN offset modulus N is not 0, the first device will process it in the existing way, which will not be elaborated on in detail.
S802,第一装置向第二装置发送第一RDMA报文。第二装置接收第一RDMA报文。S802, the first device sends a first RDMA message to the second device. The second device receives the first RDMA message.
第一装置与第二装置可以建立传输路径,如第一装置为终端设备,第二装置为接入网设备,或第一装置为接入网设备,第二装置为终端设备,终端设备与接入网设备之间可以建立空口连接,又如,第一装置是终端设备,第二装置为用于用户面传输的网元,如UPF网元或者其他任何可能的命名,或第一装置是用户面网元,第二装置为终端设备,终端设备与用于用户面传输的网元之间可以建立用户面的隧道。由此,第一装置可通过该传输路径向第二装置发送第一RDMA报文,相应的,第二装置可通过该传输路径接收第一RDMA报文。The first device and the second device can establish a transmission path. For example, the first device may be a terminal device and the second device may be an access network device, or the first device may be an access network device and the second device may be a terminal device. An air interface connection can be established between the terminal device and the access network device. Alternatively, the first device may be a terminal device and the second device may be a network element used for user plane transmission, such as a UPF network element or any other possible designation. Or, the first device may be a user plane network element and the second device may be a terminal device. A user plane tunnel can be established between the terminal device and the network element used for user plane transmission. Therefore, the first device can send a first RDMA message to the second device through this transmission path, and correspondingly, the second device can receive the first RDMA message through this transmission path.
S803,第二装置写入第一RDMA报文。S803, the second device writes the first RDMA message.
在第一RDMA报文的头部携带地址信息的情况下,第二装置可以根据该地址信息,确定第一RDMA报文的地址。例如,第一RDMA报文为首个RDMA报文,第二装置可以从地址信息中获取该首个RDMA报文的地址,首个RDMA报文的地址即为第一RDMA报文的地址。第一RDMA报文为非首个RDMA报文,第二装置可以根据地址信息,确定第一RDMA报文的地址相较于M个RDMA报文中的首个RDMA报文的地址的偏移,并根据首个RDMA报文的地址以及偏移,确定第一RDMA报文的地址。其中,第一RDMA报文的地址可以为第一RDMA报文写入到第二装置的内存的地址,如也可以是虚拟地址,或者其他任何可能形式的地址,下面分别就上述两种方式继续进行介绍。When the header of the first RDMA message carries address information, the second device can determine the address of the first RDMA message based on this address information. For example, if the first RDMA message is the first RDMA message, the second device can obtain the address of the first RDMA message from the address information; the address of the first RDMA message is the address of the first RDMA message. If the first RDMA message is not the first RDMA message, the second device can determine the offset of the address of the first RDMA message relative to the address of the first RDMA message among the M RDMA messages based on the address information, and determine the address of the first RDMA message based on the address of the first RDMA message and the offset. The address of the first RDMA message can be the address where the first RDMA message is written to the memory of the second device, such as a virtual address, or any other possible form of address. The following sections will further describe these two methods.
方式1:Method 1:
第二装置可根据第一RDMA报文的包序号、首个RDMA报文的包序号以及MTU,确定第一RDMA报文的地址相较于首个RDMA报文的地址的偏移,如该偏移为(X-Y)*MTU。在此基础上,第二装置可以根据该偏移,以及首个RDMA报文的地址,确定第一RDMA报文的地址,如该偏移+首个RDMA报文即为第一RDMA报文的地址,也就是说,在偏移确定的情况下,第二装置仅需要从RETH获取的首个RDMA报文的地址就可以确定第一RDMA报文的地址,简单且高效。The second device can determine the offset of the address of the first RDMA message relative to the address of the first RDMA message based on the sequence number of the first RDMA message, the sequence number of the first RDMA message, and the MTU. For example, this offset could be (X-Y)*MTU. Based on this, the second device can determine the address of the first RDMA message using this offset and the address of the first RDMA message. For instance, the offset plus the address of the first RDMA message equals the address of the first RDMA message. In other words, given a determined offset, the second device only needs the address of the first RDMA message obtained from the RETH to determine the address of the first RDMA message, which is simple and efficient.
方式2:Method 2:
第二装置可根据第一RDMA报文的BTH中携带的地址信息,以及分组长度N,确定第一RDMA报文的地址相较于首个RDMA报文的地址的偏移,如该偏移为其中,分组长度N可以预配置给第二装置,也可以由第二装置自行确定,如根据首个RDMA报文的包序号与第一RDMA报文的包序号的差值确定,即X-Y=N。MTU可以事先协商好。由此,第二装置仅需要从BTH获取的包序号就可以确定该偏移,简单且高效。在此基础上,第二装置可以根据该偏移,以及首个RDMA报文的地址,确定第一RDMA报文的地址。The second device can determine the offset of the address of the first RDMA message relative to the address of the first RDMA message based on the address information carried in the BTH of the first RDMA message and the packet length N. For example, if the offset is... The packet length N can be pre-configured for the second device or determined by the second device itself, such as by the difference between the sequence number of the first RDMA message and the sequence number of the first RDMA message, i.e., XY = N. The MTU can be negotiated in advance. Therefore, the second device only needs the sequence number obtained from the BTH to determine the offset, which is simple and efficient. Based on this, the second device can determine the address of the first RDMA message according to the offset and the address of the first RDMA message.
在获取到第一RDMA报文的地址的情况下,由于该地址为虚拟地址,第二装置可以将该地址转换为物理地址,然后将第一RDMA报文写入到第二装置的内存中该物理地址指向的位置。在第一RDMA报文的地址确定的情况下,第一RDMA报文所在的RDMA报文组中后续的RDMA报文都可以依据该第一RDMA报文的地址依次顺序写入,下面继续对上述2个示例分别进行介绍。Having obtained the address of the first RDMA packet, since this address is a virtual address, the second device can translate it into a physical address and then write the first RDMA packet into the memory of the second device at the location pointed to by that physical address. With the address of the first RDMA packet determined, subsequent RDMA packets in the RDMA packet group containing the first RDMA packet can be written sequentially according to the address of the first RDMA packet. The two examples will be further described below.
可以理解,对于非首个RDMA报文的头部携带地址信息的情况,该带地址信息不仅可以是首个RDMA报文的地址或分组标识,也可以是该非首个RDMA报文的地址,或者非首个RDMA报文的地址相较于首个RDMA报文的地址的偏移。It is understandable that when address information is carried in the header of a non-first RDMA message, this address information can be not only the address or packet identifier of the first RDMA message, but also the address of the non-first RDMA message, or the offset of the address of the non-first RDMA message relative to the address of the first RDMA message.
示例1:Example 1:
第二装置接收到首个RDMA报文,第一装置可记录首个RDMA报文的包序号,如PSN_first,以及记录首个RDMA报文的地址,如首个RDMA报文的RETH中携带的虚拟地址(VA_First)。第二装置可以将首个RDMA报文的地址转换为物理地址,将首个RDMA报文写入到内存中该物理地址指向的位置。第二装置接收到任一个中间RDMA报文,第二装置可以获取中间RDMA报文的包序号,如PSN_middle。第二装置可以确定中间RDMA报文是否携带RETH。若中间RDMA报文没有携带RETH,则第二装置沿用现有的技术进行处理,不做赘述。若中间RDMA报文携带RETH,则第二装置采用本申请新定义的方式处理。例如,第二装置可以确定中间RDMA报文的RETH与首个RDMA报文的RETH是否相同,即是否包含相同的地址,如包含的地址不同,不做处理;或者包含的地址相同,第二装置可以确定偏移,即(PSN_middle-PSN_first)*MTU,并确定中间RDMA报文的地址,如偏移+首个RDMA报文的地址。第二装置可以将中间RDMA报文的地址转换为物理地址,并将中间RDMA报文写入到内存中该物理地址指向的位置。对于该中间RDMA报文之后的下一个RDMA报文,第二装置在该中间RDMA报文的物理地址之后顺序写入,直至再接收到携带RETH的中间RDMA报文,或者接收到最后一个RDMA报文。When the second device receives the first RDMA packet, the first device can record the packet sequence number of the first RDMA packet, such as PSN_first, and the address of the first RDMA packet, such as the virtual address (VA_First) carried in the RETH of the first RDMA packet. The second device can convert the address of the first RDMA packet to a physical address and write the first RDMA packet into the memory location pointed to by that physical address. When the second device receives any intermediate RDMA packet, it can obtain the packet sequence number of the intermediate RDMA packet, such as PSN_middle. The second device can determine whether the intermediate RDMA packet carries a RETH. If the intermediate RDMA packet does not carry a RETH, the second device processes it using existing technology, which will not be elaborated further. If the intermediate RDMA packet carries a RETH, the second device processes it using the method newly defined in this application. For example, the second device can determine whether the RETH of the intermediate RDMA packet is the same as that of the first RDMA packet, i.e., whether they contain the same address. If the addresses are different, no processing is done; if the addresses are the same, the second device can determine the offset, i.e., (PSN_middle - PSN_first) * MTU, and determine the address of the intermediate RDMA packet, i.e., the offset + the address of the first RDMA packet. The second device can convert the address of the intermediate RDMA packet to a physical address and write the intermediate RDMA packet into the memory location pointed to by that physical address. For the next RDMA packet after the intermediate RDMA packet, the second device writes sequentially after the physical address of the intermediate RDMA packet until it receives another intermediate RDMA packet carrying RETH, or receives the last RDMA packet.
示例2:Example 2:
第二装置接收到首个RDMA报文,如首个RDMA写报文/发报文。对于首个RDMA写报文,第一装置可记录首个RDMA写报文的包序号,如PSN_first,以及记录首个RDMA写报文的地址,如首个RDMA写报文的RETH中携带的虚拟地址(VA_First)。对于首个RDMA发报文,第一装置可记录首个RDMA写报文的包序号,并获取RDMA发操作关联的WQE中的虚拟地址,记为首个RDMA写报文的地址。第二装置可以将首个RDMA报文的地址转换为物理地址,将首个RDMA报文写入到内存中该物理地址指向的位置。第二装置接收到任一个中间RDMA报文,第二装置可以确定中间RDMA报文的BTH是否携带分组标识。若中间RDMA报文的BTH没有携带分组标识,则第二装置沿用现有的技术进行处理,不做赘述。若中间RDMA报文的BTH有携带分组标识,则第二装置采用本申请新定义的方式处理。例如,第二装置可以确定偏移,即并确定中间RDMA报文的地址,如偏移+首个RDMA报文的地址。第二装置可以将中间RDMA报文的地址转换为物理地址,并将中间RDMA报文写入到内存中该物理地址指向的位置。对于该中间RDMA报文之后的下一个RDMA报文,第二装置在该中间RDMA报文的物理地址之后顺序写入,直至再接收到携带RETH的中间RDMA报文,或者接收到最后一个RDMA报文。The second device receives the first RDMA message, such as the first RDMA write/transmit message. For the first RDMA write message, the first device can record the packet sequence number of the first RDMA write message, such as PSN_first, and the address of the first RDMA write message, such as the virtual address (VA_First) carried in the RETH of the first RDMA write message. For the first RDMA transmit message, the first device can record the packet sequence number of the first RDMA write message and obtain the virtual address in the WQE associated with the RDMA transmit operation, and record it as the address of the first RDMA write message. The second device can convert the address of the first RDMA message into a physical address and write the first RDMA message into the memory location pointed to by that physical address. When the second device receives any intermediate RDMA message, the second device can determine whether the BTH of the intermediate RDMA message carries a packet identifier. If the BTH of the intermediate RDMA message does not carry a packet identifier, the second device will process it using existing technology, which will not be elaborated further. If the BTH of the intermediate RDMA message carries a packet identifier, the second device will process it using the method newly defined in this application. For example, the second device can determine the offset, i.e. The second device determines the address of the intermediate RDMA message, such as offset plus the address of the first RDMA message. The second device can translate the address of the intermediate RDMA message into a physical address and write the intermediate RDMA message into the memory location pointed to by that physical address. For the next RDMA message following this intermediate RDMA message, the second device sequentially writes after the physical address of the intermediate RDMA message until it receives another intermediate RDMA message carrying RETH, or receives the last RDMA message.
综上,对于M个RDMA报文,以每组(或者说RDMA报文组)/每段包含RDMA报文为单位,在每个RDMA报文组中设置一个RDMA报文的头部包含地址信息,该地址信息用于确定包含地址信息的RDMA报文写入第二装置的内存的地址,用以每个分组中其他RDMA报文写入第二装置的内存的地址就可以依据该地址信息确定,也即,以分组为粒度进行RDMA操作从而写入内存,如不同分组的RDMA报文可以写入相同或不同的内存区域,这些区域可以离散也可以连续,能够提高RDMA操作的灵活性。In summary, for M RDMA messages, each group (or RDMA message group)/segment containing RDMA messages is used as a unit. In each RDMA message group, an RDMA message header containing address information is set. This address information is used to determine the address of the RDMA message containing the address information to be written to the memory of the second device. The address of other RDMA messages in each group to be written to the memory of the second device can be determined based on this address information. That is, RDMA operation is performed at the group level to write to memory. For example, RDMA messages from different groups can be written to the same or different memory regions. These regions can be discrete or continuous, which can improve the flexibility of RDMA operation.
可选地,结合上述图8所示的流程,该方法还可以包括:Optionally, in conjunction with the process shown in Figure 8 above, the method may further include:
S804a,第二装置发送反馈信息。相应的,第一装置接收来自第二装置的反馈信息。S804a, the second device sends feedback information. Correspondingly, the first device receives the feedback information from the second device.
反馈信息可以携带在NACK消息中。反馈信息指示第二RDMA报文确认丢包,第二RDMA报文属于M个RDMA报文,如反馈信息可以包含第二RDMA报文的包序号,可选地,还可以包含M个RDMA报文对应的QP的信息,如QP的标识。Feedback information can be carried in the NACK message. The feedback information indicates that the second RDMA message has been lost. The second RDMA message belongs to M RDMA messages. The feedback information can include the sequence number of the second RDMA message. Optionally, it can also include information about the QP corresponding to the M RDMA messages, such as the QP identifier.
S804b,第一装置根据反馈信息,向第二装置重传M个RDMA报文中的Q个RDMA报文。相应的,第二装置接收来自第一装置重传的M个RDMA报文中的Q个RDMA报文。S804b, based on the feedback information, the first device retransmits Q RDMA messages out of the M RDMA messages to the second device. Correspondingly, the second device receives Q RDMA messages out of the M RDMA messages retransmitted by the first device.
Q为正整数,Q个RDMA报文可以包括:从第二RDMA报文到第二RDMA报文所在的RDMA报文组中的最后一个RDMA报文,即只用重传第二RDMA报文所在分组中的部分RDMA报文即可,其他分组的RDMA报文不用重传,重传开销比较小。例如,第一装置可以根据第二RDMA报文的包序号,可选地,还可以根据QP的标识对应到M个RDMA报文,确定第二RDMA报文在M个RDMA报文中所在的分组,从而确定该分组中第二RDMA报文到该分组结束的所有报文都需要被重传,例如,N=10,第二RDMA报文是其中的第4个RDMA报文,第一装置重传第4个RDMA报文到第10个RDMA报文。Q is a positive integer. The Q RDMA messages can include: from the second RDMA message to the last RDMA message in the RDMA message group containing the second RDMA message. That is, only a portion of the RDMA messages in the group containing the second RDMA message needs to be retransmitted, and the RDMA messages in other groups do not need to be retransmitted, resulting in low retransmission overhead. For example, the first device can determine the group in which the second RDMA message is located within the M RDMA messages based on the packet sequence number of the second RDMA message, or optionally based on the identifier of QP, and thus determine that all messages in that group from the second RDMA message to the end of the group need to be retransmitted. For example, if N=10, and the second RDMA message is the 4th RDMA message, the first device will retransmit the 4th RDMA message to the 10th RDMA message.
可选地,结合上述图8所示的流程,该方法还可以包括:Optionally, in conjunction with the process shown in Figure 8 above, the method may further include:
S800a,第三装置获取QP的RDMA报文丢包率。S800a, the third device obtains the RDMA packet loss rate of QP.
一种可能的设计方案中,第三装置可以为核心网的网元,如用于会话管理的网元,具体可以是SMF网元,或者也可以其他任何可能的命名,具体不做限制。用于会话管理的网元可从与QP关联的如下至少一个网元获取RDMA报文丢包率:用于策略管理的网元、用于用户面传输的网元、或接入网设备,下面分别介绍。In one possible design, the third device can be a core network element, such as a network element used for session management, specifically an SMF network element, or any other possible name, without limitation. The network element used for session management can obtain the RDMA packet loss rate from at least one of the following network elements associated with QP: a network element used for policy management, a network element used for user plane transmission, or an access network device, which will be described below.
1)在建立或修改QP关联的会话的情况下,用于会话管理的网元从用于策略管理的网元获取会话的策略和计费控制(policy and charging control,PCC)规则。1) When establishing or modifying a QP-associated session, the network element used for session management obtains the session's policy and charging control (PCC) rules from the network element used for policy management.
QP关联的会话可以是针对QP所建立或修改的会话,如协议数据单元(protocol data unit,PDU)会话,该会话可以用于承载/传递该QP的业务,如上述的RDMA服务。在建立或修改会话时,终端设备(如第一装置/第二装置)可以向网络侧发送QP的标识,如携带在PDU会话建立或修改请求消息中,用以触发网络侧建立或修改QP关联的会话,具体可以参考已有的会话建立或修改流程,在此不再赘述。The session associated with a QP can be a session established or modified for that QP, such as a Protocol Data Unit (PDU) session. This session can be used to carry/transmit the services associated with that QP, such as the RDMA service mentioned above. When establishing or modifying a session, the terminal device (such as the first device/second device) can send the QP's identifier to the network side, such as by including it in a PDU session establishment or modification request message, to trigger the network side to establish or modify the session associated with the QP. For details, please refer to the existing session establishment or modification procedures, which will not be elaborated here.
用于策略管理的网元可以是PCF网元,或者也可以其他任何可能的命名,具体不做限制。The network element used for policy management can be a PCF network element, or any other possible name, without any restrictions.
上述的PCC规则可以是初始的PCC规则,或者也可以是更新的PCC规则。例如,在会话建立流程中,用于会话管理的网元可以从用于策略管理的网元获取初始的PCC规则,并订阅PCC规则更新事件。在会话修改流程中,用于策略管理的网元可以根据应用功能的需求更新PCC规则,并响应更新事件,将更新的PCC规则发送给用于会话管理的网元,此时,用于会话管理的网元可以获取到更新的PCC规则。The aforementioned PCC rules can be initial or updated. For example, in the session establishment process, the network element used for session management can obtain the initial PCC rules from the network element used for policy management and subscribe to PCC rule update events. In the session modification process, the network element used for policy management can update the PCC rules according to the application function requirements and respond to the update event by sending the updated PCC rules to the network element used for session management. At this time, the network element used for session management can obtain the updated PCC rules.
由此,用于会话管理的网元可以获取PCC规则中的误包率(packet error rate,PER),该PER可以被作为RDMA报文丢包率,即可以重用已有的会话建立或修改流程获取到RDMA报文丢包率,无需引入新的流程,实现简单,当然,也可通过新定义的流程,从用于策略管理的网元获取RDMA报文丢包率,具体实现不做限制。Therefore, the network element used for session management can obtain the packet error rate (PER) in the PCC rules. This PER can be used as the RDMA packet loss rate. That is, the existing session establishment or modification process can be reused to obtain the RDMA packet loss rate without introducing a new process, which is simple to implement. Of course, the RDMA packet loss rate can also be obtained from the network element used for policy management through a newly defined process. The specific implementation is not limited.
2)用于会话管理的网元从接入网设备获取QP关联的数据无线承载(data radio bearer,DRB)或服务质量(quality of service,Qos流)的丢包率。2) The network element used for session management obtains the packet loss rate of the data radio bearer (DRB) or quality of service (QoS flow) associated with the QP from the access network equipment.
QP关联的DRB或QoS流的丢包率可以被作为RDMA报文丢包率,例如,QP关联的DRB或QoS流为一个,该DRB或QoS流的丢包率即作为RDMA报文丢包率,QP关联的DRB或QoS流为多个,这多个DRB或QoS流的丢包率的均值,或最大/最小值可被作为RDMA报文丢包率。The packet loss rate of the DRB or QoS flow associated with QP can be used as the packet loss rate of RDMA packets. For example, if there is only one DRB or QoS flow associated with QP, the packet loss rate of that DRB or QoS flow can be used as the packet loss rate of RDMA packets. If there are multiple DRB or QoS flows associated with QP, the average, maximum/minimum value of the packet loss rates of these multiple DRB or QoS flows can be used as the packet loss rate of RDMA packets.
用于会话管理的网元可以通过已有的订阅方式从接入网设备获取RDMA报文丢包率,无需引入额外的流程,实现简单。具体来说,用于会话管理的网元可以在建立或修改QP关联的会话的过程中,接入网设备可以根据用于会话管理的网元的QoS配置,将该QP关联的会话映射到QoS流以及DRB,这样接入网设备就可以知道该QP关联到哪些QoS流以及DRB。之后,用于会话管理的网元可以(如在终端设备的寻呼阶段,或也可以是其他任何可能的时机)向接入网设备发送订阅请求,如订阅请求中包含该QP的标识以及一个或多个阈值的信息,以订阅QP关联的QoS流或DRB的丢包率变化事件。接入网设备可以根据订阅请求,确定QP关联的QoS流或DRB的丢包率是否变化超过/低于某个阈值,若是,则接入网设备可以响应订阅请求,向用于会话管理的网元发送订阅响应,该订阅响应QP关联的QoS流或DRB的丢包率,否则,接入网设备可以不响应订阅请求。Network elements used for session management can obtain RDMA packet loss rates from access network devices through existing subscription methods, without introducing additional procedures, making implementation simple. Specifically, during the establishment or modification of QP-associated sessions, the access network device can map the QP-associated session to QoS flows and DRBs based on the QoS configuration of the network element used for session management. This allows the access network device to know which QoS flows and DRBs the QP is associated with. Subsequently, the network element used for session management can (e.g., during the paging phase of the terminal device, or at any other possible time) send a subscription request to the access network device. This subscription request may include the QP's identifier and one or more threshold information to subscribe to packet loss rate change events of the QoS flows or DRBs associated with the QP. The access network device can determine whether the packet loss rate of the QoS flows or DRBs associated with the QP has changed above/below a certain threshold based on the subscription request. If so, the access network device can respond to the subscription request by sending a subscription response to the network element used for session management, which indicates the packet loss rate of the QoS flows or DRBs associated with the QP. Otherwise, the access network device may not respond to the subscription request.
可以理解,上述方式仅为一些示例,例如用于会话管理的网元也可以周期性地从接入网设备获取RDMA报文丢包率。It is understandable that the above methods are just some examples. For instance, network elements used for session management can also periodically obtain RDMA packet loss rates from access network devices.
3)用于会话管理的网元从用于用户面传输的网元获取QP关联的PER,如QP关联的会话的下行数据中的PER,该PER被作为RDMA报文丢包率,此时可以复用已有的N4会话的流程从用于用户面传输的网元获取RDMA报文丢包率,无需引入额外的流程,实现简单。3) The network element used for session management obtains the PER associated with QP from the network element used for user plane transmission, such as the PER in the downlink data of the QP-associated session. This PER is used as the RDMA packet loss rate. At this time, the existing N4 session process can be reused to obtain the RDMA packet loss rate from the network element used for user plane transmission without introducing additional processes, which is simple to implement.
用于用户面传输的网元可以是UPF网元,或者也可以其他任何可能的命名,具体不做限制。用于会话管理的网元可以在建立或修改QP关联的会话的过程中,向用于用户面传输的网元配置该会话,如包含该会话的QoS流标识符(Qos flow identifier,QFI)。之后,用于会话管理的网元可以(如周期性,或在任何可能的时机)向用于用户面传输的网元发送N4消息,如会话请求消息携带会话的标识,用以指示用于用户面传输的网元提供QP关联的会话的QFI信息。相应的,用于用户面传输的网元可以响应该N4消息,向用于用户面传输的网元返回QFI信息,如携带该QFI信息的会话响应消息,该QFI信息可包含该会话的下行数据的PER。The network element used for user plane transmission can be a UPF network element, or any other possible name, without specific restrictions. The network element used for session management can configure the session for user plane transmission during the establishment or modification of the QP-associated session, such as including the QoS flow identifier (QFI) for the session. Subsequently, the network element used for session management can (e.g., periodically, or at any possible time) send an N4 message to the network element used for user plane transmission, such as a session request message carrying the session identifier, to instruct the network element used for user plane transmission to provide the QFI information for the QP-associated session. Correspondingly, the network element used for user plane transmission can respond to the N4 message by returning QFI information, such as a session response message carrying the QFI information, which may include the PER of the downlink data for the session.
另一种可能的设计方案中,第三装置为接入网设备。接入网设备获取QP关联的DRB或Qos流的丢包率。接入网设备可以自行在本地以周期性的方式,或在任何可能的时机,统计该QP关联的DRB或Qos流的丢包率,该DRB或Qos流的丢包率被作为RDMA报文丢包,也即自行从本地获取,无需信令交互,可避免交互所带来的通信开销。或者,在建立或修改QP关联的会话的情况下,接入网设备从用于策略管理的网元获取会话的QoS配置(具体可以由用于会话管理的网元传递给接入网设备),并获取QoS配置中的PER,PER被作为RDMA报文丢包率,即也可以重用已有的会话建立或修改流程获取到RDMA报文丢包率,无需引入新的流程,实现简单。In another possible design, the third device is an access network device. The access network device obtains the packet loss rate of the DRB or QoS flow associated with the QP. The access network device can periodically calculate the packet loss rate of the DRB or QoS flow associated with the QP locally, or at any possible time. This packet loss rate is used as the RDMA packet loss rate, meaning it obtains the data locally without signaling interaction, thus avoiding the communication overhead associated with interaction. Alternatively, when establishing or modifying a QP-associated session, the access network device obtains the session's QoS configuration from the network element used for policy management (specifically, this configuration can be passed to the access network device by the network element used for session management), and obtains the PER from the QoS configuration. The PER is used as the RDMA packet loss rate. This allows reuse of existing session establishment or modification procedures to obtain the RDMA packet loss rate, without introducing new procedures, simplifying implementation.
S800b,第三装置根据RDMA报文丢包率,向QP所在的第一装置发送配置信息。相应的,第一装置接收配置信息。In S800b, the third device sends configuration information to the first device where QP is located based on the RDMA message packet loss rate. Correspondingly, the first device receives the configuration information.
配置信息可以指示每个RDMA报文组中有一个RDMA报文的头部包含地址信息,以实现RDMA报文分组传输的方式可以根据实际情况动态配置,配置灵活。例如,配置信息可以包含QP的标识以及分组长度N,用以联合起来指示与QP关联的每N个RDMA报文中有一个RDMA报文的头部包含地址信息。Configuration information can instruct that one RDMA packet in each RDMA packet group includes address information in its header, enabling dynamic configuration of the RDMA packet packet transmission method based on actual conditions, providing flexibility. For example, the configuration information can include the QP identifier and the packet length N, which together indicate that one of every N RDMA packets associated with the QP includes address information in its header.
可以理解,配置信息指示分组长度N并为意味着第一装置在分组时每个RDMA报文组的分组长度都为N,如上所述可知,在M/N不能整除的情况下,可能有一个RDMA报文组的分组长度不为N。It is understandable that the configuration information indicating a packet length of N does not mean that the first device has a packet length of N for each RDMA message group when grouping. As mentioned above, if M/N is not divisible, there may be an RDMA message group whose packet length is not N.
可选地,配置信息还可以指示分组规则,如每个RDMA报文组中的第一个RDMA报文,如第(a-1)*N+1个RDMA报文的头部包含地址信息,例如配置信息可以包含分组规则信元,以指示该分组规则,如00表示第(a-1)*N+1个RDMA报文的头部包含地址信息,01表示第(a-1)*N+1+x个RDMA报文的头部包含地址信息。Optionally, the configuration information may also indicate grouping rules, such as the first RDMA message in each RDMA message group, such as the header of the (a-1)*N+1th RDMA message containing address information. For example, the configuration information may contain grouping rule information elements to indicate the grouping rule, such as 00 indicating that the header of the (a-1)*N+1th RDMA message contains address information, and 01 indicating that the header of the (a-1)*N+1+xth RDMA message contains address information.
第三装置可以预配置不同的RDMA报文丢包率区间与不同的分组长度N对应关系,如上述RDMA报文丢包率>2.6*10e-2,N=1,RDMA报文丢包率>3.5*10e-3即N=5;RDMA报文丢包率>4.5*10e-3,N=10;RDMA报文丢包率<4.5*10e-3,N=50。第三装置可以确定上述获取到的RDMA报文丢包率所在的RDMA报文丢包率区间,并确定该RDMA报文丢包率区间所对应的分组长度N。由此,第三装置可以根据该分组长度N,生成并向该QP所在的第一装置发送配置信息。第一装置便可以根据配置信息,执行上述S801-S803。The third device can pre-configure different RDMA packet loss rate intervals and their corresponding packet lengths N. For example, if the RDMA packet loss rate is >2.6*10e-2, N=1; if the RDMA packet loss rate is >3.5*10e-3, N=5; if the RDMA packet loss rate is >4.5*10e-3, N=10; and if the RDMA packet loss rate is <4.5*10e-3, N=50. The third device can determine the RDMA packet loss rate interval in which the obtained RDMA packet loss rate falls, and determine the packet length N corresponding to that RDMA packet loss rate interval. Therefore, the third device can generate and send configuration information to the first device where the QP is located based on the packet length N. The first device can then execute S801-S803 according to the configuration information.
可以理解,分组长度N仅为一种示例性的命名,如也可以称为子分组N(subGroupN)、子分组长度N,或者其他任何可能的命名,具体不做限制。此外,第一装置也可以预配置/协议预定义分组长度N,这种情况下,S800a-S800b可以不执行。It is understood that the packet length N is merely an exemplary name, and could also be called subGroup N, subpacket length N, or any other possible name, without any limitation. Furthermore, the first device may also pre-configure/predefine the packet length N according to the protocol; in this case, S800a-S800b may not need to be executed.
可选地,结合上述S800a-S800b,第三装置确定分组长度N不仅考虑RDMA报文丢包率,还可以考虑QP关联的RDMA报文的最大传输单元,即MTU。Optionally, in conjunction with the above S800a-S800b, the third device determines the packet length N by considering not only the RDMA message packet loss rate, but also the maximum transmission unit (MTU) of the RDMA message associated with QP.
第三装置可以获取MTU,如从第一装置和/或用于用户面传输的网元获取MTU。The third device can obtain the MTU, such as from the first device and/or the network element used for user plane transmission.
例如,第三装置为用于会话管理的网元:For example, the third device is a network element used for session management:
用于会话管理的网元可以接收来自第一装置(终端设备)的会话请求消息,如PDU会话建立或修改请求消息,用以请求建立或修改QP关联的会话,具体实现可以参考上述的相关介绍,在此不再赘述。会话请求消息可以包括MTU,用于会话管理的网元可以从会话请求消息中获取MTU。或者,用于会话管理的网元也可以接收来自用于用户面传输的网元会话请求消息返回的会话响应消息。用于用户面传输的网元可以是QP关联的网元,如承载该用于QP关联的会话的用户面管理的网元,具体也可以是上述的第二装置。该会话请求消息用于请求建立或修改QP关联的会话,会话响应消息包括MTU,即该用于用户面传输的网元可以复用会话响应消息主动上报MTU。如此,用于会话管理的网元可以从会话响应消息中获取MTU。The network element used for session management can receive session request messages, such as PDU session establishment or modification request messages, from the first device (terminal equipment) to request the establishment or modification of a QP-associated session. Specific implementation details can be found in the above description and will not be repeated here. The session request message may include the MTU, which the network element used for session management can obtain from the session request message. Alternatively, the network element used for session management can also receive a session response message returned by the session request message from the network element used for user plane transmission. The network element used for user plane transmission can be a QP-associated network element, such as the network element carrying the user plane management of the QP-associated session, or specifically, the second device mentioned above. The session request message is used to request the establishment or modification of the QP-associated session, and the session response message includes the MTU, meaning the network element used for user plane transmission can reuse the session response message to actively report the MTU. Thus, the network element used for session management can obtain the MTU from the session response message.
也就是说,用于会话管理的网元可以重用已有的会话建立或修改流程获取到MTU,无需引入新的流程,实现简单。或者,也可以通过新定义的流程实现,具体不做限制。In other words, network elements used for session management can reuse existing session establishment or modification procedures to obtain the MTU without introducing new procedures, making implementation simple. Alternatively, it can also be achieved through a newly defined procedure, with no specific restrictions.
又例如,第三装置为接入网设备:For example, the third device is an access network device:
接入网设备可以接收来自第一装置的无线资源控制(radio resource control,RRC)消息,该RRC消息可以用于请求建立/重建立RRC连接,如QP关联的RRC连接,或者说用于承载该QP的服务(如RDMA服务)的RRC连接。该RRC消息可以包括MTU,接入网设备从该RRC消息中获取MTU。也即,接入网设备可以重用已有的RRC建立或修改流程获取到MTU,无需引入新的流程,实现简单。或者,也可以通过新定义的流程实现,具体不做限制。The access network device can receive Radio Resource Control (RRC) messages from the first device. These RRC messages can be used to request the establishment/re-establishment of an RRC connection, such as an RRC connection associated with a QP, or an RRC connection used to carry services for that QP (such as RDMA services). The RRC message may include the MTU, which the access network device obtains from the message. That is, the access network device can reuse existing RRC establishment or modification procedures to obtain the MTU without introducing new procedures, simplifying implementation. Alternatively, it can be implemented through a newly defined procedure; no specific restrictions are imposed.
在此基础上,第三装置可以根据RDMA报文丢包率以及MTU,向第一装置发送配置信息。也即,RDMA分组大小还需要考虑MTU的因素,确保分组能够更加合理。例如,第三装置可以先确定MTU对应的RDMA报文的多种丢包率,不同MTU对应的丢包率也不同,如MTU越大,其对应的各种丢包率整体会更低,以保证系统容量。第三装置可以从多种丢包率中确定与RDMA报文丢包率匹配的丢包率,匹配的丢包率对应N的一种取值,即分组长度N,并根据匹配的丢包率,向第一装置发送配置信息,具体实现也可以参考上述S800b的相关介绍,在此不再赘述。Based on this, the third device can send configuration information to the first device according to the RDMA packet loss rate and MTU. That is, the RDMA packet size also needs to take the MTU into account to ensure more reasonable packet size. For example, the third device can first determine various packet loss rates for the RDMA packets corresponding to the MTU. Different MTUs correspond to different packet loss rates; for example, the larger the MTU, the lower the overall packet loss rate will be, thus ensuring system capacity. The third device can determine a packet loss rate that matches the RDMA packet loss rate from among the various packet loss rates. The matched packet loss rate corresponds to one value of N, i.e., the packet length N, and sends configuration information to the first device according to the matched packet loss rate. For specific implementation details, please refer to the relevant introduction of S800b above, which will not be repeated here.
可以理解,800a-S800b、S801-S803、S804a-S804b可以任意组合实施,或也可以不进行组合,如800a-S800b、S801-S803、S804a-S804b各自都可以以方法或实施例的粒度单独实施。It is understood that 800a-S800b, S801-S803, and S804a-S804b can be implemented in any combination, or they can be implemented without combination. For example, each of 800a-S800b, S801-S803, and S804a-S804b can be implemented independently at the granularity of the method or embodiment.
请参阅图11-图12,图11-图12为本申请的仿真场景示意图,在图11-图12中,横坐标为丢包率,纵坐标为系统容量,N=1即分组长度为1,即groupSize=1,N=5即分组长度为5,即groupSize=5,以此类推。随着RDMA报文丢包率增大,在RDMA报文丢包率>4.5*10e-3,且RDMA报文丢包率<3.5*10e-3的情况下,可以设置N=10,以保证系统容量整体维持在0.94左右,即维持在较高水平,且兼顾开销,在RDMA报文丢包率>3.5*10e-3,且RDMA报文丢包率<2.6*10e-2的情况下,可以设置N=5,以保证系统容量整体不低于0.93,即仍维持在较高水平,且仍兼顾开销,在RDMA报文丢包率>2.6*10e-2的情况下,可以设置N=1,以保证系统容量整体不低于0.8。Please refer to Figures 11-12, which are schematic diagrams of the simulation scenario of this application. In Figures 11-12, the horizontal axis is the packet loss rate and the vertical axis is the system capacity. N=1 means the group length is 1, i.e., groupSize=1. N=5 means the group length is 5, i.e., groupSize=5, and so on. As the RDMA packet loss rate increases, when the RDMA packet loss rate is >4.5*10e-3 and <3.5*10e-3, N=10 can be set to ensure that the overall system capacity is maintained at around 0.94, i.e., at a relatively high level, while also considering overhead. When the RDMA packet loss rate is >3.5*10e-3 and <2.6*10e-2, N=5 can be set to ensure that the overall system capacity is not lower than 0.93, i.e., still maintained at a relatively high level, while still considering overhead. When the RDMA packet loss rate is >2.6*10e-2, N=1 can be set to ensure that the overall system capacity is not lower than 0.8.
以上结合图8详细说明了本申请实施例提供的报文传输方法。以下结合图13和图14详细说明用于执行本申请实施例提供的报文传输方法的通信装置。The message transmission method provided in the embodiments of this application has been described in detail above with reference to FIG8. The communication apparatus used to perform the message transmission method provided in the embodiments of this application is described in detail below with reference to FIG13 and FIG14.
图13是本申请实施例提供的通信装置的结构示意图一。示例性的,如图13所示,通信装置1300包括:收发模块1302和处理模块1301。为了便于说明,图13仅示出了该通信装置的主要部件。Figure 13 is a schematic diagram of the structure of a communication device provided in an embodiment of this application. As exemplarily shown in Figure 13, the communication device 1300 includes a transceiver module 1302 and a processing module 1301. For ease of explanation, Figure 13 only shows the main components of the communication device.
通信装置1300可以适用到上述图3-图5的通信方法,实现相应的功能。例如,收发模块1302可以用于实现上述图8的通信方法中的收发功能,处理模块1301可以用于实现上述图8的通信方法中除收发功能以外的其他功能。The communication device 1300 can be applied to the communication methods shown in Figures 3-5 above to achieve the corresponding functions. For example, the transceiver module 1302 can be used to implement the transceiver function in the communication method shown in Figure 8 above, and the processing module 1301 can be used to implement other functions in the communication method shown in Figure 8 above besides the transceiver function.
可选地,收发模块1302可以包括发送模块(图13中未示出)和接收模块(图13中未示出)。其中,发送模块用于实现通信装置1300的发送功能,接收模块用于实现通信装置1300的接收功能。Optionally, the transceiver module 1302 may include a transmitting module (not shown in FIG. 13) and a receiving module (not shown in FIG. 13). The transmitting module is used to implement the transmitting function of the communication device 1300, and the receiving module is used to implement the receiving function of the communication device 1300.
可选地,通信装置1300还可以包括存储模块(图13中未示出),该存储模块存储有程序或指令。当该处理模块1301执行该程序或指令时,使得该通信装置1300可以执行上述图3-图5所示的方法中的功能。Optionally, the communication device 1300 may further include a storage module (not shown in FIG13) that stores programs or instructions. When the processing module 1301 executes the program or instructions, the communication device 1300 can perform the functions in the methods shown in FIG3-5 above.
可以理解,通信装置1300可以是网络设备,也可以是可设置于网络设备中的芯片(系统)或其他部件或组件,还可以是包含网络设备的装置,本申请对此不做限定。It is understood that the communication device 1300 may be a network device, or a chip (system) or other component or assembly that can be set in the network device, or a device that includes the network device. This application does not limit this.
此外,通信装置1300的技术效果可以参考上述的通信方法的技术效果,此处不再赘述。Furthermore, the technical effects of the communication device 1300 can be referenced from the technical effects of the communication method described above, and will not be repeated here.
示例性地,图14为本申请实施例提供的通信装置的结构示意图二。该通信装置可以是终端设备或网络设备,也可以是可设置于终端设备或网络设备的芯片(系统)或其他部件或组件。如图14所示,通信装置1400可以包括处理器1401。可选地,通信装置1400还可以包括存储器1402和/或收发器1403。其中,处理器1401与存储器1402和收发器1403耦合,如可以通过通信总线连接。For example, Figure 14 is a second schematic diagram of the structure of a communication device provided in an embodiment of this application. This communication device can be a terminal device or a network device, or it can be a chip (system) or other component or assembly that can be disposed in a terminal device or network device. As shown in Figure 14, the communication device 1400 may include a processor 1401. Optionally, the communication device 1400 may also include a memory 1402 and/or a transceiver 1403. The processor 1401 is coupled to the memory 1402 and the transceiver 1403, for example, they can be connected via a communication bus.
下面结合图14对通信装置1400的各个构成部件进行具体的介绍:The following is a detailed description of each component of the communication device 1400 with reference to Figure 14:
其中,处理器1401是通信装置1400的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器1401是一个或多个中央处理器(central processing unit,CPU),也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个数字信号处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。The processor 1401 is the control center of the communication device 1400. It can be a single processor or a collective term for multiple processing elements. For example, the processor 1401 can be one or more central processing units (CPUs), application-specific integrated circuits (ASICs), or one or more integrated circuits configured to implement the embodiments of this application, such as one or more digital signal processors (DSPs), or one or more field-programmable gate arrays (FPGAs).
可选地,处理器1401可以通过运行或执行存储在存储器1402内的软件程序,以及调用存储在存储器1402内的数据,执行通信装置1400的各种功能。Optionally, the processor 1401 can perform various functions of the communication device 1400 by running or executing software programs stored in the memory 1402 and calling data stored in the memory 1402.
在具体的实现中,作为一种实施例,处理器1401可以包括一个或多个CPU,例如图14中所示出的CPU0和CPU1。In a specific implementation, as one example, processor 1401 may include one or more CPUs, such as CPU0 and CPU1 shown in FIG14.
在具体实现中,作为一种实施例,通信装置1400也可以包括多个处理器,例如图14中所示的处理器1401和处理器1404。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。In a specific implementation, as one embodiment, the communication device 1400 may also include multiple processors, such as processors 1401 and 1404 shown in FIG. 14. Each of these processors may be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). Here, a processor may refer to one or more devices, circuits, and/or processing cores for processing data (e.g., computer program instructions).
其中,所述存储器1402用于存储执行本申请方案的软件程序,并由处理器1401来控制执行,具体实现方式可以参考上述方法实施例,此处不再赘述。The memory 1402 is used to store the software program that executes the solution of this application, and is controlled by the processor 1401 to execute it. The specific implementation method can be referred to the above method embodiment, and will not be repeated here.
可选地,存储器1402可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1402可以和处理器1401集成在一起,也可以独立存在,并通过通信装置1400的接口电路(图14中未示出)与处理器1401耦合,本申请实施例对此不作具体限定。Optionally, the memory 1402 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory 1402 may be integrated with the processor 1401 or may exist independently and be coupled to the processor 1401 through the interface circuit of the communication device 1400 (not shown in FIG. 14). This embodiment of the application does not specifically limit this.
收发器1403,用于与其他通信装置之间的通信。例如,通信装置1400为终端设备,收发器1403可以用于与网络设备通信,或者与另一个终端设备通信。又例如,通信装置1400为网络设备,收发器1403可以用于与终端设备通信,或者与另一个网络设备通信。Transceiver 1403 is used for communication with other communication devices. For example, if communication device 1400 is a terminal device, transceiver 1403 can be used to communicate with a network device or with another terminal device. As another example, if communication device 1400 is a network device, transceiver 1403 can be used to communicate with a terminal device or with another network device.
可选地,收发器1403可以包括接收器和发送器(图14中未单独示出)。其中,接收器用于实现接收功能,发送器用于实现发送功能。Optionally, transceiver 1403 may include a receiver and a transmitter (not shown separately in Figure 14). The receiver is used to implement the receiving function, and the transmitter is used to implement the transmitting function.
可选地,收发器1403可以和处理器1401集成在一起,也可以独立存在,并通过通信装置1400的接口电路(图14中未示出)与处理器1401耦合,本申请实施例对此不作具体限定。Optionally, the transceiver 1403 can be integrated with the processor 1401 or exist independently and be coupled to the processor 1401 through the interface circuit of the communication device 1400 (not shown in FIG14). This application embodiment does not specifically limit this.
需要说明的是,图14中示出的通信装置1400的结构并不构成对该通信装置的限定,实际的通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。It should be noted that the structure of the communication device 1400 shown in Figure 14 does not constitute a limitation on the communication device. The actual communication device may include more or fewer components than shown, or combine certain components, or have different component arrangements.
此外,通信装置1400的技术效果可以参考上述方法实施例所述的报文传输方法的技术效果,此处不再赘述。Furthermore, the technical effects of the communication device 1400 can be referred to the technical effects of the message transmission method described in the above method embodiments, and will not be repeated here.
应理解,在本申请实施例中的处理器可以是CPU,该处理器还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。It should be understood that the processor in the embodiments of this application can be a CPU, but it can also be other general-purpose processors, DSPs, ASICs, FPGAs, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor, etc.
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchroNo.us DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。It should also be understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. Non-volatile memory can be ROM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), EEPROM, or flash memory. Volatile memory can be RAM, which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
上述实施例,可以全部或部分地通过软件、硬件(如电路)、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。The above embodiments can be implemented, in whole or in part, by software, hardware (such as circuits), firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, in the form of a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. A semiconductor medium can be a solid-state drive.
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。It should be understood that the term "and/or" in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and/or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. A and B can be singular or plural. Additionally, the character "/" in this article generally indicates an "or" relationship between the preceding and following related objects, but it can also represent an "and/or" relationship. Please refer to the context for a more accurate understanding.
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。In this application, "at least one" means one or more, and "more than one" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can mean: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, and c can be single or multiple.
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。It should be understood that in the various embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims (33)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410949418.0A CN121357116A (en) | 2024-07-15 | 2024-07-15 | A message transmission method and apparatus |
| CN202410949418.0 | 2024-07-15 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2026016822A1 true WO2026016822A1 (en) | 2026-01-22 |
Family
ID=98394568
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2025/105053 Pending WO2026016822A1 (en) | 2024-07-15 | 2025-06-27 | Packet transmission method and apparatus |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN121357116A (en) |
| WO (1) | WO2026016822A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109691039A (en) * | 2018-01-16 | 2019-04-26 | 华为技术有限公司 | Message transmission method and device |
| US10509764B1 (en) * | 2015-06-19 | 2019-12-17 | Amazon Technologies, Inc. | Flexible remote direct memory access |
| US20200250129A1 (en) * | 2019-08-28 | 2020-08-06 | Alibaba Group Holding Limited | Rdma data sending and receiving methods, electronic device, and readable storage medium |
| CN115633104A (en) * | 2022-09-13 | 2023-01-20 | 江苏为是科技有限公司 | Data sending method, data receiving method, device and data receiving and sending system |
| CN117424849A (en) * | 2022-07-26 | 2024-01-19 | 中兴智能科技南京有限公司 | Data transmission method, device, computer equipment and readable medium |
-
2024
- 2024-07-15 CN CN202410949418.0A patent/CN121357116A/en active Pending
-
2025
- 2025-06-27 WO PCT/CN2025/105053 patent/WO2026016822A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10509764B1 (en) * | 2015-06-19 | 2019-12-17 | Amazon Technologies, Inc. | Flexible remote direct memory access |
| CN109691039A (en) * | 2018-01-16 | 2019-04-26 | 华为技术有限公司 | Message transmission method and device |
| US20200250129A1 (en) * | 2019-08-28 | 2020-08-06 | Alibaba Group Holding Limited | Rdma data sending and receiving methods, electronic device, and readable storage medium |
| CN117424849A (en) * | 2022-07-26 | 2024-01-19 | 中兴智能科技南京有限公司 | Data transmission method, device, computer equipment and readable medium |
| CN115633104A (en) * | 2022-09-13 | 2023-01-20 | 江苏为是科技有限公司 | Data sending method, data receiving method, device and data receiving and sending system |
Also Published As
| Publication number | Publication date |
|---|---|
| CN121357116A (en) | 2026-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8988994B2 (en) | System and method for creating logical radio link control (RLC) and medium access control (MAC) protocol data units (PDUs) in mobile communication system | |
| CN113543216B (en) | Method, device and system for transmitting media message | |
| US11757746B2 (en) | Communication method, apparatus, and system | |
| CN112039639A (en) | Feedback indication method and communication device | |
| WO2021212286A1 (en) | Physical downlink control channel transmission method and apparatus, and storage medium | |
| CN110312283A (en) | A kind of information processing method and device | |
| CN114846774B (en) | Communication method and device | |
| WO2021204091A1 (en) | Method and device for clearing buffer | |
| WO2022141589A1 (en) | Method and apparatus for determining hybrid automatic repeat request acknowledgement (harq-ack) codebook | |
| WO2026016822A1 (en) | Packet transmission method and apparatus | |
| CN109802800B (en) | A communication method and device | |
| CN109756306B (en) | Information transmission methods and communication equipment | |
| WO2023016285A1 (en) | Communication method and apparatus | |
| CN117354950A (en) | A communication method and device | |
| CN117480810A (en) | Score plate shape updating method, device, equipment and storage medium | |
| WO2022193105A1 (en) | Transmission indication method and device, and system | |
| US20240154735A1 (en) | Method and apparatus for transmitting objects based on deadline-aware | |
| WO2025247120A1 (en) | Information transmission method and communication apparatus | |
| WO2020164149A1 (en) | Data transmission method and device | |
| WO2025030314A1 (en) | Communication method and communication apparatus | |
| CN111698726B (en) | Data transmission method, device, related equipment and storage medium | |
| WO2025223180A1 (en) | Data flow control method and related apparatus | |
| WO2026002105A1 (en) | Communication method and communication apparatus | |
| WO2024222041A1 (en) | Communication method and apparatus | |
| WO2025180242A1 (en) | Packet transmission method and apparatus |