Multicast message transmission method and apparatus

By carrying the multicast routing information of all child nodes in the message header of the first node and splitting the multicast routing information in the message header, the problem of low message forwarding performance in the prior art is solved, and more efficient multicast message transmission is achieved.

WO2025060875A1PCT designated stage expired Publication Date: 2025-03-27HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/116376
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-19
Filing Date
2024-09-02
Publication Date
2025-03-27

AI Technical Summary

Technical Problem

In the existing multicast message transmission methods, the forwarding performance of the message is low, resulting in a decrease in network resource utilization and an increase in network congestion.

Method used

The message header of the first node carries the multicast routing information of all children. The first node splits the multicast routing information in the message header to generate the message sent to each child node.

Benefits of technology

By reducing the number of messages splitting and editing, the forwarding efficiency of multicast messages is improved, the utilization rate of network resources is improved, and the possibility of network congestion is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024116376_27032025_PF_FP_ABST
    Figure CN2024116376_27032025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed are a multicast message transmission method and apparatus, which relate to the technical field of communications. In the method, a first node may send, to a second node, first multicast routing information, which comprises multicast routing information of the second node and multicast routing information of a third node, and first positioning information used for determining the multicast routing information of the second node, such that after receiving the first multicast routing information and the first positioning information, the second node determines the multicast routing information of the second node from the first multicast routing information according to the first positioning information. In the present application, the first node obtains the multicast routing information of the second node without the need to split the first multicast routing information for the second node. In this way, the number of times a multicast message is split and edited is reduced, thereby improving the forwarding efficiency of the multicast message.
Need to check novelty before this filing date? Find Prior Art

Description

Method and device for multicast message transmission

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on September 19, 2023, with application number 202311221767.2 and invention name “A method and device for multicast message transmission”. The entire contents of the application are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of communication technology, and in particular to a method and device for multicast message transmission. Background Art

[0003] Multicast refers to a sender sending a message carrying the same data to multiple specific receivers. Initially, the sender copied the data in a message into multiple copies based on the number of receivers, encapsulated each copy, and sent them to each receiver. This practice resulted in duplicate message transmission on some links, reducing network resource utilization and increasing the possibility of network congestion.

[0004] To address this issue, a method was proposed in which the header of a message sent to a first node carries the multicast routing information for all of the first node's child nodes in the multicast tree. After receiving the message, the first node splits the multicast routing information for all child nodes contained in the message header, obtains the multicast routing information for each child node, and then compiles a corresponding message for each child node. This process requires the first node to perform multiple splitting and compiling of the received message before generating a message for each child node, resulting in poor message forwarding performance.

[0005] Summary of the Invention

[0006] The present application provides a method and apparatus for multicast message transmission, which are used to solve the problem of low message forwarding performance.

[0007] In a first aspect, the present application provides a method for transmitting a multicast message. The method is applied to a first node, and the method includes: the first node determines a first multicast message. The first multicast message includes: first positioning information, first multicast routing information and data. The first multicast routing information includes: multicast routing information of the second node and multicast routing information of the third node. The multicast routing information of the second node is used to indicate: the descendant node of the second node in the multicast tree corresponding to the data. The multicast routing information of the third node is used to indicate the descendant node of the third node in the multicast tree. The first node sends a first multicast message to the second node. The first positioning information is used to determine the multicast routing information of the second node in the first multicast routing information. The second node and the third node are child nodes of the first node in the multicast tree, and the second node and the third node are different.

[0008] The first node sends first multicast routing information including the multicast routing information of the second node and the multicast routing information of the third node, and first positioning information for determining the multicast routing information of the second node to the second node, so that after receiving the first multicast routing information and the first positioning information, the second node determines the multicast routing information of the second node from the first multicast routing information according to the first positioning information. In the present application, the first node does not need to split the first multicast routing information for the second node to obtain the multicast routing information of the second node. In this way, the number of times the multicast message is split and edited is reduced, and the forwarding efficiency of the multicast message is improved.

[0009] In one possible implementation, a first node receives a second multicast message from a fourth node. The second multicast message includes: second multicast routing information and data. The second multicast routing information includes: multicast routing information of the first node. The multicast routing information of the first node includes: multicast routing information of the second node and multicast routing information of the third node. The first node is a child node of the fourth node in the multicast tree. The first node determines the first multicast message based on the second multicast message. In this way, the first node can determine the first multicast message sent to the second node based on the received second multicast message without the need for other information, thereby improving the forwarding performance of the message.

[0010] In another possible implementation, the second multicast message also includes second positioning information. The second positioning information is used to determine the multicast routing information of the first node within the second multicast routing information. In this way, when a node in a multicast tree includes one or more child nodes, all nodes can use the same message structure (i.e., all carry positioning information). This avoids using different message encapsulation formats within the multicast tree, which could affect message forwarding efficiency.

[0011] In another possible implementation, the multicast routing information of the first node also includes first indication information. The first indication information is used to indicate the length of the multicast routing information of the second node. The first node determines the first multicast message based on the second multicast message, including: the first node determines the first positioning information based on the first indication information, determines the first multicast routing information based on the second multicast routing information, and the first node performs message encapsulation on the first positioning information, the first multicast routing information and the data to obtain the first multicast message. In the case where the second node is the first child node of the first node, the first node determines the first positioning information based on the first indication information. In this way, in the case where the second node needs to obtain the multicast routing information of the child node of the second node, it can be directly obtained based on the first positioning information, which reduces the number of times the editing node edits the message and improves the efficiency of forwarding multicast messages.

[0012] In another possible implementation, the multicast routing information of the first node also includes: second indication information and third indication information. The second indication information is used to indicate: the length of the multicast routing information of the third node. The third indication information is used to indicate: the first indication information is associated with the multicast routing information of the second node, and the second indication information is associated with the multicast routing information of the third node. The first node determines the first positioning information based on the first indication information, including: the first node determines the first positioning information based on the first indication information and the third indication information. In the case where the second node is neither the first nor the last child node of the first node, the first node determines the first positioning information based on the first indication information and the third indication information. In this way, when the second node needs to obtain the multicast routing information of the child node of the second node, it can be directly obtained based on the first positioning information, which reduces the number of times the editing node edits the message and improves the efficiency of forwarding multicast messages.

[0013] In another possible implementation, the multicast routing information of the first node further includes: second indication information and fourth indication information. The second indication information is used to indicate: the length of the multicast routing information of the third node. The fourth indication information is used to indicate the total length of the multicast routing information of the first node. The first node determines the first multicast message based on the second multicast message, including: the first node determines the first positioning information based on the second indication information and the fourth indication information. The first node determines the first multicast routing information based on the second multicast routing information. And the first node performs message encapsulation on the first positioning information, the first multicast routing information, and the data to obtain the first multicast message. When the second node is the last child node of the first node, the first node determines the first positioning information based on the second indication information and the fourth indication information. In this way, when the second node needs to obtain the multicast routing information of the second node's child nodes, it can directly obtain it based on the first positioning information, reducing the number of times the editing node edits the message and improving the efficiency of forwarding multicast messages.

[0014] In another possible implementation, the first node determines the first multicast routing information based on the second multicast routing information, including: the first node uses the second multicast routing information as the first multicast routing information. Alternatively, the first node obtains the multicast routing information of the first node from the second multicast routing information to obtain the first multicast routing information. Compared with the first node splitting the second multicast routing information carried in the second multicast message, in the present application, when the second multicast routing information is used as the first multicast routing information, the first node does not split the second multicast routing information carried in the second multicast message, but directly encapsulates the second multicast routing information and forwards it to the second node, thereby improving the efficiency of forwarding messages. When the first multicast routing information is part of the second multicast routing information, the first node splits the second multicast routing information to obtain the first multicast routing information. The first node can obtain the first multicast routing information after completing one split, thereby improving the efficiency of forwarding messages.

[0015] In another possible implementation, the first positioning information includes first length information. The first length information is used to indicate the length of the multicast routing information of the second node.

[0016] The first length information may include different contents, and two possible examples are given below.

[0017] Example 1: The first length information includes: a first value. The first value is the length of the multicast routing information of the second node.

[0018] Example 2: The first length information includes: a first value and a second value. The first value and the second value together represent the length of the multicast routing information of the second node. The unit length corresponding to the first value is different from the unit length corresponding to the second value.

[0019] In another possible implementation, the first positioning information further includes: first location information. The first location information is used to indicate: a location of the multicast routing information of the second node in the first multicast message.

[0020] The first location information may include different contents, and two possible examples are given below.

[0021] Example 1: The first position information includes: a first offset value. The first offset value is an offset of a position of the multicast routing information of the second node in the first multicast message relative to a reference position in the first multicast message.

[0022] Example 2: The first position information includes: a first offset value and a second offset value. The first offset value is the offset of the position of the first field in the first multicast message relative to the reference position in the first multicast message. The second offset value is the offset of the position of the second node's multicast routing information in the first multicast message relative to the position of the first field in the first multicast message. The first field is the field where the second node's multicast routing information is located among the multiple fields obtained by dividing the first multicast message using the first unit length.

[0023] In a second aspect, the present application provides a first node, which includes a processing unit and a communication unit.

[0024] The processing unit is configured to determine a first multicast message. The first multicast message includes first positioning information, first multicast routing information, and data. The first multicast routing information includes multicast routing information of a second node and multicast routing information of a third node. The multicast routing information of the second node indicates a descendant node of the second node in a multicast tree corresponding to the data, and the multicast routing information of the third node indicates a descendant node of the third node in the multicast tree.

[0025] The communication unit is configured to send a first multicast message to the second node. The first positioning information is configured to determine the multicast routing information of the second node in the first multicast routing information. The second node and the third node are child nodes of the first node in the multicast tree, and the second node and the third node are different.

[0026] In one possible implementation, the communication unit is further configured to receive a second multicast message from a fourth node. The second multicast message includes second multicast routing information and data. The second multicast routing information includes multicast routing information of the first node. The multicast routing information of the first node includes multicast routing information of the second node and multicast routing information of the third node. The first node is a child node of the fourth node in the multicast tree. The processing unit is specifically configured to determine the first multicast message based on the second multicast message.

[0027] In another possible implementation, the second multicast message further includes second positioning information. The second positioning information is used to determine the multicast routing information of the first node in the second multicast routing information.

[0028] In another possible implementation, the multicast routing information of the first node further includes first indication information. The first indication information is used to indicate the length of the multicast routing information of the second node. The processing unit is specifically configured to determine the first positioning information based on the first indication information. The processing unit is further specifically configured to determine the first multicast routing information based on the second multicast routing information. The processing unit is further specifically configured to perform message encapsulation on the first positioning information, the first multicast routing information, and the data to obtain a first multicast message.

[0029] In another possible implementation, the multicast routing information of the first node further includes second indication information and third indication information. The second indication information is used to indicate the length of the multicast routing information of the third node. The third indication information is used to indicate that the first indication information is associated with the multicast routing information of the second node, and the second indication information is associated with the multicast routing information of the third node. The processing unit is specifically configured to determine the first positioning information based on the first indication information and the third indication information.

[0030] In another possible implementation, the multicast routing information of the first node further includes second indication information and fourth indication information. The second indication information is used to indicate the length of the multicast routing information of the third node, and the fourth indication information is used to indicate the total length of the multicast routing information of the first node. The processing unit is specifically configured to determine the first positioning information based on the second indication information and the fourth indication information. The processing unit is further specifically configured to determine the first multicast routing information based on the second multicast routing information. The processing unit is further specifically configured to perform message encapsulation on the first positioning information, the first multicast routing information, and the data to obtain a first multicast message.

[0031] In another possible implementation, the processing unit is specifically configured to: use the second multicast routing information as the first multicast routing information, or obtain the multicast routing information of the first node from the second multicast routing information to obtain the first multicast routing information.

[0032] In another possible implementation, the first positioning information includes first length information. The first length information is used to indicate the length of the multicast routing information of the second node.

[0033] The first length information may include different contents, and two possible examples are given below.

[0034] Example 1: The first length information includes: a first value. The first value is the length of the multicast routing information of the second node.

[0035] Example 2: The first length information includes: a first value and a second value. The first value and the second value together represent the length of the multicast routing information of the second node. The unit length corresponding to the first value is different from the unit length corresponding to the second value.

[0036] In another possible implementation, the first positioning information further includes first location information. The first location information is used to indicate a location of the multicast routing information of the second node in the first multicast message.

[0037] The first location information may include different contents, and two possible examples are given below.

[0038] Example 1: The first position information includes: a first offset value. The first offset value is an offset of a position of the multicast routing information of the second node in the first multicast message relative to a reference position in the first multicast message.

[0039] Example 2: The first position information includes: a first offset value and a second offset value. The first offset value is the offset of the position of the first field in the first multicast message relative to the reference position in the first multicast message. The second offset value is the offset of the position of the second node's multicast routing information in the first multicast message relative to the position of the first field in the first multicast message. The first field is the field where the second node's multicast routing information is located among the multiple fields obtained by dividing the first multicast message using the first unit length.

[0040] In a third aspect, the present application provides a communication device. The communication device includes a processor. The processor is connected to a memory, the memory being configured to store computer-executable instructions, and the processor executes the computer-executable instructions stored in the memory to cause the communication device to implement the operating steps of the method described in the first aspect or any possible design of the first aspect.

[0041] In a fourth aspect, the present application provides a chip. The chip includes a processor and an interface. The processor is coupled to a memory via the interface, and when the processor executes a computer program or instruction in the memory, the chip implements the operating steps of the method described in the first aspect or any possible design of the first aspect.

[0042] In a fifth aspect, the present application provides a computer-readable storage medium. The computer-readable storage medium includes computer software instructions. When the computer software instructions are executed in a computing device, the computing device performs the operating steps of the method described in the first aspect or any possible implementation of the first aspect.

[0043] In a sixth aspect, the present application provides a computer program product. When the computer program product is executed on a computing device, the computing device is caused to execute the operation steps of the method described in the first aspect or any possible implementation of the first aspect.

[0044] The beneficial effects of the second to sixth aspects above can be referred to the description of the first aspect or any implementation of the first aspect, and will not be repeated here. Based on the implementations provided in the above aspects, this application can also be further combined to provide more implementations, provided that the solutions are not contradictory. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] FIG1A is a schematic diagram of a message multicast provided in an embodiment of the present application;

[0046] FIG1B is a schematic diagram of a topological connection and a multicast tree of a first entity provided in an embodiment of the present application;

[0047] FIG2 is a schematic diagram of a topological connection and a multicast tree of a second entity provided in an embodiment of the present application;

[0048] FIG3A is a schematic diagram of a topological connection of another entity provided in an embodiment of the present application;

[0049] FIG3B is a schematic diagram of multicast message transmission between routers provided in an embodiment of the present application;

[0050] FIG4 is a schematic diagram of the structure of a first multicast message provided in an embodiment of the present application;

[0051] FIG5 is a schematic diagram of the structure of multicast information of a node provided in an embodiment of the present application;

[0052] FIG6 is a schematic diagram of the association relationship between multicast routing identifiers and nodes provided in an embodiment of the present application;

[0053] FIG7 is a schematic diagram of a first process for obtaining a multicast message provided by the present application;

[0054] FIG8 is a flow chart of a method for multicast message transmission according to an embodiment of the present application;

[0055] FIG9 is a schematic diagram of a process for obtaining multicast routing information of a node using positioning information according to an embodiment of the present application;

[0056] FIG10 is a schematic diagram of the structure of a multicast tree provided in an embodiment of the application;

[0057] FIG11 is a schematic diagram of the structure of the first second multicast message provided in an embodiment of the present application;

[0058] FIG12 is a schematic diagram of the structure of a first multicast message provided in an embodiment of the present application;

[0059] FIG13 is a schematic diagram of the structure of a second first multicast message provided in an embodiment of the present application;

[0060] FIG14 is a schematic diagram of the structure of a second second multicast message provided in an embodiment of the present application;

[0061] FIG15 is a schematic diagram of the structure of a second multicast tree provided in an embodiment of the present application;

[0062] FIG16 is a schematic diagram of the structure of the third second multicast message provided by the present application;

[0063] FIG17 is a schematic diagram of multicast message forwarding provided in an embodiment of the present application;

[0064] FIG18 is an example diagram of a first type of first multicast message provided in an embodiment of the present application;

[0065] FIG19 is an example diagram of a second first multicast message provided in an embodiment of the present application;

[0066] FIG20 is an example diagram of a third first multicast message provided in an embodiment of the present application;

[0067] FIG21 is an example diagram of a fourth first multicast message provided in an embodiment of the present application;

[0068] FIG22 is an example diagram of the fifth first multicast message provided in an embodiment of the present application;

[0069] FIG23 is an example diagram of the sixth first multicast message provided in an embodiment of the present application;

[0070] FIG24 is an example diagram of the seventh first multicast message provided in an embodiment of the present application;

[0071] FIG25 is a schematic structural diagram of a communication device provided in an embodiment of the present application;

[0072] FIG26 is a schematic diagram of the hardware structure of the communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0073] To facilitate the clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, the words "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. Those skilled in the art will understand that the words "first" and "second" do not limit the quantity or execution order, and the words "first" and "second" do not necessarily mean different.

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

[0075] The present application can be applied to a scenario where a sending end needs to carry the same data in a message and send it to multiple receiving ends. Figure 1A is a schematic diagram of a message multicast provided in an embodiment of the present application. As shown in Figure 1A, the message can be sent from the sending end and pass through multiple multicast nodes (hereinafter referred to as nodes) to reach multiple receiving ends. The message can be called a multicast message, and the data in the multicast message transmitted between different nodes is the same. Among them, the sending end can be, for example, a server, and the receiving end can be, for example, a client. The node has the ability to forward multicast messages and can multicast forward the received multicast messages. A node can include one entity or multiple entities. An entity can belong to only one node or multiple nodes. For example, Figure 1B is a schematic diagram of the topological connection and multicast tree of the first entity provided in an embodiment of the present application. In (a) in Figure 1B and (b) in Figure 1B, the left side is the network topology diagram of the entity, and the right side is the multicast tree. Referring to (a) in Figure 1B , node Z includes multiple entities: entity A, entity B, entity C, entity D, and entity E. Node E includes one entity: entity E. Referring to (b) in Figure 1B , node X includes multiple entities: entity A and entity B. It can be seen that entity A and entity B belong to both node Z and node X.

[0076] For the convenience of description, in the embodiments of the present application, if an entity belongs to only one node, the node and the entity use the same identifier. In this case, the address of the entity can also be described as the address of the node, and the action performed by the node is also the action performed by the entity. Therefore, when the address of a node is mentioned below, it is equivalent to the address of the entity in the node. For example, a node that only includes entity A is called node A. In this case, the address of node A is equivalent to the address of entity A. A node that only includes entity B is called node B. In this case, the address of node B is equivalent to the address of node entity B.

[0077] In the embodiments of this application, an entity may also be referred to as a functional entity. An entity may be a physical entity or a virtual entity. Examples of physical entities include routers, switches, servers, hosts, network cards, line cards, chips, chip die (DIE), terminals (e.g., mobile terminals), and internal modules of devices. Examples of virtual entities include virtual machines, containers, processes, and threads. When the entity is a physical entity, the node may also be referred to as a multicast device.

[0078] In order to make the method provided by this application clearer, we first briefly introduce some concepts involved in this application.

[0079] 1. Multicast tree

[0080] A multicast tree is a path from a source node to all destination nodes generated for a combination of source nodes and destination nodes based on a specific network topology through a routing protocol (e.g., protocol independent multicast (PIM), interior gateway protocol (IGP), etc.) or other methods (e.g., manual configuration, controller calculation, etc.). The path is a tree structure with the source node as the root node and the destination node as the leaf node, which is called a multicast tree. A multicast tree can also be called a multicast distribution tree (MDT). For example, Figure 2 is a schematic diagram of the topological connection and multicast tree of the second entity provided in an embodiment of the present application. As shown in Figure 2, the left side is a network topology diagram of an entity. If the source node is node B and the destination nodes are node C, node D and node E, an example of a multicast tree generated for the combination of the source node and the destination node can be seen on the right side of Figure 2.

[0081] The sending end and / or the receiving end may be nodes in the multicast tree or may not be nodes in the multicast tree. If the former, the source node may be the sending end and the destination node may be the receiving end. For ease of description, unless otherwise specified, the embodiments of the present application are described using the sending end and the receiving end as nodes in the multicast tree as an example to illustrate the methods provided in the embodiments of the present application. If the receiving end is not a node in the multicast tree, after the data reaches the leaf node, the leaf node will send the received data to the receiving end connected to it.

[0082] In addition, the module other than the network card in a server can be considered as a node (assuming it is node a), the network card in the server can be considered as another node (assuming it is node b), and node b can be considered as a child node of node a. The module other than the line card in a router can be considered as a node (assuming it is node c), the line card in the router can be considered as another node (assuming it is node d), and node d can be considered as a child node of node c. For example, Figure 3A is a topological connection diagram of another entity provided in an embodiment of the present application. As shown in Figure 3A, A is a router, node A0 in Figure 3A is a module other than the line card in the router, and node A1, node A2 and node A3 are three line cards in the router. A can send multicast messages to node B, node C, node D, node E, node F and node G respectively through the interfaces on the three line cards. At this time, node A1, node A2 and node A3 can be child nodes of node A0. A can also be a server. In this case, nodes A1, A2, and A3 are the three network cards in the server. A can send multicast messages to nodes B, C, D, E, F, and G respectively through the network ports on the three network cards.

[0083] 2. Child nodes

[0084] The child node of a node refers to the node in the multicast tree that the message of this node can reach through one-hop multicast (i.e., forwarded through only one multicast). Among them, one-hop multicast refers to searching a multicast forwarding table. For example, node R in Figure 2 is the child node of node B, node S is the child node of node R, and node E is the child node of node R. In addition, if the multicast message sent by a node that supports multicast in the multicast tree passes through one or more nodes that do not support multicast and arrives at another node that supports multicast in the multicast tree, then the latter node that supports multicast is the child node of the previous node that supports multicast, that is, the previous node that supports multicast arrived at the latter node that supports multicast after one-hop multicast. For example, Figure 3B is a schematic diagram of multicast message transmission between routers provided in an embodiment of the present application. As shown in Figure 3B, router A and router C are routers that support multicast, and router B is a router that does not support multicast. At this time, router A sends the multicast message to router C through router B, and router A and router C are both nodes in the multicast tree, then router C is a child node of router A.

[0085] When a node has no child nodes, it is called a leaf node. When a node's child nodes are leaf nodes of a multicast tree, they are called leaf child nodes of the node. When a node's child nodes are not leaf nodes of a multicast tree, they are called non-leaf child nodes of the node.

[0086] In the description of this application, unless otherwise specified, the child nodes of a node mentioned below in this application refer to the child nodes of the node in the multicast tree. The child nodes can also have other names, such as multicast child nodes, etc., which are not limited in this application.

[0087] In some possible examples, a node belonging to an entity may be a child node of another node belonging to the same entity. For example, referring to (b) in FIG1B , node X belonging to entity A (or entity B) is a child node of node Z belonging to entity A (or entity B). Of course, a node belonging to an entity may not be a child node of another node belonging to the same entity.

[0088] 3. Brother nodes

[0089] If a node has multiple child nodes, then these multiple child nodes are sibling nodes of each other. For example, in the figure on the right side of Figure 2, node R has child nodes S and E, then child nodes S and E are sibling nodes of each other.

[0090] 4. Descendant nodes

[0091] A node's child nodes, its child nodes, and so on can all be called its descendant nodes. For example, in the diagram on the right side of Figure 2, the descendant nodes of node B include node B's child nodes (i.e., node R), node R's child nodes (i.e., nodes E and S), and node S's child nodes (i.e., nodes C and D). That is, the descendant nodes of node B include nodes R, E, S, C, and D.

[0092] 5. Potential child nodes

[0093] A potential child node of a node refers to a node to which the messages of the node can be reached via one-hop multicast. For example, in Figure 2, node R and node A are both potential child nodes of node B, and node F, node R, node C, and node D are all potential child nodes of node S. It is understandable that the potential child nodes of a node include the child nodes of the node in the multicast tree. When the potential child nodes of a node are located in the multicast tree, the potential child nodes are also the child nodes of the node in the multicast tree. Potential child nodes can also have other names, such as multicast objects, preparatory child nodes, etc., which are not limited in this application.

[0094] 6. Unicast and multicast messages

[0095] Unicast messages and multicast messages include two definitions, which are explained below.

[0096] The first definition of unicast packets and multicast packets is described as follows.

[0097] Messages are classified according to the behavior of the node in processing the message. At this time, unicast messages and multicast messages are both for the nodes in the embodiment of the present application. Whether a message is a unicast message or a multicast message is relative. Specifically:

[0098] For a node, if the received message does not contain any multicast routing information that the node needs to process or does not contain any multicast routing information, the node does not need to multicast forward the message (or does not need to look up the multicast forwarding table), but instead performs unicast forwarding based on the unicast encapsulation in the message (or uses the destination address of the unicast encapsulation to look up the unicast forwarding table for forwarding) or consumes the message (that is, it processes the message itself and does not need to forward it again). At this time, the message is a unicast message for the node.

[0099] For a node, if the received message contains multicast routing information and the node needs to process the multicast routing information, that is, needs to perform multicast forwarding according to the multicast routing information (or needs to search the multicast forwarding table), then the message is a multicast message for the node.

[0100] For example, nodes A and B are topologically connected, and nodes B and C are topologically connected. The message sent by node A to node C needs to pass through node B before reaching node C. If the message includes multicast routing information and unicast encapsulation, and the destination address of the unicast encapsulation is the address of node C, node B needs to forward the message to node C according to the unicast encapsulation, and node C needs to forward the message according to the multicast routing information. In this case, the message is a unicast message for node B and a multicast message for node C.

[0101] For another example, node A and node B are topologically connected. Node A sends a message to node B. The message does not include multicast routing information, but includes unicast encapsulation. The destination address of the unicast encapsulation is the address of node B. Then, the message is a unicast message for node B.

[0102] The second definition of unicast packets and multicast packets is described as follows.

[0103] Messages are classified according to their structure. Specifically, a message whose outermost header is a unicast header is a unicast message, and a message whose outermost header is a multicast header is a multicast message. An IP header whose destination IP address is a unicast address is a unicast header, and a MAC header whose destination media access control (MAC) address is a unicast address is also a unicast header. An IP header whose destination IP address is a multicast address is a multicast header, and a MAC header whose destination MAC address is a multicast address is also a multicast header. The multicast information in the embodiments of the present application is also a multicast header.

[0104] Based on the two definitions of unicast and multicast messages described above, in order to make the method provided in the embodiments of the present application clearer, the first definition is used in the embodiments of the present application to describe the method provided in the embodiments of the present application. When the second definition is used in the embodiments of the present application, whether the message is a unicast message or a multicast message can be determined based on the specific structure of the message. For example, in the following description, if the first node sends a first multicast message to the second node, and the outermost header of the first multicast message is a unicast header, the first multicast message can be described as a unicast message when the second definition is used.

[0105] The unicast encapsulation in the message in the embodiment of the present application can be the fourth version (abbreviated as IPv4) unicast encapsulation of the Internet Protocol (Internet Protocol, IP), the sixth version (abbreviated as IPv6) unicast encapsulation of IP, or any other possible encapsulation form. In the embodiment of the present application, any possible form of unicast encapsulation can be performed on the message containing multicast routing information, or unicast encapsulation can be omitted. The unicast encapsulation of the message enables the message to traverse the network between two nodes (or be transmitted between two nodes) in the form of unicast. The multicast routing information mentioned in the explanation of unicast messages and multicast messages refers to the multicast routing information defined below in this application.

[0106] In some possible examples, when the multicast message is an IP message and the destination IP address in the IP header of the multicast message is a unicast address, the IP header of the multicast message is the unicast encapsulation of the multicast message. If the multicast message in the embodiment of the present application is an IP message, then in the description of the present application, the destination address refers to the destination IP address.

[0107] In the following of this application, if a node receives a multicast message and the multicast message is an IP message, the node first determines whether the destination address in the IP header of the multicast message is its own address. If so, it parses the multicast information after the IP header of the multicast message and forwards the multicast message according to the multicast information. In the process of the node sending a multicast message to other nodes, the node determines the multicast information and data that need to be sent to other nodes, and the node determines the address of the next hop (i.e., the address of the other node), fills the address of the other node into the destination address field in the IP header, and encapsulates the multicast information and data sent to other nodes in the IP header to obtain the multicast message sent to other nodes, and then sends the multicast message to other nodes. For the sake of brevity, this application does not describe this process in detail in each step. It is described here in a unified manner and will not be repeated here.

[0108] Regarding the data in the multicast message, the data is different for different parts in the multicast message. Specifically, for a certain part in the multicast message, the data refers to the part after the part in the multicast message. For example, Figure 4 is a structural diagram of the first multicast message provided in an embodiment of the present application. As shown in Figure 4, the multicast information can be carried in the message header. For the outer layer encapsulation, the data is the part after the outer layer encapsulation (i.e., "multicast information of the second node + inner layer encapsulation + payload"). For the multicast information of the second node, the data is the part after the multicast information of the second node (i.e., "inner layer encapsulation + payload"). For the inner layer encapsulation, the data is the part after the inner layer encapsulation (i.e., "payload"). The data mentioned in the embodiments of the present application are all for the multicast information in the multicast message. For example, the data in the multicast message shown in Figure 4 is "inner layer encapsulation + payload".

[0109] The above is a brief introduction to some of the concepts involved in this application.

[0110] FIG5 is a schematic diagram of the structure of multicast information of a node provided in an embodiment of the present application. As shown in FIG5 , a node can carry the multicast information of the node in the message header of a multicast message. The multicast information of the node may include: the total length of the multicast routing information of the node and the multicast routing information of the node. The multicast routing information of the node includes: the multicast routing identifier (MRID) of the node, the addressing field of the node, and the multicast routing information of the node's child nodes. The multicast routing information of the node's child nodes is used to indicate the descendant nodes of the node's child nodes in the multicast tree determined by data.

[0111] (1) MRID of the node.

[0112] A node's MRID is used to determine its child nodes in the multicast tree. The MRID can be described as a bit sequence. In this case, the node must send the multicast message to the child nodes corresponding to the bits with a value of 1 in the MRID. In the multicast tree shown in Figure 2, the multicast routing identifier of node R is 011. The multicast routing identifier of node R indicates that node R must forward multicast messages to nodes S and E. Figure 6 shows the relationship between multicast routing identifiers and nodes, as provided in an embodiment of the present application.

[0113] Table 1

[0114] (2) The node's addressing field.

[0115] The addressing field of a node is used to determine the length of the multicast routing information of the non-leaf child nodes of the node. For example, the addressing field of node R is used to determine the length of the multicast routing information of node S.

[0116] The node receives a multicast message to be forwarded, which contains: the total length of the node's multicast routing information, MRID, addressing field, and multicast routing information of the node's child nodes. Based on the total length, MRID, addressing field, and multicast routing information of the node's child nodes carried by the multicast message to be forwarded, the node obtains the multicast routing information of the node's child nodes to be sent to, as well as the multicast routing information of the node's child nodes to be sent to as needed, and encapsulates and generates a multicast message to be forwarded. The detailed process is described as follows. FIG7 is a schematic diagram of the first process of obtaining a multicast message provided by the present application. As shown in FIG7, the process includes the following steps ① to ④.

[0117] Step 1: The node loads the multicast message to be forwarded and obtains the multicast information of the node.

[0118] Step 2: The node parses the multicast information and obtains the multicast routing information, which includes the total length, MRID, addressing field, and the multicast routing information of all child nodes of the node.

[0119] Step ③: The node obtains the multicast routing information of each child node of the node based on the total length, MRID, addressing field and the multicast routing information of all child nodes of the node.

[0120] Step ④: The node encapsulates the multicast routing information of each child node of the node respectively, obtains the multicast message sent to each child node of the node, and obtains the multicast message to be forwarded.

[0121] During this process, the node must obtain the multicast routing information corresponding to each of its child nodes based on the total length, MRID, addressing field, and the multicast routing information of all of its child nodes. Furthermore, based on this multicast routing information, the node encapsulates the multicast messages destined for each child node. Therefore, if a node contains two or more child nodes, the node must repeatedly edit and split the multicast routing information of all of its child nodes to obtain the multicast routing information for each child node, and then encapsulate the multicast messages destined for each child node. This frequent splitting process is time-consuming and impacts the efficiency of multicast message forwarding.

[0122] To address the above-mentioned issues, the present application provides a method for multicast message transmission. The principle of implementing multicast message transmission in this method is described as follows: a node determines a multicast message to be forwarded. The message header of the data message to be forwarded carries: multicast routing information for locating the node to receive the data message to be forwarded, the node's multicast routing information, and data. The node's multicast routing information includes multicast routing information for multiple child nodes of the node. The node forwards the multicast message to the node to receive the data message to be forwarded.

[0123] The method for transmitting multicast messages provided herein differs from the method described in FIG. 7 in that a node encapsulates the multicast routing information of its multiple child nodes and location information for determining the intended child node for the multicast routing information within the multicast message header, and then transmits the multicast message to the intended child node. Upon receiving the multicast message, the child node determines the multicast routing information for the child node from the multicast routing information of the multiple child nodes based on the location information for determining the multicast routing information for the child node. This method is described in detail below.

[0124] As shown in FIG8 , a flowchart of a method for multicast message transmission provided in an embodiment of the present application is provided. The method is applied to a first node, which can be a router, a switch, a server, a host, a network card, a line card, a chip, a bare die (DIE), a terminal (e.g., a mobile terminal), an internal module of a device, a virtual machine, a container, a process, or a thread. The method includes the following S810 and S820.

[0125] S810: The first node determines a first multicast message.

[0126] Among them, the first multicast message includes first positioning information, first multicast routing information and data. The first multicast routing information includes: multicast routing information of multiple child nodes of the first node in the multicast tree. For example, the first multicast routing information includes: multicast routing information of all child nodes of the first node in the multicast tree, such as the first multicast information includes the multicast routing information of the first child node of the first node, the multicast routing information of the second child node of the first node, the multicast routing information of the third child node of the first node to the multicast routing information of the last child node of the first node. The multicast routing information of a node is used to indicate the descendant nodes of the node in the multicast tree corresponding to the data. In some examples, the first child node of the first node can also be called the first child node, and the child nodes of the first node located between the first child node and the last child node can also be called the intermediate child nodes of the first node.

[0127] Depending on whether the first node includes one child node or multiple child nodes in the multicast tree, the content included in the first multicast routing information is described respectively.

[0128] In a first possible scenario, the first node includes a child node in the multicast tree.

[0129] The child node of the first node in the multicast tree is the first child node. In this case, the first multicast routing information includes: multicast routing information of the first child node. The multicast routing information of the first child node is used to indicate the descendant node of the first child node in the multicast tree corresponding to the data.

[0130] In a second possible scenario, the first node includes multiple child nodes in the multicast tree.

[0131] The child nodes of the first node in the multicast tree are the first child node, the second child node, through the Nth child node. N is a natural number greater than or equal to three. In this case, the first multicast routing information includes: the multicast routing information of the first child node, and the multicast routing information from the second child node to the Nth child node. The multicast routing information of the first child node and the multicast routing information from the second child node to the Nth child node are used to indicate the descendant nodes of the first child node and the descendant nodes of the second child node through the Nth child node in the multicast tree corresponding to the data, respectively.

[0132] For example, the child nodes of a first node in a multicast tree include a second node and a third node. In this case, the first multicast routing information includes the multicast routing information of the second node and the multicast routing information of the third node. The multicast routing information of the second node indicates the descendant nodes of the second node in the multicast tree. The multicast routing information of the third node indicates the descendant nodes of the third node in the multicast tree.

[0133] Optionally, the child nodes of the first node in the multicast tree further include a fifth node. In this case, the first multicast routing information further includes multicast routing information of the fifth node. The multicast routing information of the fifth node is used to indicate descendant nodes of the fifth node in the multicast tree.

[0134] In one possible scenario, the first positioning information includes first length information. The first length information is used to indicate the length of the multicast routing information of the second node. The first length information can be represented by at least one numerical value, such as using the first numerical value to represent the length of the multicast routing information of the second node, or using the first numerical value and the second numerical value to represent the length of the multicast routing information of the second node. The following provides examples of representing the first length information by one numerical value or two numerical values.

[0135] Example 1: The first length information is represented by a first value.

[0136] In this case, the first length information includes: a first numerical value. The first numerical value is the length of the multicast routing information of the second node. In this case, the first numerical value can be expressed in units such as bits, bytes, and kilobytes. For example, the first numerical value is 7 bits, which means that the multicast routing information of the second node is 7 bits long. The first numerical value can be carried in a field of the first multicast message, such as the first multicast message uses the lb field to carry the first numerical value. According to the needs of actual applications, the first multicast message can also use other fields to carry the first numerical value, which is not limited in this application.

[0137] Example 2: The first length information is represented by a first value and a second value.

[0138] In this case, the first length information includes: a first numerical value and a second numerical value. The first numerical value and the second numerical value together represent the length of the multicast routing information of the second node. The unit length corresponding to the first numerical value is different from the unit length corresponding to the second numerical value. In this case, the first numerical value and the second numerical value can both be selected from any two different units such as bits, bytes, and kilobytes. For example, the first numerical value is 4 bits and the second numerical value is 1 Byte. In this case, it means that the length of the multicast routing information of the second node is less than 1 byte and is 4 bits. The first numerical value and the second numerical value can be carried in different fields of the first multicast message respectively, such as the first multicast message uses the lb field to carry the first numerical value, and uses the LB field to carry the second numerical value. According to the needs of actual applications, the first multicast message can also use one or more other fields to carry the first numerical value and the second numerical value, which is not limited in this application.

[0139] The above provides an example of using the first value alone to represent the length of the multicast routing information of the second node, or using the first value and the second value to jointly represent the length of the multicast routing information of the second node. In actual applications, three or more values ​​with different units can also be used to jointly represent the length of the multicast routing information of the second node as needed, such as using the first value, the second value, and the third value to jointly represent the length of the multicast routing information of the second node. This application is not limited to this.

[0140] In one possible scenario, the first positioning information carried by the first multicast message also includes: first position information. The first position information is used to indicate: the position of the multicast routing information of the second node in the first multicast message. For example, the first position information is used to indicate: the starting position of the multicast routing information of the second node in the first multicast message, and another example is used to indicate: the ending position of the multicast routing information of the second node in the first multicast message. The first position information may include at least one offset value, and two possible examples are given below.

[0141] Example 1: The first position information includes a first offset value.

[0142] In this case, the first position information includes: a first offset value. The first offset value is the offset of the starting position or the ending position of the multicast routing information of the second node in the first multicast message relative to the reference position in the first multicast message. The reference position can be predefined. For example, the reference position is the starting position or the ending position of the first positioning information in the first multicast message, and the reference position is the ending position of the first positioning information in the first multicast message, and the first offset value is 12 bits. In this case, the starting position of the multicast routing information of the second node in the first multicast message is: the position offset by 12 bits from the ending position of the first positioning information in the first multicast message. For another example, the reference position is the starting position or the ending position of the addressing field in the first multicast message, and the reference position is the ending position of the addressing field in the first multicast message, and the first offset value is 12 bits. In this case, the starting position of the multicast routing information of the second node in the first multicast message is: the position offset by 12 bits from the ending position of the addressing field in the first multicast message. The first offset value may be carried in a field of the first multicast message, such as the first multicast message using the ob field to carry the first offset value. Depending on actual application needs, the first multicast message may also use other fields to carry the first offset value, which is not limited in this application.

[0143] Example 2: The first position information includes a first offset value and a second offset value.

[0144] In this case, the first location information includes a first offset value and a second offset value. The first offset value is the offset of the starting position or ending position of the first field in the first multicast message relative to the reference position in the first multicast message. The second offset value is the offset of the starting position or ending position of the second node's multicast routing information in the first multicast message relative to the starting position or ending position of the first field in the first multicast message. The first field is the field where the starting position or ending position of the second node's multicast routing information is located, among the multiple fields obtained by dividing the first multicast message using the first unit length. The reference position can be predefined. For example, the reference position is the starting position or ending position of the first positioning information in the first multicast message. For example, the reference position is the ending position of the first positioning information in the first multicast message, and the first offset value is 4 bits and the second offset value is 1 byte. In this case, the starting position of the second node's multicast routing information in the first multicast message is a position in the first multicast message that is offset by 12 bits (i.e., 1*8+4) from the ending position of the first positioning information. For another example, the reference position is the starting position or ending position of the addressing field in the first multicast message. Take the reference position as the end position of the addressing field in the first multicast message, the first offset value as 4 bits, and the second offset value as 1 Byte as an example. In this case, the starting position of the multicast routing information of the second node in the first multicast message is: a position offset by 12 (i.e., 1*8+4) bits from the end position of the addressing field in the first multicast message. The first offset value and the second offset value can be carried in different fields of the first multicast message, such as the first multicast message using the ob field to carry the first offset value, and the OB field to carry the second offset value. According to the needs of actual applications, the first multicast message can also use other fields to carry the first offset value and the second offset value, which is not limited in this application.

[0145] The above describes the use of a first offset value to indicate the position of the second node's multicast routing information in the first multicast message, or the use of a first offset value and a second offset value to jointly indicate the position of the second node's multicast routing information in the first multicast message. Depending on the needs of the actual application, three or more offset values ​​may also be used to jointly indicate the position of the second node's multicast routing information in the multicast message, and this application is not limited thereto.

[0146] The foregoing describes the content of the first multicast message and the main content of the first positioning information included in the first multicast message. The following describes how the first node forms the first multicast message according to the received multicast message.

[0147] In one possible scenario, a first node receives a second multicast message sent by a fourth node. The second multicast message includes second multicast routing information and data. The second multicast routing information includes multicast routing information of the first node. The first node is a child node of the fourth node in the multicast tree corresponding to the data. The first node determines the first multicast message based on the received second multicast message.

[0148] In a possible scenario, the second multicast message further includes second positioning information, and the second positioning information is used to determine the multicast routing information of the first node in the second multicast routing information.

[0149] Taking the second positioning information including two offset values ​​and two numerical values ​​as an example, the process of the first node determining the multicast routing information of the first node from the second multicast routing information according to the second positioning information is explained. The process is described in detail as follows.

[0150] The second positioning information includes: a third offset value, a fourth offset value, a third numerical value and a fourth numerical value. The third offset value and the fourth offset value are used to indicate the position of the multicast routing information of the first node in the second multicast message, and the third numerical value and the fourth numerical value are used to indicate the length of the multicast routing information of the first node in the second multicast message. It can be understood that the third offset value and the fourth offset value can indicate the starting position, the ending position, etc. of the multicast routing information of the first node in the second multicast message. For ease of description, the following takes the third offset value and the fourth offset value as an example to indicate the starting position of the multicast routing information of the first node in the second multicast message, and the fourth offset value and the fourth numerical value are in bytes (B), and the third offset value and the third numerical value are in bits (b). Figure 9 is a schematic diagram of a process for obtaining the multicast routing information of a node using positioning information provided in an embodiment of the present application. As shown in Figure 9, the process for the first node to determine the multicast routing information of the first node from the second multicast routing information based on the third offset value, the fourth offset value, the third numerical value and the fourth numerical value contained in the second positioning information includes the following steps ① to ④.

[0151] In step 1, the first node is offset from the reference position by the fourth offset value to obtain the first offset position. If the fourth offset value is 0 bytes, the first node is offset from the reference position by 0 bytes to obtain the offset position 1.

[0152] In step 2, the first node obtains the content of the second multicast message with a length of the fourth value starting from the first offset position. If the fourth value is 2 bytes, the first node obtains the content of the second multicast message with a length of 2 bytes starting from offset position 1.

[0153] In step 3, the first node shifts the first offset position by the third offset value to obtain the second offset position. This second offset position is the starting position of the first node's multicast routing information. If the third offset value is 0 bits, the first node shifts the offset position by 0 bits from offset position 1 to obtain offset position 2. Offset position 2 is the starting position of the first node's multicast routing information.

[0154] In step 4, the first node, starting at the second offset position, retrieves content of the third value in length from the content of the fourth value in length. The content of the third value in length is the multicast routing information of the first node. If the third value is 9 bits, the first node, starting at offset position 2, retrieves content of 9 bits in length from the content of 2 bytes in length. The 9-bit content is the multicast routing information of the first node.

[0155] In this way, when the fourth node includes one child node (the first node) and when the first node includes multiple child nodes (such as the second node and the third node), the encapsulation format of the multicast message is the same, and both carry positioning information, avoiding the use of different message encapsulation formats in the multicast tree, which affects the forwarding efficiency of the message.

[0156] Optionally, the fourth node may also include other child nodes in the multicast tree. For example, the child nodes of the fourth node in the multicast tree may also include: the sixth node and the seventh node. In this case, the second multicast routing information includes: the multicast routing information of the first node, the multicast routing information of the sixth node, and the multicast routing information of the seventh node. In other words, the first node has sibling nodes in the multicast tree: the sixth node and the seventh node. At this time, the second positioning information is used to determine the multicast routing information of the first node from the multicast routing information of the first node, the multicast routing information of the sixth node, and the multicast routing information of the seventh node included in the second multicast routing information.

[0157] FIG10 is a schematic diagram of the structure of a multicast tree provided in an embodiment of the application. As shown in FIG10 , the parent node of the first node in the multicast tree is the fourth node, and the sibling nodes of the first node in the multicast tree include the sixth node and the seventh node. The child nodes of the first node in the multicast tree include the second node and the third node. The child nodes of the second node in the multicast tree include the eighth node and the ninth node. Depending on the position of the second node's multicast routing information in the second multicast message, the first node encapsulates the second multicast message to form the first multicast message in different ways, which are explained below in different cases.

[0158] In case A, the multicast routing information of the second node is located before the multicast routing information of the third node in the second multicast message. In this case, the second node can also be called the first child node of the first node.

[0159] Figure 11 is a structural diagram of the first second multicast message provided in an embodiment of the present application. As shown in Figure 11, the second multicast message includes: second multicast routing information and data. The second multicast routing information includes: multicast routing information of the first node, multicast routing information of the sixth node, and multicast routing information of the seventh node. The multicast routing information of the first node includes: first indication information, multicast routing information of the second node, and multicast routing information of the third node. The first indication information is used to indicate: the length of the multicast routing information of the second node. The first indication information can be carried in the addressing field of the second multicast message. The process of the first node determining the first multicast message based on the second multicast message includes the following steps ① to ③.

[0160] Step ①: The first node determines the first multicast routing information according to the second multicast routing information.

[0161] The first node determines the first multicast routing information according to the second multicast routing information, including the following scenario 1 and scenario 2.

[0162] Scenario 1: The first node uses the second multicast routing information as the first multicast routing information.

[0163] The first node uses the multicast routing information of the first node, the multicast routing information of the sixth node, and the multicast routing information of the seventh node as the first multicast routing information. That is, the first multicast routing information includes: the multicast routing information of the first node, the multicast routing information of the sixth node, and the multicast routing information of the seventh node. The multicast routing information of the first node includes: the multicast routing information of the second node and the multicast routing information of the third node. In this case, the current node (the first node) does not strip off the multicast routing information of its brother nodes (the sixth node and the seventh node), and directly sends the multicast routing information of the brother nodes (the sixth node and the seventh node) to its child node (the second node).

[0164] Scenario 2: The first node obtains the multicast routing information of the first node from the second multicast routing information to obtain the first multicast routing information.

[0165] The first node determines the multicast routing information of the first node from the multicast routing information of the first node, the multicast routing information of the sixth node, and the multicast routing information of the seventh node included in the second multicast routing information, and uses the multicast routing information of the first node as the first multicast routing information. That is, the first multicast routing information includes: the multicast routing information of the first node. The multicast routing information of the first node includes: the multicast routing information of the second node and the multicast routing information of the third node. In this case, the current node (the first node) strips off the multicast routing information of its brother nodes (the sixth node and the seventh node), and sends the multicast routing information of the child nodes of the current node (the first node) to its child nodes (such as the second node).

[0166] Step ②: The first node determines the first positioning information according to the first indication information.

[0167] Taking the example where the first positioning information includes: a first offset value, a second offset value, a first numerical value, and a second numerical value, the process of the first node determining the first positioning information is described.

[0168] The starting location or ending location of the second node's multicast routing information can be a reference location. The following description uses the starting location of the second node's multicast routing information as the reference location. As previously mentioned, the first multicast routing information includes different content in scenarios one and two. Therefore, the first node determines the first location information differently in these two scenarios, which is explained in detail below.

[0169] For the first scenario described above, the reference position is the starting or ending position of the addressing field in the first multicast message. For example, if the reference position is the ending position of the addressing field in the first multicast message, and the first multicast message uses 3 bits to store the MRID of the first node and 8 bits to store the addressing field of the first node, the first offset value is 3 bits and the second offset value is 1 byte.

[0170] For the above scenario 2, the reference position is the starting position or ending position of the first positioning information in the first multicast message. Taking the ending position of the first positioning information in the first multicast message as an example, in this scenario, the first offset value is 0 bit and the second offset value is 0 Byte.

[0171] The first offset value or the second offset value can be obtained by using any of the methods described in scenario 1 or scenario 2. The following describes the method in which the first node obtains the first value and the second value.

[0172] The first node obtains the first value and the second value based on the length of the multicast routing information of the second node indicated by the first indication information. If the length of the multicast routing information of the second node is 12 (i.e., 1*8+4) bits, in this case, the second value is 1 Byte and the first value is 4 bits.

[0173] By using the method described above, the first positioning information including the first offset value, the second offset value, the first numerical value and the second numerical value can be obtained, thereby determining the first positioning information.

[0174] Step ③: The first node encapsulates the first positioning information, the first multicast routing information and the data into a message to obtain a first multicast message.

[0175] Depending on the different ways in which the first node determines the first multicast routing information in step ②, the obtained first multicast message is also different, which are described below respectively.

[0176] For scenario 1 in step ②, the first node uses the second multicast routing information as the first multicast routing information to form a first type of first multicast message. Figure 12 is a schematic structural diagram of the first type of first multicast message provided in an embodiment of the present application. As shown in Figure 12, the first multicast message includes: first positioning information (first offset value, second offset value, first numerical value, and second numerical value), first multicast routing information (multicast routing information of the first node and multicast routing information of the fifth node), and data.

[0177] For scenario 2 in step ②, the first node obtains the multicast routing information of the first node from the second multicast routing information to obtain the first multicast routing information. A first multicast message is formed based on the first multicast routing information. FIG13 is a schematic diagram of the structure of the second first multicast message provided in an embodiment of the present application. As shown in FIG13, the first multicast message includes: first positioning information (first offset value, second offset value, first numerical value, and second numerical value), first multicast routing information (multicast routing information of the first node), and data.

[0178] When the second node's multicast routing information is the multicast routing information of the first child node of the first node carried in the second multicast message, the first node determines the first positioning information based on the first indication information. Thus, the first node quickly obtains the first positioning information based on the length of the second node's multicast routing information indicated by the first indication information. When the second node needs to obtain the multicast routing information of a child node of the second node, it can directly obtain it based on the first positioning information, reducing the number of times the editing node must edit the message and improving the efficiency of forwarding multicast messages.

[0179] In scenario B, FIG14 is a schematic diagram of the structure of the second type of second multicast message provided in an embodiment of the present application. As shown in FIG14 , the multicast routing information of the second node is located after the multicast routing information of the third node in the second multicast message. In this scenario, the second node can also be referred to as the last child node of the first node.

[0180] Unlike scenario A, the multicast routing information of the first node includes the second indication information, the fourth indication information, the multicast routing information of the third node, and the multicast routing information of the second node. The second indication information indicates the length of the multicast routing information of the third node. The fourth indication information indicates the total length of the multicast routing information of the first node. The second indication information may be carried in the addressing field of the second multicast message. The fourth indication information may be carried in the total length field of the second multicast message.

[0181] In this case, the process of the first node determining the first multicast message based on the second multicast message includes: Step 1: the first node determines the first multicast routing information based on the second multicast routing information. Step 2: the first node determines the first positioning information based on the second indication information and the fourth indication information. Step 3: the first node encapsulates the first positioning information, the first multicast routing information, and the data into a message to obtain the first multicast message.

[0182] Steps 1 and 3 in Scenario B are the same as those in Scenario A. For details, please refer to the above description and will not be repeated here. The only difference from Scenario A is step 2, which is described in detail below.

[0183] Continuing with the example of the first positioning information including a first offset value, a second offset value, a first numerical value, and a second numerical value, the first node obtains the length of the second node's multicast routing information based on the total length of the first node's multicast routing information indicated by the fourth indication information and the length of the third node's multicast routing information indicated by the second indication information. Furthermore, the first node obtains the first numerical value and the second numerical value based on the length of the second node's multicast routing information. Depending on the method for determining the first multicast routing information in step 1, the method for obtaining the length of the second node's multicast routing information also varies, as described below.

[0184] Scenario 1: In step ①, the first node determines that the second multicast routing information is the first multicast routing information.

[0185] In this scenario, the first node uses the total length of the first node's multicast routing information as the minuend, and uses the length of the third node's multicast routing information, the length of the first node's multicast routing identifier in the second multicast message, and the length of the first node's addressing field in the second multicast message as the subtrahend. The difference is the length of the second node's multicast routing information. The first node then uses the method described in the first possible scenario to obtain the first value and the second value based on the length of the second node's multicast routing information.

[0186] The first node obtains the starting position or the ending position of the multicast routing information of the second node based on the length of the multicast routing information of the third node and the position of the multicast routing information of the third node. Taking the position of the multicast routing information of the third node as the starting position of the multicast routing information of the third node as an example, the first node offsets the starting position of the multicast routing information of the third node by the length of the multicast routing information of the third node to obtain the starting position of the multicast routing information of the second node. After obtaining the starting position of the multicast routing information of the second node, the first node adopts the method for calculating the first offset value and the second offset value described above to obtain the first offset value and the second offset value based on the starting position or the ending position of the multicast routing information of the second node. Regarding the method for the first node to obtain the position of the multicast routing information of the third node, please refer to the description of the first node obtaining the position of the multicast routing information of the second node in situation A.

[0187] Scenario 2: In step ①, the first node determines the multicast routing information of the first node from the second multicast routing information, and uses the multicast routing information of the first node as the first multicast routing information.

[0188] In this scenario, the first node uses the total length of the first node's multicast routing information as the minuend and the length of the third node's multicast routing information as the subtrahend. The calculated difference is the length of the second node's multicast routing information. The first node then uses the method described in the first possible scenario to obtain the first and second values ​​based on the length of the second node's multicast routing information. The first node obtains the first and second offset values ​​in the same manner as in scenario one and is not further described here.

[0189] The above description uses the example of a first node whose child nodes include a second node and a third node to illustrate how to obtain a first multicast message based on a second multicast message when the second node's multicast routing information is carried at different locations in a second multicast message. In some possible scenarios, the first node may also include three or more child nodes. Figure 15 is a schematic diagram of the structure of a second multicast tree provided in an embodiment of the present application. As shown in Figure 15, the child nodes of the first node in the multicast tree corresponding to the data may also include a fifth node. In this scenario, the multicast routing information of the first node includes: first indication information, second indication information, third indication information, multicast routing information of the third node, multicast routing information of the second node, and multicast routing information of the fifth node. The first indication information is used to indicate the length of the multicast routing information of the second node. The second indication information is used to indicate the length of the multicast routing information of the third node. The third indication information is used to indicate that the first indication information is associated with the multicast routing information of the second node, and the second indication information is associated with the multicast routing information of the third node. The third indication information can be carried in the multicast routing identification field of the second multicast message.

[0190] Figure 16 is a schematic diagram of the structure of the third type of second multicast message provided by this application. As shown in Figure 16, in the second multicast message, the multicast routing information of the second node is carried before the multicast routing information of the fifth node and after the multicast routing information of the third node. In this case, the second node can also be called an intermediate child node of the first node. The specific process by which the first node determines the first multicast message based on the second multicast message is described as follows.

[0191] The process of the first node determining the first multicast message according to the second multicast message includes: Step 1, the first node determines the first multicast routing information according to the second multicast routing information. Step 2, the first node determines the first positioning information according to the first indication information and the third indication information. Step 3, the first node encapsulates the first positioning information, the first multicast routing information and the data into a message to obtain the first multicast message.

[0192] Steps 1 and 3 in this scenario are the same as those in Scenario B. For details, please refer to the above description and will not be repeated here. The difference from Scenario B is step 2, which is described in detail below.

[0193] The method for the first node to determine the first offset value and the second offset value included in step ② in this scenario is the same as the method for the first node to determine the first offset value and the second offset value in scenario B. The method for the first node to determine the first numerical value and the second numerical value included in step ② in this scenario is different from the method described in scenario B, specifically: the first node associates the first indication information indicated by the third indication information with the multicast routing information of the second node, and the length of the multicast routing information of the second node indicated by the first indication information, to obtain the length of the multicast routing information of the second node. After obtaining the multicast routing information of the second node, the first node can use the method described in scenario B to obtain the first numerical value and the second numerical value.

[0194] When the second node is an intermediate child node of the first node, the first node determines the first positioning information based on the first indication information and the third indication information. Thus, when the second node needs to obtain multicast routing information for a child node of the second node, it can directly obtain it based on the first positioning information, reducing the number of times the editing node must edit messages and improving the efficiency of forwarding multicast messages.

[0195] The above description uses the example of a first node not stripping off the multicast routing information of its sibling nodes (such as the sixth and seventh nodes) to illustrate the process by which the first node determines, based on the second multicast message, multicast messages to be sent to child nodes whose multicast routing information is carried at different locations within the second multicast message. Even when the first node strips off the multicast routing information of its sibling nodes (such as the sixth and seventh nodes), the method described above can also be used to determine, based on the second multicast message, multicast messages to be sent to child nodes whose multicast information is carried at different locations within the second multicast message.

[0196] The above describes a situation in which the first node includes two or three child nodes, and the first node encapsulates a multicast message to each child node. In some possible examples, the first node may include one child node. In this situation, the first node adopts the method described in the first possible situation described above to encapsulate a multicast message to the child node. In other possible examples, the first node may include four or more child nodes. In this situation, the first node adopts the method described above to encapsulate a multicast message to the first child node, the middle child node, and the last child node of the first node to encapsulate a multicast message to each child node of the first node.

[0197] To better understand the method provided by the present application, the following describes the multicast message transmission process using the schematic diagram of multicast message forwarding shown in Figure 17. As shown in Figure 17, nodes A, Y, and Z are all child nodes of node X, nodes B and C are child nodes of node A, and nodes D and E are child nodes of node B. Node X sends multicast message 1 to node A, node A sends multicast message 2 to node B, node A sends multicast message 3 to node C, node B sends multicast message 4 to node D, and node B sends multicast message 5 to node E. The logic of node X transmitting multicast message 1 is similar to the logic of the fourth node transmitting the second multicast message described above, the logic of node A transmitting multicast message 2 is similar to the logic of the first node transmitting the first multicast message described above, and the logic of node A transmitting multicast message 3 is similar to the logic of the first node transmitting the third multicast message described above. Depending on whether the parent node sends the multicast routing information of its sibling nodes to its child nodes, the following two cases are described separately.

[0198] Scenario 1: The node does not strip the multicast routing information of its sibling nodes, and directly sends the multicast routing information of the node and the multicast routing information of its sibling nodes to its child nodes.

[0199] FIG18 is an example diagram of the first multicast message provided in an embodiment of the present application. As shown in FIG18 , multicast message 1 includes: the total length 1 of the multicast routing information of node A, positioning information 1, the multicast routing information of node A, the multicast routing information of node Y, and the multicast routing information of node Z. Positioning information 1 is used to determine the multicast routing information of node A, and the contents and values ​​of positioning information 1 are: OB1 = 0, ob1 = 0, LB1 = 4 bytes, lb1 = 32 bits.

[0200] The process of node A obtaining multicast message 2 based on multicast message 1 includes the following (1) to (3).

[0201] (1) Node A obtains the multicast routing information of Node A.

[0202] Node A obtains its multicast routing information based on location information 1: Node A reads the 4-byte content in multicast message 1 from the location indicated by OB1, offsets the location indicated by ob1 from the location indicated by OB1, and reads 32 bits of content from the 4-byte content. This content is the multicast routing information of node A. Node A's multicast routing information includes: MRID_A (011), an addressing field (L_B = 12 bits), node B's multicast routing information, and node C's multicast routing information. MRID_A (011) occupies 3 bits of node A's multicast routing information, and the addressing field (L_B = 12 bits) occupies 8 bits of node A's multicast routing information.

[0203] (2) Node A determines the total length 2.

[0204] Node A determines that the total length 2 of node B's multicast routing information is 12 bits based on the second bit of MRID_A (011) and the length of node B's multicast routing information indicated by the addressing field (L_B=12 bits).

[0205] (3) Node A determines positioning information 2.

[0206] Node A determines the end position of the addressing field as the starting position of node B's multicast routing information. MRID_A (011) occupies 3 bits, and the addressing field (L_B = 12 bits) occupies 8 bits. MRID_A (011) and the addressing field (L_B = 12 bits) occupy a total of 11 bits. These 11 bits can be split into 1 byte and 3 bits, i.e., OB2 = 1 byte and ob2 = 3 bits. Node A determines LB2 and lb2 based on the addressing field (L_B = 12 bits). Specifically, since the addressing field (L_B = 12 bits) is 12 bits, 12 bits is less than 2 bytes, i.e., LB2 = 2 bytes and lb2 = 12 bits.

[0207] Figure 19 is an example diagram of the second multicast message provided in an embodiment of the present application. As shown in Figure 19, multicast message 2 includes: the multicast routing information of node B according to the total length 2 (12 bits), positioning information 2 (OB2=1Byte, ob2=3bits, LB2=2Bytes, lb2=12bits), the multicast routing information of node A, the multicast routing information of node Y and the multicast routing information of node Z.

[0208] The process of node A obtaining multicast message 3 based on multicast message 1 includes the following (1) to (3).

[0209] (1) is the same as (1) in the process of node A obtaining multicast message 2 according to multicast message 1, and will not be repeated here.

[0210] (2) Node A determines the total length 3.

[0211] Node A determines the total length 3 of node C's multicast routing information based on the total length 1 (32 bits), the number of bits occupied by MRID_A (011), the number of bits occupied by the addressing field (L_B = 12 bits), and the length of node B's multicast routing information (L_B = 12 bits). Specifically, the total length 3 (9 bits) is calculated as follows: total length 1 (32 bits) - number of bits occupied by MRID_A (011) (3 bits), number of bits occupied by the addressing field (L_B = 12 bits) (8 bits) - length of node B's multicast routing information (12 bits).

[0212] (3) Node A determines positioning information 3.

[0213] Node A determines the end position of node B's multicast routing information as the start position of node C's multicast routing information. Based on the number of bits occupied by MRID_A(011) (3 bits), the number of bits occupied by the addressing field (L_B = 12 bits) (8 bits), and the length of node B's multicast routing information (L_B = 12 bits), the end position of node B's multicast routing information is calculated to be: 23(3+8+12) bits, that is, OB3 = 2 bytes, ob3 = 7 bits. The total length of node C's multicast routing information is 9 bits, that is, LB3 = 2 bytes, lb3 = 9 bits.

[0214] Figure 20 is an example diagram of the third multicast message provided in an embodiment of the present application. As shown in Figure 20, multicast message 3 includes: the total length 3 (9 bits) of the multicast routing information of node C, positioning information 3 (OB3 = 2 Bytes, ob3 = 7 bits, LB3 = 2 Bytes, lb3 = 9 bits), the multicast routing information of node A, the multicast routing information of node Y and the multicast routing information of node Z.

[0215] Node B can use the method described above to obtain multicast message 4 sent to node D based on multicast message 2. Figure 21 is an example diagram of the fourth multicast message provided in an embodiment of the present application. As shown in Figure 21, multicast message 4 includes: the total length 4 of the multicast routing information of node D, positioning information 4, the multicast routing information of node A, the multicast routing information of node Y, and the multicast routing information of node Z.

[0216] Scenario 2: The node strips the multicast routing information of its sibling nodes, the MRID and the addressing address of the node, and sends the multicast routing information of the node to its child nodes.

[0217] The process by which node A obtains multicast message 2 from multicast message 1 includes: node A obtains node A's multicast routing information, total length 2, and location information 2 from multicast message 1. In scenario 2, the process by which node A obtains node A's multicast routing information and total length 2 from multicast message 1 is the same as in scenario 1. For details, please refer to the description above and will not be repeated here. Scenario 2 differs from scenario 1 in the process by which node A determines location information 2. This process is described in detail below.

[0218] Node A determines that the end of location information 1 is the start of node B's multicast routing information, OB2 = 0 bytes, ob2 = 0 bits. Node A then determines LB2 and lb2 based on the addressing field (L_B = 12 bits). The addressing field (L_B = 12 bits) is 12 bits, which is less than 2 bytes. Therefore, LB2 = 2 bytes, lb2 = 12 bits.

[0219] Figure 22 is an example diagram of the fifth multicast message provided in an embodiment of the present application. As shown in Figure 22, multicast message 2 includes: the multicast routing information of node B according to the total length 2 (12 bits), positioning information 2 (OB2=0Byte, ob2=0bit, LB2=2Bytes, lb2=12bits), the multicast routing information of node B and the multicast routing information of node C.

[0220] The process by which node A obtains multicast message 3 from multicast message 1 includes: node A obtains node A's multicast routing information, total length 3, and location information 3 from multicast message 1. In scenario 2, the process by which node A obtains node A's multicast routing information and total length 3 from multicast message 1 is the same as in scenario 1. For details, please refer to the above description and are not repeated here. Scenario 2 differs from scenario 1 in the process by which node A determines location information 3. This process is described in detail below.

[0221] Node A determines the end of node B's multicast routing information as the start of node C's multicast routing information. Since node B's multicast routing information is 12 bits long, OB3 = 1 byte and ob3 = 4 bits. Node A calculates LB3 and lb3 based on the length of node C's multicast routing information (L_C = 9 bits). Node C's multicast routing information is 9 bits long (L_C = 9 bits), which is less than 2 bytes. Therefore, LB3 = 2 bytes and lb3 = 9 bits.

[0222] Figure 23 is an example diagram of the sixth multicast message provided in an embodiment of the present application. As shown in Figure 23, multicast message 3 includes: the multicast routing information of node C according to the total length 3 (9 bits), positioning information 3 (OB3=1Byte, ob3=4bits, LB3=2Bytes, lb3=9bits), the multicast routing information of node B and the multicast routing information of node C.

[0223] Node B can use the method described above to obtain, based on multicast message 2, multicast message 4 sent to node D and multicast message 5 sent to node E. Figure 24 is an example diagram of the seventh multicast message provided in an embodiment of the present application. As shown in Figure 24, multicast message 4 includes: the total length 4 of node D's multicast routing information, positioning information 4, node D's multicast routing information, and node E's multicast routing information. Multicast message 5 includes: the total length 5 of node E's multicast routing information, positioning information 5, node D's multicast routing information, and node E's multicast routing information.

[0224] S820: The first node sends a first multicast message to the second node.

[0225] The first positioning information is used to determine the multicast routing information of the second node in the first multicast routing information. The second node and the third node are child nodes of the first node in the multicast tree, and the second node and the third node are different.

[0226] In one possible scenario, the destination address in the unicast encapsulation of the first multicast message is the address of the second node. Specifically, the first multicast message may be an IP message. In this case, the destination address in the first multicast message is the address of the second node. The first multicast message also includes data, and the multicast information of the second node in the first multicast message is located between the IP header and the data of the first multicast message. The unicast encapsulation may include an indication field, which is used to indicate whether the unicast encapsulated information in the multicast message contains multicast information. After receiving the multicast message, the node or entity can determine whether the unicast encapsulated information in the multicast message contains multicast information based on the indication field. Exemplarily, if the unicast encapsulation is IPv4 encapsulation, the "Protocol" field in the IPv4 header can indicate whether the unicast encapsulated information in the multicast message contains multicast information. If the unicast encapsulation is IPv6 encapsulation, the "Next Header" field in the IPv6 header can indicate whether the unicast encapsulated information in the multicast message contains multicast information.

[0227] In an embodiment of the present application, the source address in the unicast encapsulation of a multicast message sent by one node (e.g., node a) to another node (e.g., node b) can be the address of node a or the address of a source node in the multicast tree. For example, based on the example shown in FIG2 , the source address in the unicast encapsulation of a multicast message sent by node R to node S can be the address of node R or the address of node B. The source address in the unicast encapsulation of a multicast message sent by node S to node D can be the address of node S or the address of node B.

[0228] In some possible scenarios, when the multicast message in the embodiments of the present application does not include unicast encapsulation, the node can determine the next hop node of the multicast message by the multicast routing identifier in the multicast message. For example, when a node receives a multicast message, if the multicast routing identifier of the node is a bit sequence (such as 011), the node corresponding to the bit with a value of 1 in the multicast routing identifier is the next hop node of the multicast message, that is, the child node of the node is the next hop node of the multicast message.

[0229] In one possible scenario, the first node may also determine a third multicast message based on the second multicast message, and send the third multicast message to the third node. The third multicast message includes: third positioning information, first multicast routing information and data. The third positioning information is used to determine the multicast routing information of the third node in the first multicast routing information. The method for the first node to determine the third multicast message is similar to the method for determining the first multicast message, except that: the third positioning information contained in the third multicast message is determined by the first node based on the multicast routing information of the third node contained in the first multicast routing information. The method for the first node to determine the third positioning information based on the multicast routing information of the third node is similar to the method for the first node to determine the first positioning information based on the positioning information of the second node, and will not be repeated here.

[0230] The method provided in the embodiment of the present application is compared to the method in which the first node splits the first multicast routing information, obtains the multicast routing information of the second node and the multicast routing information of the third node respectively, and sends the multicast routing information of the second node to the second node and the multicast routing information of the third node to the third node. In the embodiment of the present application, the first node directly sends the first multicast routing information to the second node and the third node, and the second node determines the multicast routing information of the second node from the first multicast routing information based on the first positioning information. In this way, the first node is prevented from splitting the first multicast routing information, the number of times the first node edits the message is reduced, and the forwarding performance of the message is improved.

[0231] The above mainly introduces the scheme of the embodiment of the present application from the perspective of the method. It can be understood that, in order to implement the above functions, each network element, such as a node or entity, includes at least one of the hardware structure and software modules corresponding to the execution of each function. It should be easy for those skilled in the art to realize that, in combination with the units and algorithm steps of each example described in the embodiments disclosed in this document, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in a hardware or computer software-driven hardware manner depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0232] In the embodiment of the present application, the nodes or entities can be divided into functional units according to the above method examples. For example, each functional unit can be divided according to each function, or two or more functions can be integrated into one processing unit. The above integrated unit can be implemented in the form of hardware or in the form of software functional units. The division of units in the embodiment of the present application is schematic and is only a logical functional division. In actual implementation, there may be other division methods.

[0233] FIG25 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application. As shown in FIG25 , the communication device 2500 includes a processing unit 2510 and a communication unit 2520. In some possible examples, the communication device 2500 may also include a storage unit 2530. The communication device 2500 may be used to illustrate the structure of the nodes or entities in the above embodiments.

[0234] When the structural diagram shown in FIG25 is used to illustrate the structure of the first node involved in the above embodiment, the processing unit 2510 is used to control and manage the actions of the first node. For example, the processing unit 2510 is used to execute 810 and 820 in FIG8 and / or the actions performed by the first node in other processes described in the embodiments of the present application. The processing unit 2510 can communicate with other nodes or entities through the communication unit 2520, for example, communicating with the second node in FIG8. The storage unit 2530 is used to store the program code and data of the first node.

[0235] When the structural diagram shown in FIG25 is used to illustrate the structure of the second node involved in the above embodiment, the processing unit 2510 is used to control and manage the actions of the second node. For example, the processing unit 2510 is used to execute 820 in FIG8 and / or the actions performed by the second node in other processes described in the embodiments of the present application. The processing unit 2510 can communicate with other nodes or entities through the communication unit 2520, for example, communicating with the first node in FIG8. The storage unit 2530 is used to store the program code and data of the second node.

[0236] When the structural diagram shown in Figure 25 is used to illustrate the structure of other nodes or entities involved in the above embodiments, the processing unit 2510 is used to control and manage the actions of the node or entity, and the node or entity is used to execute the actions performed by the node or entity in the process described in the embodiments of the present application.

[0237] Illustratively, the communication device 2500 may be a device or a chip or a chip system.

[0238] When the communication device 2500 is a device, the processing unit 2510 may be a processor; the communication unit 2520 may be a communication interface, a transceiver, an input interface, and / or an output interface. Alternatively, the transceiver may be a transceiver circuit. Alternatively, the input interface may be an input circuit, and the output interface may be an output circuit.

[0239] When the communication device 2500 is a chip or a chip system, the processing unit 2510 may be a processor, a processing circuit, a logic circuit, etc. The communication unit 2520 may be a communication interface, an input interface and / or an output interface, an interface circuit, an output circuit, an input circuit, a pin, or a related circuit on the chip or chip system.

[0240] If the integrated unit in Figure 25 is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor (processor) to execute all or part of the steps of the method described in each embodiment of the present application. The storage medium for storing computer software products includes: various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0241] When the processing unit 2510 is a processor, the communication unit 2520 is a communication interface, and the storage unit 2530 is a memory, the communication device involved in the embodiment of the present application may be the communication device 2600 shown in Figure 26.

[0242] Figure 26 is a schematic diagram of the hardware structure of a communication device provided in an embodiment of the present application. As shown in Figure 26, the communication device can be a node or entity as used herein. The communication device 2600 includes at least one processor 2610, a communication bus 2620, and at least one communication interface 2640. Optionally, it also includes a memory 2630. Figure 26 illustrates a communication device 2600 including one processor 2610 and one communication interface 2640 as an example.

[0243] The processor 2610, the communication interface 2640 and the memory 2630 can be connected through the communication bus 2620 to communicate with each other and transmit control and / or data signals. The memory 2630 is used to store computer programs, and the processor 2610 is used to call and run the computer program from the memory 2630 to control the communication interface 2640 to send and receive signals.

[0244] In a first possible implementation, processor 2610 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling program execution of the present application. Communication interface 2640 may be any device such as a transceiver.

[0245] In a second possible implementation manner, the processor 2610 may be a logic circuit, and the communication interface 2640 may include an input interface and / or an output interface.

[0246] The communication interface 2640 uses any device such as a transceiver to communicate with other devices or a communication network.

[0247] The memory 2630 may be a ROM or other type of static storage device that can store static information and instructions, a RAM or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, an optical disc storage (including a compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory may exist independently and be connected to the processor via the communication bus 2620. The memory may also be integrated with the processor.

[0248] The memory 2630 is used to store computer-executable instructions for executing the solution of the present application, and the execution is controlled by the processor 2610. The processor 2610 is used to execute the computer-executable instructions stored in the memory 2630, thereby implementing the methods provided in the following embodiments of the present application.

[0249] Optionally, the computer-executable instructions in the embodiments of the present application may also be referred to as application code, which is not specifically limited in the embodiments of the present application.

[0250] When the structural diagram shown in Figure 26 is used to illustrate the structure of the first node involved in the above embodiment, the processor 2610 is used to control and manage the actions of the first node. For example, the processor 2610 is used to execute 810 and 820 in Figure 8, and / or the actions performed by the first node in other processes described in the embodiments of the present application. The processor 2610 can communicate with other nodes or entities through the communication interface 2640, for example, communicating with the second node in Figure 8. The memory 2630 is used to store the program code and data of the first node.

[0251] When the structural diagram shown in FIG26 is used to illustrate the structure of the second node involved in the above embodiment, the processor 2610 is used to control and manage the actions of the second node. For example, the processor 2610 is used to execute 820 in FIG8 and / or the actions performed by the second node in other processes described in the embodiments of the present application. The processor 2610 can communicate with other nodes or entities through the communication interface 2640, for example, communicating with the first node in FIG8. The memory 2630 is used to store the program code and data of the second node.

[0252] When the structural diagram shown in Figure 26 is used to illustrate the structure of other nodes or entities involved in the above embodiments, the processor 2610 is used to control and manage the actions of the node or entity, and the node or entity is used to execute the actions performed by the node or entity in the process described in the embodiments of the present application.

[0253] An embodiment of the present application also provides a computer-readable storage medium, comprising instructions, which, when executed on a computer, enables the computer to execute any of the above methods.

[0254] An embodiment of the present application also provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute any of the above methods.

[0255] An embodiment of the present application also provides a communication system, which includes one or more nodes in the above embodiment, or the communication system includes one or more entities in the above embodiment, or the communication system includes one or more nodes and one or more entities in the above embodiment.

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

[0257] Although the present application is described herein in conjunction with various embodiments, in the process of implementing the claimed application, those skilled in the art can understand and implement other changes to the disclosed embodiments by reviewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude multiple situations. A single processor or other unit can implement several functions listed in the claims. Certain measures are recorded in different dependent claims, but this does not mean that these measures cannot be combined to produce good results.

[0258] Although the present application has been described with reference to specific features and embodiments thereof, it is apparent that various modifications and combinations may be made thereto without departing from the spirit and scope of the present application. Accordingly, this specification and the drawings are merely illustrative of the present application as defined by the appended claims and are deemed to cover any and all modifications, variations, combinations or equivalents within the scope of the present application. Obviously, those skilled in the art may make various modifications and variations to the present application without departing from the spirit and scope of the present application. Thus, the present application is intended to include such modifications and variations as fall within the scope of the claims of the present application and their equivalents.

Claims

1. A method for multicast message transmission, characterized in that: The method is applied to a first node, and the method comprises: Determine a first multicast message, where the first multicast message includes first positioning information, first multicast routing information, and data, where the first multicast routing information includes multicast routing information of a second node and multicast routing information of a third node, where the multicast routing information of the second node is used to indicate a descendant node of the second node in a multicast tree corresponding to the data, and the multicast routing information of the third node is used to indicate a descendant node of the third node in the multicast tree; The first multicast message is sent to the second node, the first positioning information is used to determine the multicast routing information of the second node in the first multicast routing information, the second node and the third node are child nodes of the first node in the multicast tree, and the second node and the third node are different.

2. The method according to claim 1, characterized in that The method further comprises: receiving a second multicast message from a fourth node, where the second multicast message includes second multicast routing information and the data, where the second multicast routing information includes multicast routing information of the first node, where the multicast routing information of the first node includes multicast routing information of the second node and multicast routing information of the third node, and where the first node is a child node of the fourth node in the multicast tree; The determining of the first multicast message includes: The first multicast message is determined according to the second multicast message.

3. The method according to claim 2, characterized in that The second multicast message further includes: second positioning information, where the second positioning information is used to determine the multicast routing information of the first node in the second multicast routing information.

4. The method according to claim 2 or 3, characterized in that: The multicast routing information of the first node further includes first indication information, where the first indication information is used to indicate the length of the multicast routing information of the second node; The determining the first multicast message according to the second multicast message includes: determining the first positioning information according to the first indication information; determining the first multicast routing information according to the second multicast routing information; The first positioning information, the first multicast routing information, and the data are encapsulated into a message to obtain the first multicast message.

5. The method according to claim 4, characterized in that The multicast routing information of the first node further includes second indication information and third indication information, wherein the second indication information is used to indicate the length of the multicast routing information of the third node, and the third indication information is used to indicate that the first indication information is associated with the multicast routing information of the second node, and the second indication information is associated with the multicast routing information of the third node; The determining the first positioning information according to the first indication information includes: The first positioning information is determined according to the first indication information and the third indication information.

6. The method according to claim 2 or 3, characterized in that: The multicast routing information of the first node further includes second indication information and fourth indication information, wherein the second indication information is used to indicate the length of the multicast routing information of the third node, and the fourth indication information is used to indicate the total length of the multicast routing information of the first node; The determining the first multicast message according to the second multicast message includes: Determine the first positioning information according to the second indication information and the fourth indication information; determining the first multicast routing information according to the second multicast routing information; The first positioning information, the first multicast routing information, and the data are encapsulated into a message to obtain the first multicast message.

7. The method according to claim 4 or 5, characterized in that: The determining the first multicast routing information according to the second multicast routing information includes: Using the second multicast routing information as the first multicast routing information; or, The multicast routing information of the first node is acquired from the second multicast routing information to obtain the first multicast routing information.

8. The method according to any one of claims 4 to 7, characterized in that: The first positioning information includes first length information, and the first length information is used to indicate the length of the multicast routing information of the second node.

9. The method according to claim 8, characterized in that The first length information includes a first value, where the first value is the length of the multicast routing information of the second node; or, The first length information includes a first value and a second value, the first value and the second value together represent the length of the multicast routing information of the second node, and the unit length corresponding to the first value is different from the unit length corresponding to the second value.

10. The method according to claim 8 or 9, characterized in that: The first positioning information also includes first position information, and the first position information is used to indicate the position of the multicast routing information of the second node in the first multicast message.

11. The method according to claim 10, characterized in that The first position information includes a first offset value, where the first offset value is an offset of a position of the multicast routing information of the second node in the first multicast message relative to a reference position in the first multicast message; or, The first position information includes a first offset value and a second offset value, the first offset value is an offset of a position of a first field in the first multicast message relative to a reference position in the first multicast message, the second offset value is an offset of a position of multicast routing information of the second node in the first multicast message relative to a position of the first field in the first multicast message, and the first field is a field where the multicast routing information of the second node is located among a plurality of fields obtained by dividing the first multicast message using a first unit length.

12. A first node, characterized in that: include: a processing unit and a communication unit; The processing unit is configured to: determine a first multicast message, wherein the first multicast message includes first positioning information, first multicast routing information and data, wherein the first multicast routing information includes multicast routing information of a second node and multicast routing information of a third node, wherein the multicast routing information of the second node is used to indicate a descendant node of the second node in a multicast tree corresponding to the data, and the multicast routing information of the third node is used to indicate a descendant node of the third node in the multicast tree; The communication unit is used to: send the first multicast message to the second node, the first positioning information is used to determine the multicast routing information of the second node in the first multicast routing information, the second node and the third node are child nodes of the first node in the multicast tree, and the second node and the third node are different.

13. The first node according to claim 12, characterized in that: The communication unit is further configured to: receive a second multicast message from a fourth node, the second multicast message including second multicast routing information and the data, the second multicast routing information including multicast routing information of the first node, the multicast routing information of the first node including multicast routing information of the second node and multicast routing information of the third node, and the first node is a child node of the fourth node in the multicast tree; The processing unit is specifically configured to determine the first multicast message according to the second multicast message.

14. The first node according to claim 13, characterized in that: The second multicast message further includes: second positioning information, where the second positioning information is used to determine the multicast routing information of the first node in the second multicast routing information.

15. The first node according to claim 13 or 14, characterized in that: The multicast routing information of the first node further includes first indication information, where the first indication information is used to indicate the length of the multicast routing information of the second node; The processing unit is specifically configured to: determine the first positioning information according to the first indication information; The processing unit is further specifically configured to: determine the first multicast routing information according to the second multicast routing information; The processing unit is further specifically configured to: perform message encapsulation on the first positioning information, the first multicast routing information and the data to obtain the first multicast message.

16. The first node according to claim 15, characterized in that: The multicast routing information of the first node further includes second indication information and third indication information, wherein the second indication information is used to indicate the length of the multicast routing information of the third node, and the third indication information is used to indicate that the first indication information is associated with the multicast routing information of the second node, and the second indication information is associated with the multicast routing information of the third node; The processing unit is specifically used to determine the first positioning information according to the first indication information and the third indication information.

17. The first node according to claim 13 or 14, characterized in that: The multicast routing information of the first node further includes second indication information and fourth indication information, wherein the second indication information is used to indicate the length of the multicast routing information of the third node, and the fourth indication information is used to indicate the total length of the multicast routing information of the first node; The processing unit is specifically configured to: determine the first positioning information according to the second indication information and the fourth indication information; The processing unit is further specifically configured to: determine the first multicast routing information according to the second multicast routing information; The processing unit is further specifically configured to: perform message encapsulation on the first positioning information, the first multicast routing information and the data to obtain the first multicast message.

18. The first node according to claim 15 or 16, characterized in that: The processing unit is specifically configured to: use the second multicast routing information as the first multicast routing information; or The multicast routing information of the first node is acquired from the second multicast routing information to obtain the first multicast routing information.

19. The first node according to any one of claims 15 to 18, characterized in that: The first positioning information includes first length information, and the first length information is used to indicate the length of the multicast routing information of the second node.

20. The first node according to claim 19, characterized in that The first length information includes a first value, where the first value is the length of the multicast routing information of the second node; or, The first length information includes a first value and a second value, the first value and the second value together represent the length of the multicast routing information of the second node, and the unit length corresponding to the first value is different from the unit length corresponding to the second value.

21. The first node according to claim 19 or 20, characterized in that: The first positioning information also includes first position information, and the first position information is used to indicate the position of the multicast routing information of the second node in the first multicast message.

22. The first node according to claim 21, characterized in that The first position information includes a first offset value, where the first offset value is an offset of a position of the multicast routing information of the second node in the first multicast message relative to a reference position in the first multicast message; or, The first position information includes a first offset value and a second offset value, the first offset value is an offset of a position of a first field in the first multicast message relative to a reference position in the first multicast message, the second offset value is an offset of a position of multicast routing information of the second node in the first multicast message relative to a position of the first field in the first multicast message, and the first field is a field where the multicast routing information of the second node is located among a plurality of fields obtained by dividing the first multicast message using a first unit length.

23. A communication device, characterized in that: The communication device comprises: a processor; The processor is connected to a memory, the memory is used to store computer-executable instructions, and the processor executes the computer-executable instructions stored in the memory, so that the communication device implements the method according to any one of claims 1 to 11.

24. A computer-readable storage medium, characterized in that: The computer-readable storage medium comprises: instructions, which, when executed on a computer, enable the computer to perform the method according to any one of claims 1 to 11.

Citation Information

Patent Citations

  • Multicast message transmission method and device

    CN119676147A

  • Multicast packet processing method and network device

    CN105763457A

  • Network-based information processing method and electronic equipment

    CN111130813A

  • Communication method and communication device

    CN115883452A

  • Method for Multicast Flow Routing Selection

    US20130114595A1