Remote direct memory access method and related apparatus and system

In the distributed computing scenario between the terminal device and the computing device in the network, the sending window size is adjusted using the message format of the protocol below the network layer, which solves the problem of excessive load processing of network devices, and realizes low-latency, large-throughput communication services and data transmission security.

WO2025145944A1PCT designated stage expired Publication Date: 2025-07-10HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/142535
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-04
Filing Date
2024-12-25
Publication Date
2025-07-10

AI Technical Summary

Technical Problem

In a distributed computing scenario between the terminal device and the on-network computing device of the mobile communication network, the network device acts as a performance bottleneck node, performing deep message analysis deep message analysis (DPI) leads to an increase in processing load and affects network performance.

Method used

By designing the message format to meet the protocols below the network layer, simplifying the operation process and signaling analysis, network equipment does not need to perform DPI, and directly adjusts the sending window size to reduce processing load.

Benefits of technology

It improves network performance, provides low-latency and large throughput communication services, simplifies the processing flow of network equipment, and ensures the privacy and security of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024142535_10072025_PF_FP_ABST
    Figure CN2024142535_10072025_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the field of communications. Provided are an RDMA method and a related apparatus and system. The method comprises: a first device sending a first packet to a network device, wherein the first packet is used for requesting the adjustment of a window size of a sending window, the network device is connected between the first device and a second device, and the second device is a device that performs RDMA-based distributed computing with the first device; the first device receiving a second packet from the network device, wherein the second packet comprises data used for determining the window size, and the packet formats of the first packet and the second packet comply with protocols below a network layer; the first device adjusting the window size of the sending window on the basis of the second packet; and on the basis of the adjusted sending window, the first device sending RDMA data to the second device by means of the network device. A network device does not need to perform DPI on a first packet, such that the processing load of the network device can be reduced, thereby helping to improve the network performance.
Need to check novelty before this filing date? Find Prior Art

Description

Remote direct memory access method and related device and system

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on January 4, 2024, with application number 202410025101.8 and application name “A remote direct memory access method and related devices and systems”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of communications, and in particular to a remote direct memory access (RDMA) method and related devices and systems. Background Art

[0003] In a currently known remote direct memory access method, each data packet sent by the sender (or transmitter) requires feedback from the receiver (or receiver). As the data packet travels from the sender to the receiver, each switch along the way can insert some information into the data packet to adjust the send window size (or dimensions). When the receiver receives the data packet, it can copy the information inserted by the switch into the feedback message it will send to the sender. After each feedback message from the receiver, the sender can determine the next send window size to use based on the send window size adjustment information contained in the feedback message.

[0004] If this remote direct memory access method is directly reused in a distributed computing scenario between a terminal device and an in-network computing device (also called an in-network computing node) of a mobile communication network, the network device (e.g., a base station) acting as a bridge between the terminal device and the in-network computing device needs to perform deep packet inspection (DPI) on application layer or network layer messages to obtain the information used to adjust the send window size. However, in this scenario, the network device itself is the performance bottleneck node in the data transmission process. In addition, the complex DPI process imposes additional processing load on the network device, affecting network performance. Summary of the Invention

[0005] The present application provides an RDMA method and related devices and systems to reduce the processing load of network devices and improve network performance.

[0006] In a first aspect, the present application provides an RDMA method, which can be executed by a first device, or by a component configured in the first device (such as a chip, a chip system, etc.), or by a logic module or software that can implement all or part of the functions of the first device. This application does not limit this.

[0007] Exemplarily, the method includes: sending a first message to a network device, the first message being used to request adjustment of the window size of a sending window, the network device being connected between the first device and a second device, the second device being a device that performs RDMA-based distributed computing with the first device; receiving a second message from the network device, the second message including data for determining the window size, the message formats of the first message and the second message satisfying protocols below the network layer; adjusting the window size of the sending window based on the second message; and sending RDMA data to the second device through the network device based on the adjusted sending window.

[0008] Among them, the message formats of the first message and the second message meet the protocols below the network layer. It can be understood as follows: the first message and the second message can be encapsulated in the protocol layer below the network layer, or in other words, can be encapsulated based on the message encapsulation format below the network layer without the need for encapsulation of the network layer and the protocol layers above it, and there is no need to further encapsulate the message headers corresponding to the network layer and the protocol layers above it.

[0009] Based on the above technical solution, the message formats of the messages (first and second messages) used to adjust the window size of the send window meet the protocols below the network layer, simplifying the operation process and signaling parsing process, so that the network device can adjust the window size of the send window based on the message credit. This eliminates the need for network devices to perform DPI on the messages, thereby reducing the processing load of the network device and helping to improve network performance. Furthermore, it can provide low-latency, high-throughput communication services for data exchange based on RDMA distributed computing.

[0010] Secondly, the present application provides an RDMA method, which can be executed by a network device, or by a component configured in the network device (such as a chip, a chip system, etc.), or by a logic module or software that can realize all or part of the network device functions. The present application does not limit this.

[0011] Exemplarily, the method includes: receiving a first message from a first device, the first message being used to request adjustment of the window size of a sending window, the network device being connected between the first device and a second device, the second device being a device that performs RDMA distributed computing with the first device; sending a second message to the first device, the second message including data for determining the window size, the message formats of the first message and the second message satisfying protocols below the network layer.

[0012] Based on the above technical solution, the message formats of the messages (first and second messages) used to adjust the window size of the send window meet the protocols below the network layer, simplifying the operation process and signaling parsing. As a result, network devices do not need to perform DPI on these messages, thereby reducing the processing load of network devices, helping to improve network performance, and further providing low-latency, high-throughput communication services for data exchange based on RDMA distributed computing.

[0013] In combination with the second aspect, in some possible implementations, the credit value is determined based on the information carried in the first message and the network load information perceived by the network device.

[0014] In this application, network load information may include but is not limited to information such as air interface status, air interface bandwidth resources and cache status. The information carried in the first message may include but is not limited to: request values ​​of one or more of the above information carried in the first message.

[0015] In combination with the first aspect and the second aspect, in some possible implementations, the first device is an in-network computing device, and the second device is a terminal device.

[0016] In combination with the first and second aspects, in some possible implementations, the first message and the second message are user-plane general packet radio service tunneling protocol (GTP-U) messages; or, the first message and the second message are segment routing protocol over IPv6 data plane (SRv6) messages based on a forwarding plane of Internet Protocol version 6 (IPv6).

[0017] In combination with the first aspect and the second aspect, in some possible implementations, the first device is a terminal device, and the second device is an in-network computing device.

[0018] In combination with the first aspect and the second aspect, in some possible implementations, the first message and the second message are interface layer 2 (layer 2) (Uu L2) messages between a user equipment and a universal terrestrial radio access network element (UE-UTRAN); or, the first message and the second message are layer 2 control protocol data unit (PDU) (L2 control PDU) messages.

[0019] In combination with the first aspect and the second aspect, in some possible implementations, the first message includes a request value for one or more of the following information: a window increase intention value, a queue length of RDMA data that the sending window can carry, and a transmission byte or link bandwidth capacity of RDMA data that the sending window can carry.

[0020] In combination with the first aspect and the second aspect, in some possible implementations, the second message includes a credit value for one or more of the following information: a window increase intention value, a queue length of RDMA data that the sending window can carry, and a transmission byte or link bandwidth capacity of RDMA data that the sending window can carry.

[0021] In a third aspect, the present application provides a communications device that can implement the methods described in any of the first and second aspects and any possible implementation of the first and second aspects. The device includes corresponding modules for executing the methods described above. The modules included in the device can be implemented in software and / or hardware.

[0022] In a fourth aspect, the present application provides a communication device comprising a processor. The processor is coupled to a memory and can be used to execute a program in the memory to implement the method described in the first aspect, the second aspect, and any possible implementation of the first aspect, the second aspect, or any possible implementation of the second aspect.

[0023] Optionally, the communication device further includes a memory.

[0024] Optionally, the communication device further includes a communication interface, and the processor is coupled to the communication interface.

[0025] In a fifth aspect, the present application provides a communication system, comprising a first device and a network device. The first device is configured to perform the functions of the first device in the first aspect and any possible implementation of the first aspect, and the network device is configured to perform the functions of the network device in the second aspect and any possible implementation of the second aspect.

[0026] In a sixth aspect, the present application provides a chip system comprising at least one processor for supporting the implementation of the functions involved in the above-mentioned first aspect to the second aspect and any possible implementation of the first aspect to any possible implementation of the second aspect, for example, receiving or processing the data and / or indication information involved in the above-mentioned method.

[0027] In one possible design, the chip system further includes a memory, which is used to store program instructions and data, and the memory is located inside or outside the processor.

[0028] The chip system can be composed of chips, or can include chips and other discrete devices.

[0029] In the seventh aspect, the present application provides a readable storage medium on which a program (also referred to as code, or instructions) is stored. When the program is executed by a processor, the methods in the above-mentioned first aspect to the second aspect and any possible implementation of the first aspect to any possible implementation of the second aspect are executed.

[0030] In an eighth aspect, the present application provides a program product, which includes: a program (also referred to as code, or instructions), which, when run, enables the methods in the above-mentioned first aspect to the second aspect and any possible implementation of the first aspect to any possible implementation of the second aspect to be executed.

[0031] It should be understood that the third to eighth aspects of the present application correspond to the technical solutions of the first and second aspects of the present application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation methods are similar and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] FIG1 is a schematic diagram of a communication system applicable to the method provided in an embodiment of the present application;

[0033] FIG2 is a schematic diagram of an RDMA method;

[0034] FIG3 is a schematic diagram of a communication scenario applicable to the method provided in an embodiment of the present application;

[0035] FIG4 is a schematic flow chart of an RDMA method provided in an embodiment of the present application;

[0036] FIG5 is a schematic block diagram of a communication device provided in an embodiment of the present application;

[0037] FIG6 is another schematic block diagram of a communication device provided in an embodiment of the present application;

[0038] FIG7 is a schematic diagram of the structure of a terminal device provided in an embodiment of the present application;

[0039] FIG8 is a schematic diagram of the structure of a network device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0040] The technical solution in this application will be described below with reference to the accompanying drawings.

[0041] First, in this application, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions. For example, a device, system, product or apparatus comprising a series of modules, modules or units is not necessarily limited to those modules, modules or units explicitly listed, but may include other modules, modules or units that are not explicitly listed or are inherent to these devices, systems, products or apparatuses.

[0042] Second, in this application, words such as "exemplarily" and "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplarily" or "for example" in the embodiments of this application should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplarily" and "for example" is intended to present the relevant concepts in a concrete manner.

[0043] Third, in this application, "when...", "in the case of...", "if" and "if" all mean that the device will take corresponding actions under certain objective circumstances, which does not limit the time, nor does it require that the device must perform judgment actions when it is implemented, nor does it mean that there are other limitations.

[0044] Fourth, in this application, terms such as "first" and "second" are used to distinguish between identical or similar items with substantially the same function or effect. For example, the terms "first message" and "second message" are intended to distinguish different messages and do not define their order. Those skilled in the art will understand that terms such as "first" and "second" do not define the quantity or order of execution, and that terms such as "first" and "second" do not necessarily imply differences.

[0045] Fifth, in this application, preset can be understood as predefined, defined, predefined, stored, pre-stored, pre-negotiated, or pre-configured, etc.

[0046] Sixth, in this application, "at least one" means one or more. "And / or" describes the association relationship of associated objects, indicating that three relationships can exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the associated objects are in an "or" relationship, but it does not exclude the situation where it indicates that the associated objects are in an "and" relationship. The specific meaning can be understood in conjunction with the context.

[0047] Seventh, “sending” and “receiving” in this application indicate the direction of signal transmission. For example, “a first device sends a first message to a network device” can be understood as the destination end of the first message being the network device, which can include direct sending through the air interface, and also includes indirect sending through the air interface by other units or modules. “A first device receives a second message from a network device” can be understood as the source end of the second message being the network device, which can include direct receiving from the network device through the air interface, and also includes indirect receiving from the network device through the air interface from other units or modules. “Sending” can also be understood as the “output” of the chip interface, and “receiving” can also be understood as the “input” of the chip interface.

[0048] In other words, sending and receiving can be performed between devices, for example, between a network device and a first device; or it can be performed within a device, for example, sending or receiving between components, modules, chips, software modules or hardware modules within the device through a bus, wiring or interface.

[0049] Eighth, in this application, indications include explicit indications (also called direct indications) and implicit indications (also called indirect indications). Specifically, explicit indication information A refers to including information A; implicit indication information A refers to indicating information A through the correspondence between information A and information B and directly indicating information B. The correspondence between information A and information B can be predefined, pre-stored, pre-burned, or pre-configured; or, it can also refer to indicating information A through information B and preset rules.

[0050] Ninth, in this application, information C is used to determine information D, which includes both information D being determined solely based on information C and information D being determined based on information C and other information. Furthermore, information C can also be used to determine information D indirectly, for example, where information D is determined based on information E, and information E is determined based on information C.

[0051] To facilitate understanding of the embodiments of the present application, some terms or words involved in the present application are briefly explained below.

[0052] 1. Mobile communications: It can refer to the communication method between mobile users and fixed-point users, or between mobile users.

[0053] 2. Mobile communication network: It can refer to the communication medium between mobile users and fixed-point users, or between mobile users.

[0054] 3. In-network computing node: also known as in-network computing device, which can refer to the device that provides computing services within the mobile communication network.

[0055] In this application, the computing node in the network may include but is not limited to node C (node ​​C, NodeC).

[0056] 4. Send window adjustment: This refers to the data sender adjusting its send window, usually adjusting the send window of the transport layer. For example, the sender adjusts the size of the Transmission Control Protocol (TCP) layer send window to control the speed at which the sender sends data, avoid network congestion, or prevent the receiver from being unable to process the data.

[0057] To facilitate understanding of the embodiments of the present application, a communication system applicable to the RDMA method provided in the embodiments of the present application is described in detail below with reference to FIG1 .

[0058] FIG1 is a schematic diagram of a communication system applicable to the method provided in an embodiment of the present application.

[0059] Figure 1 shows a schematic diagram of a possible, non-limiting system architecture. As shown in Figure 1, communication system 1000 includes a radio access network (RAN) 100 and a core network (CN) 200. RAN 100 includes at least one RAN node (such as 110a and 110b in Figure 1, collectively referred to as 110) and at least one terminal device (such as 120a-120j in Figure 1, collectively referred to as 120). RAN 100 may also include other RAN nodes, such as wireless relay devices and / or wireless backhaul devices (not shown in Figure 1). Terminal device 120 is wirelessly connected to RAN node 110. RAN node 110 is wirelessly or wiredly connected to core network 200. The core network devices in core network 200 and RAN node 110 in RAN 100 can be different physical devices, or they can be the same physical device that integrates core network logical functions and radio access network logical functions.

[0060] The RAN 100 may be a cellular system related to the Third Generation Partnership Project (3GPP), such as a 4th generation (4G) or 5th generation (5G) mobile communication system, or a future-oriented evolutionary system (such as a 6th generation (6G) mobile communication system). The RAN 100 may also be an open access network (O-RAN or ORAN), a cloud radio access network (CRAN), or a wireless fidelity (Wi-Fi) system. The RAN 100 may also be a communication system that integrates two or more of the above systems.

[0061] RAN node 110, sometimes also referred to as access network equipment, RAN entity, or access node, is part of a communication system and facilitates wireless access for terminal devices. Multiple RAN nodes 110 in communication system 1000 can be of the same type or different types. In some scenarios, the roles of RAN node 110 and terminal device 120 are relative. For example, network element 120i in Figure 1 can be a helicopter or drone, which can be configured as a mobile base station. For terminal device 120j accessing RAN 100 via network element 120i, network element 120i is a base station; however, for base station 110a, network element 120i is a terminal device. RAN node 110 and terminal device 120 are sometimes referred to as communication devices. For example, network elements 110a and 110b in Figure 1 can be understood as communication devices with base station functionality, and network elements 120a-120j can be understood as communication devices with terminal device functionality.

[0062] In one possible scenario, a RAN node may be a base station, an evolved NodeB (eNodeB), an access point (AP), a transmission reception point (TRP), a next-generation NodeB (gNB), a next-generation base station in a 6G mobile communication system, a base station in a future mobile communication system, or an access node in a Wi-Fi system. A RAN node may be a macro base station (such as 110a in Figure 1 ), a micro base station or an indoor station (such as 110b in Figure 1 ), a relay node or a donor node, or a wireless controller in a CRAN scenario. Alternatively, a RAN node may be a server, a wearable device, a vehicle, or an onboard device. For example, the access network device in vehicle-to-everything (V2X) technology may be a roadside unit (RSU).

[0063] In another possible scenario, multiple RAN nodes collaborate to assist terminal devices in achieving wireless access, and different RAN nodes respectively implement part of the functions of the base station. For example, the RAN node can be a centralized unit (CU), a distributed unit (DU), a CU-control plane (CP), a CU-user plane (UP), or a radio unit (RU). The CU and DU can be set separately, or they can be included in the same network element, such as a baseband unit (BBU). The RU can be included in a radio frequency device or radio frequency unit, such as a remote radio unit (RRU), an active antenna unit (AAU), or a remote radio head (RRH).

[0064] In different systems, CU (or CU-CP and CU-UP), DU or RU may also have different names, but those skilled in the art can understand their meanings. For example, in the ORAN system, CU may also be called O-CU (Open CU), DU may also be called O-DU, CU-CP may also be called O-CU-CP, CU-UP may also be called O-CU-UP, and RU may also be called O-RU. For the convenience of description, this application uses CU, CU-CP, CU-UP, DU and RU as examples for description. Any unit of CU (or CU-CP, CU-UP), DU and RU in this application can be implemented by a software module, a hardware module, or a combination of a software module and a hardware module.

[0065] Terminal devices may also be referred to as user equipment (UE), customer-premises equipment (CPE), mobile station (MS), terminal, mobile terminal, user terminal, or communication terminal. Terminal devices can be widely used in various scenarios, such as device-to-device (D2D), vehicle-to-everything (V2X) communication, machine-type communication (MTC), the Internet of Things (IoT), virtual reality (VR), augmented reality (AR), industrial control, self-driving, remote medical care, smart grid, smart furniture, smart office, smart wearables, smart transportation, transportation safety, smart cities, and smart homes. The terminal device can be a mobile phone, tablet computer, cellular phone, cordless phone, session initiation protocol (SIP) phone, wireless local loop (WLL) station, personal digital assistant (PDA), computer with wireless transceiver function, wearable device, vehicle, drone, helicopter, airplane, ship, robot, robotic arm, smart home device, handheld device with wireless communication function, computing device or other processing device connected to a wireless modem, vehicle-mounted device, etc.

[0066] In the embodiments of the present application, the terminal devices and network devices may be hardware devices, or software functions running on dedicated hardware, or software functions running on general-purpose hardware, such as virtualization functions instantiated on a platform (e.g., a cloud platform), or entities including dedicated or general-purpose hardware devices and software functions. The present application does not limit the specific forms of the terminal devices and network devices.

[0067] In recent years, thanks to the development of machine learning algorithms and the continuous improvement of terminal device computing power, the resulting intelligent applications have become an emerging industry hotspot. Distributed artificial intelligence (AI), which integrates end-cloud and even end-network collaboration, is gradually becoming the mainstream trend of future intelligent applications. On the one hand, incorporating user-side terminal devices into the calculation of distributed intelligent applications can fully utilize the computing power of terminal devices, thereby reducing data redundancy and communication overhead transmitted in the network and improving the overall response speed of services. On the other hand, distributed AI computing can avoid the unified collection and upload of data from each node, protecting the privacy and security of user data. At the same time, distributed AI model training also helps the model learn local personalized features and better serve the tasks of local nodes.

[0068] In the future evolution of mobile communication networks, network support for AI applications (Net4AI) has become a widely discussed trend. By leveraging the idle computing power of the mobile communication network itself or adding computing nodes to the mobile communication network, it can take on a portion of distributed AI computing tasks, achieving computing while transmitting. Therefore, the mobile communication network will no longer simply serve as a data exchange pipeline to provide services for distributed computing; it will itself provide support for computing tasks as an infrastructure, achieving true network-inherent intelligence. Unlike cloud computing centers composed of numerous clusters, distributed computing in mobile communication networks presents more challenges. The main factors are the limited computing power available in the mobile communication network and the fluctuations in air interface transmission. These two factors together affect the performance of the mobile communication network in the distributed computing and communication stages.

[0069] To support data transmission between computing servers in high-performance distributed clusters, traditional technologies rely on TCP / IP (Internet Protocol, IP) for data encapsulation and transmission. This communication process requires computing units (such as central processing units (CPUs)) to frequently copy data and perform protocol encapsulation. This places additional load on the computing units, reducing their performance and incurring significant computational and transmission latency. To address this issue, Remote Direct Memory Access (RDMA) technology uses a dedicated network interface card (NIC) to establish a kernel bypass, providing direct memory read and write access between remote nodes. This completely offloads the communication encapsulation burden from the computing units and enables high-speed, lossless data exchange. However, the RDMA architecture is highly sensitive to packet loss; a loss of one in a thousand packets can result in a performance degradation of approximately 30%. Therefore, mobile communication networks require more sophisticated congestion control and scheduling mechanisms. Furthermore, the RDMA architecture is not yet fully compatible with mobile communication networks. Current RDMA protocols focus primarily on the network layer and are unaware of the limitations and fluctuations of air interface transmission capacity.

[0070] FIG2 is a schematic diagram of an RDMA method.

[0071] Currently, remote memory access technologies that support distributed computing, such as RDMA, are mostly limited to resource negotiation and authorization at the Ethernet layer. They do not involve the participation of wireless networks or do not make any requirements on network elements in wireless networks. Transmission control is mainly performed by nodes at the external network layer (such as switches or routers).

[0072] High-precision congestion control (HPCC) is a related technology for RDMA congestion scheduling. It relies on switches to provide fine-grained network load information to precisely adjust RDMA traffic. In the HPCC-based RDMA method, shown in Figure 2, each data packet sent by the sender (or sender) requires feedback from the receiver (or receiver). As a data packet travels from the sender to the receiver, each switch along the way can insert some network load information into the data packet to adjust the send window size (or dimension). For example, after receiving a data packet from the sender, switch 1 inserts network load information 1 into the data packet and sends it to switch 2. After receiving the data packet from switch 1, switch 2 inserts network load information 2 into the data packet and sends the data packet containing both information to the receiver. After receiving the data packet containing both information, the receiver can copy both information into the feedback message (e.g., an acknowledgment (ACK) message) it will send to the sender. After receiving each feedback message from the receiver, the sender can adjust the traffic rate based on the network load information contained in the feedback message. In other words, it determines the size of the next sending window based on the network load information contained in the feedback message. Network load information 1 represents the current network load information at the egress of switch 1, and network load information 2 represents the current network load information at the egress of switch 2.

[0073] In the aforementioned HPCC-based RDMA method, the network load information used to adjust the size of the send window is carried in the application layer message or the network layer message. If this method is directly reused in a distributed computing scenario between a terminal device and an in-network computing device of a mobile network, the network device (e.g., a base station) that serves as a bridge between the terminal device and the in-network computing device needs to perform DPI on the application layer message or the network layer message to obtain the information used to adjust the size of the send window. However, in this scenario, the network device itself is the performance bottleneck node in the data transmission process. In addition, the DPI process is complex, which brings additional processing load to the network device, affecting network performance.

[0074] Based on the above technical issues, this application provides an RDMA method for adjusting the window size of a send window. The message format of the message satisfies the protocol below the network layer, so that the network device can adjust the window size of the send window based on the message credit. In this way, the network device does not need to perform DPI on the above message, thereby reducing the processing load of the network device, helping to improve network performance, and further providing low-latency, high-throughput communication services for data interaction based on RDMA-based distributed computing.

[0075] In order to facilitate a better understanding of the RDMA method provided in this application, the following first describes in detail a communication scenario applicable to the RDMA method provided in this application with reference to FIG3 .

[0076] FIG3 is a schematic diagram of a communication scenario applicable to the method provided in an embodiment of the present application.

[0077] In the communication scenario shown in Figure 3, RDMA-based distributed computing can be performed between terminal devices and computing devices within the network through network devices. The network devices act as a bridge between the terminal devices and computing devices within the network, facilitating the transmission of RDMA data between the terminal devices and computing devices within the network. RDMA data can include, but is not limited to, memory data and / or instructions for operating on memory data.

[0078] It is understandable that in this application, the terminal device can be responsible for the end-side computing tasks in the RDMA-based distributed computing process, and the in-network computing device can be responsible for the in-network computing tasks in the RDMA-based distributed computing process. The end-side computing tasks and the in-network computing tasks are pre-negotiated by the terminal device and the in-network computing device. That is to say, before performing RDMA-based distributed computing, the terminal device and the in-network computing device can pre-negotiate who will calculate which subtasks respectively. The network device is responsible for congestion control and flow rate adjustment in the RDMA-based distributed computing process. More specifically, the network device can adjust the window size of the sending window by credit to achieve congestion control and flow rate adjustment.

[0079] The RDMA method provided in this application is described in detail below with reference to FIG4 .

[0080] FIG4 is a schematic flowchart of an RDMA method provided in an embodiment of the present application.

[0081] As shown in Figure 4, the method 400 may include steps 410 to 440. Each step in Figure 4 is described in detail below.

[0082] In step 410, a first device sends a first message to a network device, wherein the first message is used to request adjustment of a window size of a sending window. Accordingly, the network device receives the first message from the first device.

[0083] The message format of the first message satisfies the protocols below the network layer. The message format of the first message satisfies the protocols below the network layer. This can be understood as follows: the first message can be encapsulated at the protocol layer below the network layer, or in other words, can be encapsulated based on the message encapsulation format below the network layer without being encapsulated at the network layer and protocol layers above it, and thus without further encapsulating the message header corresponding to the network layer and protocol layers above it.

[0084] A network device is connected between a first device and a second device. The second device performs RDMA-based distributed computing with the first device. The first device can be the sender of RDMA data, and the second device can be the receiver of RDMA data. In the communication scenario shown in Figure 3, in one possible implementation, the first device is an in-network computing device, and the second device is a terminal device. In another possible implementation, the first device is a terminal device, and the second device is an in-network computing device.

[0085] As mentioned in the description related to Figure 3 above, before performing RDMA-based distributed computing, the terminal device and the computing device in the network can negotiate in advance who will calculate which subtasks respectively. That is, before the first device and the second device perform RDMA-based distributed computing, the first device and the second device can negotiate in advance who will calculate which subtasks respectively. Thus, the first device and the second device can exchange RDMA data based on the negotiated subtasks for which they are responsible.

[0086] During RDMA-based distributed computing between a first device and a second device, the first device can, at any time, initiate a request to the network device to adjust the size of a send window based on the interaction of RDMA data between the first and second devices during the computing process. That is, the first device can send the aforementioned first message to the network device. Correspondingly, the network device can receive the request from the first device to adjust the size of the send window. That is, the network device receives the first message from the first device.

[0087] Optionally, the first message includes a request value for one or more of the following information: a window increase intent (II) value, a queue length of RDMA data that the sending window can carry, and a transmission byte or link bandwidth capacity of RDMA data that the sending window can carry.

[0088] Among them, the request value of the window increase intention value can be a positive number, a negative number, or zero. When the request value of the window increase intention value is a positive number, it can indicate that the first device requests to increase the window size of the sending window; when the request value of the window increase intention value is a negative number, it can indicate that the first device requests to reduce the window size of the sending window; when the request value of the window increase intention value is zero, it can indicate that the first device requests to keep the window size of the sending window unchanged. This application does not limit this. Since the first device and the network device know the current sending window size, when the first message includes the request value of the window increase intention value, the network device can calculate the sending window size that the first device wants to adjust.

[0089] It is understood that the queue length of the RDMA data that the send window can carry, the number of bytes of RDMA data that the send window can carry, and the link bandwidth capacity all have corresponding conversion relationships with the window size of the send window. That is, the window size of the send window can be calculated based on the queue length of the RDMA data that the send window can carry, the window size of the send window can also be calculated based on the number of bytes of RDMA data that the send window can carry, and the window size of the send window can also be calculated based on the link bandwidth capacity. Therefore, when the first message includes the requested value of one or more of the queue length of the RDMA data that the send window can carry, the number of bytes of RDMA data that the send window can carry, or the link bandwidth capacity, the network device can also calculate the send window size that the first device desires to adjust. That is, the aforementioned information is equivalent when used to determine the send window.

[0090] It can also be understood that there is a corresponding conversion relationship between the queue length of the RDMA data that the send window can carry and the transmission bytes of the RDMA data that the send window can carry. That is, when the queue length of the RDMA data that the send window can carry is known, the transmission bytes of the RDMA data that the send window can carry can be calculated; and when the transmission bytes of the RDMA data that the send window can carry is known, the queue length of the RDMA data that the send window can carry can also be calculated.

[0091] As an example and not a limitation, before performing RDMA-based distributed computing, the terminal device can initiate a computing offload task to request that a certain in-network computing device and the terminal device perform a distributed computing task. After the terminal device initiates the computing offload task, the terminal device can select an in-network computing device with the assistance of the network device to perform distributed computing with the terminal device, and then the terminal device can establish a data transmission channel with the selected in-network computing device through the network device. Furthermore, the terminal device and the in-network computing device can negotiate that the distributed computing task adopts the RDMA interaction mechanism, and negotiate who will calculate which subtasks respectively. In addition, at the application level, a local memory conversion relationship can be established between the terminal device and the in-network computing device to facilitate mapping memory segments to the remote address space. Thus, the terminal device and the in-network computing device can start to perform RDMA-based distributed computing.

[0092] During the RDMA-based distributed computing process between the terminal device and the computing device in the network, the network device can continuously perceive information such as the air interface status, air interface bandwidth resources and cache status. For the sake of ease of description, the air interface status, air interface bandwidth resources and cache status and other information are collectively referred to as network load information in the following text. Continuous perception can be understood as periodic perception. As an example and not a limitation, the network device can periodically send a perception request to the terminal device. The perception request is used for the network device to obtain the above-mentioned network load information. Accordingly, when the terminal device receives the perception request from the network device, it can report the network load information to the network device. This application does not impose any limitations on this.

[0093] Among them, the air interface status may include the air interface status of the uplink air interface with the terminal device as the sender and the air interface status of the downlink air interface with the terminal device as the receiver, the air interface bandwidth resources may include the remaining bandwidth resources of the uplink air interface with the terminal device as the sender and the remaining bandwidth resources of the downlink air interface with the terminal device as the receiver, the cache status may include the length of all uplink cache queues that share the uplink air interface resources with the terminal device as the sender, and the cache status may include the length of all downlink cache queues that share the downlink air interface resources with the terminal device as the receiver.

[0094] Optionally, when the first device is an in-network computing device and the second device is a terminal device, the first message may be a GTP-U message, or the first message may be an SRv6 message.

[0095] It is understandable that the message formats of GTP-U messages and SRv6 messages both meet the protocols below the network layer.

[0096] Exemplarily, when the first device is an in-network computing device and the second device is a terminal device, the in-network computing device can request to adjust the window size of the sending window by sending a first message carrying a request value of one or more of the above information through a downlink tunnel with the network device.

[0097] More specifically, the in-network computing device can determine the request value of one or more of the above information based on the pre-negotiated subtask and the quality of service (QoS) flow or session where the RDMA data to be sent is located, the size of the total amount of data to be sent, and the delay requirements for transmitting these data. Furthermore, the in-network computing device can carry the request value of one or more of the above information through the message header of the tunnel message between the in-network computing device and the network device, and then send the encapsulated data to the network device. Among them, the tunnel may include but is not limited to GTP-U in the current 5G mobile communication system or SRv6 that may be used in the data plane of the future 6G mobile communication system.

[0098] Optionally, when the first device is a terminal device and the second device is an in-network computing device, the first message may be a Uu L2 message, or the first message may be an L2 control PDU message.

[0099] It can be understood that the message formats of the Uu L2 message and the L2 control PDU message both meet the protocols below the network layer.

[0100] Exemplarily, when the first device is a terminal device and the second device is an in-network computing device, the terminal device can request to adjust the window size of the sending window by sending a first message carrying a request value of one or more of the above information through an uplink tunnel with the network device.

[0101] More specifically, the terminal device can determine the request value of the above one or more information based on the pre-negotiated subtask and the QoS flow or session where the RDMA data to be sent is located, the size of the total data volume to be sent, and the delay requirement for transmitting this data. Furthermore, the layers above the access layer of the terminal device (which may include but are not limited to the application layer, transport layer or network layer, etc.) can inform the access layer of the request value of the above one or more information of the sending window corresponding to the data packet while delivering the data packet to the access layer of the terminal device. The access layer of the terminal device carries the request value of the above one or more information through the Uu L2 message header or L2 control PDU of the data packet to the network device. It can be understood that the channel or protocol for the terminal device to transmit the request value of the above one or more information to the network device is not limited to L2, but can also be L1, or even a new protocol layer below the network layer that may be introduced in the future 6G mobile communication system.

[0102] In step 420, the network device sends a second message to the first device, where the second message is used to determine the window size data. Correspondingly, the first device receives the second message from the network device.

[0103] The message format of the second message satisfies the protocols below the network layer. The message format of the second message satisfies the protocols below the network layer. This can be understood as follows: the second message can be encapsulated at the protocol layer below the network layer, or in other words, can be encapsulated based on the message encapsulation format below the network layer without being encapsulated at the network layer or at protocol layers above it, and thus without further encapsulating the message header corresponding to the network layer or at protocol layers above it.

[0104] For example, in a network device deployed with a CU, a DU, and a RU, the specific implementation of step 420 may be: the CU sends the generated second message to the first device through the DU and the RU; in the ORAN, the specific implementation of step 420 may be: the O-CU sends the generated second message to the first device through the O-DU and the O-RU.

[0105] Optionally, the second message includes a credit value for one or more of the following information: a window increase intention value, a queue length of RDMA data that the sending window can carry, and a transmission byte or link bandwidth capacity of RDMA data that the sending window can carry.

[0106] Among them, the credit value of the window increase intention value can be a positive number, a negative number, or zero. When the credit value of the window increase intention value is a positive number, it can indicate that the network device instructs the first device to increase the window size of the sending window; when the credit value of the window increase intention value is a negative number, it can indicate that the network device instructs the first device to reduce the window size of the sending window; when the credit value of the window increase intention value is zero, it can indicate that the network device instructs the first device to keep the window size of the sending window unchanged. This application does not limit this. Since the first device and the network device know the current sending window size, when the second message includes the credit value of the window increase intention value, the first device can calculate the sending window size after the network device instructs the first device to adjust it.

[0107] As described in step 410 above, the window size of the send window can be calculated based on the queue length of the RDMA data that the send window can carry, based on the number of RDMA data bytes that the send window can carry, and based on the link bandwidth capacity. Therefore, if the second message includes a credit value for one or more of the following: the queue length of the RDMA data that the send window can carry, the number of RDMA data bytes that the send window can carry, or the link bandwidth capacity, the first device can also calculate the send window size that the network device instructs the first device to adjust.

[0108] Optionally, before the network device sends the second message to the first device, the method 400 further includes: the network device generating the second message based on the request value in the first message and network load information perceived by the network device.

[0109] As mentioned in step 410 above, during the RDMA-based distributed computing process between the terminal device and the computing device within the network, the network device can continuously sense information such as the air interface status, air interface bandwidth resources, and cache status (i.e., network load information). For a detailed description, please refer to the relevant description of step 410 above and will not be repeated here for the sake of brevity.

[0110] In a possible implementation, the credit value is determined based on information carried in the first message and network load information perceived by the network device.

[0111] The information carried in the first message may include but is not limited to: a request value of one or more of the above information carried in the first message.

[0112] Exemplarily, when the first device is an in-network computing device and the second device is a terminal device, when the network device receives a first message from the in-network computing device, the network device can determine the corresponding credit value of the above one or more information based on the request value of the above one or more information carried in the first message, as well as the air interface status of the downlink air interface with the terminal device as the receiver, the remaining resources of the downlink air interface bandwidth with the terminal device as the receiver, the length of all downlink cache queues that share the downlink air interface resources with the terminal device as the receiver, and other network load information.

[0113] In the case where the first device is a terminal device and the second device is an in-network computing device, when the network device receives a first message from the terminal device, the network device can determine the corresponding credit value of the one or more pieces of information based on the request value of the one or more pieces of information carried in the first message, as well as network load information such as the air interface status of the uplink air interface with the terminal device as the sender, the remaining resources of the uplink air interface bandwidth with the terminal device as the sender, and the length of all uplink cache queues that share the uplink air interface resources with the terminal device as the sender.

[0114] It can be understood that, for example, in the case that the request value of the window increase intention value included in the first message is +512 bytes, if the network device believes, based on the perceived network load information, that the current network load situation can meet the requirement of the request value of the window increase intention value of +512 bytes, then the second message replied by the network device to the first device can carry a credit value of the window increase intention value of +512 bytes; if the network device believes, based on the perceived network load information, that the current network load situation cannot meet the requirement of the request value of the window increase intention value of +512 bytes, and can only meet the requirement of the request value of the window increase intention value of +256 bytes at most, then the second message replied by the network device to the first device can carry a credit value of the window increase intention value of +256 bytes.

[0115] Without loss of generality, the corresponding credit value in response to the request values ​​such as the queue length of the RDMA data that the send window can carry, the transmission bytes of the RDMA data that the send window can carry, and the link bandwidth capacity is similar to the process of the network device responding to the request value of the window increase intention value. For the sake of brevity, examples are not given here one by one.

[0116] It is understood that, if the first message includes multiple pieces of information including the intended window increase value, the queue length of RDMA data that the send window can carry, the number of transmitted bytes of RDMA data that the send window can carry, or the link bandwidth capacity, the second message also includes corresponding credit values ​​for the multiple pieces of information included in the first message. For example, if the first message includes the intended window increase value and the requested queue length of RDMA data that the send window can carry, the second message includes the intended window increase value and the credit value for the queue length of RDMA data that the send window can carry.

[0117] Optionally, when the first device is an in-network computing device and the second device is a terminal device, the second message may be a GTP-U message, or the second message may be an SRv6 message.

[0118] It is understandable that the message formats of GTP-U messages and SRv6 messages both meet the protocols below the network layer.

[0119] Exemplarily, when the first device is an in-network computing device and the second device is a terminal device, after the network device determines a credit value corresponding to a request value of one or more information items carried in the first message, the network device may find an uplink message of a QoS flow corresponding to the first message, and carry a credit value corresponding to the request value of the one or more information items carried in the first message in a tunnel message header of the uplink message; or generate an uplink pseudo message, and carry a credit value corresponding to the request value of the one or more information items carried in the first message in a tunnel message header of the uplink pseudo message. Furthermore, the network device may send the uplink message or the uplink pseudo message to the in-network computing device through a tunnel.

[0120] It can be understood that the header of the uplink pseudo message can be the same as the header of the uplink message. The uplink pseudo message is different from the uplink message in that the data part in the uplink pseudo message can be empty (null), or the data part can be pseudo data (which can be understood as not real data). This application does not impose any restrictions on this.

[0121] Optionally, when the first device is a terminal device and the second device is an in-network computing device, the second message may be a Uu L2 message, or the second message may be an L2 control PDU message.

[0122] It can be understood that the message formats of the Uu L2 message and the L2 control PDU message both meet the protocols below the network layer.

[0123] Exemplarily, when the first device is a terminal device and the second device is an in-network computing device, after the network device determines the credit value corresponding to the request value of one or more information carried in the first message, the network device can carry the credit value corresponding to the request value of one or more information carried in the first message through the Uu L2 message header or L2 control PDU of the QoS flow downlink message corresponding to the terminal device, and feedback the credit value corresponding to the request value of one or more information carried in the first message to the terminal device. It can be understood that the channel or protocol for the network device to feedback the credit value to the terminal device is not limited to L2, but can also be L1, or even a new protocol layer below the network layer that may be introduced in the future 6G mobile communication system.

[0124] In addition, as an example but not a limitation, after the access layer of the terminal device receives the credit value from the network device, the access layer of the terminal device can submit the credit value to the layer above the access layer of the terminal device, and at the same time indicate the QoS flow or PDU session related information corresponding to the credit value to the layer above the access layer of the terminal device through data packet piggybacking or separate indication.

[0125] In step 430, the first device adjusts the window size of the sending window based on the second message.

[0126] After the first device receives the second message from the network device, the first device can parse the second message to obtain a credit value corresponding to the request value of one or more information carried in the first message, and then adjust the window size of the sending window based on the one or more credit values.

[0127] The parsing of the credit value carried in the second message may be implemented by a module in the network card deployed on the first device, or by a module or operating system deployed on the first device, which is not limited in this application.

[0128] It is understood that when the second message includes multiple credit values ​​for information, the first device can, based on the wooden barrel principle (or the shortest board theory), use the smallest window size among one or more window sizes determined based on these multiple credit values ​​as the target window size, and adjust the window size of the send window based on this target window size. For example, if the second message includes a window increase intention value and a credit value for the queue length of RDMA data that the send window can carry, where the window size determined based on the credit value of the window increase intention value is 2048 bytes and the window size determined based on the credit value of the queue length of RDMA data that the send window can carry is 1024 bytes, then the first device can use 1024 bytes as the target window size, that is, the first device can adjust the window size of the send window to 1024 bytes instead of 2048 bytes.

[0129] In step 440, the first device sends RDMA data to the second device through the network device based on the adjusted sending window. Correspondingly, the second device receives the RDMA data from the first device through the network device.

[0130] It can be understood that after determining the target window size based on the credit value in the second message and adjusting the window size of the sending window, the first device can send RDMA data to the second device through the network device as a bridge based on the adjusted sending window. Correspondingly, the second device can receive RDMA data from the first device through the network device.

[0131] It should be noted that the distributed computing involved in this application may include but is not limited to distributed AI computing, distributed rendering, etc., and this application does not limit this.

[0132] Based on the above technical solution, the RDMA architecture is adapted to mobile communication networks, with transmission performance bottleneck nodes (i.e., network devices) responsible for congestion control and send window adjustment. Furthermore, the message formats of the messages (first and second messages) used to adjust the send window size comply with protocols below the network layer, simplifying the operational flow and signaling parsing process, allowing the network device to adjust the send window size based on the message credit. This eliminates the need for network devices to perform DPI on these messages, thereby reducing their processing load and improving network performance. This, in turn, provides low-latency, high-throughput communication services for data interaction in RDMA-based distributed computing.

[0133] In addition, by using tunnels and protocols between network devices and computing devices or terminal devices within the network to request and grant credit for window adjustment, not only is the uplink and downlink signaling consistent with the data transmission channel, the process and protocol for RDMA window adjustment in the mobile communication network are simplified, so that network devices do not need to parse RDMA protocol data at the network layer and above. Moreover, network devices that serve as a data transmission bridge between terminal devices and computing nodes within the network can also ensure the privacy and security of RDMA protocol data at the network layer and above without having to parse RDMA protocol data at the network layer and above.

[0134] FIG5 is a schematic block diagram of a communication device provided in an embodiment of the present application.

[0135] As shown in Figure 5, the communication device 500 may include: a processing module 510 and a transceiver module 520. The communication device 500 may be used to execute the execution steps of the first device or the network device in the RDMA method provided in the embodiment of the present application.

[0136] Exemplarily, when the communication device 500 is used to execute the steps executed by the first device in method 400, the transceiver module 520 can be used to send a first message to a network device, where the first message is used to request adjustment of the window size of the sending window, and the network device is connected between the first device and the second device, and the second device is a device that performs RDMA-based distributed computing with the first device; a second message is received from the network device, where the second message includes data for determining the window size, and the message format of the first message and the second message meets the protocol below the network layer; the processing module 510 can be used to adjust the window size of the sending window based on the second message; the transceiver module 520 can also be used to send RDMA data to the second device through the network device based on the adjusted sending window.

[0137] Optionally, the first device is an in-network computing device, and the second device is a terminal device.

[0138] Optionally, the first message and the second message are GTP-U messages; or, the first message and the second message are SRv6-based messages.

[0139] Optionally, the first device is a terminal device, and the second device is an in-network computing device.

[0140] Optionally, the first message and the second message are Uu L2 messages; or, the first message and the second message are L2 control PDU messages.

[0141] Optionally, the first message includes a request value for one or more of the following information: a window increase intention value, a queue length of RDMA data that the sending window can carry, and a transmission byte or link bandwidth capacity of RDMA data that the sending window can carry.

[0142] Optionally, the second message includes a credit value for one or more of the following information: a window increase intention value, a queue length of RDMA data that the sending window can carry, and a transmission byte or link bandwidth capacity of RDMA data that the sending window can carry.

[0143] Exemplarily, when the communication device 500 is used to execute the steps performed by the network device in method 400, the transceiver module 520 can be used to receive a first message from a first device, the first message being used to request adjustment of the window size of the sending window, the network device being connected between the first device and a second device, the second device being a device that performs RDMA distributed computing with the first device; and send a second message to the first device, the second message including data for determining the window size, the message formats of the first message and the second message satisfy the protocol below the network layer.

[0144] Optionally, the first device is an in-network computing device, and the second device is a terminal device.

[0145] Optionally, the first message and the second message are GTP-U messages; or, the first message and the second message are SRv6-based messages.

[0146] Optionally, the first device is a terminal device, and the second device is an in-network computing device.

[0147] Optionally, the first message and the second message are Uu L2 messages; or, the first message and the second message are L2 control PDU messages.

[0148] Optionally, the first message includes a request value for one or more of the following information: a window increase intention value, a queue length of RDMA data that the sending window can carry, and a transmission byte or link bandwidth capacity of RDMA data that the sending window can carry.

[0149] Optionally, the second message includes a credit value for one or more of the following information: a window increase intention value, a queue length of RDMA data that the sending window can carry, and a transmission byte or link bandwidth capacity of RDMA data that the sending window can carry.

[0150] Optionally, the credit value is determined based on information carried in the first message and network load information perceived by the network device.

[0151] FIG6 is another schematic block diagram of a communication device provided in an embodiment of the present application.

[0152] The communication device 600 can be used to implement the functions of the first device or network device in the above method 400. The communication device 600 can be a chip system. In the embodiment of the present application, the chip system can be composed of a chip, or can include a chip and other discrete devices.

[0153] As shown in FIG6 , the communication apparatus 600 may include at least one processor 610 for implementing the functions of the first device or network device in the method provided in the embodiment of the present application.

[0154] For example, when the communication device 600 is used to implement the function of the first device in the method 400 provided in an embodiment of the present application, the processor 610 may be configured to send a first message to a network device, the first message being used to request adjustment of the window size of a send window, the network device being connected between the first device and a second device, the second device being a device performing RDMA-based distributed computing with the first device; receive a second message from the network device, the second message including data for determining a window size, the message formats of the first message and the second message satisfying protocols below the network layer; adjust the window size of the send window based on the second message; and send RDMA data to the second device via the network device based on the adjusted send window. For details, please refer to the detailed description in the method example, which will not be repeated here.

[0155] For example, when the communication device 600 is used to implement the functions of the network device in the method 400 provided in an embodiment of the present application, the processor 610 may be configured to receive a first message from a first device, the first message being used to request adjustment of the window size of a send window, the network device being connected between the first device and a second device, the second device being a device performing RDMA distributed computing with the first device; and send a second message to the first device, the second message including data for determining the window size, the message formats of the first message and the second message satisfying protocols below the network layer. For details, please refer to the detailed description in the method example and will not be repeated here.

[0156] The communication device 600 may also include at least one memory 620 for storing program instructions and / or data. The memory 620 is coupled to the processor 610. The coupling in the embodiments of the present application is an indirect coupling or communication connection between devices, units, or modules, which may be electrical, mechanical, or other forms, and is used for information exchange between the devices, units, or modules. The processor 610 may operate in conjunction with the memory 620. The processor 610 may execute program instructions stored in the memory 620. At least one of the at least one memory may be included in the processor.

[0157] The communication device 600 may also include a communication interface 630 for communicating with other devices via a transmission medium, so that the communication device 600 can communicate with other devices. For example, when the communication device 600 is used to implement the function of the network device in the method provided in an embodiment of the present application, the other device may be a first device; when the communication device 600 is used to implement the function of the first device in the method provided in an embodiment of the present application, the other device may be a network device. The communication interface 630 may be, for example, a transceiver, an interface, a bus, a circuit, or a device capable of implementing transceiver functions. The processor 610 may use the communication interface 630 to send and receive data and / or information, and to implement the method performed by the network device or the first device described in the corresponding embodiment of Figure 4.

[0158] The specific connection medium between the processor 610, memory 620, and communication interface 630 is not limited in the embodiments of the present application. In Figure 6, the processor 610, memory 620, and communication interface 630 are connected via a bus 640. Bus 640 is represented by a bold line in Figure 6, and the connection methods between other components are only for schematic illustration and are not limiting. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one bold line is used in Figure 6, but this does not mean that there is only one bus or one type of bus.

[0159] FIG7 is a schematic diagram of the structure of the terminal device provided in an embodiment of the present application.

[0160] The terminal device 700 has the functions of the terminal device shown in FIG4 , and can be applied to the communication system 1000 shown in FIG1 . As shown in FIG7 , the terminal device 700 includes a processor 701 and a transceiver 702 .

[0161] Optionally, the terminal device 700 further includes a memory 703. The processor 701, the transceiver 702, and the memory 703 can communicate with each other through an internal connection path to transmit control and / or data signals. The memory 703 is used to store a computer program, and the processor 701 is used to call and execute the computer program from the memory 703 to control the transceiver 702 to send and receive signals.

[0162] Optionally, the terminal device 700 may further include an antenna 704 for transmitting the uplink data or uplink control signaling output by the transceiver 702 via a wireless signal.

[0163] Optionally, the terminal device 700 further includes a Wi-Fi module 711 for accessing a wireless network.

[0164] The processor 701 and the memory 703 may be combined into a processing device, and the processor 701 is configured to execute program code stored in the memory 703 to implement the aforementioned functions. In a specific implementation, the memory 703 may also be integrated into the processor 701 or independent of the processor 701. The processor 701 may correspond to the processing module 510 in FIG. 5 or the processor 610 in FIG. 6 .

[0165] The transceiver 702 may correspond to the transceiver module 520 in FIG. 5 or the communication interface 630 in FIG. The transceiver 702 may include a receiver (or receiver, receiving circuit) and a transmitter (or transmitter, transmitting circuit). The receiver is used to receive signals, and the transmitter is used to transmit signals.

[0166] Optionally, the terminal device 700 may further include a power supply 705 for providing power to various devices or circuits in the terminal device 700 .

[0167] In addition, in order to make the functions of the terminal device more complete, the terminal device 700 may also include one or more of an input unit 706, a display unit 707, an audio circuit 708, a camera 709 and a sensor 710, and the audio circuit may also include a speaker 708a, a microphone 708b, etc.

[0168] It should be understood that the terminal device 700 shown in FIG7 is capable of implementing the various processes involved in the terminal device in the method embodiment shown in FIG4 . The operations and / or functions of the various modules in the terminal device 700 are respectively for implementing the corresponding processes in the above method embodiment. For details, please refer to the description of the above method embodiment. To avoid repetition, detailed description is omitted here.

[0169] When the terminal device 700 is used to execute the operation process of the terminal device in the above method embodiments, the processor 701 can be used to execute the actions implemented within the terminal device as described in the above method embodiments, and the transceiver 702 can be used to execute the actions of the terminal device sending to or receiving from the network device as described in the above method embodiments. For details, please refer to the description of the above method embodiments and will not be repeated here.

[0170] Figure 8 is a schematic diagram of the structure of a network device provided in an embodiment of the present application, for example, a schematic diagram of the structure of a base station. The base station 800 can be applied to the system shown in Figure 1 to perform the functions of the network device in the method embodiment shown in Figure 4. As shown in Figure 8, the base station 800 may include one or more of the following: one or more (DU+RU) 810, one or more CU 820. The CU 820 can communicate with the next generation core network (NG core). The DU may include at least one antenna 811, at least one radio frequency unit 812, at least one processor 813 and at least one memory 814.

[0171] The DU is primarily used for transmitting and receiving RF signals, converting RF signals into baseband signals, and performing some baseband processing. The CU 820 may include at least one processor 822 and at least one memory 821. The CU 820 and the DU may communicate via interfaces. The control plane (CP) interface may be an Fs-C interface, such as F1-C, and the user plane (UP) interface may be an Fs-U interface, such as F1-U. The DU and RU may collaborate to implement physical (PHY) layer functions. A DU may be connected to one or more RUs. The functions of the DU and RU may be configured in various ways depending on the design. For example, the DU may be configured to implement baseband functions, while the RU may be configured to implement mid-RF functions. For another example, the DU may be configured to implement high-layer functions in the PHY layer, while the RU may be configured to implement low-layer and RF functions in the PHY layer. High-layer functions in the PHY layer may include a portion of the PHY layer functions that are closer to the MAC layer, while low-layer functions in the PHY layer may include another portion of the PHY layer functions that are closer to the mid-RF side.

[0172] The CU 820 is primarily used for baseband processing and base station control. The DU and CU 820 may be physically located together or physically separated, i.e., a distributed base station. The CU 820 is the control center of the base station and may correspond to the processing module 510 in FIG. 5 , the processor 610 in FIG. 6 , or the processor 701 in FIG. 7 , and may also be referred to as a processing unit. The CU 820 is primarily used for performing baseband processing functions. For example, the CU 820 may be used to control the base station to execute the operational procedures for access network devices in the above-described method embodiments.

[0173] Specifically, baseband processing on the CU and DU can be divided according to the protocol layers of the wireless network. For example, the functions of the packet data convergence protocol (PDCP) layer and above are set in the CU, while the functions of the protocol layers below PDCP, such as the RLC layer and the MAC layer, are set in the DU. For another example, the CU implements the functions of the RRC layer and the PDCP layer, while the DU implements the functions of the RLC layer, the MAC layer, and the PHY layer.

[0174] In addition, optionally, the base station 800 may include one or more radio frequency units (RUs), one or more DUs, and one or more CUs. The DU may include at least one processor 813 and at least one memory 814, the RU may include at least one antenna 811 and at least one radio frequency unit 812, and the CU may include at least one processor 822 and at least one memory 821.

[0175] In one example, the CU 820 may be composed of one or more single boards, and the multiple single boards may jointly support a wireless access network with a single access indication (such as a 5G network), or may respectively support wireless access networks with different access standards (such as an LTE network, a 5G network, or other networks). The memory 821 and the processor 822 may serve one or more single boards. That is, a memory and a processor may be separately set on each single board. It is also possible that multiple single boards share the same memory and processor. In addition, necessary circuits may be provided on each single board. The DU may be composed of one or more single boards, and the multiple single boards may jointly support a wireless access network with a single access indication (such as a 5G network), or may respectively support wireless access networks with different access standards (such as an LTE network, a 5G network, or other networks). The memory 814 and the processor 813 may serve one or more single boards. That is, a memory and a processor may be separately set on each single board. It is also possible that multiple single boards share the same memory and processor. In addition, necessary circuits may be provided on each single board.

[0176] It should be understood that base station 800 shown in FIG8 is capable of implementing the various processes involving network devices in the method embodiment shown in FIG4 . The operations and / or functions of the various modules in base station 800 are respectively for implementing the corresponding processes in the aforementioned method embodiment. For details, please refer to the description of the aforementioned method embodiment; to avoid repetition, detailed descriptions are omitted here.

[0177] It should be understood that the base station 800 shown in FIG8 is only one possible architecture of a network device and does not constitute any limitation to this application. The method provided in this application is applicable to network devices of other architectures. For example, network devices including CU, DU, and AAU. This application does not limit the specific architecture of the network device.

[0178] It should be understood that FIG8 is merely an example and not a limitation, and the network device may not rely on the structure shown in FIG8 . For example, the network device may include an AAU, a CU, and / or a DU, or a BBU and an adaptive radio unit (ARU). This application is not limited to this.

[0179] The CU and / or DU described above can be used to perform the actions implemented within the network device described in the previous method embodiments, while the AAU can be used to perform the actions described in the previous method embodiments in which the network device sends to or receives from the first device. For details, please refer to the description in the previous method embodiments and will not be repeated here.

[0180] The present application provides a communication system, which includes a network device and a first device. The network device is used to perform the function of the network device in the method embodiment shown in Figure 4, and the first device is used to perform the function of the first device in the method embodiment shown in Figure 4.

[0181] The present application also provides a chip system, which includes at least one processor for implementing the functions involved in the method executed by the network device or the first device in the embodiment shown in Figure 4 above, for example, receiving or processing the data and / or information involved in the above method.

[0182] In one possible design, the chip system further includes a memory, which is used to store program instructions and data, and the memory is located inside or outside the processor.

[0183] The chip system can be composed of chips, or can include chips and other discrete devices.

[0184] An embodiment of the present application further provides a readable storage medium having a program stored thereon. When the program is run, the method executed by the first device in the embodiment shown in FIG. 4 is executed, or the method executed by the network device is executed.

[0185] An embodiment of the present application also provides a program product, including a program. When the program is run, the method executed by the first device in the embodiment shown in Figure 4 is executed, or the method executed by the network device is executed.

[0186] It should be understood that the processor in the embodiments of the present application can be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above-mentioned method embodiment can be completed by hardware integrated logic circuits in the processor or by software instructions. The above-mentioned processor can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The various methods, steps, and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of the present application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and, in conjunction with its hardware, completes the steps of the above-mentioned method.

[0187] It should also be understood that the memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DR RAM). It should be noted that the memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0188] The terms "unit", "module", etc. used in this specification may be used to represent an entity related to a device or apparatus, hardware, firmware, a combination of hardware and software, software, or software in execution.

[0189] Those skilled in the art will appreciate that the various illustrative logical blocks and steps described in conjunction with the embodiments disclosed herein can be implemented using electronic hardware, or a combination of software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may 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. In the several embodiments provided in this application, it should be understood that the disclosed devices, equipment, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the module division is only a logical function division. In actual implementation, there may be other division methods, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not implemented. In addition, the coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or modules, and can be electrical, mechanical, or other forms.

[0190] The modules described as separate components may or may not be physically separate, and the components shown as modules may or may not be physical modules, that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules may be selected to achieve the purpose of the present embodiment according to actual needs.

[0191] In addition, the functional modules in the various embodiments of the present application may be integrated into one processing module, or each module may exist physically separately, or two or more units may be integrated into one module.

[0192] In the above embodiments, the functions of each functional module can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When software is used for implementation, it can be implemented in whole or in part in the form of a program product. The program product includes one or more instructions (programs). When the program instructions (program) are loaded and executed on a device or apparatus, the process or function described in the embodiment of the present application is generated in whole or in part. The instructions can be stored in a readable storage medium or transmitted from one readable storage medium to another readable storage medium. For example, the instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The readable storage medium can be any available medium that can be accessed by a device or apparatus or a data storage device such as a server or data center that includes one or more available media integrations. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a digital versatile disc (DVD)), or a semiconductor medium (e.g., a solid state drive (SSD)).

[0193] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a device or apparatus (which can be a personal computer, server, or network equipment, etc.) to execute all or part of the steps of the methods described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as USB flash drives, mobile hard drives, ROM, RAM, magnetic disks, or optical disks.

[0194] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

Claims

1. A remote direct memory access method, characterized in that, Applied to a first device, the method includes: Sending a first message to a network device, the first message being used to request adjustment of the window size of a transmission window, the network device being connected between the first device and a second device, the second device being a device for performing distributed computing with the first device based on Remote Direct Memory Access (RDMA); Receiving a second message from the network device, the second message including data for determining the window size, and the message formats of the first message and the second message conforming to a protocol below the network layer; Adjusting the window size of the transmission window based on the second message; Sending RDMA data to the second device through the network device based on the adjusted transmission window.

2. The method according to claim 1, characterized in that, The first device is an in-network computing device, and the second device is a terminal device.

3. The method according to claim 2, wherein The first message and the second message are User Plane General Packet Radio Service (GPRS) Tunneling Protocol (GTP-U) messages; or, The first message and the second message are Segment Routing version 6 (SRv6) messages of the forwarding plane based on Internet Protocol version 6.

4. The method according to claim 1, wherein The first device is a terminal device, and the second device is an in-network computing device.

5. The method according to claim 4, wherein The first message and the second message are Layer 2 Uu (L2) messages of the interface between a user equipment and a general terrestrial radio access network element; or, The first message and the second message are Layer 2 control protocol data unit (L2 control PDU) messages.

6. The method according to any one of claims 1 to 5, characterized in that, The first message includes a request value for one or more of the following information: Window increment intention value, queue length of RDMA data that the transmission window can carry, transmission bytes of RDMA data that the transmission window can carry, or link bandwidth capacity.

7. The method according to any one of claims 1 to 6, characterized in that The second message includes a credit value for one or more of the following information: Window increment intention value, queue length of RDMA data that the transmission window can carry, transmission bytes of RDMA data that the transmission window can carry, or link bandwidth capacity.

8. A remote direct memory access method, characterized in that, Applied to a network device, the method includes: Receiving a first message from a first device, the first message being used to request adjustment of the window size of a transmission window, the network device being connected between the first device and a second device, the second device being a device for performing RDMA distributed computing with the first device; Sending a second message to the first device, the second message including data for determining the window size, and the message formats of the first message and the second message conforming to a protocol below the network layer.

9. The method according to claim 8, wherein The first device is an in-network computing device, and the second device is a terminal device.

10. The method according to claim 9, wherein The first message and the second message are GTP-U messages; or, The first message and the second message are SRv6 messages of the forwarding plane based on Internet Protocol version 6.

11. The method according to claim 8, wherein The first device is a terminal device, and the second device is an in-network computing device.

12. The method according to claim 11, characterized in that, The first message and the second message are L2 Uu L2 messages of the interface between a user equipment and a radio transmission network element; or, The first message and the second message are in Layer 2 control protocol data unit (L2 control PDU) messages.

13. The method according to any one of claims 8 to 12, characterized in that, The first message includes a request value for one or more of the following information: Window increment intention value II, queue length of RDMA data that the transmit window can carry, transmission bytes of RDMA data that the transmit window can carry, or link bandwidth capacity.

14. The method according to any one of claims 8 to 13, characterized in that, The second message includes a credit value for one or more of the following information: Window increment intention value, queue length of RDMA data that the transmit window can carry, transmission bytes of RDMA data that the transmit window can carry, or link bandwidth capacity.

15. The method according to claim 14, characterized in that The credit value is determined based on the information carried in the first message and the network load information perceived by the network device.

16. A communication device, characterized in that, The communication device includes a module for executing the method according to any one of claims 1 to 7, or the communication device includes a module for executing the method according to any one of claims 8 to 15.

17. A communication device, characterized in that, Comprising a processor and a memory, wherein, The memory is used for storing a program; The processor is used for calling the program to cause the communication device to execute the method according to any one of claims 1 to 7, or to cause the communication device to execute the method according to any one of claims 8 to 15.

18. A communication system, characterized in that, Comprising a first device and a network device, wherein, The first device is used for executing the method according to any one of claims 1 to 7; The network device is used for executing the method according to any one of claims 8 to 15.

19. A readable storage medium having a program stored thereon, characterized in that, When the program is executed, the method according to any one of claims 1 to 7 is caused to be executed, or the method according to any one of claims 8 to 15 is caused to be executed.

20. A program product, characterized in that, Comprising a program, when the program is run, the method according to any one of claims 1 to 7 is caused to be executed, or the method according to any one of claims 8 to 15 is caused to be executed.

Citation Information

Patent Citations

  • Congestion control method, device, equipment and storage medium

    CN110445722A

  • Data transmission method and device based on RDMA

    CN110460533A

  • Network congestion control method and device

    CN113438181A

  • Network traffic congestion control method and related device

    CN116527593A