Multicast transmission method, node, storage medium and product
By establishing a queue pair based on the remote direct data access protocol under the RDMA protocol, multicast transmission to the nodes in the first group is realized, which solves the problem of the mismatch between the RC mode of RDMA and the one-to-many traffic mode, and improves the efficiency Application efficiency of network layer multicast capabilities.
Patent Information
- Application Number
- CN202411426841.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-12
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2044-10-12
AI Technical Summary
In the prior art, the RC mode of RDMA is a one-to-one communication mode that is oriented towards connections, which does not match the one-to-many traffic mode, resulting in the multicast capability of the IP network layer being unable to be directly applied to most applications.
By establishing a queue pairs based on the remote direct data access protocol between the first node and the second node, the nodes in the first group are transmitted to the first group. Specific steps include the first node through the second node and the target queue to send messages to the first group. The second node receives the message sent by the first node and forwards it to the node in the first group.
It supports one-to-many multicast transmission under the RDMA protocol, solves the problem of mismatch between RDMA's RC mode and one-to-many traffic mode, and improves the application efficiency of network layer multicast capabilities.
Smart Images

Figure CN119363662A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to but is not limited to the field of communications, and in particular to a multicast transmission method, a first node, a second node, a node in a first group, a computer-readable storage medium, and a computer program product. Background Art
[0002] At present, services such as East-West Computing, nationwide integrated computing power network, data express, distributed artificial intelligence (AI) training dual connectivity (DC) interconnection require high-throughput network transmission. The kernel bypass and DMA characteristics of remote direct memory access (RDMA) can greatly reduce the central processing unit (CPU) overhead of the sending and receiving ends. By using the "one-sided" operation of RDMA (registering the receive buffer to the receiving network card in advance), massive data transmission can be achieved with almost no perception of the receiving CPU.
[0003] Most applications, such as multi-copy distributed storage, large-scale high-performance computing (HPC) clusters, and distributed AI training, present a one-to-many traffic pattern. In addition, most of the above applications use RDMA as a high-performance interconnection protocol. RDMA's reliable connection (RC) mode is the most widely used because it supports all RDMA protocol stack functions.
[0004] However, the RC mode of RDMA is a connection-oriented one-to-one communication mode, which does not match the one-to-many traffic mode presented by the above applications. As a result, the multicast capability of the Internet Protocol (IP) network layer of the related technology cannot be directly applied to most applications. Summary of the invention
[0005] The embodiments of the present application disclose a multicast transmission method, a first node, a second node, a node in a first group, a computer-readable storage medium, and a computer program product, which solve the problem that the multicast capability of the IP network layer of the related technology cannot be directly applied to most applications.
[0006] In a first aspect, the present application provides a multicast transmission method, which is applied to a first node and includes:
[0007] Sending a first message to the first group via the second node and the target queue pair;
[0008] Among them, the first node and each node in the first group constitute a multicast group; the target queue pair includes a first queue pair between the first node and the second node, and a second queue pair between the second node and the nodes in the first group; the target queue pair is a queue pair established based on the remote direct data access protocol for transmitting messages between the first node and the nodes in the first group.
[0009] In a second aspect, an embodiment of the present application provides a multicast transmission method, which is applied to a second node, including:
[0010] receiving, through the first queue pair, a first message sent by the first node;
[0011] The first queue pair includes a queue pair between the first node and the second node; the first queue pair is a queue pair established based on a remote direct data access protocol and used for transmitting messages between the first node and the second node.
[0012] In a third aspect, an embodiment of the present application provides a multicast transmission method, applied to a node in a first group, including:
[0013] receiving, through the second queue pair, a first message sent by the second node;
[0014] The second queue pair includes a queue pair between the second node and the nodes in the first group; the second queue pair is a queue pair established based on the remote direct data access protocol and used for transmitting messages between the first node and the nodes in the first group.
[0015] In a fourth aspect, an embodiment of the present application provides a first node, wherein the first node includes:
[0016] A first sending module, configured to send a first message to a first group via a second node and a target queue pair;
[0017] Among them, the first node and each node in the first group constitute a multicast group; the target queue pair includes a first queue pair between the first node and the second node, and a second queue pair between the second node and the nodes in the first group; the target queue pair is a queue pair established based on the remote direct data access protocol for transmitting messages between the first node and the nodes in the first group.
[0018] In a fifth aspect, an embodiment of the present application provides a second node, wherein the second node includes:
[0019] A second receiving module, configured to receive a first message sent by a first node through a first queue pair;
[0020] The first queue pair includes a queue pair between the first node and the second node; the first queue pair is a queue pair established based on a remote direct data access protocol and used for transmitting messages between the first node and the second node.
[0021] In a sixth aspect, an embodiment of the present application provides a node in a first group, where the nodes in the first group include:
[0022] A third receiving node, configured to receive a first message sent by the second node through a second queue pair;
[0023] The second queue pair includes a queue pair between the second node and the nodes in the first group; the second queue pair is a queue pair established based on the remote direct data access protocol and used for transmitting messages between the first node and the nodes in the first group.
[0024] In a seventh aspect, an embodiment of the present application provides a first node, wherein the first node includes:
[0025] A first memory, used to store executable instructions;
[0026] The first processor is configured to implement the above-mentioned multicast transmission method when executing the executable instructions stored in the first memory.
[0027] In an eighth aspect, an embodiment of the present application provides a second node, wherein the second node includes:
[0028] A second memory, used for storing executable instructions;
[0029] The second processor is used to implement the above-mentioned multicast transmission method when executing the executable instructions stored in the second memory.
[0030] In a ninth aspect, an embodiment of the present application provides a node in a first group, wherein the nodes in the first group include:
[0031] A third memory, used to store executable instructions;
[0032] The third processor is used to implement the above-mentioned multicast transmission method when executing the executable instructions stored in the third memory.
[0033] In the tenth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores one or more programs, and the one or more programs can be executed by one or more processors to implement the above-mentioned multicast transmission method.
[0034] In an eleventh aspect, an embodiment of the present application provides a computer program product, including a computer program, which implements the above-mentioned multicast transmission method when executed by a processor.
[0035] In a twelfth aspect, an embodiment of the present application provides a computer program, which, when executed on a computer, enables the computer to execute the above-mentioned multicast transmission method.
[0036] Through the above technical solution, this application is based on the existing protocol, that is, the remote direct data access protocol extension, which can be smoothly evolved and has low implementation difficulty. At the same time, through the network node (expansion card), that is, the second node, the network side and IP layer multicast consistent traffic distribution behavior is realized. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] Figure 1 A schematic diagram of a communication system according to an embodiment of the present application;
[0038] Figure 2 Schematic diagram of the multicast transmission method provided in the embodiment of the present application Figure 1 ;
[0039] Figure 3 Schematic diagram of the multicast transmission method provided in the embodiment of the present application Figure 2 ;
[0040] Figure 4 A schematic diagram of a network topology provided in an embodiment of the present application;
[0041] Figure 5 A schematic diagram of a format of an SRv6 message defined for an embodiment of the present application;
[0042] Figure 6 A schematic block diagram of a first node provided in an embodiment of the present application;
[0043] Figure 7 A schematic block diagram of a second node provided in an embodiment of the present application;
[0044] Figure 8 A schematic block diagram of a node in a first group provided in an embodiment of the present application;
[0045] Fig. 9 A schematic block diagram of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0046] The following will describe the technical solutions in the embodiments of the present application in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0047] The technical solutions of the embodiments of the present application can be applied to various communication systems, for example: Long Term Evolution (LTE) system, LTE Time Division Duplex (TDD), Universal Mobile Telecommunication System (UMTS), Internet of Things (IoT) system, Narrow Band Internet of Things (NB-IoT) system, enhanced Machine-Type Communications (eMTC) system, 5G communication system (also called New Radio (NR) communication system), or future communication systems, etc.
[0048] Figure 1 It is a schematic diagram of a communication system according to an embodiment of the present application.
[0049] like Figure 1 As shown, the communication system 100 may include a terminal device 110 and a network device 120. The network device 120 may communicate with the terminal device 110 via an air interface. The terminal device 110 and the network device 120 support multi-service transmission.
[0050] exist Figure 1 In the communication system 100 shown, the network device 120 may be an access network device that communicates with the terminal device 110. The access network device may provide communication coverage for a specific geographical area, and may communicate with the terminal device 110 located in the coverage area.
[0051] The network device 120 may be an evolved Node B (eNB or eNodeB) in a Long Term Evolution (LTE) system, or a Next Generation Radio Access Network (NG RAN) device, or a base station (gNB) in an NR system, or a wireless controller in a Cloud Radio Access Network (CRAN), or the network device 120 may be a relay station, an access point, a vehicle-mounted device, a wearable device, a hub, a switch, a bridge, a router, or a network device in a future evolved Public Land Mobile Network (PLMN), etc.
[0052] The terminal device 110 may also be referred to as a user equipment (UE), an access terminal, a user unit, a user station, a mobile station, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, a terminal, a wireless communication device, a user agent or a user device, etc. The terminal device may be a station (STAION, ST) in a WLAN, a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a Wireless Local Loop (WLL) station, a Personal Digital Assistant (PDA) device, a handheld device with wireless communication function, a computing device or other processing device connected to a wireless modem, a vehicle-mounted device, a wearable device, and a next-generation communication system, for example, a terminal device in an NR network or a terminal device in a future evolved Public Land Mobile Network (PLMN) network, etc.
[0053] The communication system 100 may also include a core network device 130 for communicating with the base station, and the core network device 130 may be a 5GC device, for example, an access and mobility management function (Access and Mobility Management Function, AMF) device, for example, an authentication server function (Authentication Server Function, AUSF) device, for example, a user plane function (User Plane Function, UPF) device, for example, a session management function (Session Management Function, SMF) device. Optionally, the core network device 130 may also be an evolved packet core (Evolved Packet Core, EPC) device of the LTE network, for example, a session management function + core network data gateway (Session Management Function + Core Packet Gateway, SMF + PGW-C) device. It should be understood that SMF + PGW-C can simultaneously implement the functions that SMF and PGW-C can implement. During the network evolution process, the name of the above-mentioned core network device may change, or a new network entity may be formed by dividing the functions of the core network, which is not limited to the embodiments of the present application.
[0054] The functional units in the communication system 100 may also establish connections through next generation (NG) network interfaces to achieve communication.
[0055] For example, the terminal device establishes an air interface connection with the access network device through the NR interface for transmitting user plane data and control plane signaling; the terminal device can establish a control plane signaling connection with the AMF through the NG interface 1 (N1 for short); the access network device, such as the next generation wireless access base station (gNB), can establish a user plane data connection with the UPF through the NG interface 3 (N3 for short); the access network device can establish a control plane signaling connection with the AMF through the NG interface 2 (N2 for short); the UPF can establish a control plane signaling connection with the SMF through the NG interface 4 (N4 for short); the UPF can exchange user plane data with the data network through the NG interface 6 (N6 for short); the AMF can establish a control plane signaling connection with the SMF through the NG interface 11 (N11 for short); the SMF can establish a control plane signaling connection with the PCF through the NG interface 7 (N7 for short).
[0056] Figure 1 A base station, a core network device and two terminal devices are shown exemplarily. Optionally, the communication system 100 may include multiple base station devices and each base station may include another number of terminal devices within its coverage area, which is not limited in the embodiments of the present application.
[0057] It should be noted that Figure 1It is only to illustrate the system to which the present application is applicable in the form of an example. Of course, the method shown in the embodiment of the present application can also be applied to other systems. In addition, the terms "system" and "network" are often used interchangeably in this article. The term "and / or" in this article is only a description of the association relationship of the associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article generally indicates that the associated objects before and after are in an "or" relationship. It should also be understood that the "indication" mentioned in the embodiment of the present application can be a direct indication, an indirect indication, or an indication of an association relationship. For example, A indicates B, which can mean that A directly indicates B, for example, B can be obtained through A; it can also mean that A indirectly indicates B, for example, A indicates C, B can be obtained through C; it can also mean that there is an association relationship between A and B. It should also be understood that the "correspondence" mentioned in the embodiment of the present application can mean that there is a direct or indirect correspondence relationship between the two, or it can mean that there is an association relationship between the two, or it can mean that there is an indication and being indicated, configuration and being configured, etc. It should also be understood that the "predefined" or "predefined rules" mentioned in the embodiments of the present application can be implemented by pre-saving corresponding codes, tables or other methods that can be used to indicate relevant information in devices (for example, including terminal devices and network devices), and the present application does not limit its specific implementation method. For example, predefined may refer to the definition in the protocol. It should also be understood that in the embodiments of the present application, the "protocol" may refer to a standard protocol in the field of communications, such as LTE protocols, NR protocols, and related protocols used in future communication systems, and the present application does not limit this.
[0058] To facilitate understanding of the technical solutions of the embodiments of the present application, the relevant technologies of the embodiments of the present application are described below. The following related technologies can be arbitrarily combined with the technical solutions of the embodiments of the present application as optional solutions, and they all belong to the protection scope of the embodiments of the present application.
[0059] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.
[0060] Figure 2 A flowchart of a multicast transmission method provided in an embodiment of the present application is shown in FIG. Figure 2 As shown, this method is applied to Figure 1 The communication system 100 shown, the method includes:
[0061] Step 201: A first node sends a first message to a second node through a first queue pair.
[0062] The first queue pair (Queue Pair, QP) includes a queue pair between the first node and the second node; the first queue pair is a queue pair established based on the remote direct data access protocol and used for transmitting messages between the first node and the second node.
[0063] In the embodiment of the present application, the first QP connection requires the transceiver ends (the first node and the second node) to simultaneously create a QP queue to establish a channel for sending and receiving data.
[0064] In the embodiment of the present application, each QP includes a send queue (Send Queue, SQ) and a receive queue (Receive Queue, RQ), where SQ is responsible for sending data and RQ is responsible for receiving data. The SQ and RQ of each QP can be associated with a completion queue (Completion Queue, CQ) respectively. Each QP has its own connection context (Connection Context) for maintaining its connection status, and SQ, RQ and CQ also have their own QueueContext for maintaining their queue usage status.
[0065] In an embodiment of the present application, the first node collects the IP address and queue pair number (Queue Pairnumber, QPN) of the node; the node includes the second node and the node in the first group; the IP address and QPN are written into the sixth version of the Internet Protocol Segment Routing Function (SRv6 Function) field and the type length value (Type LengthValue, TLV) data block of the message to be multicast to obtain a first message.
[0066] It should be noted that QPN is a configurable fixed value.
[0067] In the embodiment of the present application, the first node may be a terminal device 110 in the communication system 100 , or a network device 120 in the communication system 100 , or a core network device 130 in the communication system 100 .
[0068] In some embodiments, the queue pair number includes a color number, a graphic number, a text number, a digital number, a position number, etc. Different queue pairs may use the same type of number; of course, the numbers of the identifications of the queue pairs may not be exactly the same, or the types of the identifications of the queue pairs may be completely different.
[0069] Here, the second node may refer to one node or multiple nodes.
[0070] In some embodiments, the first message is sent in the following ways: in-band, out-of-band, media, signaling, data, message, control plane, user plane, etc. Among them, it is preferred to send the first message through an existing channel to better be compatible with the existing system and reduce the cost of system transformation. In addition, when multi-party communication is performed, the established media plane communication channel is a one-to-many multicast / broadcast communication channel, so that the first message is only sent once through the established multicast / broadcast communication channel, and other second nodes can receive it, effectively reducing the number of messages sent.
[0071] Step 202: The second node receives a first message sent by the first node through the first queue pair.
[0072] Step 203: The second node sends a first message to the nodes in the first group through the second queue pair.
[0073] The second queue pair includes a queue pair between the second node and the nodes in the first group; the second queue pair is a queue pair established based on the remote direct data access protocol and used for transmitting messages between the first node and the nodes in the first group.
[0074] In the embodiment of the present application, the second QP connection requires the transceiver ends (the first node and the nodes in the first group) to simultaneously create a QP queue to establish a channel for sending and receiving data.
[0075] In the embodiment of the present application, if the second node is an intermediate node, the first message is forwarded to the next node; here, the next node is of the same type as the second node and is a relay node.
[0076] In an embodiment of the present application, if the second node is an edge node, the source address in the basic transmission header of the first message is modified according to the content of the TLV data block; the modified first message is forwarded to all nodes in the first group; in this way, it is ensured that the receiving end is unaware of the operation of the intermediate network device.
[0077] Step 204: The nodes in the first group receive the first message sent by the second node through the second queue pair.
[0078] Among them, the first node and each node in the first group constitute an RDMA multicast group; the target queue pair includes a first queue pair between the first node and the second node, and a second queue pair between the second node and the nodes in the first group; the target queue pair is a queue pair established based on the remote direct data access protocol for transmitting messages between the first node and the nodes in the first group.
[0079] Here, the first node is a multicast source, and each node in the first group is an RDMA multicast receiver.
[0080] Here, the address of the second node can be relatively regarded as a virtual multicast address.
[0081] In the embodiment of the present application, the DMA data message includes a MAC header (MAC Header), an IP header (IP Header), a UDP header (UDP Header), a BTH header (Base Transport Header) and a load (Payload).
[0082] The embodiment of the present application provides a multicast transmission method, which includes: a first node sends a first message to a first group through a second node and a target queue pair; wherein the first node and each node in the first group constitute a multicast group; the target queue pair includes a first queue pair between the first node and the second node, and a second queue pair between the second node and the nodes in the first group; the target queue pair is a queue pair established based on a remote direct data access protocol for transmitting messages between the first node and the nodes in the first group; the nodes in the first group receive the first message. In other words, the present application is based on an existing protocol, namely, an extension of the remote direct data access protocol, which can evolve smoothly and has low implementation difficulty. At the same time, through the network node (expansion card), namely, the second node, a traffic distribution behavior consistent with the network side and the IP layer multicast is realized.
[0083] Figure 3 A flowchart of a multicast transmission method provided in an embodiment of the present application is shown in FIG. Figure 3 As shown, this method is applied to Figure 1 The communication system 100 shown, the method includes:
[0084] Step 301: A first node sends a first message to a second node through a first queue pair.
[0085] The first queue pair includes a queue pair between the first node and the second node; the first queue pair is a queue pair established based on the remote direct data access protocol and used for transmitting messages between the first node and the second node.
[0086] Step 302: The second node receives the first message sent by the first node through the first queue pair.
[0087] In the embodiment of the present application, if the second node is an intermediate node, the first message is forwarded to the next node; the next node is of the same type as the second node, that is, the next node and the second node are both relay nodes.
[0088] Step 303: The second node sends a first message to the nodes in the first group through the second queue pair.
[0089] The second queue pair includes a queue pair between the second node and the nodes in the first group; the second queue pair is a queue pair established based on the remote direct data access protocol and used for transmitting messages between the first node and the nodes in the first group.
[0090] Step 304: The nodes in the first group receive the first message sent by the second node through the second queue pair.
[0091] Among them, the first node and each node in the first group constitute a multicast group; the target queue pair includes a first queue pair between the first node and the second node, and a second queue pair between the second node and the nodes in the first group; the target queue pair is a queue pair established based on the remote direct data access protocol for transmitting messages between the first node and the nodes in the first group.
[0092] Step 305: The nodes in the first group send a second message to the second node through the second queue pair.
[0093] In this embodiment of the present application, the second message may be a feedback message to the first message.
[0094] Step 306: The second node receives the second message sent by the node in the first group through the second queue pair.
[0095] Step 307: The second node sends a second message to the first node through the first queue pair.
[0096] In the embodiment of the present application, if the second node is an intermediate node, the second message is forwarded to the next node; the next node is of the same type as the second node, that is, the next node and the second node are both relay nodes.
[0097] In an embodiment of the present application, if the second node is an edge node and the second message is a confirmation message, the second node determines to forward the confirmation message that meets the first condition to the first node; wherein the confirmation message sequence number (Packet Sequence Number, PSN) of the confirmation message that meets the first condition is less than or equal to the confirmation message sequence number of the confirmation message sent by each node in the first group; that is, the confirmation message forwarded to the first node must be the one with the smallest PSN among all receiving end confirmation messages.
[0098] In an embodiment of the present application, if the second node is an edge node and the second message is a non-confirmation message message, the second node determines to forward the non-confirmation message message that meets the second condition to the first node; wherein the first confirmation message sequence number of the non-confirmation message message that meets the second condition is less than the second confirmation message sequence number of the non-confirmation message message sent by each node in the first group; the first confirmation message sequence number is equal to the smallest second confirmation message sequence number plus one, that is, the request retransmission message ePSN forwarded to the first node must be the minimum value of the PSN of all receiving end confirmation messages plus 1.
[0099] In the embodiment of the present application, if the second node is an edge node and the second message is a congestion notification packet message, the second node records the number of downstream congestion notification packets received within a specific time interval through a congestion counter for each multicast path; selects the most congested multicast path congestion notification packet to pass to the next level, determines the most congested multicast path through step-by-step filtering; sends a congestion notification packet message corresponding to the most congested multicast path to the first node; wherein the congestion notification packet message is used to notify a request for speed reduction. The first node receives the congestion notification packet message and performs speed reduction processing.
[0100] Here, the specific time interval can be adjusted according to the dynamically changing network conditions. After the specific time interval T cycles, the data recorded by the congestion level counter is aged and cleared.
[0101] Step 308: The first node receives the second message sent by the second node through the first queue pair.
[0102] It should be noted that, for the description of the same steps and the same contents in this embodiment as those in other embodiments, reference can be made to the description in other embodiments and will not be repeated here.
[0103] This application maintains a small amount of RDMA connection status through a network node (expansion card), that is, the second node, modifies the RDMA receive message header through the flow SRv6 Function, aggregates RDMA ACK, NACK, CNP messages and other mechanisms, and realizes the end-side RDMARoCEv2 protocol stack without perception, and the network side and IP layer multicast consistent traffic distribution behavior.
[0104] The following is an explanation of an exemplary application of the embodiments of the present application in a practical application scenario.
[0105] Figure 4 It is a schematic diagram of a network topology provided in an embodiment of the present application.
[0106] Here, assuming Figure 4S1, R1 to R5 in the figure need to form an RDMA multicast group G, where S1 is the multicast source and R1 to R5 are RDMA multicast receivers. S1, R1 to R5 all establish a QP connection with a virtual multicast address M, and the QPN uses a fixed value (configurable).
[0107] Configuration Figure 4 The edge network nodes (N1 to N3) in the example are the receivers of the IP multicast address M. The source node S1 collects the IP and QPN of other hosts through the control plane and defines Figure 5 The SRv6 Function and TLV in the flow are carried along with the flow. Figure 4 The edge network nodes (N1 to N3) in the.
[0108] Nodes N4 to N6 in the network forward the RDMA traffic of multicast source S1 according to the IP layer multicast method, and perform basic transport header (Base Transport Header, BTH) modification operations at edge network nodes (N1 to N3) to ensure that the receiving end is unaware of the operations of intermediate network devices.
[0109] against Figure 4 The receivers R1 to R5 respond with confirmation messages (Acknowledge character, ACK) and NACK, and the intermediate network nodes N1 to N6 perform step-by-step aggregation according to mechanisms 1 and 2 of this solution, and finally modify the message headers such as AETH at the edge network node N6 close to S1, so that S1 is unaware of the intermediate network operation.
[0110] For the response message CNP from the receivers R1 to R5, the intermediate network nodes N1 to N6 filter according to the mechanism 3 of this solution, and finally modify the CNP message header at the edge network node N6 close to S1, so that S1 is unaware of the intermediate network operation.
[0111] In order not to affect the packet loss detection, retransmission, and rate control mechanisms of the wide area RDMA sender, this solution needs to follow the following three mechanisms when processing ACK, NACK, CNP, and other messages:
[0112] Mechanism 1 (for ACK messages): Intermediate network nodes N1 to N6 ensure that the AckPSN received by source node S1 satisfies the PSN of messages received by all receiving end nodes R1 to R5, and PSN is less than or equal to AckPSN. That is, the confirmation message received by S1 must be the one with the smallest PSN among all the receiving end confirmation messages.
[0113] Mechanism 2 (for NACK messages): Intermediate network nodes N1 to N6 ensure that the ePSN received by source node S1 satisfies the PSN of messages received by all receiving end nodes R1 to R5, and PSN is less than ePSN. That is, the ePSN of the request retransmission message received by S1 must be the minimum PSN of all receiving end confirmation messages plus 1.
[0114] Mechanism 3 (for CNP messages): For each multicast path, the intermediate network nodes N1 to N6 record the number of downstream CNPs received within a specific time interval T through the congestion counter CCountnm, and then select the most congested link CNP to pass to the upper level, confirm the most congested path through level-by-level CCountnm filtering, and notify the multicast source of the CNP to request a speed reduction. The specific time interval T can be adjusted according to the dynamically changing network conditions, and CCountnm is aged and cleared after T cycles.
[0115] Figure 5 This is a schematic diagram of a format of an SRv6 message defined in an embodiment of the present application. It should be noted that: Figure 5 This is a schematic diagram of defining a Function End.MT; Table 1 describes the related functions:
[0116]
[0117] Table 1
[0118] It should be noted that if Figure 5 As shown, the IPv6 message transmitted by the present application includes an IPv6 message header (Header), a segment routing header (Segment Routing Header, SRH) and an IPv6 payload.
[0119] Among them, the IPv6 Header includes the version field, traffic class field, flow label field, payload length field, next header field, hop limit field, source address (SA) field, and destination address (DA) field.
[0120] SRH includes the Next Header field, the Hdr Ext Len field, the Routing Type field, the Segment Left (SL) field, the Last Entry field, the Flags field, the Tag field, the Segment List field, and the Optional Type-length-value (Optional TLV) field.
[0121] Among them, Next Header, occupies 8 bits, is used to indicate the type of message header immediately following SRH. Hdr ExtLen field, occupies 8 bits, is used to indicate the length from Segment List[0] to Segment List[n]. SL field, occupies 8 bits, is used to indicate the number of intermediate nodes that should still be visited before reaching the destination node. The SL field can also be called the remaining node field. The value of the SL field can indicate the active SID in the segment list. For example, if the segment list includes 5 SIDs, namely SID0, SID1, SID2, SID3 and SID4, and the SL value is 2, it means that there are 2 unprocessed SIDs in the segment list, namely SID0 and SID1, the SID currently to be processed in the segment list is SID2, and there are 2 SIDs that have been processed in the segment list, namely SID3 and SID4. Last Entry field, occupies 8 bits, is used to indicate the index of the last element in the segment list. Flags field, occupies 8 bits, is used to indicate some identifiers of the data packet. The Tag field occupies 16 bits and is used to identify packets in the same group. The Segment List field can include one or more SIDs. Each SID can be in the form of an IPv6 address, so the segment list can also be understood as an explicit IPv6 address stack. The segment list can be recorded as Segment List[n]. The length of Segment List[n] is 128*n bits. The segment list can be encoded from the last segment of the path. The segment list is in the form of an IPv6 address (128bit IPv6 address). The Optional TLV field is used to carry variable-length data, which provides better scalability for SRv6.
[0122] It should be noted that the edge network nodes (N1 to N3) can modify the BTH Header, and the modified IP and QPN (ie, the IP and QPN that the RDMA receiver can identify) are obtained through the TLV in the SRH.
[0123] The format of the TLV field is as follows:
[0124] Type: The value is the unicast IP address of the edge network node (N1 to N3);
[0125] Length: The length of Value.
[0126] The embodiment of the present application provides a first node, which can be used to implement Figures 2 to 3 A multicast transmission method provided by a corresponding embodiment, referring to Figure 6 As shown, the first node 600 includes:
[0127] The first sending module 601 is used to send a first message to the first group through the second node and the target queue pair; wherein the first node and each node in the first group constitute a multicast group; the target queue pair includes a first queue pair between the first node and the second node, and a second queue pair between the second node and the node in the first group; the target queue pair is a queue pair established based on the remote direct data access protocol for transmitting messages between the first node and the nodes in the first group.
[0128] In other embodiments of the present application, the first processing module 602 is used to collect the Internet Protocol address and queue pair number of the node; the node includes the second node and the node in the first group;
[0129] The first processing module 602 is used to write the Internet Protocol address and the queue pair number into the sixth edition Internet Protocol segment routing function field and the type length value data block of the message to be multicast, so as to obtain a first message;
[0130] The first sending module 601 is configured to send a first message to a second node, so that the second node forwards the first message to nodes in a first group.
[0131] In other embodiments of the present application, the first receiving module 603 is used to receive a second message sent by a node in the first group through a target queue pair.
[0132] The description of the above device embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. For technical details not disclosed in the device embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.
[0133] It should be noted that in the embodiments of the present application, if the above-mentioned multicast transmission method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application can be essentially or partly embodied in the form of a software product that contributes to the relevant technology. The computer software product is stored in a storage medium, including a number of instructions for a terminal device to execute all or part of the methods of each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a ROM, a magnetic disk or an optical disk. In this way, the embodiments of the present application are not limited to any specific combination of hardware and software.
[0134] The embodiment of the present application provides a second node, which can be used to implement Figures 2 to 3 A multicast transmission method provided by a corresponding embodiment, referring to Figure 7 As shown, the second node 700 includes:
[0135] The second receiving module 701 is used to receive the first message sent by the first node through the first queue pair; wherein the first queue pair includes a queue pair between the first node and the second node; the first queue pair is a queue established based on the remote direct data access protocol for transmitting messages between the first node and the second node.
[0136] In other embodiments of the present application, the second receiving module 701 is used to receive a second message sent by a node in the first group through a second queue pair; wherein the second queue pair includes a queue pair between the second node and the nodes in the first group; the second queue pair is a queue pair established based on the remote direct data access protocol for transmitting messages between the first node and the nodes in the first group.
[0137] In other embodiments of the present application, the second sending module 702 is used to forward the first message or the second message if the second node is an intermediate node.
[0138] In other embodiments of the present application, the second processing module 703 is used to modify the source address in the basic transmission header of the first message according to the content of the type-length-value data block if the second node is an edge node;
[0139] The second processing module 703 is configured to forward the modified first message to all nodes in the first group.
[0140] In other embodiments of the present application, the second processing module 703 is used to determine to forward a confirmation message that meets the first condition to the first node if the second node is an edge node and the second message is a confirmation message; wherein the confirmation message sequence number of the confirmation message that meets the first condition is less than or equal to the confirmation message sequence number of the confirmation message sent by each node in the first group.
[0141] In other embodiments of the present application, the second processing module 703 is used to determine to forward a non-confirmation message that meets a second condition to the first node if the second node is an edge node and the second message is a non-confirmation message message; wherein the first confirmation message sequence number of the non-confirmation message that meets the second condition is less than the second confirmation message sequence number of the non-confirmation message sent by each node in the first group; and the first confirmation message sequence number is equal to the smallest second confirmation message sequence number plus one.
[0142] In other embodiments of the present application, the second processing module 703 is used to record the number of downstream congestion notification packets received within a specific time interval through a congestion level counter for each multicast path if the second node is an edge node and the second message is a congestion notification packet message;
[0143] The second processing module 703 is used to select the most congested multicast path congestion notification packet to pass to the next level, and determine the most congested multicast path by filtering level by level;
[0144] The second sending module 702 is used to send a congestion notification packet message corresponding to the most congested multicast path to the first node; wherein the congestion notification packet message is used to notify the request for speed reduction.
[0145] The description of the above device embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. For technical details not disclosed in the device embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.
[0146] It should be noted that in the embodiments of the present application, if the above-mentioned multicast transmission method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application can be essentially or partly embodied in the form of a software product that contributes to the relevant technology. The computer software product is stored in a storage medium, including a number of instructions for a network device to execute all or part of the methods of each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a ROM, a magnetic disk or an optical disk. In this way, the embodiments of the present application are not limited to any specific combination of hardware and software.
[0147] The embodiment of the present application provides a node in a first group, and the node in the first group can implement Figures 2 to 3 A multicast transmission method provided by a corresponding embodiment, referring to Figure 8 As shown, the nodes 800 in the first group include:
[0148] The third receiving module 801 is used to receive the first message sent by the second node through the second queue pair; wherein the second queue pair includes a queue pair between the second node and the nodes in the first group; the second queue pair is a queue pair established based on the remote direct data access protocol for transmitting messages between the first node and the nodes in the first group.
[0149] In other embodiments of the present application, the third sending module 802 is used to send a second message to the second node through the second queue pair.
[0150] The description of the above device embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. For technical details not disclosed in the device embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.
[0151] It should be noted that in the embodiments of the present application, if the above-mentioned multicast transmission method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application can be essentially or partly embodied in the form of a software product that contributes to the relevant technology. The computer software product is stored in a storage medium, including a number of instructions for a network device to execute all or part of the methods of each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a ROM, a magnetic disk or an optical disk. In this way, the embodiments of the present application are not limited to any specific combination of hardware and software.
[0152] Fig. 9 900 is a schematic structural diagram of a communication device 900 provided in an embodiment of the present application. The communication device may be a first node, a second node, or a node in a first group. Fig. 9 The communication device 900 shown includes a processor 910, which can call and run a computer program from a memory to implement the method in the embodiment of the present application.
[0153] Alternatively, if Fig. 9 As shown, the communication device 900 may further include a memory 920. The processor 910 may call and run a computer program from the memory 920 to implement the method in the embodiment of the present application.
[0154] The memory 920 may be a separate device independent of the processor 910 , or may be integrated into the processor 910 .
[0155] Alternatively, if Fig. 9 As shown, the communication device 900 may further include a transceiver 930, and the processor 910 may control the transceiver 930 to communicate with other devices, specifically, may send information or data to other devices, or receive information or data sent by other devices.
[0156] The transceiver 930 may include a transmitter and a receiver. The transceiver 930 may further include an antenna, and the number of antennas may be one or more.
[0157] Optionally, the communication device 900 may specifically be the first node of the embodiment of the present application, and the communication device 900 may implement the corresponding processes implemented by the first node in each method of the embodiment of the present application, which will not be described in detail here for the sake of brevity.
[0158] Optionally, the communication device 900 may specifically be the second node of the embodiment of the present application, and the communication device 900 may implement the corresponding processes implemented by the second node in each method of the embodiment of the present application, which will not be described in detail here for the sake of brevity.
[0159] Optionally, the communication device 900 may specifically be a node in the first group of the embodiment of the present application, and the communication device 900 may implement the corresponding processes implemented by the nodes in the first group in the various methods of the embodiment of the present application, which will not be described in detail here for the sake of brevity.
[0160] Exemplarily, an embodiment of the present application further provides a computer program product, including a computer program, and the computer program can be executed by the processor 910 of the communication device 900 to complete the steps of any of the aforementioned methods.
[0161] It should be understood that the processor of the embodiment of the present application may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method embodiment can be completed by the hardware integrated logic circuit or software instructions in the processor. The above processor can be a general processor, a digital signal processor (Digital Signal Processor, DSP), an application-specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware decoding processor to perform, or the hardware and software modules in the decoding processor are combined and performed. The software module can be located in a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, and other mature storage media in the art. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.
[0162] As an embodiment, the processor may include one or more general-purpose central processing units (CPUs). Each of these processors may be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. The processor here may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer execution instructions).
[0163] It can be understood that the memory in the embodiments of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a ROM, a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically erasable programmable read-only memory (Electrically EPROM, EEPROM) or a flash memory. The volatile memory can be a random access memory (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 random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct memory bus random access memory (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.
[0164] An embodiment of the present application also provides a computer-readable storage medium for storing a computer program.
[0165] The computer-readable storage medium can be applied to the first node in the embodiment of the present application, and the computer program enables the computer to execute the corresponding processes implemented by the first node in the various methods of the embodiment of the present application. For the sake of brevity, they will not be repeated here.
[0166] The computer-readable storage medium can be applied to the second node in the embodiment of the present application, and the computer program enables the computer to execute the corresponding processes implemented by the second node in the various methods of the embodiment of the present application. For the sake of brevity, they will not be repeated here.
[0167] The computer-readable storage medium can be applied to the nodes in the first group in the embodiments of the present application, and the computer program enables the computer to execute the corresponding processes implemented by the nodes in the first group in the various methods of the embodiments of the present application. For the sake of brevity, they will not be repeated here.
[0168] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments may be implemented in the form of a computer program product.
[0169] The computer program product includes one or more computer instructions. When loading and executing the computer program instructions on a computer, the process or function according to the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instruction can be stored in a computer-readable storage medium, or transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, the computer instruction can be transmitted from a website site, a computer, a server, or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server, or data center. The computer-readable storage medium can be any available medium that a computer can store or a data storage device such as a server, a data center, etc. that includes one or more available media integration. Available media can be magnetic media, (e.g., floppy disk, hard disk, tape), optical media (e.g., DVD), or semiconductor media (e.g., solid-state hard disk (SSD)), etc.
[0170] The multicast transmission method, the first node, the second node, the node in the first group, the computer-readable storage medium and the computer program product provided in the embodiments of the present application are introduced in detail above. Specific examples are used in this article to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method of the present application and its core idea; at the same time, for general technical personnel in this field, according to the ideas of the present application, there will be changes in the specific implementation methods and application scopes. In summary, the content of this specification should not be understood as a limitation on the present application.
[0171] It should be understood that the "one embodiment" or "an embodiment" or "an embodiment of the present application" or "the aforementioned embodiment" or "some implementations" or "some embodiments" mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" or "an embodiment of the present application" or "the aforementioned embodiment" or "some implementations" or "some embodiments" appearing throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present application, the size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application. The above-mentioned sequence numbers of the embodiments of the present application are only for description and do not represent the advantages and disadvantages of the embodiments.
[0172] In the absence of special instructions, the first node / second node / node in the first group performs any step in the embodiment of the present application, and the processor of the first node / second node / node in the first group may perform the step. Unless otherwise specified, the embodiment of the present application does not limit the order in which the first node / second node / node in the first group performs the following steps. In addition, the methods used to process data in different embodiments may be the same method or different methods.
[0173] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.
[0174] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units; they may be located in one place or distributed on multiple network units; some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0175] In addition, all functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may be a separate unit, or two or more units may be integrated into one unit; the above-mentioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.
[0176] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain a new method embodiment. The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain a new product embodiment. The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain a new method embodiment or device embodiment.
[0177] A person of ordinary skill in the art can understand that all or part of the steps of implementing the above method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer storage medium. When the program is executed, it executes the steps of the above method embodiment; and the aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROM, magnetic disks or optical disks.
[0178] Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer storage medium. Based on such an understanding, the technical solution of the embodiment of the present application can be essentially or partly embodied in the form of a software product that contributes to the relevant technology. The computer software product is stored in a storage medium, including several instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part 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 mobile storage devices, ROMs, magnetic disks, or optical disks.
[0179] As used in the embodiments of the present application and the appended claims, the singular forms "a," "an," "said," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0180] It should be noted that in each embodiment involved in the present application, all steps may be executed or part of the steps may be executed as long as a complete technical solution can be formed.
[0181] The above is only an implementation method of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims
1. A multicast transmission method, characterized in that: Applied to the first node, the method comprises: Sending a first message to the first group via the second node and the target queue pair; Among them, the first node and each node in the first group constitute a multicast group; the target queue pair includes a first queue pair between the first node and the second node, and a second queue pair between the second node and the nodes in the first group; the target queue pair is a queue pair established based on the remote direct data access protocol for transmitting messages between the first node and the nodes in the first group.
2. The method according to claim 1, characterized in that The method further comprises: collecting Internet protocol addresses and queue pair numbers of nodes; the nodes include the second nodes and nodes in the first group; Writing the Internet Protocol address and the queue pair number into the sixth edition Internet Protocol segment routing function field and the type length value data block of the message to be multicast to obtain a first message; The first message is sent to the second node, so that the second node forwards the first message to the nodes in the first group.
3. The method according to claim 1, characterized in that The method further comprises: A second message sent by a node in the first group is received through the target queue pair.
4. A multicast transmission method, characterized in that: Applied to the second node, the method comprises: receiving, through the first queue pair, a first message sent by the first node; The first queue pair includes a queue pair between the first node and the second node; the first queue pair is a queue pair established based on a remote direct data access protocol and used for transmitting messages between the first node and the second node.
5. The method according to claim 4, characterized in that The method further comprises: receiving, through a second queue pair, a second message sent by a node in the first group; The second queue pair includes a queue pair between the second node and the nodes in the first group; the second queue pair is a queue pair established based on the remote direct data access protocol and used for transmitting messages between the first node and the nodes in the first group.
6. The method according to claim 4 or 5, characterized in that: The method further comprises: If the second node is an intermediate node, forward the first message or the second message.
7. The method according to claim 4, characterized in that The method further comprises: If the second node is an edge node, modify the source address in the basic transmission header of the first message according to the content of the type-length-value data block; The modified first message is forwarded to all nodes in the first group.
8. The method according to claim 5, characterized in that The method further comprises: If the second node is an edge node and the second message is a confirmation message, determine to forward the confirmation message that meets the first condition to the first node; wherein the confirmation message sequence number of the confirmation message that meets the first condition is less than or equal to the confirmation message sequence number of the confirmation message sent by each node in the first group.
9. The method according to claim 5, characterized in that The method further comprises: If the second node is an edge node and the second message is a non-confirmation message message, determine to forward the non-confirmation message message that meets the second condition to the first node; wherein, the first confirmation message sequence number of the non-confirmation message that meets the second condition is smaller than the second confirmation message sequence number of the non-confirmation message sent by each node in the first group; the first confirmation message sequence number is equal to the smallest second confirmation message sequence number plus one.
10. The method according to claim 5, characterized in that The method further comprises: If the second node is an edge node and the second message is a congestion notification packet message, the number of downstream congestion notification packets received within a specific time interval is recorded by a congestion level counter for each multicast path; The congestion notification packet of the most congested multicast path is selected and transmitted to the next level, and the most congested multicast path is determined by filtering level by level; Sending a congestion notification packet message corresponding to the most congested multicast path to the first node; wherein the congestion notification packet message is used to notify a request for speed reduction.
11. A multicast transmission method, characterized in that: Applied to nodes in the first group, the method comprises: receiving, through the second queue pair, a first message sent by the second node; The second queue pair includes a queue pair between the second node and the nodes in the first group; the second queue pair is a queue pair established based on the remote direct data access protocol and used for transmitting messages between the first node and the nodes in the first group.
12. The method according to claim 11, characterized in that The method further comprises: A second message is sent to the second node through the second queue pair.
13. A first node, characterized in that: The first node comprises: A first sending module, configured to send a first message to a first group via a second node and a target queue pair; Among them, the first node and each node in the first group constitute a multicast group; the target queue pair includes a first queue pair between the first node and the second node, and a second queue pair between the second node and the nodes in the first group; the target queue pair is a queue pair established based on the remote direct data access protocol for transmitting messages between the first node and the nodes in the first group.
14. A second node, characterized in that: The second node comprises: A second receiving module, configured to receive a first message sent by a first node through a first queue pair; The first queue pair includes a queue pair between the first node and the second node; the first queue pair is a queue pair established based on a remote direct data access protocol and used for transmitting messages between the first node and the second node.
15. A node in a first group, characterized in that: The sections in the first group include: A third receiving node, configured to receive a first message sent by the second node through a second queue pair; The second queue pair includes a queue pair between the second node and the nodes in the first group; the second queue pair is a queue pair established based on the remote direct data access protocol and used for transmitting messages between the first node and the nodes in the first group.
16. A node, characterized in that: The nodes include: A memory for storing executable instructions; A processor, configured to implement the multicast transmission method described in any one of claims 1 to 3, or the multicast transmission method described in any one of claims 4 to 10, or the multicast transmission method described in claims 11 to 12 when executing the executable instructions stored in the memory.
17. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores one or more programs, and the one or more programs can be executed by one or more processors to implement the multicast transmission method described in any one of claims 1 to 3, or to implement the multicast transmission method described in any one of claims 4 to 10, or to implement the multicast transmission method described in claims 11 to 12.
18. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, it implements the multicast transmission method according to any one of claims 1 to 3, or implements the multicast transmission method according to any one of claims 4 to 10, or implements the multicast transmission method according to claims 11 to 12.
Citation Information
Patent Citations
Network congestion notifying method, proxy node, and computer device
CN109391560A
Data transmission method and system based on RDMA multicast
CN114944966A
Method and device for realizing reliable multicast of RDMA network, storage medium and equipment
CN115442318A
Communication method and device
CN116367092A
RDMA accelerated multicast method and device, equipment and storage medium
CN117812027A