Multicast message transmission method and device

By carrying the multicast routing information of all child nodes in the multicast message and splitting and editing it on the first node, the problem of low forwarding performance of multicast message is solved, which improves network resource utilization and reduces network congestion.

CN119676147APending Publication Date: 2025-03-21HUAWEI TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202311221767.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-19
Publication Date
2025-03-21

AI Technical Summary

Technical Problem

In the prior art, multicast messages are repeatedly transmitted on certain links, resulting in reduced network resource utilization and increased network congestion, and low message forwarding performance.

Method used

The message header sent to the first node carries the multicast routing information of all children. The first node splits the message header to obtain the multicast routing information of each child node and edits the corresponding message for each child node.

Benefits of technology

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

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119676147A_ABST
    Figure CN119676147A_ABST
Patent Text Reader

Abstract

The invention discloses a multicast message transmission method and device, and relates to the technical field of communication. In the method, a first node can send first multicast routing information including multicast routing information of a 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 to the second node, and 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 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 of splitting and editing the multicast message is reduced, and the forwarding efficiency of the multicast message is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] Multicast means that a sender sends a message carrying the same data to multiple specific receivers. The initial implementation is that the sender copies the data in a message into multiple copies according to the number of receivers, encapsulates them separately and sends them to each receiver. This practice causes repeated transmission of messages on some links, reduces the utilization of network resources, and increases the possibility of network congestion.

[0003] In order to solve the above problem, it is proposed that the header of the message sent to the first node carries the multicast routing information of all child nodes of the first node in the multicast tree. After the first node obtains the message, it splits the multicast routing information of all child nodes carried in the message header, obtains the multicast routing information of each child node, and edits the corresponding message for each child node. In the above process, the first node needs to perform multiple splitting and message editing on the received message before generating a message sent to each child node, resulting in low message forwarding performance. Summary of the invention

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

[0005] 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. 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 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. Among them, 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.

[0006] The first node sends the first multicast routing information including the multicast routing information of the second node and the multicast routing information of the third node and the first positioning information used to determine 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 of splitting and editing the multicast message is reduced, and the forwarding efficiency of the multicast message is improved.

[0007] In a possible implementation, the 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 other information, thereby improving the forwarding performance of the message.

[0008] 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. In this way, when the node in the multicast tree includes one or more child nodes, the same message structure (i.e., all carry positioning information) can be used. This avoids using different message encapsulation formats in the multicast tree, which affects the forwarding efficiency of the message.

[0009] 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 according to the first positioning information, thereby reducing the number of times the editing node edits the message and improving the efficiency of forwarding the multicast message.

[0010] 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, 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 according to the first positioning information, which reduces the number of times the editing node edits the message and improves the efficiency of forwarding the multicast message.

[0011] In another possible implementation, the multicast routing information of the first node also 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 according to the second multicast message, including: the first node determines the first positioning information according to the second indication information and the fourth indication information. The first node determines the first multicast routing information according to 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 last child node of the first node, the first node determines the first positioning information according to the second indication information and the fourth 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 according to the first positioning information, which reduces the number of times the editing node edits the message and improves the efficiency of forwarding the multicast message.

[0012] 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, 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.

[0013] In another possible implementation manner, 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.

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

[0015] 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.

[0016] 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.

[0017] In another possible implementation, the first positioning information further 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.

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

[0019] 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.

[0020] 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 groupcast message relative to the reference position in the first groupcast message. The second offset value is the offset of the position of the second node's multicast routing information in the first groupcast message relative to the position of the first field in the first groupcast 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 groupcast message using the first unit length.

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

[0022] The processing unit is used 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 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, and the multicast routing information of the third node is used to indicate: the descendant node of the third node in the multicast tree.

[0023] The communication unit is used to send 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.

[0024] In a possible implementation, the communication unit is further used 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 used to: determine the first multicast message according to the second multicast message.

[0025] 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.

[0026] 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 processing unit is specifically used to: determine the first positioning information according to the first indication information. The processing unit is also specifically used to: determine the first multicast routing information according to the second multicast routing information. The processing unit is also specifically used to: perform message encapsulation on the first positioning information, the first multicast routing information and the data to obtain the first multicast message.

[0027] 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: 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.

[0028] 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 used to: determine the first positioning information according to the second indication information and the fourth indication information. The processing unit is also specifically used to: determine the first multicast routing information according to the second multicast routing information. The processing unit is also specifically used to: perform message encapsulation on the first positioning information, the first multicast routing information and the data to obtain the first multicast message.

[0029] In another possible implementation manner, 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.

[0030] In another possible implementation manner, 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.

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

[0032] 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.

[0033] 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.

[0034] 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.

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

[0036] 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.

[0037] 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 groupcast message relative to the reference position in the first groupcast message. The second offset value is the offset of the position of the second node's multicast routing information in the first groupcast message relative to the position of the first field in the first groupcast 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 groupcast message using the first unit length.

[0038] 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 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 operation steps of the method described in the first aspect or any possible design of the first aspect.

[0039] 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 operation steps of the method described in the first aspect or any possible design of the first aspect.

[0040] 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 executes the operation steps of the method described in the first aspect or any possible implementation of the first aspect.

[0041] 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.

[0042] The beneficial effects of the second to sixth aspects above can refer 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, the present application can also be further combined to provide more implementations on the premise that the solutions are not contradictory. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] Figure 1A A schematic diagram of a message multicast provided in an embodiment of the present application;

[0044] Figure 1BA schematic diagram of a topological connection and a multicast tree of a first entity provided in an embodiment of the present application;

[0045] Figure 2 A schematic diagram of a topological connection and a multicast tree of a second entity provided in an embodiment of the present application;

[0046] Figure 3A A schematic diagram of a topological connection of another entity provided in an embodiment of the present application;

[0047] Figure 3B A schematic diagram of multicast message transmission between routers provided in an embodiment of the present application;

[0048] Figure 4 A schematic diagram of the structure of the first multicast message provided in the embodiment of the present application;

[0049] Figure 5 A schematic diagram of the structure of multicast information of a node provided in an embodiment of the present application;

[0050] Figure 6 A schematic diagram of the association relationship between multicast routing identifiers and nodes provided in an embodiment of the present application;

[0051] Figure 7 A schematic diagram of the first process of obtaining a multicast message provided by this application;

[0052] Figure 8 A flowchart of a method for multicast message transmission provided in an embodiment of the present application;

[0053] Fig. 9 A schematic diagram of a process of obtaining multicast routing information of a node using positioning information provided in an embodiment of the present application;

[0054] Fig.10 A schematic diagram of the structure of a multicast tree provided for an embodiment of the application;

[0055] Fig.11 A schematic diagram of the structure of the first second multicast message provided in an embodiment of the present application;

[0056] Fig.12 A schematic diagram of the structure of a first first multicast message provided in an embodiment of the present application;

[0057] Fig.13 A schematic diagram of the structure of the second first multicast message provided in an embodiment of the present application;

[0058] Fig.14 A schematic diagram of the structure of a second second multicast message provided in an embodiment of the present application;

[0059] Fig.15A schematic diagram of the structure of the second multicast tree provided in the embodiment of the present application;

[0060] Fig.16 A schematic diagram of the structure of the third second group broadcast message provided by this application;

[0061] Fig.17 A schematic diagram of multicast message forwarding provided in an embodiment of the present application;

[0062] Fig.18 An example diagram of the first type of first group broadcast message provided in an embodiment of the present application;

[0063] Fig.19 An example diagram of the second first group broadcast message provided in an embodiment of the present application;

[0064] Fig. 20 An example diagram of the third first group broadcast message provided in an embodiment of the present application;

[0065] Fig.21 An example diagram of the fourth first group broadcast message provided in an embodiment of the present application;

[0066] Fig. 22 An example diagram of the fifth first group broadcast message provided in an embodiment of the present application;

[0067] Fig.23 An example diagram of the sixth first group broadcast message provided in an embodiment of the present application;

[0068] Fig.24 An example diagram of the seventh first group broadcast message provided in an embodiment of the present application;

[0069] Fig.25 A schematic diagram of the structure of a communication device provided in an embodiment of the present application;

[0070] Fig.26 A schematic diagram of the hardware structure of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0071] In order to clearly describe the technical solutions of the embodiments of the present application, in the embodiments of the present application, words such as "first" and "second" are used to distinguish the same or similar items with substantially the same functions and effects. Those skilled in the art can understand that words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not necessarily limit the difference.

[0072] In this application, the words "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in this application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of the words "exemplary" or "for example" is intended to present the related concepts in a concrete way.

[0073] 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 A schematic diagram of a message multicast provided in an embodiment of the present application, such as Figure 1A As shown, the message can be sent from the sending end, 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 forward the received multicast messages by multicast. A node can include one entity or multiple entities. An entity can belong to only one node or multiple nodes. Exemplary, Figure 1B A schematic diagram of a topological connection and a multicast tree of a first entity provided in an embodiment of the present application, Figure 1B (a) and Figure 1B In (b), the left side is the physical network topology diagram, and the right side is the multicast tree. Figure 1B In (a), node Z includes multiple entities, namely entity A, entity B, entity C, entity D and entity E, and node E includes one entity, namely entity E. Figure 1B In (b), node X includes multiple entities, which are entity A and entity B. It can be seen that entity A and entity B belong to both node Z and node X.

[0074] For the convenience of description, in an embodiment 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, and 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.

[0075] In the embodiments of the present application, an entity may also be referred to as a functional entity. An entity may be a physical entity or a virtual entity. A physical entity may be, for example, a router, a switch, a server, a host, a network card, a line card, a chip, a bare die of a chip (DIE), a terminal (for example, a mobile terminal), an internal module of a device, etc. A virtual entity may be, for example, a virtual machine, a container, a process, a thread, etc. When an entity is a physical entity, a node may also be referred to as a multicast device.

[0076] In order to make the method provided by this application clearer, some concepts involved in this application are first briefly introduced.

[0077] 1. Multicast tree

[0078] A multicast tree is a path from a source node to all destination nodes generated by a combination of source nodes and destination nodes based on a specific network topology through routing protocols (e.g., protocol independent multicast (PIM), interior gateway protocol (IGP), etc.) or other methods (e.g., manual configuration, controller calculation, etc.). This path is a tree structure with the source node as the root node and the destination node as the leaf node, called a multicast tree. A multicast tree can also be called a multicast distribution tree (MDT). For example, Figure 2 A schematic diagram of the topological connection and multicast tree of the second entity provided in the embodiment of the present application, such as Figure 2 As shown, the left side is a physical network topology diagram. 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 in Figure 2 on the right side of the screen.

[0079] The sending end and / or the receiving end may be a node in the multicast tree or may not be a node in the multicast tree. If it is the former, the source node may be the sending end and the destination node may be the receiving end. For the convenience of description, unless otherwise specified, the embodiments of the present application all take the sending end and the receiving end as nodes in the multicast tree as an example to exemplify the method 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 sends the received data to the receiving end connected to it.

[0080] In addition, a module other than a network card in a server can be considered as a node (assuming it is node a), and a 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. A module other than a line card in a router can be considered as a node (assuming it is node c), and a 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 A schematic diagram of a topological connection of another entity provided in an embodiment of the present application is shown in FIG. Figure 3A As shown, A is a router. Figure 3A Node A0 in the figure is a module other than the line card in the router, and nodes A1, A2, and A3 are the three line cards in the router. A can send multicast messages to nodes B, C, D, E, F, and G through the interfaces on the three line cards. At this time, nodes A1, A2, and A3 can be child nodes of node A0. A can also be a server. At this time, nodes A1, A2, and A3 are the three network cards in the server, and A can send multicast messages to nodes B, C, D, E, F, and G through the network ports on the three network cards.

[0081] 2. Child nodes

[0082] The child nodes of a node refer to the nodes in the multicast tree to which the messages of the node can be reached through one-hop multicast (i.e., only one multicast forwarding). One-hop multicast refers to searching the multicast forwarding table once. For example, Figure 2 Node R in the multicast tree is a child node of node B, node S is a child node of node R, and node E is a child node of node R. If a multicast message sent by a node that supports multicast in the multicast tree reaches another node that supports multicast in the multicast tree after passing through one or more nodes that do not support multicast, then the latter node that supports multicast is a child node of the former node that supports multicast, that is, the former node that supports multicast reaches the latter node that supports multicast after a one-hop multicast. For example, Figure 3B A schematic diagram of multicast message transmission between routers provided in an embodiment of the present application is shown in FIG. Figure 3B As shown, 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 the child node of router A.

[0083] When a node has no child nodes, the node can be called a leaf node. When a node's child node is a leaf node of a multicast tree, the child node can be called a leaf child node of the node. When a node's child node is not a leaf node of a multicast tree, the child node can be called a non-leaf child node of the node.

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

[0085] In some possible examples, a node to which an entity belongs may be a child node of another node to which the entity belongs. Figure 1B In (b), the node X to which entity A (or entity B) belongs is a child node of the node Z to which entity A (or entity B) belongs. Of course, a node to which an entity belongs may not be a child node of another node to which the node belongs.

[0086] 3. Brother nodes

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

[0088] 4. Descendant nodes

[0089] The child nodes of a node, the child nodes of its child nodes, and so on, can all be called descendant nodes of this node. For example, Figure 2 In the figure on the right, the descendant nodes of node B include the child nodes of node B (i.e., node R), the child nodes of node R (i.e., node E and node S), and the child nodes of node S (i.e., node C and node D), that is, the descendant nodes of node B include node R, node E, node S, node C, and node D.

[0090] 5. Potential child nodes

[0091] A potential child node of a node refers to a node to which the message of the node can be reached through one-hop multicast. For example, Figure 2 Node R and node A in are all 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 can be understood 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 may also have other names, such as multicast objects, preparatory child nodes, etc., which are not limited in this application.

[0092] 6. Unicast and multicast messages

[0093] There are two definitions of unicast messages and multicast messages. The following describes these two definitions respectively.

[0094] The first definition of unicast messages and multicast messages is described as follows.

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

[0096] 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 perform multicast forwarding on the message (or does not need to look up the multicast forwarding table), but performs unicast forwarding according to 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.

[0097] 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.

[0098] For example, node A and node B are topologically connected, and node B and node 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. Then, the message is a unicast message for node B and a multicast message for node C.

[0099] 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.

[0100] The second definition of unicast messages and multicast messages is described as follows.

[0101] Messages are classified according to their structure. Specifically, messages whose outermost header is a unicast header are unicast messages, and messages whose outermost header is a multicast header are multicast messages. Among them, 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 embodiment of the present application is also a multicast header.

[0102] Based on the above two definitions for unicast messages and multicast messages, in order to make the method provided in the embodiment of the present application clearer, the first definition is used in the embodiment of the present application to describe the method provided in the embodiment of the present application. When the second definition is used in the embodiment of the present application, it can be determined whether the message is a unicast message or a multicast message according to the specific structure of the message. For example, in the following, the first node sends a first multicast message to the second node. If 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.

[0103] The unicast encapsulation in the message in the embodiment of the present application can be the fourth version (referred to as IPv4) unicast encapsulation of the Internet Protocol (internet protocol, IP), the sixth version (referred to 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 pass through 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.

[0104] 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.

[0105] 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, the multicast information after the IP header of the multicast message is parsed, and the multicast message is forwarded 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 other nodes), fills the address of other nodes into the destination address field in the IP header, and encapsulates the multicast information and data sent to other nodes after the IP header, obtains the multicast message sent to other nodes, and then sends the multicast message to other nodes. In the following of this application, for the sake of brevity, this process is not described in detail in each step, and is described uniformly here, and will not be repeated in the following.

[0106] Regarding the data in the multicast message, the data is different for different parts of the multicast message. Specifically, for a part of the multicast message, the data refers to the part after the part of the multicast message. For example, Figure 4 A schematic diagram of the structure of the first multicast message provided in the embodiment of the present application, such as Figure 4 As shown, the multicast information can be carried in the message header. For the outer encapsulation, the data is the part after the outer encapsulation (i.e., "multicast information of the second node + inner 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 encapsulation + payload"); for the inner encapsulation, the data is the part after the inner 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, Figure 4 The data in the multicast message shown is "inner encapsulation + payload".

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

[0108] Figure 5 A schematic diagram of the structure of multicast information of a node provided in an embodiment of the present application, such as Figure 5 As shown, a node can carry the multicast information of the node in the message header of the 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 (Multicast Routing ID, MRID) of the node, the addressing field of the node and the multicast routing information of the child node of the node. The multicast routing information of the child node of the node is used to indicate the descendant node of the child node of the node in the multicast tree determined by the data.

[0109] (1) MRID of the node.

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

[0111] Table 1

[0112] Serial number Multicast routing identifier of node R (011) Next hop address 1 0 (corresponding to the first bit) Node B 2 1 (corresponding to the second bit) Node S 3 1 (corresponding to the third bit) Node E

[0113] (2) The addressing field of the node.

[0114] 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.

[0115] 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. The node obtains the multicast routing information of the node's child nodes to be sent to, and the multicast routing information of the node's child nodes to be sent to, 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, and encapsulates and generates a multicast message to be forwarded. The detailed process is described as follows: Figure 7 The first process flow diagram for obtaining multicast messages provided by this application is as follows: Figure 7 As shown, the process includes the following steps ① to ④.

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

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

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

[0119] 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.

[0120] In the above process, the node needs to obtain the multicast routing information corresponding to each child node of the node according to the total length, MRID, addressing field and multicast routing information of all child nodes of the node, and encapsulate the multicast message sent to each child node according to the multicast routing information corresponding to each child node. In this way, when the node contains two or more child nodes, the node needs to edit and split the multicast routing information of all child nodes of the node multiple times to obtain the multicast routing information of each child node, and encapsulate to form a multicast message sent to each child node. The number of splits is large, which is time-consuming and affects the forwarding efficiency of the multicast message.

[0121] In order to solve the above problems, the present application provides a method for multicast message transmission, and the principle of implementing multicast message transmission by the 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: positioning information of the multicast routing information of the node to be received by the data message to be forwarded, the multicast routing information of the node, and data. The multicast routing information of the node includes the multicast routing information of multiple child nodes of the node. The node forwards the multicast message to be forwarded to the node to be received by the data message to be forwarded.

[0122] The method for transmitting multicast messages provided by the present application is Figure 7 The difference of the described method is that: the node encapsulates the multicast routing information of multiple child nodes of the node and the positioning information for determining the multicast routing information of the child node to be sent to in the message header of the multicast message, and sends the multicast message to the child node to be sent to. So that after the child node receives the multicast message: according to the positioning information for determining the multicast routing information of the child node, the multicast routing information of the child node is determined from the multicast routing information of multiple child nodes. The method is specifically described below.

[0123] like Figure 8 As shown, it is a flow chart of a method for multicast message transmission provided by an embodiment of the present application, the method is applied to a first node, and the first node can be a router, a switch, a server, a host, a network card, a line card, a chip, a bare die of a chip (DIE), a terminal (for example, a mobile terminal), an internal module of a device, a virtual machine, a container, a process or a thread, etc. The method includes the following S810 and S820.

[0124] S810. The first node determines a first multicast message.

[0125] 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.

[0126] According to the situation that 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.

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

[0128] 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.

[0129] In a second possible scenario, the first node includes a plurality of child nodes in the multicast tree.

[0130] The child nodes of the first node in the multicast tree are the first child node, the second child node to 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, the multicast routing information of the second child node to the Nth child node. The multicast routing information of the first child node and the multicast routing information of the second child node to the Nth child node are respectively used to indicate the descendant nodes of the first child node, the descendant nodes of the second child node to the descendant nodes of the Nth child node in the multicast tree corresponding to the data.

[0131] For example, the child nodes of the first node in the multicast tree include: the second node and the 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 is used to indicate the descendant nodes of the second node in the multicast tree. The multicast routing information of the third node is used to indicate the descendant nodes of the third node in the multicast tree.

[0132] 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 the descendant nodes of the fifth node in the multicast tree.

[0133] In a 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 jointly represent the length of the multicast routing information of the second node. The following is an example of the first length information being represented by one numerical value or two numerical values.

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

[0135] 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 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.

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

[0137] In this case, 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. In this case, the first value and the second value can both select any two different units from units such as bits, bytes, and kilobytes. For example, the first value is 4 bits and the second value is 1 Byte. In this case, the length of the multicast routing information of the second node is less than 1 byte and is 4 bits. The first value and the second value can be carried in different fields of the first multicast message, such as the first multicast message uses the lb field to carry the first value, and uses the LB field to carry the second value. According to the needs of actual applications, the first multicast message can also use one or more other fields to carry the first value and the second value, which is not limited in this application.

[0138] The above gives 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.

[0139] In a 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 for example, the first position information 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.

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

[0141] 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 groupcast message relative to the reference position in the first groupcast 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 groupcast message, and the reference position is the ending position of the first positioning information in the first groupcast message, and the first offset value is 12 bits as an example. In this case, the starting position of the multicast routing information of the second node in the first groupcast message is: the position offset by 12 bits from the ending position of the first positioning information in the first groupcast message. For another example, the reference position is the starting position or the ending position of the addressing field in the first groupcast message, and the reference position is the ending position of the addressing field in the first groupcast message, and the first offset value is 12 bits as an example. In this case, the starting position of the multicast routing information of the second node in the first groupcast message is: the position offset by 12 bits from the ending position of the addressing field in the first groupcast 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. According to actual application requirements, the first multicast message may also use other fields to carry the first offset value, which is not limited in this application.

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

[0143] In this case, the first position information includes a first offset value and a second offset value. The first offset value is the offset of the first field at the starting position or the ending position of the first field in the first groupcast message relative to the reference position in the first groupcast message. The second 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 groupcast message relative to the starting position or the ending position of the first field in the first groupcast message. The first field is the field where the starting position or the ending position of the multicast routing information of the second node is located among the multiple fields obtained by dividing the first groupcast message using the first unit length. 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 groupcast message, taking the reference position as the ending position of the first positioning information in the first groupcast message, and the first offset value is 4bit, and the second offset value is 1Byte as an example. In this case, the starting position of the multicast routing information of the second node in the first groupcast message is: the position in the first groupcast message that is offset by 12 (i.e., 1*8+4) bits from the ending position of the first positioning information. For another example, the reference position is the starting position or the ending position of the addressing field in the first groupcast message. Take the reference position as the end position of the addressing field in the first multicast message, the first offset value is 4 bits, and the second offset value is 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: the 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 uses the ob field to carry the first offset value, and uses 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.

[0144] The above provides the use of a first offset value to indicate the position of the multicast routing information of the second node 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 multicast routing information of the second node in the first multicast message. According to the needs of the actual application, three or more offset values ​​may also be used to jointly indicate the position of the multicast routing information of the second node in the multicast message, which is not limited in this application.

[0145] 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.

[0146] In one possible scenario, the first node receives a second multicast message sent by the 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.

[0147] In a possible scenario, 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.

[0148] 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.

[0149] 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 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) as units as an example. Fig. 9 A schematic diagram of a process of obtaining multicast routing information of a node using positioning information provided in an embodiment of the present application, such as Fig. 9 As shown, the process of the first node determining the multicast routing information of the first node from the second multicast routing information according to the third offset value, the fourth offset value, the third value and the fourth value included in the second positioning information includes the following steps ① to ④.

[0150] Step ①: The first node starts to offset the fourth offset value from the reference position to obtain the first offset position. If the fourth offset value is 0 bytes, the first node starts to offset 0 bytes from the reference position to obtain an offset position 1.

[0151] Step ②, the first node starts from the first offset position and obtains the content of the second group broadcast message with a length of the fourth value. If the fourth value is 2 bytes, the first node starts from the offset position 1 and obtains the content of the second group broadcast message with a length of 2 bytes.

[0152] Step ③, the first node starts from the first offset position, offsets the third offset value, and obtains the second offset position, which is the starting position of the multicast routing information of the first node. If the third offset value is 0 bits, the first node starts from offset position 1 and offsets 0 bits to obtain offset position 2, which is the starting position of the multicast routing information of the first node.

[0153] In step ④, the first node starts from the second offset position and obtains the content with the third value in length from the content with the fourth value in length. The content with the third value in length is the content of the multicast routing information of the first node. If the third value is 9 bits, the first node starts from the offset position 2 and obtains the content with the length of 9 bits from the content with the length of 2 bytes. The content with the length of 9 bits is the multicast routing information of the first node.

[0154] 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.

[0155] 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 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 brother 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 second multicast routing information including: 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.

[0156] Fig.10 A schematic diagram of a multicast tree structure provided for an embodiment of the application, such as Fig.10 As shown, the parent node of the first node in the multicast tree is the fourth node, and the brother 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 multicast routing information of the second node 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 in different situations below.

[0157] In case A, the position of the multicast routing information of the second node in the second multicast message is before the position of 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.

[0158] Fig.11 A schematic diagram of the structure of the first second multicast message provided in the embodiment of the present application, such as Fig.11 As shown, 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 ③.

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

[0160] The first node determines the first multicast routing information according to the second multicast routing information, including the following situation one and situation two.

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

[0162] 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).

[0163] 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.

[0164] 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 (first node) strips off the multicast routing information of its brother nodes (sixth node and seventh node), and sends the multicast routing information of the child nodes of the current node (first node) to its child nodes (such as the second node).

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

[0166] Taking the example that 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.

[0167] The starting position or the ending position of the multicast routing information of the second node may be a reference position, and the following description is made by taking the starting position of the multicast routing information of the second node as the reference position. The foregoing description describes that the first multicast routing information in scenario 1 and scenario 2 includes different contents, so for the above two scenarios, the first node determines the first positioning information in different ways, which are described in detail below.

[0168] For the above situation 1, the reference position is the starting position or the ending position of the addressing field in the first groupcast message. Taking the reference position as the ending position of the addressing field in the first groupcast message as an example, if in the first groupcast message, 3 bits are used to store the MRID of the first node, and 8 bits are used to store the addressing field of the first node, in this case, the first offset value is 3 bits and the second offset value is 1 Byte.

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

[0170] The first offset value or the second offset value may 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.

[0171] The first node obtains the first value and the second value according to 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.

[0172] By adopting 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.

[0173] 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.

[0174] According to 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.

[0175] For situation 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. Fig.12 A schematic diagram of the structure of the first first multicast message provided in the embodiment of the present application, such as Fig.12 As shown, 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.

[0176] For the second scenario 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. And forms a first multicast message according to the first multicast routing information, Fig.13 A schematic diagram of the structure of the second first multicast message provided in the embodiment of the present application, such as Fig.13 As shown, 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.

[0177] In the case where the multicast routing information of the second node is the multicast routing information of the first child node of the first node carried by the second multicast message, the first node determines the first positioning information according to the first indication information. In this way, the first node quickly obtains the first positioning information according to the length of the multicast routing information of the second node indicated by the first indication information. 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 according to the first positioning information, which reduces the number of times the editing node edits the message and improves the efficiency of forwarding the multicast message.

[0178] Scenario B, Fig.14A schematic diagram of the structure of the second second multicast message provided in the embodiment of the present application, such as Fig.14 As shown, the position of the multicast routing information of the second node in the second multicast message is located after the position of the multicast routing information of the third node in the second multicast message. In this case, the second node can also be called the last child node of the first node.

[0179] The difference from situation A is that 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 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 second indication information can be carried in the addressing field of the second multicast message. The fourth indication information can be carried in the total length field of the second multicast message.

[0180] In this case, the process of the first node determining the first multicast message according to the second multicast message includes: Step ①, the first node determines the first multicast routing information according to the second multicast routing information. Step ②, the first node determines the first positioning information according to the second indication information and the fourth indication information. Step ③, 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.

[0181] The methods of step ① and step ③ in scenario B are the same as those of step ① and step ③ in scenario A. For the relevant contents, please refer to the above description, which will not be repeated here. The difference from scenario A is step ②, and the specific description of the process is as follows.

[0182] Still taking the example that the first positioning information includes: the first offset value, the second offset value, the first numerical value and the second numerical value, the first node obtains the length of the multicast routing information of the second node according to the total length of the multicast routing information of the first node indicated by the fourth indication information and the length of the multicast routing information of the third node indicated by the second indication information. And the first node obtains the first numerical value and the second numerical value according to the length of the multicast routing information of the second node. According to the different ways of determining the first multicast routing information in step ①, the ways of obtaining the length of the multicast routing information of the second node are also different, which are described below respectively.

[0183] Scenario 1: The first node in step ① determines that the second multicast routing information is the first multicast routing information.

[0184] In this case, the first node uses the total length of the multicast routing information of the first node as the minuend, uses the length of the multicast routing information of the third node, the length of the multicast routing identifier of the first node in the second multicast message, and the length of the addressing field of the first node in the second multicast message as the subtrahend, and the difference obtained by calculation is the length of the multicast routing information of the second node. And the first node adopts the method described in the first possible scenario to obtain the first value and the second value according to the length of the multicast routing information of the second node.

[0185] The first node obtains the starting position or the ending position of the multicast routing information of the second node according to 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 according to 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.

[0186] 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.

[0187] In this case, the first node uses the total length of the multicast routing information of the first node as the minuend and the length of the multicast routing information of the third node as the subtrahend, and the calculated difference is the length of the multicast routing information of the second node. And the first node uses the method described in the first possible scenario to obtain the first value and the second value according to the length of the multicast routing information of the second node. The way in which the first node obtains the first offset value and the second offset value is the same as in scenario one, and will not be repeated here.

[0188] The above text takes the example that the subnodes of the first node include: the second node and the third node, and describes the process of how to obtain the first groupcast message according to the second groupcast message when the multicast routing information of the second node is carried in different positions in the second groupcast message. In some possible situations, the first node may also include three or more subnodes. Fig.15 A schematic diagram of the structure of the second multicast tree provided in the embodiment of the present application is shown in FIG. Fig.15As shown, the child nodes of the first node in the multicast tree corresponding to the data may also include: a fifth node. In this case, 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.

[0189] Fig.16 A schematic diagram of the structure of the third second multicast message provided in this application, such as Fig.16 As shown, 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 subnode of the first node. The specific process of the first node determining the first multicast message according to the second multicast message is described as follows.

[0190] The process of the first node determining the first multicast message according to the second multicast message includes: Step ①, the first node determines the first multicast routing information according to the second multicast routing information. Step ②, the first node determines the first positioning information according to the first indication information and the third indication information. Step ③, 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.

[0191] The methods of steps ① and ③ in this case are the same as those of steps ① and ③ in case B. For the relevant contents, please refer to the above description, which will not be repeated here. The difference from case B is step ②, and the specific description of the process is as follows.

[0192] The method for the first node to determine the first offset value and the second offset value included in step ② in this situation is the same as the method for the first node to determine the first offset value and the second offset value in situation B. The method for the first node to determine the first numerical value and the second numerical value included in step ② in this situation is different from the method described in situation B, specifically: the first node obtains the length of the multicast routing information of the second node by associating 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. After obtaining the multicast routing information of the second node, the first node can use the method described in situation B to obtain the first numerical value and the second numerical value.

[0193] In the case where the second node is an intermediate child node of the first node, the first node determines the first positioning information according to the first indication information and the third 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 according to the first positioning information, thereby reducing the number of times the editing node edits the message and improving the efficiency of forwarding the multicast message.

[0194] The above text uses the example of the first node not stripping the multicast routing information of its sibling nodes (such as the sixth node and the seventh node) to illustrate the process of the first node determining, based on the second multicast message, the multicast messages to be sent to the child nodes whose multicast routing information is carried in different positions of the second multicast message. In the case where the first node strips the multicast routing information of its sibling nodes (such as the sixth node and the seventh node), the method described above can also be used to determine, based on the second multicast message, the multicast messages to be sent to the child nodes whose multicast information is carried in different positions of the second multicast message.

[0195] 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 form a multicast message to each child node of the first node.

[0196] In order to better understand the method provided by the present application, Fig.17 The schematic diagram of multicast message forwarding shown in FIG. 1 is used to introduce the transmission process of multicast messages. Fig.17 As shown, node A, node Y and node Z are all child nodes of node X, node B and node C are child nodes of node A, and node D and node 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. Among them, 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. According to whether the parent node sends the multicast routing information of the brother node of the parent node to its child node, it is divided into the following two cases and described respectively.

[0197] Scenario 1: The node does not strip off the multicast routing information of the node's brother nodes, and directly sends the node's multicast routing information and the node's brother nodes' multicast routing information to its child nodes.

[0198] Fig.18 This is an example diagram of the first type of multicast message provided in the embodiment of the present application, such as Fig.18 As shown, 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=4Bytes, lb1=32bits.

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

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

[0201] Node A obtains the multicast routing information of node A according to the positioning information 1: node A reads the 4-byte content in multicast message 1 from the position indicated by OB1, node A offsets the position indicated by ob1 from the position indicated by OB1, and reads the 32-bit content from the 4-byte content that has been read, which is the multicast routing information of node A. The multicast routing information of node A includes: MRID_A (011), the addressing field (L_B = 12 bits), the multicast routing information of node B and the multicast routing information of node C, and the content of MRID_A (011) occupying 3 bits in the multicast routing information of node A, and the content of the addressing field (L_B = 12 bits) occupying 8 bits in the multicast routing information of node A.

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

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

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

[0205] Node A determines the end position of the addressing field as the start position of the multicast routing information of node B. MRID_A (011) occupies 3 bits, 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, and 11 bits can be divided into 1 Byte and 3 bits, that is, OB2 = 1 Byte, ob2 = 3 bits. Node A determines LB2 and lb2 according to 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, that is, LB2 = 2 Bytes, lb2 = 12 bits.

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

[0207] The process of node A obtaining multicast message 3 according to multicast message 1 includes the following (1) to (3).

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

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

[0210] Node A determines the total length 3 of the multicast routing information of node C according to 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 the multicast routing information of node B (L_B = 12 bits). Specifically, the total length 1 (32 bits) - 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) - the length of the multicast routing information of node B (12 bits) = the total length 3 (9 bits).

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

[0212] Node A determines that the end position of node B's multicast routing information is the start position of node C's multicast routing information. According to 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.

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

[0214] Node B can obtain multicast message 4 sent to node D according to multicast message 2 using the method described above. Fig.21 An example diagram of the fourth multicast message provided in the embodiment of the present application, such as Fig.21 As shown, the multicast message 4 includes: the total length 4 of the multicast routing information of node D, the 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.

[0215] Scenario 2: The node strips the multicast routing information of the node's brother node, the node's MRID and addressing address, and sends the node's multicast routing information to its child node.

[0216] The process of node A obtaining multicast message 2 according to multicast message 1 includes: node A obtains the multicast routing information, total length 2 and positioning information 2 of node A according to multicast message 1. In scenario 2, the process of node A obtaining the multicast routing information and total length 2 of node A according to multicast message 1 is the same as that in scenario 1. For related contents, please refer to the above description and will not be repeated here. The difference between scenario 2 and scenario 1 is the process of node A determining positioning information 2, which is described in detail as follows.

[0217] Node A determines that the end position of location information 1 is the start position of node B's multicast routing information, OB2 = 0 Byte, ob2 = 0 bit. Node A obtains LB2 and lb2 according to the addressing field (L_B = 12 bits). The addressing field (L_B = 12 bits) is 12 bits, which is less than 2 bytes, that is, LB2 = 2 bytes, lb2 = 12 bits.

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

[0219] The process of node A obtaining multicast message 3 according to multicast message 1 includes: node A obtains the multicast routing information, total length 3 and positioning information 3 of node A according to multicast message 1. In scenario 2, the process of node A obtaining the multicast routing information and total length 3 of node A according to multicast message 1 is the same as that in scenario 1. For relevant contents, please refer to the above description, which will not be repeated here. The difference between scenario 2 and scenario 1 is the process of node A determining positioning information 3, which is described in detail as follows.

[0220] Node A determines that the end position of node B's multicast routing information is the start position of node C's multicast routing information. Since the length of node B's multicast routing information is 12 bits, that is, OB3 = 1 Byte, ob3 = 4 bits. Node A obtains LB3 and lb3 based on the length of node C's multicast routing information (L_C = 9 bits). The length of node C's multicast routing information (L_C = 9 bits) is 9 bits, which is less than 2 bytes, that is, LB3 = 2 bytes, lb3 = 9 bits.

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

[0222] Node B can use the method described above to obtain multicast message 4 and multicast message 5 sent to node D and node E respectively according to multicast message 2. Fig.24This is an example diagram of the seventh multicast message provided in the embodiment of the present application, such as Fig.24 As shown, 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 D, and the multicast routing information of node E. Multicast message 5 includes: the total length 5 of the multicast routing information of node E, positioning information 5, the multicast routing information of node D, and the multicast routing information of node E.

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

[0224] 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.

[0225] In a possible scenario, the destination address in the unicast encapsulation in the first multicast message is the address of the second node. Specifically, the first multicast message can 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. Among them, the unicast encapsulation can include an indication field, and the indication field is used to indicate whether the information after unicast encapsulation in the multicast message contains multicast information. After receiving the multicast message, the node or entity can determine whether the information after unicast encapsulation in the multicast message contains multicast information according to the indication field. Exemplarily, if the unicast encapsulation is IPv4 encapsulation, the "protocol" field in the IPv4 header can indicate whether the information after unicast encapsulation 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 information after unicast encapsulation in the multicast message contains multicast information.

[0226] In the embodiment of the present application, the source address in the unicast encapsulation of the multicast message sent by one node (for example, node a) to another node (for example, node b) can be the address of node a or the address of the source node in the multicast tree. Figure 2 In the example shown, the source address in the unicast encapsulation of the 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 the multicast message sent by node S to node D can be the address of node S or the address of node B.

[0227] In some possible situations, when the multicast message in the embodiment of the present application does not include unicast encapsulation, the node can determine the next hop node of the multicast message through the multicast routing identifier in the multicast message. For example, when a node receives a multicast message, and 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.

[0228] 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.

[0229] 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 sends 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 according to 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.

[0230] 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 realize 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 easily appreciated by those skilled in the art that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, 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 the form of hardware or computer software driving hardware 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 exceed the scope of this application.

[0231] The embodiment of the present application can divide the nodes or entities 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 function division. There may be other division methods in actual implementation.

[0232] Fig.25 A schematic diagram of the structure of a communication device provided in an embodiment of the present application is shown in FIG. Fig.25 As shown, the communication device 2500 includes: a processing unit 2510 and a communication unit 2520. In some possible examples, the communication device 2500 may further include a storage unit 2530. The communication device 2500 may be used to illustrate the structure of the node or entity in the above embodiment.

[0233] when Fig.25 The structural schematic diagram shown 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 Figure 8 810 and 820 in the embodiment of the present application, 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, Figure 8 The storage unit 2530 is used to store the program code and data of the first node.

[0234] when Fig.25 The structural schematic diagram shown 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 Figure 8 820 in the embodiment of the present application, 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, Figure 8 The storage unit 2530 is used to store the program code and data of the second node.

[0235] when Fig.25 When the structural schematic diagram shown 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.

[0236] Exemplarily, the communication device 2500 may be a device or a chip or a chip system.

[0237] 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. Optionally, the transceiver may be a transceiver circuit. Optionally, the input interface may be an input circuit, and the output interface may be an output circuit.

[0238] When the communication device 2500 is a chip or a chip system, the processing unit 2510 may be a processor, a processing circuit or 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, etc. on the chip or the chip system.

[0239] Fig.25 If the integrated unit 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 perform 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: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program codes.

[0240] 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 can be Fig.26 The communication device 2600 is shown.

[0241] Fig.26 A schematic diagram of the hardware structure of the communication device provided in the embodiment of the present application is shown in FIG. Fig.26 As shown, the communication device may be a node or entity in this document. The communication device 2600 includes at least one processor 2610, a communication bus 2620 and at least one communication interface 2640. Optionally, a memory 2630 is also included. Fig.26 In the figure, a communication device 2600 including a processor 2610 and a communication interface 2640 is taken as an example.

[0242] The processor 2610, the communication interface 2640 and the memory 2630 can be connected via 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.

[0243] In a first possible implementation, the 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 the execution of the program of the present application. The communication interface 2640 may be any transceiver-like device.

[0244] 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.

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

[0246] 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 compressed optical disc, a laser disc, an optical disc, a digital versatile disc, a 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 the desired program code in the form of an instruction or data structure 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.

[0247] 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 method provided in the following embodiments of the present application.

[0248] 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.

[0249] when Fig.26 The structural schematic diagram shown 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 Figure 8 810 and 820 in the embodiment of the present application, 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, Figure 8 The memory 2630 is used to store the program code and data of the first node.

[0250] when Fig.26 The schematic diagram of the structure shown in FIG. 1 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 Figure 8 820 in the embodiment of the present application, 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, Figure 8 The memory 2630 is used to store the program code and data of the second node.

[0251] when Fig.26 When the structural schematic diagram shown 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.

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

[0253] The embodiment of the present application also provides a computer program product including 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 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.

[0255] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using a software program, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer execution instruction is loaded and executed on the computer, the process or function described in the embodiment of the present application is generated in whole or in part. 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 a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or may contain one or more servers, data centers and other data storage devices that can be integrated with the medium. 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)).

[0256] 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 may understand and implement other variations of the disclosed embodiments by viewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "one" or "an" does not exclude multiple situations. A single processor or other unit may implement several functions listed in a claim. Certain measures are recorded in different dependent claims, but this does not mean that these measures cannot be combined to produce good results.

[0257] Although the present application has been described in conjunction with specific features and embodiments thereof, it is obvious 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 exemplary illustrations of the present application as defined by the appended claims, and are deemed to have covered 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, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.

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

Cited By

  • Multicast message transmission method and apparatus

    EP4770038A1

  • Multicast message transmission method and apparatus

    WO2025060875A1