WO2023025171A1 - 通信方法及装置 - Google Patents
通信方法及装置 Download PDFInfo
- Publication number
- WO2023025171A1 WO2023025171A1 PCT/CN2022/114357 CN2022114357W WO2023025171A1 WO 2023025171 A1 WO2023025171 A1 WO 2023025171A1 CN 2022114357 W CN2022114357 W CN 2022114357W WO 2023025171 A1 WO2023025171 A1 WO 2023025171A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- multicast
- message
- multicast routing
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Definitions
- the present application relates to the communication field, and in particular to a communication method and device.
- Multicast means that a sender sends a message carrying the same data to multiple specific receivers.
- the initial implementation is that the sending end copies the data in a message into multiple copies according to the number of receiving ends, and then encapsulates them and sends them to each receiving end. This method leads to repeated transmission of messages on some links, reducing the network Resource utilization increases the possibility of network congestion.
- PIM-SM protocol independent multicast-sparse mode
- MFIB multicast forwarding information base
- Embodiments of the present application provide a communication method and device, which are used to improve message scalability.
- a communication method includes: the first node receives the first message from the second node, and parses the first message.
- the first packet includes: multicast routing information of the second node, and the first node is a child node of the second node in the multicast tree.
- the multicast routing identifier of a node is used for the non-leaf child nodes of the node in the multicast tree to determine the multicast routing information of the non-leaf child nodes.
- the multicast routing information of a node includes: the multicast routing information of the node The routing identifier and the multicast routing information of the node's non-leaf child nodes in the multicast tree.
- the multicast routing information is embedded into the message, such as in the first message, the multicast routing information of the tree-shaped recursive structure included in the message can describe a certain multicast
- the message forwarding information of the tree or the subtree of the multicast tree has good scalability, and the forwarding path can be planned and specified conveniently as required.
- the tree recursive structure in the message sent by a node to each child node is the same, for example, the tree recursive structure of the multicast routing information of the second node, so that the node can only Send a message to avoid redundant messages and improve communication efficiency.
- each non-leaf child node does not need to be determined by an upstream node, such as the second node, but can be determined by the non-leaf child node itself, thereby saving processing resources of upstream nodes and improving operating efficiency.
- the first node is a non-leaf child node of the second node
- the third node is a child node of the first node
- the first node parses the first message, including: the first node according to the first message text to generate the second telegram.
- the second message includes: the multicast routing information of the first node, or the multicast routing information of the third node
- the multicast routing information of the first node includes any of the following items: the multicast routing identifier of the first node and The multicast routing information of the third node, the multicast routing identifier of the first node, or the multicast routing identifier of the first node and the multicast routing identifier of the third node.
- the method according to the first aspect may further include: the first node sends the second message to the third node.
- the first node can process the first packet more flexibly.
- the third node supports the determination of the multicast routing information of the third node by the third node
- the first node can perform a similar operation to the second node, that is, send the multicast routing information containing the first node to the third node
- the second message of the information is used to avoid redundant messages, save processing resources of the first node, and improve operating efficiency.
- the first node can further determine the multicast routing information of the third node on the basis of determining the multicast routing information of the first node. Routing information, sending a second message containing only the multicast routing information of the third node to the third node, so as to ensure that the third node can normally process the second message and ensure communication reliability.
- the first node generating the second message according to the first message may include: the first node determines the multicast routing information of the first node according to the multicast routing identifier of the second node; Packet encapsulation is performed on the multicast routing information to obtain a second packet.
- the first node generates the second message according to the first message, which may also include: the first node determines the multicast routing information of the first node according to the multicast routing identifier of the second node; The multicast routing identifier of the first node in the multicast routing information determines the multicast routing information of the third node; then performs packet encapsulation according to the multicast routing information of the third node to obtain the second packet.
- the first node determines the multicast routing information of the first node according to the multicast routing identifier of the second node, which may include: the first node determines that the first node is located at the first node according to the multicast routing identifier of the second node.
- the position in the set, the first node set is the node set corresponding to the second node, the first node set includes some or all potential child nodes of the second node; the first node is based on the position of the first node in the first node set, Determine multicast routing information of the first node.
- the multicast routing identifier of the second node includes: N first fields, N is the number of nodes in the first node set, and the first node determines that the first node is in the first node according to the multicast routing identifier of the second node.
- a position within a node set including: the first node determines the position of the first field corresponding to the first node among the N first fields, and the position of the first field corresponding to the first node is used to indicate that the first node is in the first The position within the node collection.
- the multicast routing information of the second node also includes the addressing field of the second node, and the first node determines the multicast routing information of the first node according to the multicast routing identifier of the second node, which may include: the first node The multicast routing information of the first node is determined according to the multicast routing identifier of the second node and the addressing field of the second node.
- the first node can also determine the multicast route of the first node only according to the position of the first node in the first node set information.
- the multicast routing information of the second node may not include the addressing field of the second node, so as to save communication overhead and improve communication efficiency.
- the first node can determine whether the multicast routing information of each non-leaf child node of the second node has the same length. multicast routing information, so that the length of the multicast routing information of each non-leaf child node can be flexibly set to apply to more scenarios.
- the addressing field of the second node is used to indicate the length of the multicast routing information of the subnodes of the second node, which can save the bit (bit) overhead of the addressing field and improve communication efficiency.
- the addressing field of the second node is used to indicate the start position or end position of the multicast routing information of the sub-nodes of the second node, so that the first node can quickly determine the multicast routing information of the first node and improve the multicast efficiency .
- the addressing field of the second node includes: multiple delimiting fields, and the multicast routing information of the subnodes of the second node is separated by multiple delimiting fields.
- the first node and the third node are nodes in the first network
- the second message further includes: a first header and a second header
- the first header includes: multicast routing information of the third node , or the multicast routing information of the first node
- the second header includes: unicast/multicast information of the second network.
- new multicast nodes that support multicast routing information forwarding
- nodes that only support unicast/multicast information forwarding hereinafter referred to as Ordinary nodes
- new multicast nodes can be deployed in ordinary nodes in small batches, thereby reducing the number of deployments of new multicast nodes and reducing deployment difficulty and cost.
- the first node has a correspondence relationship between the multicast routing identifier of the first node, or the multicast routing identifier of the third node, and the unicast/multicast information of the second network.
- the first node is a node in the second network, that is to say, the first node is not only a new multicast node supporting forwarding of multicast routing information, but also an ordinary node supporting forwarding of unicast/multicast information. Therefore, during deployment, by enabling new multicast on common nodes, common nodes can become new multicast nodes that support multicast routing information forwarding, so that new multicast nodes do not need to be separately deployed to further reduce deployment costs.
- the first node is a leaf child node of the second node
- the parsing of the first message by the first node may include: the first node generates a third message according to the first message, wherein, The third packet includes: unicast/multicast information of the first device.
- the method described in the first aspect may further include: the first node sends a third packet to the first device.
- the first message includes the multicast routing identifier of the first node, and the multicast routing identifier of the first node is used to indicate that the destination device is the first device, so that the first node only uses the multicast routing identifier of the first node , it can be determined that the third packet needs to be sent to the first device without unpacking the inner header of the first packet, thereby improving processing efficiency.
- the first node and the second node are nodes in the first network
- the first message further includes: a third header and a fourth header
- the third header includes:
- the fourth header includes: unicast/multicast information of the third network.
- the second node is a node in the third network, that is to say, the second node is not only a new multicast node supporting multicast routing information forwarding, but also a common node supporting unicast/multicast information forwarding. Therefore, during deployment, by enabling new multicast on common nodes, common nodes can become new multicast nodes that support multicast routing information forwarding, so that new multicast nodes do not need to be separately deployed to further reduce deployment costs.
- the unicast/multicast information may include any of the following: Internet Protocol IP unicast/multicast information, MPLS label information, or bit string information, so as to apply to more scenarios.
- a communication method includes: the second node obtains the first message, and sends the first message to the first node.
- the first node is a child node of the second node in the multicast tree
- the first message includes: the multicast routing information of the second node, and the multicast routing identifier of a node is used for the other nodes of the node in the multicast tree.
- a leaf child node determines the multicast routing information of the non-leaf child node.
- the multicast routing information of a node includes: the multicast routing identifier of the node and the multicast routing information of the non-leaf child nodes of the node in the multicast tree .
- the first node and the second node are nodes in the first network
- the first message may further include: a third header and a fourth header
- the third header includes: the second node multicast routing information
- the fourth header includes: unicast/multicast information of the third network.
- the second node is a node in the third network.
- the unicast/multicast information may include any of the following: Internet Protocol IP unicast/multicast information, multi-protocol label switching (MPLS) label information, or bit string information.
- MPLS multi-protocol label switching
- a communication method includes: the fourth node obtains the fourth message, and sends the fifth message to the fifth node according to the fourth message.
- the fourth node is a node in the fourth network
- the fourth message includes: a fifth header
- the fifth header includes: bit string information of the fifth network
- the fifth node is a node in the fourth network
- the fifth header includes: the bit string information of the fifth network
- the fifth message includes: a fifth header and a sixth header
- the sixth header includes: bit string information of the fifth node.
- the fifth message since the fifth message encapsulates the bit string information of the fifth node, the fifth message can be forwarded across the network before being sent to the fifth network, such as across the fourth network Forward to the fifth node, so that the forwarding is no longer restricted.
- the fourth node is configured with the first entry and the second entry.
- the first entry includes: the bit string information of the fifth network
- the second entry includes: the bit string information of the fifth node, so that the fourth node can accurately determine the bit string information of the fifth node by traversing the entries .
- the fourth node sends the fifth message to the fifth node according to the fourth message, including: the fourth node encapsulates the sixth header on the fourth message to obtain the fifth message , so as to send the fifth packet to the fifth node.
- a communication method includes: the fifth node receives the fifth message from the fourth node, and parses the fifth message.
- the fourth node and the fifth node are nodes in the fourth network
- the fourth message includes: the fifth header and the sixth header
- the fifth header includes: bit string information of the fifth network
- the sixth header Part includes: bit string information of the fifth node.
- the method described in the fourth aspect may further include: the fifth node strips off the sixth header in the fifth message to obtain the fourth message , sending the fourth message to the fifth network, so as to realize the cross-network forwarding of the message, so that the forwarding is no longer restricted.
- a first node in a fifth aspect, includes: a transceiver module and a processing module. Wherein, the transceiver module is used to receive the first message from the second node; the processing module is used to analyze the first message.
- the first message includes: the multicast routing information of the second node, the first node is a child node of the second node in the multicast tree, and the multicast routing identifier of a node is used for the non-nodes of the node in the multicast tree.
- a leaf child node determines the multicast routing information of the non-leaf child node.
- the multicast routing information of a node includes: the multicast routing identifier of the node and the multicast routing information of the non-leaf child nodes of the node in the multicast tree .
- the first node is a non-leaf child node of the second node, and the processing module is also used to generate the second message according to the first message; the transceiver module is also used to send the second message to the third node Two messages.
- the second message includes: the multicast routing information of the first node, or the multicast routing information of the third node, and the multicast routing information of the first node includes any of the following items: the multicast routing identifier of the first node and The multicast routing information of the third node, the multicast routing identifier of the first node, or the multicast routing identifier of the first node and the multicast routing identifier of the third node.
- the processing module is further configured to determine the multicast routing information of the first node according to the multicast routing identifier of the second node; perform packet encapsulation according to the multicast routing information of the second node to obtain the second packet.
- the processing module is also used for the first node to determine the multicast routing information of the first node according to the multicast routing identifier of the second node; according to the multicast routing identifier of the first node in the multicast routing information of the first node, Determine the multicast routing information of the third node; perform packet encapsulation according to the multicast routing information of the third node to obtain the second packet.
- the processing module is further configured to determine the position of the first node in the first node set according to the multicast routing identifier of the second node, and determine the position of the first node in the first node set according to the position of the first node in the first node set. Multicast routing information.
- the first node set is a node set corresponding to the second node, and the first node set includes some or all potential child nodes of the second node.
- the multicast routing identifier of the second node includes: N first fields, N is the number of nodes in the first node set, and the processing module is also used to determine the corresponding The position of the first field, the position of the first field corresponding to the first node is used to indicate the position of the first node in the first node set.
- the multicast routing information of the second node also includes an addressing field of the second node.
- the processing module is further configured to determine the multicast routing information of the first node according to the multicast routing identifier of the second node and the addressing field of the second node.
- the addressing field of the second node is used to indicate the length of the multicast routing information of the child nodes of the second node.
- the addressing field of the second node is used to indicate the start position or end position of the multicast routing information of the child nodes of the second node.
- the addressing field of the second node includes: multiple delimiting fields, and the multicast routing information of the subnodes of the second node is separated by multiple delimiting fields.
- the first node and the third node are nodes in the first network.
- the second message also includes: a first header and a second header, the first header includes: the multicast routing information of the third node, or the multicast routing information of the first node, and the second header includes: the second Network unicast/multicast information.
- the first node has a correspondence relationship between the multicast routing identifier of the first node, or the multicast routing identifier of the third node, and the unicast/multicast information of the second network.
- the first node is a node in the second network.
- the first node is a leaf child node of the second node
- the processing module is further configured to generate a third message according to the first message, wherein the third message includes: the first device The unicast/multicast information; the transceiver module is also used to send the third message to the first device.
- the first packet includes a multicast routing identifier of the first node, and the multicast routing identifier of the first node is used to indicate that the destination device is the first device.
- the first node and the second node are nodes in the first network
- the first message further includes: a third header and a fourth header
- the third header includes:
- the fourth header includes: unicast/multicast information of the third network.
- the second node is a node in the third network.
- the unicast/multicast information includes any one of the following: Internet Protocol IP unicast/multicast information, MPLS label information, or bit string information.
- the transceiver module may also include a sending module and a receiving module.
- the sending module is used to realize the sending function of the node described in the fifth aspect
- the receiving module is used to realize the receiving function of the node described in the fifth aspect.
- the node described in the fifth aspect may further include a storage module, where programs or instructions are stored in the storage module.
- the processing module executes the program or instruction, the method described in the above first aspect is executed by the node.
- the node mentioned in the fifth aspect may be a terminal or a network device, or it may be a chip (system) or other components or components in a terminal or a network device that can be configured, or it may be a device that includes a terminal or a network device , which is not limited in this application.
- the technical effect of the node described in the fifth aspect may refer to the technical effect of the method in the first aspect, which will not be repeated here.
- a second node in a sixth aspect, includes: a processing module and a transceiver module.
- the processing module is used to obtain the first message; the transceiver module is used to send the first message to the first node, and the first node is a child node of the second node in the multicast tree.
- the first message includes: the multicast routing information of the second node, the multicast routing identifier of a node is used for the non-leaf child node of the node in the multicast tree, and the multicast routing information of the non-leaf child node is determined , the multicast routing information of a node includes: the multicast routing identifier of the node and the multicast routing information of the non-leaf child nodes of the node in the multicast tree;
- the first node and the second node are nodes in the first network
- the first message further includes: a third header and a fourth header
- the third header includes:
- the fourth header includes: unicast/multicast information of the third network.
- the second node is a node in the third network.
- the unicast/multicast information includes any one of the following: Internet Protocol IP unicast/multicast information, MPLS label information, or bit string information.
- the transceiver module may also include a sending module and a receiving module.
- the sending module is used to realize the sending function of the node described in the sixth aspect
- the receiving module is used to realize the receiving function of the node described in the sixth aspect.
- the node described in the sixth aspect may further include a storage module, where programs or instructions are stored in the storage module.
- the processing module executes the program or instruction, the method of the second aspect above is executed by the node.
- the node mentioned in the sixth aspect may be a terminal or a network device, or a chip (system) or other components or components in a terminal or a network device that can be configured, or a device that includes a terminal or a network device , which is not limited in this application.
- a fourth node in a seventh aspect, includes: a processing module and a transceiver module.
- the transceiver module is used to obtain the fourth message; the processing module is used to control the transceiver module to send the fifth message to the fifth node according to the fourth message.
- the fourth node is a node in the fourth network, and the fourth message includes: a fifth header, and the fifth header includes: bit string information of the fifth network; the fifth node is a node in the fourth network, and the fifth header includes: the bit string information of the fifth network;
- the fifth message includes: a fifth header and a sixth header, and the sixth header includes: bit string information of the fifth node.
- the fourth node is configured with the first entry and the second entry.
- the first entry includes: bit string information of the fifth network
- the second entry includes: bit string information of the fifth node.
- the processing module is further configured to encapsulate the sixth header on the fourth message to obtain the fifth message, so as to control the transceiver module to send the fifth message to the fifth node.
- the transceiver module may also include a sending module and a receiving module.
- the sending module is used to realize the sending function of the node described in the seventh aspect
- the receiving module is used to realize the receiving function of the node described in the seventh aspect.
- the node described in the seventh aspect may further include a storage module, where programs or instructions are stored in the storage module.
- the processing module executes the program or instruction, the method described in the above third aspect is executed by the node.
- the node mentioned in the seventh aspect may be a terminal or a network device, or a chip (system) or other components or components in a terminal or a network device that can be configured, or a device that includes a terminal or a network device , which is not limited in this application.
- a fifth node in an eighth aspect, includes: a transceiver module and a processing module.
- the transceiver module is used to receive the fifth message from the fourth node; the processing module is used to analyze the fifth message.
- the fourth node and the fifth node are nodes in the fourth network, the fourth message includes: the fifth header and the sixth header, the fifth header includes: bit string information of the fifth network, the sixth header Part includes: bit string information of the fifth node.
- the processing module is further configured to, after parsing the fifth packet, strip the sixth header in the fifth packet to obtain the fourth packet, thereby controlling the sending and receiving module to send the fifth packet to the fifth network Send the fourth message.
- the transceiver module may also include a sending module and a receiving module.
- the sending module is used to realize the sending function of the node in the eighth aspect
- the receiving module is used to realize the receiving function of the node in the eighth aspect.
- the node in the eighth aspect may further include a storage module, where programs or instructions are stored in the storage module.
- the processing module executes the program or instruction, the method in the fourth aspect above is executed by the node.
- the node in the eighth aspect may be a terminal or a network device, or a chip (system) or other components or components in the terminal or network device that can be configured, or a device that includes a terminal or a network device. Applications are not limited to this.
- a communication device in a ninth aspect, includes: a processor. Wherein, the processor is configured to execute the method described in any one of the first aspect to the fourth aspect.
- the device described in the ninth aspect may further include a transceiver.
- the transceiver may be a transceiver circuit or an interface circuit.
- the transceiver can be used by the device to communicate with other devices.
- the device described in the ninth aspect may further include a memory.
- the memory can be integrated with the processor or set separately.
- the memory may be used to store computer programs and/or data involved in the method described in any one of the first aspect to the fourth aspect.
- the device described in the ninth aspect may be a terminal or network device, or a chip (system) or other components or components that may be provided in the terminal or network device, or a device including the terminal or network device.
- a communication device in a tenth aspect, includes: a processor and a memory.
- the memory is used to store computer instructions, and when the processor executes the instructions, the device executes the method described in any one of the first aspect to the fourth aspect.
- the device described in the tenth aspect may further include a transceiver.
- the transceiver may be a transceiver circuit or an interface circuit.
- the transceiver can be used by the device to communicate with other devices.
- the device described in the tenth aspect may be a terminal or network device, or a chip (system) or other components or components that may be set in the terminal or network device, or a device including the terminal or network device.
- a communication device in an eleventh aspect, includes: a logic circuit and an input and output interface. Among them, the input and output interface is used to receive the code instruction and transmit it to the logic circuit.
- the logic circuit is used to run code instructions to execute the method described in any one of the first aspect to the fourth aspect.
- the device described in the eleventh aspect may further include a transceiver.
- the transceiver may be a transceiver circuit.
- the transceiver can be used by the device to communicate with other devices.
- the device described in the eleventh aspect may further include a memory.
- the memory can be integrated with the processor or set separately.
- the memory may be used to store computer programs and/or data involved in the method described in any one of the first aspect to the fourth aspect.
- the device described in the eleventh aspect may be a terminal or network device, or a chip (system) or other components or components that may be set in the terminal or network device, or a device that includes the terminal or network device .
- a communication device in a twelfth aspect, includes: a processor and a transceiver. Wherein, the transceiver is used for information exchange between the communication device and other devices, and the processor executes program instructions to execute the method according to any one of the first aspect to the fourth aspect.
- the device described in the twelfth aspect may further include a memory.
- the memory can be integrated with the processor or set separately.
- the memory may be used to store computer programs and/or data involved in the method described in any one of the first aspect to the fourth aspect.
- the device described in the twelfth aspect may be a terminal or network device, or a chip (system) or other components or components that may be set in the terminal or network device, or a device that includes the terminal or network device .
- a communication system in a thirteenth aspect, includes one or more terminals or network devices, such as a first node, a second node, a third node, a fourth node, or a fifth node, etc., and the terminals or network devices are used to implement the first aspect to the fourth aspect The method described in any aspect.
- a fourteenth aspect provides a computer-readable storage medium, including: a computer program; when the computer program is run on a computer, the method described in any one of the first to fourth aspects is executed by the computer.
- a fifteenth aspect provides a computer program product, including a computer program.
- the computer program When the computer program is run on a computer, the method described in any one of the first aspect to the fourth aspect is executed by the computer.
- FIG. 1A is a structural schematic diagram 1 of a multicast tree
- Fig. 1B is a schematic structural diagram of nodes and entities
- Fig. 2 is a structural schematic diagram 2 of the multicast tree
- FIG. 3A is a schematic diagram of a forwarding process of a multicast packet
- FIG. 3B is a schematic structural diagram of nodes and sub-nodes
- Figure 4 is a schematic diagram of the architecture of the network
- Fig. 5 is a structural schematic diagram three of the multicast tree
- FIG. 6 is a schematic diagram of an IP multicast scenario
- FIG. 7 is a schematic diagram of a BIER multicast scenario
- FIG. 8 is a first schematic flow diagram of a communication method provided by an embodiment of the present application.
- FIG. 9 is a first structural diagram of multicast routing information provided in the embodiment of the present application.
- FIG. 10 is a second schematic structural diagram of multicast routing information in the communication method provided by the embodiment of the present application.
- FIG. 11 is a schematic structural diagram III of multicast routing information in the communication method provided by the embodiment of the present application.
- FIG. 12 is a fourth structural schematic diagram of multicast routing information in the communication method provided by the embodiment of the present application.
- FIG. 13 is a first schematic structural diagram of a multicast routing identifier in a communication method provided by an embodiment of the present application.
- FIG. 14 is a schematic diagram of the mapping relationship of the multicast routing identifier in the communication method provided by the embodiment of the present application.
- FIG. 15 is a second schematic structural diagram of the multicast routing identifier in the communication method provided by the embodiment of the present application.
- FIG. 16 is a fifth structural diagram of multicast routing information in the communication method provided by the embodiment of the present application.
- FIG. 17 is a sixth schematic structural diagram of multicast routing information in the communication method provided by the embodiment of the present application.
- FIG. 18 is a schematic structural diagram VII of multicast routing information in the communication method provided by the embodiment of the present application.
- FIG. 19 is a schematic structural diagram of a message in the communication method provided by the embodiment of the present application.
- FIG. 20 is a schematic diagram of the structure of the multicast tree in the communication method provided by the embodiment of the present application.
- FIG. 21 is a second schematic structural diagram of a message in the communication method provided by the embodiment of the present application.
- FIG. 22 is a schematic structural diagram of a message in the communication method provided by the embodiment of the present application III;
- FIG. 23 is a fourth structural schematic diagram of a message in the communication method provided by the embodiment of the present application.
- FIG. 24 is a second schematic flow diagram of the communication method provided by the embodiment of the present application.
- FIG. 25 is a sixth structural diagram of a message in the communication method provided by the embodiment of the present application.
- FIG. 26 is a third schematic flow diagram of the communication method provided by the embodiment of the present application.
- FIG. 27 is a schematic diagram of a scene of BIER multicast in the communication method provided by the embodiment of the present application.
- FIG. 28 is a schematic structural diagram VII of a message in the communication method provided by the embodiment of the present application.
- FIG. 29 is a first structural schematic diagram of a communication device provided by an embodiment of the present application.
- FIG. 30 is a second structural schematic diagram of a communication device provided by an embodiment of the present application.
- Multicast is a point-to-multipoint transmission technology.
- a sender such as a server
- the multicast message After the multicast message is sent by the sender, it can pass through multiple multicast nodes (hereinafter referred to as nodes) to reach multiple receivers.
- Nodes are capable of forwarding multicast packets, such as directly forwarding multicast packets, or encapsulating multicast packets before forwarding them.
- a node can consist of one entity or multiple entities. An entity can belong to only one node, or it can belong to multiple nodes.
- the network topology diagram of the entity is on the left, and the multicast tree is on the right.
- node Z includes multiple entities, such as entity A, entity B, entity C, entity D, and entity E
- node E includes one entity, such as entity E. It can be seen that entity E belongs to both node Z and node E.
- node X includes multiple entities, such as entity A and entity B. It can be seen that entity A and entity B belong to both node Z and node X.
- the address of the entity can also be described as the address of the node
- 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.
- a node that only includes entity A is called node A.
- the address of node A is equivalent to the address of entity A
- a node that only includes entity B is called node B.
- the address of node B is equivalent to the address of node entity B the address of.
- Entities can be physical entities or virtual entities.
- Physical entities can be, for example, routers, switches, servers, hosts, network cards, line cards, chips, bare chips (DIEs) of chips, terminals (such as mobile terminals), internal modules of devices, etc.
- virtual entities can be, for example, virtual machines and containers. , process, thread, etc.
- the node may also be called a multicast device. For ease of understanding, the following uses nodes as an example for introduction.
- the multicast tree is based on a specific network topology, through routing protocols, such as protocol independent multicast (PIM), interior gateway protocol (interior gateway protocol, IGP), etc., or other methods, such as manual configuration, controller calculation etc., for a specific combination of source and destination nodes, the paths from the source node to all destination nodes are generated.
- the path is a tree structure with the source node as the root node and the destination node as the leaf node, which is called a multicast tree.
- the multicast tree may also be called a multicast distribution tree (multicast distribution tree, MDT), and all nodes in the multicast tree support the same type of multicast.
- MDT multicast distribution tree
- Figure 2 is a schematic diagram of a multicast tree
- (a) in Figure 2 is the network topology diagram on the left, if the source node is node B, the destination node is node C, node D and node E, the source node and the destination node
- An example of a multicast tree generated by combining nodes can be shown in (b) in FIG. 2 .
- the above-mentioned sending end and/or receiving end may be a node in the multicast tree, or may not be a node in the multicast tree. If it is the former, the source node can be the sending end, and the destination node can be the receiving end. If the receiving end is not a node in the multicast tree, after the data reaches the leaf node, the leaf node continues to send the data to the receiving end connected to it.
- both the sending end (the second node below) and the receiving end are the nodes in the multicast tree.
- the node is an exemplary description of the method provided in the embodiment of this application.
- a child node of a node refers to a node in the multicast tree where messages of the node can be multicast through one hop, such as a node that can be reached after one multicast forwarding.
- the one-hop multicast refers to searching the multicast forwarding table once.
- node R in (b) in FIG. 2 is a child node of node B
- node S is a child node of node R
- node E is a child node of node R.
- FIG. 3A is a schematic diagram of the forwarding process of routers.
- router A and router C are routers supporting multicast and are nodes in the multicast tree, and router B is a router that does not support multicast. If router A sends a multicast packet to router C, router C is a child node of router A, and router B is not a child node of router A.
- the child node when a child node of a node is a leaf node of the multicast tree, the child node can be called a leaf child node of the node, and when a child node of a node is not a leaf node of the multicast tree, the child node can be called a leaf node of the node. is a non-leaf child node of this node.
- the child nodes of a node mentioned in the following application refer to the child nodes of the node in the multicast tree.
- Subnodes may also have other names, for example, multicast subnodes, etc., which are not limited in this application.
- modules other than the network card in a device can be considered as a node (assumed to be node a), the network card in the server can be considered as another node (assumed to be node b), then node b can be considered as the node of node a child nodes.
- a module other than a line card in a router can be considered as a node (assumed to be node c), and a line card in a router can be considered as another node (assumed to be node d), then node d can be considered as a node of node c child nodes. Exemplarily, as shown in FIG.
- A is a router
- node A0 is a module other than a line card in the router
- node A1 , node A2 and node A3 are three line cards in the router.
- the router can send multicast packets to node B, node C, node D, node E, node F and node G respectively through the interfaces on the three line cards.
- node A1, node A2, and node A3 may be child nodes of node A0.
- A can also be a server.
- node A1, node A2, and node A3 are three network cards in the server.
- A can send data to node B, node C, node D, node E, and Node F and node G send multicast packets.
- a potential child node of a node refers to a node whose packets of the node can be reached through one-hop multicast.
- node R and node A in FIG. 2 are potential child nodes of node B
- node F, node R, node C, and node D are all potential child nodes of node S.
- the potential child nodes of a node include the child nodes of the node in the multicast tree.
- the potential child node is also a child node of the node in the multicast tree.
- Potential subnodes may also have other names, for example, multicast object, preparatory subnode, etc., which are not limited in this application.
- the network can be divided into different areas, that is, different network areas (referred to as domains), or different network layers, to bear different services.
- a network can be formed by all the nodes of a multicast tree, and the network can also be considered as a virtual node formed by all the nodes.
- FIG. 4 is a schematic structural diagram of the multicast tree.
- the multicast The tree includes: node 1 to node 9, node 1 is a source node, node 6, node 7 and node 9 are destination nodes, and nodes 1 to 9 can form a network, such as network D.
- a network can include multiple subnetworks, or multiple subnetwork areas. Subnetworks can be divided through routing protocols, such as PIM, IGP, etc., or other methods, such as manual configuration, controller calculation, etc. Each subnetwork can include group Sow some nodes in the tree.
- Non-edge nodes can be used for packet forwarding within subnetworks
- edge nodes can be used for packet forwarding between subnetworks, such as receiving packets from the previous subnetwork, or sending packets to the next subnetwork, in other words , the edge node of a subnetwork can be used as the entry node or exit node of the subnetwork.
- the same edge node can be shared between two adjacent sub-networks, or their respective edge nodes can be shared exclusively.
- network A includes: subnetwork A1 , subnetwork A2 and subnetwork A3 .
- subnetwork A1 includes: node 1 , node 2 , node 3 , node 4 , and node 5 .
- node 2 is a non-edge node, and all other nodes are edge nodes, that is, node 1, node 3, node 4, and node 5 are edge nodes.
- node 1 is an edge node exclusively owned by subnetwork A1, and is the entry node of subnetwork A1
- node 3 and node 5 are also edge nodes exclusively owned by subnetwork A1, and is the exit node of subnetwork A1
- node 4 It is an edge node shared by sub-network A1 and sub-network A3, that is, node 4 is both the exit node of sub-network A1 and the entry node of sub-network A3.
- the node can belong to multiple networks. For example, as shown in (a) in Fig.
- the network topology includes: node 1 to node 11, wherein, node 1, node 5, node 6, node 7, node 8 and node 9 support a kind of multicast, such as Internet Protocol (internet protocol, IP) multicast; node 1, node 2, node 3, node 4, node 6, node 10, and node 11 support another type of multicast, such as multi-protocol label switching (multi-protocol label switching, MPLS ) point-to-multiple point (P2MP) tunnel.
- IP Internet Protocol
- MPLS multi-protocol label switching
- P2MP point-to-multiple point
- node 1, node 2, node 3, node 4, node 6, node 10 and node 11 can form another multicast tree, such as multicast tree T2, and multicast tree T2 Belongs to another network, such as network C.
- network B and network C are two networks, that is, network B and network C.
- the packets are classified according to the processing behavior of the nodes. At this time, whether a packet is a unicast packet or a multicast packet is relative, specifically:
- the node For a node, if the node does not need to perform multicast forwarding according to the multicast routing information in the message, or does not need to look up the multicast forwarding table for forwarding according to the multicast routing information, but only needs to forward according to the unicast Encapsulation for unicast forwarding, or looking up the unicast forwarding table for forwarding according to unicast encapsulation, or consuming the message, that is, processing the message by itself without forwarding, then the message is a unicast message for the node. Conversely, if the node needs to multicast forward according to the multicast routing information in the message, or needs to search the multicast forwarding table for forwarding according to the multicast routing information, then the message is a multicast message for the node.
- Node A and Node B have a topological connection
- Node B and Node C have a topological connection. If node B multicasts the message from node A to node C, and node C consumes the message after receiving the message, then the message is a unicast message for B and a unicast message for node B. The multicast message is a unicast message for node C.
- node A and node B have a topology connection, if node A unicasts a packet to node B, then the packet is a unicast packet for node B.
- Packets are classified according to their structure. Specifically, a packet whose outermost header is a unicast header is a unicast packet, and a packet whose outermost header is a multicast header is a multicast packet. .
- the IP header whose destination IP address is a unicast address, or the MAC header whose destination media access control (MAC) address is a unicast address are all unicast headers.
- the destination IP address is the IP header of the multicast address, the destination mac address is the mac header of the multicast address, or the destination address is a multi-protocol label switching (MPLS) point-to-multipoint master station (point- to-multiple point, P2MP) MPLS head of the tunnel label is a multicast head.
- MPLS multi-protocol label switching
- P2MP point-to-multipoint master station
- MPLS head of the tunnel label is a multicast head.
- the multicast routing information referred to later in this application is also a kind of multicast
- the present application adopts the second definition to describe the method provided in the embodiment of the present application.
- the first definition is used to describe the method provided in the embodiment of this application.
- the second definition it can be determined whether the message is a unicast message or a multicast message according to the specific structure of the message. For example, in the following, the second node sends the first message to the first node, if the first The outermost header of a packet is a unicast header, and when the second definition is used for description, the first packet can be understood as a unicast packet.
- the unicast encapsulation in the message in this application may be the fourth version of IP (abbreviated as IPv4) unicast encapsulation, the sixth version of IP (abbreviated as IPv6) unicast encapsulation or any other possible encapsulation form.
- IPv4 fourth version of IP
- IPv6 sixth version of IP
- any possible form of unicast encapsulation can be performed on the message containing multicast routing information, or no unicast encapsulation can be performed.
- the unicast encapsulation of the message enables the message to pass through two A network between nodes (or rather a transfer between 2 nodes).
- the multicast routing information mentioned in the explanation of unicast packets and multicast packets refers to the multicast routing information defined below in this application.
- the multicast packet when the multicast packet is an IP packet, that is, the multicast packet includes an IP header, and the destination IP address in the IP header is a unicast IP address,
- the IP header of the multicast message is the unicast encapsulation of the multicast message.
- the destination address refers to the destination IP address.
- a node receives a multicast message and the multicast message is an IP message
- the node first judges whether the destination address in the IP header of the multicast message is its own address . If yes, analyze the multicast information after the IP header of the multicast message, and forward the multicast message according to the multicast information.
- the node can determine the multicast routing information and data that need to be sent to other nodes, and then determine the address of the next hop (that is, the address of other nodes ).
- the node can fill the address of other nodes into the destination address field in the IP header, and encapsulate the multicast routing information and data in the IP header to generate a multicast message, thereby sending the multicast message to other nodes message.
- this application does not expand and describe this process in each step, but it is described here in a unified manner, and will not be described in detail below.
- the forwarding of the multicast message can be implemented in various ways, for example, it can be realized through PIM-SM (Scheme 1), explicit bit index replication (bit index explicit replication, BIER) (Scheme 2), which are introduced respectively below.
- PIM-SM is a multicast routing protocol. PIM-SM is used to establish an MFIB table hop by hop from the receiving end to the multicast source (sending end or rendezvous point (RP)), and finally constructs a
- the source is the root node
- the receiver is the tree structure of the leaf nodes, that is, the multicast tree.
- the multicast message starts from the root node in the multicast tree and moves toward the leaf nodes, and is copied on each router (also called a multicast router) until it reaches the receiving end. All receivers can form a multicast group, and one receiver is a member of the multicast group.
- the multicast tree with the RP as the root node and the members in the multicast group as the leaf nodes is called a rendezvous point tree (RP tree, RPT), and the multicast tree with the sender as the root node and the members in the multicast group as the leaf nodes
- the multicast tree is called the shortest path tree (shortest path tree, SPT).
- the forwarding process of RPT and SPT is basically the same. Taking SPT as an example, after the SPT construction is completed, each router will store a MFIB table, which stores a group address (group address) and port list (port list), when the router receives the destination address for the group When a multicast packet is sent to the specified address, the multicast packet is sent through the ports in the port list.
- receiving end 1 may send an IGMP message to DR1.
- DR may represent a designated router, that is, a router that sends multicast packets to members in the multicast group.
- the IGMP message may include: the address of the multicast group, such as 224.10.10.10, the source address of receiver 1, such as 1.1.1.1, and the same destination address corresponding to all routers in the multicast tree, such as 224.0.0.2.
- DR1 After receiving the IGMP message from receiving end 1, DR1 can generate a join (join) message according to the IGMP message, and send the join message to R1.
- the join message may include: the upstream neighbor of DR1, or the last hop device of DR1, such as the address of R1, the address of the multicast group, and the source address of receiving end 1.
- the address of the upstream neighbor of DR1 may be recorded in the pre-configured MRIB table of DR1, and R may represent a common router.
- DR1 can also look up the MFIB table of DR1 according to the IGMP message.
- DR1 can create an MFIB table, wherein the group address in the MFIB table of DR1 can be the address of the above-mentioned multicast group, such as 224.10.10.10, and the outbound port list includes the inbound port for DR1 to receive the join message, such as the port 1. If there is a hit in the search, DR1 can maintain the MFIB table, that is, check whether the outbound port list in the MFIB table of DR1 includes the above inbound port. If the above ingress port is not included, DR1 may add the above ingress port in the port list.
- R1 After R1 receives the join message from DR1, it can modify the address of the upstream neighbor of DR1 in the join message, such as the address of R1 itself, to the address of the upstream neighbor of R1, such as the address of the multicast source, so as to send to the multicast source Join the message.
- the address of the upstream neighbor of R1 can be recorded in the MRIB table pre-configured by R1.
- R1 can also look up the MFIB table of R1 according to the join message.
- R1 can establish an MFIB table, wherein, in the MFIB table of R1, the group address can be the address of the above-mentioned multicast group, such as 224.10.10.10, and the outbound port list includes the inbound port of R1 receiving the join message, such as port 1. If the search hits, R1 can maintain the MFIB table, that is, check whether the outbound port list in the MFIB table of R1 includes the above inbound port. If the above ingress port is not included, R1 may add the above ingress port in the port list.
- the multicast source After receiving the join message from R1, the multicast source can search the MFIB table of R1 according to the join message. If the search fails, the multicast source can establish an MFIB table, wherein, in the MFIB table of the multicast source, the group address can be the address of the above-mentioned multicast group, such as 224.10.10.10, and the outbound port list includes the multicast source receiving join message The incoming port, such as port 1. If the search is successful, the multicast source can maintain the MFIB table, that is, check whether the outbound port list in the MFIB table of the multicast source includes the above inbound port. If the above ingress port is not included, the multicast source may add the above ingress port in the port list. In this way, the establishment of the multicast path from the receiving end 1 to the multicast source is completed.
- the process of joining the multicast group is similar to that of the receiving end 1, and will not be repeated here.
- the MFIB table maintained by each router in the multicast group may be shown in FIG. 7 .
- the multicast source wants to send a multicast packet, and the destination address of the multicast packet is 224.10.10.10, the multicast source can search the MFIB table of the multicast source to determine the origin of the multicast packet
- the ports include port 1 and port 2, so that a multicast message is sent to each of these two ports.
- R1 After receiving the multicast packet from the multicast source, R1 can search the MFIB table of R1 to determine that the outgoing port of the multicast packet includes port 1, and then forward the multicast packet to port 1.
- R2 After receiving the multicast packet from the multicast source, R2 can search the MFIB table of R2 to determine that the outgoing ports of the multicast packet include port 1 and port 2. Then, R2 can copy a multicast packet, so as to send a multicast packet to each of the two ports. In this way, the receiving end 1, the receiving end 2 and the receiving end 3 can all receive the same multicast message.
- PIM-SM is based on the construction and maintenance of the MFIB table. That is to say, PIM-SM needs to maintain the MFIB table in the network for each multicast flow. However, the number of entries in the MFIB table maintained on each router is limited. If there are too many multicast trees or multicast flows, the router cannot increase the MFIB table accordingly, resulting in poor scalability of the multicast tree. .
- the PIM-SM multicast tree is constructed by establishing the MFIB table hop by hop from the receiving end to the multicast source. Therefore, the multicast tree is completely fixed and cannot actively control the forwarding path based on planning. Moreover, only the previous hop node of a leaf node knows whether to join or leave the multicast tree, but not the multicast source. That is to say, the multicast source cannot perceive the existence of users, and the manageability is poor.
- BIER is a stateless multicast routing protocol.
- a router that supports BIER is called BFR (Bit-forwarding router)
- BFIR Bit-forwarding ingress router
- BFER bit-forwarding egress router
- BFRID unique identifier
- Figure 7 is a schematic diagram of the set division of BFER in BIER, as shown in Figure 7, if all BFERs are divided into several sets (sets), each set has a set identifier (set identifier, SI), a typical value range 0 ⁇ 255. There are at most 256 BFERs in each set, and each set occupies SI*256+1 ⁇ (SI+1)*256 BFRIDs, and "*" means "multiplied by".
- bitstring is a bitmap (bitmap) with a length of 256 bits (bit), and each bit corresponds to a BFER. For example, when the value of the bit corresponding to a BFER is 1, it indicates that the BFER needs to be multicasted.
- a multicast message can only carry one SI and one bitstring, so it can only be multicast to a certain set. Exemplarily, referring to FIG.
- each BFER maintains a bit index forwarding table (BIFT), which is a multicast routing table defined by BIER.
- BIFT bit index forwarding table
- a multicast message can only carry one SI and one bit string, it can only be multicast to a certain set, which means that if there are 50 set, and it is necessary to send multicast packets to BFERs in 50 sets, then 50 copies of multicast packets need to be sent. Too many copies of packets will lead to poor multicast efficiency.
- BIFT in BIER is fixed, that is, each node has a fixed next hop, so it is still impossible to plan or specify path routing.
- the present application provides a communication method, which is suitable for communication between at least two nodes, such as the communication between the first node and the second node, see Figure 8,
- the method includes:
- the second node acquires the first packet.
- the second node can be any node with child nodes in the multicast tree, specifically, it can be a source node in the multicast tree, or it can also be a source node or a non-leaf child node of a certain node. limited. If the second node is a source node, obtaining the first message by the second node may be that the second node generates the first message; if the second node is a non-leaf child node of a certain node, then the second node obtains the first message The message may be the first message received from the node.
- the present application takes the second node as the source node as an example for introduction.
- the first packet is a multicast packet corresponding to the multicast tree, that is, the first packet includes multicast routing information of the multicast tree or a node in a certain subtree of the multicast tree.
- the multicast routing information of a node includes: the multicast routing identifier of the node and the multicast routing information of the node's non-leaf child nodes in the multicast tree.
- the multicast routing information of non-leaf child nodes in the multicast routing information of a node can be a multicast routing information list, and the list can be arranged in sequence, chain or other possible ways, which are not limited in this application. It can be understood that if a node has no non-leaf child nodes, the multicast routing information of the node does not include the multicast routing information of the non-leaf child nodes, but only includes the multicast routing identifier of the node, or may not include The multicast routing identifier of the node, which is not limited.
- the first message includes the multicast routing information of the second node, and the multicast routing information of the second node includes: the multicast routing identifier of the second node, and the Multicast routing information, the multicast routing information of the non-leaf child node includes: its own multicast routing identifier, and the multicast routing information of its own non-leaf child nodes, and so on.
- the multicast routing information in the first message has a tree recursive structure
- the multicast routing information of a non-leaf child node of the second node in the first message can be considered as a recursive unit in the recursive structure .
- the multicast routing information of a non-leaf child node of a node is recorded as a recursive unit, assuming that the number of non-leaf child nodes of a node is M, the node's
- the multicast routing information of m+1 non-leaf child nodes is recorded as the recursive unit m of the node, and m is an integer greater than or equal to 0 and less than M.
- the multicast routing information of each non-leaf child node of the second node includes multiple recursive units (each recursive unit is the multicast routing information of a non-leaf child node of the non-leaf child node), and so on . Therefore, the multicast routing information included in the first packet can describe packet forwarding information of a certain multicast tree or a subtree of the multicast tree.
- the first message includes The multicast routing information of the second node, the multicast information of the second node includes the multicast routing identifier of the second node, and the multicast of node 2 0 , node 2 1 , node 2 2 , ..., node 2 M1-1 routing information.
- the multicast routing information of each node in node 2 0 , node 2 1 , node 2 2 , ..., node 2 M1-1 includes the multicast routing information of their respective non-leaf child nodes.
- the multicast routing information of node 2 0 includes the multicast routing identifier of node 2 0 , the first non-leaf child node of node 2 0 , the second non-leaf child nodes, ..., the multicast routing information of the M2th non-leaf child nodes.
- Each non-leaf child node of node 20 further includes the multicast routing information of its own non-leaf child node, and so on.
- Node 2 1 , node 2 2 , . . . , node 2 M1-1 are similar.
- the multicast routing information of node D can include the multicast routing information of node A and the multicast routing information of Node B, optionally, may also include the multicast routing identifier of Node C (the leaf child node of Node D).
- the multicast routing information of node A may include the multicast routing identifier of node A, optionally, may also include the multicast routing identifier of node E (leaf child node of node A), and node F (leaf child node of node A) ) multicast routing identifier.
- the multicast routing information of Node B may include the multicast routing identifier of Node B, and optionally, may also include the multicast routing identifier of Node H (the leaf child node of Node B).
- the multicast routing information of a node also includes an addressing field of the node.
- the addressing field of a node is used for a non-leaf child node of the node in the multicast tree, and multicast routing information of the non-leaf child node is determined.
- the multicast routing information of the second node includes the addressing field of the second node
- the multicast routing information of node 20 includes the addressing field of node 20
- other nodes are similar.
- the multicast routing information of node D includes an addressing field of node D.
- the multicast routing information of node A may also include the addressing field of node A.
- the addressing field of node A is used for node E to determine the multicast routing identifier of node E, and/or for node F to determine node F The multicast routing identifier of the .
- the multicast routing information of Node B may also include the addressing field of Node B.
- the addressing field of node B is used by node H to determine the multicast routing identifier of node H.
- the multicast routing information of the non-leaf child nodes of a node may be statically configured in the node in addition to being indicated by the address field. For example, if the number of child nodes of a node is fixed, and the child nodes of these child nodes are all leaf nodes, then the multicast routing information of these child nodes only includes the multicast routing identifiers of these child nodes, and the multicast routing identifiers The length of is fixed. At this time, the length of the multicast routing information of these child nodes can be statically maintained in the node. At this time, the addressing field of the node may not be included in the multicast routing information of the node. In addition, for the specific implementation of the addressing field of the second node, reference may be made to the relevant introduction in S803 below, and details are not described here.
- the first message further includes: a second field; the second field is used to indicate the total length of the multicast routing information of the non-leaf child nodes of the second node, and optionally, is also used to indicate the The total length of the multicast routing information of non-leaf child nodes, and the sum of the lengths of the following one or more items, the following one or more items include: the length of the second field, the length of the addressing field of the second node , the length of the multicast routing identifier of the second node.
- the second field is used to indicate the length of the multicast routing information of the second node, or the total length of the multicast routing information of the second node and the second field, or the non- The total length of the multicast routing information of the leaf child nodes. These lengths can be characterized by bits, bytes, and the like.
- the second field may also include a reserved field for subsequent function expansion.
- the second field may be a fixed-length field, for example, 1 byte (that is, 8 bits).
- the multicast information of the second node further includes a second field. For example, referring to FIG. 12 , if the second node is node D, the multicast message sent by node D to node A, node B, and node C further includes a second field.
- the multicast information of the second node further includes: a third field, where the third field is used to align bytes of the multicast information of the second node.
- the third field may also be called a padding field.
- the multicast information of the second node further includes a third field.
- the multicast message sent by node D to node A, node B, and node C further includes a third field. It should be noted that when byte alignment is performed, it may be single-byte alignment. At this time, the existence of the third field is to make the number of bits of the entire multicast information divisible by 8, or it can be 4-byte alignment.
- the existence of the third field is to make the number of bits of the entire multicast information an integer of 32, and it can also be 8-byte alignment. At this time, the existence of the third field is to enable the number of bits of the entire multicast information to be an integer of 64 .
- the specific length of the third field can be determined according to the number of bytes to be aligned. It can be understood that, if there is no third field, the multicast routing information of the second node itself is byte-aligned, and the third field is not needed. For the convenience of description, the method provided in the embodiment of the present application will be described exemplarily below by taking byte alignment as single-byte alignment as an example.
- the second field and the third field may be added to the first packet by the second node.
- the second field, the third field, and the multicast routing information of the second node are referred to as the multicast information of the second node, that is, the multicast information of the second node includes the second field, the third field and the multicast routing information of the second node.
- the second node sends the first packet to the first node, and the first node receives the first packet from the second node.
- the first node may be a non-leaf child node of the second node.
- the multicast routing identifier of the node is used to instruct the node to send multicast messages to the child nodes of the node, that is, the multicast routing identifier of the second node is used to instruct the second node to send multicast messages to the first node first message.
- the multicast routing identifier of a node can be implemented through the following method 11, method 12 or method 13.
- the multicast routing identifier of a node includes a fourth field and X fifth fields, the fourth field is used to indicate that the number of child nodes of the node is X, and a fifth field is used to indicate the identity of a child node of the node .
- the identifier (ID) of the node may be, for example, the index of the node, the IP address of the node, or other identifiers of the node.
- the fourth field is marked as Cnt (that is, the abbreviation of Count), which means that it is used to indicate the number of nodes
- the fifth field is marked as Idx (That is, the abbreviation of Index), indicating that it is used to indicate the index.
- Idxi is the index of the i-th child node of the node, Idx1 to Idxx form an Idx sequence, and i is an integer greater than 0 and less than or equal to X.
- the nodes in the node set corresponding to a node can have consecutive numbers, for example, 0, 1, 2, ..., the node set can include all or part of the potential child nodes of the node, and the index of a node can be the number of the node .
- a node can determine which nodes need to send the multicast message (that is, determine which nodes are its own child nodes) through the index of the node carried in the multicast routing identifier of the received multicast message.
- the number of nodes in the node set corresponding to a node can also be a continuous value starting from other values (for example, 1) (that is, the index of the node in the node set corresponding to the node is 1, 2, 3, ...), or may also be a discrete value, which is not limited in this application.
- the bit width of the fifth field N is the number of nodes in the node set corresponding to the node.
- the bit width of the fifth field may also be a fixed bit width, for example, 1 byte.
- the bit width of the fourth field can be When the value of the fourth field is N-1 (that is, the value of the fourth field is 0 means that N is 1, the value of the fourth field is 1 means that N is 2, and so on), the bit width of the fourth field can be
- the fourth field may also have a fixed bit width, for example, 1 byte. In this case, the maximum length of the fifth field is also fixed.
- the fourth field may also be called a Cnt field or a Count field.
- the fifth field may also be called an Idx field or an Index field.
- the fourth field in mode 11 is called the Cnt field
- the fifth field is called the Idx field.
- the node set corresponding to node D includes node A, node B, and node C, it means that there are three potential child nodes of node D, and the numbers of these three potential child nodes are 0, respectively. 1, 2.
- the value of the first Idx field is 10, indicating that the node numbered 0 (that is, node A) is a child node of node D
- the value of the second Idx field is 11, indicating that the node numbered 1
- the node i.e. node B
- the value of the third Idx field is 01, indicating that the node numbered 2 (i.e. node C) is a child node of node D
- the multicast routing identifier of node D can be for 11101101.
- a multicast forwarding table (also called a multicast routing table or routing forwarding table or other names) can be stored on each node, and the multicast forwarding table includes the node index and the next node index in the node set corresponding to the node.
- nexthop information for example, the outgoing interface to the next hop, the address of the next hop
- a node can determine the node index according to the Idx field in the multicast routing identifier, and then search for the multicast
- the forwarding table obtains the information of the next hop, and then forwards the multicast message to the next hop.
- the second node can search the multicast forwarding table of the second node according to the Idx field of the first node in the multicast routing identifier of the second node, determine the address of the first node, and pass the address of the first node The corresponding egress port sends the first packet to the first node.
- Table 1 for an example of the multicast forwarding table of node D.
- node index next hop address 0 address of node A 1 address of node B
- the multicast routing identifier of a node includes N first fields, N is the number of nodes in the node set corresponding to the node, and a first field is used to indicate whether a node in the node set is the node in the multicast tree child nodes.
- the multicast routing identifier of the second node may include N first fields, and one first field is used to indicate whether a node in the first node set is a child of the second node in the multicast tree.
- node. N is the number of nodes in the first node set, the first node set is a node set corresponding to the second node, and the first node set includes some or all potential child nodes of the second node.
- a first field can be a bit, that is to say, the multicast routing identifier of a node (take the second node as an example) includes N bits, as shown in (b) in Figure 13, N bits form a bit sequence (bit sequence), N bits correspond to the nodes in the first node set corresponding to the second node one by one, and one bit is used to indicate whether the node corresponding to the bit in the first node set is a child node of the second node . Specifically, when the value of a bit is 1 (or 0), the bit is used to indicate that the node corresponding to the bit in the first node set is a child node of the second node.
- bit sequence For the convenience of description, in the following, in the following, it means that the node corresponding to the bit is the corresponding child node as an example to illustrate the method provided in this application.
- the multicast routing identifier in mode 12 is called a bit sequence hereinafter.
- the node set corresponding to node D includes node A, node B, and node C, and these three nodes correspond to the first, second, and third bits of the three bits respectively. If a node in the node set with a corresponding bit value of 1 is a child node of node D, the bit sequence of node D may be 111.
- the node set corresponding to node A includes node D, node E, and node F. These three nodes correspond to the first, second, and third bits of the three bits, and node E and node F are child nodes of node A. If a node with a corresponding bit value of 1 in the node set is a child node of node A, the bit sequence of node A may be 011.
- a multicast forwarding table can be stored on each node, and the multicast forwarding table includes the information between the bit in the bit sequence and the information of the next hop (for example, the outgoing interface to the next hop, the address of the next hop) According to the corresponding relationship, a node can determine the information of the next hop according to the position of the bit in the bit sequence in the multicast forwarding table, and then forward the message to the next hop.
- the corresponding relationship between the bit in the bit sequence and the information of the next hop may have four situations. As shown in Figure 14, in the first case, the leftmost (leftmost) bit in the bit sequence is the first bit, and from left to right are the first bit, the second bit, the third bit...
- the jth bit in the bit sequence corresponds to the entry with index j-1.
- the rightmost bit in the bit sequence is the first bit, and from right to left is the first bit, the second bit, the third bit..., the jth bit in the bit sequence Corresponding to the entry with index j-1.
- the leftmost bit in the bit sequence is the first bit, and from left to right it is the first bit, the second bit, the third bit..., the jth bit in the bit sequence Corresponds to the entry with index j.
- the rightmost bit in the bit sequence is the first bit, and from right to left is the first bit, the second bit, the third bit...
- the jth bit in the bit sequence Corresponds to the entry with index j. j is an integer greater than 0.
- the 6 bits respectively correspond to nodes A to F, and the corresponding relationship between the bits in the bit sequence and the address of the next hop can be referred to FIG. 14 .
- the leftmost bit in the bit sequence is the first bit, and from left to right it is the first bit, the second bit, the third bit... .
- the index of the entry in the multicast forwarding table can also be a continuous value or a discrete value starting from other values (for example, 2, 3, 4). No limit.
- the second node can search the multicast forwarding table of the second node according to the index corresponding to a bit of the first node in the bit sequence of the second node, and determine the address of the first node to pass the first node Send the first packet to the first node through the egress port corresponding to the address.
- the multicast routing identifier of a node includes a group identifier, and the group identifier is used to indicate a node group corresponding to the node, and all nodes in the node group corresponding to a node are child nodes of the node.
- the multicast routing identifier of the second node includes a first group identifier, and the first group identifier is used to indicate the first node group corresponding to the second node, and the nodes in the first node group are all second nodes child nodes.
- the node group corresponding to a node is a subset of the node set corresponding to the node.
- the nodes in the node set corresponding to a node can form at least one node group.
- a node in the node set can be located in one node group or in multiple node groups. Which nodes form a node group can be pre-configured.
- a node A group corresponds to a group ID (Group ID, GID for short).
- the multicast routing identifier is a GID
- a node can determine the node corresponding to the GID through the GID in the multicast routing identifier of the node in the received multicast message nodes in the group, and send multicast packets to these nodes.
- node set corresponding to node R includes node B, node A, node S, and node E
- these four nodes can form three node groups
- the first node group includes nodes A and Node B
- the second node group includes node S and node E
- the third node group includes node B, node A, node S and node E.
- the identifier of the first node group is identifier 1
- the identifier of the second node group is identifier 2
- the identifier of the third node group is identifier 3.
- node S and node E are child nodes of node R. Then the multicast routing identifier of node R may be identifier 2.
- a multicast forwarding table can also be stored on each node, and the multicast forwarding table includes the group identifier of the node group and the information of the next hop (for example, to the next The corresponding relationship between the outbound interface of the hop and the address of the next hop).
- the next hop here is the node in the node group corresponding to the group identifier.
- a node can determine which nodes to forward the multicast message to according to the multicast routing identifier and the corresponding relationship in the multicast forwarding table.
- the second node can search the multicast forwarding table according to the first group identifier in the multicast routing identifier of the second node, and determine to send the first message to the child nodes (including the first node) in the first node group. message.
- Table 2 for an example of the multicast forwarding table of node R.
- the multicast routing identifiers in the above method 11, method 12 and method 13 can be converted to each other, for example, the GID in the method 13 can be converted into the bit sequence in the method 12 or the bit sequence in the method 11 Multicast route identifier.
- the multicast routing identifiers in the above manner 11, manner 12 and manner 13 may be respectively referred to as a first type multicast routing identifier, a second type multicast routing identifier and a third type multicast routing identifier.
- the length of the multicast routing identifier of a node in the above modes 11, 12 and 13 can be statically maintained in the node.
- the node (for example, the source node) or the controller that generates the first multicast message in the multicast tree can maintain the lengths of the multicast routing identifiers of all nodes in the multicast tree.
- the encapsulation efficiency of multicast packets is optimal in the multicast scenario where the density of nodes in the multicast tree is extremely low.
- the encapsulation efficiency is optimal in a multicast scenario where the density of nodes in the multicast tree is relatively high.
- the encapsulation efficiency is optimal in the multicast scenario with the highest density of nodes in the multicast tree.
- the multicast routing identifier of a node further includes a type field, and the type field is used to indicate the type of the multicast routing identifier of the node.
- the types of multicast routing identifiers include the first type of multicast routing identifier, the second type of multicast routing identifier and the third type of multicast routing identifier.
- the node receiving the multicast packet can determine how to identify the multicast routing identifier according to the type of the multicast routing identifier.
- the multicast routing identifier also includes a type field
- the multicast routing identifier in mode 11, mode 12 and mode 13 can refer to (a) in FIG. 15 , (b) in FIG. 15 and (c), the type field is recorded as Type in (a) in Figure 15, (b) in Figure 15 and (c) in Figure 15.
- one type of multicast routing identifier can be uniquely used (in this case, the type field is not required), and the type field can also be used to indicate which type of multicast routing identifier to use.
- the type field can be regarded as a part of the multicast routing identifier, or a field independent of the multicast routing identifier, which is not limited in this application.
- the types of multicast routing identifiers of different nodes may be the same or different, which is not limited in this application.
- the multicast routing identifier of a node also includes a multicast routing identifier length field and/or a node type field, the multicast routing identifier length field is used to indicate the length of the multicast routing identifier, and the node type field is used to indicate that the node Type, node types include single-entity node and multi-entity node, single-entity node means that the node includes one entity, and multi-entity node means that the node includes multiple entities. Similar to the type field, the multicast routing identifier length field and/or the node type field may be regarded as a part of the multicast routing identifier, or a field independent of the multicast routing identifier, which is not limited in this application.
- the above-mentioned type field, multicast routing identifier length field and node type field may be collectively referred to as a description field or a dscr field. These fields may also have other names, which are not limited in this application.
- the second node sends the first packet to the first node, and the destination address in the unicast encapsulation in the first packet is the address of the first node.
- the first packet may be an IP packet.
- the destination address in the first packet is the address of the first node
- the first packet also includes data
- the group of the second node in the first packet The broadcast information is located between the IP header and the data of the first packet.
- the unicast encapsulation may include an indication field, which is used to indicate whether the information after unicast encapsulation in the multicast message contains multicast information, and after the node receives the multicast message, it may determine according to the indication field Whether the unicast-encapsulated information in the multicast packet contains multicast information.
- the "protocol (protocol)" field in the IPv4 header can indicate whether the information after unicast encapsulation in the multicast packet contains multicast information; if the unicast encapsulation is IPv6 encapsulation, the IPv6 The "Next Header" field in the header can indicate whether the unicast-encapsulated information in the multicast message contains multicast information.
- the source address in the unicast encapsulation in the multicast packet sent by one node (for example, node a) to another node (for example, node b) may be the address of node a, It can also be the address of the source node in the multicast tree.
- the source address in the unicast encapsulation in the multicast packet sent by node A to node E may be the address of node D or the address of node A.
- the node can determine the next-hop node of the multicast message through the multicast routing identifier in the multicast message. For example, when a node receives a multicast packet, if the multicast routing identifier of the node is the bit sequence below, the node corresponding to the bit with a value of 1 in the multicast routing identifier is the node of the multicast packet The next hop node, that is, the child node of the node is the next hop node of the multicast message.
- the first node parses the first packet.
- the parsing of the first packet by the first node may be that the first node generates the second packet according to the first packet.
- the second packet may include: multicast routing information of the first node, or multicast routing information of the third node.
- the third node is a child node of the first node, and the multicast routing information of the first node includes any of the following items: the multicast routing identifier of the first node and the multicast routing information of the third node, the group routing information of the first node broadcast routing identifier, or the multicast routing identifier of the first node and the multicast routing identifier of the third node.
- the multicast routing information of the first node includes the multicast routing identifier of the first node and the multicast routing information of the third node.
- the multicast routing information of the first node may include the multicast routing identifier of the third node, that is, include the multicast routing identifier of the first node and the The multicast routing identifier may also not include the multicast routing identifier of the third node, that is, the multicast routing information of the first node may only include the multicast routing identifier of the first node.
- the first node can process the first packet more flexibly. For example, if the third node supports the determination of the multicast routing information of the third node by the third node, the first node can perform a similar operation to the second node, that is, send the multicast routing information containing the first node to the third node The second message of the information is used to avoid redundant messages, save processing resources of the first node, and improve operating efficiency. However, if the third node does not support the determination of the multicast routing information of the third node by the third node, the first node can further determine the multicast routing information of the third node on the basis of determining the multicast routing information of the first node. Routing information, sending a second message containing only the multicast routing information of the third node to the third node, so as to ensure that the third node can normally process the second message and ensure the reliability of communication.
- the multicast routing identifier of the node can be used by the non-leaf child node to determine the multicast routing information of the non-leaf child node.
- the first node can determine the multicast routing information of the first node according to the multicast routing identifier of the second node in the first message, thereby performing packet encapsulation according to the multicast routing information of the first node to obtain the second message arts.
- the first node may further determine the multicast routing information of the third node, thereby performing packet encapsulation according to the multicast routing information of the third node to obtain the second packet.
- the realization of determining the multicast routing information includes mode 21 and mode 22, which will be introduced respectively below.
- the multicast routing identifier of a node is used for the non-leaf child nodes of the node in the multicast tree, and the position of the non-leaf child nodes in a node set corresponding to the node is determined.
- the position of the non-leaf child node in a node set corresponding to the node is used for the non-leaf child node to determine the multicast routing information of the non-leaf child node.
- the first node can determine the position of the first node in the first node set according to the multicast routing identifier of the second node, so as to determine the position of the first node in the first node set according to the position of the first node in the first node set.
- Multicast routing information of a node In the following, the above three implementations of the multicast routing identifier will be introduced respectively.
- the multicast routing identifier of a node includes a Cnt field and X Idx fields, the Cnt field is used to indicate that the number of child nodes of the node is X, and an Idx field is used to indicate a child node of the node logo. Therefore, each non-leaf child node of the node in the multicast tree can determine the position of an Idx field corresponding to the non-leaf child node in the X Idx fields according to the Cnt field and the X Idx fields, and the position can represent The position of the non-leaf child node in the corresponding node set.
- the first node determines the position of an Idx field corresponding to the first node in the X Idx fields according to the Cnt field and X Idx fields in the multicast routing identifier of the second node, so that according to the The location, the multicast routing information of the first node is determined from the multicast routing information of the second node.
- a node stores a mapping relationship table corresponding to the above Cnt field on each non-leaf child node in the multicast tree, and the mapping relationship table is used to indicate that an Idx field corresponding to each non-leaf child node is related to the For the correspondence of non-leaf child nodes, the position of an Idx field corresponding to each non-leaf child node in the mapping relationship table may indicate the position of the non-leaf child node in the corresponding node set.
- the first mapping relationship table of the first node is used to indicate the corresponding relationship between an Idx field corresponding to each non-leaf child node (including the first node) and the non-leaf child node.
- the first node can search the first mapping relationship table according to the multicast routing identifier of the second node, to determine the position of an Idx field corresponding to the first node in the first mapping relationship table, such as an Idx field corresponding to the first node is
- the number of Idx fields in the first mapping relationship that is, the position of the first node in the first node set, for example, the first node is the number of child nodes in the first node set.
- the position of the first node in the first node set can be used to indicate the position of the multicast routing information of the first node in the multicast routing information of the second node, that is, the multicast routing information of the first node is the second node
- the number of multicast routing information in the multicast routing information, or the recursive unit of the first node is the number of recursive units in all the recursive units included in the second node.
- the first node can determine the multicast routing information of the first node according to the position of the multicast routing information of the first node in the multicast routing information of the second node.
- Table 3 for an example of a mapping relationship table between node A, node B, and node C.
- the multicast routing identifier of node D is 11101101.
- the value of the Cnt field is 11
- the value of the first Idx field is 10
- the value of the second Idx field is 11
- the value of the second Idx field is 11.
- the 3 Idx fields have a value of 01.
- Node A determines that the lookup table 3 is needed according to the value of the Cnt field being 11.
- Node A looks up table 3 according to the value of the first Idx field of 10, determines that the first Idx field is an Idx field corresponding to node A, and determines that this node A is a corresponding node set (comprising node A, node B and The 1st node in node C). If the lengths of the multicast routing information of nodes A, B, and C are all 8 bits, then node A can determine that among the multicast routing information of node D, the first 8 bits are the multicast routing information of node A. Similarly, node B determines that table 3 needs to be looked up according to the value of the Cnt field being 11.
- Node B looks up table 3 according to the value of the first Idx field of 10, and determines that the first Idx field is an Idx field corresponding to node A, not an Idx field corresponding to node B.
- Node B continues to look up Table 3 according to the value of the second Idx field of 11, determines that the second Idx field is an Idx field corresponding to Node B, and determines that Node B is the second node in the corresponding node set. In this way, the node B can determine that among the multicast routing information of the node D, the second 8 bits are the multicast routing information of the node B.
- node C determines that table 3 needs to be looked up according to the value of the Cnt field being 11.
- Node C looks up table 3 according to the value of the first Idx field of 10, and determines that the first Idx field is an Idx field corresponding to node A, not an Idx field corresponding to node C.
- Node C continues to search table 3 according to the value of the second Idx field of 11, and determines that the second Idx field is an Idx field corresponding to node B, not an Idx field corresponding to node C.
- Node C continues to search table 3 according to the value of the third Idx field of 01, determines that the third Idx field is an Idx field corresponding to node C, and determines that node C is the third node in the corresponding node set. In this way, node C can determine that among the multicast routing information of node D, the third 8bit is the multicast routing information of node C.
- the bit sequence of a node includes N first fields, N is the number of nodes in the node set corresponding to the node, and a first field is used to indicate whether a node in the node set is the node in the node set Child node in the multicast tree. Therefore, each non-leaf child node of the node in the multicast tree can determine the position of a first field corresponding to the non-leaf child node in the N first fields according to the N first fields, and the position can represent The position of the non-leaf child node in the corresponding node set.
- the first node determines the position of a first field corresponding to the first node in the N first fields according to the N first fields in the bit sequence of the second node, so that according to the position,
- the multicast routing information of the first node is determined from the multicast routing information of the second node.
- a node stores a mapping relationship table corresponding to the above-mentioned first field on each non-leaf child node in the multicast tree, and the mapping relationship table is used to indicate a first field corresponding to each non-leaf child node
- the position of a first field corresponding to each non-leaf child node in the mapping relationship table may indicate the position of the non-leaf child node in the corresponding node set.
- the first mapping relationship table of the first node is used to indicate the corresponding relationship between an index of a first field corresponding to each non-leaf child node (including the first node) and the non-leaf child node.
- the first node may search the first mapping table to determine the position of a first field corresponding to the first node among the N first fields, for example, a first field corresponding to the first node is the first field among the N first fields Several first fields, that is, the position of the first node in the first node set.
- the position of the first node in the first node set may be used to indicate the position of the multicast routing information of the first node in the multicast routing information of the second node. In the case that the multicast routing information is of equal length, the first node can determine the multicast routing information of the first node according to the position of the multicast routing information of the first node in the multicast routing information of the second node.
- Table 4 for an example of a mapping relationship table between node A, node B, and node C.
- the bit sequence of node D is 111; node A looks up table 4, and determines that a first field corresponding to node A is the first bit in the bit sequence of node D, and the value of the first bit is 1, that is, node A is a child node of node D, and the multicast routing information of node D includes the multicast routing information of node A. If the lengths of the multicast routing information of nodes A, B, and C are all 8 bits, then node A can determine that among the multicast routing information of node D, the first 8 bits are the multicast routing information of node A.
- node B looks up table 4 to determine that the first field corresponding to node B is the second bit in the bit sequence, and the value of the second bit is 1, that is, node B is a child node of node D, and node D's
- the multicast routing information includes multicast routing information of the Node B. In this way, the node B can determine that among the multicast routing information of the node D, the second 8 bits are the multicast routing information of the node B.
- node C looks up table 4 to determine that the first field corresponding to node C is the third bit in the bit sequence, and the value of the third bit is 1, that is, node C is a child node of node D, and node D's
- the multicast routing information includes node C's multicast routing information. In this way, node C can determine that among the multicast routing information of node D, the third 8bit is the multicast routing information of node C.
- the index of the above table 4 may also start from 0, that is, 0, 1, 2, 3, etc., which is not limited.
- the multicast routing identifier of a node includes a group identifier, and the group identifier is used to indicate a node group corresponding to the node, and all nodes in the node group corresponding to a node are child nodes of the node. Therefore, each non-leaf child node of the node in the multicast tree can determine whether the non-leaf child node is a node in the node group according to the group identifier. If the non-leaf child node is a node in the node group, then determine the position of the non-leaf child node in the node group.
- the position of the non-leaf child node in the node group can be regarded as the position of the non-leaf child node in the corresponding node set.
- the first node determines that the first node is a node in the node group according to the first group identifier, and determines the position of the first node in the node group, so that according to the position, in the second node
- the multicast routing information of the first node is determined in the multicast routing information.
- a node stores a mapping relationship table on each non-leaf child node in the multicast tree, and the mapping relationship table is used to indicate the corresponding relationship between the above-mentioned group identifier and the node group indicated by the group identifier.
- the first mapping relationship table of the first node is used for the correspondence between the first group identifier and the first node group indicated by the first identifier.
- the first node can search the first mapping table according to the first group identifier in the multicast routing information of the second node, determine that the first node is a node in the first node group, and determine that the first node is in the first node group
- the position in for example, the first node is the child node of the first node group.
- the position of the first node in the first node group may be used to indicate the position of the multicast routing information of the first node in the multicast routing information of the second node.
- the first node can determine the multicast routing information of the first node according to the position of the multicast routing information of the first node in the multicast routing information of the second node.
- Table 5 for an example of a mapping relationship table between node A, node B, and node C.
- the group identifier in the multicast routing identifier of node D is identifier 4, and the node group indicated by identifier 4 includes node A, node B, and node C.
- Node A looks up table 5 according to identifier 4, and determines that node A is a node in the node group and is the first node. If the lengths of the multicast routing information of nodes A, B, and C are all 8 bits, then node A can determine that among the multicast routing information of node D, the first 8 bits are the multicast routing information of node A.
- node B looks up table 5, and determines that node B is a node in the node group and is the second node.
- the node B may determine that in the multicast routing information of the node D, the second 8 bits are the multicast routing information of the node B.
- node C looks up table 5, and determines that node C is a node in the node group and is the third node.
- Node C may determine that among the multicast routing information of node D, the third 8 bits are the multicast routing information of node C.
- the multicast routing information of a node includes the addressing field of the node, the multicast routing identifier and the addressing field of a node, which are used to determine the non-leaf child node of the node in the multicast tree multicast routing information.
- the first node may determine the multicast routing information of the first node according to the multicast routing identifier of the second node and the addressing field of the second node.
- the addressing field of a node is used to indicate the length of the multicast routing information of the child nodes of the node; or, the addressing field of a node is used to indicate the starting position or the multicast routing information of the child nodes of the node The end position; or, the addressing field of a node includes: multiple delimiting fields, and the multicast routing information of the child nodes of the node is separated by multiple delimiting fields.
- the addressing field of the second node is used to indicate the length of the multicast routing information of the child nodes of the second node; or, the addressing field of the second node is used to indicate the length of the child nodes of the second node
- the starting position or the ending position of the multicast routing information; or, the addressing field of the second node includes multiple delimiting fields, and the multicast routing information of the child nodes of the second node is separated by multiple delimiting fields.
- the addressing field of a node is used to indicate the length of the multicast routing information of the node's non-leaf child nodes.
- the addressing field of node 1 may include M-1 or M fields (this field is denoted as the sixth field), and a sixth field is used to indicate the length of the multicast routing information of a non-leaf child node of node 1 (the The length is denoted as Y), and the bit width of the sixth field can be (At this time, the length indicated by the sixth field is the sum of the value of the sixth field and 1), or, (At this time, the length indicated by the sixth field is the value of the sixth field), or, a fixed bit width (for example, 1 byte, 2 bytes).
- the multicast information of node 1 is shown in Figure 16.
- the recursive unit m represents the m+1 th recursive unit of node 1 (that is, the multicast routing information of the m+1 th non-leaf child node of node 1).
- the length of the recursive unit m (that is, the length of the multicast routing information of the m+1th non-leaf child node of node 1) can be denoted as L m .
- m is an integer greater than or equal to 0 and less than M.
- the addressing field of node 1 may indicate the length of M-1 recursive units of node 1.
- the M-1 recursive units may be any M-1 recursive units in the M recursive units.
- another recursive unit among the M recursive units can be calculated according to the length indicated by the second field.
- M-1 recursive units are recursive unit 0 to recursive unit M-2, that is, the addressing field of node 1 indicates L 0 , L 1 , . . . , L M-2 .
- the addressing field of node 1 may indicate the length of M recursive units of node 1, that is, the addressing field of node 1 indicates L 0 , L 1 , . . . , L M-1 .
- node 2 can determine the starting position of recursive unit 0 according to the length of the second field, multicast routing identifier and addressing field, and then determine each recursive unit 0 according to the length of each recursive unit.
- the starting position and/or ending position of the unit that is, the position of each recursive unit is determined.
- the position mentioned in this application may be an offset relative to the starting position of the multicast information, or an offset relative to some other position in the multicast message. Exemplarily, based on the example shown in FIG.
- the addressing field of node 1 indicates the length of the M recursive units of node 1
- the second field indicates the total length 1
- the starting position of the recursive unit is relative to the multicast Taking the offset of the starting position of the information as an example, the starting position of the recursive unit m is recorded as offset m , and the starting positions of each recursive unit can be shown in Table 6.
- the addressing field of a node is used to indicate the starting position or the ending position of the multicast routing information of the child nodes of the node.
- the addressing field of node 1 may include M-1 or M fields (this field is marked as the sixth field), and a sixth field is used to indicate the starting position of the multicast routing information of a non-leaf child node of node 1 or end position.
- the sixth field may be a fixed number of bits (for example, 4 bits) or a fixed number of bytes (for example, 1 byte).
- the first design solution will be described below by taking the sixth field as an example to indicate the start position.
- the principle of the sixth field to indicate the end position is similar, which can be understood by referring to it.
- the multicast information of node 1 may be as shown in (a) in FIG.
- the starting position of the recursive unit m (that is, the starting position of the multicast routing information of the m+1th non-leaf child node of node 1) can be recorded as O m .
- the length of the recursive unit M-1 can be calculated from the length indicated by the second field, and the calculation method is similar to that of the first design scheme, which can be referred to for understanding and will not be repeated here.
- the length of the recursive unit M-1 may also be displayed and indicated by a field (denoted as the seventh field). In this case, the second field may or may not exist.
- the seventh field may be located at the position of the second field, or may be located at another position, which is not limited in this application.
- the description below takes an example in which there is no second field and the seventh field is located at the position of the second field when the seventh field exists.
- the second design scheme can be realized through the following manner a or manner b.
- the addressing field of node 1 indicates the starting position of M-1 recursive units of node 1.
- the M-1 recursive units may be recursive unit 1 to recursive unit M-1, that is, the addressing field of node 1 indicates O 1 , O 2 , . . . , O M-1 .
- the addressing field of node 1 indicates O 1 , O 2 , . . . , O M-1 .
- the second possible implementation of mode a see (b) in Figure 17, there is a sixth field at the position before each recursive unit and adjacent to the recursive unit, and the sixth field is used to indicate the following The starting position of a recursive unit.
- node 2 can determine the starting position of recursive unit 0 according to the length of the second field (or seventh field), the multicast routing identifier and the addressing field, and determine according to the addressing field
- the position mentioned in this application is similar to the first design scheme, which can be understood by reference and will not be repeated here.
- the starting position and length of each recursive unit may be as shown in Table 7.
- the addressing field of node 1 indicates the starting positions of the M recursive units of node 1.
- the addressing field of node 1 indicates O 0 , O 1 , . . . , O M-1 .
- node 2 can determine the starting position of recursive unit 0 to recursive unit M-1 and the length of recursive unit 0 to recursive unit M-2 according to the address field , and then determine the length of the recursive unit M-1 according to the second field or the seventh field, that is, determine the position of each recursive unit.
- the position mentioned in this application is similar to the first design scheme, which can be understood by reference and will not be repeated here.
- the starting position and length of each recursive unit may be as shown in Table 8.
- the addressing field of a node includes multiple delimiting fields, and the multicast routing information of the non-leaf child nodes of the node is separated by multiple delimiting fields.
- the addressing field of node 1 may include M-1 delimiting fields, and the length of the delimiting fields may be preconfigured. See Figure 18 for the multicast information of node 1.
- the length of the recursive unit M-1 can be calculated from the length indicated by the first field, and the calculation method is similar to the first design solution, which can be referred to for understanding and will not be repeated here.
- the length of the recursive unit M-1 may also be displayed and indicated by a field (denoted as the seventh field). In this case, the second field may or may not exist.
- the seventh field may be located at the position of the second field, or may be located at another position, which is not limited in this application.
- the following takes the case where there is no second field when the seventh field exists, and the seventh field is located at the position of the second field as an example for illustration.
- node 2 can determine the starting position of recursive unit 0 according to the second field (or seventh field) and the length of the multicast routing identifier, and determine the starting position of recursive unit 0 according to the delimited field.
- the position mentioned in this application is similar to the first design scheme, which can be understood by reference and will not be repeated here. Exemplarily, based on the example shown in FIG.
- the recursive unit 18 taking the starting position of the recursive unit as an offset relative to the starting position of the multicast information, and the length of the recursive unit M-1 being determined according to the sixth field as an example, the recursive unit
- the starting position of m is recorded as offset m , and the starting position and length of each recursive unit can be shown in Table 9.
- the first node can determine the position of the first node in the first node set, that is, determine that the multicast routing information of the first node is the multicast routing information of the second node.
- the number of multicast routing information in the routing information, or the recursion unit of the first node is the number of recursion units in all the recursion units of the second node.
- the first node can determine the position of each recursive unit according to the addressing field of the second node. In this way, the first node can determine the recursive unit of the first node, that is, the multicast routing information of the first node.
- the first node can also Multicast routing information of the first node can be determined.
- the multicast routing information of the second node may not include the addressing field of the second node, so as to save communication overhead and improve communication efficiency.
- the first node can determine whether the multicast routing information of each non-leaf child node of the second node has the same length. multicast routing information, so that the length of the multicast routing information of each non-leaf child node can be flexibly set to apply to more scenarios.
- the first node After the first node determines the multicast routing information of the first node, it may generate the second message according to the multicast routing information of the first node. Alternatively, after the first node determines the multicast routing information of the first node, it may further determine the multicast routing information of the third node, and generate the second message according to the multicast routing information of the third node. In this way, the first node can send the second packet to the third node.
- determining the multicast routing information of the third node reference may be made to the relevant introduction of determining the multicast routing information of the first node above, and details are not repeated here.
- the first node and the second node are nodes in the first network.
- the first message also includes: a third header and a fourth header; the third header includes: the multicast routing information of the second node, optionally, the multicast information of the second node can also be included; the fourth header Part includes: unicast/multicast information of the third network.
- the first network is different from the third network.
- the first network or the third network may be a complete network or a subnet in a complete network, which is not limited.
- the unicast/multicast information of the third network may include any of the following: IP unicast/multicast information, MPLS label information, or bit string information, which is not limited. That is to say, when the first message sent by the second node to the first node is not directly sent to the first node, but needs to be forwarded by a common node, the second node needs to encapsulate in the first message the information supported by the network where the common node is located.
- the header of the unicast/multicast information includes the fourth header of the unicast/multicast information of the third network.
- the fourth header may be the outermost header of the first packet, so that ordinary nodes can identify and forward the first packet.
- the second node encapsulates the unicast/multicast information of the third network in the outer layer of the third header, and continues to encapsulate the fourth header including the unicast/multicast information of the third network without stripping third head.
- the second node can understand or recognize the unicast/multicast information of the third network, or cannot understand the unicast/multicast information of the third network. This is not limited. Whether the second node can understand the unicast/multicast information of the third network The unicast/multicast information does not affect the encapsulation of the unicast/multicast information of the third network by the second node.
- the first node and/or the second node may also be a node in the third network, and may be an edge node in the third network, in other words, the first node and/or the second node both support multicast routing
- the new multicast node for information forwarding is also an ordinary node that supports unicast/multicast information forwarding. Therefore, during deployment, by enabling new multicast on common nodes, common nodes can become new multicast nodes that support multicast routing information forwarding, so that new multicast nodes do not need to be separately deployed to further reduce deployment costs.
- the second node stores a first forwarding table
- the first forwarding table records the correspondence between the multicast routing identifier of the second node and the unicast/multicast information of the third network.
- the second node may encapsulate the fourth header in the first packet according to the first forwarding table, which will be described in detail below.
- the unicast/multicast information of the third network is IP unicast information
- the first forwarding table records the correspondence between the multicast routing identifier of the second node and the IP unicast information of the third network. It can be understood that there are three ways to implement the multicast routing identifier of the second node, namely the above-mentioned way 11, way 12, and way 13, which will be introduced below in combination with these three ways.
- the multicast routing identifier of a node includes a Cnt field and X Idx fields.
- the Cnt field in the multicast routing identifier of the second node is used to indicate the number of child nodes of the second node
- an Idx field in the multicast routing identifier of the second node is used to indicate a corresponding
- the identifier of the child node, the Idx field and X Cnt fields are used to indicate that the first message needs to be sent to the X child nodes.
- the first forwarding table may record the Cnt field, the IP unicast information of the child node, and the corresponding relationship of the egress port.
- the second node may search the first forwarding table according to the multicast routing identifier of the second node, and determine corresponding X pieces of IP unicast information and egress ports.
- the second node may copy X copies of the message, encapsulate a fourth header including a corresponding piece of IP unicast information in each message, and obtain X first messages. In this way, the second node can send a corresponding copy of the first message to each child node (including the first node) through the respective outgoing ports corresponding to the X first messages.
- node A-node H (solid line node) is a node in the multicast tree, that is, a node of 1 in the network, and there are 4 nodes between node D and node A-node C
- Ordinary nodes that is, nodes not in the multicast tree, are node R1, node R2, node R3 and node R4 (dotted line nodes) respectively, and node R1-node R4 are nodes in network 2.
- Any one of node A-node D may be a node in network 2 or not.
- An example of the first forwarding table of node D may be shown in Table 10.
- Idx field IP Unicast Information port 10 10.1.1.1 port 1 11 10.1.1.2 port 2 01 10.1.1.3 port 2
- the multicast routing identifier of node D is 11101101.
- the value of the Cnt field is 11
- the value of the first Idx field is 10
- the value of the second Idx field is 11, and the value of the second Idx field is 11.
- the 3 Idx fields have a value of 01.
- Node D determines that the lookup table 10 is needed according to the value of the Cnt field being 11.
- Node D looks up the table 10 according to the value 10 of the first Idx field, and determines that the IP unicast information corresponding to the first Idx field is IP unicast address 10.1.1.1, and the corresponding port is port 1.
- Node D can encapsulate the outer header including IP unicast address 10.1.1.1 in the message (denoted as unicast message 1), and send unicast message 1 to node A through port 1.
- Node D looks up the table 10 according to the value 11 of the second Idx field, and determines that the IP unicast information corresponding to the second Idx field is IP unicast address 10.1.1.2, and the corresponding port is port 2.
- Node D may encapsulate the outer header including the IP unicast address 10.1.1.2 in the message (denoted as unicast message 2), and send unicast message 1 to node B through port 2.
- Node D looks up table 10 according to the value of the third Idx field of 01, and determines that the IP unicast information corresponding to the third Idx field is IP unicast address 10.1.1.3, and the corresponding port is port 2.
- Node D may encapsulate the outer header including IP unicast address 10.1.1.3 in the message (denoted as unicast message 3), and send unicast message 1 to node C through port 2.
- the bit sequence of a node includes N first fields, N is the number of nodes in the node set corresponding to the node, and a first field is used to indicate whether the node needs to send the corresponding node to the first field.
- a potential child node sends a message, for example, the value of the first field is 1, which is used to indicate that the node needs to send a message to a potential child node corresponding to the first field; the value of the first field is 0, used to Indicate that the node does not need to send a message to a potential child node corresponding to the first field.
- a first field is used to indicate whether the second node needs to send a second message to a potential child node corresponding to the first field.
- the first forwarding table may record the first field, the IP unicast information of the potential child nodes, and the correspondence between the outgoing ports.
- the second node may search the first forwarding table according to the bit sequence of the second node, and determine corresponding IP unicast information and egress port.
- the second node can copy the corresponding number of copies of the message according to the number of IP unicast information, and encapsulate the fourth header including a corresponding piece of IP unicast information in each message, thereby obtaining the corresponding number of copies Three messages. In this way, the second node can send a corresponding copy of the third message to each potential child node (including the first node) through an egress port corresponding to each copy of the third message.
- an example of the first forwarding table of node D may be shown in Table 11.
- IP Unicast Information port 1 10.1.1.1 port 1 2 10.1.1.2 port 2 3 10.1.1.3 port 2
- the bit sequence of node D is 111
- the first field corresponding to node A is the first bit in the bit sequence 111, that is, the bit whose index is 1 in Table 11
- the first field corresponding to node B is bit
- the second bit in sequence 111 that is, the bit with index 2 in Table 11
- a first field corresponding to node C is the third bit in bit sequence 111, that is, the bit with index 3 in Table 11.
- node D since the value of the first bit in the bit sequence 111 is 1, node D determines that the IP unicast information corresponding to the first bit is an IP unicast address according to the lookup table 11 of the first bit 10.1.1.1, and the corresponding port is port 1.
- Node D can encapsulate the outer header including IP unicast address 10.1.1.1 in the message (denoted as unicast message 1), and send unicast message 1 to node A through port 1. Since the value of the second bit in bit sequence 111 is 1, node D determines that the IP unicast information corresponding to the first bit is IP unicast address 10.1.1.2 according to the lookup table 11 of the second bit, and the corresponding The port is port 2. Node D can encapsulate the outer header including IP unicast address 10.1.1.2 in the message (denoted as unicast message 2), and send unicast message 2 to node B through port 2.
- node D determines that the IP unicast information corresponding to the third bit is IP unicast address 10.1.1.3 according to the lookup table 11 of the third bit, and the corresponding The port is port 2.
- Node D can encapsulate the outer header including IP unicast address 10.1.1.3 in the message (denoted as unicast message 3), and send unicast message 3 to node C through port 2.
- the multicast routing identifier of a node includes a group identifier, and the group identifier is used to indicate the node group corresponding to the node.
- the first group identifier in the multicast routing identifier of the second node is used to indicate the first node group, and indicates that the first message needs to be sent to the first node group, that is, it needs to be sent to the first node group Nodes in the group (including the first node).
- the first forwarding table may record the group identifier, the IP unicast information of each node in the node group, and the correspondence between the outgoing ports.
- the second node may search the first forwarding table according to the first group identifier in the multicast routing identifier of the second node, and determine the corresponding IP unicast information and egress port.
- the second node can copy the corresponding number of copies of the message according to the number of IP unicast information, and encapsulate the fourth header including a corresponding piece of IP unicast information in each message, thereby obtaining the corresponding number of copies a message.
- the second node can send a corresponding copy of the first message to each node (including the first node) in the first node group through an egress port corresponding to each copy of the first message.
- an example of the first forwarding table of node D may be shown in Table 12.
- the group identifier in the multicast routing identifier of node D is identifier 4.
- Node D looks up table 12 according to identifier 4, and determines that the IP unicast information corresponding to identifier 4 includes IP unicast address 10.1.1.1, IP unicast address 10.1.1.2, and IP unicast address 10.1.1.3, and the corresponding ports include port 0 and port 1.
- Node D can encapsulate the outer header including IP unicast address 10.1.1.1 in the message (denoted as unicast message 1), and send unicast message 1 to node A through port 1.
- Node D can encapsulate the outer header including IP unicast address 10.1.1.2 in the message (denoted as unicast message 2), and send unicast message 2 to node B through port 2.
- Node D can encapsulate the outer header including IP unicast address 10.1.1.3 in the message (denoted as unicast message 3), and send unicast message 3 to node C through port 2.
- the unicast/multicast information of the third network is IP multicast information
- the first forwarding table records the corresponding relationship between the multicast routing identifier of the second node and the IP multicast information of the third network.
- the first forwarding table can record the whole multicast routing identifier of the second node, that is, include the Cnt field and X Idx fields, IP multicast information, and the correspondence between the outgoing ports to indicate that the first packet It needs to be sent to the multicast group (including the first node) corresponding to the IP multicast information.
- the second node may search the first forwarding table according to the multicast routing identifier of the second node, and determine corresponding IP multicast information and an egress port.
- the second node may encapsulate the fourth header including the IP multicast information in the packet, so as to obtain the first packet.
- the second node may send the first message to the multicast group (including the first node) through the egress port corresponding to the first message.
- an example of the first forwarding table of node D may be shown in Table 13.
- the multicast routing identifier of node D is 11101101.
- Node D looks up the table 13 according to the multicast routing identifier 11101101, and determines that the corresponding IP multicast information is the IP multicast address 224.1.1.1, and the corresponding port is port 1.
- Node D can encapsulate the IP multicast address 224.1.1.1 into the outer layer header of the message (marked as multicast message 1), and send messages to the multicast group (including node A, node B and Node C) sends multicast message 1.
- the first forwarding table can record the bit sequence of the second node, the IP multicast information and the corresponding relationship between the outgoing port, to indicate that the first message needs to be sent to the multicast group corresponding to the IP multicast information (including the first node).
- the second node may search the first forwarding table according to the bit sequence of the second node, and determine the corresponding IP multicast information and egress port.
- the second node may encapsulate the fourth header including the IP multicast information in the packet, so as to obtain the first packet.
- the second node may send the first message to the multicast group (including the first node) through the egress port corresponding to the first message.
- an example of the first forwarding table of node D may be shown in Table 14.
- bit sequence of node D is 111.
- Node D looks up table 14 according to bit sequence 111, and determines that the corresponding IP multicast information is IP multicast address 224.1.1.1, and the corresponding port is port 1.
- Node D can encapsulate the IP multicast address 224.1.1.1 into the outer layer header of the message (marked as multicast message 1), and send messages to the multicast group (including node A, node B and Node C) sends multicast message 1.
- the second node can record group identification, IP multicast information, and the corresponding relationship of outgoing port in the first forwarding table, to indicate that the message needs to be sent to the multicast group corresponding to the IP multicast information (including the first node ).
- the second node may search the first forwarding table according to the first group identifier in the multicast routing identifier of the second node, and determine the corresponding IP multicast information and egress port.
- the second node may encapsulate the fourth header including the IP multicast information in the packet, so as to obtain the first packet.
- the second node may send the first message to the multicast group (including the first node) through the egress port corresponding to the first message.
- an example of the first forwarding table of node F may be shown in Table 15.
- the group identifier in the multicast routing identifier of node D is identifier 4.
- Node D looks up table 15 according to identifier 4, and determines that the corresponding IP multicast information is IP multicast address 224.1.1.1, and the corresponding port is port 1.
- Node D can encapsulate the IP multicast address 224.1.1.1 into the outer layer header of the message (marked as multicast message 1), and send messages to the multicast group (including node A, node B and Node C) sends multicast message 1.
- the unicast/multicast information of the third network is MPLS label information
- the first forwarding table records the correspondence between the multicast routing identifier of the second node and the MPLS label information.
- the first forwarding table can record the whole multicast routing identifier of the second node, that is, including the Cnt field and X Idx fields, MPLS label information, and the corresponding relationship between the outgoing ports, and the specific implementation is the same as the above method 32 is similar, and can be understood with reference to method 32, and will not be repeated here.
- an example of the first forwarding table of node D may be shown in Table 16.
- the multicast routing identifier of node D is 11101101.
- Node D looks up the table 16 according to the multicast routing identifier 11101101, and determines that the corresponding label list includes MPLS label 100, MPLS label 001, and MPLS label 101, and that the corresponding ports include port 1 and port 2.
- Node D can encapsulate the MPLS label 100 into the outer header of the message (denoted as tunnel message 1), and send the tunnel message 1 to node A through port 1.
- Node D can encapsulate the MPLS label 001 into the outer header of the message (denoted as tunnel message 2), and send the tunnel message 2 to node B through port 2.
- Node D may encapsulate the MPLS label 101 into the outer header of the packet (marked as tunnel packet 3 ), and send tunnel packet 3 to node C through port 2 .
- the first forwarding table can record the corresponding relationship between the bit sequence of the second node, MPLS label information and the egress port.
- an example of the first forwarding table of node D may be shown in Table 17.
- the bit sequence of node D is 111.
- Node D looks up table 17 according to bit sequence 111, and determines that the corresponding label list includes MPLS label 100, MPLS label 001, and MPLS label 101, and the corresponding ports include port 1 and port 2.
- Node D can encapsulate the MPLS label 100 into the outer header of the message (denoted as tunnel message 1), and send the tunnel message 1 to node A through port 1.
- Node D can encapsulate the MPLS label 001 into the outer header of the message (denoted as tunnel message 2), and send the tunnel message 2 to node B through port 2.
- Node D may encapsulate the MPLS label 101 into the outer header of the packet (marked as tunnel packet 3 ), and send tunnel packet 3 to node C through port 2 .
- the first forwarding table can record the corresponding relationship between the group identifier, the MPLS label information, and the egress port, and the specific implementation is similar to the above method 32, which can be understood with reference to the method 32, and will not be described again.
- an example of the first forwarding table of node D may be shown in Table 18.
- the group identifier in the multicast routing identifier of node D is identifier 4.
- Node D looks up table 18 according to identifier 4, and determines that the corresponding label list includes MPLS label 100, MPLS label 001, and MPLS label 101, and that the corresponding ports include port 1 and port 2.
- Node D can encapsulate the MPLS label 100 into the outer header of the message (denoted as tunnel message 1), and send the tunnel message 1 to node A through port 1.
- Node D can encapsulate the MPLS label 001 into the outer header of the message (denoted as tunnel message 2), and send the tunnel message 2 to node B through port 2.
- Node D may encapsulate the MPLS label 101 into the outer header of the packet (marked as tunnel packet 3 ), and send tunnel packet 3 to node C through port 2 .
- the unicast/multicast information of the third network is bit string information, that is, the third network supports BIER multicast
- the first forwarding table records the correspondence between the multicast routing identifier of the second node and the MPLS label information.
- the first forwarding table may record the entire multicast routing identifier of the second node, that is, including the Cnt field and X Idx fields, bit string information, and the corresponding relationship between neighboring devices.
- the second node may search the first forwarding table according to the multicast routing identifier of the second node, and determine corresponding bit string information and neighboring devices.
- the second node may encapsulate the fourth header including the bit string information in the packet, so as to obtain the first packet.
- the second node may send the first packet to the first node through the egress port corresponding to the neighboring device.
- an example of the first forwarding table of node D may be shown in Table 19.
- the multicast routing identifier of node D is 11101101.
- Node D looks up the table 19 according to the multicast routing identifier 11101101, and determines that the corresponding bit string information includes bit string information 100 and bit string information 011.
- the neighbor device corresponding to bit string information 100 is node R2, indicating that the multicast message sent to node A needs to pass through node R2, and the neighbor device corresponding to bit string information 011 is node R1, indicating that the multicast message sent to node B and node C Multicast packets need to pass through node R1.
- Node D can encapsulate the bit string information 100 into a message (denoted as multicast message 2), and send the multicast message 2 through the port corresponding to node R2.
- Node D can encapsulate the bit string information 0011 into two messages (denoted as multicast message 3 and multicast message 4), and send multicast message 3 and multicast message through the port corresponding to node R1 4.
- the first forwarding table may record the bit sequence and bit string information of the second node, and the correspondence between neighboring devices.
- the second node may search the first forwarding table according to the bit sequence of the second node, and determine corresponding bit string information and neighboring devices.
- the second node may encapsulate the fourth header including the bit string information in the packet, so as to obtain the first packet.
- the second node may send the first packet to the first node through the egress port corresponding to the neighboring device.
- an example of the first forwarding table of node D may be shown in Table 20.
- the bit sequence of node D is 0111.
- the node D looks up the table 20 according to the bit sequence 111, and determines that the corresponding bit string information includes the bit string information 100 and the bit string information 011.
- Node D can encapsulate the bit string information 100 into a message (denoted as multicast message 2), and send the multicast message 2 through the port corresponding to node R2.
- Node D can encapsulate bit string information 011 into two messages (denoted as multicast message 3 and multicast message 4), and send multicast message 3 and multicast message through the port corresponding to node R1 4.
- the first forwarding table may record the group identifier, the bit string information, and the corresponding relationship between neighboring devices.
- the second node may search the first forwarding table according to the first group identifier in the multicast routing identifier of the second node, and determine corresponding bit string information and neighboring devices.
- the second node may encapsulate the fourth header including the bit string information in the packet, so as to obtain the first packet.
- the second node may send the first packet to the first node through the egress port corresponding to the neighboring device.
- an example of the first forwarding table of node E may be shown in Table 21.
- the group identifier in the multicast routing identifier of node D is identifier 4.
- the node D looks up the table 21 according to the identifier 4, and determines that the corresponding bit string information includes the bit string information 100 and the bit string information 011.
- Node D can encapsulate the bit string information 100 into a message (denoted as multicast message 2), and send the multicast message 2 through the port corresponding to node R2.
- Node D can encapsulate bit string information 011 into two messages (denoted as multicast message 3 and multicast message 4), and send multicast message 3 and multicast message through the port corresponding to node R1 4.
- Table 19-Table 21 is only an example, and is not intended as a limitation.
- the neighbor device item in Table 19-Table 21 can be configured as the corresponding egress port, that is, node E can send multicast packets directly through the egress port without knowing or configuring the topology relationship of common nodes.
- the cross-network forwarding of the first packet can be realized, so that the forwarding is no longer restricted.
- the new multicast nodes that is, the first node and the second node, can be deployed in a mixed manner with ordinary nodes. The number of deployed multicast nodes to reduce deployment difficulty and cost.
- the first node and the third node are nodes in the first network
- the second packet may further include: a first header and a second header
- the first header includes: the multicast routing information of the third node, or the multicast routing information of the first node
- the second header includes: unicast/multicast information of the second network.
- the unicast/multicast information of the second network may include any of the following: IP unicast/multicast information, MPLS label information, or bit string information, which is not limited.
- the header of the unicast/multicast information includes the second header of the unicast/multicast information of the second network.
- the second header may be the outermost header of the second packet, so that ordinary nodes can identify and forward the second packet.
- the second network and the third network may be the same or different, and the second network or the third network may be a complete network, or a subnet in a complete network, which is not limited.
- the first node encapsulates the unicast/multicast information of the second network on the outer layer of the first header, and continues to encapsulate the second header including the unicast/multicast information of the second network without stripping the first head.
- the first node can understand or recognize the unicast/multicast information of the second network, or cannot understand the unicast/multicast information of the second network. This is not limited. Whether the first node can understand the unicast/multicast information of the second network The unicast/multicast information does not affect the encapsulation of the unicast/multicast information of the second network by the first node.
- the first node and/or the third node may also be a node in the second network, and may be an edge node in the second network, in other words, the first node and/or the third node both support multicast routing
- the new multicast node for information forwarding is also an ordinary node that supports unicast/multicast information forwarding. Therefore, during deployment, by enabling new multicast on common nodes, common nodes can become new multicast nodes that support multicast routing information forwarding, so that new multicast nodes do not need to be separately deployed to further reduce deployment costs.
- the first node is both a node in the second network and a node in the third network, if the second network is different from the third network, the first node belongs to multiple networks Nodes can thus be called shared nodes. If the first node is a node in the second network or the third network, the first node is a node belonging to a single network for the difference between the second network and the third network, and thus can be called an exclusive node.
- the first node stores a second forwarding table
- the second forwarding table records the correspondence between the multicast routing identifier of the first node and the unicast/multicast information of the second network.
- the first node may encapsulate the second header in the second packet according to the second forwarding table.
- the implementation principle of the first node encapsulating the second header in the second packet according to the second forwarding table is similar to the above-mentioned methods 31-34, which can be understood by referring to methods 31-34, and will not be repeated here.
- node A and node E which is node R5 and belongs to the node in network 3 .
- node A and node F which is node R6, which belongs to the node in network 4.
- node B and node H which is node R7, which belongs to the node in network 5.
- Network 2, network 3, network 4, and network 5 may be the same network or different networks, which is not limited.
- Node A and node E can be nodes in network 3 or not; node A and node F can be nodes in network 4 or not; node B and node H can be It is a node in the network 5, or it may not be a node in the network 5, which is not limited.
- node A forwards messages to node E and node F, and the implementation principle of node B to node H is similar to that of node D above, which can be understood by referring to the above methods 31 to 34, and will not be described in detail.
- the first node may also be a leaf child node of the second node.
- the first node may also generate a third message according to the first message, and send the third message to the first device.
- the third packet includes: unicast/multicast information of the first device, that is, the third packet may be a unicast packet or a multicast packet.
- the unicast/multicast information of the first device may include any of the following: IP unicast/multicast information, MPLS label information, or bit string information. That is to say, the first device is not a node in the multicast tree.
- the first node needs to encapsulate the unicast/multicast information supported by the network where the first device is located in the message. , to realize cross-network forwarding, and send the message from the network where the first node and the second node are located to the network where the first device is located, and finally to the first device.
- the first node can understand or identify the unicast/multicast information supported by the network where the first device is located, or cannot understand the unicast/multicast information supported by the network where the first device is located, whether the first node can The unicast/multicast information supported by the network does not affect the encapsulation of the unicast/multicast information supported by the network where the first device is located by the first node.
- the unicast/multicast information supported by the network does not affect the encapsulation of the unicast/multicast information supported by the network where the first device is located by the first node.
- the multicast routing information of the second node includes the multicast routing identifier of the first node.
- the first node stores a third forwarding table, and the third forwarding table records the corresponding relationship between the multicast routing identifier of the first node and the unicast/multicast information of the first device, and the first node can generate the forwarding table according to the third forwarding table third message.
- the unicast/multicast information of the first device is IP unicast information
- the third forwarding table records the corresponding relationship between the multicast routing identifier of the first node and the IP unicast information. It can be understood that there are three ways to implement the multicast routing identifier of the first node, namely the above-mentioned way 11, way 12, and way 13, and these three ways will be introduced below in combination.
- the multicast routing identifier of a node includes a Cnt field and X Idx fields.
- the Cnt field in the multicast routing identifier of the leaf child node can be used to indicate the number of devices downstream of the leaf child node
- an Idx field in the multicast routing identifier of the leaf child node is used to Indicates the identifier of a corresponding device
- the Idx field and X Cnt fields are used to coordinate and indicate that the message needs to be sent to the X downstream devices.
- the Cnt field in the multicast routing identifier of the first node is used to indicate the number of first devices
- an Idx field in the multicast routing identifier of the first node is used to indicate a corresponding first device.
- the device identifier, the Idx field and X Cnt fields are used to indicate that the third message needs to be sent to the X first devices.
- the third forwarding table may record the correspondence between the Cnt field, the IP unicast information of the first device, and the egress port.
- the first node may search the third forwarding table according to the multicast routing identifier of the first node, and determine corresponding X pieces of IP unicast information and egress ports.
- the first node may strip the multicast information of the second node in the second message to obtain the stripped message.
- the first node may copy X copies of the stripped message, and encapsulate each IP unicast information into an IP header of a corresponding message, to obtain X third messages. In this way, the first node can send a corresponding copy of the third message to each first device through the respective outgoing ports corresponding to the X third messages.
- an example of the third forwarding table of node C may be shown in Table 22.
- the multicast routing identifier of node C is 110, in the multicast routing identifier of node C, the value of the Cnt field is 1, the value of the first Idx field is 1, and the value of the second Idx field is 0.
- Node C determines that the lookup table 10 is needed according to the value of the Cnt field being 1.
- Node C looks up the table 22 according to the value of the first Idx field of 1, and determines that the IP unicast information corresponding to the first Idx field is IP unicast address 10.1.1.4, and the corresponding port is port 1.
- Node C can strip off the multicast information of node D in the message, encapsulate the IP unicast address 10.1.1.4 into the IP header of the message (denoted as unicast message 4), and send a unicast message to device 1 through port 1. Broadcast message 4.
- Node C looks up table 22 according to the value of the second Idx field of 0, and determines that the IP unicast information corresponding to the second Idx field is IP unicast address 10.1.1.5, and the corresponding port is port 2.
- Node C can strip off the multicast information of node D in the message, encapsulate the IP unicast address 10.1.1.5 into the IP header of the message (marked as unicast message 5), and send a unicast message to device 2 through port Play message 5.
- device 1 and device 2 are devices in network 9 , and node C may be a node in network 9 or may not be a node in network 9 .
- the bit sequence of a node includes N first fields, where N is the number of nodes in the node set corresponding to the node.
- the node set corresponding to the leaf child node may include some or all potential child nodes of the leaf child node, that is, it may include the upstream node of the leaf child node, and all downstream devices of the leaf child node, one
- the first field is used to indicate whether the leaf child node needs to send a message to a potential child node corresponding to the first field, for example, the value of the first field is 1, which indicates that the leaf child node needs to correspond to the first field A potential child node of the node sends a message; the value of the first field is 0, which is used to indicate that the leaf child node does not need to send a message to a potential child node corresponding to the first field.
- a first field is used to indicate whether the first node needs to send a third packet to a first device corresponding to the first field.
- the correspondence between the first field, the IP unicast information of the first device, and the egress port may be recorded in the third forwarding table.
- the first node may search the third forwarding table according to the bit sequence of the first node, and determine corresponding IP unicast information and egress port. As shown in FIG. 22, the first node may strip the multicast information of the second node in the second message to obtain the stripped message.
- the first node copies the corresponding number of copies of the stripped message, and encapsulates each IP unicast information into the corresponding IP header of a message package, and obtains the third message.
- the first node may send the corresponding third packet to the first device through the egress port corresponding to the third packet.
- an example of the third forwarding table of node E may be shown in Table 23.
- IP Unicast Information port 1 10.1.1.1 port 0 2 10.1.1.6 port 1 3 10.1.1.7 port 1 4 10.1.1.8 port 2
- the bit sequence of node E is 0111
- the first field corresponding to node A is the first bit in the bit sequence 0111, that is, the bit whose index is 1 in Table 11
- the first field corresponding to device 3 is bit
- the second bit in the sequence 0111 that is, the bit whose index is 2 in Table 11
- a first field corresponding to device 4 is the third bit in the bit sequence 0111, that is, the bit whose index is 3 in Table 11
- a first field corresponding to device 5 is the fourth bit in the bit sequence 0111, that is, the bit whose index is 4 in Table 11.
- node E since the value of the first bit in bit sequence 0111 is 0, node E skips this bit and searches for the second bit in bit sequence 0111.
- node E determines that the IP unicast information corresponding to the second bit is IP unicast address 10.1.1.6 according to the lookup table 23 of the second bit, and the corresponding The port is port 1.
- Node E can strip off the multicast information of node A in the message, encapsulate the IP unicast address 10.1.1.6 into the IP header of the message (denoted as unicast message 6), and send a unicast message to device 3 through port 1. Broadcast message 6.
- node E determines that the IP unicast information corresponding to the third bit is IP unicast address 10.1.1.7 according to the lookup table 23 of the third bit, and the corresponding The port is port 1.
- Node E can strip off the multicast information of node A in the message, encapsulate the IP unicast address 10.1.1.7 into the IP header of the message (denoted as unicast message 7), and send a unicast message to device 4 through port 1. Broadcast message 7.
- node E determines that the IP unicast information corresponding to the 4th bit is IP unicast address 10.1.1.8 according to the 4th bit lookup table 23, And the corresponding port is port 2.
- Node E can strip off the multicast information of node A in the message, encapsulate the IP unicast address 10.1.1.8 into the IP header of the message (denoted as unicast message 8), and send a unicast message to device 5 through port 2. Broadcast message 8.
- device 3 , device 4 and device 5 are devices in network 6 , and node E may or may not be a node in network 6 .
- the multicast routing identifier of a node includes a group identifier, and the group identifier is used to indicate the node group corresponding to the node.
- the nodes in the node group corresponding to the leaf child node are all downstream devices of the leaf child node, and the message needs to be sent to these downstream devices.
- the second group identifier in the multicast routing identifier of the first node is used to indicate the second node group, that is, indicates that the third packet needs to be sent to the second node group.
- the third forwarding table may record the group identifier, the IP unicast information of each device in the node group, and the correspondence between the outgoing ports.
- the first node may search the third forwarding table according to the second group identifier in the multicast routing identifier of the first node, and determine corresponding IP unicast information and egress port.
- the first node may strip the multicast information of the second node in the second message to obtain the stripped message.
- the first node copies the corresponding number of copies of the stripped message, and encapsulates each IP unicast information into the corresponding IP header of a message package, and obtains the third message. In this way, the first node may send the corresponding third packet to the first device through the egress port corresponding to the third packet.
- an example of the third forwarding table of node E may be shown in Table 24.
- the group identifier in the multicast routing identifier of node E is identifier 6 .
- Node E looks up table 24 according to identifier 6, and determines that the IP unicast information corresponding to identifier 6 includes IP unicast address 10.1.1.6, IP unicast address 10.1.1.7, and IP unicast address 10.1.1.8, and the corresponding ports include port 1 and port 2.
- Node E can strip off the multicast information of node A in the message, encapsulate the IP unicast address 10.1.1.6 into the IP header of the message (denoted as unicast message 6), and send a unicast message to device 3 through port 1. Broadcast message 6.
- Node E can strip off the multicast information of node A in the message, encapsulate the IP unicast address 10.1.1.7 into the IP header of the message (denoted as unicast message 7), and send a unicast message to device 4 through port 1. Broadcast message 7. Node E can strip off the multicast information of node A in the message, encapsulate the IP unicast address 10.1.1.8 into the IP header of the message (denoted as unicast message 8), and send a unicast message to device 5 through port 2. Broadcast message 8.
- the unicast/multicast information of the first device is IP multicast information, that is, the first device is a device in the multicast group, and the multicast routing identifier of the first node is recorded in the third forwarding table Correspondence with IP multicast information. It can be understood that there are three ways to implement the multicast routing identifier of the first node, namely the above-mentioned way 11, way 12, and way 13, and these three ways will be introduced below in combination.
- the multicast routing identifier of a node includes a Cnt field and X Idx fields.
- the multicast routing identifier of the first node also includes a Cnt field and X Idx fields.
- the third forwarding table can record the overall multicast routing identifier, including the Cnt field and X Idx fields, IP multicast information, and the corresponding relationship between the outgoing ports, so as to indicate that the message needs to be sent to the IP group The multicast group corresponding to the broadcast information.
- the first node may search the third forwarding table according to the multicast routing identifier of the first node, and determine corresponding IP multicast information and an egress port.
- the first node can strip off the multicast information of the second node in the second message, obtain the stripped message, and encapsulate the IP multicast information into the IP header of the stripped message Department, obtain the third message. In this way, the first node can send the third message to the corresponding multicast group (including the first device) through the egress port corresponding to the third message.
- an example of the third forwarding table of node F may be shown in Table 25.
- the multicast routing identifier of the node F is 11, and in the multicast routing identifier of the node F, the value of the Cnt field is 1, and the value of the Idx field is 1.
- Node F looks up table 25 according to multicast routing identifier 11, and determines that the corresponding IP multicast information is IP multicast address 224.1.1.3, and the corresponding port is port 1.
- Node F can strip off the multicast information of node A in the message, encapsulate the IP multicast address 224.1.
- the device 6 inside sends the multicast packet 5.
- the device 6 is a device in the network 7 , and the node F may or may not be a node in the network 7 .
- the bit sequence of a node includes N first fields. Taking the first node as an example, the bit sequence of the first node also includes N first fields.
- the third forwarding table may record the corresponding relationship between the bit sequence, the IP multicast information and the outgoing port, so as to indicate that the third message needs to be sent to the multicast group corresponding to the IP multicast information.
- the first node may search the third forwarding table according to the bit sequence of the first node, and determine corresponding IP multicast information and egress port.
- the first node can strip the multicast information of the second node in the second message to obtain the stripped message, and encapsulate the IP multicast information into the IP header of the stripped message to obtain the third message. In this way, the first node may send the third message to the corresponding multicast group (including the first device) through the egress port corresponding to the third message.
- an example of the third forwarding table of node F may be shown in Table 26.
- the bit sequence of node F is 01.
- the node F looks up the table 26 according to the bit sequence 01, and determines that the corresponding IP multicast information is the IP multicast address 224.1.1.3, and the corresponding port is port 1.
- Node F can strip off the multicast information of node A in the message, encapsulate the IP multicast address 224.1.
- the device 6 inside sends the multicast packet 5.
- the multicast routing identifier of a node includes a group identifier.
- the multicast routing identifier of the first node includes the second group identifier.
- the corresponding relationship between the group identifier in the multicast routing identifier, the IP multicast information, and the outgoing port can be recorded in the third forwarding table, so as to indicate that the message needs to be sent to the multicast group corresponding to the IP multicast information .
- the first node may search the third forwarding table according to the second group identifier in the multicast routing identifier of the first node, and determine the corresponding IP multicast information and egress port.
- the first node can strip off the multicast information of the second node in the second message, obtain the stripped message, and encapsulate the IP multicast information into the IP header of the stripped message Department, obtain the third message.
- the first node may send the third message to the corresponding multicast group (including the first device) through the egress port corresponding to the third message.
- an example of the third forwarding table of node F may be shown in Table 27.
- the group identifier in the multicast routing identifier of node F is identifier 8 .
- Node F looks up table 27 according to identifier 8, and determines that the corresponding IP multicast information is IP multicast address 224.1.1.3, and the corresponding port is port 1.
- Node F can strip off the multicast information of node A in the message, encapsulate the IP multicast address 224.1.
- the device 6 inside sends the multicast packet 5.
- the unicast/multicast information of the first device is MPLS label information
- the correspondence between the multicast routing identifier of the first node and the MPLS label information is recorded in the third forwarding table.
- the third forwarding table can record the whole multicast routing identifier of the first node, that is, including the Cnt field and X Idx fields, MPLS label information, and the corresponding relationship between the outgoing ports, and the specific implementation is the same as the above-mentioned first
- the two implementation manners are similar, and can be understood with reference to the second implementation manner, and will not be repeated here.
- an example of the third forwarding table of node H may be shown in Table 28.
- the multicast routing identifier of node H is 110.
- Node H looks up the table 28 according to the multicast routing identifier 110, and determines that the corresponding MPLS label information includes MPLS label 100 and MPLS label 101, and the corresponding port is port 1.
- Node H can strip off the multicast information of node B in the message, encapsulate the MPLS label 100 into the IP header of the message (denoted as tunnel message 4), and send tunnel message 4 to device 7 through port 1.
- Node H can strip off the multicast information of Node B in the message, encapsulate the MPLS label 101 into the IP header of the message (denoted as tunnel message 5), and send the tunnel message 5 to device 8 through port 1.
- the device 7 and the device 8 are devices in the network 8 , and the node H may be a node in the network 8 or may not be a node in the network 8 .
- the corresponding relationship between the bit sequence of the first node and the MPLS label information and the egress port can be recorded in the third forwarding table.
- the specific implementation is similar to the second embodiment above, and can be understood by referring to the second embodiment ,No longer.
- an example of the third forwarding table of node H may be shown in Table 29.
- the bit sequence of node H is 011.
- Node H looks up table 29 according to the bit sequence 011, and determines that the corresponding MPLS label information includes MPLS label 100 and MPLS label 101, and the corresponding port is port 1.
- Node H can strip off the multicast information of node B in the message, encapsulate the MPLS label 100 into the IP header of the message (denoted as tunnel message 4), and send tunnel message 4 to device 7 through port 1.
- Node H can strip the multicast information of node B in the message, encapsulate MPLS label 101 into the IP header of the message (marked as tunnel message 5), and send tunnel message 5 to device 8 through port 1.
- the third forwarding table can record the group identifier in the multicast routing identifier, the MPLS label information, and the corresponding relationship between the egress port.
- the specific implementation is similar to the second embodiment above, and you can refer to the second implementation way to understand, no longer repeat.
- an example of the third forwarding table of node H may be shown in Table 30.
- the group identifier in the multicast routing identifier of node H is identifier 9 .
- Node H looks up table 30 according to identifier 9, and determines that the corresponding MPLS label information includes MPLS label 100 and MPLS label 101, and the corresponding port is port 1.
- Node H can strip off the multicast information of node B in the message, encapsulate the MPLS label 100 into the IP header of the message (denoted as tunnel message 4), and send tunnel message 4 to device 7 through port 1.
- Node H can strip off the multicast information of Node B in the message, encapsulate the MPLS label 101 into the IP header of the message (denoted as tunnel message 5), and send the tunnel message 5 to device 8 through port 1.
- the unicast/multicast information of the first device is bit string information, that is, the first device is a device in the BIER multicast group, and the multicast routing identifier of the first node is recorded in the third forwarding table Correspondence with bit string information. It can be understood that there are three ways to implement the multicast routing identifier of the first node, namely the above-mentioned way 11, way 12, and way 13, and these three ways will be introduced below in combination.
- the third forwarding table may record the entire multicast routing identifier, that is, including the Cnt field and X Idx fields, bit string information, and the corresponding relationship between neighboring devices.
- the first node may search the third forwarding table according to the multicast routing identifier of the first node, and determine corresponding bit string information and neighboring devices.
- the first node can strip off the multicast information of the second node in the second message, obtain the stripped message, and encapsulate the outer header including the bit string information in the stripped message part, so as to obtain the third message.
- the first node can send the third packet to the BIER multicast group (including the first device) through the egress port corresponding to the neighboring device.
- nodes in the non-multicast tree which are node R8, node R9, node R10 and node R11, Node R8, node R9, node R10, and node R11 are nodes in network 6, and an example of the third forwarding table of node E can be shown in Table 31.
- the multicast routing identifier of node E is 11101101, in the multicast routing identifier of node E, the value of the Cnt field is 11, which is used to indicate that there are 3 downstream devices of node E; the value of the first Idx field is 10 , used to indicate device 3; the value of the second Idx field is 11, used to indicate device 4; the value of the third Idx field is 01, used to indicate device 5.
- the node E looks up the table 31 according to the multicast routing identifier 11101101, and determines that the corresponding bit string information includes bit string information 0100 and bit string information 0011.
- the neighbor device corresponding to the bit string information 0100 is node R9, indicating that the multicast packet sent to device 3 needs to pass through node R9
- the neighbor device corresponding to bit string information 0011 is node R8, indicating that the multicast packets sent to device 4 and device 5 Multicast packets need to pass through node R8.
- Node E can strip off the multicast information of node A in the message, encapsulate the outer layer header including bit string information 0100 in the message (denoted as multicast message 6), and send the multicast message through the port corresponding to node R9 Message 6.
- Node E can strip off the multicast information of node A in the message, then duplicate two copies, and encapsulate the outer layer header including bit string information 0011 in the two messages (marked as multicast message 7 and multicast message 8), and send the multicast message 7 and the multicast message 8 through the port corresponding to the node R8.
- the third forwarding table may record the bit sequence and bit string information of the first node, and the correspondence between neighboring devices.
- the first node may search the third forwarding table according to the bit sequence of the first node, and determine corresponding bit string information and neighboring devices.
- the first node can strip off the multicast information of the second node in the second message, obtain the stripped message, and encapsulate the outer header including the bit string information in the stripped message part, so as to obtain the third message.
- the first node can send the third packet to the BIER multicast group (including the first device) through the egress port corresponding to the neighboring device.
- an example of the third forwarding table of node E may be shown in Table 32.
- the bit sequence of node E is 0111
- the value of the first bit is 0, which is used to indicate that node A is not a potential child node of node E
- the values of the second to fourth bits are 1, which are used to indicate device 3 respectively - Devices 5 are each potential children of node E.
- the node E looks up the table 32 according to the bit sequence 0111, and determines that the corresponding bit string information includes bit string information 0100 and bit string information 0011.
- Node E can strip off the multicast information of node A in the message, encapsulate the outer layer header including bit string information 0100 in the message (denoted as multicast message 6), and send the multicast message through the port corresponding to node R9 Message 6.
- Node E can strip off the multicast information of node A in the message, then duplicate two copies, and encapsulate the outer layer header including bit string information 0011 in the two messages (marked as multicast message 7 and multicast message 8), and send the multicast message 7 and the multicast message 8 through the port corresponding to the node R8.
- the third forwarding table may record the group identifier in the multicast routing identifier, the bit string information, and the corresponding relationship between neighboring devices.
- the first node may search the third forwarding table according to the group identifier in the multicast routing identifier of the first node, and determine corresponding bit string information and neighboring devices.
- the first node can strip off the multicast information of the second node in the second message, obtain the stripped message, and encapsulate the outer header including the bit string information in the stripped message part, so as to obtain the third message.
- the first node can send the third packet to the BIER multicast group (including the first device) through the egress port corresponding to the neighboring device.
- an example of the third forwarding table of node E may be shown in Table 33.
- the group identifier in the multicast routing identifier of node E is identifier 6 .
- the node E looks up the table 33 according to the identifier 6, and determines that the corresponding bit string information includes: bit string information 0100 and bit string information 0011.
- Node E can strip off the multicast information of node A in the message, encapsulate the outer layer header including bit string information 0100 in the message (denoted as multicast message 6), and send the multicast message through the port corresponding to node R9 Message 6.
- Node E can strip off the multicast information of node A in the message, then duplicate two copies, and encapsulate the outer layer header including bit string information 0011 in the two messages (marked as multicast message 7 and multicast message 8), and send the multicast message 7 and the multicast message 8 through the port corresponding to the node R8.
- the above-mentioned Table 19-Table 21 is only an example, and is not intended as a limitation.
- the neighbor device item in Table 19-Table 21 can be configured as the corresponding egress port, that is, node E can send multicast packets directly through the egress port without knowing or configuring the topology relationship of common nodes.
- the above-mentioned network 2-network 9 may be the same network, or may be different networks, may be independent networks, or may be sub-networks under one network, which is not limited.
- the relevant introduction of the network please refer to the relevant introduction in the above-mentioned "6. Network", which will not be repeated here.
- the multicast routing information of the second node does not include the multicast routing identifier of the first node.
- the first node can search the second forwarding table dynamically maintained by the first node according to the IP address in the IP header of the second message, and the second forwarding table records the unicast/ Multicast information, such as 5-tuple information or 2-tuple information.
- the first node can encapsulate five-tuple information or two-tuple information in the IP header of the stripped message corresponding unicast/multicast information to obtain a third packet, and send the third packet to the first device.
- the multicast routing identifier of the first node can be used to indicate that the destination device is the first device,
- the first node can determine that it needs to send the third message to the first device only according to the multicast routing identifier of the first node, without unpacking the inner header of the first message, that is, the IP header, thereby improving Processing efficiency.
- a node may include multiple entities, and entities in a node may process the multicast message through the method shown in FIG. 24 after receiving the multicast message.
- the method is applied to the first entity, and the first entity belongs to the first node, and the method specifically includes:
- the first entity receives a first multicast packet.
- the first multicast packet includes the first multicast routing information of the first node
- the first multicast routing information of the first node includes: the first multicast routing identifier of the first node, and the first multicast routing information of the first node.
- the multicast routing information of the non-leaf child node corresponding to the multicast routing identifier, the first multicast routing identifier of the first node is the same as the multicast routing identifier of the first node, or by updating the multicast routing identifier of the first node get.
- the relevant description about the multicast routing information of the node can be referred to above, and will not be repeated here.
- the multicast routing identifier is a bit sequence, or, Cnt field + Idx field
- the multicast routing identifier of a node will have information related to each child node (including non-leaf The bit or Idx field corresponding to child nodes and leaf child nodes). Since the first multicast routing identifier is derived from the multicast routing identifier, the non-leaf child node corresponding to the first multicast routing identifier of the first node refers to the bit or Idx field in the first multicast routing identifier The non-leaf child node in the corresponding child node.
- the first entity is an entity in the first node, and the first entity may receive the first multicast message from other nodes than the first node, or may receive the first multicast message from other entities in the first node Message, this application does not make a limit. If the first entity receives the first multicast packet from other nodes than the first node, the first multicast routing information of the first node is the same as the multicast routing information of the first node. If the first entity receives the first multicast packet from other entities in the first node, the first multicast routing identifier of the first node may be the same as the multicast routing identifier of the first node, or may be passed to the first node The multicast routing identifier is updated to get. How the first multicast routing information is specifically calculated can be obtained according to the method for processing multicast packets between the first entity and the second entity. For specific examples, refer to the following, and details will not be repeated here.
- the first entity determines the second entity according to the first multicast routing identifier of the first node.
- the second entity is an entity in the first node.
- S2002 may include in specific implementation: the first entity searches the multicast forwarding table according to the first multicast routing identifier of the first node to obtain the second entity. It should be noted that the first entity may obtain multiple second entities according to the first multicast routing identifier of the first node, and the second entity here may be any one of the second entities.
- the first An entity forwards a multicast packet to a second entity as an example for description. When actually processing the multicast packet, the first node may forward the multicast packet to each second entity.
- the next hop corresponding to the bit whose value is 1 in the first multicast routing identifier in the multicast forwarding table is the second entity, if the first multicast routing If the identifier is the Cnt field+Idx field, the next hop corresponding to the value of the Idx field in the multicast forwarding table is the second entity.
- the first entity sends the second multicast packet to the second entity.
- the second multicast packet includes the second multicast routing information of the first node.
- the second multicast routing information of the first node includes: the second multicast routing identifier of the first node, and the multicast routing information of some or all non-leaf child nodes corresponding to the third multicast routing identifier of the first node.
- the third multicast routing identifier of the first node is the same as the first multicast routing identifier of the first node, or obtained by updating the first multicast routing identifier of the first node.
- the second multicast routing identifier of the first node is the same as the third multicast routing identifier of the first node, or obtained by updating the third multicast routing identifier of the first node.
- the first entity needs to update the first multicast routing identifier of the first node to obtain the third multicast routing identifier of the first node in the following cases 1 and 2.
- the first node's The third multicast routing identifier is the same as the first multicast routing identifier of the first node. Cases 1 and 2 and the update method are exemplarily described below.
- the first entity belongs to a child node of the first node (assumed to be child node 1). If the first multicast routing identifier is a bit sequence, the first entity sets the bit corresponding to child node 1 to 0 to obtain the third multicast routing identifier. If the first multicast routing identifier is the Cnt field+Idx field, the first entity deletes the Idx field corresponding to child node 1, and subtracts 1 from the value of the Cnt field to obtain the third multicast routing identifier.
- the first entity does not belong to any child node of the first node, but the multicast packet can reach one or more child nodes of the first node (assumed to be Q child nodes) only after the multicast forwarding of the first entity. node).
- the first multicast routing identifier is a bit sequence
- the first entity sets the bits corresponding to the Q subnodes to 0 to obtain the third multicast routing identifier.
- the first multicast route identifier is the Cnt field+Idx field
- the first entity deletes the Idx fields corresponding to the Q subnodes, and subtracts Q from the value of the Cnt field to obtain the third multicast route identifier.
- the first entity needs to update the third multicast routing identifier of the first node to obtain the second multicast routing identifier of the first node in the following situation 3, and in other cases, the second group of the first node
- the multicast routing identifier is the same as the third multicast routing identifier of the first node, and the following describes case 3 and the update method as an example.
- Case 3 the first entity needs to forward the multicast packet to multiple second entities.
- the third multicast routing identifier is a bit sequence
- the first entity needs to set the bit corresponding to other sub-nodes except the P sub-nodes in the third multicast routing identifier of the first node Set to 0 to get the second multicast routing ID.
- the third multicast routing identifier is the Cnt field+Idx field
- the first entity deletes the Idx fields corresponding to other subnodes except the P subnodes, and subtracts P from the value of the Cnt field to obtain the second multicast routing identifier .
- the P subnodes are one or more subnodes of the first node, and these subnodes can receive the multicast message only after multicast forwarding by the second entity.
- the number of entries in the multicast forwarding table in the node will not increase with the increase of the number of multicast streams. Therefore, even if the number of multicast streams is large, there is no need to expand more tables in the router Space to support the forwarding of multicast packets, so the scalability is better.
- the multicast message is generated from the source node, and the multicast message includes the multicast routing information of the non-leaf child nodes. Therefore, the forwarding path can be actively controlled by adjusting the multicast message. For example, if there are multiple paths, the controller or source node can choose the optimal path through the control plane algorithm.
- the multicast message is generated from the source node. Therefore, the source node can know whether a node joins or leaves the multicast tree, and the manageability is high. For example, the source node can collect user preferences through the application layer, and adjust the data in the multicast message according to these preferences.
- the node does not need to send joining signaling, therefore, the node does not need to process a large amount of periodic signaling, which avoids increasing the computing load, power consumption and processing resources of the node.
- Multicast packets include multicast routing information of non-leaf child nodes. Non-leaf child nodes can forward multicast packets according to their own multicast routing information. Therefore, the number of packets will not be too many, and the multicast efficiency higher.
- the multicast message is generated from the source node, and the multicast message includes the multicast routing information of the non-leaf child nodes. Therefore, the forwarding path can be actively controlled by adjusting the multicast message. For example, if there are multiple paths, the controller or source node can choose the optimal path through the control plane algorithm.
- each child node Since the tree recursive structure in the message sent by a node to each child node is the same, for example, it is the tree recursive structure of the multicast routing information of the second node, so that each corresponding output port of the node can Only one message is sent to avoid redundant messages and improve communication efficiency.
- the multicast routing information of each non-leaf child node does not need to be determined by an upstream node, such as the second node, but can be determined by the non-leaf child node itself, thereby saving processing resources of upstream nodes and improving operating efficiency.
- the node set corresponding to node D includes 3 nodes, namely node A, node B and node C, the bit sequence of node D has a bit width of 3, and the first bit and node A
- the second bit corresponds to node B
- the third bit corresponds to node C.
- Node A is a non-leaf child node of node D.
- the node set corresponding to node A includes 3 nodes, namely node D, node E and node F.
- the bit sequence of node A has a bit width of 3, and the first bit is consistent with node D
- the second bit corresponds to node E
- the third bit corresponds to node F.
- Node E is the leaf child node of node A.
- the node set corresponding to node E includes 4 nodes, namely node A, device 3, device 4, and device 5.
- the bit sequence of node A has a bit width of 4.
- the first bit and Node A corresponds, the second bit corresponds to device 3, the third bit corresponds to device 4, and the fourth bit corresponds to device 5.
- Node F is the leaf child node of node A.
- the node set corresponding to node F includes two nodes, namely node A and device 6.
- the bit sequence of node A has a bit width of 2.
- the first bit corresponds to node A
- the second bit corresponds to node A.
- a bit corresponds to device 6.
- Node B is a non-leaf child node of node D.
- the node set corresponding to node B includes two nodes, namely node D and node H.
- the bit width of the bit sequence of node B is 2, the first bit corresponds to node D, and the first bit corresponds to node D. 2 bits correspond to node H.
- Node H is the leaf child node of Node B.
- the node set corresponding to Node H includes 3 nodes, namely Node B, Device 7 and Device 8.
- the bit width of the bit sequence of Node H is 3, and the first bit corresponds to Node B , the second bit corresponds to device 7, and the third bit corresponds to device 8.
- Node C is the leaf child node of node D.
- the node set corresponding to node C includes 3 nodes, namely node D, device 1 and device 2.
- the bit width of the bit sequence of node C is 3, and the first bit corresponds to node D , the second bit corresponds to device 1, and the third bit corresponds to device 2.
- Figure 25 except for the first field, the second field and the addressing field, the letter before “:” indicates the node corresponding to the field, and the value after “:” indicates the bit sequence corresponding to the field; in the addressing field
- the LEN before “:” refers to the length of the node's multicast routing information, the value after ":” indicates the value of this field, and the bit width of the addressing field is 1 byte.
- node D can generate message 1 shown in (a) in FIG. 25 .
- the unicast/multicast information 1 supported by the network 2 is encapsulated in the outer header of the message 1 .
- Node D can send message 1 to node A, node B and node C across network 2 respectively.
- node A After node A receives message 1, node A can determine the multicast routing information of node A from the multicast routing information of node D according to the addressing field, and encapsulate the multicast routing information of node A to generate Figure 25
- the unicast/multicast information 2 supported by the network 3 and the network 4 is encapsulated in the outer header of the message 2 .
- Node A can send message 2 to node E across network 3 , and send message 2 to node E across network 4 . After node E receives message 2, it can strip off the multicast information of A in message 2. At this time, if the network 6 supports IP unicast/multicast or MPLS labels, node E can encapsulate unicast/multicast information 3 in the IP header to generate the left side of (c) in Figure 25 Message 3, the unicast/multicast information 3 includes IP unicast/multicast information or MPLS label information. If network 6 supports BIER multicast, node E can re-encapsulate a header including BIER multicast information 1 on the outer layer of the IP header to generate the message shown on the right side of (c) in Figure 25 3.
- the node E can send the message 3 to the device 3, the device 4 and the device 5 across the network 6 respectively.
- Node B can determine the multicast routing information of Node B from the multicast routing information of Node D according to the addressing field, and encapsulate the multicast routing information of Node B to generate Figure 25
- the unicast/multicast information 4 supported by the network 5 is encapsulated in the outer header of the message 4 .
- Node B can send message 4 across network 5 to node H. After node H receives message 4, it can strip the multicast information of B in message 4.
- node H can encapsulate the unicast/multicast information 5 in the IP header to generate the left side of (e) in Figure 25 A message 5, the unicast/multicast information 5 includes IP unicast/multicast information or MPLS label information. If network 8 supports BIER multicast, then node E can re-encapsulate a layer of header including BIER multicast information 2 on the outer layer of the IP header, to generate the message shown on the right side of (e) in Figure 25 5. In this way, the node H can send the message 5 to the device 7 and the device 8 across the network 8 respectively. After receiving message 1, node C may strip the multicast information of D in message 1.
- node C can encapsulate unicast/multicast information 6 in the IP header to generate the left side of (f) in Figure 25 Message 6, the unicast/multicast information 6 includes IP unicast/multicast information or MPLS label information. If the network 9 supports BIER multicast, then node C can re-encapsulate a header including BIER multicast information 3 in the outer layer of the IP header, to generate the message shown on the right side of (f) in Figure 25 6. In this way, the node C can send the message 6 to the device 1 and the device 2 respectively across the network 9 .
- the method provided by the present application is exemplarily described by taking the multicast message not including the type field as an example. If the current node supports multiple types of multicast routing identifiers, the multicast message may include a type field, and the node may parse the type field to obtain the type of the multicast routing identifier, and identify the multicast routing identifier according to the type of the multicast routing identifier.
- bit width of any field in the multicast message is exemplary.
- the bit width of any field may not be byte-aligned, or may be aligned (for example, the field is all 1 byte, 2 bytes or more bytes), this application does not make a limitation.
- a node after a node (or an entity in the node) receives the multicast packet, it can determine whether the header of the multicast packet contains the multicast encapsulation according to the field indication in the outer encapsulation, If the destination address in the outer encapsulation is the address of the node (or the entity), and it is determined that the packet header in the multicast message contains the multicast encapsulation, the node (or the entity) can peel off the outer encapsulation to obtain the group broadcast encapsulation, and process the multicast packets according to the multicast encapsulation.
- a node (or entity) before a node (or entity) sends a multicast message to multiple nodes (or entities), it can copy the received multicast message, and when sending it to N nodes (or entities), copy N -1 copy, edit the copied multicast message and the received multicast message to obtain the multicast message to be sent. If the multicast message is only sent to one node (or entity), it can be directly edited on the received multicast message without copying. When a node (or entity) copies a multicast message, it can copy all of them at once, and then edit and send the multicast message in parallel. It is also possible to copy a multicast message at a time, edit the multicast message and send it.
- a node (or entity) sends a multicast packet to another node (or entity) means that the source address of the multicast packet is the node (or entity) entity), and the destination address is the address of the other node (or entity).
- the meaning expressed when the value of any bit (which can be a single bit or a bit in a bit sequence) is 1 can also be expressed by 0, and the meaning when it is 0 can also be expressed by being 1, No limit.
- the value of the bit in the bit sequence in the above-mentioned embodiment is 1, it means that the bit is a child node of node D1, and when the value is 0, it means that the bit is not a child node of node D1.
- it can also be bit
- the value of the bit in the sequence is 0, it means that the bit is a child node of the node D1, and when the value is 1, it means that the bit is not a child node of the node D1.
- Other bits are similar and will not be elaborated one by one.
- the communication method provided by this application is suitable for communication between at least two nodes, such as communication between the fourth node and the fifth node, the method includes:
- the fourth node acquires the fourth packet.
- the fourth node is a node in the fourth network, which may be an edge node or a non-edge node, which is not limited.
- the fourth packet includes a fifth header, and the fifth header includes bit string information of the fifth network, that is, the fourth packet is a BIER multicast packet.
- the fourth network and the fifth network are different networks, and both the fourth network and the fifth network can be considered as virtual nodes, so that the nodes in the fourth node or the fifth network can be considered as entities in their respective virtual nodes, and in addition
- the fourth node can receive the message from the upstream node to generate the fourth message according to the message, or the fourth node can receive the fourth message from the upstream node, or the fourth node can also generate the fourth message according to the service text, there is no limit to this.
- the fourth node stores the BIFT of the fifth network. If the fourth node needs to generate the fourth message, it can search the BIFT of the fifth network to determine the bit string information of the fifth network, thereby encapsulating the fifth message including the bit string information of the fifth network in the message, to Generate the fifth message.
- the fourth node sends a fifth packet to the fifth node according to the fourth packet.
- the fifth node receives the fifth packet from the fourth node.
- the fifth node is a node in the fourth network, and may be an edge node of the fourth network.
- the fifth node can be regarded as an entity in the virtual node.
- the fifth message includes a fifth header and a sixth header, the sixth header is located outside the fifth header, and the sixth header includes bit string information of the fifth node. It can be seen that when the fifth node is an edge node of the fourth network, if you want to send the fifth message to the fifth network, you need to encapsulate the bit string information of the fifth node in the fifth message, so that The fifth packet can be sent to the fifth node, and then sent to the fourth network through the fifth node, so as to realize cross-domain forwarding.
- a second mapping relationship table is stored on the fourth node, and the second mapping relationship table may record the corresponding relationship between the fifth node and the fifth network.
- the fourth node looks up the second mapping relationship table, and determines that the fifth message needs to be sent to the fifth receiving order.
- the BIFT of the fourth network is stored on the fourth node, and the fourth node can search the BIFT of the fourth network to determine the bit string information of the fifth node, so that the fourth node can encapsulate the information including the first
- the fifth packet is obtained from the sixth header of the bit string information of the five nodes, so as to send the fifth packet to the fifth node.
- node A, node P, node B, and node C are on the same network, such as nodes in network 1.
- Node A, node B and node C constitute BIER set 1
- the bit string information of node A may be 001
- the bit string information of node B may be 010
- the bit string information of node C may be 100.
- node T, node E and node F belong to the same network, such as nodes in network 2 .
- Node G, node H and node K are in the same network, such as nodes in network 3 .
- virtual node D1 can be 100.
- the bit string information of the virtual node D2 may be 010, and the bit string information of the virtual node D3 may be 001.
- Node A, node B, node P and node C can be used as entities in virtual node D1, node T, node E and node F can be used as entities in virtual node D2, node G, node H and node K can be used as virtual node D3 entities within.
- BIFT1 of BIER set 1 mapping relationship table 1 and BIFT2 of BIER set 2 are stored on node A, an example of BIFT1 can be shown in Table 34, and an example of mapping relationship table 1 can be shown in Table 35 , an example of BIFT2 can be shown in Table 36.
- the forwarding bit mask (forwarding bit mask, F-BM) in Table 34 is used to indicate the subset in BIER set 1, there are two subsets, the node in one subset is D2, and the other subset The node inside is D3.
- the F-BM in Table 36 is used to indicate the subset in BIER set 2, there are two subsets, the node in one subset is B, and the node in the other subset is C.
- the node A lookup table 34 determines that the forwarding bit mask corresponding to the virtual node D2 is 010, that is, the bit string information is 010, and the forwarding bit mask corresponding to the virtual node D3 is 001, that is, the bit string information is 001.
- the node can encapsulate the header including bit string information 010 (denoted as header 1) in message A, and encapsulate the header including bit string information 001 in message B ( Denoted as head 2).
- Node A lookup table 35 determines that a further lookup table 36 is required.
- Node A looks up the table 36 to determine that the forwarding bitmask corresponding to node P is 010, that is, the bit string information is 010, and the forwarding bitmask corresponding to node C is 100, that is, the bit string information is 100.
- the node can encapsulate the header including the bit string information 010 (denoted as header 3) in the message A, and encapsulate the header including the bit string information 001 in the message B ( Recorded as head 4).
- header 3 is located on the outer layer of header 1.
- header 4 is located on the outer layer of header 2, so as to facilitate the forwarding of message A and message B.
- Node A can send message A to node P, and send message B to node C, so that node B can receive message A, and node C can receive message C.
- node A receives a message from another node (denoted as message X), and message X needs to be sent to virtual node D2 and virtual node D3, then the bit string information in message X can be Forwarding bitmask 001+forwarding bitmask 010 is 011.
- the node A looks up the table 34 according to the bit string information 011, and determines that the forwarding bitmask corresponding to the virtual node D2 is 010, and the forwarding bitmask corresponding to the virtual node D3 is 001.
- Node A can strip the bit string information 011 in the message X, and make two copies of the stripped message.
- node A can encapsulate the above header 1 and header 3 in one of the messages by looking up table 35 and table 36 to obtain message A, and encapsulate the above header 2 and header in another message 4.
- Obtain message B that is, node A generates message A and message B according to message X from the upstream node.
- the fifth node parses the fifth packet.
- the BIFT of the fifth network is stored on the fifth node.
- the fifth node parses the fifth message to obtain the bit string information of the fifth node and the bit string information of the fifth network.
- the fifth node may search the BIFT of the fifth network, and determine that the bit string information of the fifth network is recorded in the BIFT of the fifth network, but the bit string information of the fifth node is not recorded in the BIFT of the fifth network.
- the fifth node can strip the sixth header in the fifth message to obtain the fourth message, and then send the fourth message to the fifth network to realize the cross-network forwarding of the message, so that the forwarding is no longer restricted.
- the above table 34 is stored on the node B, after the node B receives the message A from the node P, the node B can look up the table 34, and the The header 3 is stripped to obtain message C (as shown in (c) in Figure 28). In this way, the node B can send the message C to the virtual node D2, so as to implement the cross-network forwarding of the message C.
- the above-mentioned table 34 is stored on the node C. After the node C receives the message B, the node C can strip the header 4 in the message B by looking up the table 34 to obtain the message D ((d ) shown). In this way, the node C can send the message D to the virtual node D3, so as to implement the cross-network forwarding of the message D.
- the fifth message since the fifth message encapsulates the bit string information of the fifth node, the fifth message can be forwarded across the network before being sent to the fifth network, for example, across the fifth network.
- the four networks forward to the fifth node, so that the forwarding is no longer restricted.
- each network element such as a node or entity, includes at least one of corresponding hardware structures and software modules for performing each function in order to realize the above functions.
- the present application can be implemented in the form of hardware or a combination of hardware and computer software in combination with the units and algorithm steps of each example described in the embodiments disclosed herein. Whether a certain function is executed by hardware or computer software drives hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be regarded as exceeding the scope of the present application.
- nodes or entities may be divided into functional units according to the above method examples.
- each functional unit may be divided corresponding to each function, or two or more functions may be integrated into one processing unit.
- the above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional units. It should be noted that the division of units in the embodiment of the present application is schematic, and is only a logical function division, and there may be another division manner in actual implementation.
- the communication method provided by the embodiment of the present application is described in detail above with reference to FIG. 8-FIG. 28 .
- the communication device for performing the communication method provided by the embodiment of the present application will be described in detail below with reference to FIG. 29 and FIG. 30 .
- FIG. 29 is a first schematic structural diagram of a communication device provided by an embodiment of the present application.
- a communication device 2900 includes: a transceiver module 2901 and a processing module 2902 .
- FIG. 29 shows only the main components of the communication device.
- the communication device 2900 may be the first node in the method shown in FIG. 8 .
- the transceiver module 2901 is configured to receive the first packet from the second node; the processing module 2902 is configured to parse the first packet.
- the first message includes: the multicast routing information of the second node, the first node is a child node of the second node in the multicast tree, and the multicast routing identifier of a node is used for the non-nodes of the node in the multicast tree.
- a leaf child node determines the multicast routing information of the non-leaf child node.
- the multicast routing information of a node includes: the multicast routing identifier of the node and the multicast routing information of the non-leaf child nodes of the node in the multicast tree .
- the first node is a non-leaf child node of the second node, and the processing module 2902 is also used to generate a second message according to the first message; the transceiver module 2901 is also used to send a message to the third node Send the second message.
- the second message includes: the multicast routing information of the first node, or the multicast routing information of the third node, and the multicast routing information of the first node includes any of the following items: the multicast routing identifier of the first node and The multicast routing information of the third node, the multicast routing identifier of the first node, or the multicast routing identifier of the first node and the multicast routing identifier of the third node.
- the processing module 2902 is further configured to determine the multicast routing information of the first node according to the multicast routing identifier of the second node; perform packet encapsulation according to the multicast routing information of the second node, and obtain the second packet .
- the processing module 2902 is also used for the first node to determine the multicast routing information of the first node according to the multicast routing identifier of the second node; according to the multicast routing identifier of the first node in the multicast routing information of the first node , determine the multicast routing information of the third node; perform packet encapsulation according to the multicast routing information of the third node, to obtain the second packet.
- the processing module 2902 is further configured to determine the position of the first node in the first node set according to the multicast routing identifier of the second node, and determine the position of the first node in the first node set according to the position of the first node in the first node set multicast routing information.
- the first node set is a node set corresponding to the second node, and the first node set includes some or all potential child nodes of the second node.
- the multicast routing identifier of the second node includes: N first fields, N is the number of nodes in the first node set, and the processing module 2902 is also used to determine the corresponding The position of the first field of , the position of the first field corresponding to the first node is used to indicate the position of the first node in the first node set.
- the multicast routing information of the second node also includes an addressing field of the second node.
- the processing module 2902 is further configured to determine the multicast routing information of the first node according to the multicast routing identifier of the second node and the addressing field of the second node.
- the addressing field of the second node is used to indicate the length of the multicast routing information of the child nodes of the second node.
- the addressing field of the second node is used to indicate the start position or end position of the multicast routing information of the child nodes of the second node.
- the addressing field of the second node includes: multiple delimiting fields, and the multicast routing information of the subnodes of the second node is separated by multiple delimiting fields.
- the first node and the third node are nodes in the first network.
- the second message also includes: a first header and a second header, the first header includes: the multicast routing information of the third node, or the multicast routing information of the first node, and the second header includes: the second Network unicast/multicast information.
- the first node has a correspondence relationship between the multicast routing identifier of the first node, or the multicast routing identifier of the third node, and the unicast/multicast information of the second network.
- the first node is a node in the second network.
- the first node is a leaf child node of the second node
- the processing module 2902 is also used to generate a third message according to the first message
- the transceiver module 2901 is also used to send a message to the first device Send the third message.
- the third packet includes: unicast/multicast information of the first device.
- the first packet includes a multicast routing identifier of the first node, and the multicast routing identifier of the first node is used to indicate that the destination device is the first device.
- the first node and the second node are nodes in the first network
- the first message further includes: a third header and a fourth header
- the third header includes:
- the fourth header includes: unicast/multicast information of the third network.
- the second node is a node in the third network.
- the unicast/multicast information includes any one of the following: Internet Protocol IP unicast/multicast information, MPLS label information, or bit string information.
- the transceiver module 2901 may also include a sending module and a receiving module.
- the sending module is used to realize the sending function of the communication device 2900
- the receiving module is used to realize the receiving function of the communication device 2900
- the communication device 2900 may further include a storage module (not shown in FIG. 29 ), where programs or instructions are stored in the storage module.
- the processing module 2902 executes the program or instruction
- the communication device 2900 can execute the function of the first node in the method shown in FIG. 8 .
- the processing module 2902 involved in the communication device 2900 may be implemented by a processor or a processor-related circuit component, and may be a processor or a processing unit;
- the transceiver module 2901 may be implemented by a transceiver or a transceiver-related circuit component, and may be a transceiver Transceiver or Transceiver Unit.
- the communication device 2900 may specifically be a terminal or a network device, a chip (system) or other components or components that may be installed in a terminal or a network device, or a device that includes a terminal or a network device. Applications are not limited to this.
- the communication device 2900 may be the second node in the method shown in FIG. 8 .
- the processing module 2902 is used to obtain the first message; the transceiver module 2901 is used to send the first message to the first node, and the first node is a child node of the second node in the multicast tree.
- the first message includes: the multicast routing information of the second node, the multicast routing identifier of a node is used for the non-leaf child node of the node in the multicast tree, and the multicast routing information of the non-leaf child node is determined
- the multicast routing information of a node includes: the multicast routing identifier of the node and the multicast routing information of the non-leaf child nodes of the node in the multicast tree;
- the first node and the second node are nodes in the first network
- the first message further includes: a third header and a fourth header
- the third header includes:
- the fourth header includes: unicast/multicast information of the third network.
- the second node is a node in the third network.
- the unicast/multicast information includes any one of the following: Internet Protocol IP unicast/multicast information, MPLS label information, or bit string information.
- the transceiver module 2901 may also include a sending module and a receiving module.
- the sending module is used to realize the sending function of the communication device 2900
- the receiving module is used to realize the receiving function of the communication device 2900
- the communication device 2900 may further include a storage module (not shown in FIG. 29 ), where programs or instructions are stored in the storage module.
- the processing module 2902 executes the program or instruction
- the communication device 2900 can execute the function of the second node in the method shown in FIG. 8 .
- the processing module 2902 involved in the communication device 2900 may be implemented by a processor or a processor-related circuit component, and may be a processor or a processing unit;
- the transceiver module 2901 may be implemented by a transceiver or a transceiver-related circuit component, and may be a transceiver Transceiver or Transceiver Unit.
- the communication device 2900 may specifically be a terminal or a network device, a chip (system) or other components or components that may be installed in a terminal or a network device, or a device that includes a terminal or a network device. Applications are not limited to this.
- the communication device 2900 may be the fourth node in the method shown in FIG. 26 .
- the transceiver module 2901 is configured to acquire the fourth packet; the processing module 2902 is configured to control the transceiver module 2901 to send the fifth packet to the fifth node according to the fourth packet.
- the fourth node is a node in the fourth network, and the fourth message includes: a fifth header, and the fifth header includes: bit string information of the fifth network; the fifth node is a node in the fourth network, and the fifth header includes: the bit string information of the fifth network;
- the fifth message includes: a fifth header and a sixth header, and the sixth header includes: bit string information of the fifth node.
- the fourth node is configured with the first entry and the second entry.
- the first entry includes: bit string information of the fifth network
- the second entry includes: bit string information of the fifth node.
- the processing module 2902 is further configured to encapsulate the sixth header on the fourth packet to obtain the fifth packet, so as to control the transceiver module 2901 to send the fifth packet to the fifth node.
- the transceiver module 2901 may also include a sending module and a receiving module.
- the sending module is used to realize the sending function of the communication device 2900
- the receiving module is used to realize the receiving function of the communication device 2900
- the communication device 2900 may further include a storage module (not shown in FIG. 29 ), where programs or instructions are stored in the storage module.
- the processing module 2902 executes the program or instruction
- the communication device 2900 can execute the function of the fourth node in the method shown in FIG. 26 .
- the processing module 2902 involved in the communication device 2900 may be implemented by a processor or a processor-related circuit component, and may be a processor or a processing unit;
- the transceiver module 2901 may be implemented by a transceiver or a transceiver-related circuit component, and may be a transceiver Transceiver or Transceiver Unit.
- the communication device 2900 may specifically be a terminal or a network device, a chip (system) or other components or components that may be installed in a terminal or a network device, or a device that includes a terminal or a network device. Applications are not limited to this.
- the communication device 2900 may be the fifth node in the method shown in FIG. 26 .
- the transceiver module 2901 is configured to receive the fifth packet from the fourth node; the processing module 2902 is configured to parse the fifth packet.
- the fourth node and the fifth node are nodes in the fourth network, the fourth message includes: the fifth header and the sixth header, the fifth header includes: bit string information of the fifth network, the sixth header Part includes: bit string information of the fifth node.
- the processing module 2902 is further configured to, after parsing the fifth packet, strip the sixth header in the fifth packet to obtain the fourth packet, thereby controlling the transceiver module 2901 to send The fifth network sends the fourth packet.
- the transceiver module 2901 may also include a sending module and a receiving module.
- the sending module is used to realize the sending function of the communication device 2900
- the receiving module is used to realize the receiving function of the communication device 2900
- the communication device 2900 may further include a storage module (not shown in FIG. 29 ), where programs or instructions are stored in the storage module.
- a storage module not shown in FIG. 29
- programs or instructions are stored in the storage module.
- the processing module 2902 executes the program or instruction
- the communication device 2900 can execute the function of the fifth node in the method shown in FIG. 26 .
- the processing module 2902 involved in the communication device 2900 may be implemented by a processor or a processor-related circuit component, and may be a processor or a processing unit;
- the transceiver module 2901 may be implemented by a transceiver or a transceiver-related circuit component, and may be a transceiver Transceiver or Transceiver Unit.
- the communication device 2900 may specifically be a terminal or a network device, a chip (system) or other components or components that may be installed in a terminal or a network device, or a device that includes a terminal or a network device. Applications are not limited to this.
- FIG. 30 is a second schematic structural diagram of a communication device provided in an embodiment of the present application.
- the communication device may be a terminal or a network device, or a chip (system) or other components or components that may be provided in the terminal or the network device.
- a communication device 3000 may include a processor 3001 .
- the communication device 3000 may further include a memory 3002 and/or a transceiver 3003 .
- the processor 3001 is coupled with the memory 3002 and the transceiver 3003, such as may be connected through a communication bus.
- the processor 3001 is the control center of the communication device 3000, and may be one processor, or may be a general term for multiple processing elements.
- the processor 3001 is one or more central processing units (central processing unit, CPU), may also be a specific integrated circuit (application specific integrated circuit, ASIC), or is configured to implement one or more An integrated circuit, for example: one or more microprocessors (digital signal processor, DSP), or, one or more field programmable gate arrays (field programmable gate array, FPGA).
- the processor 3001 may also be a logic circuit.
- the processor 3001 may execute the method described above in FIG. 8 or FIG. 26 by running or executing a software program stored in the memory 3002 and calling data stored in the memory 3002 .
- the processor 3001 may include one or more CPUs, such as CPU0 and CPU1 shown in FIG. 30 .
- the communication device 3000 may also include multiple processors, for example, the processor 3001 and the processor 3004 shown in FIG. 30 .
- processors can be a single-core processor (single-CPU) or a multi-core processor (multi-CPU).
- a processor herein may refer to one or more devices, circuits, and/or processing cores for processing data (eg, computer program instructions).
- the memory 3002 is used to store the software program for executing the solution of the present application, and the execution is controlled by the processor 3001.
- the specific implementation may refer to the above-mentioned method embodiments, which will not be repeated here.
- the memory 3002 may be a read-only memory (read-only memory, ROM) or other types of static storage devices that can store static information and instructions, or a random access memory (random access memory, RAM) that can store information and
- ROM read-only memory
- RAM random access memory
- Other types of dynamic storage devices for instructions can also be electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical discs storage, optical disc storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media, or other magnetic storage devices, or capable of carrying or storing desired program code in the form of instructions or data structures and any other medium that can be accessed by a computer, but is not limited to.
- the memory 3002 can be integrated with the processor 3001 or exist independently, and is coupled with the processor 3001 through an interface circuit (not shown in FIG. 30 ) of the communication device 3000 , which is not specifically limited in this embodiment of the
- the transceiver 3003 is used for communication with other communication devices.
- the communication apparatus 3000 is a terminal device, and the transceiver 3003 can be used to communicate with a network device, or communicate with another terminal device.
- the communication apparatus 3000 is a network device, and the transceiver 3003 may be used to communicate with a terminal device or communicate with another network device.
- the transceiver 3003 may include a receiver and a transmitter (not separately shown in FIG. 30 ). Wherein, the receiver is used to realize the receiving function, and the transmitter is used to realize the sending function.
- the transceiver 3003 may be integrated with the processor 3001, or may exist independently, and be coupled to the processor 3001 through an interface circuit (not shown in FIG. 30 ) of the communication device 3000, which is not made in this embodiment of the present application. Specific limits.
- the interface circuit may also be an input/output interface.
- the structure of the communication device 3000 shown in FIG. 30 does not constitute a limitation to the communication device, and an actual communication device may include more or less components than shown in the figure, or combine certain components, or Different component arrangements.
- An embodiment of the present application provides a communication system.
- the communication system includes the above-mentioned one or more terminals or network devices.
- the or network device is configured to execute the method described in FIG. 8 or FIG. 26 above.
- the processor in the embodiment of the present application may be a central processing unit (central processing unit, CPU), and the processor may also be other general-purpose processors, digital signal processors (digital signal processor, DSP), dedicated integrated Circuit (application specific integrated circuit, ASIC), off-the-shelf programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
- a general-purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like.
- the memory in the embodiments of the present application may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memories.
- the non-volatile memory can be read-only memory (read-only memory, ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically programmable Erases programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
- Volatile memory can be random access memory (RAM), which acts as external cache memory.
- RAM random access memory
- static random access memory static random access memory
- DRAM dynamic random access memory
- DRAM synchronous dynamic random access memory Access memory
- SDRAM synchronous dynamic random access memory
- double data rate synchronous dynamic random access memory double data rate SDRAM, DDR SDRAM
- enhanced synchronous dynamic random access memory enhanced SDRAM, ESDRAM
- serial link DRAM SLDRAM
- direct memory bus random access memory direct rambus RAM, DR RAM
- the above-mentioned embodiments may be implemented in whole or in part by software, hardware (such as circuits), firmware, or other arbitrary combinations.
- the above-described embodiments may be implemented in whole or in part in the form of computer program products.
- the computer program product comprises one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on the computer, the processes or functions according to the embodiments of the present application will be generated in whole or in part.
- the computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable devices.
- the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server, or data center Transmission to another website site, computer, server or data center by wired (such as infrared, wireless, microwave, etc.).
- the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center that includes one or more sets of available media.
- the available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media.
- the semiconductor medium may be a solid state drive.
- At least one means one or more, and “multiple” means two or more.
- At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items.
- at least one item (piece) of a, b, or c can represent: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c can be single or multiple .
- sequence numbers of the above-mentioned processes do not mean the order of execution, and the execution order of the processes should be determined by their functions and internal logic, and should not be used in the embodiments of the present application.
- the implementation process constitutes any limitation.
- the disclosed systems, devices and methods may be implemented in other ways.
- the device embodiments described above are only illustrative.
- the division of the units is only a logical function division. In actual implementation, there may be other division methods.
- multiple units or components can be combined or May be integrated into another system, or some features may be ignored, or not implemented.
- the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
- the functions described above are realized in the form of software function units and sold or used as independent products, they can be stored in a computer-readable storage medium.
- the technical solution of the present application is essentially 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, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disk or optical disc and other media that can store program codes. .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
| 节点索引 | 下一跳的地址 |
| 0 | 节点A的地址 |
| 1 | 节点B的地址 |
| 2 | 节点C的地址 |
| Idx字段 | 节点 |
| 10 | 节点A |
| 11 | 节点B |
| 01 | 节点C |
| 索引(bit) | 节点 |
| 1 | 节点A |
| 2 | 节点B |
| 3 | 节点C |
| 递归单元 | 递归单元的起始位置 | 递归单元的长度 |
| 递归单元0 | O 0 | O 1-O 0 |
| 递归单元1 | O 1 | O 2-O 1 |
| … | … | … |
| 递归单元M-1 | O M-1 | 第七字段指示 |
| Idx字段 | IP单播信息 | 端口 |
| 10 | 10.1.1.1 | 端口1 |
| 11 | 10.1.1.2 | 端口2 |
| 01 | 10.1.1.3 | 端口2 |
| 索引(bit) | IP单播信息 | 端口 |
| 1 | 10.1.1.1 | 端口1 |
| 2 | 10.1.1.2 | 端口2 |
| 3 | 10.1.1.3 | 端口2 |
| bit序列 | IP组播信息 | 端口 |
| 111 | 224.1.1.1 | 端口1、端口2 |
| 组标识 | IP组播信息 | 端口 |
| 标识4 | 224.1.1.1 | 端口1、端口2 |
| 标识5 | 224.1.1.2 | 端口2 |
| Idx字段 | IP单播信息 | 端口 |
| 1 | 10.1.1.4 | 端口1 |
| 0 | 10.1.1.5 | 端口2 |
| 索引(bit) | IP单播信息 | 端口 |
| 1 | 10.1.1.1 | 端口0 |
| 2 | 10.1.1.6 | 端口1 |
| 3 | 10.1.1.7 | 端口1 |
| 4 | 10.1.1.8 | 端口2 |
| Idx字段+X个Idx字段 | IP组播信息 | 端口 |
| 11 | 224.1.1.3 | 端口1 |
| bit序列 | IP组播信息 | 端口 |
| 01 | 224.1.1.3 | 端口1 |
| 组标识 | IP组播信息 | 端口 |
| 标识8 | 224.1.1.3 | 端口1 |
| 标识 | 转发位掩码 | 邻居设备 |
| 010 | 010 | D2 |
| 001 | 001 | D3 |
| 节点 | 节点 | 邻居设备 |
| D2 | B | 010 |
| D3 | C | 100 |
| 标识 | 转发位掩码 | 邻居设备 |
| 010 | 010 | P |
| 100 | 100 | C |
Claims (52)
- 一种通信方法,其特征在于,所述方法包括:第一节点接收来自第二节点的第一报文,其中,所述第一报文包括:所述第二节点的组播路由信息,所述第一节点为组播树中所述第二节点的子节点,一个节点的组播路由标识用于该节点在所述组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在所述组播树中的非叶子子节点的组播路由信息;所述第一节点解析所述第一报文。
- 根据权利要求1所述的方法,其特征在于,所述第一节点为所述第二节点的非叶子子节点,第三节点为所述第一节点的子节点,所述第一节点解析所述第一报文,包括:所述第一节点根据所述第一报文,生成第二报文,其中,所述第二报文包括:所述第一节点的组播路由信息,或者所述第三节点的组播路由信息,所述第一节点的组播路由信息包括如下任一项:第一节点的组播路由标识和所述第三节点的组播路由信息、所述第一节点的组播路由标识、或者所述第一节点的组播路由标识和第三节点的组播路由标识;在所述第一节点解析所述第一报文之后,所述方法还包括:所述第一节点向所述第三节点发送所述第二报文。
- 根据权利要求2所述的方法,其特征在于,所述第一节点根据所述第一报文,生成第二报文,包括:所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息;所述第一节点根据所述第二节点的组播路由信息进行报文封装,获得所述第二报文;或者,所述第一节点根据所述第一报文,生成第二报文,包括:所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息;所述第一节点根据所述第一节点的组播路由信息中所述第一节点的组播路由标识,确定所述第三节点的组播路由信息;所述第一节点根据所述第三节点的组播路由信息进行报文封装,获得所述第二报文。
- 根据权利要求3所述的方法,其特征在于,所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息,包括:所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点在第一节点集合内的位置,所述第一节点集合为所述第二节点对应的节点集合,所述第一节点集合包括所述第二节点的部分或全部潜在子节点;所述第一节点根据所述第一节点在第一节点集合内的位置,确定所述第一节点的组播路由信息。
- 根据权利要求4所述的方法,其特征在于,所述第二节点的组播路由标识包 括:N个第一字段,N为所述第一节点集合中的节点个数,所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点在第一节点集合内的位置,包括:所述第一节点在所述N个第一字段中确定所述第一节点对应的第一字段的位置,所述第一节点对应的第一字段的位置用于表示所述第一节点在第一节点集合内的位置。
- 根据权利要求3所述的方法,其特征在于,所述第二节点的组播路由信息还包括所述第二节点的寻址字段,所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息,包括:所述第一节点根据所述第二节点的组播路由标识,以及所述第二节点的寻址字段,确定所述第一节点的组播路由信息。
- 根据权利要求6所述的方法,其特征在于,所述第二节点的寻址字段用于指示所述第二节点的子节点的组播路由信息的长度;或者,所述第二节点的寻址字段用于指示所述第二节点的子节点的组播路由信息的起始位置或结束位置;或者,所述第二节点的寻址字段包括:多个定界字段,所述第二节点的子节点的组播路由信息由所述多个定界字段分隔开。
- 根据权利要求2-7中任一项所述的方法,其特征在于,所述第一节点和所述第三节点为第一网络内的节点,所述第二报文还包括:第一头部和第二头部,所述第一头部包括:所述第三节点的组播路由信息,或者所述第一节点的组播路由信息,所述第二头部包括:第二网络的单播/组播信息。
- 根据权利要求8所述的方法,其特征在于,所述第一节点有所述第一节点的组播路由标识,或所述第三节点的组播路由标识,与所述第二网络的单播/组播信息的对应关系。
- 根据权利要求8或9所述的方法,其特征在于,所述第一节点为所述第二网络内的节点。
- 根据权利要求1所述的方法,其特征在于,所述第一节点为所述第二节点的叶子子节点,所述第一节点解析所述第一报文,包括:所述第一节点根据所述第一报文,生成第三报文,其中,所述第三报文包括:第一设备的单播/组播信息;在所述第一节点解析所述第一报文之后,所述方法还包括:所述第一节点向所述第一设备发送第三报文。
- 根据权利要求11所述的方法,其特征在于,所述第一报文包括所述第一节点的组播路由标识,所述第一节点的组播路由标识用于指示目的设备为所述第一设备。
- 根据权利要求1-12中任一项所述的方法,其特征在于,所述第一节点和所述第二节点为第一网络内的节点,所述第一报文还包括:第三头部和第四头部,所述第三头部包括:所述第二节点的组播路由信息,所述第四头部包括:第三网络的单播/组播信息。
- 根据权利要求13所述的方法,其特征在于,所述第二节点为所述第三网络内的节点。
- 根据权利要求8-14中任一项所述的方法,其特征在于,所述单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
- 一种通信方法,其特征在于,所述方法包括:第二节点获取第一报文,所述第一报文包括:所述第二节点的组播路由信息,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在所述组播树中的非叶子子节点的组播路由信息;所述第二节点向第一节点发送所述第一报文,所述第一节点为所述组播树中所述第二节点的子节点。
- 根据权利要求16所述的方法,其特征在于,所述第一节点和所述第二节点为第一网络内的节点,所述第一报文还包括:第三头部和第四头部,所述第三头部包括:所述第二节点的组播路由信息,所述第四头部包括:第三网络的单播/组播信息。
- 根据权利要求17所述的方法,其特征在于,所述第二节点为所述第三网络内的节点。
- 根据权利要求16-18中任一项所述的方法,其特征在于,所述单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
- 一种通信方法,其特征在于,所述方法包括:第四节点获取第四报文,其中,所述第四节点为第四网络内的节点,所述第四报文包括:第五头部,所述第五头部包括:第五网络的位串信息;所述第四节点根据所述第四报文,向第五节点发送第五报文,其中,所述第五报文包括:所述第五头部和第六头部,第六头部包括:第五节点的位串信息。
- 根据权利要求20所述的方法,其特征在于,所述第四节点配置有第一表项,以及第二表项,其中,所述第一表项包括:所述第五网络的位串信息,所述第二表项包括:所述第五节点的串位信息。
- 根据权利要求20所述的方法,其特征在于,所述第四节点根据所述第四报文,向第五节点发送第五报文,包括:所述第四节点在所述第四报文上封装所述第六头部,获得所述第五报文;所述第四节点向所述第五节点发送所述第五报文。
- 一种通信方法,其特征在于,所述方法包括:第五节点接收来自第四节点的第五报文,其中,所述第四节点和所述第五节点为第四网络内的节点,所述第五报文包括:第五头部和第六头部,所述第五头部包括:所述第五网络的位串信息,所述第六头部包括:所述第五节点的位串信息;所述第五节点解析所述第五报文。
- 根据权利要求23所述的方法,其特征在于,在所述第五节点解析所述第五报文之后,所述方法还包括:所述第五节点剥除所述第五报文中的所述第六头部,获得第四报文;所述第五节点向所述第五网络发送所述第四报文。
- 一种第一节点,其特征在于,包括:收发模块和处理模块,其中,所述收发模块,用于接收来自第二节点的第一报文,其中,所述第一报文包括:所述第二节点的组播路由信息,所述第一节点为组播树中所述第二节点的子节点,一个节点的组播路由标识用于该节点在所述组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在所述组播树中的非叶子子节点的组播路由信息;所述处理模块,用于解析所述第一报文。
- 根据权利要求25所述的节点,其特征在于,所述第一节点为所述第二节点的非叶子子节点,所述处理模块,还用于根据所述第一报文,生成第二报文,其中,所述第二报文包括:所述第一节点的组播路由信息,或者所述第三节点的组播路由信息,所述第一节点的组播路由信息包括如下任一项:第一节点的组播路由标识和所述第三节点的组播路由信息、所述第一节点的组播路由标识、或者所述第一节点的组播路由标识和第三节点的组播路由标识;所述收发模块,还用于向所述第三节点发送所述第二报文。
- 根据权利要求26所述的节点,其特征在于,所述处理模块,还用于根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息;根据所述第二节点的组播路由信息进行报文封装,获得所述第二报文;或者,所述处理模块,还用于所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息;根据所述第一节点的组播路由信息中所述第一节点的组播路由标识,确定所述第三节点的组播路由信息;根据所述第三节点的组播路由信息进行报文封装,获得所述第二报文。
- 根据权利要求27所述的节点,其特征在于,所述处理模块,还用于根据所述第二节点的组播路由标识,确定所述第一节点在第一节点集合内的位置,根据所述第一节点在第一节点集合内的位置,确定所述第一节点的组播路由信息,所述第一节点集合为所述第二节点对应的节点集合,所述第一节点集合包括所述第二节点的部分或全部潜在子节点。
- 根据权利要求28所述的节点,其特征在于,所述第二节点的组播路由标识包括:N个第一字段,N为所述第一节点集合中的节点个数,所述处理模块,还用于在所述N个第一字段中确定所述第一节点对应的第一字段的位置,所述第一节点对应的第一字段的位置用于表示所述第一节点在第一节点集合内的位置。
- 根据权利要求27所述的节点,其特征在于,所述第二节点的组播路由信息还包括所述第二节点的寻址字段,所述处理模块,还用于根据所述第二节点的组播路由标识,以及所述第二节点的寻址字段,确定所述第一节点的组播路由信息。
- 根据权利要求30所述的节点,其特征在于,所述第二节点的寻址字段用于指示所述第二节点的子节点的组播路由信息的长度;或者,所述第二节点的寻址字段用于指示所述第二节点的子节点的组播路由信息的起始位置或结束位置;或者,所述第二节点的寻址字段包括:多个定界字段,所述第二节点的子节点的组播路由信息由所述多个定界字段分隔开。
- 根据权利要求26-31中任一项所述的节点,其特征在于,所述第一节点和所述第三节点为第一网络内的节点,所述第二报文还包括:第一头部和第二头部,所述第一头部包括:所述第三节点的组播路由信息,或者所述第一节点的组播路由信息,所述第二头部包括:第二网络的单播/组播信息。
- 根据权利要求32所述的节点,其特征在于,所述第一节点有所述第一节点的组播路由标识,或所述第三节点的组播路由标识,与所述第二网络的单播/组播信息的对应关系。
- 根据权利要求32或33所述的节点,其特征在于,所述第一节点为所述第二网络内的节点。
- 根据权利要求25所述的节点,其特征在于,所述第一节点为所述第二节点的叶子子节点,所述处理模块,还用于根据所述第一报文,生成第三报文,其中,所述第三报文包括:第一设备的单播/组播信息;所述收发模块,还用于向所述第一设备发送第三报文。
- 根据权利要求35所述的节点,其特征在于,所述第一报文包括所述第一节点的组播路由标识,所述第一节点的组播路由标识用于指示目的设备为所述第一设备。
- 根据权利要求25-36中任一项所述的节点,其特征在于,所述第一节点和所述第二节点为第一网络内的节点,所述第一报文还包括:第三头部和第四头部,所述第三头部包括:所述第二节点的组播路由信息,所述第四头部包括:第三网络的单播/组播信息。
- 根据权利要求37所述的节点,其特征在于,所述第二节点为所述第三网络内的节点。
- 根据权利要求32-38中任一项所述的节点,其特征在于,所述单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
- 一种第二节点,其特征在于,包括:处理模块和收发模块,其中,所述处理模块,用于获取第一报文,所述第一报文包括:所述第二节点的组播路由信息,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在所述组播树中的非叶子子节点的组播路由信息;所述收发模块,用于向第一节点发送所述第一报文,所述第一节点为所述组播树中所述第二节点的子节点。
- 根据权利要求40所述的节点,其特征在于,所述第一节点和所述第二节点为第一网络内的节点,所述第一报文还包括:第三头部和第四头部,所述第三头部包括:所述第二节点的组播路由信息,所述第四头部包括:第三网络的单播/组播信息。
- 根据权利要求41所述的节点,其特征在于,所述第二节点为所述第三网络内的节点。
- 根据权利要求40-42中任一项所述的节点,其特征在于,所述单播/组播信息 包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
- 一种第四节点,其特征在于,包括:处理模块和收发模块,其中,所述收发模块,用于获取第四报文,其中,所述第四节点为第四网络内的节点,所述第四报文包括:第五头部,所述第五头部包括:第五网络的位串信息;所述处理模块,用于根据所述第四报文,控制所述收发模块向第五节点发送第五报文,其中,所述第五节点为所述第四网络内的节点,所述第五报文包括:所述第五头部和第六头部,所述第六头部包括:所述第五节点的位串信息。
- 根据权利要求44所述的节点,其特征在于,所述第四节点配置有第一表项,以及第二表项,其中,所述第一表项包括:所述第五网络的位串信息,所述第二表项包括:所述第五节点的串位信息。
- 根据权利要求44所述的节点,其特征在于,所述处理模块,还用于在所述第四报文上封装第六头部,获得所述第五报文,以及,所述处理模块,还用于控制所述收发模块向所述第五节点发送所述第五报文。
- 一种第五节点,其特征在于,包括:处理模块和收发模块,其中,所述收发模块,用于接收来自第四节点的第五报文,其中,所述第四节点和所述第五节点为第四网络内的节点,所述第五报文包括:第五头部和第六头部,第五头部包括:第五网络的位串信息,第六头部包括:第五节点的位串信息所述处理模块,用于解析所述第五报文。
- 根据权利要求47所述的节点,其特征在于,所述处理模块,还用于在解析所述第五报文之后,剥除所述第五报文中的第六头部,获得第四报文,以及,所述处理模块,还用于控制所述收发模块向所述第五网络发送所述第四报文。
- 一种通信装置,其特征在于,该装置包括:处理器和存储器,存储器用于存储计算机程序,当处理器执行该程序时,使得如权利要求1-15中任一项所述的方法被执行,或者如权利要求16-19中任一项所述的方法被执行,或者如权利要求20-22中任一项所述的方法被执行,或者如权利要求23或24所述的方法被执行。
- 一种通信系统,其特征在于,所述通信系统包括:如权利要求16-39中任一项所述的第一节点、如权利要求40-43中任一项所述的第二节点、如权利要求44-46中任一项所述的第四节点、或如权利要求47或48所述的第五节点。
- 一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序,当所述计算机程序在计算机上运行时,使得如权利要求1-15中任一项所述的方法被执行,或者如权利要求16-19中任一项所述的方法被执行,或者如权利要求20-22中任一项所述的方法被执行,或者如权利要求23或24所述的方法被执行。
- 一种计算机可读存储介质,其特征在于,包括:计算机程序;当所述计算机程序在计算机上运行时,使得如权利要求1-15中任一项所述的方法被执行,或者如权利要求16-19中任一项所述的方法被执行,或者如权利要求20-22中任一项所述的方法被执行,或者如权利要求23或24所述的方法被执行。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22860517.6A EP4380129B1 (en) | 2021-08-24 | 2022-08-23 | Communication method and device |
| US18/584,358 US20240195729A1 (en) | 2021-08-24 | 2024-02-22 | Communication method and apparatus |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110977642.7A CN115733796B (zh) | 2021-08-24 | 2021-08-24 | 通信方法及装置 |
| CN202110977642.7 | 2021-08-24 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/584,358 Continuation US20240195729A1 (en) | 2021-08-24 | 2024-02-22 | Communication method and apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023025171A1 true WO2023025171A1 (zh) | 2023-03-02 |
Family
ID=85289547
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/114357 Ceased WO2023025171A1 (zh) | 2021-08-24 | 2022-08-23 | 通信方法及装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240195729A1 (zh) |
| EP (1) | EP4380129B1 (zh) |
| CN (1) | CN115733796B (zh) |
| WO (1) | WO2023025171A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116436996B (zh) * | 2023-04-06 | 2026-03-27 | 四川灵通电讯有限公司 | 在跨有线和无线组网通信场景中隐藏对等实体通信的方法 |
| CN120050225A (zh) * | 2023-11-24 | 2025-05-27 | 中兴通讯股份有限公司 | 报文处理方法、电子设备和存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101534205A (zh) * | 2008-03-11 | 2009-09-16 | 中国网通集团宽带业务应用国家工程实验室有限公司 | 应用层组播业务实现方法、终端和系统 |
| US20150049760A1 (en) * | 2013-08-15 | 2015-02-19 | Verizon Patent And Licensing Inc. | Source routing in multicast transmissions |
| US20180091473A1 (en) * | 2016-09-23 | 2018-03-29 | Cisco Technology, Inc. | Unicast media replication fabric using bit indexed explicit replication |
| CN112422438A (zh) * | 2018-03-02 | 2021-02-26 | 华为技术有限公司 | 一种处理组播报文的方法及装置 |
| CN112511444A (zh) * | 2020-04-03 | 2021-03-16 | 中兴通讯股份有限公司 | 一种组播流量传输方法、装置、通信节点及存储介质 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100693043B1 (ko) * | 2004-11-26 | 2007-03-12 | 삼성전자주식회사 | 캡슐화와 유니 캐스트 라우팅을 이용하는 디프 서브에서의멀티 캐스트 시스템 및 방법 |
| FR2978003B1 (fr) * | 2011-07-11 | 2014-07-04 | Commissariat Energie Atomique | Procede de routage d'un flux en mode non-stockage |
| CN104717143B (zh) * | 2015-03-12 | 2018-03-02 | 华为技术有限公司 | 用于多归场景组播数据传输的方法及设备 |
| CN106603407B (zh) * | 2015-10-16 | 2020-10-27 | 中兴通讯股份有限公司 | 组播地址的传输方法和装置 |
| CN109075984B (zh) * | 2016-03-28 | 2021-06-01 | 瑞典爱立信有限公司 | 计算的spring组播的多点到多点树 |
| US20180367456A1 (en) * | 2017-06-20 | 2018-12-20 | Cisco Technology, Inc. | System and method to facilitate packet forwarding using stateful bit index explicit replication (bier) in a networking environment |
| CN110278156B (zh) * | 2018-03-14 | 2020-12-22 | 华为技术有限公司 | 组播路由处理方法、网络设备以及路由反射器 |
| CN110401599B (zh) * | 2018-04-25 | 2022-08-02 | 中兴通讯股份有限公司 | 数据包的处理方法及装置、存储介质、电子装置 |
-
2021
- 2021-08-24 CN CN202110977642.7A patent/CN115733796B/zh active Active
-
2022
- 2022-08-23 WO PCT/CN2022/114357 patent/WO2023025171A1/zh not_active Ceased
- 2022-08-23 EP EP22860517.6A patent/EP4380129B1/en active Active
-
2024
- 2024-02-22 US US18/584,358 patent/US20240195729A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101534205A (zh) * | 2008-03-11 | 2009-09-16 | 中国网通集团宽带业务应用国家工程实验室有限公司 | 应用层组播业务实现方法、终端和系统 |
| US20150049760A1 (en) * | 2013-08-15 | 2015-02-19 | Verizon Patent And Licensing Inc. | Source routing in multicast transmissions |
| US20180091473A1 (en) * | 2016-09-23 | 2018-03-29 | Cisco Technology, Inc. | Unicast media replication fabric using bit indexed explicit replication |
| CN112422438A (zh) * | 2018-03-02 | 2021-02-26 | 华为技术有限公司 | 一种处理组播报文的方法及装置 |
| CN112511444A (zh) * | 2020-04-03 | 2021-03-16 | 中兴通讯股份有限公司 | 一种组播流量传输方法、装置、通信节点及存储介质 |
Non-Patent Citations (2)
| Title |
|---|
| MARIO KOLBERG ; JOHN BUFORD: "Application Layer Multicast extensions to RELOAD", CONSUMER COMMUNICATIONS AND NETWORKING CONFERENCE (CCNC), 2011 IEEE, IEEE, 9 January 2011 (2011-01-09), pages 1083 - 1087, XP031865847, ISBN: 978-1-4244-8789-9, DOI: 10.1109/CCNC.2011.5766334 * |
| See also references of EP4380129A4 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20240195729A1 (en) | 2024-06-13 |
| EP4380129A1 (en) | 2024-06-05 |
| EP4380129B1 (en) | 2025-10-01 |
| EP4380129A4 (en) | 2024-11-13 |
| CN115733796B (zh) | 2025-07-11 |
| CN115733796A (zh) | 2023-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7208386B2 (ja) | パケット転送方法、パケット送信装置、およびパケット受信装置 | |
| CN106059924B (zh) | 一种管理信息的方法,装置及系统 | |
| CN110460522B (zh) | 组播数据传输方法、相关装置及系统 | |
| CN107770073B (zh) | 一种信息同步的方法,装置及系统 | |
| EP3896923A1 (en) | Bier packet sending method and apparatus | |
| CN106603407B (zh) | 组播地址的传输方法和装置 | |
| CN113726667B (zh) | 一种反向路径转发rpf检查方法及装置 | |
| CN108964940B (zh) | 消息发送方法及装置、存储介质 | |
| WO2019184752A1 (zh) | 网络设备的管理方法、装置及系统 | |
| CN114553638A (zh) | 一种通信方法、设备和系统 | |
| WO2018072704A1 (zh) | 报文传输方法、装置、节点和计算机存储介质 | |
| CN116094987B (zh) | 转发路径的确定方法及装置 | |
| CN112787934B (zh) | 位索引显式复制网络中负载分担的方法、装置及设备 | |
| US10749703B2 (en) | Information processing method and device, and computer storage medium | |
| US20240064098A1 (en) | Multicast Packet Sending Method and Apparatus | |
| CN114465946B (zh) | 获取转发表项的方法、装置以及系统 | |
| US20240195729A1 (en) | Communication method and apparatus | |
| CN112187648A (zh) | 组播报文转发方法及装置 | |
| WO2024016869A1 (zh) | 一种组播配置方法及装置 | |
| JP7528373B2 (ja) | パケット送信方法、対応関係取得方法、装置、およびシステム | |
| CN116723144B (zh) | 组播业务数据传输方法及装置 | |
| JP7843868B2 (ja) | マルチキャスト情報転送方法、装置、マルチキャスト情報集約ノードおよび媒体 | |
| CN117478503A (zh) | 一种组播配置方法及装置 | |
| US20250219929A1 (en) | Efficient multicast traffic distribution in an overlay network using underlay multicast distribution | |
| WO2025260800A1 (zh) | 一种组播路由传递方法、路由节点和路由设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22860517 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2022860517 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2022860517 Country of ref document: EP Effective date: 20240228 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWG | Wipo information: grant in national office |
Ref document number: 2022860517 Country of ref document: EP |




















