Communication method and communication device

By pre-storing the backup path in the multicast message and switching to the backup path when the node communication fails, the problem of bandwidth waste in MoFRR technology is solved, and reliable multicast message forwarding is achieved.

CN115883452BActive Publication Date: 2025-09-02HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111137441.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-27
Publication Date
2025-09-02
Estimated Expiration
2041-09-27

AI Technical Summary

Technical Problem

In MoFRR technology, the edge node of each multicast service occupies double bandwidth in the network, resulting in the problem of bandwidth waste.

Method used

In the multicast messages sent between nodes, the backup path is stored in advance. When the node cannot communicate normally, it quickly switches to the backup path and forwards the packets by encapsulating the backup path indication information to avoid bandwidth waste.

Benefits of technology

It realizes that no bandwidth is wasted when node communication failures, and provides a reliable guarantee mechanism for multicast to ensure the normal forwarding of multicast messages.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115883452B_ABST
    Figure CN115883452B_ABST
Patent Text Reader

Abstract

A communication method and device are provided. The method includes: a first node obtaining a first multicast message, the first multicast message including a multicast routing identifier of a second node and a multicast routing identifier of a child node of the second node in a first multicast tree, the second node being a non-leaf child node of the first node in the first multicast tree, and the first multicast tree being used to indicate a forwarding path for the first multicast message; when the second node fails or a link between the first and second nodes fails, the first node processes the first multicast message based on a target backup path to obtain a second multicast message, the second multicast message including information indicating the target backup path and the multicast routing identifier of the child node of the second node in the first multicast tree; and the first node sending the second multicast message to a third node, the third node being the first hop node in the target backup path. When the first and second nodes cannot communicate normally, the first node can quickly switch to the backup path without wasting bandwidth.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communications, and more specifically, to a communication method and a communication device. Background Art

[0002] Multicast-only fast reroute (MoFRR) is an end-to-end dual-transmit and selective-receive protection solution. Each edge node sends join signals to the multicast source via orthogonal paths. Upstream nodes generate table entries hop by hop to establish backup paths. The multicast source sends both primary and backup traffic to the edge node. The edge node prioritizes the primary traffic and, if it fails to receive the primary traffic within a certain time threshold, receives the backup traffic. In this technical solution, each edge node for each multicast service consumes double the network bandwidth, resulting in bandwidth waste. Summary of the Invention

[0003] The present application provides a communication method and a communication device, which can quickly switch to a backup path when two nodes cannot communicate normally, without wasting bandwidth.

[0004] In a first aspect, the present application provides a communication method, which can be executed by a first node, or can also be executed by a component configured in the first node (such as a chip, a chip system, etc.), and the present application does not limit this.

[0005] Exemplarily, the method includes: a first node obtains a first multicast message, the first multicast message includes multicast routing information of a second node, the multicast routing information of the second node includes a multicast routing identifier of the second node and a multicast routing identifier of a child node of the second node in a first multicast tree, the second node is a non-leaf child node of the first node in the first multicast tree, the first multicast tree is used to indicate a forwarding path of the first multicast message, wherein the multicast routing identifier of a node is used to determine the next hop of the node; when the first node and the second node cannot communicate normally, the inability to communicate normally includes a failure of the second node or a link failure between the first node and the second node, the first node processes the first multicast message based on the target backup path to obtain a second multicast message, the second multicast message includes indication information of the target backup path, and the second multicast message includes the multicast routing identifier of the child node of the second node in the first multicast tree; the first node sends a second multicast message to a third node, the third node is the first hop node in the target backup path, and the third node is not in the first multicast tree.

[0006] It should be understood that when the child node of the second node in the first multicast tree is a non-leaf child node in the first multicast tree, the multicast routing identifier of the child node of the second node in the first multicast tree can be included in the multicast routing information of the child node, and the multicast routing information of the child node can include the multicast routing identifier and addressing field of the child node, and the addressing field can be used by the node to determine the location of the multicast routing information of the child node of the node; when the child node of the second node in the first multicast tree is a leaf node in the first multicast tree, the multicast routing information of the second node can include the multicast routing identifier of the child node of the second node in the first multicast tree, and the multicast routing information of the second node may not include the addressing field of the child node of the second node in the first multicast tree.

[0007] Based on the above scheme, a backup path that can bypass the faulty node or faulty link is pre-stored on the node participating in multicast message forwarding. When the first node senses that a device failure has occurred in the second node or a link failure has occurred between the first node and the second node, the target backup path can be searched in the pre-stored backup path, the target backup path can be encapsulated into the message, and the message can be sent based on the target backup path. In this way, when the first node and the second node cannot communicate normally, they can quickly switch to the target backup path, encapsulate the target backup path into the message, and continue to send the message based on the target backup path. This method does not waste bandwidth and can also provide a reliable protection mechanism for multicast.

[0008] In combination with the first aspect, in some possible implementations, the second multicast message includes a multicast routing identifier of the second node, and the multicast routing identifier of the child node of the second node is included in the multicast routing information of the second node.

[0009] Based on the above scheme, the first node can send the second multicast message to the third node, and the third node can forward the multicast message to the second node based on the indication information of the forwarding path of the multicast message in the second message. In this way, the second node is still a node in the multicast message forwarding path, and the second node can also forward the multicast message to the child node of the second node.

[0010] With reference to the first aspect, in some possible implementations, the second multicast message does not include the multicast routing identifier of the second node.

[0011] Based on the above scheme, the first node can send the second multicast message to the third node, and the third node can forward the multicast message to the child node of the second node based on the indication information of the forwarding path of the multicast message in the second message, but will not forward the message to the second node. As a result, the second node is no longer a node in the multicast message forwarding path, and there is no need to forward the multicast message to the child node of the second node through the second node. Therefore, no matter whether the second node has a device failure or the link between the first node and the second node fails, it will not affect the forwarding of the multicast message.

[0012] In combination with the first aspect, in some possible implementations, the method also includes: the first node generates a first forwarding table based on one or more backup paths, the first forwarding table including indication information of each backup path in the one or more backup paths and the interface identifiers of the adjacent nodes of the first node and the adjacent nodes of the first node, the indication information of each backup path corresponds to the adjacent nodes of the first node and the interface identifiers of the adjacent nodes of the first node, and the one or more backup paths include a target backup path.

[0013] Based on the above scheme, when the first node and the second node cannot communicate normally, the first node can quickly determine the target backup path from the first forwarding table maintained on the first node, and encapsulate the indication information of the target backup path into the second multicast message, and send the second multicast message to the third node.

[0014] In combination with the first aspect, in some possible implementations, the first forwarding table further includes a backup next hop, where the backup next hop corresponds to an interface identifier of a neighboring node of the first node.

[0015] Based on the above scheme, when the first node and the second node cannot communicate normally, the first node can quickly determine the target backup path and the third node from the first forwarding table maintained on the first node, and encapsulate the indication information of the target backup path into the second multicast message, and send the second multicast message to the third node.

[0016] In combination with the first aspect, in some possible implementations, the first node processes the first multicast message based on the target backup path to obtain the second multicast message, and also includes: the first node determines that the indication information of the backup path corresponding to the first interface of the second node in the first forwarding table is the indication information of the target backup path, and the first interface of the second node is the interface corresponding to the second node and the child node of the second node in the first multicast tree; the first node encapsulates the indication information of the target backup path into the second multicast message based on the first multicast message.

[0017] Based on the above scheme, when the first node and the second node cannot communicate normally, the first node can quickly find the indication information of the target backup path from the first forwarding table maintained on the first node, process the first multicast message based on the indication information of the target backup path, and encapsulate the indication information of the target backup path into the multicast message, thereby obtaining the second multicast message.

[0018] In combination with the first aspect, in some possible implementations, the first node sends a second multicast message to the third node, which also includes: the first node determines that the backup next hop corresponding to the first interface of the second node in the first forwarding table is the third node, and the first interface of the second node is the interface corresponding to the second node and the child node of the second node in the first multicast tree; the first node sends the second multicast message to the third node.

[0019] Based on the above solution, when the first node and the second node cannot communicate normally, after the first node receives the second multicast message, the first node can quickly determine the third node from the first forwarding table maintained on the first node and send the second multicast message to the third node.

[0020] In combination with the first aspect, in some possible implementations, the method also includes: the first node generates a second forwarding table based on one or more backup paths, the second forwarding table including indication information of each backup path in the one or more backup paths and the interface identifier of the first node, the indication information of each backup path corresponds to the interface identifier of the first node, and the one or more backup paths include a target backup path.

[0021] Based on the above scheme, when the first node and the second node cannot communicate normally, the first node can quickly determine the target backup path from the second forwarding table maintained on the first node, and encapsulate the indication information of the target backup path into the second multicast message, and send the second multicast message to the third node.

[0022] In combination with the first aspect, in some possible implementations, the second forwarding table further includes a backup interface identifier, and the backup interface identifier corresponds to the interface of the first node.

[0023] Based on the above scheme, when the first node and the second node cannot communicate normally, the first node can quickly determine the target backup path and backup interface from the second forwarding table maintained on the first node, and encapsulate the indication information of the target backup path into the second multicast message, and send the second multicast message to the third node through the backup interface.

[0024] In combination with the first aspect, in some possible implementations, the first node processes the first multicast message based on the target backup path to obtain the second multicast message, and also includes: the first node determines that the indication information of the backup path corresponding to the first interface of the first node in the second forwarding table is the indication information of the target backup path, and the first interface of the first node is the interface among the interfaces of the first node corresponding to the second node; the first node encapsulates the indication information of the target backup path into the second multicast message based on the first multicast message.

[0025] Based on the above scheme, when the first node and the second node cannot communicate normally, the first node can quickly find the indication information of the target backup path from the second forwarding table maintained on the first node, process the first multicast message based on the indication information of the target backup path, and encapsulate the indication information of the target backup path into the multicast message, thereby obtaining the second multicast message.

[0026] In combination with the first aspect, in some possible implementations, the first node sends a second multicast message to the third node, which also includes: the first node determines that the node corresponding to the backup interface corresponding to the first interface of the first node in the second forwarding table is the third node, and the first interface of the first node is the interface among the interfaces of the first node that corresponds to the second node; the first node sends the second multicast message to the third node through the backup interface corresponding to the first interface of the first node.

[0027] Based on the above scheme, when the first node and the second node cannot communicate normally, after the first node receives the second multicast message, the first node can quickly determine the third node through the backup interface from the second forwarding table maintained on the first node, and send the second multicast message to the third node.

[0028] In combination with the first aspect, in some possible implementations, the one or more backup paths are received by the first node from a controller, and the first node, the second node, and the third node are all connected to the controller.

[0029] In combination with the first aspect, in some possible implementations, the one or more backup paths are calculated by the first node based on the connection relationships of all nodes in the topology structure where the first node is located.

[0030] In combination with the first aspect, in some possible implementations, the first multicast message is received by the first node from a controller or a previous-hop node of the first node, and the multicast routing information of the second node is included in the multicast information of the first node.

[0031] In combination with the first aspect, in some possible implementations, the first multicast message is generated by the first node based on the connection relationship of all nodes in the topology structure where the first node is located, and the first multicast message does not include the multicast routing identifier of the first node.

[0032] In combination with the first aspect, in some possible implementations, the indication information of the target backup path includes the multicast routing information of the third node, the routing multicast information of the third node includes the multicast routing identifier of the third node and the multicast routing information of the non-leaf child nodes of the third node in the second multicast tree, and the second multicast tree is used to indicate the forwarding path of the second multicast message.

[0033] In combination with the first aspect, in some possible implementations, the format of the indication information of the target backup path may also be a corresponding format generated based on segment routing (SR) technology, SR technology of Internet Protocol version 6 (IPv6) or multi-protocol label switching (MPLS) technology.

[0034] In a second aspect, the present application provides a communication device that can implement the method in the first aspect or any possible implementation of the first aspect. The device includes corresponding units for executing the above-mentioned method. The units included in the device can be implemented through software and / or hardware. The device can be, for example, a first node, or a chip, chip system, or processor that supports the first node to implement the above-mentioned method, or a logic module or software that can implement all or part of the functions of the first node.

[0035] In a third aspect, the present application provides a communication device, comprising a processor coupled to a memory, and configured to execute a computer program in the memory to implement the communication method in the first aspect and any possible implementation of the first aspect.

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

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

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

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

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

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

[0042] In a sixth aspect, the present application provides a computer program product, comprising: a computer program (also referred to as code, or instructions), which, when run, enables the method in the above-mentioned first aspect and any possible implementation of the first aspect to be executed.

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

[0044] Figure 1 A schematic diagram of a scenario applicable to the communication method provided in an embodiment of the present application;

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

[0046] Figure 3 A schematic diagram of another entity topology connection and multicast tree provided in an embodiment of the present application;

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

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

[0049] Figure 6 A flow chart of a communication method applicable to an embodiment of the present application;

[0050] Figure 7 A schematic diagram of a first multicast message applicable to the communication method provided in an embodiment of the present application;

[0051] Figure 8 Another schematic diagram of a first multicast message applicable to the communication method provided in an embodiment of the present application;

[0052] Figure 9 A schematic diagram of a first node and a second node that cannot communicate normally provided in an embodiment of the present application;

[0053] Figure 10 A schematic diagram of a second multicast tree applicable to the communication method provided in an embodiment of the present application;

[0054] Figure 11 A schematic diagram of a second multicast message applicable to the communication method provided in an embodiment of the present application;

[0055] Figure 12 Another schematic diagram of a second multicast tree applicable to the communication method provided in an embodiment of the present application;

[0056] Figure 13 Another schematic diagram of a second multicast message applicable to the communication method provided in an embodiment of the present application;

[0057] Figure 14 A schematic diagram of the topological connection of nodes provided in an embodiment of the present application;

[0058] Figure 15 A schematic diagram of the target backup path indication information provided in an embodiment of the present application;

[0059] Figure 16 A schematic diagram of a first multicast message before the first node and the second node fail to communicate normally provided in an embodiment of the present application;

[0060] Figure 17 A schematic diagram showing a comparison of a second multicast message before and after the first node and the second node fail to communicate normally, provided in an embodiment of the present application;

[0061] Figure 18 A schematic diagram of a topological connection between nodes and entities, a multicast tree, and a multicast message provided in an embodiment of the present application;

[0062] Figure 19 A schematic diagram of another topological connection of nodes and entities, a multicast tree, and a multicast message provided in an embodiment of the present application;

[0063] Figure 20 A schematic block diagram of a communication device provided in an embodiment of the present application;

[0064] Figure 21 A schematic block diagram of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

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

[0066] The terms "first", "second" etc. in the specification and claims of the present application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequential order. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "comprise" and "have" and any of their variations are intended to cover non-exclusive inclusions, for example, the process, method, system, product or equipment comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or that are inherent to these processes, methods, products or equipment.

[0067] In the embodiments of the present application, "at least one" refers to one or more, and "more" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c; a and b; a and c; b and c; or a, b, and c. Among them, a, b, and c can be single or multiple.

[0068] This application can be applied to scenarios where a sender needs to carry the same data in a message and send it to multiple receivers. Figure 1 , 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 send and forward multicast messages, and can multicast forward the received multicast messages or multicast send the generated multicast messages. A node can include one entity or multiple entities. An entity can belong to only one node or multiple nodes. For example, Figure 2 (a) and Figure 2 In (b), the left side is the network topology of the entity, and the right side is the multicast tree. Figure 2 In (a), node Z includes multiple entities, namely entity A, entity B, entity C, entity D and entity E. Node E includes one entity, namely entity E. It can be seen that entity E belongs to both node Z and node E. Figure 2In (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.

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

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

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

[0072] 1. Multicast tree

[0073] A multicast tree is a path from a source node to all destination nodes for a specific source node and destination node combination, generated by a routing protocol (e.g., protocol independent multicast (PIM), interior gateway protocol (IGP), etc.) or other methods (e.g., manual configuration, controller calculation, etc.) based on a specific network topology. This path is a tree structure with the source node as the root node and the destination nodes as leaf nodes, called a multicast tree. A multicast tree can also be called a multicast distribution tree (MDT). For example, see Figure 3 On the left is a physical network topology diagram. If the source node is node B and the destination nodes are nodes C, D, and E, an example of a multicast tree generated for the combination of the source node and the destination node can be seen in Figure 3 on the right side of the .

[0074] It should be noted that the sender and / or the receiver may be nodes in the multicast tree or not. If the former, the source node may be the sender and the destination node may be the receiver. For ease of description, unless otherwise specified, the embodiments of the present application are described using the sender and the receiver as nodes in the multicast tree as an example to illustrate the method provided in the embodiments of the present application. If the receiver is not a node in the multicast tree, after the data reaches the leaf node, the leaf node will send the received data to the receiver connected to it.

[0075] In addition, the modules other than the network card in a server can be considered as a node (assuming it is node a), the network card in the server can be considered as another node (assuming it is node b), and node b can be considered as a child node of node a. The modules other than the line card in a router can be considered as a node (assuming it is node c), the line card in the router can be considered as another node (assuming it is node d), and node d can be considered as a child node of node c. For example, see Figure 4 , A is a router, Figure 4 Node A0 in the example represents a module in the router other than the line cards, while nodes A1, A2, and A3 represent the three line cards in the router. A can send multicast messages to nodes B, C, D, E, F, and G respectively through the interfaces on the three line cards. In this case, nodes A1, A2, and A3 can be child nodes of node A0. A can also be a server. In this case, nodes A1, A2, and A3 represent the three network cards in the server. A can send multicast messages to nodes B, C, D, E, F, and G respectively through the network ports on the three network cards.

[0076] 2. Child nodes

[0077] 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 3 Node R in the multicast tree is a child of node B, node S is a child of node R, and node E is a child of node R. It should be noted that if a multicast message sent by a node that supports multicast in the multicast tree passes through one or more nodes that do not support multicast and then reaches another node that supports multicast in the multicast tree, then the latter node that supports multicast is a child of the former node that supports multicast. In other words, the former node that supports multicast reaches the latter node that supports multicast after a one-hop multicast. For example, see Figure 5Router 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.

[0078] When a child node of a node is a leaf node of a multicast tree, the child node can be called a leaf child node of the node. When a child node of a node is not a leaf node of a multicast tree, the child node can be called a non-leaf child node of the node.

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

[0080] It should be noted that a node to which an entity belongs can be a child node of another node to which the entity belongs. Figure 2 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.

[0081] 3. Multicast routing information and multicast routing identifier

[0082] In an embodiment of the present application, a node's multicast routing information is carried in a multicast message forwarded between nodes. A node's multicast routing identifier is included in the node's multicast routing information. A node's multicast routing identifier can be used by the node to determine its next-hop node, or, in other words, a node's multicast routing identifier can be used to guide the node in performing multicast routing forwarding. It should be understood that the multicast routing information is embedded in the multicast message, and the tree-shaped recursive multicast routing information included in the multicast message can describe the message forwarding information of a multicast tree or a subtree of a multicast tree.

[0083] In MoFRR technology, each edge node can send join signaling to the multicast source through an orthogonal path, and the upstream node needs to generate table entries hop by hop to establish a backup path. The multicast source sends both primary traffic and backup traffic to the edge node at the same time. The edge node can give priority to the primary traffic. When the edge node does not receive the primary traffic within a certain time threshold, the edge node can receive the backup traffic. In this technical solution, each edge node of each multicast service occupies double the network bandwidth, resulting in a problem of bandwidth waste. Therefore, an embodiment of the present application proposes a communication method and a communication device, in which the multicast message sent between nodes can be a multicast message structure based on a multicast tree, and the nodes participating in multicast forwarding maintain a backup path that can bypass the faulty node or faulty link. When two nodes in a multicast tree cannot communicate normally, the node that serves as the previous hop of the two nodes can search for its pre-stored backup path, encapsulate the backup path into a new multicast message, and send the new multicast message based on the backup path. It should be understood that the payload data in the new multicast message does not change from that in the previous multicast message, but the forwarding path indicated in the packet header is different from that in the previous multicast message.

[0084] The communication method provided in the embodiments of the present application is described below with reference to the accompanying drawings.

[0085] Figure 6 6. This is a schematic flow chart of a communication method provided by an embodiment of the present application. The method 600 includes steps 610 to 630, and steps 610 to 630 are described in detail below.

[0086] In step 610, the first node obtains a first multicast message.

[0087] The first multicast message may include multicast routing information of the second node. The multicast routing information of the second node may include a multicast routing identifier of the second node and a multicast routing identifier of a child node of the second node in the first multicast tree, where the second node is a non-leaf child node of the first node in the first multicast tree. The first multicast tree may be used to indicate a forwarding path for the first multicast message.

[0088] It should be noted that the first node can be a non-leaf child node in the first multicast tree, and the second node is a non-leaf child node of the first node. From this, it can be seen that the first node can be the third-to-last hop node in the first multicast message forwarding path and any node before the third-to-last hop node.

[0089] When the child node of the second node in the first multicast tree is a non-leaf child node in the first multicast tree, the multicast routing identifier of the child node of the second node in the first multicast tree can be included in the multicast routing information of the child node, and the multicast routing information of the child node can include the multicast routing identifier and addressing field of the child node. The addressing field can be used by the node to determine the location of the multicast routing information of the child node of the node.

[0090] When the child node of the second node in the first multicast tree is a leaf node in the first multicast tree, the multicast routing information of the second node may include the multicast routing identifier of the child node of the second node in the first multicast tree, and the multicast routing information of the second node may not include the addressing field of the child node of the second node in the first multicast tree.

[0091] For example, Figure 3 The multicast tree shown on the right side of is an example of a first multicast tree. When node B is the first node and node R is the second node, node S is a non-leaf child node of node R, and node E is a leaf child node of node R. The multicast routing information of node R may include the multicast routing information of node S, and the multicast routing information of node S may include the multicast routing identifier and addressing field of node S, as well as the multicast routing information or multicast routing identifier of the child nodes of node S (such as node C and node D). The addressing field can be used by node S to determine the location of the multicast routing information or multicast routing identifier of the child nodes of node C and node D; the multicast information of node R may include the multicast routing identifier of node E, but may not include the addressing field of node E.

[0092] As mentioned above, a node's multicast routing identifier can be used by the node to determine the node's next hop node. In other words, a node's multicast routing identifier can be used to guide the node to perform multicast routing forwarding.

[0093] One possible scenario is that the first node receives the first multicast message from the controller or the previous hop node of the first node. In this case, the first multicast message may include the multicast information of the first node, and the multicast routing information of the second node may be included in the multicast information of the first node.

[0094] It should be understood that when the first node receives the first multicast message from the controller, the first node may be a source node, or in other words, the first node is a root node in the first multicast tree, for example Figure 3The multicast tree shown on the right side of the figure can be the first multicast tree, node B can be the first node, and node R can be the second node. When the first node receives the first multicast message from its previous hop node, the first node is not the root node of the first multicast tree, nor is it a leaf node in the first multicast tree. In other words, the first node may not be the source node in the forwarding path of the multicast message, nor is it the destination node in the forwarding path of the multicast message. For example, Figure 3 The multicast tree shown on the right side of the figure may be a sub-multicast tree of the first multicast tree. More specifically, Figure 3 The multicast tree shown on the right side of the figure may be a portion of the first multicast tree after the previous hop node of node B. In this case, node B may be the first node and node R may be the second node. Figure 3 The multicast tree shown on the right side of the figure may be a first multicast tree, in which case node B is the root node (or source node), node R may be the first node, and node S may be the second node.

[0095] For example, Figure 7 In the first multicast message shown, it is assumed that the second node can have M1 non-leaf child nodes, which are respectively recorded as node 20, node 21, node 22, ..., node 2 M1-1 , the first multicast message may include a message header and a payload, the message header of the first node may include the multicast information of the first node, the multicast information of the first node may include the multicast routing identifier of the first node and the multicast routing information of the second node, the multicast routing information of the second node may include the multicast routing identifier of the second node, and nodes 20, 21, 22, ..., and 2 M1-1 Furthermore, node 20, node 21, node 22, ..., node 2 M1-1 The multicast routing information of each node in the network also includes the multicast routing information of its own non-leaf child nodes. For example, assuming that there are M2 non-leaf child nodes of node 20, the multicast routing information of node 20 includes the multicast routing identifier of node 20, as well as the multicast routing information of the first non-leaf child node, the second non-leaf child node, ..., and the M2 non-leaf child node of node 20. Each non-leaf child node of node 20 further includes the multicast routing information of its own non-leaf child nodes, and so on. Node 21, node 22, ..., node 2 M1-1 Similarly, for the sake of brevity, they are not described here one by one.

[0096] Another possible situation is that the first node is based on the connection relationship of all nodes in the topological structure where the first node is located (for example Figure 3 In this case, the first multicast message does not include the multicast routing identifier of the first node.

[0097] For example, Figure 8 The first multicast message shown in FIG. 1 is similarly assumed to have M1 non-leaf child nodes of the second node, which are respectively denoted as node 20, node 21, node 22, ..., node 2. M1-1 , the first multicast message may include a message header and a payload, the message header of the first multicast message may include the multicast information of the second node, the multicast information of the second node may include the multicast routing information of the second node, the multicast routing information of the second node may include the multicast routing identifier of the second node, and node 20, node 21, node 22, ..., node 2 M1-1 Furthermore, node 20, node 21, node 22, ..., node 2 M1-1 The multicast routing information of each node in the node also includes the multicast routing information of its own non-leaf child nodes. Referring to the relevant description above, each non-leaf child node of node 20 further includes the multicast routing information of its own non-leaf child nodes, and so on. Node 21, node 22, ..., node 2 M1-1 Similarly, for the sake of brevity, they are not described here one by one.

[0098] In step 620, when the first node and the second node cannot communicate normally, the first node processes the first multicast message based on the target backup path to obtain a second multicast message.

[0099] The second multicast message may include indication information of the target backup path, and the second multicast message may include a multicast routing identifier of a child node of the second node in the first multicast tree. The target backup path may be pre-stored on the first node.

[0100] It should be understood that the failure of normal communication may include a failure of the second node, or a failure of a link between the first node and the second node.

[0101] like Figure 9 As shown in (a), assuming that node B is the first node and node R is the second node, the first node and the second node cannot communicate normally because a device failure occurs in node R. Node R cannot receive the first multicast message sent by node B, nor can it receive messages sent by nodes other than node B. Node R is also unable to send the first multicast message to its child node.

[0102] like Figure 9As shown in (b), assuming that node B is the first node and node R is the second node, the failure of the first and second nodes to communicate normally may be due to a failure in the link between node B and node R. In this case, node R cannot receive the first multicast message sent by node B, but node R can receive messages sent by other nodes except node B. It should be understood that the failure of the link between node B and node R may be due to a failure or disconnection of the network cable, optical fiber or optical cable connecting node B and node R, or a failure of the interface connecting node B and node R, such as Figure 9 As shown in (b), the interface B_p2 of the node B is connected to the interface R_p0 of the node R. A failure occurs in the link between the node B and the node R. It is possible that the interface B_p2 of the node B and / or the interface R_p0 of the node R fails.

[0103] It should also be understood that the first node can sense whether it can communicate normally with the second node through a bidirectional forwarding detection (BFD) mechanism, such as Figure 9 As shown, when node B is the first node and node R is the second node, node B can sense whether it can communicate normally with node R through the BFD mechanism. The first node can also sense whether it can communicate normally with the second node through other methods, which is not limited in this application.

[0104] like Figure 9 As shown, assuming that node B is the first node and node R is the second node, node B senses that it cannot communicate normally with node R, for example, Figure 9 A device failure occurs at node R shown in (a), or Figure 9 The link between node B and node R shown in (b) fails. Processing the first multicast message can be understood as processing the message header of the first multicast message, without processing the payload of the first multicast message. Processing the message header of the first multicast message can be modifying the information indicating the message forwarding path in the first multicast message header based on the target backup path to obtain a second multicast message. As mentioned above, the message header of the second multicast message can include information indicating the target backup path.

[0105] Optionally, the second multicast message may include the multicast routing identifier of the second node, and the multicast routing identifier of the child node of the second node may be included in the multicast routing information of the second node.

[0106] For example, Figure 9As shown in (b), the link between node B and node R fails. The first multicast message could have been forwarded directly from node B to node R. However, due to the failure of the link between node B and node R, the first multicast message cannot be forwarded directly from node B's interface B_p2 to node R's interface R_p0. Node B needs to bypass the failed link between node B's interface B_p2 and node R's interface R_p0 to forward the multicast message to node R. Node B can use a pre-stored target backup path for the case where communication between node B and node R fails, such as Figure 10 As shown, Figure 10 The right part of the can be considered as the second multicast tree, and the target backup path can be a part of the second multicast tree. The indication information of the target backup path can instruct node B to forward the multicast message to node Y (for example, node B can forward the multicast message to interface Y_p0 of node Y through interface B_p1 of node B). After receiving the multicast message, node Y can forward the multicast message to node R (for example, node Y can forward the multicast message to interface R_p1 of node R through interface Y_p2 of node Y). Node R then continues to forward the multicast message to nodes S and E according to the indication information of the original path. Node S then forwards the multicast message to nodes C and D, thereby completing the forwarding of the multicast message. Therefore, node B can process the message header of the first multicast message according to the target backup path to obtain a second multicast message. At this time, the second multicast message can include the multicast routing information of node R, and the multicast routing identifiers of node R's child nodes (for example, nodes S and node E) can be included in the multicast routing information of node R.

[0107] Assume that node Y is the third node, such as Figure 11 The second multicast message shown may include the multicast information of node Y, the multicast information of node Y may include the multicast routing information of node Y, the multicast routing information of node Y may include the multicast routing information of node R, the multicast routing information of node R may include the multicast routing identifier of node R and the multicast routing identifiers of node S and node E, wherein the multicast routing identifier of node S may be included in the multicast routing information of node S, and the multicast routing identifiers of the child nodes of node S (for example, node C and node D) may also be included in the multicast routing information of node S.

[0108] Optionally, the second multicast message does not include the multicast routing identifier of the second node.

[0109] For example, Figure 9As shown in (a), a device failure occurs at node R. The first multicast message could have been forwarded directly from node B to node R. However, due to the device failure at node R, node R cannot receive the first multicast message from node B, and cannot forward the multicast message to node R's child nodes (e.g., node S and node E). Node B needs to bypass node R and forward the multicast message to nodes S and E. Node B can use a pre-stored backup path for the target when communication between node B and node R fails, such as Figure 12 As shown, Figure 12 The right part of the can be considered as the second multicast tree, and the target backup path can be a part of the second multicast tree. For example, the indication information of the target backup path can instruct node B to forward the multicast message to node Y, and then node Y forwards the multicast message to node Z. Node Z can then forward the multicast message to node S. Node S can then forward the multicast message to node C and node D. Node D can then forward the multicast message to node E, thereby completing the forwarding of the multicast message. Therefore, node B can process the message header of the first multicast message according to the target backup path to obtain the second multicast message. At this time, the second multicast message may not include the multicast routing information of node R, but the second multicast message may include the multicast routing identifier of the child nodes of node R (for example, node S and node E).

[0110] In the above two examples, node Y may be the third node, which is the first hop node in the target backup path. Figure 9 It can be seen that node Y is not in the first multicast tree. It should be understood that if there are other nodes between node B and node Y, node Y may not be the third node.

[0111] It should be understood that the indication information of the target backup path may include the multicast routing information of the third node, and the routing multicast information of the third node may include the multicast routing identifier of the third node and the multicast routing information of the non-leaf child nodes of the third node in the second multicast tree. The second multicast tree can be used to indicate the forwarding path of the second multicast message.

[0112] Illustratively, node Y is the third node in the above two examples, so the corresponding second multicast message in the above examples may include the multicast routing information of node Y.

[0113] For example, when node R does not have a device failure, after receiving the first multicast message, node R can also process the message header of the first multicast message to obtain a new multicast message. The message headers of the multicast messages forwarded by node R to node E and forwarded to node S can be different, but the payload is the same. Therefore, after node R fails, node B can also process the message header of the first multicast message to obtain a different second multicast message containing a different message header, such as Figure 13The second multicast message shown is Figure 13 The second multicast message shown in (a) may indicate that the multicast message is forwarded from node S to node C and node D. Figure 13 The second multicast message shown in (b) may indicate that the multicast message is forwarded from node S to node D, and then node D forwards the multicast message to node E. Figure 13 The second multicast message shown in (a) may include multicast information of node Y, the multicast information of node Y may include multicast routing information of node Y, the multicast routing information of node Y may include multicast routing information of node Z, the multicast routing information of node Z may include a multicast routing identifier of node Z and a multicast routing identifier of node S, wherein the multicast routing identifier of node S may be included in the multicast routing information of node S, and the multicast routing identifiers of child nodes of node S (for example, node C and node D) may also be included in the multicast routing information of node S; Figure 13 The second multicast message shown in (b) may include the multicast information of node Y, the multicast information of node Y may include the multicast routing information of node Y, the multicast routing information of node Y may include the multicast routing information of node Z, the multicast routing information of node Z may include the multicast routing identifier of node Z and the multicast routing information of node S, the multicast routing information of node S may include the multicast routing identifier of node S and the multicast routing information of node D, and the multicast routing information of node D may include the multicast routing identifier of node D and the multicast routing identifier of node E.

[0114] It should also be understood that the format of the indication information of the target backup path may also be a corresponding format generated based on SR technology, IPv6 SR technology, or MPLS technology, and this application does not impose any limitation on this.

[0115] In step 630, the first node sends a second multicast message to the third node.

[0116] As mentioned above, the third node may be the first hop node in the target backup path, and the third node is not in the first multicast tree.

[0117] After the first node processes the first multicast message based on the target backup path and obtains the second multicast message, the first node has determined which node is the third node, so the first node can send the second multicast message to the third node.

[0118] In a possible implementation, the first node may generate a first forwarding table based on one or more backup paths.

[0119] In which, the first forwarding table may include indication information of each backup path in one or more backup paths and interface identifiers of the adjacent nodes of the first node and the adjacent nodes of the first node, the indication information of each backup path corresponds to the adjacent nodes of the first node and the interface identifiers of the adjacent nodes of the first node, and one or more backup paths may include a target backup path.

[0120] It should be understood that the backup path may be the first path received from the controller, or the backup path may be generated by the first node, and the backup path may be pre-stored in the first node. In the case where the first backup path is received from the controller, the first node, the second node, and the third node are all connected to the controller. The controller may generate one or more backup paths based on the connectivity of all nodes in the topology structure where the first node resides, and send them to the first node. The first node may also calculate one or more backup paths based on the connectivity of all nodes in the topology structure where the first node resides.

[0121] As shown in Table 1, the corresponding Figure 14 The first forwarding table of Node B in the Node B may be pre-stored on Node B.

[0122] Table 1: The first forwarding table of Node B

[0123]

[0124] Among them, "0", "1" and "2" in the item "Interface Index" can respectively indicate interface B_p0, interface B_p1 and interface B_p2 of node B, so the data item "Interface Index" can also be changed to "Interface Identification of this Node", etc., and the "0", "1" and "2" in the item "Interface Index" in the corresponding table can be changed to "B_p0", "B_p1" and "B_p2" respectively. This application does not impose any restrictions on this.

[0125] The data items "adjacent node" and "adjacent node interface identifier" in Table 1 are combined Figure 14 , it can be seen that the neighboring node of node B corresponding to interface index "0" is node Q, which has one interface, namely interface Q_p0. The neighboring node of node B corresponding to interface index "1" is node Y, which has two interfaces, namely interface Y_p0, interface Y_p1, and interface Y_p2. The neighboring node of node B corresponding to interface index "2" is node R, which has four interfaces, namely interface R_p0, interface R_p1, interface R_p2, and interface R_p3. When node B is the first node, node B's neighboring nodes include the second node.

[0126] It should be understood that Table 1 is only an example and should not impose any limitation on this application. Table 1 only gives the indication information of the backup path corresponding to the interface identifiers of the adjacent nodes of part B. For example, the indication information of the backup path of the interface R_p2 of node R is "YZ", and the indication information of the backup path of the interface R_p3 of node R is "YZSD". For example, the indication information of the backup path of interfaces Y_p1 and Y_p2 of node Y, and interface R_p1 of node R are given, which are omitted by "......". For another example, interface Q_p0 of node Q, interface Y_p0 of node Y and interface R_p0 of node R may have no backup path, so " / " is used in the table to indicate that there is no backup path. It should be noted that the indication information of the backup path is also only exemplary. In the specific implementation, the form of the indication information of the backup path can be stored in the form of an encapsulation structure based on the multicast tree, SR technology, IPv6 technology or MPLS technology, etc. This application does not impose any limitation on this.

[0127] For example, the backup path indication information may be in the form of a multicast tree encapsulation structure, combined with Figure 14 The topological structure in “YZ” can be represented by Figure 15 The form shown in (a) is stored in the first forwarding table, where "Y:001" can indicate that the multicast message can be forwarded through the interface Y_p2 of the node Y. Figure 14 As can be seen from the figure, the interface Y_p2 of node Y is connected to node Z. Therefore, "Y:001" can also indicate that node Y can forward multicast packets to node Z through the interface Y_p2 of node Y. Similarly, "Z:010" can indicate that multicast packets can be forwarded through the interface Z_p1 of node Z. Figure 14 As can be seen from the figure, the interface Z_p1 of node Z is connected to node S. Therefore, "Y:001" can also indicate that node Z can forward multicast packets to node S through the interface Z_p1 of node Z. "YZSD" can be represented by Figure 15 The form shown in (b) is stored in the first forwarding table, where "Y:001" and "Z:010" have the same meaning as described above and are not repeated here. "S:0001" can indicate that the multicast message can be forwarded through the interface S_p3 of the node S. Figure 14 As can be seen from the figure, the interface S_p3 of node S is connected to node D. Therefore, "S:0001" can also indicate that node S can forward multicast packets to node D through the interface S_p1 of node S. Similarly, "D:100" can indicate that multicast packets can be forwarded through the interface D_p0 of node D. Figure 14As can be seen from the figure, the interface D_p1 of node D is connected to node E. Therefore, "D:100" can also indicate that node D can forward the multicast message to node E through the interface D_p0 of node D.

[0128] It should also be understood that some of the numbers in "Y:001," "Z:010," "S:0001," and "D:100" correspond to bits of the node's interface. The number of numbers indicates the number of interfaces the node has. In the embodiments of this application, "0" indicates that forwarding is not performed through the interface corresponding to this bit, and "1" indicates that forwarding is performed through the interface corresponding to this bit. In actual applications, "0" may be set to indicate that forwarding is performed through the interface corresponding to this bit, and "1" may be set to indicate that forwarding is not performed through the interface corresponding to this bit. This application does not impose any restrictions on this.

[0129] Optionally, the first forwarding table may further include a backup next hop, where the backup next hop corresponds to an interface identifier of a neighboring node of the first node.

[0130] It should be understood that the backup next hop in the first forwarding table is the third node.

[0131] As shown in Table 2, the corresponding Figure 14 The descriptions of the data items "interface index", "adjacent node", "interface identifier of adjacent node" and "indication information of backup path" in Table 2 are the same as those in Table 1 and are not repeated here for brevity.

[0132] It should also be understood that the backup next hop corresponds to the indication information of the backup path. The backup next hop is the first node in the indication information of the backup path, that is, the backup next hop is the first node in the target backup path.

[0133] Table 2: Node B's first forwarding table

[0134]

[0135] Optionally, according to the first forwarding table, the first node processes the first multicast message based on the target backup path to obtain a second multicast message, which may also include: the first node can determine that the indication information of the backup path corresponding to the first interface of the second node in the first forwarding table is the indication information of the target backup path, the first interface of the second node can be the interface corresponding to the second node and the child node of the second node in the first multicast tree, and the first node can encapsulate the indication information of the target backup path into the second multicast message based on the first multicast message.

[0136] For example, assuming that node B is the first node and node R is the second node, in the original forwarding path, node B needs to forward the message to node R through interface B_p2, and node R needs to forward the message to node S through interface R_p2 and forward the message to node E through interface R_p3. When node B and node R cannot communicate normally, node B can determine the indication information of the backup path corresponding to interface R_p2 and interface R_p3 of node R as the indication information of the target backup path in the above-mentioned first forwarding table, and can encapsulate the indication information of the target backup path into the second multicast message based on the first multicast message.

[0137] Optionally, based on the first forwarding table shown in Table 2, the first node sends a second multicast message to the third node, which may also include: the first node can determine that the backup next hop corresponding to the first interface of the second node in the first forwarding table is the third node, the first interface of the second node can be the interface corresponding to the second node and the child node of the second node in the first multicast tree, and the first node can send the second multicast message to the third node.

[0138] For example, assuming that node B is the first node and node R is the second node, when node B and node R cannot communicate normally and receive the second multicast message, node B can set the backup next hop corresponding to interface R_p2 and interface R_p3 of node R to the third node in the first forwarding table shown in Table 2, that is, determine node Y as the third node and send the second multicast message to node Y.

[0139] It should be understood that, based on the above-mentioned first forwarding table, the second multicast message does not include the multicast routing identifier of the second node.

[0140] In another possible implementation, the first node may generate a second forwarding table based on one or more backup paths.

[0141] The second forwarding table may include indication information of each backup path in one or more backup paths and the interface identifier of the first node, the indication information of each backup path corresponds to the interface identifier of the first node, and the one or more backup paths include the target backup path.

[0142] It should be understood that, as mentioned above, the backup path can be the first path received from the controller, the backup path can also be generated by the first node, and the backup path can be pre-stored in the first node. For the sake of brevity, this will not be repeated here. For a detailed description, please refer to the relevant description above.

[0143] As shown in Table 3, the corresponding Figure 14 The second forwarding table of node B in the Node B may be pre-stored on node B.

[0144] Table 3 Second forwarding table of Node B

[0145] Interface Index Interface identifier of this node Instructions for backup paths 0 B_p0 / 1 B_p1 …… 2 B_p2 Y:010

[0146] In the second forwarding table shown in Table 3, the descriptions of the data items "interface index" and "indication information of the backup path" are the same as those in Table 1, and are not repeated here for the sake of brevity.

[0147] The "Interface ID of this Node" column corresponds to the "Interface Index" column, where "0," "1," and "2" correspond to interface B_p0, interface B_p1, and interface B_p2 of node B, respectively.

[0148] The backup path indication information "Y:010" corresponding to the interface B_p2 indicates that the multicast message can be forwarded through the interface Y_p1 of the node Y. Figure 14 As can be seen from the figure, the interface Y_p1 of node Y is connected to node R. Therefore, "Y:010" can also indicate that node Y can forward multicast packets to node R through the interface Y_p1 of node Y.

[0149] Optionally, the second forwarding table may further include a backup interface identifier, where the backup interface identifier corresponds to the interface of the first node.

[0150] As shown in Table 4, the corresponding Figure 14 The descriptions of the data items "interface index" and "indication information of backup path" in Table 4 are the same as those in Table 1 and are not repeated here for the sake of brevity.

[0151] It should also be understood that the backup interface corresponds to the indication information of the backup path. The backup interface can indicate which interface of the first node is used to forward the multicast message. That is to say, by determining the backup interface, it is also possible to determine which node the third node is.

[0152] Table 4: Second forwarding table of Node B

[0153] Interface Index Interface identifier of this node Instructions for backup paths Backup interface identifier 0 B_p0 / / 1 B_p1 …… …… 2 B_p2 Y:010 B_p1

[0154] It should be understood that Tables 3 and 4 are exemplary, and the data item "interface index" may not be included in Tables 3 and 4. Alternatively, when the data item "interface index" is not included in Tables 3 and 4, the corresponding B_p0, B_p1 and B_p2 in the "interface identifier of this node" may also be changed to "0", "1" and "2" respectively. This application does not impose any restrictions on this.

[0155] Optionally, according to the second forwarding table, the first node processes the first multicast message based on the target backup path to obtain a second multicast message, which may also include: the first node can determine that the indication information of the backup path corresponding to the first interface of the first node in the second forwarding table is the indication information of the target backup path, the first interface of the first node is the interface of the first node corresponding to the second node, and the first node encapsulates the indication information of the target backup path into the second multicast message based on the first multicast message.

[0156] For example, assuming that node B is the first node and node R is the second node, in the original forwarding path, node B needs to use interface B_p2 to forward the message to node R. When node B and node R cannot communicate normally, node B can determine the indication information of the backup path corresponding to node B's interface B_p2 as the indication information of the target backup path in the above-mentioned second forwarding table, and can encapsulate the indication information of the target backup path into the second multicast message based on the first multicast message.

[0157] Optionally, based on the second forwarding table shown in Table 4, the first node sends a second multicast message to the third node, which may also include: the first node can determine that the node corresponding to the backup interface corresponding to the first interface of the first node in the second forwarding table is the third node, the first interface of the first node is the interface among the interfaces of the first node that corresponds to the second node, and the first node can send the second multicast message to the third node through the backup interface corresponding to the first interface of the first node.

[0158] For example, assuming that node B is the first node and node R is the second node, when node B and node R cannot communicate normally and receive the second multicast message, node B can determine the node corresponding to the backup interface B_p1 corresponding to node B's interface B_p2 as the third node in the second forwarding table shown in Table 4, that is, determine node Y as the third node and send the second multicast message to node Y.

[0159] It should be understood that, based on the second forwarding table, the second multicast message includes the multicast routing information of the second node, and the multicast routing identifier of the child node of the second node is included in the multicast routing information of the second node.

[0160] Figure 16 A schematic diagram of a first multicast message before the first node and the second node cannot communicate normally is provided in an embodiment of the present application.

[0161] exist Figure 16 In the example, node B is the first node and node R is the second node. Before node B and node R cannot communicate normally, based on Figure 16 The first multicast message shown in Figure 14Node B can forward the multicast message to node R through interface B_p2 of node B. Node R can forward the multicast message to node S and node E through interface R_p2 and interface R_p3 of node R respectively based on the addressing field. Node S can forward the multicast message to node C and node D through interface S_p2 and interface S_p3 of node S respectively based on the addressing field.

[0162] Figure 17 A schematic diagram comparing a first multicast message and a second multicast message before and after the first node and the second node fail to communicate normally is provided in an embodiment of the present application.

[0163] exist Figure 17 In the example, node B is the first node and node R is the second node. Figure 17 (a) shows a schematic diagram of the second multicast message before node B and node R cannot communicate normally, based on Figure 17 For the second multicast message shown in (a), node R can forward the multicast message to node S and node E through interface R_p2 and interface R_p3 of node R respectively based on the addressing field, and node S can forward the multicast message to node C and node D through interface S_p2 and interface S_p3 of node S respectively based on the addressing field.

[0164] Figure 17 (b) shows a schematic diagram of two second multicast messages that can be generated by node B based on the first forwarding table (eg, Table 1 or Table 2) after node B and node R cannot communicate normally. Figure 17 For the first second multicast message shown in (b), node B can send the second multicast message to node Y, node Y can forward the multicast message to node Z through interface Y_p2 of node Y, node Z can forward the multicast message to node S through interface Z_p1 of node Z, and node S can forward the multicast message to node C and node D through interface S_p2 and interface S_p3 of node S respectively based on the addressing field; for Figure 17 For the second second multicast message shown in (b), node B can send the second multicast message to node Y, node Y can forward the multicast message to node Z through interface Y_p2 of node Y, node Z can forward the multicast message to node S through interface Z_p1 of node Z, node S can forward the multicast message to node D through interface S_p3 of node S, and node D can forward the multicast message to node E through interface D_p0 of node D.

[0165] Alternatively, after node B and node R fail to communicate normally, node B may also generate a second multicast message based on the first forwarding table (eg, Table 1 or Table 2), such as Figure 17As shown in (c). When the first node finds out based on the forwarding table that the multiple backup paths involved in the first multicast message have the same nodes or overlapping parts, the first node can also generate a second multicast message based on the overlapping parts of the two backup paths. For example, after node B and node R cannot communicate normally, node B finds out based on the first forwarding table of node B as shown in Table 1 or Table 2 that the backup paths "YZ" and "YZSD" involved in the first multicast message have an overlapping part "YZ", or have the same nodes, such as node Y and node Z. In other words, the multicast message must pass through node Y and node Z, so node B can generate a second multicast message, as shown in Figure 17 As shown in (c). Figure 17 The multicast message shown in (c) can also be seen as a message sent by Figure 17 (b) shows the two second multicast messages merged.

[0166] for Figure 17 For the second multicast message shown in (c), node B can send the second multicast message to node Y, node Y can forward the multicast message to node Z through interface Y_p1 of node Y, node Z can forward the multicast message to node S through interface Z_p1 of node Z, node S can forward the multicast message to node C and node D through interface S_p2 and interface S_p3 of node S respectively and based on the addressing field, and node D can forward the multicast message to node E through interface D_p0 of node D.

[0167] Alternatively, after node B and node R fail to communicate normally, node B may also generate a second multicast message based on the second forwarding table (eg, Table 3 or Table 4), such as Figure 17 As shown in (d). Figure 17 (d) shows another schematic diagram of a second multicast message that node B can generate based on a second forwarding table (e.g., Table 3 or Table 4) after node B and node R fail to communicate normally. Regarding 17 (d) showing the second multicast message, node B can send the second multicast message to node Y. Node Y can forward the multicast message to node R through interface Y_p1 of node Y. Node R can then forward the multicast message to node S and node E through interface R_p2 and interface R_p3 of node R, respectively, based on the addressing field. Node S can forward the multicast message to node C and node D through interface S_p2 and interface S_p3 of node S, respectively, based on the addressing field.

[0168] Based on the multicast message structure of the multicast tree, a backup path that can bypass the faulty node or faulty link is pre-stored on the nodes participating in the multicast message forwarding. When the first node senses that a device failure has occurred in the second node or a link failure has occurred between the first node and the second node, the target backup path can be searched in the pre-stored backup path, the target backup path can be encapsulated into the message, and the message can be sent based on the target backup path. In this way, when the first node and the second node cannot communicate normally, they can quickly switch to the target backup path, encapsulate the target backup path into the message, and continue to send the message based on the target backup path. This method does not waste bandwidth and can also provide a reliable protection mechanism for multicast.

[0169] like Figure 18 As shown, in Figure 18 In (a), the left side is the network topology diagram of the entity, and the right side is the multicast tree. Node Z includes entity A (or node A), entity B, entity C (or node C), entity D and entity E, and the connection relationship between entity A, entity B, entity C, entity D and entity E is a ring connection as shown in the figure. Node Z can also be called virtual node Z. The multicast routing identifier of the forwarding path of the multicast message between the entities in the virtual node Z can be expressed as "000100", where the first bit can indicate whether a node is a virtual node. For example, in "000100", the number "0" on the first bit can indicate that the node is a virtual node. If the number on the first bit is "1", it can indicate that the node is not a virtual node. It should be understood that in actual applications, the first bit can also use "1" to indicate a virtual node and "0" to indicate that it is not a virtual node. This application does not impose any restrictions on this. The last five bits in "000100" can correspond from left to right to whether entity A, entity B, entity C, entity D and entity E need to forward multicast messages to nodes other than the virtual node Z. It can be seen from "000100" that the bit corresponding to entity C is "1", so entity C needs to forward multicast messages to nodes other than the virtual node Z. Of course, in actual applications, "0" can also be used to indicate that multicast messages need to be forwarded to nodes other than the virtual node, and "1" can be used to indicate that multicast messages do not need to be forwarded to nodes other than the virtual node. This application does not impose any restrictions on this.

[0170] It should also be understood that a default path may be used for forwarding multicast messages between entities within a virtual node. For example, the default path for forwarding multicast messages between entities in virtual node Z, from entity A to entity C, may be: entity A forwards the multicast message to entity B, which then forwards the multicast message to entity C. Alternatively, the default path may be: entity A forwards the multicast message to entity E, which then forwards the multicast message to entity D, which then forwards the multicast message to entity C. This application does not impose any limitations on this.

[0171] Figure 18 (a) also includes node 3 (or entity 3), node F (or entity F) and node K (or entity K), node 3 is connected to node A, and node C is connected to node F and node K.

[0172] When the nodes or entities can communicate normally, the multicast message received by node A from node 3 can be as follows Figure 18 It should be understood that in Figure 18 In the multicast message shown in (b), a "0" in the first bit indicates that the node is a virtual node, and a "1" indicates that the node is not a virtual node. This multicast message shows that node A needs to forward the multicast message to virtual node Z, which then needs to forward the multicast message to nodes F and K via node C. Assume that the default path for forwarding multicast messages between entities in virtual node Z, from entity A to entity C, is: entity A forwards the multicast message to entity B, which then forwards the multicast message to entity C. When a device failure occurs in entity B, that is, when entity A cannot forward multicast packets outward through interface A_p1, entity C will not be able to receive the multicast packets. Therefore, when entity A and entity B cannot communicate normally (it may be that a device failure occurs in entity B or the link between entity A and entity B fails), entity A can forward the multicast packets outward through interface A_p2. In this way, the multicast packets can reach entity E through interface A_p2 of entity A. Entity E then forwards the multicast packets to entity D, and entity D then forwards the multicast packets to entity C, thus completing the forwarding of the multicast packets in virtual node Z. The multicast packets can also reach node C from node A through virtual node Z. Therefore, in this case, the multicast routing information of virtual node Z in the multicast packets sent by node A to virtual node Z does not need to be changed.

[0173] like Figure 19 As shown, in Figure 19 In (a), the left side shows the network topology of the entities, and the right side shows the multicast tree. Nodes X and Z are two virtual nodes. Virtual node X includes entity A, entity E, entity Q, and entity P. The connections among these entities form a ring connection as shown in the figure. Virtual node Z includes entity A, entity B, entity C, entity D, and entity E. The connections among these entities form a ring connection as shown in the figure. As can be seen from the figure, there are two parallel links between entity A and entity E: the link connecting entity A to entity E via interface A_p1, and the link connecting entity A to entity E via interface A_p2.

[0174] Assume that virtual node Z wants to send a multicast message to virtual node X. When the nodes or entities can communicate normally, the multicast message received by virtual node Z or generated by virtual node Z is as follows: Figure 19 As shown in (b), it is assumed that the bits of the multicast routing identifier of virtual node Z, except the first bit, correspond to entity A, entity B, entity C, entity D, and entity E in order, and the bits of the multicast routing identifier of virtual node X, except the first bit, correspond to entity A, entity E, entity Q, and entity P in order. From "Z:010000" in this multicast message, it can be seen that virtual node Z needs to send multicast messages to virtual node X through entity A. For example, the default path for virtual node Z to send multicast messages to virtual node X is: entity A sends multicast messages to entity E through interface A_p1 of entity A. When entity A and entity E cannot communicate normally (perhaps due to a link failure between entity A and entity B), entity A can send multicast messages to entity E through interface A_p2. Therefore, the multicast routing information of virtual node X in the multicast message sent by virtual node Z to virtual node Z does not need to be changed.

[0175] Figure 20 This is a schematic block diagram of a communication device provided in an embodiment of the present application. Figure 20 As shown, the communication device 2000 may include: a processing unit 2010 and a transceiver unit 2020. The device 2000 may correspond to the first node in the method 600, for example, the first node, or a component configured in the first node, such as a circuit, chip, or chip system.

[0176] The communication device 2000 can be used to implement the functions of each step executed by the first node in the method 600. When the communication device 2000 is used to execute the steps in the communication method 600, the transceiver unit 2020 can be used to obtain a first multicast message, the first multicast message includes the multicast routing information of the second node, the multicast routing information of the second node includes the multicast routing identifier of the second node and the multicast routing identifier of the child node of the second node in the first multicast tree, the second node is a non-leaf child node of the first node in the first multicast tree, and the first multicast tree is used to indicate the forwarding path of the first multicast message; the processing unit 2010 can be used to, when the first node and the second node cannot communicate normally, fail to Normal communication includes a second node failure or a link failure between the first node and the second node. The first multicast message is processed based on the target backup path to obtain a second multicast message. The second multicast message includes indication information of the target backup path, and the second multicast message includes the multicast routing identifier of the child node of the second node in the first multicast tree, wherein the multicast routing identifier of a node is used by the node to determine the next hop of the node; the transceiver unit 2020 can also be used to send a second multicast message to a third node. The third node is the first hop node in the target backup path, and the third node is not in the first multicast tree.

[0177] Optionally, the second multicast message includes the multicast routing identifier of the second node, and the multicast routing identifier of the child node of the second node is included in the multicast routing information of the second node.

[0178] Optionally, the second multicast message does not include the multicast routing identifier of the second node.

[0179] Optionally, the processing unit 2010 can also be used to generate a first forwarding table based on one or more backup paths, the first forwarding table including indication information of each backup path in the one or more backup paths and the interface identifiers of the adjacent nodes of the first node and the adjacent nodes of the first node, the indication information of each backup path corresponds to the adjacent nodes of the first node and the interface identifiers of the adjacent nodes of the first node, and the one or more backup paths include a target backup path.

[0180] Optionally, the first forwarding table further includes a backup next hop, where the backup next hop corresponds to an interface identifier of a neighboring node of the first node.

[0181] Optionally, the processing unit 2010 can also be used to determine that the indication information of the backup path corresponding to the first interface of the second node in the first forwarding table is the indication information of the target backup path, and the first interface of the second node is the interface corresponding to the second node and the child node of the second node in the first multicast tree; and based on the first multicast message, the indication information of the target backup path is encapsulated into the second multicast message.

[0182] Optionally, the processing unit 2010 can also be used to determine that the backup next hop corresponding to the first interface of the second node in the first forwarding table is a third node, and the first interface of the second node is the interface corresponding to the second node and the child node of the second node in the first multicast tree; the transceiver unit 2020 can also be used to send a second multicast message to the third node.

[0183] Optionally, the processing unit 2010 can also be used to generate a second forwarding table based on one or more backup paths, the second forwarding table including indication information of each backup path in the one or more backup paths and the interface identifier of the first node, the indication information of each backup path corresponds to the interface identifier of the first node, and the one or more backup paths include a target backup path.

[0184] Optionally, the second forwarding table further includes a backup interface identifier, and the backup interface identifier corresponds to the interface of the first node.

[0185] Optionally, the processing unit 2010 can also be used to determine that the indication information of the backup path corresponding to the first interface of the first node in the second forwarding table is the indication information of the target backup path, and the first interface of the first node is the interface among the interfaces of the first node corresponding to the second node; and based on the first multicast message, the indication information of the target backup path is encapsulated into the second multicast message.

[0186] Optionally, the processing unit 2010 can also be used to determine that the node corresponding to the backup interface corresponding to the first interface of the first node in the second forwarding table is a third node, and the first interface of the first node is the interface among the interfaces of the first node corresponding to the second node; the transceiver unit 2020 can also be used to send a second multicast message to the third node through the backup interface corresponding to the first interface of the first node.

[0187] Optionally, the one or more backup paths are received by the first node from a controller, and the first node, the second node, and the third node are all connected to the controller.

[0188] Optionally, the one or more backup paths are calculated by the first node based on connection relationships among all nodes in the topology structure where the first node is located.

[0189] Optionally, the first multicast message is received by the first node from a controller or a previous-hop node of the first node, and the multicast routing information of the second node is included in the multicast information of the first node.

[0190] Optionally, the first multicast message is generated by the first node based on the connection relationship of all nodes in the topology structure where the first node is located, and the first multicast message does not include the multicast routing identifier of the first node.

[0191] Optionally, the indication information of the target backup path includes the multicast routing information of the third node, the routing multicast information of the third node includes the multicast routing identifier of the third node and the multicast routing information of the non-leaf child nodes of the third node in the second multicast tree, and the second multicast tree is used to indicate the forwarding path of the second multicast message.

[0192] Figure 21 2 is a schematic block diagram of another communication device provided in an embodiment of the present application. The communication device 2100 can be used to implement the functions of the first node of the above method. The communication device 2100 can be a chip system. In the embodiment of the present application, the chip system can be composed of a chip, or can include a chip and other discrete devices.

[0193] like Figure 21 As shown, the communication device 2100 may include at least one processor 2110, which is used to implement the function of the first node in the method provided in the embodiment of the present application.

[0194] Exemplarily, when the communication device 2100 is used to implement the function of the first node in the communication method provided in an embodiment of the present application, the processor 2110 can be used to obtain a first multicast message, the first multicast message including multicast routing information of the second node, the multicast routing information of the second node including the multicast routing identifier of the second node and the multicast routing identifier of the child node of the second node in the first multicast tree, the second node is a non-leaf child node of the first node in the first multicast tree, the first multicast tree is used to indicate the forwarding path of the first multicast message, wherein the multicast routing identifier of a node is used by the node to determine the next hop of the node; when the first node and the second node cannot communicate normally, the inability to communicate normally includes a failure of the second node or a link failure between the first node and the second node, the first multicast message is processed based on the target backup path to obtain a second multicast message, the second multicast message including indication information of the target backup path, and the second multicast message including the multicast routing identifier of the child node of the second node in the first multicast tree; the second multicast message is sent to a third node, the third node is the first hop node in the target backup path, and the third node is not in the first multicast tree. For details, please refer to the detailed description in the method example and will not be repeated here.

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

[0196] The communication device 2100 may also include a communication interface 2130 for communicating with other devices via a transmission medium, so that the device in the communication device 2100 can communicate with other devices, for example, the other device may be a second node or a third node or a controller. The communication interface 2130 may be, for example, a transceiver, an interface, a bus, a circuit, or a device capable of implementing transceiver functions. The processor 2110 may use the communication interface 2130 to send and receive data and / or information, and to implement Figure 6 The method executed by the first node described in the corresponding embodiment.

[0197] The specific connection medium between the processor 2110, the memory 2120 and the communication interface 2130 is not limited in the embodiment of the present application. Figure 21 The processor 2110, the memory 2120 and the communication interface 2130 are connected via a bus 2140. The bus 2140 is connected to the processor 2110, the memory 2120 and the communication interface 2130. Figure 21 The connections between the other components are shown in bold lines, which are only for illustration and are not intended to be limiting. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, Figure 21 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.

[0198] The present application also provides a chip system, which includes at least one processor for implementing the above Figure 6 The functions involved in the method performed by the first node in the illustrated embodiment include, for example, receiving or processing the data and / or information involved in the above method.

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

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

[0201] The present application also provides a computer program product, the computer program product comprising: a computer program (also referred to as code, or instruction), when the computer program is executed, causes the first node to execute the following Figure 6 The method of the embodiment shown.

[0202] The present application also provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program (also referred to as code or instruction). When the computer program is executed, the first node executes the following Figure 6 The method of the embodiment shown.

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

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

[0205] The terms "unit," "module," and the like used in this specification may be used to refer to a computer-related entity, hardware, firmware, a combination of hardware and software, software, or software in execution.

[0206] Those skilled in the art will appreciate that the various illustrative logical blocks and steps described in conjunction with the embodiments disclosed herein can be implemented using electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application. In the several embodiments provided in this application, it should be understood that the disclosed devices, equipment, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not performed. In addition, the coupling or direct coupling or communication connection shown or discussed can be through some interface, indirect coupling or communication connection of devices or units, and can be electrical, mechanical, or other forms.

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

[0208] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0209] In the above embodiments, the functions of each functional unit can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, 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 (programs). When the computer program instructions (program) are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can 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 can be transmitted from one website, computer, server or data center to another website, computer, server or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a digital versatile disc (DVD)), or a semiconductor medium (eg, a solid state disk (SSD)).

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

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

Claims

1. A communication method, characterized in that: The method comprises: A first node obtains a first multicast message, where the first multicast message includes multicast routing information of a second node, where the multicast routing information of the second node includes a multicast routing identifier of the second node and a multicast routing identifier of a child node of the second node in a first multicast tree, where the second node is a non-leaf child node of the first node in the first multicast tree, and the first multicast tree is used to indicate a forwarding path for the first multicast message; wherein the multicast routing identifier of a node is used to determine a next hop of the node; In a case where the first node and the second node cannot communicate normally, the first node searches for a target backup path from pre-stored backup paths, and processes the first multicast message based on the target backup path to obtain a second multicast message, wherein the second multicast message is encapsulated with indication information of the target backup path, and the second multicast message includes a multicast routing identifier of a child node of the second node in the first multicast tree; the failure to communicate normally includes a failure of the second node or a failure of a link between the first node and the second node; wherein a backup path for bypassing a failed node or a failed link is pre-stored on the nodes participating in multicast message forwarding; The first node sends the second multicast message to a third node, where the third node is a first-hop node in the target backup path and is not in the first multicast tree.

2. The method according to claim 1, wherein The second multicast message includes the multicast routing identifier of the second node, and the multicast routing identifier of the child node of the second node is included in the multicast routing information of the second node.

3. The method according to claim 1, wherein The second multicast message does not include the multicast routing identifier of the second node.

4. The method according to any one of claims 1 to 3, characterized in that The method further comprises: The first node generates a first forwarding table based on one or more backup paths, and the first forwarding table includes indication information of each backup path in the one or more backup paths and interface identifiers of the adjacent nodes of the first node and the adjacent nodes of the first node. The indication information of each backup path corresponds to the adjacent nodes of the first node and the interface identifiers of the adjacent nodes of the first node, and the one or more backup paths include the target backup path.

5. The method according to claim 4, wherein The first forwarding table further includes a backup next hop, where the backup next hop corresponds to an interface identifier of a neighboring node of the first node.

6. The method according to claim 4 or 5, characterized in that The first node processes the first multicast message based on the target backup path to obtain a second multicast message, including: The first node determines, in the first forwarding table, indication information of a backup path corresponding to the first interface of the second node as indication information of a target backup path, where the first interface of the second node is an interface corresponding to the second node and a child node of the second node in the first multicast tree; The first node encapsulates the indication information of the target backup path into a second multicast message based on the first multicast message.

7. The method according to claim 5 or 6, wherein: The first node sending the second multicast message to the third node includes: The first node determines that the backup next hop corresponding to the first interface of the second node in the first forwarding table is the third node, and the first interface of the second node is the interface corresponding to the second node and the child node of the second node in the first multicast tree; The first node sends the second multicast message to the third node.

8. The method according to claim 2, wherein The method further comprises: The first node generates a second forwarding table based on one or more backup paths, and the second forwarding table includes indication information of each backup path in the one or more backup paths and the interface identifier of the first node, the indication information of each backup path corresponds to the interface identifier of the first node, and the one or more backup paths include the target backup path.

9. The method according to claim 8, wherein The second forwarding table further includes a backup interface identifier, and the backup interface identifier corresponds to the interface of the first node.

10. The method according to claim 8 or 9, characterized in that The first node processes the first multicast message based on the target backup path to obtain a second multicast message, including: The first node determines, in the second forwarding table, indication information of a backup path corresponding to the first interface of the first node as indication information of a target backup path, where the first interface of the first node is an interface corresponding to the second node among the interfaces of the first node; The first node encapsulates the indication information of the target backup path into a second multicast message based on the first multicast message.

11. The method according to claim 9 or 10, wherein: The first node sending the second multicast message to the third node includes: The first node determines that the node corresponding to the backup interface corresponding to the first interface of the first node in the second forwarding table is the third node, and the first interface of the first node is the interface corresponding to the second node among the interfaces of the first node; The first node sends the second multicast message to the third node through a backup interface corresponding to the first interface of the first node.

12. The method according to any one of claims 4 to 11, characterized in that The one or more backup paths are received by the first node from a controller, and the first node, the second node, and the third node are all connected to the controller.

13. The method according to any one of claims 4 to 11, characterized in that The one or more backup paths are calculated by the first node based on the connection relationship of all nodes in the topological structure where the first node is located.

14. The method according to any one of claims 1 to 13, characterized in that The first multicast message is received by the first node from a controller or a previous-hop node of the first node, and the multicast routing information of the second node is included in the multicast information of the first node.

15. The method according to any one of claims 1 to 13, characterized in that The first multicast message is generated by the first node based on the connection relationship of all nodes in the topology structure where the first node is located. The first multicast message does not include the multicast routing identifier of the first node.

16. The method according to any one of claims 1 to 15, characterized in that The indication information of the target backup path includes the multicast routing information of the third node, and the routing multicast information of the third node includes the multicast routing identifier of the third node and the multicast routing information of the non-leaf child nodes of the third node in the second multicast tree, and the second multicast tree is used to indicate the forwarding path of the second multicast message.

17. A communication device, characterized in that: The communication device comprises means for implementing the method according to any one of claims 1 to 16.

18. A communication device, characterized in that: The apparatus comprises at least one processor, wherein the at least one processor is configured to execute a program or an instruction so as to enable the apparatus to implement the method according to any one of claims 1 to 16.

19. A computer-readable storage medium, characterized in that The computer-readable storage medium stores instructions, and when the instructions are executed on a computer, the computer is caused to perform the method according to any one of claims 1 to 16.

20. A computer program product, characterized in that The method comprises a program code, which, when executed on a computer, causes the computer to implement the method according to any one of claims 1 to 16.

Citation Information

Patent Citations

  • Intermediate node protection method for multicast label switched path and device

    CN102315967A

  • Method of stateless group communication and repair of data packets transmission to nodes in a distribution tree

    US20050068954A1