Packet transmission method, related device, and system

By carrying identification information in the message and replacing the IP address, the conversion from unicast to multicast is realized, which solves the problem of low bandwidth efficiency in distributed computing and improves the transmission performance from single point to multiple points.

WO2026081976A1PCT designated stage Publication Date: 2026-04-23HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2025-10-13
Publication Date
2026-04-23

AI Technical Summary

Technical Problem

In distributed computing environments, existing technologies that implement multicast via unicast result in low bandwidth efficiency, especially when transmitting from one point to multiple points, where efficiency decreases as the scale increases.

Method used

By carrying identification information in the message, network devices convert unicast messages into multicast messages and replace the destination IP address with a proxy IP address, multicast functionality is achieved, reducing message duplication and improving transmission efficiency.

Benefits of technology

It improves the efficiency of point-to-multipoint transmission, simplifies the complexity of reliable multicast implementation, and significantly enhances data transmission performance through multicast protocols.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025127210_23042026_PF_FP_ABST
    Figure CN2025127210_23042026_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the embodiments of the present application are a packet transmission method, a related device, and a system, which are applied to the technical field of network communications and are used for implementing an RDMA multicast function and improving the performance of single-point-to-multi-point transmission. In the present application, a first network device receives a first packet from a first computing device, the first computing device being connected to the first network device, the first computing device being a multicast source in a multicast group, and the first packet carrying first identification information; and, on the basis of the first identification information, the first network device sends to a second network device a second packet, the second packet being obtained by the first network device by means of replacing the first identification information in the first packet with second identification information, and the second identification information being used for indicating that the second packet is a multicast packet. On the basis of the first identification information, the first network device modifies the first packet to obtain the second packet used for multicast, thereby implementing a multicast function. As the first computing device does not need to duplicate a packet into multiple copies, the efficiency of single-point-to-multi-point transmission is improved.
Need to check novelty before this filing date? Find Prior Art

Description

A message transmission method, related equipment and system

[0001] This application claims priority to Chinese Patent Application No. 202411466256.1, filed on October 18, 2024, entitled "A Message Transmission Method, Related Equipment and System", the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of network communication technology, and in particular to a message transmission method, related equipment and system. Background Technology

[0003] In the field of distributed computing, especially in environments based on remote direct memory access (RDMA) networks, there is a widespread demand for point-to-multipoint multicast or broadcast communication in applications such as distributed machine learning, high-performance computing (HPC), databases, and distributed storage. The core of this demand lies in efficiently distributing the same data to numerous receiving devices through single-layer or multi-layer networks. Improving the efficiency of this type of communication will directly lead to a significant improvement in application performance.

[0004] Currently, computing devices can achieve logical multicast of data through multiple unicast methods. For example, if a sender needs to send data to N receivers, the sender can send the same data to each receiver separately, sending N copies of the data to each receiver in sequence, thereby achieving multicast or broadcast.

[0005] However, the above method requires the transmission of N identical data copies, resulting in a bandwidth efficiency of 1 / N. Therefore, the larger the scale, the lower the efficiency. Summary of the Invention

[0006] This application provides a message transmission method, related equipment, and system for implementing RDMA multicast functionality and improving point-to-multipoint transmission performance.

[0007] A first aspect of this application provides a message transmission method, in which a first network device receives a first message from a first computing device, the first computing device being connected to the first network device and acting as a multicast source in a multicast group, and the first message carrying first identification information. The first network device then sends a second message to a second network device based on the first identification information. The second message is obtained by replacing the first identification information in the first message with second identification information, whereby the second identification information indicates that the second message is a multicast message. The second network device is connected to at least one computing device in the multicast group.

[0008] Based on the first aspect of this application, the first network device converts the first message into a second message for multicast according to the first identification information, thereby realizing the multicast function. Since the first computing device does not need to copy multiple messages, the transmission efficiency from one point to many is improved.

[0009] Based on the first aspect of this application, in some possible implementations, the first identification information is a first proxy Internet Protocol (IP) address, the second identification information is a second proxy IP address, the destination IP address of the first message is the first proxy IP address, and the destination IP address of the second message is the second IP proxy address.

[0010] In this embodiment of the application, by setting the destination IP address of the first message to the first proxy IP address, the first network device can determine that the first message is a message that needs to be multicast based on the destination IP address of the first message, and then set the destination IP address of the second message to the second IP proxy address, so as to realize the conversion of the first message into a second message for multicast.

[0011] Based on the first aspect of this application, in some possible implementations, a first network device receives a third message from a second network device, the third message being a response message to the second message, and the third message carrying first identification information. The first network device then sends a fourth message to a first computing device based on the third message and the first identification information, the fourth message being a response message to the first message.

[0012] In this embodiment of the application, since the third message carries the first identification information, the first network device can determine that the third message is a response message to the second message based on the first identification information, and then generate a fourth message based on the third message and the first identification information to respond to the first message from the first computing device.

[0013] Based on the first aspect of this application, in some possible implementations, the first network device may also receive a first Internet Group Management Protocol (IGMP) message from the first computing device. The first IGMP message includes first identification information and is used to instruct the first computing device to join a multicast group.

[0014] In this embodiment of the application, since the first IGMP message includes first identification information, if the first identification information is carried in the subsequent message sent by the first computing device, it can be indicated that the message is a message used for multicasting in the multicast group, thereby realizing the multicast function.

[0015] Based on the first aspect of this application, in some possible implementations, the first network device will also receive a source switching message from the first computing device. The source switching message is used by the first network device to update multicast source information, which is used to indicate the multicast source in the multicast group. The first network device sends the source switching message.

[0016] In this embodiment, the switching of multicast sources in a multicast group is achieved by receiving source switching messages, thus enabling its application to scenarios requiring multicast source switching.

[0017] A second aspect of this application provides a message transmission method, in which a first network device receives a first message from a first computing device, the first computing device being connected to the first network device and acting as a multicast source in a multicast group, and the first message carrying first identification information. The first network device then sends a fifth message to a second computing device based on the first identification information, and the second computing device is connected to the first network device.

[0018] Based on the second aspect of this application, in some possible implementations, the first identification information is the first proxy IP address, and the destination IP address of the first message and the source IP address of the fifth message are the first proxy IP address.

[0019] Based on the second aspect of this application, in some possible implementations, a first network device receives a sixth message from a second computing device, the sixth message being a response message to a fifth message, and the sixth message carrying first identification information. The first network device then sends a fourth message to the first computing device based on the sixth message and the first identification information, the fourth message being a response message to the first message.

[0020] Based on the second aspect of this application, in some possible implementations, a first network device receives a second IGMP message from a second computing device, the second IGMP message including first identification information, the second IGMP message being used to instruct the second computing device to join a multicast group.

[0021] A third aspect of this application provides a message transmission method, in which a first computing device obtains first identification information, and the first computing device is a multicast source in a multicast group. The first computing device sends a first message to a first network device, the first message carrying the first identification information, the first identification information being used to instruct the first network device to obtain a second message based on the first message, the second message being a multicast message.

[0022] Based on a third aspect of this application, the first computing device indicates that the first message is a message that needs to be multicast in a multicast group by carrying first identification information in the first message, thereby realizing the multicast function. Since the first message does not need to be copied multiple times, the transmission performance from one point to many is improved.

[0023] Based on the third aspect of this application, in some possible implementations, the first identification information is the first proxy IP address, and the destination IP address of the first message is the first proxy IP address.

[0024] Based on a third aspect of this application, in some possible implementations, a first computing device receives a fourth message from a first network device, the fourth message carrying first identification information, and the fourth message being a response message to the first message.

[0025] Based on a third aspect of this application, in some possible implementations, a first computing device sends a first IGMP message to a first network device. The first IGMP message includes first identification information and is used to instruct the first computing device to join a multicast group.

[0026] Based on a third aspect of this application, in some possible implementations, a first computing device sends a multicast message in a multicast group, the multicast message carrying first identification information, the multicast message being used to indicate that the first computing device is a multicast source in the multicast group.

[0027] A fourth aspect of this application provides a message transmission method in which a second network device receives a second message from a first network device. The second message carries second identification information, which indicates that the second message is a multicast message. The second network device sends a seventh message to a third computing device based on the second identification information. The seventh message is obtained by the second network device by replacing the second identification information with first identification information. The third computing device is connected to the second network device and is a member of a multicast group.

[0028] Based on the fourth aspect of this application, the second network device determines that the second message is a multicast message according to the second identification information. Since the third computing device is a member of the multicast group, the second network device can replace the second identification information with the first identification information and send the seventh message to the third computing device, thereby realizing the multicast function.

[0029] Based on the fourth aspect of this application, in some possible implementations, the second network device receives an eighth message from a third computing device, the eighth message being a response message to the seventh message. The second network device obtains a third message based on the eighth message and first identification information, the third message being a response message to the second message, and the third message including the first identification information. The second network device sends the third message to a first network device, the first network device being connected to the first computing device, the first computing device being a multicast source in a multicast group.

[0030] Based on the fourth aspect of this application, in some possible implementations, the first identification information is the first proxy IP address, the second identification information is the second proxy IP address, the source IP address of the seventh message is the first proxy IP address, and the destination IP address of the second message is the second proxy IP address.

[0031] Based on the fourth aspect of this application, in some possible implementations, the second network device receives a third IGMP message from the third computing device, the third IGMP message including first identification information, the third IGMP message being used to instruct the third computing device to join a multicast group.

[0032] A fifth aspect of this application provides a message transmission method, in which a third computing device receives a seventh message from a second network device, the seventh message including first identification information, and the third computing device is connected to the second network device. The third computing device sends an eighth message to the second network device based on the first identification information, the eighth message being a response message to the seventh message.

[0033] Based on the fifth aspect of this application, in some possible implementations, the first identification information is the first proxy IP address, and the source IP address of the seventh message and the destination IP address of the eighth message are the first proxy IP address.

[0034] Based on the fifth aspect of this application, in some possible implementations, the third computing device sends a third IGMP message to the second network device, the third IGMP message including first identification information, the third IGMP message being used to instruct the third computing device to join a multicast group.

[0035] Based on the fifth aspect of this application, in some possible implementations, a third computing device receives a multicast message carrying first identification information, the multicast message being used to indicate a multicast source in a multicast group.

[0036] A sixth aspect of this application provides a switching device, the switching device comprising:

[0037] An interface unit is used to receive a first message from a first computing device. The first computing device is connected to a first network device. The first computing device is a multicast source in a multicast group. The first message carries first identification information.

[0038] The processing unit is used to generate a second message, which is obtained by the first network device replacing the first identification information in the first message with the second identification information. The second identification information is used to indicate that the second message is a multicast message.

[0039] The interface unit is also used to send a second message to the second network device according to the first identification information, wherein the second network device is connected to at least one computing device in the multicast group.

[0040] Based on the sixth aspect of this application, in some possible implementations, the first identification information is a first proxy Internet Protocol (IP) address, the second identification information is a second proxy IP address, the destination IP address of the first message is the first proxy IP address, and the destination IP address of the second message is the second IP proxy address.

[0041] Based on the sixth aspect of this application, in some possible implementations, the interface unit is further configured to receive a third message from the second network device, the third message being a response message to the second message, and the third message carrying first identification information;

[0042] The interface unit is also used to send a fourth message to the first computing device based on the third message and the first identification information. The fourth message is a response message to the first message.

[0043] Based on the sixth aspect of this application, in some possible implementations, the interface unit is further configured to receive a first Internet Group Management Protocol (IGMP) message from the first computing device, the first IGMP message including first identification information, the first IGMP message being used to instruct the first computing device to join a multicast group.

[0044] Based on the sixth aspect of this application, in some possible implementations, the interface unit is further configured to receive a source switching message from the first computing device, the source switching message being used by the first network device to update multicast source information, the multicast source information being used to indicate the multicast source in the multicast group.

[0045] The interface unit is also used to send source switching messages.

[0046] A seventh aspect of this application provides a switch device, comprising:

[0047] An interface unit is used to receive a first message from a first computing device. The first computing device is connected to a first network device. The first computing device is a multicast source in a multicast group. The first message carries first identification information.

[0048] The processing unit is used to generate the fifth message;

[0049] The interface unit is also used to send a fifth message to the second computing device according to the first identification information. The second computing device is connected to the first network device and is a member of the multicast group.

[0050] Based on the seventh aspect of this application, in some possible implementations, the first identification information is the first proxy IP address, and the destination IP address of the first message and the source IP address of the fifth message are the first proxy IP address.

[0051] Based on the seventh aspect of this application, in some possible implementations, the interface unit is further configured to receive a sixth message from the second computing device, the sixth message being a response message to the fifth message, and the sixth message carrying first identification information;

[0052] The interface unit is also used to send a fourth message to the first computing device based on the sixth message and the first identification information. The fourth message is a response message to the first message.

[0053] Based on the seventh aspect of this application, in some possible implementations, the interface unit is further configured to receive a second IGMP message from the second computing device, the second IGMP message including first identification information, the second IGMP message being used to instruct the second computing device to join a multicast group.

[0054] The eighth aspect of this application provides a server, comprising:

[0055] The processing unit is used to obtain the first identification information, and the first computing device is the multicast source in the multicast group;

[0056] The interface unit is used to send a first message to the first network device. The first message carries first identification information, which is used to instruct the first network device to obtain a second message based on the first message. The second message is a multicast message.

[0057] Based on the eighth aspect of this application, in some possible implementations, the first identification information is the first proxy IP address, and the destination IP address of the first message is the first proxy IP address.

[0058] Based on the eighth aspect of this application, in some possible implementations, the interface unit is further configured to receive a fourth message from the first network device, the fourth message carrying first identification information, and the fourth message being a response message to the first message.

[0059] Based on the eighth aspect of this application, in some possible implementations, the interface unit is further configured to send a first IGMP message to the first network device, the first IGMP message including first identification information, the first IGMP message being used to instruct the first computing device to join a multicast group.

[0060] Based on the eighth aspect of this application, in some possible implementations, the interface unit is further configured to send a multicast message in the multicast group, the multicast message carrying first identification information, the multicast message being used to indicate that the first computing device is a multicast source in the multicast group.

[0061] The ninth aspect of this application provides a switch device, comprising:

[0062] An interface unit is used to receive a second message from a first network device. The second message carries second identification information, which is used to indicate that the second message is a multicast message.

[0063] The processing unit is used to generate the seventh message;

[0064] The interface unit is also used to send a seventh message to the third computing device according to the second identification information. The seventh message is obtained by the second network device replacing the second identification information with the first identification information. The third computing device is connected to the second network device and is a member of the multicast group.

[0065] Based on the ninth aspect of this application, in some possible implementations, the interface unit is further configured to receive an eighth message from a third computing device, wherein the eighth message is a response message to the seventh message;

[0066] The interface unit is also used to obtain a third message based on the eighth message and the first identification information. The third message is a response message to the second message and includes the first identification information.

[0067] The interface unit is also used to send a third message to the first network device, which is connected to the first computing device, which is the multicast source in the multicast group.

[0068] Based on the ninth aspect of this application, in some possible implementations, the first identification information is a first proxy IP address, the second identification information is a second proxy IP address, the source IP address of the seventh message is the first proxy IP address, and the destination IP address of the second message is the second proxy IP address.

[0069] Based on the ninth aspect of this application, in some possible implementations, the interface unit is further configured to receive a third IGMP message from a third computing device, the third IGMP message including first identification information, the third IGMP message being used to instruct the third computing device to join a multicast group.

[0070] The tenth aspect of this application provides a server, comprising:

[0071] An interface unit is used to receive a seventh message from a second network device, the seventh message including first identification information, and the third computing device is connected to the second network device.

[0072] The processing unit is used to generate the eighth message;

[0073] The interface unit is also used to send an eighth message to the second network device according to the first identification information. The eighth message is a response message to the seventh message.

[0074] Based on the tenth aspect of this application, in some possible implementations, the first identification information is the first proxy IP address, and the source IP address of the seventh message and the destination IP address of the eighth message are the first proxy IP address.

[0075] Based on the tenth aspect of this application, in some possible implementations, the interface unit is further configured to send a third IGMP message to the second network device, the third IGMP message including first identification information, the third IGMP message being used to instruct the third computing device to join the multicast group.

[0076] Based on the tenth aspect of this application, in some possible implementations, the interface unit is further configured to receive multicast messages, the multicast messages carrying first identification information, and the multicast messages being used to indicate multicast sources in a multicast group.

[0077] The eleventh aspect of this application provides a switching device, which includes a processor coupled to a memory. The memory stores at least one computer program instruction, which is loaded and executed by the processor to cause a forwarding device to perform the methods provided by the first aspect or any optional method of the first aspect, the second aspect or any optional method of the second aspect, or the third aspect or any optional method of the third aspect. The network interface is used to receive or send packets. Specific details of the switching device provided in the eleventh aspect can be found in the methods provided by the first aspect or any optional method of the first aspect, the second aspect or any optional method of the second aspect, or the third aspect or any optional method of the third aspect. The network interface is used to receive or send packets, and will not be elaborated further here.

[0078] The twelfth aspect of this application provides a server including a processor coupled to a memory storing at least one computer program instruction. The at least one computer program instruction is loaded and executed by the processor to cause a control device to perform the method provided in the fourth aspect or any optional method of the fourth aspect, or the method provided in the fifth aspect or any optional method of the fifth aspect. A network interface is used to receive or send messages. Specific details of the server provided in the twelfth aspect can be found in the methods provided in the fourth aspect or any optional method of the fourth aspect, or the methods provided in the fifth aspect or any optional method of the fifth aspect, and the network interface for receiving or sending messages will not be repeated here.

[0079] The thirteenth aspect of this application provides a computer-readable storage medium storing at least one instruction that, when executed on a computer, causes the computer to perform the method provided by the first aspect or any alternative method of the first aspect, the second aspect or any alternative method of the second aspect, the third aspect or any alternative method of the third aspect, the fourth aspect or any alternative method of the fourth aspect, or the fifth aspect or any alternative method of the fifth aspect.

[0080] The fourteenth aspect of this application provides a computer program product comprising one or more computer program instructions that, when loaded and executed by a computer, cause the computer to perform the method provided by the first aspect or any optional method of the first aspect, the second aspect or any optional method of the second aspect, the third aspect or any optional method of the third aspect, the fourth aspect or any optional method of the fourth aspect, or the fifth aspect or any optional method of the fifth aspect.

[0081] The fifteenth aspect of this application provides a chip including a memory and a processor. The memory is used to store computer instructions, and the processor is used to call and execute the computer instructions from the memory to perform the methods provided by the first aspect or any optional method of the first aspect, the second aspect or any optional method of the second aspect, the third aspect or any optional method of the third aspect, the fourth aspect or any optional method of the fourth aspect, or the fifth aspect or any optional method of the fifth aspect.

[0082] The fifteenth aspect of this application provides a network system comprising the switching devices of the sixth and eighth aspects described above, and the server of the ninth and tenth aspects described above; or, the network system comprises the switching devices of the seventh and tenth aspects described above. Attached Figure Description

[0083] Figure 1a is a schematic diagram of an embodiment of the system architecture in this application;

[0084] Figure 1b is a schematic diagram of another embodiment of the system architecture in this application;

[0085] Figure 2 illustrates a possible application scenario of the message transmission method in this application embodiment;

[0086] Figure 3 is a schematic diagram of an embodiment of the message transmission method in this application;

[0087] Figure 4 is a schematic diagram of an embodiment of the message format in this application;

[0088] Figure 5 is a schematic diagram of another embodiment of the message format in this application;

[0089] Figure 6 is a schematic diagram of another embodiment of the message format in this application;

[0090] Figure 7 is a schematic diagram of another embodiment of the message format in this application;

[0091] Figure 8 is a schematic diagram of another embodiment of the message format in this application;

[0092] Figure 9 is a schematic diagram of another embodiment of the message transmission method in this application;

[0093] Figure 10 is a schematic diagram of another embodiment of the message format in this application;

[0094] Figure 11 is a schematic diagram of another embodiment of the message format in this application;

[0095] Figure 12 is a schematic diagram of another embodiment of the message transmission method in this application;

[0096] Figure 13 is a structural schematic diagram of a switch device in an embodiment of this application;

[0097] Figure 14 is a schematic diagram of a server structure in an embodiment of this application;

[0098] Figure 15 is a structural schematic diagram of a device in an embodiment of this application. Detailed Implementation

[0099] This application provides a message transmission method, related equipment, and system for implementing RDMA multicast functionality and improving point-to-multipoint transmission performance.

[0100] The embodiments of this application will now be described with reference to the accompanying drawings. Those skilled in the art will recognize that, with technological advancements and the emergence of new scenarios, the technical solutions provided in the embodiments of this application are equally applicable to similar technical problems.

[0101] The terms "first," "second," etc., used in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms are interchangeable where appropriate; this is merely a way of distinguishing objects with the same attributes in the description of embodiments of this application. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion, so that a process, method, system, product, or apparatus that comprises a series of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to those processes, methods, products, or apparatuses.

[0102] First, some technical terms involved in the embodiments of this application will be introduced.

[0103] 1) Remote Direct Memory Access (RDMA) network:

[0104] RDMA networks are network communication environments built upon RDMA technology. RDMA allows user programs to bypass the operating system kernel and interact directly with the network interface card (NIC) for network communication. It achieves data transmission through dedicated hardware on the network adapter (such as the RDMA engine on the NIC), reducing data transmission latency and CPU load, thus improving network communication efficiency. The communication mechanism of RDMA networks is well-suited for large-scale parallel computing environments. It supports multiple independent communication streams, enabling efficient data exchange and synchronization between different computing nodes, thereby improving the efficiency of parallel computing. Therefore, RDMA networks are typically suitable for applications such as distributed machine learning, high-performance computing (HPC), databases, and distributed storage.

[0105] 2) Unicast:

[0106] Unicast is a one-to-one communication mode between hosts. In this mode, devices in the network select a transmission path based on the destination address contained in the network packet, and send the unicast packet to the designated destination. They only forward the received data and do not copy it.

[0107] 3) Multicast:

[0108] Multicast is a one-to-many communication mode between hosts, allowing one or more multicast sources to send the same message to multiple receivers. A multicast source sends a message to a specific multicast address, which does not belong to any particular host, but rather to a group of hosts.

[0109] 4) Broadcast:

[0110] Broadcasting is a one-to-all communication mode between hosts. In this mode, a device sends a message to all possible receivers in the network. The device simply copies and forwards any broadcast message it receives to every interface except the one where the message arrived.

[0111] 5) Top-of-rack switch (ToR switch):

[0112] A ToR switch (hereinafter referred to as ToR) is used to connect all servers within a rack. As the entry point for servers to access the network, the ToR switch is responsible for connecting the servers within the rack to the data center network. It provides a communication bridge between servers and between servers and external networks. In a leaf-spine network architecture, the ToR switch typically functions as a Leaf switch, connecting to Spine switches to build an efficient data center network.

[0113] 6) Spine Switch:

[0114] Spine switches, also known as backbone switches, are the core switches in data center networks. They are responsible for building the high-performance backbone layer of the data center network, enabling high-speed interconnection between multiple Leaf switches (such as ToRs). They provide high availability and fault tolerance for the data center network, achieving load balancing and redundancy through a multi-path network architecture. In a leaf-spine architecture, the Spine switch has a direct, high-speed connection to each Leaf switch to ensure efficient and reliable data transmission throughout the network.

[0115] Please refer to Figure 1a, which illustrates a network architecture in an embodiment of this application. This network architecture is a Layer 2 CLOS architecture, or a leaf-spine architecture. It includes N Spine switches (Spine 1 to Spine N) and N ToR switches (ToR 1 to ToR N). Each ToR is connected to multiple Spine switches. Each ToR connects to M servers. This network architecture can be applied to data center network topologies or wide area networks (including multi-layer switches or routers). Service scenarios can include distributed machine learning training, distributed storage, HPC, databases, and container scenarios. The RDMA network can be typical Infiniband (IB) or RDMA over converged Ethernet (RoCE) protocols.

[0116] Please refer to Figure 1b, which shows another network architecture in this embodiment. This network architecture is a three-layer CLOS architecture, namely a Core switch, a Spine switch, and a ToR switch. The Core switch, also known as a core network device, is a high-performance network device. It is located at the top layer of the network hierarchy or at the center of the network architecture, primarily used to connect multiple subnets or network segments and ensure that data packets can be transmitted quickly and accurately from one network to another. Core switches typically have extremely high bandwidth capabilities, low-latency forwarding mechanisms, and high levels of redundancy and high availability, thereby ensuring the smooth operation and high stability of the entire network system. The Core switch is responsible for forwarding traffic across the Spine below the Core, and is the core part of the network architecture, undertaking the task of high-speed data exchange.

[0117] Figure 2 illustrates an application scenario applicable to an embodiment of this application. Network device 201 and network device 202 correspond to the ToR switch in the network architecture shown in Figure 1a or Figure 1b. Computing devices 201-1 and 201-2 are connected to network device 201, and network device 202 is connected to computing device 202-1. Computing devices 201-1, 201-2, and 202-1 correspond to the server in the network architecture shown in Figure 1a or Figure 1b. Network device 201 and network device 202 are connected via Spine switch 203. Network device 201 and network device 202 can be connected to the same Spine switch or to different Spine switches; this is not limited here. Computing device 201-1 is a multicast source.

[0118] Computing device 201-1 can achieve logical multicast of data through multiple unicast methods. For example, if computing device 201-1, acting as a multicast source, needs to send data to computing devices 201-2 and 202-1, then computing device 201-1 can send the same data to both computing devices 201-2 and 202-1 respectively, i.e., send two sets of data to computing devices 201-2 and 202-1 respectively, thereby achieving multicast.

[0119] However, if there are N receivers, the above method requires the transmission of N identical data, with a bandwidth efficiency of 1 / N. Therefore, the larger the scale, the lower the efficiency.

[0120] Based on this, this application provides a method. Please refer to Figure 3, which is a schematic diagram of a message transmission method provided in this application. The method shown in Figure 3 is interactively executed by a first network device, a second network device, a first computing device, and a third computing device. This method can be applied to the application scenario shown in Figure 2. The first network device corresponds to network device 201 in Figure 2, the second network device corresponds to network device 202 in Figure 2, the first computing device corresponds to computing device 201-1 in Figure 2, and the third computing device corresponds to computing device 202-1 in Figure 2. The first computing device acts as the multicast source in the multicast group. The method includes steps 301 to 306.

[0121] 301. The first computing device sends a first message to the first network device, and correspondingly, the first network device receives the first message from the first computing device.

[0122] The first computing device, acting as a multicast source, encapsulates the data to be transmitted in a first message and sends it out. The first message carries first identification information.

[0123] After receiving the first message, the first network device determines, based on the first identifier information carried in the first message, that the first message is a message that the multicast source needs to multicast in the multicast source, and then executes step 302.

[0124] In one possible implementation, the first identification information can be a first proxy Internet Protocol (IP) address, also known as a unique IP (UIP). As shown in Figure 4, the first packet carries the source IP address and destination IP address in its header. The source address of the first packet is the IP address of the first computing device, the destination address of the first packet is UIP, and the queue pair number (QPN) is a default value (e.g., QP0). After receiving the first packet, the first network device recognizes that the destination address of the first packet is UIP, and thus executes step 302.

[0125] UIP can be any IP address, such as a predefined IP address, a multicast address, or the IP address of a multicast source; the specific choice is not limited here. UIP is used to enable the first network device to recognize UIP and then execute subsequent steps.

[0126] In another possible implementation, the source address of the first message is the IP address of the first computing device, the destination address of the first message is the IP address of any member of the multicast group, and the message header carries first identification information, for example, the first identification information is carried in an optional part. The first network device identifies the first identification information by parsing the message header of the first message, and then executes step 302.

[0127] It should be noted that when the first identification information is the first proxy IP address, the first computing device can obtain the first proxy IP address through an IP address allocation protocol, such as the generic address assignment protocol (GAAP), dynamic host configuration protocol (DHCP), or multicast address dynamic client allocation protocol (MADCAP).

[0128] 302. The first network device sends a second message to the second network device, and correspondingly, the second network device receives the second message from the first network device.

[0129] After recognizing the first identification information, the first network device determines that the first message is a multicast source message that needs to be multicast in the multicast group. Therefore, the first network device replaces the first identification information with the second identification information to obtain the second message. The second identification information is used to indicate that the second message is a multicast message.

[0130] In one possible implementation, the second identification information is the second proxy IP address, also known as multicast IP (MIP). The first network device replaces the destination address of the first packet from the first proxy IP address to the second proxy IP address, as shown in Figure 5. The source address of the second packet is the IP address of the first computing device, and the destination address of the second packet is the MIP.

[0131] It should be noted that the second proxy IP address is obtained from the first proxy IP address. For example, the UIP is 10.XXX, where the part after 10 in the UIP is called the multicast ID. The first network device keeps the multicast ID unchanged and converts 10 to 225 to obtain the MIP, i.e., 225.XXX. The above conversion method is only an example. In practical applications, the first network device can also use other conversion methods to convert UIP to MIP, which are not limited here.

[0132] In another possible implementation, the first network device replaces the first identification information in the header of the first message with the second identification information.

[0133] This application embodiment will be described using the example of the first identifier information being the first proxy IP address and the second identifier information being the second proxy IP address.

[0134] After receiving the second packet, the second network device identifies the destination address of the second packet as MIP and executes step 303.

[0135] It should be understood that in the application scenario shown in Figure 3, the first network device sends the second message to the Spine switch, and the Spine switch then forwards the second message to the second network device based on a multicast protocol (e.g., Protocol Independent Multicast (PIM)). In this embodiment, "the first network device sends the second message to the second network device" means that the origin of the second message is the first network device and the destination of the second message is the second network device, and does not limit the transmission path of the second message.

[0136] In this embodiment, unicast messages are converted into multicast messages using first and second identification information, and multicast functionality of RDMA is implemented based on multicast protocols such as PIM, significantly improving point-to-multipoint transmission performance. Furthermore, by reusing the IP multicast mechanism, the complexity of reliable multicast implementation is simplified.

[0137] 303. The second network device sends a seventh message to the third computing device, and correspondingly, the third computing device receives the seventh message from the second network device.

[0138] After receiving the second message, the second network device identifies that the destination address of the second message is MIP and determines that the members of the multicast group include the computing device (i.e., the third computing device) connected to the second network device. Therefore, the second network device modifies the second message to obtain the seventh message. The seventh message carries the first identification information.

[0139] Specifically, as shown in Figure 6, the source address of the seventh message is the first proxy IP address, i.e., UIP, and the destination address of the seventh message is the IP address of the third computing device. The QPN is changed to the QPN corresponding to the third computing device. The data portion of the seventh message is the same as the data portion of the first message.

[0140] The second network device sends the seventh message to the third computing device, thus completing the forward data transmission.

[0141] 304. The third computing device sends the eighth message to the second network device, and the second network device receives the eighth message from the third computing device.

[0142] After receiving data from the multicast source, members of the multicast group send a response message (or ACK message) to the multicast source. The third computing node responds to the seventh message by sending an eighth message to the second network device. Corresponding to the seventh message, as shown in Figure 7, the source IP address of the eighth message is the IP address of the third computing device, and the destination address of the eighth message is UIP, thus indicating that the eighth message is a response message to the seventh message.

[0143] 305. The second network device sends a third message to the first network device, and correspondingly, the first network device receives the third message from the second network device.

[0144] In one possible implementation, if the second network device has only one member (i.e., the third computing device), then the second network device directly transmits the eighth packet as the third packet to the first network device through the Spine switch.

[0145] In another possible implementation, if the second network device has multiple members, the second network device can aggregate ACK packets from multiple computing nodes into a single packet (i.e., the third packet) and send it to the Spine switch.

[0146] Specifically, after receiving an ACK, the second network device matches the flags in the packet against the access control list (ACL), queries the corresponding IP information, and identifies that the packet needs to be aggregated. The aggregation operation involves combining multiple received ACKs into a new ACK (the third packet) and sending it to the first network device. The source address of the aggregated packet can be the IP address of any member device under the second network device. For example, if the second network device has server A and server B, the source address of the third packet can be either the IP address of server A or the IP address of server B; the specific address is not limited here. The destination address of the third packet is UIP, which is used by the first network device to determine whether the third packet is a response packet or an ACK packet to the second packet.

[0147] It should be noted that in the network architecture shown in Figure 1a, when there are multiple ToR switches under the Spine switch, the Spine switch can also aggregate the ACK packets from the multiple ToR switches into a new ACK packet. The source address of the aggregated packet can be the source address of any one of the ACK packets from the multiple ToR switches, and the destination address is UIP. Similarly, in the network architecture shown in Figure 1b, when there are multiple Spine switches under the core switch, the core switch can also aggregate the ACK packets from the multiple Spine switches into a new ACK packet; details will not be elaborated here.

[0148] 306. The first network device sends a fourth message to the first computing device, and correspondingly, the first computing device receives the fourth message from the first network device.

[0149] After receiving the third message, the first network device identifies the UIP in the third message and determines that the third message is a response message or ACK message to the second message. Based on the UIP, the first network device generates a fourth message. As shown in Figure 8, the source address of the fourth message is the UIP, and the destination address of the fourth message is the IP address of the first computing device.

[0150] The first computing device identifies the fourth message as either a response message or an ACK message to the first message based on the UIP in the fourth message.

[0151] Optionally, aggregation is performed by the network interface card (NIC) on the first computing device side. Specifically, the first network device receives ACK packets from one or more network devices. These ACK packets are forwarded to the first network device by members of the multicast group through a switch. The first network device then sends these ACK packets to the first computing device. The NIC of the first computing device aggregates the received ACK packets into a single ACK packet and submits it to the upper-layer application. The source and destination addresses of the aggregated ACK packet can be found in the previous description and will not be repeated here.

[0152] Optionally, the embodiment shown in FIG3 further includes step 300a. Step 300a may be performed before step 301.

[0153] 300a. The first computing device sends a first Internet Group Management Protocol (IGMP) message to the first network device, and correspondingly, the first network device receives the first IGMP message from the first computing device.

[0154] Optionally, this IGMP message is a newly added IGMPv2 Report message, which includes the first proxy IP address (UIP), the second proxy IP address (MIP), the destination global identification (GID) address, and the destination QPN.

[0155] It should be noted that this IGMP message can be used to instruct the first computing device to join a multicast group or to instruct the first computing device to leave a multicast group; the specific use is not limited here.

[0156] Optionally, the embodiment shown in Figure 3 further includes step 300b. Step 300b may be performed before step 301.

[0157] 300b. The third computing device sends a third IGMP message to the second network device, and correspondingly, the second network device receives the third IGMP message from the third computing device.

[0158] The content carried by the third IGMP message is similar to that of the first IGMP message. Each switch establishes a multicast forwarding path based on the IGMP messages sent by the computing device and multicast protocols (such as PIM).

[0159] Optionally, the embodiment shown in Figure 3 further includes step 300c. Step 300c may be performed before step 301.

[0160] 300c. The first computing device sends a multicast message to the third computing device, and the third computing device receives the multicast message from the first computing device.

[0161] The computing device determines whether it is Rank 0, meaning it is the first computing device to send data in the application. For example, if the first computing device is Rank 0, it sends a multicast message in the multicast group using the User Datagram Protocol (UDP). After sending the multicast message, the first computing device modifies the destination address of the QP to the UIP and updates its status to Ready to Send (RTS).

[0162] After receiving the multicast message, the third computing device modifies the destination address of QP to UIP and updates the status to Ready to Send (RTS).

[0163] It should be noted that "the first computing device sends a multicast message to the third computing device" means that the multicast message originates from the first computing device and terminates at the third computing device, and does not limit the transmission path of the second message.

[0164] Please refer to Figure 9, which is a schematic diagram of a message transmission method provided in an embodiment of this application. The method shown in Figure 9 is executed interactively by a first network device, a second network device, a first computing device, and a second computing device. This method can be applied to the application scenario shown in Figure 2. The first network device corresponds to network device 201 in Figure 2, the second network device corresponds to network device 202 in Figure 2, the first computing device corresponds to computing device 201-1 in Figure 2, and the second computing device corresponds to computing device 201-2 in Figure 2. The first computing device acts as the multicast source in the multicast group. The method includes steps 901 to 904.

[0165] 901. The first computing device sends a first message to the first network device, and correspondingly, the first network device receives the first message from the first computing device.

[0166] Step 901 in this embodiment is similar to step 301 in the embodiment shown in Figure 3 above, and will not be described in detail here.

[0167] 902. The first network device sends a fifth message to the second computing device, and correspondingly, the second computing device receives the fifth message from the first network device.

[0168] After recognizing the first identification information, the first network device determines that the second computing device is a member of the multicast group, and therefore the first network device generates a fifth message. As shown in Figure 10, the source address of the fifth message is UIP, and the destination address of the fifth message is the IP address of the second computing device.

[0169] 903. The second computing device sends a sixth message to the first network device, and correspondingly, the first network device receives the sixth message from the second computing device.

[0170] After receiving data from the multicast source, a member of the multicast group sends a response message (or ACK message) to the multicast source. The second computing node responds to the fifth message by sending a sixth message to the first network device. Corresponding to the fifth message, as shown in Figure 11, the source IP address of the sixth message is the IP address of the second computing device, and the destination address of the sixth message is UIP, thus indicating that the sixth message is a response message to the fifth message.

[0171] 904. The first network device sends a fourth message to the first computing device, and correspondingly, the first computing device receives the fourth message from the first network device.

[0172] After receiving the sixth packet, the first network device identifies the UIP in the sixth packet and determines that the sixth packet is a response packet or ACK packet to the fifth packet. Based on the UIP, the first network device generates the fourth packet. As shown in Figure 8, the source address of the fourth packet is the UIP, and the destination address of the fourth packet is the IP address of the first computing device.

[0173] Optionally, the embodiment shown in FIG9 further includes step 900a. Step 900a may be performed before step 901.

[0174] 900a. The first computing device sends a first IGMP message to the first network device, and correspondingly, the first network device receives the first IGMP message from the first computing device.

[0175] Optionally, the embodiment shown in Figure 9 further includes step 900b. Step 900b may be performed before step 901.

[0176] 900b. The second computing device sends a second IGMP message to the first network device, and correspondingly, the first network device receives the second IGMP message from the second computing device.

[0177] Optionally, the embodiment shown in Figure 9 further includes step 900c. Step 900c may be performed before step 901.

[0178] 900c. The first computing device sends a multicast message to the second computing device, and correspondingly, the second computing device receives the multicast message from the first computing device.

[0179] Steps 900a to 900c in this embodiment are similar to steps 300a to 300c in the embodiment shown in Figure 3 above, and will not be described in detail here.

[0180] Please refer to Figure 12, which is a schematic diagram of a message transmission method provided in an embodiment of this application. The method shown in Figure 12 is interactively executed by a first network device, a second network device, and a first computing device. This method can be applied to the application scenario shown in Figure 2. The first network device corresponds to network device 201 in Figure 2, the second network device corresponds to network device 202 in Figure 2, and the first computing device corresponds to computing device 201-1 in Figure 2. The first computing device acts as the multicast source in the multicast group, and the application needs to switch the multicast source. The method includes steps 1201 to 1202.

[0181] 1201. The first computing device sends a source switching message to the first network device, and correspondingly, the first network device receives the source switching message from the first computing device.

[0182] When an application needs to switch multicast sources, the first computing device sends a source switch message to the first network device via UDP / UD packets. Upon receiving the source switch message, the first network device identifies the message by matching the IP address in the ACL or by using reserved fields in the message header. After identifying the source switch message, the first network device parses the message. Based on the parsed information, the first network device updates the multicast source information in the multicast aggregation table.

[0183] 1202. The first network device sends a source switching message to the second network device, and the second network device receives the source switching message from the first network device.

[0184] After receiving the source switch message, the second network device updates the multicast source-related entries by matching and parsing the message through ACL.

[0185] Within a multicast group, when a multicast source completes its transmission, it notifies the next multicast source via unicast. If using standard RC, during multicast source switching, the old source needs to change its rPSN value to the new source's sPSN, and the new source needs to change its sPSN to the old source's rPSN. rPSN represents the receive PSN, and sPSN represents the send PSN.

[0186] It should be noted that when an application needs to switch multicast sources within the same multicast group to send data, such as switching from a first computing device to a second computing device, data can be sent from the second computing device to the first computing device, and then the first computing device multicasts the data to other members in the same group via RDMA.

[0187] In this embodiment, by sending data from the second computing device to the first computing device, the number of communication steps is increased from one to two. However, compared to the original method of completing point-to-multipoint transmission through N unicasts, there is still a significant performance improvement. Furthermore, since there is no need for PSN synchronization on the end side, a considerable amount of time can be saved.

[0188] Figure 13 is a schematic diagram of a switch device 1300 provided in an embodiment of this application. The switch device 1300 is, for example, disposed as network device 201 or network device 202 in Figure 2. The switch device 1300 is, for example, disposed as a first network device or a second network device in Figure 3. The switch device 1300 is, for example, disposed as a first network device or a second network device in Figure 9. The switch device 1300 is, for example, disposed as a first network device or a second network device in Figure 12.

[0189] The switching device 1300 includes an interface unit 1301 and a processing unit 1302. For example, the switching device 1300 is located in the first network device shown in FIG3. The interface unit 1301 is used to execute the send / receive actions in steps 301, 302, 305, and 306 of the method shown in FIG3; the processing unit 1302 is used to execute the generation of the second message in step 302 and the generation of the fourth message in step 306 of the method shown in FIG3. Alternatively, the switching device 1300 is located in the second network device shown in FIG3. The interface unit 1301 is used to execute the send / receive actions in steps 302, 303, 304, and 305 of the method shown in FIG3; the processing unit 1302 is used to execute the generation of the seventh message in step 303 and the generation of the third message in step 305 of the method shown in FIG3.

[0190] The device embodiment described in Figure 13 is merely illustrative. For example, the division of the units described above is only a logical functional division. In actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. In the various embodiments of this application, each functional unit may be integrated into one processing unit 1302, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0191] Each unit in the switch device 1300 is implemented, in whole or in part, through software, hardware, firmware, or any combination thereof.

[0192] For details on the implementation of each unit in the switch device 1300 and the interaction process between the switch device 1300 and other devices, please refer to the descriptions in the previous method embodiments, which will not be elaborated here.

[0193] The following section describes some possible implementation methods of the various functional units in the switch device 1300 using hardware or software, in conjunction with the device 1500 described later.

[0194] In the case of software implementation, for example, the processing unit 1302 and the interface unit 1301 described above are software functional units generated by at least one processor 1501 in FIG15 after reading the program code stored in the memory 1502.

[0195] In the case of hardware implementation, for example, the various units described above in FIG13 are implemented by different hardware in the computing device. For example, the processing unit 1302 is implemented by a portion of the processing resources of at least one processor 1501 in FIG15 (e.g., one or two cores of a multi-core processor), or is implemented by a programmable device such as a field-programmable gate array (FPGA) or a coprocessor.

[0196] Figure 14 is a schematic diagram of the structure of a server 1400 provided in an embodiment of this application. The server 1400 is, for example, located in computing device 201-1, computing device 201-2, or computing device 202-1 in Figure 2. The server 1400 is, for example, located in the first or third computing device in Figure 3. The server 1400 is, for example, located in the first or second computing device in Figure 9. The server 1400 is, for example, located in the first computing device in Figure 12.

[0197] Server 1400 includes an interface unit 1401 and a processing unit 1402. Server 1400 is, for example, located in the first computing device in FIG3. Interface unit 1401 is used to perform the sending and receiving actions in steps 301 and 306 of the method shown in FIG3. Processing unit 1402 is used to perform the generation action of the first message in step 301 of the method shown in FIG3.

[0198] The device embodiment described in Figure 14 is merely illustrative. For example, the division of the above units is only a logical functional division. In actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. The functional units in the various embodiments of this application may be integrated into one processing unit 1402, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0199] Each unit in server 1400 is implemented, in whole or in part, through software, hardware, firmware, or any combination thereof.

[0200] For details on the implementation of each unit in server 1400 and the interaction process between server 1400 and other devices, please refer to the descriptions in the previous method embodiments, which will not be elaborated here.

[0201] The following section, in conjunction with the device 1500 described later, describes some possible implementation methods of the various functional units in the server 1400 using hardware or software.

[0202] In the case of software implementation, for example, the processing unit 1402 and the interface unit 1401 described above are software functional units generated by at least one processor 1501 in FIG15 after reading the program code stored in the memory 1502.

[0203] In the case of hardware implementation, for example, the various units described above in FIG14 are implemented by different hardware in the computing device. For example, the processing unit 1402 is implemented by a portion of the processing resources of at least one processor 1501 in FIG15 (e.g., one or two cores of a multi-core processor), or is implemented by a programmable device such as a field-programmable gate array (FPGA) or a coprocessor.

[0204] Figure 15 is a schematic diagram of the structure of a device 1500 provided in an embodiment of this application. The device 1500 includes at least one processor 1501, a memory 1502, and at least one network interface 1503.

[0205] In some embodiments, device 1500 is provided as a network device (switch). In other embodiments, device 1500 is provided as a computing device (server). Device 1500 is, for example, network device 201 or network device 202 in FIG. 2. Device 1500 is, for example, computing device 201-1, computing device 201-2, or computing device 202-1.

[0206] Device 1500 includes, for example, the first network device in FIG3, and network interface 1503 is used to perform the send and receive actions in steps 301, 302, 305 and 306 of the method shown in FIG3; processor 1501 is used to perform the second message generation action in step 302 and the fourth message generation action in step 306 of the method shown in FIG3.

[0207] Device 1500 may include the second network device in FIG3, and network interface 1503 is used to perform the send and receive actions in steps 302, 303, 304 and 305 of the method shown in FIG3; processor 1501 is used to perform the generation action of the seventh message in step 303 and the generation action of the third message in step 305 of the method shown in FIG3.

[0208] Device 1500 may include the first computing device in FIG3, network interface 1503 for performing the send and receive actions in steps 301 and 306 of the method shown in FIG3; processor 1501 for performing the generation action of the first message in step 301 of the method shown in FIG3.

[0209] Device 1500 may include the second computing device in FIG9, network interface 1503 for performing the send and receive actions in steps 902 and 903 of the method shown in FIG9; processor 1501 for performing the generation action of the sixth message in step 903 of the method shown in FIG9.

[0210] Device 1500 may include the third computing device in FIG3, network interface 1503 for performing the send and receive actions in steps 303 and 304 of the method shown in FIG3; processor 1501 for performing the generation action of the eighth message in step 304 of the method shown in FIG3.

[0211] Processor 1501 may be, for example, a general-purpose central processing unit (CPU), a network processor (NP), a graphics processing unit (GPU), a neural-network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the embodiments of this application. For example, processor 1501 may include an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. A PLD may be, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0212] Memory 1502 may be, for example, read-only memory (ROM) or other types of static storage devices capable of storing static information and instructions; random access memory (RAM) or other types of dynamic storage devices capable of storing information and instructions; electrically erasable programmable read-only memory (EEPROM); compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.); magnetic disk storage media or other magnetic storage devices; or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. Optionally, memory 1502 exists independently and is connected to processor 1501 via internal connection 1504. Alternatively, memory 1502 and processor 1501 may be integrated together.

[0213] Network interface 1503 uses any transceiver-like device for communicating with other devices or communication networks. Network interface 1503 includes, for example, at least one of a wired network interface or a wireless network interface. The wired network interface is, for example, an Ethernet interface. The Ethernet interface is, for example, an optical interface, an electrical interface, or a combination thereof. The wireless network interface is, for example, a wireless local area network (WLAN) interface, a cellular network interface, or a combination thereof.

[0214] In some embodiments, processor 1501 includes one or more CPUs, such as CPU0 and CPU1 as shown in FIG15.

[0215] In some embodiments, device 1500 may optionally include a plurality of processors, such as processor 1501 and processor 1505 as shown in FIG15. Each of these processors may be, for example, a single-core processor (single-CPU) or a multi-core processor (multi-CPU). Here, a processor may optionally refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).

[0216] In some embodiments, device 1500 further includes an internal connection 1504. Processor 1501, memory 1502, and at least one network interface 1503 are connected via internal connection 1504. Internal connection 1504 includes pathways for transmitting information between the aforementioned components. Optionally, internal connection 1504 is a single board or a bus. Optionally, internal connection 1504 may be divided into an address bus, a data bus, a control bus, etc.

[0217] In some embodiments, device 1500 further includes an input / output interface 1506. The input / output interface 1506 is connected to internal connection 1504.

[0218] Optionally, the processor 1501 implements the method in the above embodiments by reading program code stored in the memory 1502, or the processor 1501 implements the method in the above embodiments by internally stored program code. When the processor 1501 implements the method in the above embodiments by reading program code stored in the memory 1502, the memory 1502 stores program code 1510 that implements the method provided in the embodiments of this application.

[0219] For more details on how processor 1501 implements the above functions, please refer to the descriptions in the previous method embodiments, which will not be repeated here.

[0220] The various embodiments in this specification are described in a progressive manner. The same or similar parts between the various embodiments can be referred to each other. Each embodiment focuses on describing the differences from other embodiments.

[0221] A references B, which means that A is the same as B or A is a simple variation of B.

[0222] The terms "first" and "second," etc., used in the specification and claims of this application are used to distinguish different objects, not to describe a specific order of objects, and should not be construed as indicating or implying relative importance. For example, "first forwarding proof" and "second forwarding proof" are used to distinguish different forwarding proofs, not to describe a specific order of forwarding proofs, and should not be construed as the first forwarding proof being more important than the second forwarding proof.

[0223] The information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in the embodiments of this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions. For example, the identity information involved in this application was obtained with full authorization.

[0224] In this application, unless otherwise stated, "at least one" means one or more, and "multiple" means two or more. For example, multiple forwarding nodes refer to two or more forwarding nodes.

[0225] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any combination thereof. When implemented in software, they can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., a solid-state disk (SSD)).

[0226] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

Claims

1. A method of transmitting a packet, characterized by, The method includes: A first network device receives a first message from a first computing device. The first computing device is connected to the first network device. The first computing device is a multicast source in a multicast group. The first message carries first identification information. The first network device sends a second message to the second network device based on the first identification information. The second message is obtained by the first network device replacing the first identification information in the first message with the second identification information. The second identification information is used to indicate that the second message is a multicast message. The second network device is connected to at least one computing device in the multicast group.

2. The method of claim 1, wherein, The first identification information is a first proxy Internet Protocol (IP) address, the second identification information is a second proxy IP address, the destination IP address of the first message is the first proxy IP address, and the destination IP address of the second message is the second IP proxy address.

3. The method according to claim 1 or 2, characterized in that, The method further includes: The first network device receives a third message from the second network device, the third message being a response message to the second message, and the third message carrying the first identification information; The first network device sends a fourth message to the first computing device based on the third message and the first identification information, wherein the fourth message is a response message to the first message.

4. The method according to any one of claims 1 to 3, characterized in that, The method further includes: The first network device receives a first Internet Group Management Protocol (IGMP) message from the first computing device. The first IGMP message includes the first identification information and is used to instruct the first computing device to join the multicast group.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: The first network device receives a source switching message from the first computing device. The source switching message is used by the first network device to update multicast source information. The multicast source information is used to indicate the multicast source in the multicast group. The first network device sends the source switching message.

6. A message transmission method characterized by comprising: The method includes: A first network device receives a first message from a first computing device. The first computing device is connected to the first network device. The first computing device is a multicast source in a multicast group. The first message carries first identification information. The first network device sends a fifth message to the second computing device based on the first identification information. The second computing device is connected to the first network device and is a member of the multicast group.

7. The method of claim 6, wherein, The first identification information is the first proxy IP address, and the destination IP address of the first packet and the source IP address of the fifth packet are the first proxy IP address.

8. The method according to claim 6 or 7, characterized in that, The method further includes: The first network device receives a sixth message from the second computing device, the sixth message being a response message to the fifth message, and the sixth message carrying the first identification information; The first network device sends a fourth message to the first computing device based on the sixth message and the first identification information, wherein the fourth message is a response message to the first message.

9. The method according to any one of claims 6 to 8, characterized in that, The method further includes: The first network device receives a second IGMP message from the second computing device. The second IGMP message includes the first identification information and is used to instruct the second computing device to join the multicast group.

10. A message transmission method characterized by comprising: The method includes: The first computing device obtains the first identification information, and the first computing device is the multicast source in the multicast group; The first computing device sends a first message to the first network device. The first message carries the first identification information. The first identification information is used to instruct the first network device to obtain a second message based on the first message. The second message is a multicast message.

11. The method of claim 10, wherein, The first identification information is the first proxy IP address, and the destination IP address of the first message is the first proxy IP address.

12. The method according to claim 10 or 11, characterized in that, The method further includes: The first computing device receives a fourth message from the first network device, the fourth message carrying the first identification information, and the fourth message being a response message to the first message.

13. The method according to any one of claims 10 to 12, characterized in that, The method further includes: The first computing device sends a first IGMP message to the first network device. The first IGMP message includes the first identification information and is used to instruct the first computing device to join the multicast group.

14. The method of claim 13, wherein, The method further includes: The first computing device sends a multicast message in the multicast group, the multicast message carrying the first identification information, and the multicast message indicating that the first computing device is a multicast source in the multicast group.

15. A message transmission method characterized by comprising: The method includes: The second network device receives a second message from the first network device. The second message carries second identification information, which is used to indicate that the second message is a multicast message. The second network device sends a seventh message to the third computing device based on the second identification information. The seventh message is obtained by the second network device replacing the second identification information with the first identification information. The third computing device is connected to the second network device and is a member of the multicast group.

16. The method of claim 15, wherein, The method further includes: The second network device receives an eighth message from the third computing device, the eighth message being a response message to the seventh message; The second network device obtains a third message based on the eighth message and the first identification information. The third message is a response message to the second message and includes the first identification information. The second network device sends the third message to the first network device, the first network device being connected to the first computing device, and the first computing device being the multicast source in the multicast group.

17. The method of claim 16, wherein, The first identification information is the first proxy IP address, the second identification information is the second proxy IP address, the source IP address of the seventh message is the first proxy IP address, and the destination IP address of the second message is the second proxy IP address.

18. The method of any one of claims 15-17, wherein, The method further includes: The second network device receives a third IGMP message from the third computing device, the third IGMP message including the first identification information, the third IGMP message being used to instruct the third computing device to join the multicast group.

19. A message transmission method characterized by comprising: The method includes: A third computing device receives a seventh message from a second network device, the seventh message including the first identification information, and the third computing device is connected to the second network device. The third computing device sends an eighth message to the second network device based on the first identification information. The eighth message is a response message to the seventh message.

20. The method of claim 19, wherein, The first identification information is the first proxy IP address, and the source IP address of the seventh message and the destination IP address of the eighth message are the first proxy IP address.

21. The method according to claim 19 or 20, characterized in that, The method further includes: The third computing device sends a third IGMP message to the second network device. The third IGMP message includes the first identification information and is used to instruct the third computing device to join the multicast group.

22. The method of claim 21, wherein, The method further includes: The third computing device receives a multicast message, the multicast message carrying the first identification information, and the multicast message being used to indicate the multicast source in the multicast group.

23. A switch device, comprising: Includes modules or units for performing the method as described in any one of claims 1 to 5, or for performing the method as described in any one of claims 6 to 9, or for performing the method as described in any one of claims 15 to 18.

24. A server, comprising: Includes modules or units for performing the method as described in any one of claims 10 to 14, or for performing the method as described in any one of claims 19 to 22.

25. A switch device, comprising: The switching device includes: a processor coupled to a memory, the memory storing at least one computer program instruction, the at least one computer program instruction being loaded and executed by the processor to enable the switching device to implement the method of any one of claims 1 to 5, or the method of any one of claims 6 to 9, or the method of any one of claims 15 to 18.

26. A server, comprising: The server includes: a processor coupled to a memory storing at least one computer program instruction, the at least one computer program instruction being loaded and executed by the processor to enable the server to implement the method of any one of claims 10 to 14, or the method of any one of claims 19 to 22.

27. A network system, characterized by The system includes means for performing the method as claimed in any one of claims 1 to 5, means for performing the method as claimed in any one of claims 10 to 14, means for performing the method as claimed in any one of claims 15 to 18, and means for performing the method as claimed in any one of claims 19 to 22; or, The system includes means for performing the method as claimed in any one of claims 6 to 9, means for performing the method as claimed in any one of claims 10 to 14, and means for performing the method as claimed in any one of claims 19 to 22.

28. A computer-readable storage medium, characterized in that, The storage medium stores at least one instruction that, when executed on a computer, causes the computer to perform the method as described in any one of claims 1 to 5, or causes the computer to perform the method as described in any one of claims 6 to 9, or causes the computer to perform the method as described in any one of claims 10 to 14, or causes the computer to perform the method as described in any one of claims 15 to 18, or causes the computer to perform the method as described in any one of claims 19 to 22.

29. A computer program product, characterised in that, The computer program product includes one or more computer program instructions that, when loaded and run by a computer, cause the computer to perform the method as described in any one of claims 1 to 5, or cause the computer to perform the method as described in any one of claims 6 to 9, or cause the computer to perform the method as described in any one of claims 10 to 14, or cause the computer to perform the method as described in any one of claims 15 to 18, or cause the computer to perform the method as described in any one of claims 19 to 22.

Citation Information

Patent Citations

  • Method and apparatus for forwarding multicast message

    CN101252529A

  • Method, device and system for transmitting live video

    CN107948762A

  • Message transmission method, device and system

    CN116132364A

  • Packet processing system and method thereof

    US20090238183A1

  • Method and apparatus for transmitting data

    WO2008037202A1