WO2023025171A1 - 通信方法及装置 - Google Patents

通信方法及装置 Download PDF

Info

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
Application number
PCT/CN2022/114357
Other languages
English (en)
French (fr)
Inventor
孟锐
万俊杰
王闯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to EP22860517.6A priority Critical patent/EP4380129B1/en
Publication of WO2023025171A1 publication Critical patent/WO2023025171A1/zh
Priority to US18/584,358 priority patent/US20240195729A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing 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

通信方法及装置
本申请要求于2021年8月24日提交国家知识产权局、申请号为202110977642.7、申请名称为“通信方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及一种通信方法及装置。
背景技术
组播(multicast)是指一个发送端把携带相同数据的报文发送给多个特定的接收端。最初的实现是发送端把一个报文中的数据按照接收端的数量拷贝成多份,分别进行封装发送给各个接收端,这种做法导致了报文在某些链路上重复传输,降低了网络资源的利用率,增加了网络拥塞的可能。
为了解决上述问题,业界提出了一系列组播技术,最典型的有稀疏模式协议无关组播(protocol independent multicast-sparse mode,PIM-SM)。其中,PIM-SM需要在网络中为每条组播流维护多播转发信息库(multicast forwarding information base,MFIB)表,有严重的可扩展性问题。
发明内容
本申请实施例提供一种通信方法及装置,用于提高报文的可扩展性。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种通信方法。该方法包括:第一节点接收来自第二节点的第一报文,并解析第一报文。该第一报文包括:第二节点的组播路由信息,第一节点为组播树中第二节点的子节点。其中,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在组播树中的非叶子子节点的组播路由信息。
基于第一方面所述的方法可知,1)将组播路由信息嵌入到报文,比如第一报文中,报文中包括的树形递归结构的组播路由信息,可以描述某个组播树或组播树的子树的报文转发信息,可扩展性好,并且根据需要可以方便的进行转发路径的规划和指定。2)一个节点发往每个子节点的报文内的树形递归结构都相同,比如都是第二节点的组播路由信息的树形递归结构,使得该节点在对应的每个出端口可以只发送一份报文,以避免出现冗余报文,提高通信效率。3)每个非叶子子节点的组播路由信息无需上游节点,比如第二节点确定,而可以由该非叶子子节点自行确定,从而可以节约上游节点的处理资源,提高运行效率。
一种可能的设计方案中,第一节点为第二节点的非叶子子节点,第三节点为第一节点的子节点,第一节点解析第一报文,包括:第一节点根据第一报文,生成第二报文。其中,第二报文包括:第一节点的组播路由信息,或者第三节点的组播路由信息,第一节点的组播路由信息包括如下任一项:第一节点的组播路由标识和第三节点 的组播路由信息、第一节点的组播路由标识、或者第一节点的组播路由标识和第三节点的组播路由标识。如此,在第一节点解析第一报文之后,第一方面所述的方法还可以包括:第一节点向第三节点发送第二报文。可以看出,第一节点可以较为灵活地处理第一报文。比如,如果第三节点支持由第三节点自行确定第三节点的组播路由信息,则第一节点可以执行与第二节点类似的操作,即向第三节点发送包含第一节点的组播路由信息的第二报文,以避免出现冗余报文,并节约第一节点的处理资源,提高运行效率。但是,如果第三节点不支持由第三节点自行确定第三节点的组播路由信息,则第一节点可以在确定第一节点的组播路由信息的基础上,进一步确定第三节点的组播路由信息,向第三节点发送只包含第三节点的组播路由信息的第二报文,保证第三节点可以正常处理第二报文,保证通信的可靠性。
可选地,第一节点根据第一报文,生成第二报文,可以包括:第一节点根据第二节点的组播路由标识,确定第一节点的组播路由信息;根据第二节点的组播路由信息进行报文封装,获得第二报文。或者,第一节点根据第一报文,生成第二报文,还可以包括:第一节点根据第二节点的组播路由标识,确定第一节点的组播路由信息;并根据第一节点的组播路由信息中第一节点的组播路由标识,确定第三节点的组播路由信息;再根据第三节点的组播路由信息进行报文封装,获得第二报文。
进一步地,第一节点根据第二节点的组播路由标识,确定第一节点的组播路由信息,可以包括:第一节点根据第二节点的组播路由标识,确定第一节点在第一节点集合内的位置,第一节点集合为第二节点对应的节点集合,第一节点集合包括第二节点的部分或全部潜在子节点;第一节点根据第一节点在第一节点集合内的位置,确定第一节点的组播路由信息。
进一步地,第二节点的组播路由标识包括:N个第一字段,N为第一节点集合中的节点个数,第一节点根据第二节点的组播路由标识,确定第一节点在第一节点集合内的位置,包括:第一节点在N个第一字段中确定第一节点对应的第一字段的位置,第一节点对应的第一字段的位置用于表示第一节点在第一节点集合内的位置。
进一步地,第二节点的组播路由信息还包括第二节点的寻址字段,第一节点根据第二节点的组播路由标识,确定第一节点的组播路由信息,可以包括:第一节点根据第二节点的组播路由标识,以及第二节点的寻址字段,确定第一节点的组播路由信息。
可以理解,如果第二节点的每个非叶子子节点的组播路由信息长度相同,则第一节点只根据第一节点在第一节点集合内的位置,也能够确定第一节点的组播路由信息。这种情况下,第二节点的组播路由信息可以不包括第二节点的寻址字段,以节约通信开销,提高通信效率。但是,如果第二节点的组播路由信息包括第二节点的寻址字段,则无论第二节点的每个非叶子子节点的组播路由信息是否长度相同,第一节点都能够确定第一节点的组播路由信息,使得每个非叶子子节点的组播路由信息的长度可以灵活设置,以适用更多场景。
进一步地,第二节点的寻址字段用于指示第二节点的子节点的组播路由信息的长度,如此可以节约寻址字段的比特(bit)开销,提高通信效率。或者,第二节点的寻址字段用于指示第二节点的子节点的组播路由信息的起始位置或结束位置,以便第一 节点快速确定第一节点的组播路由信息,提高组播效率。或者,第二节点的寻址字段包括:多个定界字段,第二节点的子节点的组播路由信息由多个定界字段分隔开。
可选地,第一节点和第三节点为第一网络内的节点,第二报文还包括:第一头部和第二头部,第一头部包括:第三节点的组播路由信息,或者第一节点的组播路由信息,第二头部包括:第二网络的单播/组播信息。其中,从报文转发角度而言,通过封装单播/组播信息,可以实现第二报文的跨网络转发,使得转发不再受限。从设备部署角度而言,支持组播路由信息转发的节点(以下称为新组播节点),也即第一节点和第三节点,与只支持单播/组播信息转发的节点(以下称为普通节点)可以混合部署,比如新组播节点可以插花式的小批量部署在普通节点中,从而可以降低新组播节点的部署数量,以降低部署难度和部署成本。
进一步地,第一节点有第一节点的组播路由标识,或第三节点的组播路由标识,与第二网络的单播/组播信息的对应关系。
进一步地,第一节点为第二网络内的节点,也就是说,第一节点既是支持组播路由信息转发的新组播节点,又是支持单播/组播信息转发的普通节点。因此,在部署时,可以通过在普通节点上使能新组播,使得普通节点成为支持组播路由信息转发的新组播节点,从而无需单独部署新组播节点,以进一步降低部署成本。
另一种可能的设计方案中,第一节点为第二节点的叶子子节点,第一节点解析第一报文,可以包括:第一节点根据第一报文,生成第三报文,其中,第三报文包括:第一设备的单播/组播信息。如此,在第一节点解析第一报文之后,第一方面所述的方法还可以包括:第一节点向第一设备发送第三报文。
可选地,第一报文包括第一节点的组播路由标识,第一节点的组播路由标识用于指示目的设备为第一设备,使得第一节点仅根据第一节点的组播路由标识,便可确定需要向第一设备发送第三报文,无需拆封第一报文的内层头部,从而可以提高处理效率。
一种可能的设计方案中,第一节点和第二节点为第一网络内的节点,第一报文还包括:第三头部和第四头部,第三头部包括:第二节点的组播路由信息,第四头部包括:第三网络的单播/组播信息。其中,从报文转发角度而言,通过封装单播/组播信息,可以实现第一报文的跨网络转发,使得转发不再受限。从设备部署角度而言,新组播节点,也即第一节点和第二节点,与普通节点可以混合部署,比如新组播节点可以插花式的小批量部署在普通节点中,从而可以降低新组播节点的部署数量,以降低部署难度和部署成本。
可选地,第二节点为第三网络内的节点,也就是说,第二节点既是支持组播路由信息转发的新组播节点,又是支持单播/组播信息转发的普通节点。因此,在部署时,可以通过在普通节点上使能新组播,使得普通节点成为支持组播路由信息转发的新组播节点,从而无需单独部署新组播节点,以进一步降低部署成本。
一种可能的设计方案中,单播/组播信息可以包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息,以适用更多场景。
第二方面,提供一种通信方法。该方法包括:第二节点获取第一报文,并向第一节点发送第一报文。其中,第一节点为组播树中第二节点的子节点,第一报文包括: 第二节点的组播路由信息,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在组播树中的非叶子子节点的组播路由信息。
一种可能的设计方案中,第一节点和第二节点为第一网络内的节点,第一报文还可以包括:第三头部和第四头部,第三头部包括:第二节点的组播路由信息,第四头部包括:第三网络的单播/组播信息。
可选地,第二节点为第三网络内的节点。
可选地,单播/组播信息可以包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
此外,第二方面所述的方法的技术效果可以参考第一方面所述的方法的技术效果,此处不再赘述。
第三方面,提供一种通信方法。该方法包括:第四节点获取第四报文,并根据第四报文,向第五节点发送第五报文。其中,第四节点为第四网络内的节点,第四报文包括:第五头部,第五头部包括:第五网络的位串信息;第五节点为第四网络内的节点,第五报文包括:第五头部和第六头部,第六头部包括:第五节点的位串信息。
基于第三方面所述的方法可知,由于第五报文内封装有第五节点的位串信息,使得第五报文在发往第五网络之前,可以先跨网络转发,比如跨第四网络向第五节点转发,使得转发不再受限。
一种可能的设计方案中,第四节点配置有第一表项,以及第二表项。其中,第一表项包括:第五网络的位串信息,第二表项包括:第五节点的串位信息,以便第四节点通过遍历表项,可以准确地确定第五节点的串位信息。
一种可能的设计方案中,第四节点根据第四报文,向第五节点发送第五报文,包括:第四节点在第四报文上封装第六头部,以获得第五报文,从而向第五节点发送第五报文。
第四方面,提供一种通信方法。该方法包括:第五节点接收来自第四节点的第五报文,并解析第五报文。其中,第四节点和第五节点为第四网络内的节点,第四报文包括:第五头部和第六头部,第五头部包括:第五网络的位串信息,第六头部包括:第五节点的位串信息。
一种可能的设计方案中,在第五节点解析第五报文之后,第四方面所述的方法还可以包括:第五节点剥除第五报文中的第六头部获得第四报文,向第五网络发送第四报文,以实现报文的跨网络转发,使得转发不再受限。
此外,第四方面所述的方法的技术效果可以参考第三方面所述的方法的技术效果,此处不再赘述。
第五方面,提供一种第一节点。该第一节点包括:收发模块和处理模块。其中,收发模块,用于接收来自第二节点的第一报文;处理模块,用于解析第一报文。其中,第一报文包括:第二节点的组播路由信息,第一节点为组播树中第二节点的子节点,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在组播树中的非叶子子节点的组播路由信息。
一种可能的设计方案中,第一节点为第二节点的非叶子子节点,处理模块,还用于根据第一报文生成第二报文;收发模块,还用于向第三节点发送第二报文。其中,第二报文包括:第一节点的组播路由信息,或者第三节点的组播路由信息,第一节点的组播路由信息包括如下任一项:第一节点的组播路由标识和第三节点的组播路由信息、第一节点的组播路由标识、或者第一节点的组播路由标识和第三节点的组播路由标识。
可选地,处理模块,还用于根据第二节点的组播路由标识,确定第一节点的组播路由信息;根据第二节点的组播路由信息进行报文封装,获得第二报文。或者,处理模块,还用于第一节点根据第二节点的组播路由标识,确定第一节点的组播路由信息;根据第一节点的组播路由信息中第一节点的组播路由标识,确定第三节点的组播路由信息;根据第三节点的组播路由信息进行报文封装,获得第二报文。
进一步地,处理模块,还用于根据第二节点的组播路由标识,确定第一节点在第一节点集合内的位置,根据第一节点在第一节点集合内的位置,确定第一节点的组播路由信息。其中,第一节点集合为第二节点对应的节点集合,第一节点集合包括第二节点的部分或全部潜在子节点。
进一步地,第二节点的组播路由标识包括:N个第一字段,N为第一节点集合中的节点个数,处理模块,还用于在N个第一字段中确定第一节点对应的第一字段的位置,第一节点对应的第一字段的位置用于表示第一节点在第一节点集合内的位置。
进一步地,第二节点的组播路由信息还包括第二节点的寻址字段。处理模块,还用于根据第二节点的组播路由标识,以及第二节点的寻址字段,确定第一节点的组播路由信息。
进一步地,第二节点的寻址字段用于指示第二节点的子节点的组播路由信息的长度。或者,第二节点的寻址字段用于指示第二节点的子节点的组播路由信息的起始位置或结束位置。或者,第二节点的寻址字段包括:多个定界字段,第二节点的子节点的组播路由信息由多个定界字段分隔开。
可选地,第一节点和第三节点为第一网络内的节点。第二报文还包括:第一头部和第二头部,第一头部包括:第三节点的组播路由信息,或者第一节点的组播路由信息,第二头部包括:第二网络的单播/组播信息。
进一步地,第一节点有第一节点的组播路由标识,或第三节点的组播路由标识,与第二网络的单播/组播信息的对应关系。
进一步地,第一节点为第二网络内的节点。
另一种可能的设计方案中,第一节点为第二节点的叶子子节点,处理模块,还用于根据第一报文,生成第三报文,其中,第三报文包括:第一设备的单播/组播信息;收发模块,还用于向第一设备发送第三报文。
可选地,第一报文包括第一节点的组播路由标识,第一节点的组播路由标识用于指示目的设备为第一设备。
一种可能的设计方案中,第一节点和第二节点为第一网络内的节点,第一报文还包括:第三头部和第四头部,第三头部包括:第二节点的组播路由信息,第四头部包括:第三网络的单播/组播信息。
可选地,第二节点为第三网络内的节点。
一种可能的设计方案中,单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
可选地,收发模块也可以包括发送模块和接收模块。其中,发送模块用于实现第五方面所述的节点的发送功能,接收模块用于实现第五方面所述的节点的接收功能。
可选地,第五方面所述的节点还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得上述第一方面所述的方法被该节点执行。
需要说明的是,第五方面所述的节点可以是终端或网络设备,也可以是可设置终端或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端或网络设备的装置,本申请对此不做限定。
此外,第五方面所述的节点的技术效果可以参考第一方面的方法的技术效果,此处不再赘述。
第六方面,提供一种第二节点。该第二节点包括:处理模块和收发模块。其中,处理模块,用于获取第一报文;收发模块,用于向第一节点发送第一报文,第一节点为组播树中第二节点的子节点。其中,第一报文包括:第二节点的组播路由信息,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在组播树中的非叶子子节点的组播路由信息;
一种可能的设计方案中,第一节点和第二节点为第一网络内的节点,第一报文还包括:第三头部和第四头部,第三头部包括:第二节点的组播路由信息,第四头部包括:第三网络的单播/组播信息。
可选地,第二节点为第三网络内的节点。
可选地,单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
可选地,收发模块也可以包括发送模块和接收模块。其中,发送模块用于实现第六方面所述的节点的发送功能,接收模块用于实现第六方面所述的节点的接收功能。
可选地,第六方面所述的节点还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得上述第二方面的方法被该节点执行。
需要说明的是,第六方面所述的节点可以是终端或网络设备,也可以是可设置终端或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端或网络设备的装置,本申请对此不做限定。
此外,第六方面所述的节点的技术效果可以参考第二方面的方法的技术效果,此处不再赘述。
第七方面,提供一种第四节点。该第四节点包括:处理模块和收发模块。其中,收发模块,用于获取第四报文;处理模块,用于根据第四报文,控制收发模块向第五节点发送第五报文。其中,第四节点为第四网络内的节点,第四报文包括:第五头部,第五头部包括:第五网络的位串信息;第五节点为第四网络内的节点,第五报文包括:第五头部和第六头部,第六头部包括:第五节点的位串信息。
一种可能的设计方案中,第四节点配置有第一表项,以及第二表项。其中,第一 表项包括:第五网络的位串信息,第二表项包括:第五节点的串位信息。
一种可能的设计方案中,处理模块,还用于在第四报文上封装第六头部,以获得第五报文,从而控制收发模块向第五节点发送第五报文。
可选地,收发模块也可以包括发送模块和接收模块。其中,发送模块用于实现第七方面所述的节点的发送功能,接收模块用于实现第七方面所述的节点的接收功能。
可选地,第七方面所述的节点还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得上述第三方面所述的方法被该节点执行。
需要说明的是,第七方面所述的节点可以是终端或网络设备,也可以是可设置终端或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端或网络设备的装置,本申请对此不做限定。
此外,第七方面的所述节点的技术效果可以参考第三方面所述的方法的技术效果,此处不再赘述。
第八方面,提供一种第五节点。该第五节点包括:收发模块和处理模块。其中,收发模块,用于接收来自第四节点的第五报文;处理模块,用于解析第五报文。其中,第四节点和第五节点为第四网络内的节点,第四报文包括:第五头部和第六头部,第五头部包括:第五网络的位串信息,第六头部包括:第五节点的位串信息。
一种可能的设计方案中,处理模块,还用于在解析第五报文之后,剥除第五报文中的第六头部,以获得第四报文,从而控制收发模块向第五网络发送第四报文。
可选地,收发模块也可以包括发送模块和接收模块。其中,发送模块用于实现第八方面的节点的发送功能,接收模块用于实现第八方面的节点的接收功能。
可选地,第八方面的节点还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得上述第四方面的方法被该节点执行。
需要说明的是,第八方面的节点可以是终端或网络设备,也可以是可设置终端或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端或网络设备的装置,本申请对此不做限定。
此外,第八方面的节点的技术效果可以参考第四方面的方法的技术效果,此处不再赘述。
第九方面,提供一种通信装置。该装置包括:处理器。其中,处理器,用于执行如第一方面至第四方面中任一方面所述的方法。
一种可能的设计方案中,第九方面所述的装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于该装置与其他装置通信。
一种可能的设计方案中,第九方面所述的装置还可以包括存储器。该存储器可以与处理器集成在一起,也可以分开设置。该存储器可以用于存储第一方面至第四方面中任一方面所述的方法所涉及的计算机程序和/或数据。
在本申请中,第九方面所述的装置可以为终端或网络设备,或者可设置于该终端或网络设备中的芯片(系统)或其他部件或组件,或者包含该终端或网络设备的装置。
此外,第九方面所述的装置的技术效果可以参考第一方面至第四方面中任一方面所述的方法的技术效果,此处不再赘述。
第十方面,提供一种通信装置。该装置包括:处理器和存储器。其中,存储器用于存储计算机指令,当处理器执行该指令时,以使该装置执行如第一方面至第四方面中任一方面所述的方法。
一种可能的设计方案中,第十方面所述的装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于该装置与其他装置通信。
在本申请中,第十方面所述的装置可以为终端或网络设备,或者可设置于该终端或网络设备中的芯片(系统)或其他部件或组件,或者包含该终端或网络设备的装置。
此外,第十方面所述的装置的技术效果可以参考第一方面至第四方面中任一方面所述的方法的技术效果,此处不再赘述。
第十一方面,提供一种通信装置。该装置包括:逻辑电路和输入输出接口。其中,输入输出接口,用于接收代码指令并传输至逻辑电路。逻辑电路用于运行代码指令以执行如第一方面至第四方面中任一方面所述的方法。
一种可能的设计方案中,第十一方面所述的装置还可以包括收发器。该收发器可以为收发电路。该收发器可以用于该装置与其他装置通信。
一种可能的设计方案中,第十一方面所述的装置还可以包括存储器。该存储器可以与处理器集成在一起,也可以分开设置。该存储器可以用于存储第一方面至第四方面中任一方面所述的方法所涉及的计算机程序和/或数据。
在本申请中,第十一方面所述的装置可以为终端或网络设备,或者可设置于该终端或网络设备中的芯片(系统)或其他部件或组件,或者包含该终端或网络设备的装置。
此外,第十一方面所述的装置的技术效果可以参考第一方面至第四方面中任一方面所述的方法的技术效果,此处不再赘述。
第十二方面,提供一种通信装置。该装置包括:处理器和收发器。其中,收发器用于通信装置和其他装置之间进行信息交互,处理器执行程序指令,用以执行如第一方面至第四方面中任一方面所述的方法。
一种可能的设计方案中,第十二方面所述的装置还可以包括存储器。该存储器可以与处理器集成在一起,也可以分开设置。该存储器可以用于存储第一方面至第四方面中任一方面所述的方法所涉及的计算机程序和/或数据。
在本申请中,第十二方面所述的装置可以为终端或网络设备,或者可设置于该终端或网络设备中的芯片(系统)或其他部件或组件,或者包含该终端或网络设备的装置。
此外,第十二方面所述的装置的技术效果可以参考第一方面至第四方面中任一方面所述的方法的技术效果,此处不再赘述。
第十三方面,提供一种通信系统。该通信系统包括一个或多个终端或网络设备,如第一节点、第二节点、第三节点、第四节点或第五节点等,该终端或网络设备用于执行第一方面至第四方面中任一方面所述的方法。
第十四方面,提供一种计算机可读存储介质,包括:计算机程序;当该计算机程序在计算机上运行时,使得第一方面至第四方面中任一方面所述的方法被该计算机执 行。
第十五方面,提供一种计算机程序产品,包括计算机程序,当该计算机程序在计算机上运行时,使得第一方面至第四方面中任一方面所述的方法被该计算机执行。
附图说明
图1A为组播树的结构示意图一;
图1B为节点和实体的结构示意图;
图2为组播树的结构示意图二;
图3A为组播报文的转发流程示意图;
图3B为节点和子节点的结构示意图;
图4为网络的架构示意图;
图5为组播树的结构示意图三;
图6为IP组播的场景示意图;
图7为BIER组播的场景示意图;
图8为本申请实施例提供的通信方法的流程示意图一;
图9为本申请实施例提供中组播路由信息的结构示意图一;
图10为本申请实施例提供的通信方法中组播路由信息的结构示意图二;
图11为本申请实施例提供的通信方法中组播路由信息的结构示意图三;
图12为本申请实施例提供的通信方法中组播路由信息的结构示意图四;
图13为本申请实施例提供的通信方法中组播路由标识的结构示意图一;
图14为本申请实施例提供的通信方法中组播路由标识的映射关系示意图;
图15为本申请实施例提供的通信方法中组播路由标识的结构示意图二;
图16为本申请实施例提供的通信方法中组播路由信息的结构示意图五;
图17为本申请实施例提供的通信方法中组播路由信息的结构示意图六;
图18为本申请实施例提供的通信方法中组播路由信息的结构示意图七;
图19为本申请实施例提供的通信方法中报文的结构示意图一;
图20为本申请实施例提供的通信方法中组播树的架构示意图;
图21为本申请实施例提供的通信方法中报文的结构示意图二;
图22为本申请实施例提供的通信方法中报文的结构示意图三;
图23为本申请实施例提供的通信方法中报文的结构示意图四;
图24为本申请实施例提供的通信方法的流程示意图二;
图25为本申请实施例提供的通信方法中报文的结构示意图六;
图26为本申请实施例提供的通信方法的流程示意图三;
图27为本申请实施例提供的通信方法中BIER组播的场景示意图;
图28为本申请实施例提供的通信方法中报文的结构示意图七;
图29为本申请实施例提供的通信装置的结构示意图一;
图30为本申请实施例提供的通信装置的结构示意图二。
具体实施方式
下面介绍本申请实施例所涉及的技术术语。
1、组播
组播是一种点对多点的传输技术,例如图1A所示,一个发送端,如服务器,可以向多个接收端,如客户端发送携带有相同数据的报文,也称为组播报文。该组播报文由发送端发送后,可经过多个组播节点(以下简称为节点)到达多个接收端。
2、节点
节点具备转发组播报文的能力,如直接转发组播报文,或者将组播报文封装后再转发。一个节点可以包括一个实体或多个实体。一个实体可以仅属于一个节点,也可以属于多个节点。示例性地,如图1B中的(a)和图1B中的(b)所示,左侧为实体的网络拓扑图,右侧为组播树。如图1B中的(a)所示,节点Z包括多个实体,如实体A、实体B、实体C、实体D和实体E,节点E包括一个实体,如实体E。可以看出,实体E既属于节点Z,也属于节点E。如图1B中的(b)所示,节点X包括多个实体,如实体A和实体B。可以看出,实体A和实体B既属于节点Z,也属于节点X。
需要说明的是,为了方便描述,在本申请实施例中,若一个实体仅属于一个节点,则该节点和该实体采用相同的标识,此时,该实体的地址也可以描述为该节点的地址,该节点执行的动作也就是该实体执行的动作。因此,下文中提到节点的地址时,均是指该节点中的实体的地址。例如,仅包括实体A的节点称为节点A,此时,节点A的地址等同于实体A的地址,仅包括实体B的节点称为节点B,此时,节点B的地址等同于节点实体B的地址。
本申请中,实体也可以称为功能实体。实体可以为物理实体或虚拟实体。物理实体例如可以为路由器、交换机、服务器、主机、网卡、线卡、芯片、芯片的裸片(DIE)、终端(例如,移动终端)、设备内部模块等,虚拟实体例如可以为虚拟机、容器、进程、线程等。当实体为物理实体时,节点也可以称为组播设备。为便于理解,下文以节点为例进行介绍。
3、组播树
组播树是基于特定的网络拓扑,通过路由协议,如协议无关组播(protocol independent multicast,PIM)、内部网关协议(interior gateway protocol,IGP)等,或其他方法,如手工配置、控制器计算等,为特定的源节点和目的节点的组合,生成的从源节点到所有目的节点的路径。该路径是一个以源节点为根节点,以目的节点为叶子节点的树形结构,称为组播树。组播树也可以称为组播分发树(multicast distribution tree,MDT),并且,组播树内的所有节点都支持同一种组播。例如,图2为组播树的示意图,图2中的(a)为左侧为网络拓扑图,若源节点为节点B,目的节点为节点C、节点D和节点E,为源节点和目的节点的组合,生成的组播树的一种示例可以如图2中的(b)所示。
需要说明的是,上述发送端和/或接收端可以是组播树中的节点,也可以不是组播树中的节点。若为前者,则源节点可以为发送端,目的节点可以为接收端。若接收端不是组播树中的节点,则数据到达叶子节点之后,叶子节点继续向其连接的接收端发送该数据。为了方便描述,在没有特别说明的情况下,本申请实施例中以发送端(后文的第二节点)和接收端(后文的第一节点或第三节点)均是组播树中的节点,对本申请实施例提供的方法作示例性说明。
4、子节点
一个节点的子节点是指组播树中的该节点的报文可以通过一跳组播,如经过一次组播转发到达的节点。其中,一跳组播是指查找一次组播转发表。例如,图2中(b)的节点R为节点B的子节点,节点S为节点R的子节点,节点E为节点R的子节点。需要说明的是,若组播树中前一个支持组播的节点发送的组播报文,经过一个或多个不支持组播的其他节点(非组播树中的节点)后,到达组播树中的后一个支持组播的节点,则后一个支持组播的节点为前一个支持组播的节点的子节点,也就是说,组播报文经过了一跳组播,从前一个支持组播的节点到达后一个支持组播的节点。例如,图3A为路由器的转发流程示意图,如图3A所示,路由器A和路由器C为支持组播的路由器,且为组播树中的节点,路由器B为不支持组播的路由器。若路由器A向路由器C发送组播报文,则路由器C为路由器A的子节点,路由器B不为路由器A的子节点。
此外,当一个节点的子节点是组播树的叶子节点时,该子节点可以称为该节点的叶子子节点,当一个节点的子节点不是组播树的叶子节点时,该子节点可以称为该节点的非叶子子节点。
在本申请的描述中,若无特别说明,本申请下文中提到的一个节点的子节点均是指该节点在组播树中的子节点。子节点也可以有其他名称,例如,组播子节点等,本申请不作限制。
另外,一个设备中的除网卡之外的模块可以认为是一个节点(假设为节点a),服务器中的网卡可以认为是另一个节点(假设为节点b),则节点b可以认为是节点a的子节点。一个路由器中的除线卡之外的模块可以认为是一个节点(假设为节点c),路由器中的线卡可以认为是另一个节点(假设为节点d),则节点d可以认为是节点c的子节点。示例性地,如图3B所示,A为路由器,节点A0为路由器中的除线卡之外的模块,节点A1、节点A2和节点A3为路由器中的3个线卡。路由器可以通过3个线卡上的接口分别向节点B、节点C、节点D、节点E、节点F和节点G发送组播报文。此时,节点A1、节点A2和节点A3可以为节点A0的子节点。A也可以为服务器,此时,节点A1、节点A2和节点A3为该服务器中的3个网卡,A可以通过3个网卡上的网口分别向节点B、节点C、节点D、节点E、节点F和节点G发送组播报文。
5、潜在子节点
一个节点的潜在子节点是指该节点的报文可以通过一跳组播到达的节点。例如,图2中的节点R和节点A均为节点B的潜在子节点,节点F、节点R、节点C和节点D均为节点S的潜在子节点。可以理解的是,一个节点的潜在子节点包括该节点在组播树中的子节点。当一个节点的潜在子节点位于组播树中时,该潜在子节点也就是该节点在组播树中的子节点。潜在子节点也可以有其他名称,例如,组播对象、预备子节点等,本申请不作限制。
6、网络
网络可以分为不同的区域,即不同的网络区域(简称域),或者说不同的网络层,用以承载不同的业务。
其中,一个网络可以由一个组播树的所有节点构成,该网络也可以认为是由该所有节点构成的虚拟节点,例如,图4为组播树的结构示意图,如图4所示,组播树包括:节点1至节点9,节点1为源节点,节点6、节点7和节点9为目的节点,节点1至节点9可以构成一个网络,如网络D。一个网络可以包括多个子网络,或者说多个子网络区域,子网络可以通过路由协议,如PIM、IGP等,或其他方法,如手工配置、控制器计算等方式划分出来,每个子网络可以包括组播树中的部分节点。其中,组播树中不位于子网络边缘的节点可以称为非边缘节点,或者非边界节点,位于子网络边缘的节点可以称为边缘节点,或者边界节点。非边缘节点可以用于子网络内部的报文转发,边缘节点可以用于子网络之间的报文转发,如接收来自上一个子网络的报文,或者向下一个子网络发送报文,换言之,一个子网络的边缘节点可以作为该子网络的入口节点,或者出口节点。相邻两个子网络之间可以共享同一个边缘节点,或者也可以独享各自的边缘节点。如果是共享同一个边缘节点,则边缘节点既作为上一个子网络的出口节点,也作为下一个子网络的入口节点。如果是独享各自的边缘节点,则边缘节点要么作为所在子网络的出口节点,要么作为所在子网络的入口节点。例如,图4所示,网络A包括:子网络A1、子网络A2和子网络A3。以子网络A1为例,子网络A1包括:节点1、节点2、节点3、节点4、以及节点5。其中,节点2为非边缘节点、除此之外的节点全为边缘节点,即节点1、节点3、节点4以及节点5为边缘节点。其中,节点1为子网络A1独享的边缘节点,且为子网络A1的入口节点,节点3和节点5也为子网络A1独享的边缘节点,且为子网络A1的出口节点,节点4为子网络A1和子网络A3共享的边缘节点,即节点4既为子网络A1的出口节点,又为子网络A3的入口节点。
应理解,如果节点支持的组播方式不同,则节点构成的网络不同,或者说节点所属的网络不同。对于同一个节点而言,如果该节点同时支持多种组播方式,则该节点可以同属于多个网络。例如,图5中的(a)所示,网络拓扑结构包括:节点1至节点11,其中,节点1、节点5、节点6、节点7、节点8和节点9支持一种组播,如互联网协议(internet protocol,IP)组播;节点1、节点2、节点3、节点4、节点6、节点10以及节点11支持另一种组播,如多协议标签交换(multi-protocol label switching,MPLS)点对多点主站(point-to-multiple point,P2MP)隧道。此时,如图5中的(b)所示,节点1、节点5、节点6、节点7、节点8和节点9可以构成一个组播树,如组播树T1,且组播树T1属于一个网络,如网络B。如图5中的(c)所示,节点1、节点2、节点3、节点4、节点6、节点10以及节点11可以构成另一个组播树,如组播树T2,且组播树T2属于另一个网络,如网络C。其中,对于节点1和节点6,其同属于两个网络,即网络B和网络C。
7、单播报文、组播报文
单播报文和组播报文的第一种定义:
根据节点对报文的处理行为对报文进行分类,此时,一个报文是单播报文还是组播报文是相对的,具体的:
对于一个节点而言,若节点不需要根据报文中的组播路由信息进行组播转发,或者说不需要根据组播路由信息查找组播转发表转发,而只需要根据该报文的单播封装 进行单播转发,或者说根据单播封装查找单播转发表转发,或者消费报文,即自己处理该报文不需要再转发,则该报文对于该节点而言为单播报文。反之,若节点需要根据报文中的组播路由信息组播转发,或者说需要根据组播路由信息查找组播转发表转发,则该报文对于该节点而言为组播报文。
例如,节点A和节点B具有拓扑连接,节点B和节点C具有拓扑连接。若节点B将来自节点A的报文组播转发给节点C,而节点C接收到该报文后消费该报文,则该报文对于B而言是单播报文,对于节点B而言是组播报文,对于节点C而言是单播报文。又例如,节点A和节点B具有拓扑连接,若节点A向节点B单播发送一个报文,则该报文对于节点B而言是单播报文。
单播报文和组播报文的第二种定义:
根据报文的结构对报文进行分类,具体地,最外层头部是单播头部的报文是单播报文,最外层头部是组播头部的报文是组播报文。其中,目的IP地址是单播地址的IP头部、或者目的介质访问控制(media access control,MAC)地址是单播地址的mac头部都是单播头部。目的IP地址是组播地址的IP头部、目的mac地址是组播地址的mac头部、或者目的地址是多协议标签交换(multi-protocol label switching,MPLS)点对多点主站(point-to-multiple point,P2MP)的隧道标签的MPLS头部都是组播头部。此外,本申请后文所指的组播路由信息也是一种组播头部,具体实现请参看后文介绍,在此不再赘述。
基于上述针对单播报文和组播报文的两种定义,为了使得本申请实施例提供的方法更加的清楚,本申请采用第二种定义对本申请实施例提供的方法进行描述。本申请中采用第一种定义对本申请实施例提供的方法进行描述。当本申请中采用第二种定义时,可以根据报文的具体结构确定报文是单播报文还是组播报文,例如,下文中第二节点向第一节点发送第一报文,若第一报文的最外层头部是单播头部,则采用第二种定义描述时,第一报文可以理解为单播报文。
此外,本申请中的报文中的单播封装可以是互联网协议IP的第四版(简称为IPv4)单播封装、IP的第六版(简称为IPv6)单播封装或其他任何可能的封装形式。本申请中,可以在含有组播路由信息的报文上进行任何可能形式的单播封装,也可以不进行单播封装,报文的单播封装使报文可以以单播的形式穿越2个节点之间的网络(或者说在2个节点之间传输)。关于单播报文和组播报文解释中所提到的组播路由信息均是指本申请下文中定义的组播路由信息。
需要说明的是,在本申请实施例中,当组播报文为IP报文,即该组播报文包括IP头部,并且该IP头部中的目的IP地址为单播IP地址时,该组播报文的IP头部即为该组播报文的单播封装。需要说明的是,若本申请中的组播报文为IP报文,则本申请的描述中,目的地址均是指目的IP地址。
在本申请下文中,若一个节点接收到一个组播报文、且该组播报文为IP报文,该节点首先判断该组播报文的IP头部中的目的地址是否为自身的地址。若是,则解析该组播报文的IP头部之后的组播信息,并根据组播信息转发组播报文。此外,对于该节点生成并向其他节点发送组播报文的过程,首先,该节点可以确定需要向其他节点发送的组播路由信息和数据,再确定下一跳的地址(即其他节点的地址)。然 后,该节点可以将其他节点的地址填入IP头部中的目的地址字段,并将组播路由信息和数据封装在IP头部,以生成组播报文,从而向其他节点发送该组播报文。本申请下文中为了简洁,并未在每个步骤中展开描述这一过程,在此处统一描述,下文中不再赘述。
8、组播报文的转发
目前,组播报文的转发可以有多种实现方式,比如,可以通过PIM-SM(方案1)、显式比特索引复制(bit index explicit replication,BIER)(方案2)实现,以下分别介绍。
方案1:
PIM-SM是一种多播路由协议,PIM-SM用于从接收端向组播源(发送端或汇集点(rendezvous point,RP))方向逐跳建立MFIB表,最终构造出一棵以组播源为根节点,以接收端为叶子节点的树状结构,即组播树。组播报文从组播树中的根节点开始朝着叶子节点方向,在每个路由器(也可以称为组播路由器)上进行复制,直到接收端。所有的接收端可以组成一个组播组,一个接收端为组播组中的一个成员。其中,以RP为根节点、组播组中的成员为叶子节点的组播树称为汇集点树(RP tree,RPT),以发送端为根节点、组播组中的成员为叶子节点的组播树称为最短路径树(shortest path tree,SPT)。RPT和SPT的转发流程基本一致。以SPT为例,在SPT构造完成之后,每个路由器中会存储一个MFIB表,MFIB表中存储有一个组地址(group address)和端口列表(port list),当路由器接收到目的地址为该组地址的组播报文时,通过该端口列表中的端口发送该组播报文。
为便于理解,下面以图6所示的组播树为例,对PIM-SM的加入以及转发进行介绍。
如图6所示,如果接收端1想要加入某个组播组,则接收端1可以向DR1发送IGMP消息。其中,DR可以表示指定路由器,即向组播组中的成员发送组播报文的路由器。IGMP消息可以包括:该组播组的地址,如224.10.10.10、接收端1的源地址,如1.1.1.1、以及组播树中所有路由器对应的同一目的地址,如224.0.0.2。
DR1接收到来自接收端1的IGMP消息后,可以根据IGMP消息生成加入(join)消息,并向R1发送加入消息。其中,加入消息可以包括:DR1的上游邻居,或者说DR1的上一跳设备,如R1的地址、组播组的地址、以及接收端1的源地址。其中,DR1的上游邻居的地址可以记录在DR1预配置的MRIB表中,R可以表示普通路由器。此外,DR1还可以根据IGMP消息,查找DR1的MFIB表。若查找未命中,则DR1可以建立MFIB表,其中,DR1的MFIB表中的组地址可以为上述组播组的地址,如224.10.10.10、出端口列表包括DR1接收加入消息的入端口,如端口1。如果查找命中,则DR1可以维护MFIB表,即检查DR1的MFIB表中出端口列表是否包括上述入端口。如果不包括上述入端口,则DR1可以在端口列表中加入上述入端口。
R1接收到来自DR1的加入消息后,可以将加入消息中DR1的上游邻居的地址,如R1自身的地址,修改为R1的上游邻居的地址,如组播源的地址,从而向组播源发送加入消息。其中,R1的上游邻居的地址可以记录在R1预配置的MRIB表 中。同理,R1也可以根据加入消息查找R1的MFIB表。若查找未命中,则R1可以建立MFIB表,其中,R1的MFIB表中,组地址可以为上述组播组的地址,如224.10.10.10,出端口列表包括R1接收加入消息的入端口,如端口1。如果查找命中,则R1可以维护MFIB表,即检查R1的MFIB表中出端口列表是否包括上述入端口。如果不包括上述入端口,则R1可以在端口列表中加入上述入端口。
组播源接收到来自R1的加入消息后,可以根据加入消息查找R1的MFIB表。若查找未命中,则组播源可以建立MFIB表,其中,组播源的MFIB表中,组地址可以为上述组播组的地址,如224.10.10.10,出端口列表包括组播源接收加入消息的入端口,如端口1。如果查找命中,则组播源可以维护MFIB表,即检查组播源的MFIB表中出端口列表是否包括上述入端口。如果不包括上述入端口,则组播源可以在端口列表中加入上述入端口。如此,便完成了从接收端1到组播源的组播路径建立。
应理解,对于接收端2和接收端3而言,其加入组播组的流程与接收端1类似,在此不再赘述。当接收端2和接收端3也加入组播组后,组播组中每个路由器维护的MFIB表可以如图7所示。在此基础上,如果组播源想要发送组播报文,且组播报文的目的地址为224.10.10.10,则组播源可以查找组播源的MFIB表,确定组播报文的出端口包括端口1和端口2,从而分别向这两个端口各发送一份组播报文。R1接收到来自组播源的组播报文后,可以查找R1的MFIB表,确定组播报文的出端口包括端口1,从而向端口1转发该组播报文。R2接收到来自组播源的组播报文后,可以查找R2的MFIB表,确定组播报文的出端口包括端口1和端口2。然后,R2可以复制一份组播报文,从而分别向两个端口各发送一份组播报文。如此,接收端1、接收端2和接收端3都可以接收到相同的组播报文。
综上,根据上述方案1的相关介绍可知,PIM-SM是基于构建,以及维护MFIB表实现,也就是说,PIM-SM需要为每条组播流在网络中维护MFIB表。但是,每个路由器上维护的MFIB表的表项数是有限制的,如果组播树或者说组播流太多,则路由器无法相应增加MFIB表,从而导致组播树的可扩展性很差。此外,PIM-SM的组播树是通过从接收端向组播源方向,逐跳建立MFIB表构造出的,因此,组播树是完全固定的,无法基于规划主动控制转发路径。并且,叶子节点加入或离开组播树只有其上一跳节点知道,组播源不知道,也就是说,组播源感知不到用户的存在,可管理性较差。
方案2:
BIER是一种无状态的组播路由协议。支持BIER的路由器称为BFR(Bit-forwarding router),支持BIER的域入口路由器称为BFIR(Bit-forwarding ingress router),支持BIER的域出口路由器称为比特转发出口路由器(bit-forwarding egress router,BFER)。BIER为每个BFER分配一个唯一标识(ID),称为BFRID,典型取值范围是1~65536。其中,图7为BIER中BFER的集合划分示意图,如图7所示,如果把所有BFER划分成若干集合(set),则每个set有一个集合标识(set identifier,SI),典型取值范围0~255。每个set中最多有256个BFER,每个set固定占用SI*256+1~(SI+1)*256的BFRID,“*”表示“乘以”。
BIER协议规定,组播报文通过头部携带的SI和位串(bitstring)指示向哪些BFER组播。bitstring是长度为256比特(bit)的位图(bitmap),每个bit对应于一个BFER。例如,一个BFER对应的bit的值为1时,表示需要向该BFER组播。一个组播报文只能携带一个SI和一个bitstring,因此只能向某一个set组播。示例性地,参见图7,set1中ID为2的BFER通过节点P(即运营商网络内部的节点)向set2中的ID为258和510的BFER发送组播报文,该组播报文中包括一个SI和一个位串,SI为2,bitstring中ID为258和510的BFER对应的bit为1,其他bit为0。另外,每个BFER中会维护位索引转发表(bit index forwarding table,BIFT),BIFT是BIER定义的组播路由表。BFER可以基于组播报文头部携带的SI和bitstring以及维护的BIFT进行组播报文转发。
综上,根据上述方案2的相关介绍可知,由于一个组播报文只能携带一个SI和一个位串,因此,只能向某一个set组播,这也就意味着,如果总共有50个set,并且需要向50个set中的BFER发送组播报文,那么需要发送50份组播报文,报文份数过多导致组播效率较差。并且,BIER中的BIFT是固定的,也就是说,每个节点有固定的下一跳,因此,仍无法规划或指定路径路由。
为了解决上述方案1和方案2中存在的问题,本申请提供了一种通信方法,适用于至少两个节点之间的通信,例如第一节点和第二节点之间的通信,参见图8,该方法包括:
S801,第二节点获取第一报文。
其中,第二节点可以为组播树中的任何一个具有子节点的节点,具体可以为组播树中的源节点,或者也可以为源节点或某个节点的非叶子子节点,对此不限定。如果第二节点是源节点,则第二节点获取第一报文可以是第二节点生成第一报文;如果第二节点是某个节点的非叶子子节点,则第二节点获取第一报文可以是接收来自该节点的第一报文。为方便理解,本申请以第二节点为源节点为例进行介绍。
第一报文是组播树对应的组播报文,即第一报文包括该组播树,或者该组播树中某个子树中的一个节点的组播路由信息。一个节点的组播路由信息包括:该节点的组播路由标识和该节点在组播树中的非叶子子节点的组播路由信息。其中,组播路由标识的具体实现可以参考下述S802和S803中的相关介绍,此处不予赘述。一个节点的组播路由信息中的非叶子子节点的组播路由信息,可以是一个组播路由信息列表,该列表可以是顺序排列、链式排列或其他可能的方式排列,本申请不作限制。可以理解的是,若一个节点没有非叶子子节点,则该节点的组播路由信息中不包括非叶子子节点的组播路由信息,仅仅包括该节点的组播路由标识,或者还可以不包括该节点的组播路由标识,对此不限定。因此,对于第二节点,第一报文包括第二节点的组播路由信息,第二节点的组播路由信息包括:第二节点的组播路由标识,以及第二节点的非叶子子节点的组播路由信息,该非叶子子节点的组播路由信息包括:自身的组播路由标识,以及自身的非叶子子节点的组播路由信息,然后依次类推。可以看出,第一报文中的组播路由信息呈树形递归结构,第一报文中第二节点的一个非叶子子节点的组播路由信息,可以认为是递归结构中的一个递归单元。方便描述,本申请下文中的部分描述中,将一个节点的一个非叶子子节点的组播路由信息记为一个递归单元,假设 一个节点的非叶子子节点的个数为M,该节点的第m+1个非叶子子节点的组播路由信息记为该节点的递归单元m,m为大于等于0小于M的整数。可以理解,第二节点的每个非叶子子节点的组播路由信息又包括多个递归单元(每个递归单元为该非叶子子节点的一个非叶子子节点的组播路由信息),依次类推。因此,第一报文中包括的组播路由信息可以描述某个组播树或组播树的子树的报文转发信息。
例如,如图9所示,假设第二节点的非叶子子节点有M1个,分别记为节点2 0、节点2 1、节点2 2、…、节点2 M1-1,则第一报文包括第二节点的组播路由信息,第二节点的组播信息中包括第二节点的组播路由标识,以及节点2 0、节点2 1、节点2 2、…、节点2 M1-1的组播路由信息。进一步的,节点2 0、节点2 1、节点2 2、…、节点2 M1-1中的每个节点的组播路由信息又包括各自的非叶子子节点的组播路由信息。例如,假设节点2 0的非叶子子节点有M2个,则节点2 0的组播路由信息中包括节点2 0的组播路由标识,以及节点2 0的第1个非叶子子节点、第2个非叶子子节点、…、第M2个非叶子子节点的组播路由信息。节点2 0的每个非叶子子节点进一步的包括自身的非叶子子节点的组播路由信息,依次类推。节点2 1、节点2 2、…、节点2 M1-1类似。
例如,如图10所示,假设组播树如图10中的(a)所示,如图10中的(b)所示,节点D的组播路由信息可以包括节点A的组播路由信息和节点B的组播路由信息,可选地,还可以包括节点C(节点D的叶子子节点)的组播路由标识。节点A的组播路由信息可以包括节点A的组播路由标识,可选地,还可以包括节点E(节点A的叶子子节点)的组播路由标识,以及节点F(节点A的叶子子节点)的组播路由标识。节点B的组播路由信息可以包括节点B的组播路由标识,可选地,还可以包括节点H(节点B的叶子子节点)的组播路由标识。
可选地,一个节点的组播路由信息还包括该节点的寻址字段。其中,一个节点的寻址字段用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息。示例性地,如图11所示,第二节点的组播路由信息包括第二节点的寻址字段,节点2 0的组播路由信息包括节点2 0的寻址字段,其他节点类似。示例性地,如图12所示,节点D的组播路由信息包括节点D的寻址字段。可选地,如果节点A的组播路由信息包括节点E(节点A的叶子子节点)的组播路由标识,和/或,节点F(节点A的叶子子节点)的组播路由标识,则节点A的组播路由信息还可以包括节点A的寻址字段,此时,节点A的寻址字段用于节点E确定节点E的组播路由标识,和/或,用于节点F确定节点F的组播路由标识。可选地,如果节点B的组播路由信息包括节点H(节点B的叶子子节点)的组播路由标识,则节点B的组播路由信息还可以包括节点B的寻址字段,此时,节点B的寻址字段用于节点H确定节点H的组播路由标识。
需要说明的是,一个节点的非叶子子节点的组播路由信息除了通过寻址字段指示之外,还可以静态配置在节点中。例如,若一个节点的子节点个数固定,并且这些子节点的子节点都是叶子节点,那么这些子节点的组播路由信息中仅仅包括这些子节点的组播路由标识,并且组播路由标识的长度是固定的,此时,该节点中可以静态维护这些子节点的组播路由信息的长度,此时,该节点的组播路由信息中可以不包括该节 点的寻址字段。此外,第二节点的寻址字段的具体实现可以参考下述S803中的相关介绍,此处不予赘述。
可选地,第一报文还包括:第二字段;第二字段用于指示第二节点的非叶子子节点的组播路由信息的总长度,可选地,还用于指示第二节点的非叶子子节点的组播路由信息的总长度,与如下一项或多项的长度之和,该如下一项或多项包括:该第二字段的长度、第二节点的寻址字段的长度、第二节点的组播路由标识的长度。换言之,第二字段用于指示第二节点的组播路由信息的长度,或者,第二节点的组播路由信息与第二字段的总长度,或者,第二节点的组播路由信息中的非叶子子节点的组播路由信息的总长度。这些长度可以通过bit、字节等表征。第二字段中还可以包括预留字段,用于后续功能扩展。第二字段可以是一个固定长度的字段,例如,1个字节(即8个bit)。示例性的,参见图11,第二节点的组播信息还包括第二字段。示例性地,参见图12,若第二节点为节点D,则节点D发往节点A、节点B以及节点C的组播报文中还包括第二字段。
可选地,第二节点的组播信息中还包括:第三字段,第三字段用于对齐第二节点的组播信息的字节。第三字段也可以称为填充(padding)字段。示例性地,参见图11,第二节点的组播信息还包括第三字段。示例性地,参见图12,若第二节点为节点D,则节点D发往节点A、节点B以及节点C的组播报文中还包括第三字段。需要说明的是,在进行字节对齐时,可能是单字节对齐,此时,第三字段的存在是为了使得整个组播信息的bit数可以整除8,也可以是4字节对齐,此时,第三字段的存在是为了使得整个组播信息的bit数可以整数32,也可以是8字节对齐,此时,第三字段的存在是为了使得整个组播信息的bit数可以整数64。第三字段的具体长度可以根据需要对齐的字节数确定。可以理解的是,若没有第三字段,第二节点的组播路由信息本身已经是字节对齐的,则不需要第三字段。为了方便描述,本申请下文中均以字节对齐为单字节对齐为例对本申请实施例提供的方法作示例性说明。
其中,第二字段和第三字段可以由第二节点添加到第一报文中。此外,为方便描述,将第二字段、第三字段以及第二节点的组播路由信息三者称为第二节点的组播信息,即第二节点的组播信息包括第二字段、第三字段以及第二节点的组播路由信息。
S802,第二节点向第一节点发送第一报文,第一节点接收来自第二节点的第一报文。
其中,第一节点可以为第二节点的非叶子子节点。对于一个节点而言,该节点的组播路由标识用于指导该节点向该节点的子节点发送组播报文,即第二节点的组播路由标识用于指导第二节点向第一节点发送第一报文。一个节点的组播路由标识可以通过以下方式11、方式12或方式13实现。
方式11:
一个节点的组播路由标识包括第四字段和X个第五字段,第四字段用于指示该节点的子节点的个数为X,一个第五字段用于指示该节点的一个子节点的标识。节点的标识(ID)例如可以为节点的索引、节点的IP地址或节点的其他标识。以节点的标识为节点的索引为例,如图13中的(a)所示,第四字段记为Cnt(即Count的缩写),表示用于指示节点个数,第五字段记为Idx(即Index的缩写),表示用于指 示索引。Idxi为节点的第i个子节点的索引,Idx1至Idxx组成一个Idx序列,i为大于0小于等于X的整数。
一个节点对应的节点集合中的节点可以具有连续的编号,例如,0、1、2、…,该节点集合可以包括该节点的全部或部分潜在子节点,一个节点的索引可以是该节点的编号。一个节点可以通过接收到的组播报文中,该节点的组播路由标识中携带的节点的索引,确定需要向哪些节点发送组播报文(也就是确定哪些节点为自身的子节点)。实际实现时,一个节点对应的节点集合中的节点的编号也可以是从其他数值(例如,1)开始的连续的取值(即该节点对应的节点集合中的节点的索引为1、2、3、…),或者,也可以为离散的取值,本申请不作限制。当一个节点对应的节点集合中的节点从0开始编号时,第五字段的位宽
Figure PCTCN2022114357-appb-000001
N为该节点对应的节点集合中的节点个数。第五字段的位宽也可以是固定位宽,例如,1字节。当第四字段的值为自然数时,第四字段的位宽可以为
Figure PCTCN2022114357-appb-000002
当第四字段的值为N-1(即第四字段的值为0表示N为1,第四字段的值为1表示N为2,依次类推)时,第四字段的位宽可以为
Figure PCTCN2022114357-appb-000003
第四字段也可以为固定位宽,例如,1字节,此时,第五字段的最大长度也就固定了。第四字段也可以称为Cnt字段或Count字段。第五字段也可以称为Idx字段或Index字段。下文中将方式11中的第四字段称为Cnt字段,第五字段称为Idx字段。
示例性地,如图10所示,假设节点D对应的节点集合包含节点A、节点B和节点C,表示节点D的潜在子节点有3个,这3个潜在子节点的编号分别是0,1,2。若Cnt字段的值为N-1,则Cnt字段和Idx字段均可以为2个bit。由于节点D有3个子节点,即节点A、节点B和节点C,则Idx字段有3个,即节点D的组播路由标识有8个bit。由于节点集合中共有3个节点(即N=3),则Cnt字段的值可以为11。在3个Idx字段中,第1个Idx字段的值为10,表示编号为0的节点(即节点A)为节点D的子节点,第2个Idx字段的值为11,表示编号为1的节点(即节点B)为节点D的子节点,第3个Idx字段的值为01,表示编号为2的节点(即节点C)为节点D的子节点,那么节点D的组播路由标识可以为11101101。
其中,每个节点上可以存储有组播转发表(也可以称为组播路由表或路由转发表或其他名称),组播转发表中包括该节点对应的节点集合中的节点索引与下一跳(nexthop)的信息(例如,去往下一跳的出接口、下一跳的地址)之间的对应关系,一个节点可以根据组播路由标识中的Idx字段确定节点索引,再查找组播转发表得到下一跳的信息,进而向该下一跳转发组播报文。对于第二节点,第二节点可以根据第二节点的组播路由标识中第一节点的Idx字段,查找第二节点的组播转发表,确定第一节点的地址,以通过第一节点的地址对应的出端口,向第一节点发送第一报文。
例如,基于图10所示的示例,节点D的组播转发表一种示例可以参见表1。
表1
节点索引 下一跳的地址
0 节点A的地址
1 节点B的地址
2 节点C的地址
方式12:
一个节点的组播路由标识包括N个第一字段,N为该节点对应的节点集合中的节点个数,一个第一字段用于指示节点集合中的一个节点是否为该节点在组播树中的子节点。以第二节点为例,第二节点的组播路由标识可以包括N个第一字段,一个第一字段用于指示第一节点集合中的一个节点是否为第二节点在组播树中的子节点。N为第一节点集合中的节点个数,该第一节点集合为第二节点对应的节点集合,第一节点集合包括第二节点的部分或全部潜在子节点。
一个第一字段可以为一个bit,也就是说,一个节点(以第二节点为例)的组播路由标识包括N个bit,如图13中(b)所示,N个bit组成一个bit序列(bit squence),N个bit与第二节点对应的第一节点集合中的节点一一对应,一个bit用于指示第一节点集合中的与该bit对应的节点是否为第二节点的子节点。具体地,一个bit的值为1(也可以为0)时,该bit用于指示该第一节点集合中的与该bit对应的节点为第二节点的子节点。为了方便描述,下文中均以一个bit的值为1时,表示该bit对应的节点为对应的子节点为例,对本申请提供的方法做示例性说明。方式12中的组播路由标识在下文中称为bit序列。
例如,基于图10所示的示例,节点D对应的节点集合包含节点A、节点B和节点C,这3个节点分别对应3个bit中的第1、2、3个bit。如果节点集合中的对应的bit的值为1的节点为节点D的子节点,则节点D的bit序列可以为111。节点A对应的节点集合包含节点D、节点E和节点F,这3个节点分别对应3个bit中的第1、2、3个bit,节点E和节点F为节点A的子节点。如果节点集合中的对应的bit的值为1的节点为节点A的子节点,则节点A的bit序列可以为011。
每个节点上可以存储有组播转发表,组播转发表中包括bit序列中的bit与下一跳的信息(例如,去往下一跳的出接口、下一跳的地址)之间的对应关系,一个节点可以根据组播转发表中的bit序列中的bit的位置确定下一跳的信息,进而向该下一跳转发报文。其中,bit序列中的bit与下一跳的信息的对应关系可以有4种情况。如图14所示,在第一种情况下,bit序列中最左边(leftmost)的bit为第1个bit,从左往右依次为第1个bit、第2个bit、第3个bit…,bit序列中的第j个bit对应索引为j-1的表项。在第二种情况下,bit序列中最右边的bit为第1个bit,从右往左依次为第1个bit、第2个bit、第3个bit…,bit序列中的第j个bit对应索引为j-1的表项。在第三种情况下,bit序列中最左边的bit为第1个bit,从左往右依次为第1个bit、第2个bit、第3个bit…,bit序列中的第j个bit对应索引为j的表项。在第四种情况下,bit序列中最右边的bit为第1个bit,从右往左依次为第1个bit、第2个bit、第3个bit…,bit序列中的第j个bit对应索引为j的表项。j为大于0的整数。示例性地,以bit序列为010011为例,6个bit分别对应节点A至节点F,bit序列中的bit与下一跳的地址的对应关系可参见图14。在本申请下文中的描述中,若无特别说明,均认为bit序列中最左边的bit为第1个bit,从左往右依次为第1个bit、第2个bit、第3个bit…。需要说明的是,除了上述4种情况之外,组播转发表中的表项的索引还可以为从其他数值(例如,2、3、4)开始的连续的数值或离散的数值,本 申请不作限制。对于第二节点,第二节点可以根据第二节点的bit序列中,第一节点的一个bit对应的索引,查找第二节点的组播转发表,确定第一节点的地址,以通过第一节点的地址对应的出端口,向第一节点发送第一报文。
方式13:
一个节点的组播路由标识包括组标识,组标识用于指示该节点对应的节点组,一个节点对应的节点组中的节点均为该节点的子节点。以第二节点为例,第二节点的组播路由标识包括第一组标识,第一组标识用于指示第二节点对应的第一节点组,第一节点组中的节点均为第二节点的子节点。
其中,一个节点对应的节点组为该节点对应的节点集合的子集。一个节点对应的节点集合中的节点可以组成至少一个节点组,节点集合中的一个节点可以位于一个节点组,也可以位于多个节点组,哪些节点组成一个节点组可以是预先配置的,一个节点组对应一个组标识(Group ID,简称GID)。该情况下,如图13中的(c)所示,组播路由标识为GID,一个节点可以通过接收到的组播报文中,该节点的组播路由标识中的GID,确定该GID对应的节点组中的节点,并向这些节点发送组播报文。
例如,基于图2所示的示例,假设节点R对应的节点集合包含节点B、节点A、节点S和节点E,这4个节点可以组成3个节点组,第1个节点组包括节点A和节点B,第2个节点组包括节点S和节点E,第3个节点组包括节点B、节点A、节点S和节点E。第1个节点组的标识为标识1,第2个节点组的标识为标识2,第3个节点组的标识为标识3。在图2中的右侧所示的组播树中,节点S和节点E为节点R的子节点。则节点R的组播路由标识可以为标识2。
与方式11和方式12类似,在方式13中,每个节点上也可以存储有组播转发表,组播转发表中包括节点组的组标识与下一跳的信息(例如,去往下一跳的出接口、下一跳的地址)的对应关系。此处的下一跳即组标识对应的节点组中的节点。该情况下,一个节点可以根据组播路由标识以及组播转发表中的该对应关系确定向哪些节点转发组播报文。对于第二节点,第二节点可以根据第二节点的组播路由标识中的第一组标识,查找组播转发表,确定向第一节点组内的子节点(包括第一节点)发送第一报文。
例如,基于图2所示的示例,节点R的组播转发表的一种示例可参见表2。
表2
Figure PCTCN2022114357-appb-000004
可以理解的是,上述方式11、方式12和方式13中的组播路由标识之间是可以 进行相互转换的,例如,方式13中的GID可以转换为方式12中的bit序列或方式11中的组播路由标识。上述方式11、方式12和方式13中的组播路由标识分别可以称为第一类型组播路由标识、第二类型组播路由标识和第三类型组播路由标识。上述方式11、方式12和方式13中的一个节点的组播路由标识的长度可以在该节点中静态维护。生成组播树中的第一个组播报文的节点(例如,源节点)或控制器可以维护组播树中的所有节点的组播路由标识的长度。
上述方式11,在组播树中的节点极低密度的组播场景下,组播报文的封装效率最优。上述方式12,在组播树中的节点较高密度的组播场景下,封装效率最优。上述方式13,在组播树中的节点最高密度的组播场景下,封装效率最优。
可选地,一个节点的组播路由标识中还包括类型字段,类型字段用于指示该节点的组播路由标识的类型。组播路由标识的类型包括上述第一类型组播路由标识、第二类型组播路由标识和第三类型组播路由标识。该情况下,接收组播报文的节点可以根据组播路由标识的类型确定如何识别组播路由标识。示例性的,当组播路由标识还包括类型字段时,方式11、方式12和方式13中的组播路由标识可以参见图15中的(a)、图15中的(b)和图15中的(c),类型字段在图15中的(a)、图15中的(b)和图15中的(c)中记为Type。
在实际实现时,可以唯一使用一种类型的组播路由标识(此时,不需要类型字段),也可以通过类型字段指示使用哪种类型的组播路由标识。另外,需要说明的是,类型字段可以认为是组播路由标识的一部分,也可以认为是独立于组播路由标识的一个字段,本申请不作限制。在一个组播报文中,不同节点的组播路由标识的类型可以相同,也可以不同,本申请不作限制。
可选地,一个节点的组播路由标识中还包括组播路由标识长度字段和/或节点类型字段,组播路由标识长度字段用于指示组播路由标识的长度,节点类型字段用于指示节点类型,节点类型包括单实体节点和多实体节点,单实体节点是指该节点包括一个实体,多实体节点是指该节点包括多个实体。与类型字段类似的,组播路由标识长度字段和/或节点类型字段可以认为是组播路由标识的一部分,也可以认为是独立于组播路由标识的一个字段,本申请不作限制。
上述类型字段、组播路由标识长度字段和节点类型字段可以统称为描述字段或dscr字段。这些字段还可以有其他名称,本申请不作限制。
可选地,第二节点向第一节点发送第一报文,第一报文中的单播封装中的目的地址为第一节点的地址。具体地,第一报文可以为IP报文,此时,第一报文中的目的地址为第一节点的地址,第一报文还包括数据,第一报文中的第二节点的组播信息位于第一报文的IP头部和数据之间。其中,单播封装中可以包括指示字段,该指示字段用于指示组播报文中的单播封装后的信息中是否包含组播信息,节点在接收到组播报文之后,可以根据该指示字段确定组播报文中的单播封装后的信息中是否包含组播信息。若单播封装为IPv4封装,则IPv4头部中的“协议(protocol)”字段可以指示组播报文中的单播封装后的信息中是否包含组播信息,若单播封装为IPv6封装,则IPv6头部中的“下一包头(Next Header)”字段可以指示组播报文中的单播封装后的信息中是否包含组播信息。
需要说明的是,在本申请实施例中,一个节点(例如,节点a)向另一个节点(例如,节点b)发送的组播报文中的单播封装中的源地址可以为节点a的地址,也可以为组播树中的源节点的地址。例如,基于图10所示的示例,节点A向节点E发送的组播报文中的单播封装中的源地址可以为节点D的地址,也可以为节点A的地址。
需要说明的是,在本申请中的组播报文中不包括单播封装的情况下,节点可以通过组播报文中的组播路由标识确定组播报文的下一跳节点。例如,一个节点接收到组播报文,在该节点的组播路由标识为下文中的bit序列的情况下,该组播路由标识中值为1的bit对应的节点为该组播报文的下一跳节点,即该节点的子节点为该组播报文的下一跳节点。
S803,第一节点解析第一报文。
其中,第一节点解析第一报文可以是第一节点根据第一报文生成第二报文。第二报文可以包括:第一节点的组播路由信息,或者第三节点的组播路由信息。其中,第三节点为第一节点的子节点,第一节点的组播路由信息包括如下任一项:第一节点的组播路由标识和第三节点的组播路由信息、第一节点的组播路由标识、或者第一节点的组播路由标识和第三节点的组播路由标识。如果第三节点为第一节点的非叶子子节点,则第一节点的组播路由信息包括第一节点的组播路由标识和第三节点的组播路由信息。但是,如果第三节点为第一节点的叶子子节点,则第一节点的组播路由信息可以包括第三节点的组播路由标识,即包括第一节点的组播路由标识和第三节点的组播路由标识,或者也可以不包括第三节点的组播路由标识,即第一节点的组播路由信息可以只包括第一节点的组播路由标识。可以看出,第一节点可以较为灵活地处理第一报文。比如,如果第三节点支持由第三节点自行确定第三节点的组播路由信息,则第一节点可以执行与第二节点类似的操作,即向第三节点发送包含第一节点的组播路由信息的第二报文,以避免出现冗余报文,并节约第一节点的处理资源,提高运行效率。但是,如果第三节点不支持由第三节点自行确定第三节点的组播路由信息,则第一节点可以在确定第一节点的组播路由信息的基础上,进一步确定第三节点的组播路由信息,向第三节点发送只包含第三节点的组播路由信息的第二报文,保证第三节点可以正常处理第二报文,保证通信的可靠性。
其中,对于一个节点在组播树中的非叶子子节点而言,该节点的组播路由标识可以用于该非叶子子节点确定该非叶子子节点的组播路由信息。换言之,第一节点可以根据第一报文中第二节点的组播路由标识,确定第一节点的组播路由信息,从而根据第一节点的组播路由信息进行报文封装,获得第二报文。或者,第一节点确定第一节点的组播路由信息后,可以进一步确定第三节点的组播路由信息,从而根据第三节点的组播路由信息进行报文封装,获得第二报文。其中,确定组播路由信息的实现包括方式21和方式22,下面分别介绍。
方式21:
一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点在该节点对应的一个节点集合内的位置。该非叶子子节点在该节点对应的一个节点集合内的位置,用于该非叶子子节点确定该非叶子子节点的组播路由信息。以第 一节点为例,第一节点可以根据第二节点的组播路由标识,确定第一节点在第一节点集合内的位置,从而根据第一节点在第一节点集合内的位置,确定第一节点的组播路由信息。下面结合上述组播路由标识以上三种实现方式分别介绍。
在上述方式11中,一个节点的组播路由标识包括Cnt字段和X个Idx字段,Cnt字段用于指示该节点的子节点的个数为X,一个Idx字段用于指示该节点的一个子节点的标识。因此,该节点在组播树中的每个非叶子子节点可以根据Cnt字段和X个Idx字段,确定该非叶子子节点对应的一个Idx字段在X个Idx字段中的位置,该位置可以表示该非叶子子节点在对应的节点集合内的位置。以第一节点为例,第一节点根据第二节点的组播路由标识中的Cnt字段和X个Idx字段,确定第一节点对应的一个Idx字段在X个Idx字段中的位置,从而根据该位置,在第二节点的组播路由信息中确定出第一节点的组播路由信息。
具体而言,一个节点在组播树中的每个非叶子子节点上存储有上述Cnt字段对应的映射关系表,该映射关系表用于指示每个非叶子子节点对应的一个Idx字段与该非叶子子节点的对应关系,每个非叶子子节点对应的一个Idx字段在该映射关系表内的位置,可以指示该非叶子子节点在对应的节点集合内的位置。以第一节点为例,第一节点的第一映射关系表用于指示每个非叶子子节点(包含第一节点)对应的一个Idx字段与该非叶子子节点的对应关系。第一节点可以根据第二节点的组播路由标识查找第一映射关系表,以确定第一节点对应的一个Idx字段在第一映射关系表中的位置,比如第一节点对应的一个Idx字段是第一映射关系中的第几个Idx字段,也即第一节点在第一节点集合中的位置,比如第一节点是第一节点集合中第几个的子节点。第一节点在第一节点集合中的位置,可以用于指示第一节点的组播路由信息在第二节点的组播路由信息中的位置,即第一节点的组播路由信息是第二节点的组播路由信息中第几个组播路由信息,或者说第一节点的递归单元是第二节点包含的所有递归单元中的第几个递归单元。在组播路由信息等长的情况下,第一节点根据第一节点的组播路由信息在第二节点的组播路由信息中的位置,便可以确定第一节点的组播路由信息。
例如,基于图10所示的示例,节点A、节点B和节点C的映射关系表的一种示例可参见表3。
表3
Idx字段 节点
10 节点A
11 节点B
01 节点C
其中,节点D的组播路由标识为11101101,在节点D的组播路由标识中,Cnt字段的值为11,第1个Idx字段的值为10,第2个Idx字段的值为11,第3个Idx字段的值为01。节点A根据该Cnt字段的值为11确定需要查找表3。节点A根据第1个Idx字段的值为10查找表3,确定该第1个Idx字段为节点A对应的一个Idx字段,以及确定该节点A是对应的节点集合(包括节点A、节点B和节点C)中的第1个节点。如果节点A、节点B和节点C的组播路由信息的长度都是8bit,则节点A可以确定节点D的组播路由信息中,第1个8bit为节点A的组播路由信息。同理, 节点B根据Cnt字段的值为11,确定需要查找表3。节点B根据第1个Idx字段的值为10查找表3,确定该第1个Idx字段为节点A对应的一个Idx字段,并非节点B对应的一个Idx字段。节点B根据第2个Idx字段的值为11继续查找表3,确定该第2个Idx字段为节点B对应的一个Idx字段,以及确定该节点B是对应的节点集合中的第2个节点。这样,节点B可以确定节点D的组播路由信息中,第2个8bit为节点B的组播路由信息。同理,节点C根据Cnt字段的值为11,确定需要查找表3。节点C根据第1个Idx字段的值为10查找表3,确定该第1个Idx字段为节点A对应的一个Idx字段,并非节点C对应的一个Idx字段。节点C根据第2个Idx字段的值为11继续查找表3,确定该第2个Idx字段为节点B对应的一个Idx字段,并非节点C对应的一个Idx字段。节点C根据第3个Idx字段的值为01继续查找表3,确定该第3个Idx字段为节点C对应的一个Idx字段,以及确定该节点C是对应的节点集合中的第3个节点。这样,节点C可以确定节点D的组播路由信息中,第3个8bit为节点C的组播路由信息。
在上述方式12中,一个节点的bit序列包括N个第一字段,N为该节点对应的节点集合中的节点个数,一个第一字段用于指示节点集合中的一个节点是否为该节点在组播树中的子节点。因此,该节点在组播树中的每个非叶子子节点可以根据N个第一字段,确定该非叶子子节点对应的一个第一字段在N个第一字段中的位置,该位置可以表示该非叶子子节点在对应的节点集合内的位置。以第一节点为例,第一节点根据第二节点的bit序列中的N个第一字段,确定第一节点对应的一个第一字段在N个第一字段中的位置,从而根据该位置,在第二节点的组播路由信息中确定出第一节点的组播路由信息。
具体而言,一个节点在组播树中的每个非叶子子节点上存储有上述第一字段对应的映射关系表,该映射关系表用于指示每个非叶子子节点对应的一个第一字段与该非叶子子节点的对应关系,每个非叶子子节点对应的一个第一字段在该映射关系表内的位置,可以指示该非叶子子节点在对应的节点集合内的位置。以第一节点为例,第一节点的第一映射关系表用于指示每个非叶子子节点(包含第一节点)对应的一个第一字段的索引与该非叶子子节点的对应关系。第一节点可以查找第一映射关系表,确定第一节点对应的一个第一字段在N个第一字段中的位置,比如第一节点对应的一个第一字段是N个第一字段中的第几个第一字段,也即第一节点在第一节点集合中的位置。第一节点在第一节点集合中的位置,可以用于指示第一节点的组播路由信息在第二节点的组播路由信息中的位置。在组播路由信息等长的情况下,第一节点根据第一节点的组播路由信息在第二节点的组播路由信息中的位置,便可以确定第一节点的组播路由信息。
例如,基于图10所示的示例,节点A、节点B和节点C的映射关系表的一种示例可参见表4。
表4
索引(bit) 节点
1 节点A
2 节点B
3 节点C
其中,节点D的bit序列为111;节点A查找表4,确定节点A对应的一个第一字段是节点D的bit序列中的第1个bit,第1个bit的值为1,即节点A是节点D的子节点,节点D的组播路由信息包括节点A的组播路由信息。如果节点A、节点B和节点C的组播路由信息的长度都是8bit,则节点A可以确定节点D的组播路由信息中,第1个8bit为节点A的组播路由信息。同理,节点B查找表4,确定节点B对应的一个第一字段是bit序列中的第2个bit,第2个bit的值为1,即节点B是节点D的子节点,节点D的组播路由信息包括节点B的组播路由信息。这样,节点B可以确定节点D的组播路由信息中,第2个8bit为节点B的组播路由信息。同理,节点C查找表4,确定节点C对应的一个第一字段是bit序列中的第3个bit,第3个bit的值为1,即节点C是节点D的子节点,节点D的组播路由信息包括节点C的组播路由信息。这样,节点C可以确定节点D的组播路由信息中,第3个8bit为节点C的组播路由信息。此外,上述表4的索引也可以从0开始,即0、1、2、3等等,对此不限定。
在上述方式13中,一个节点的组播路由标识包括组标识,该组标识用于指示该节点对应的节点组,一个节点对应的节点组中的节点均为该节点的子节点。因此,该节点在组播树中的每个非叶子子节点可以根据组标识,确定该非叶子子节点是否为该节点组中的节点。如果该非叶子子节点是该节点组中的节点,则确定该非叶子子节点在该节点组中的位置。由于该节点组属于该非叶子子节点对应的节点集合,该非叶子子节点在该节点组中的位置,可认为是该非叶子子节点在对应的节点集合内的位置。以第一节点为例,第一节点根据第一组标识,确定第一节点为节点组中的节点,以及确定第一节点在该节点组中的位置,从而根据该位置,在第二节点的组播路由信息中确定出第一节点的组播路由信息。
具体而言,一个节点在组播树中的每个非叶子子节点上存储有映射关系表,该映射关系表用于指示上述组标识与该组标识指示的节点组的对应关系。以第一节点为例,第一节点的第一映射关系表用于第一组标识与第一标识指示的第一节点组的对应关系。第一节点可以根据第二节点的组播路由信息中的第一组标识,查找第一映射关系表,确定第一节点为第一节点组中的节点,并确定第一节点在第一节点组中的位置,比如第一节点是第一节点组中第几个的子节点。第一节点在第一节点组中的位置,可以用于指示第一节点的组播路由信息在第二节点的组播路由信息中的位置。在组播路由信息等长的情况下,第一节点根据第一节点的组播路由信息在第二节点的组播路由信息中的位置,便可以确定第一节点的组播路由信息。
例如,基于图10所示的示例,节点A、节点B和节点C的映射关系表的一种示例可参见表5。
表5
Figure PCTCN2022114357-appb-000005
其中,节点D的组播路由标识中的组标识为标识4,该标识4指示的节点组包括节点A、节点B和节点C。节点A根据标识4查找表5,确定节点A为节点组中的节点,且为第1个节点。如果节点A、节点B和节点C的组播路由信息的长度都是8bit,则节点A可以确定节点D的组播路由信息中,第1个8bit为节点A的组播路由信息。同理,节点B查找表5,确定节点B为节点组中的节点,且为第2个节点。节点B可以确定节点D的组播路由信息中,第2个8bit为节点B的组播路由信息。同理,节点C查找表5,确定节点C为节点组中的节点,且为第3个节点。节点C可以确定节点D的组播路由信息中,第3个8bit为节点C的组播路由信息。
方式22:一个节点的组播路由信息包括该节点的寻址字段,一个节点的组播路由标识和寻址字段,用于该节点在组播树中的非叶子子节点确定该非叶子子节点的组播路由信息。以第一节点为例,第一节点可以根据第二节点的组播路由标识,以及第二节点的寻址字段,确定第一节点的组播路由信息。
其中,一个节点的寻址字段用于指示该节点的子节点的组播路由信息的长度;或者,一个节点的寻址字段用于指示该节点的子节点的组播路由信息的起始位置或结束位置;或者,一个节点的寻址字段包括:多个定界字段,该节点的子节点的组播路由信息由多个定界字段分隔开。以第二节点为例,第二节点的寻址字段用于指示第二节点的子节点的组播路由信息的长度;或者,第二节点的寻址字段用于指示第二节点的子节点的组播路由信息的起始位置或结束位置;或者,第二节点的寻址字段包括多个定界字段,第二节点的子节点的组播路由信息由多个定界字段分隔开。下面分别对寻址字段的以上几种指示方式进行介绍。
第一种设计方案,一个节点的寻址字段用于指示该节点的非叶子子节点的组播路由信息的长度。
假设该节点为节点1,节点1的非叶子子节点有M个。节点1的寻址字段中可以包括M-1或M个字段(该字段记为第六字段),一个第六字段用于指示节点1的一个非叶子子节点的组播路由信息的长度(该长度记为Y),该第六字段的位宽可以为
Figure PCTCN2022114357-appb-000006
(此时,该第六字段指示的长度为该第六字段的值与1之和),或,
Figure PCTCN2022114357-appb-000007
Figure PCTCN2022114357-appb-000008
(此时,该第六字段指示的长度为该第六字段的值),或,固定位宽(例如,1字节、2字节)。节点1的组播信息如图16所示。其中,递归单元m表示节点1的第m+1个递归单元(即节点1的第m+1个非叶子子节点的组播路由信息)。递归单元m的长度(即节点1的第m+1个非叶子子节点的组播路由信息的长度)可以记为L m。m为大于等于0小于M的整数。
一些场景下,节点1的寻址字段可以指示节点1的M-1个递归单元的长度。M-1个递归单元可以为M个递归单元中的任意M-1个递归单元。该情况下,M个递归单元中的另一个递归单元可以根据第二字段指示的长度计算得到。例如,如图16所示,M-1个递归单元为递归单元0至递归单元M-2,即节点1的寻址字段指示L 0、L 1、…、L M-2。该情况下,若第二字段指示节点1的组播路由信息的长度(记为总长度1),递归单元M-1的长度=总长度1-(L 0+L 1+…+L M-2)-组播路由标识的长度-寻址字段的长度。若第二字段指示M个递归单元的总长度(记为总长度2),递归单元M-1的长度=总长度2-(L 0+L 1+…+L M-2)。
另一些场景下,如图16所示,节点1的寻址字段可以指示节点1的M个递归单元的长度,即节点1的寻址字段指示L 0、L 1、…、L M-1
假设节点1的非叶子子节点为节点2,节点2可以根据第二字段、组播路由标识和寻址字段的长度确定递归单元0的起始位置,再根据各个递归单元的长度确定每个递归单元的起始位置和/或结束位置,即确定出每个递归单元的位置。本申请提到的位置可以是相对于组播信息的起始位置的偏移,也可以是相对于组播报文中的其他某个位置的偏移。示例性地,基于图16所示的示例,以节点1的寻址字段指示节点1的M个递归单元的长度、第二字段指示总长度1、且递归单元的起始位置为相对于组播信息的起始位置的偏移为例,递归单元m的起始位置记为offset m,各个递归单元的起始位置可如表6所示。
表6
Figure PCTCN2022114357-appb-000009
第二种设计方案,一个节点的寻址字段用于指示该节点的子节点的组播路由信息的起始位置或结束位置。
假设该节点为节点1,节点1的非叶子子节点有M个。节点1的寻址字段中可以包括M-1或M个字段(该字段记为第六字段),一个第六字段用于指示节点1的一个非叶子子节点的组播路由信息的起始位置或结束位置。第六字段可以为固定几个bit(例如,4bit)或固定几个字节(例如,1字节)。为了方便描述,下文中以第六字段用于指示起始位置为例对第一种设计方案进行说明,第六字段用于指示结束位置的原理类似,可参考理解。节点1的组播信息可以如图17中的(a)或图17中的(b)或图17中的(c)所示。其中,递归单元m的起始位置(即节点1的第m+1个非叶子子节点的组播路由信息的起始位置)可以记为O m。在第二种设计方案中,递归单元M-1的长度可以通过第二字段指示的长度计算得到,计算的方法与第一种设计方案类似,可参考理解,不再赘述。或者,递归单元M-1的长度也可以由一个字段(记为第七字段)显示指示,此时,第二字段可以有也可以没有。若第二字段没有,则第七字段可以位于第二字段的位置,也可以位于其他位置,本申请不作限定。为了方便描述,下文中以存在第七字段时没有第二字段、且第七字段位于第二字段的位置为例进行说明。
第二种设计方案可以通过以下方式a或方式b实现。
方式a、节点1的寻址字段指示节点1的M-1个递归单元的起始位置。
其中,M-1个递归单元可以为递归单元1至递归单元M-1,即节点1的寻址字段指示O 1、O 2、…、O M-1。方式a的第一种可能的实现方式,参见图17中的(a),节点1的寻址字段指示O 1、O 2、…、O M-1。方式a的第二种可能的实现方式,参见图17中的(b),每个递归单元之前、且与该递归单元相邻的位置均有一个第六字段, 该第六字段用于指示下一个递归单元的起始位置。
假设节点1的非叶子子节点为节点2,节点2可以根据第二字段(或第七字段)、组播路由标识和寻址字段的长度确定递归单元0的起始位置,根据寻址字段确定递归单元1至递归单元M-1的起始位置,以及递归单元0至递归单元M-2的长度,再根据第二字段(或第七字段)确定递归单元M-1的长度,即确定出每个递归单元的位置。本申请提到的位置与第一种设计方案类似,可参考理解,不再赘述。示例性地,基于图17中的(b)所示的示例,以递归单元M-1的长度根据第七字段确定为例,各个递归单元的起始位置以及长度可如表7所示。
表7
Figure PCTCN2022114357-appb-000010
方式b、节点1的寻址字段指示节点1的M个递归单元的起始位置。
其中,节点1的寻址字段指示O 0、O 1、…、O M-1。该情况下,假设节点1的非叶子子节点为节点2,节点2可以根据寻址字段确定递归单元0至递归单元M-1的起始位置,以及递归单元0至递归单元M-2的长度,再根据第二字段或第七字段确定递归单元M-1的长度,即确定出每个递归单元的位置。本申请提到的位置与第一种设计方案类似,可参考理解,不再赘述。示例性地,基于图17中的(c)所示的示例,以递归单元M-1的长度根据第七字段确定为例,各个递归单元的起始位置以及长度可如表8所示。
表8
递归单元 递归单元的起始位置 递归单元的长度
递归单元0 O 0 O 1-O 0
递归单元1 O 1 O 2-O 1
递归单元M-1 O M-1 第七字段指示
第三种设计方案,一个节点的寻址字段包括多个定界字段,该节点的非叶子子节点的组播路由信息由多个定界字段分隔开。
其中,假设该节点为节点1,节点1的非叶子子节点有M个。节点1的寻址字段中可以包括M-1个定界字段,定界字段的长度可以为预先配置的。节点1的组播信息可参见图18。每两个递归单元之间可以存在一个定界字段。该情况下,递归单元M-1的长度可以通过第一字段指示的长度计算得到,计算的方法与第一种设计方案类似,可参考理解,不再赘述。或者,递归单元M-1的长度也可以由一个字段(记为第七字段)显示指示,此时,第二字段可以有也可以没有。若第二字段没有,第七字段可以位于第二字段的位置,也可以位于其他位置,本申请不作限定。为了方便描述,下文中以存在第七字段时没有第二字段、且第七字段位于第二字段的位置为例进 行说明。
假设节点1的非叶子子节点为节点2,节点2可以根据第二字段(或第七字段)和组播路由标识的长度确定递归单元0的起始位置,根据定界字段确定递归单元1至递归单元M-1的起始位置,以及递归单元0至递归单元M-2的长度,再根据第二字段(或第七字段)确定递归单元M-1的长度,即确定出每个递归单元的位置。本申请提到的位置与第一种设计方案类似,可参考理解,不再赘述。示例性地,基于图18所示的示例,以递归单元的起始位置为相对于组播信息的起始位置的偏移、递归单元M-1的长度根据第六字段确定为例,递归单元m的起始位置记为offset m,各个递归单元的起始位置以及长度可如表9所示。
表9
Figure PCTCN2022114357-appb-000011
以第一节点为例,根据上述方式21的介绍可知,第一节点可以确定该第一节点在第一节点集合中的位置,即确定第一节点的组播路由信息是第二节点的组播路由信息中的第几个组播路由信息,或者说是第一节点的递归单元是第二节点的所有递归单元中的的第几个递归单元。并且,结合上文对寻址字段的介绍可知,第一节点可以根据第二节点的寻址字段,确定每个递归单元的位置。如此,第一节点便可以确定出第一节点的递归单元,也即第一节点的组播路由信息。
结合上述方式21和方式22的介绍可以理解,如果第二节点的每个非叶子子节点的组播路由信息长度相同,则第一节点只根据第一节点在第一节点集合内的位置,也能够确定第一节点的组播路由信息。这种情况下,第二节点的组播路由信息可以不包括第二节点的寻址字段,以节约通信开销,提高通信效率。但是,如果第二节点的组播路由信息包括第二节点的寻址字段,则无论第二节点的每个非叶子子节点的组播路由信息是否长度相同,第一节点都能够确定第一节点的组播路由信息,使得每个非叶子子节点的组播路由信息的长度可以灵活设置,以适用更多场景。
第一节点确定出第一节点的组播路由信息后,可以根据第一节点的组播路由信息,生成第二报文。或者,第一节点确定出第一节点的组播路由信息后,还可以进一步确定第三节点的组播路由信息,根据第三节点的组播路由信息,生成第二报文。如此,第一节点可以向第三节点发送第二报文。其中,确定第三节点的组播路由信息,可参考上述确定第一节点的组播路由信息的相关介绍,不再赘述。
可选地,结合上述实施例,在第一种应用场景中,如图19所示,第一节点和第二节点为第一网络内的节点。第一报文还包括:第三头部和第四头部;第三头部包 括:第二节点的组播路由信息,可选地,也可以包括第二节点的组播信息;第四头部包括:第三网络的单播/组播信息。第一网络与第三网络不同,第一网络或第三网络可以是完整的网络,也可以是一个完整网络中的子网络,对此不限定。第一网络与第三网络的具体实现可以参考上述“6、网络”中的相关介绍,在此不予赘述。第三网络的单播/组播信息可以包括如下任一项:IP单播/组播信息信息、MPLS标签信息、或位串信息,对此不限定。也就是说,当第二节点向第一节点发送的第一报文不是直接发往第一节点,而需要经过普通节点转发,第二节点需要在第一报文内封装普通节点所在网络支持的单播/组播信息的头部,即包括第三网络的单播/组播信息的第四头部。第四头部可以是第一报文最外层的头部,以便普通节点识别并转发第一报文。其中,第二节点封装第三网络的单播/组播信息是在第三头部的外层,继续封装包括第三网络的单播/组播信息的第四头部,并不会剥除第三头部。第二节点能够理解或者说能够识别第三网络的单播/组播信息,或者不能够理解第三网络的单播/组播信息,对此不限定,第二节点是否能够理解第三网络的单播/组播信息,并不影响第二节点封装第三网络的单播/组播信息。
可选地,第一节点和/或第二节点也可以为第三网络内的节点,且可以是第三网络内的边缘节点,换言之,第一节点和/或第二节点既是支持组播路由信息转发的新组播节点,又是支持单播/组播信息转发的普通节点。因此,在部署时,可以通过在普通节点上使能新组播,使得普通节点成为支持组播路由信息转发的新组播节点,从而无需单独部署新组播节点,以进一步降低部署成本。
示例性地,第二节点存储有第一转发表,第一转发表中记录有第二节点的组播路由标识与第三网络的单播/组播信息的对应关系。第二节点可以根据第一转发表在第一报文中封装第四头部,下面具体介绍。
方式31,第三网络的单播/组播信息是IP单播信息,第一转发表中记录有第二节点的组播路由标识与第三网络的IP单播信息的对应关系。可以理解,第二节点的组播路由标识的实现方式有三种,即上述方式11、方式12和方式13,下面结合这三种方式进行介绍。
在上述方式11中,一个节点的组播路由标识包括Cnt字段和X个Idx字段。以第二节点为例,第二节点的组播路由标识中的Cnt字段用于指示第二节点的子节点个数,第二节点的组播路由标识中的一个Idx字段用于指示对应的一个子节点的标识,Idx字段和X个Cnt字段用于指示第一报文需要发往这X个子节点。在此基础上,第一转发表中可以记录Cnt字段、子节点的IP单播信息、以及出端口的对应关系。第二节点可以根据第二节点的组播路由标识查找第一转发表,确定对应的X个IP单播信息和出端口。第二节点可以将报文复制X份,在每份报文中封装包括对应的一个IP单播信息的第四头部,获得X个第一报文。如此,第二节点可以通过X个第一报文各自对应的出端口,向每个子节点(包括第一节点)发送对应的一份第一报文。
例如,基于图20所示的示例,节点A-节点H(实线节点)是组播树内的节点,即是网络内1的节点,节点D与节点A-节点C之间还包括4个普通节点,即非组播树内的节点,分别是节点R1、节点R2、节点R3和节点R4(虚线节点),节点R1-节点R4是网络2内的节点。节点A-节点D中任一个节点可以是网络2内的节点, 也可以不是网络2内的节点。节点D的第一转发表的一种示例可如表10所示。
表10
Idx字段 IP单播信息 端口
10 10.1.1.1 端口1
11 10.1.1.2 端口2
01 10.1.1.3 端口2
其中,节点D的组播路由标识为11101101,在节点D的组播路由标识中,Cnt字段的值为11,第1个Idx字段的值为10,第2个Idx字段的值为11,第3个Idx字段的值为01。节点D根据该Cnt字段的值为11确定需要查找表10。节点D根据第1个Idx字段的值为10查找表10,确定该第1个Idx字段对应的IP单播信息为IP单播地址10.1.1.1,以及对应的端口为端口1。节点D可以在报文中封装包括IP单播地址10.1.1.1的外层头部中(记为单播报文1),并通过端口1向节点A发送单播报文1。节点D根据第2个Idx字段的值为11查找表10,确定该第2个Idx字段对应的IP单播信息为IP单播地址10.1.1.2,以及对应的端口为端口2。节点D可以在报文中封装包括IP单播地址10.1.1.2的外层头部中(记为单播报文2),并通过端口2向节点B发送单播报文1。节点D根据第3个Idx字段的值为01查找表10,确定该第3个Idx字段对应的IP单播信息为IP单播地址10.1.1.3,以及对应的端口为端口2。节点D可以在报文中封装包括IP单播地址10.1.1.3的外层头部中(记为单播报文3),并通过端口2向节点C发送单播报文1。
在上述方式12中,一个节点的bit序列包括N个第一字段,N为该节点对应的节点集合中的节点个数,一个第一字段用于指示该节点是否需要向该第一字段对应的一个潜在子节点发送报文,比如该第一字段的值为1,用以指示该节点需要向该第一字段对应的一个潜在子节点发送报文;该第一字段的值为0,用以指示该节点不需要向该第一字段对应的一个潜在子节点发送报文。以第二节点为例,一个第一字段用于指示第二节点是否需要向该第一字段对应的一个潜在子节点发送第二报文。在此基础上,第一转发表中可以记录第一字段、潜在子节点的IP单播信息、以及出端口的对应关系。第二节点可以根据第二节点的bit序列查找第一转发表,确定对应的IP单播信息和出端口。第二节点可以按IP单播信息的数量,将报文复制对应的份数,并在每份报文中封装包括对应的一个IP单播信息的第四头部,从而获得对应份数的第三报文。如此,第二节点可以通过每份第三报文对应的一个出端口,向每个潜在子节点(包括第一节点)发送对应的一份第三报文。
例如,基于图20所示的示例,节点D的第一转发表的一种示例可如表11所示。
表11
索引(bit) IP单播信息 端口
1 10.1.1.1 端口1
2 10.1.1.2 端口2
3 10.1.1.3 端口2
其中,节点D的bit序列为111,节点A对应的一个第一字段为bit序列111中 的第1个bit,也即表11中索引为1的bit,节点B对应的一个第一字段为bit序列111中的第2个bit,也即表11中索引为2的bit,节点C对应的一个第一字段为bit序列111中的第3个bit,也即表11中索引为3的bit。对于节点D而言,由于bit序列111中的第1个bit的取值为1,节点D根据第1个bit查找表11,确定该第1个bit对应的IP单播信息为IP单播地址10.1.1.1,以及对应的端口为端口1。节点D可以在报文中封装包括IP单播地址10.1.1.1的外层头部中(记为单播报文1),并通过端口1向节点A发送单播报文1。由于bit序列111中的第2个bit的取值为1,节点D根据第2个bit查找表11,确定该第1个bit对应的IP单播信息为IP单播地址10.1.1.2,以及对应的端口为端口2。节点D可以在报文中封装包括IP单播地址10.1.1.2的外层头部中(记为单播报文2),并通过端口2向节点B发送单播报文2。由于bit序列111中的第3个bit的取值为1,节点D根据第3个bit查找表11,确定该第3个bit对应的IP单播信息为IP单播地址10.1.1.3,以及对应的端口为端口2。节点D可以在报文中封装包括IP单播地址10.1.1.3的外层头部中(记为单播报文3),并通过端口2向节点C发送单播报文3。
在上述方式13中,一个节点的组播路由标识包括组标识,该组标识用于指示该节点对应的节点组。以第二节点为例,第二节点的组播路由标识中的第一组标识用于指示第一节点组,且指示第一报文需要发往第一节点组,即需要发往第一节点组中的节点(包括第一节点)。在此基础上,第一转发表中可以记录组标识、节点组内各节点的IP单播信息、以及出端口的对应关系。第二节点可以根据第二节点的组播路由标识中的第一组标识查找第一转发表,确定对应的IP单播信息和出端口。第二节点可以按IP单播信息的数量,将报文复制对应的份数,并在每份报文中封装包括对应的一个IP单播信息的第四头部,从而获得对应份数的第一报文。如此,第二节点可以通过每份第一报文对应的一个出端口,向第一节点组内的每个节点(包括第一节点)发送对应的一份第一报文。
例如,基于图20所示的示例,节点D的第一转发表的一种示例可如表12所示。
表12
Figure PCTCN2022114357-appb-000012
其中,节点D的组播路由标识中的组标识为标识4。节点D根据标识4查找表12,确定标识4对应的IP单播信息包括IP单播地址10.1.1.1、IP单播地址10.1.1.2和IP单播地址10.1.1.3,以及对应的端口包括端口0和端口1。节点D可以在报文中封装包括IP单播地址10.1.1.1的外层头部中(记为单播报文1),并通过端口1向节点A发送单播报文1。节点D可以在报文中封装包括IP单播地址10.1.1.2的外层头部中(记为单播报文2),并通过端口2向节点B发送单播报文2。节点D可以在报 文中封装包括IP单播地址10.1.1.3的外层头部中(记为单播报文3),并通过端口2向节点C发送单播报文3。
方式32,第三网络的单播/组播信息是IP组播信息,第一转发表中记录有第二节点的组播路由标识与第三网络的IP组播信息的对应关系。可以理解,第二节点的组播路由标识的实现方式有三种,即上述方式11、方式12和方式13,下面结合这三种方式进行介绍。
在方式11中,第一转发表中可以记录第二节点的组播路由标识整体,即包括Cnt字段和X个Idx字段、IP组播信息、以及出端口的对应关系,以指示第一报文需要发往该IP组播信息对应的组播组(包括第一节点)。第二节点可以根据第二节点的组播路由标识查找第一转发表,确定对应的IP组播信息和出端口。第二节点可以在报文中封装包括IP组播信息的第四头部,从而获得第一报文。第二节点可以通过第一报文对应的出端口,向组播组(包括第一节点)发送第一报文。
例如,基于图20所示的示例,节点D的第一转发表的一种示例可如表13所示。
表13
Figure PCTCN2022114357-appb-000013
其中,节点D的组播路由标识为11101101。节点D根据组播路由标识11101101查找表13,确定对应的IP组播信息为IP组播地址224.1.1.1,以及对应的端口为端口1。节点D可以将IP组播地址224.1.1.1封装到报文的外层头部中(记为组播报文1),并通过端口1和端口2向组播组(包括节点A、节点B和节点C)发送组播报文1。
在方式12中,第一转发表中可以记录第二节点的bit序列、IP组播信息以及出端口的对应关系,以指示第一报文需要发往该IP组播信息对应的组播组(包括第一节点)。第二节点可以根据第二节点的bit序列查找第一转发表,确定对应的IP组播信息和出端口。第二节点可以在报文中封装包括IP组播信息的第四头部,从而获得第一报文。第二节点可以通过第一报文对应的出端口,向组播组(包括第一节点)发送第一报文。
例如,基于图20所示的示例,节点D的第一转发表的一种示例可如表14所示。
表14
bit序列 IP组播信息 端口
111 224.1.1.1 端口1、端口2
其中,节点D的bit序列为111。节点D根据bit序列111查找表14,确定对应的IP组播信息为IP组播地址224.1.1.1,以及对应的端口为端口1。节点D可以将IP组播地址224.1.1.1封装到报文的外层头部中(记为组播报文1),并通过端口1和端口2向组播组(包括节点A、节点B和节点C)发送组播报文1。
在上述方式13中,第一转发表中可以记录组标识、IP组播信息、以及出端口的 对应关系,以指示报文需要发往该IP组播信息对应的组播组(包括第一节点)。第二节点可以根据第二节点的组播路由标识中的第一组标识查找第一转发表,确定对应的IP组播信息和出端口。第二节点可以在报文中封装包括IP组播信息的第四头部,从而获得第一报文。第二节点可以通过第一报文对应的出端口,向组播组(包括第一节点)发送第一报文。
例如,基于图20所示的示例,节点F的第一转发表的一种示例可如表15所示。
表15
组标识 IP组播信息 端口
标识4 224.1.1.1 端口1、端口2
标识5 224.1.1.2 端口2
其中,节点D的组播路由标识中的组标识为标识4。节点D根据标识4查找表15,确定对应的IP组播信息为IP组播地址224.1.1.1,以及对应的端口为端口1。节点D可以将IP组播地址224.1.1.1封装到报文的外层头部中(记为组播报文1),并通过端口1和端口2向组播组(包括节点A、节点B和节点C)发送组播报文1。
方式33,第三网络的单播/组播信息是MPLS标签信息,第一转发表中记录有第二节点的组播路由标识与MPLS标签信息的对应关系。可以理解,第二节点的组播路由标识的实现方式有三种,即上述方式11、方式12和方式13,下面结合这三种方式进行介绍。
在上述方式11中,第一转发表中可以记录该第二节点的组播路由标识整体,即包括Cnt字段和X个Idx字段、MPLS标签信息、以及出端口的对应关系,具体实现与上述方式32类似,可参考方式32理解,不再赘述。
例如,基于图20所示的示例,节点D的第一转发表的一种示例可如表16所示。
表16
Figure PCTCN2022114357-appb-000014
其中,节点D的组播路由标识为11101101。节点D根据组播路由标识11101101查找表16,确定对应的标签列表包括MPLS标签100、MPLS标签001和MPLS标签101,以及对应的端口包括端口1和端口2。节点D可以将MPLS标签100封装到报文的外层头部中(记为隧道报文1),并通过端口1向节点A发送隧道报文1。节点D可以将MPLS标签001封装到报文的外层头部中(记为隧道报文2),并通过端口2向节点B发送隧道报文2。节点D可以将MPLS标签101封装到报文的外层头部中(记为隧道报文3),并通过端口2向节点C发送隧道报文3。
在上述方式12中,第一转发表中可以记录该第二节点的bit序列、MPLS标签信息以及出端口的对应关系,具体实现与上述方式32类似,可参考方式32理解,不再赘述。
例如,基于图20所示的示例,节点D的第一转发表的一种示例可如表17所示。
表17
Figure PCTCN2022114357-appb-000015
其中,节点D的bit序列为111。节点D根据bit序列111查找表17,确定对应的标签列表包括MPLS标签100、MPLS标签001和MPLS标签101,以及对应的端口包括端口1和端口2。节点D可以将MPLS标签100封装到报文的外层头部中(记为隧道报文1),并通过端口1向节点A发送隧道报文1。节点D可以将MPLS标签001封装到报文的外层头部中(记为隧道报文2),并通过端口2向节点B发送隧道报文2。节点D可以将MPLS标签101封装到报文的外层头部中(记为隧道报文3),并通过端口2向节点C发送隧道报文3。
在上述方式13中,第一转发表中可以记录组标识、MPLS标签信息、以及出端口的对应关系,具体实现与上述方式32类似,可参考方式32理解,不再赘述。
例如,基于图20所示的示例,节点D的第一转发表的一种示例可如表18所示。
表18
Figure PCTCN2022114357-appb-000016
其中,节点D的组播路由标识中的组标识为标识4。节点D根据标识4查找表18,确定对应的标签列表包括MPLS标签100、MPLS标签001和MPLS标签101,以及对应的端口包括端口1和端口2。节点D可以将MPLS标签100封装到报文的外层头部中(记为隧道报文1),并通过端口1向节点A发送隧道报文1。节点D可以将MPLS标签001封装到报文的外层头部中(记为隧道报文2),并通过端口2向节点B发送隧道报文2。节点D可以将MPLS标签101封装到报文的外层头部中(记为隧道报文3),并通过端口2向节点C发送隧道报文3。
方式34,第三网络的单播/组播信息是位串信息,即第三网络支持BIER组播,第一转发表中记录有第二节点的组播路由标识与MPLS标签信息的对应关系。可以理解,第二节点的组播路由标识的实现方式有三种,即上述方式11、方式12和方式13,下面结合这三种方式进行介绍。
在上述方式11中,第一转发表中可以记录该第二节点的组播路由标识整体,即包括Cnt字段和X个Idx字段、位串信息、以及邻居设备的对应关系。第二节点可以根据第二节点的组播路由标识查找第一转发表,确定对应的位串信息和邻居设备。第 二节点可以在报文中封装包括位串信息的第四头部,从而获得第一报文。第二节点可以通过邻居设备对应的出端口,向第一节点发送第一报文。
例如,基于图20所示的示例,节点D的第一转发表的一种示例可如表19所示。
表19
Figure PCTCN2022114357-appb-000017
其中,节点D的组播路由标识为11101101。节点D根据组播路由标识11101101查找表19,确定对应的位串信息包括位串信息100和位串信息011。其中,位串信息100对应的邻居设备为节点R2,表示发往节点A的组播报文需要经过节点R2,位串信息011对应的邻居设备为节点R1,表示发往节点B和节点C的组播报文需要经过节点R1。节点D可以将位串信息100封装到报文中(记为组播报文2),并通过节点R2对应的端口发送组播报文2。节点D可以将位串信息0011分别封装到两份报文中(记为组播报文3和组播报文4),并通过节点R1对应的端口发送组播报文3和组播报文4。
在上述方式12中,第一转发表中可以记录第二节点的bit序列、位串信息、以及邻居设备的对应关系。第二节点可以根据第二节点的bit序列查找第一转发表,确定对应的位串信息和邻居设备。第二节点可以在报文中封装包括位串信息的第四头部,从而获得第一报文。第二节点可以通过邻居设备对应的出端口,向第一节点发送第一报文。
例如,基于图20所示的示例,节点D的第一转发表的一种示例可如表20所示。
表20
Figure PCTCN2022114357-appb-000018
其中,节点D的bit序列0111。节点D根据bit序列111查找表20,确定对应的位串信息包括位串信息100和位串信息011。节点D可以将位串信息100封装到报文中(记为组播报文2),并通过节点R2对应的端口发送组播报文2。节点D可以将位串信息011分别封装到两份报文中(记为组播报文3和组播报文4),并通过节点R1对应的端口发送组播报文3和组播报文4。
在上述方式13中,第一转发表中可以记录组标识、位串信息、以及邻居设备的对应关系。第二节点可以根据第二节点的组播路由标识中的第一组标识查找第一转发表,确定对应的位串信息和邻居设备。第二节点可以在报文中封装包括位串信息的第四头部,从而获得第一报文。第二节点可以通过邻居设备对应的出端口,向第一节点 发送第一报文。
例如,基于图20所示的示例,节点E的第一转发表的一种示例可如表21所示。
表21
Figure PCTCN2022114357-appb-000019
其中,节点D的组播路由标识中的组标识为标识4。节点D根据标识4查找表21,确定对应的位串信息包括位串信息100和位串信息011。节点D可以将位串信息100封装到报文中(记为组播报文2),并通过节点R2对应的端口发送组播报文2。节点D可以将位串信息011分别封装到两份报文中(记为组播报文3和组播报文4),并通过节点R1对应的端口发送组播报文3和组播报文4。
可以理解,上述表19-表21仅为一种示例,不作为限定。比如,表19-表21中的邻居设备这一项可以配置为对应的出端口,即节点E可以不感知或者不配置普通节点的拓扑关系,直接通过出端口发送组播报文。
结合上述方式31-方式34,可以看出,从报文转发角度而言,通过封装单播/组播信息,可以实现第一报文的跨网络转发,使得转发不再受限。从设备部署角度而言,新组播节点,也即第一节点和第二节点,与普通节点可以混合部署,比如新组播节点可以插花式的小批量部署在普通节点中,从而可以降低新组播节点的部署数量,以降低部署难度和部署成本。
可选地,结合上述实施例,在第二种应用场景中,如图21所示,第一节点和第三节点为第一网络内的节点,第二报文还可以包括:第一头部和第二头部,第一头部包括:上述第三节点的组播路由信息,或者上述第一节点的组播路由信息,第二头部包括:第二网络的单播/组播信息。第二网络的单播/组播信息可以包括如下任一项:IP单播/组播信息信息、MPLS标签信息、或位串信息,对此不限定。也就是说,当第一节点向第三节点发送的第二报文不是直接发往第三节点,而需要经过普通节点转发,第一节点需要在第二报文内封装普通节点所在网络支持的单播/组播信息的头部,即包括第二网络的单播/组播信息的第二头部。第二头部可以是第二报文最外层的头部,以便普通节点识别并转发第二报文。其中,第二网络与第三网络可以相同或不同,第二网络或第三网络可以是完整的网络,也可以是一个完整网络中的子网络,对此不限定。第二网络与第三网络的具体实现可以参考上述“6、网络”中的相关介绍,在此不予赘述。第一节点封装第二网络的单播/组播信息是在第一头部的外层,继续封装包括第二网络的单播/组播信息的第二头部,并不会剥除第一头部。第一节点能够理解或者说能够识别第二网络的单播/组播信息,或者不能够理解第二网络的单播/组播信息,对此不限定,第一节点是否能够理解第二网络的单播/组播信息,并不影响第一节点封装第二网络的单播/组播信息。
可选地,第一节点和/或第三节点也可以为第二网络内的节点,且可以是第二网 络内的边缘节点,换言之,第一节点和/或第三节点既是支持组播路由信息转发的新组播节点,又是支持单播/组播信息转发的普通节点。因此,在部署时,可以通过在普通节点上使能新组播,使得普通节点成为支持组播路由信息转发的新组播节点,从而无需单独部署新组播节点,以进一步降低部署成本。需要指出的是,如果第一节点既是第二网络内的节点,又是第三网络内的节点,则在第二网络与第三网络不同的情况下,第一节点便是同属多个网络的节点,从而可以被称为共享节点。如果第一节点是第二网络内或者第三网络内的节点,则对于第二网络或第三网络不同而言,第一节点便是属于单个网络的节点,从而可以被称为独享节点。
示例性地,第一节点存储有第二转发表,第二转发表中记录有第一节点的组播路由标识与第二网络的单播/组播信息的对应关系。第一节点可以根据第二转发表在第二报文中封装第二头部。其中,第一节点根据第二转发表在第二报文中封装第二头部的实现原理与上述方式31-方式34类似,可以参考方式31-方式34理解,在此不再赘述。
例如,基于图20所示的示例,节点A与节点E之间还包括1个普通节点,为节点R5,属于网络3中的节点。节点A与节点F之间还包括1个普通节点,为节点R6,属于网络4中的节点。节点B与节点H之间还包括1个普通节点,为节点R7,属于网络5中的节点。网络2、网络3、网络4和网络5可以是相同的网络,也可以是不同的网络,对此不限定。节点A和节点E可以是网络3中的节点,也可以不是网络3中的节点;节点A和节点F可以是网络4中的节点,也可以不是网络4中的节点;节点B和节点H可以是网络5中的节点,也可以不是网络5中的节点,对此不限定。该情况下,节点A向节点E和节点F转发报文,节点B向节点H的实现原理与上述节点D类似,可以参考上述方式31-方式34理解,不予赘述。
可选地,结合上述实施例,在第三种应用场景中,第一节点也可能为第二节点的叶子子节点。这种情况下,第一节点还可以根据第一报文,生成第三报文,并向第一设备发送第三报文。其中,第三报文包括:第一设备的单播/组播信息,即第三报文可以是单播报文也可以是组播报文。第一设备的单播/组播信息可以包括如下任一项:IP单播/组播信息信息、MPLS标签信息、或位串信息。也就是说,第一设备不是组播树内的节点,如果想要将报文发往第一设备,则第一节点需要在报文中封装第一设备所在网络支持的单播/组播信息,以实现跨网络转发,将报文从第一节点和第二节点所在的网络发往第一设备所在网络,并最终发往第一设备。第一节点能够理解或者说能够识别第一设备所在网络支持的单播/组播信息,或者不能够理第一设备所在网络支持的单播/组播信息,第一节点是否能够第一设备所在网络支持的单播/组播信息,并不影响第一节点封装第一设备所在网络支持的单播/组播信息。第一节点在报文中封装第一设备所在网络支持的单播/组播信息的方式有两种,分别为方式41和方式42,下面具体介绍。
方式41:
在第一报文中,第二节点的组播路由信息包括第一节点的组播路由标识。第一节点存储有第三转发表,第三转发表中记录有第一节点的组播路由标识与第一设备的单播/组播信息的对应关系,第一节点可以根据第三转发表生成第三报文。
第一种实施方式中,第一设备的单播/组播信息是IP单播信息,第三转发表中记录有第一节点的组播路由标识与IP单播信息的对应关系。可以理解,第一节点的组播路由标识的实现方式有三种,即上述方式11、方式12和方式13,下面结合这三种方式进行介绍。
在上述方式11中,一个节点的组播路由标识包括Cnt字段和X个Idx字段。此时,对于叶子子节点而言,叶子子节点的组播路由标识中的Cnt字段可以用于指示叶子子节点下游的设备个数,叶子子节点的组播路由标识中的一个Idx字段用于指示对应的一个设备的标识,Idx字段和X个Cnt字段用于配合指示报文需要发往这X个下游设备。以第一节点为例,第一节点的组播路由标识中的Cnt字段用于指示第一设备的个数,第一节点的组播路由标识中的一个Idx字段用于指示对应的一个第一设备的标识,Idx字段和X个Cnt字段用于指示第三报文需要发往这X个第一设备。在此基础上,第三转发表中可以记录Cnt字段、第一设备的IP单播信息、以及出端口的对应关系。第一节点可以根据第一节点的组播路由标识查找第三转发表,确定对应的X个IP单播信息和出端口。如图22所示,第一节点可以剥除第二报文中第二节点的组播信息,获得剥除后的报文。第一节点可以将剥除后的报文复制X份,并将每个IP单播信息封装到对应的一份报文的IP头部中,获得X个第三报文。如此,第一节点可以通过X个第三报文各自对应的出端口,向每个第一设备发送对应的一份第三报文。
例如,基于图20所示的示例,节点C的第三转发表的一种示例可如表22所示。
表22
Idx字段 IP单播信息 端口
1 10.1.1.4 端口1
0 10.1.1.5 端口2
其中,节点C的组播路由标识为110,在节点C的组播路由标识中,Cnt字段的值为1,第1个Idx字段的值为1,第2个Idx字段的值为0。节点C根据该Cnt字段的值为1确定需要查找表10。节点C根据第1个Idx字段的值为1查找表22,确定该第1个Idx字段对应的IP单播信息为IP单播地址10.1.1.4,以及对应的端口为端口1。节点C可以剥除报文中节点D的组播信息,将IP单播地址10.1.1.4封装到报文的IP头部中(记为单播报文4),并通过端口1向设备1发送单播报文4。节点C根据第2个Idx字段的值为0查找表22,确定该第2个Idx字段对应的IP单播信息为IP单播地址10.1.1.5,以及对应的端口为端口2。节点C可以剥除报文中节点D的组播信息,将IP单播地址10.1.1.5封装到报文的IP头部中(记为单播报文5),并通过端口2向设备2发送单播报文5。此外,设备1和设备2是网络9中的设备,节点C可以是网络9中的节点,也可以不是网络9中的节点。
在上述方式12中,一个节点的bit序列包括N个第一字段,N为该节点对应的节点集合中的节点个数。此时,对于叶子子节点而言,叶子子节点对应的节点集合可以包括叶子子节点的部分或全部潜在子节点,即可以包括叶子子节点的上游节点,以及叶子子节点的所有下游设备,一个第一字段用于指示叶子子节点是否需要向该第一 字段对应的一个潜在子节点发送报文,比如该第一字段的值为1,用以指示该叶子子节点需要向该第一字段对应的一个潜在子节点发送报文;该第一字段的值为0,用以指示叶子子节点不需要向该第一字段对应的一个潜在子节点发送报文。以第一节点为例,一个第一字段用于指示第一节点是否需要向该第一字段对应的一个第一设备发送第三报文。在此基础上,第三转发表中可以记录第一字段、第一设备的IP单播信息、以及出端口的对应关系。第一节点可以根据第一节点的bit序列查找第三转发表,确定对应的IP单播信息和出端口。如图22所示,第一节点可以剥除第二报文中第二节点的组播信息,获得剥除后的报文。第一节点按IP单播信息的数量,将剥除后的报文复制对应的份数,并将每个IP单播信息封装到对应的一份报文封装的IP头部中,获得第三报文。如此,第一节点可以通过第三报文对应的出端口,向第一设备发送对应的第三报文。
例如,基于图20所示的示例,节点E的第三转发表的一种示例可如表23所示。
表23
索引(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
其中,节点E的bit序列为0111,节点A对应的一个第一字段为bit序列0111中的第1个bit,也即表11中索引为1的bit,设备3对应的一个第一字段为bit序列0111中的第2个bit,也即表11中索引为2的bit,设备4对应的一个第一字段为bit序列0111中的第3个bit,也即表11中索引为3的bit,设备5对应的一个第一字段为bit序列0111中的第4个bit,也即表11中索引为4的bit。对于节点E而言,由于bit序列0111中的第1个bit的取值为0,节点E跳过该bit,查找bit序列0111中的第2个bit。由于bit序列0111中的第2个bit的取值为1,节点E根据第2个bit查找表23,确定该第2个bit对应的IP单播信息为IP单播地址10.1.1.6,以及对应的端口为端口1。节点E可以剥除报文中节点A的组播信息,将IP单播地址10.1.1.6封装到报文的IP头部中(记为单播报文6),并通过端口1向设备3发送单播报文6。由于bit序列0111中的第3个bit的取值为1,节点E根据第3个bit查找表23,确定该第3个bit对应的IP单播信息为IP单播地址10.1.1.7,以及对应的端口为端口1。节点E可以剥除报文中节点A的组播信息,将IP单播地址10.1.1.7封装到报文的IP头部中(记为单播报文7),并通过端口1向设备4发送单播报文7。由于组播路由标识0111中的第4个bit的取值为1,节点E根据第4个bit查找表23,确定该第4个bit对应的IP单播信息为IP单播地址10.1.1.8,以及对应的端口为端口2。节点E可以剥除报文中节点A的组播信息,将IP单播地址10.1.1.8封装到报文的IP头部中(记为单播报文8),并通过端口2向设备5发送单播报文8。此外,设备3、设备4和设备5是网络6中的设备,节点E可以是网络6中的节点,也可以不是网络6中的节点。
在上述方式13中,一个节点的组播路由标识包括组标识,该组标识用于指示该 节点对应的节点组。此时,对于叶子子节点而言,叶子子节点对应的节点组中的节点均为该叶子子节点的下游设备,且报文需要发往这些下游设备。以第一节点为例,第一节点的组播路由标识中的第二组标识用于指示第二节点组,即指示第三报文需要发往第二节点组。在此基础上,第三转发表中可以记录组标识、节点组中各设备的IP单播信息、以及出端口的对应关系。第一节点可以根据第一节点的组播路由标识中的第二组标识查找第三转发表,确定对应的IP单播信息和出端口。如图22所示,第一节点可以剥除第二报文中第二节点的组播信息,获得剥除后的报文。第一节点按IP单播信息的数量,将剥除后的报文复制对应的份数,并将每个IP单播信息封装到对应的一份报文封装的IP头部中,获得第三报文。如此,第一节点可以通过第三报文对应的出端口,向第一设备发送对应的第三报文。
例如,基于图20所示的示例,节点E的第三转发表的一种示例可如表24所示。
表24
Figure PCTCN2022114357-appb-000020
其中,节点E的组播路由标识中的组标识为标识6。节点E根据标识6查找表24,确定标识6对应的IP单播信息包括IP单播地址10.1.1.6、IP单播地址10.1.1.7和IP单播地址10.1.1.8,以及对应的端口包括端口1和端口2。节点E可以剥除报文中节点A的组播信息,将IP单播地址10.1.1.6封装到报文的IP头部中(记为单播报文6),并通过端口1向设备3发送单播报文6。节点E可以剥除报文中节点A的组播信息,将IP单播地址10.1.1.7封装到报文的IP头部中(记为单播报文7),并通过端口1向设备4发送单播报文7。节点E可以剥除报文中节点A的组播信息,将IP单播地址10.1.1.8封装到报文的IP头部中(记为单播报文8),并通过端口2向设备5发送单播报文8。
第二种实施方式中,第一设备的单播/组播信息是IP组播信息,即第一设备是组播组内的设备,第三转发表中记录有第一节点的组播路由标识与IP组播信息的对应关系。可以理解,第一节点的组播路由标识的实现方式有三种,即上述方式11、方式12和方式13,下面结合这三种方式进行介绍。
在上述方式11中,一个节点的组播路由标识包括Cnt字段和X个Idx字段。以第一节点为例,第一节点的组播路由标识也包括Cnt字段和X个Idx字段。在此基础上,第三转发表中可以记录组播路由标识整体,即包括Cnt字段和X个Idx字段、IP组播信息、以及出端口的对应关系,以指示报文需要发往该IP组播信息对应的组播组。第一节点可以根据第一节点的组播路由标识查找第三转发表,确定对应的IP组播信息和出端口。如图22所示,第一节点可以剥除第二报文中第二节点的组播信息,获得剥除后的报文,并将IP组播信息封装到剥除后的报文的IP头部中,获得第三报文。如此,第一节点可以通过第三报文对应的出端口,向对应的组播组(包括第 一设备)发送第三报文。
例如,基于图20所示的示例,节点F的第三转发表的一种示例可如表25所示。
表25
Idx字段+X个Idx字段 IP组播信息 端口
11 224.1.1.3 端口1
其中,节点F的组播路由标识为11,在节点F的组播路由标识中,Cnt字段的值为1,Idx字段的值为1。节点F根据组播路由标识11查找表25,确定对应的IP组播信息为IP组播地址224.1.1.3,以及对应的端口为端口1。节点F可以剥除报文中节点A的组播信息,将IP组播地址224.1.1.3封装到报文的IP头部中(记为组播报文5),并通过端口1向组播组内的设备6发送组播报文5。此外,设备6是网络7中的设备,节点F可以是网络7中的节点也可以不是网络7中的节点。
在上述方式12中,一个节点的bit序列包括N个第一字段。以第一节点为例,第一节点的bit序列也包括N个第一字段。在此基础上,第三转发表中可以记录该bit序列与IP组播信息以及出端口的对应关系,以指示第三报文需要发往该IP组播信息对应的组播组。第一节点可以根据第一节点的bit序列查找第三转发表,确定对应的IP组播信息和出端口。第一节点可以剥除第二报文中第二节点的组播信息,获得剥除后的报文,并将IP组播信息封装到剥除后的报文的IP头部中,获得第三报文。如此,第一节点可以通过第三报文对应的出端口,向对应的组播组(包括第一设备)发送第三报文。
例如,基于图20所示的示例,节点F的第三转发表的一种示例可如表26所示。
表26
bit序列 IP组播信息 端口
01 224.1.1.3 端口1
其中,节点F的bit序列为01。节点F根据bit序列01查找表26,确定对应的IP组播信息为IP组播地址224.1.1.3,以及对应的端口为端口1。节点F可以剥除报文中节点A的组播信息,将IP组播地址224.1.1.3封装到报文的IP头部中(记为组播报文5),并通过端口1向组播组内的设备6发送组播报文5。
在上述方式13中,一个节点的组播路由标识包括组标识。以第一节点为例,第一节点的组播路由标识包括第二组标识。在此基础上,第三转发表中可以记录组播路由标识中的组标识、IP组播信息、以及出端口的对应关系,以指示报文需要发往该IP组播信息对应的组播组。第一节点可以根据第一节点的组播路由标识中的第二组标识查找第三转发表,确定对应的IP组播信息和出端口。如图19所示,第一节点可以剥除第二报文中第二节点的组播信息,获得剥除后的报文,并将IP组播信息封装到剥除后的报文的IP头部中,获得第三报文。如此,第一节点可以通过第三报文对应的出端口,向对应的组播组(包括第一设备)发送第三报文。
例如,基于图20所示的示例,节点F的第三转发表的一种示例可如表27所示。
表27
组标识 IP组播信息 端口
标识8 224.1.1.3 端口1
其中,节点F的组播路由标识中的组标识为标识8。节点F根据标识8查找表27,确定对应的IP组播信息为IP组播地址224.1.1.3,以及对应的端口为端口1。节点F可以剥除报文中节点A的组播信息,将IP组播地址224.1.1.3封装到报文的IP头部中(记为组播报文5),并通过端口1向组播组内的设备6发送组播报文5。
第三种实施方式中,第一设备的单播/组播信息是MPLS标签信息,第三转发表中记录有第一节点的组播路由标识与MPLS标签信息的对应关系。可以理解,第一节点的组播路由标识的实现方式有三种,即上述方式11、方式12和方式13,下面结合这三种方式进行介绍。
在上述方式11中,第三转发表中可以记录该第一节点的组播路由标识整体,即包括Cnt字段和X个Idx字段、MPLS标签信息、以及出端口的对应关系,具体实现与上述第二种实施方式类似,可参考第二种实施方式理解,不再赘述。
例如,基于图20所示的示例,节点H的第三转发表的一种示例可如表28所示。
表28
Figure PCTCN2022114357-appb-000021
其中,节点H的组播路由标识为110。节点H根据组播路由标识110查找表28,确定对应的MPLS标签信息包括MPLS标签100和MPLS标签101,以及对应的端口为端口1。节点H可以剥除报文中节点B的组播信息,将MPLS标签100封装到报文的IP头部中(记为隧道报文4),并通过端口1向设备7发送隧道报文4。节点H可以剥除报文中节点B的组播信息,将MPLS标签101封装到报文的IP头部中(记为隧道报文5),并通过端口1向设备8发送隧道报文5。此外,设备7和设备8是网络8中的设备,节点H可以是网络8中的节点,也可以不是网络8中的节点。
在上述方式12中,第三转发表中可以记录该第一节点的bit序列与MPLS标签信息以及出端口的对应关系,具体实现与上述第二种实施方式类似,可参考第二种实施方式理解,不再赘述。
例如,基于图20所示的示例,节点H的第三转发表的一种示例可如表29所示。
表29
Figure PCTCN2022114357-appb-000022
其中,节点H的bit序列为011。节点H根据bit序列011查找表29,确定对应的MPLS标签信息包括MPLS标签100和MPLS标签101,以及对应的端口为端口1。节点H可以剥除报文中节点B的组播信息,将MPLS标签100封装到报文的IP头部中(记为隧道报文4),并通过端口1向设备7发送隧道报文4。节点H可以剥 除报文中节点B的组播信息,将MPLS标签101封装到报文的IP头部中(记为隧道报文5),并通过端口1向设备8发送隧道报文5。
在上述方式13中,第三转发表中可以记录组播路由标识中的组标识、MPLS标签信息、以及出端口的对应关系,具体实现与上述第二种实施方式类似,可参考第二种实施方式理解,不再赘述。
例如,基于图20所示的示例,节点H的第三转发表的一种示例可如表30所示。
表30
Figure PCTCN2022114357-appb-000023
其中,节点H的组播路由标识中的组标识为标识9。节点H根据标识9查找表30,确定对应的MPLS标签信息包括MPLS标签100和MPLS标签101,以及对应的端口为端口1。节点H可以剥除报文中节点B的组播信息,将MPLS标签100封装到报文的IP头部中(记为隧道报文4),并通过端口1向设备7发送隧道报文4。节点H可以剥除报文中节点B的组播信息,将MPLS标签101封装到报文的IP头部中(记为隧道报文5),并通过端口1向设备8发送隧道报文5。
第四种实施方式中,第一设备的单播/组播信息是位串信息,即第一设备是BIER组播组内的设备,第三转发表中记录有第一节点的组播路由标识与位串信息的对应关系。可以理解,第一节点的组播路由标识的实现方式有三种,即上述方式11、方式12和方式13,下面结合这三种方式进行介绍。
在上述方式11中,第三转发表中可以记录组播路由标识整体,即包括Cnt字段和X个Idx字段、位串信息、以及邻居设备的对应关系。第一节点可以根据第一节点的组播路由标识查找第三转发表,确定对应的位串信息和邻居设备。如图23所示,第一节点可以剥除第二报文中第二节点的组播信息,获得剥除后的报文,在剥除后的报文中封装包括位串信息的外层头部,从而获得第三报文。如此,第一节点可以通过邻居设备对应的出端口,向BIER组播组(包括第一设备)发送第三报文。
例如,基于图20所示的示例,节点E和设备3-设备5之间还包括4个普通节点,即非组播树内的节点,分别是节点R8、节点R9、节点R10和节点R11,节点R8、节点R9、节点R10和节点R11是网络6中节点,节点E的第三转发表的一种示例可如表31所示。
表31
Figure PCTCN2022114357-appb-000024
其中,节点E的组播路由标识为11101101,在节点E的组播路由标识中,Cnt字段的值为11,用以表示节点E的下游设备有3个;第1个Idx字段的值为10,用以指示设备3;第2个Idx字段的值为11,用以指示设备4;第3个Idx字段的值为 01,用以指示设备5。节点E根据组播路由标识11101101查找表31,确定对应的位串信息包括位串信息0100和位串信息0011。其中,位串信息0100对应的邻居设备为节点R9,表示发往设备3的组播报文需要经过节点R9,位串信息0011对应的邻居设备为节点R8,表示发往设备4和设备5的组播报文需要经过节点R8。节点E可以剥除报文中节点A的组播信息,在报文中封装包括位串信息0100的外层头部(记为组播报文6),并通过节点R9对应的端口发送组播报文6。节点E可以剥除报文中节点A的组播信息,然后复制两份,并在两份报文中封装包括位串信息0011的外层头部(记为组播报文7和组播报文8),通过节点R8对应的端口发送组播报文7和组播报文8。
在上述方式12中,第三转发表中可以记录该第一节点的bit序列、位串信息、以及邻居设备的对应关系。第一节点可以根据第一节点的bit序列查找第三转发表,确定对应的位串信息和邻居设备。如图23所示,第一节点可以剥除第二报文中第二节点的组播信息,获得剥除后的报文,在剥除后的报文中封装包括位串信息的外层头部,从而获得第三报文。如此,第一节点可以通过邻居设备对应的出端口,向BIER组播组(包括第一设备)发送第三报文。
例如,基于图20所示的示例,节点E的第三转发表的一种示例可如表32所示。
表32
Figure PCTCN2022114357-appb-000025
其中,节点E的bit序列0111,第1个bit的值为0,用以指示节点A不是节点E的潜在子节点,第2个-第4个bit的值为1,用以分别指示设备3-设备5均是节点E的潜在子节点。节点E根据bit序列0111查找表32,确定对应的位串信息包括位串信息0100和位串信息0011。节点E可以剥除报文中节点A的组播信息,在报文中封装包括位串信息0100的外层头部(记为组播报文6),并通过节点R9对应的端口发送组播报文6。节点E可以剥除报文中节点A的组播信息,然后复制两份,并在两份报文中封装包括位串信息0011的外层头部(记为组播报文7和组播报文8),通过节点R8对应的端口发送组播报文7和组播报文8。
在上述方式13中,第三转发表中可以记录组播路由标识中的组标识、位串信息、以及邻居设备的对应关系。第一节点可以根据第一节点的组播路由标识中的组标识查找第三转发表,确定对应的位串信息和邻居设备。如图23所示,第一节点可以剥除第二报文中第二节点的组播信息,获得剥除后的报文,在剥除后的报文中封装包括位串信息的外层头部,从而获得第三报文。如此,第一节点可以通过邻居设备对应的出端口,向BIER组播组(包括第一设备)发送第三报文。
例如,基于图20所示的示例,节点E的第三转发表的一种示例可如表33所示。
表33
Figure PCTCN2022114357-appb-000026
Figure PCTCN2022114357-appb-000027
其中,节点E的组播路由标识中的组标识为标识6。节点E根据标识6查找表33,确定对应的位串信息包括:位串信息0100和位串信息0011。节点E可以剥除报文中节点A的组播信息,在报文中封装包括位串信息0100的外层头部(记为组播报文6),并通过节点R9对应的端口发送组播报文6。节点E可以剥除报文中节点A的组播信息,然后复制两份,并在两份报文中封装包括位串信息0011的外层头部(记为组播报文7和组播报文8),通过节点R8对应的端口发送组播报文7和组播报文8。
可以理解,上述表19-表21仅为一种示例,不作为限定。比如,表19-表21中的邻居设备这一项可以配置为对应的出端口,即节点E可以不感知或者不配置普通节点的拓扑关系,直接通过出端口发送组播报文。此外,上述网络2-网络9可以是相同的网络,也可以是不同的网络,可以是独立的网络,也可以是一个网络下的子网络,对此不限定。网络的相关介绍可以参考上述“6、网络”中的相关介绍,在此不予赘述。
方式42:
在第二报文中,第二节点的组播路由信息不包括第一节点的组播路由标识。这种情况下,第一节点可以根据第二报文的IP头部中的IP地址,查找第一节点动态维护的第二转发表,该第二转发表记录有该IP地址对应的单播/组播信息,比如五元组信息或者二元组信息。如图22所示,第一节点在剥除第二报文中第二节点的组播信息后,可以在剥除后的报文的IP头部中,封装五元组信息或者二元组信息对应的单播/组播信息,从而获得第三报文,并向第一设备发送该第三报文。
结合上述方式31和方式32,可以看出,第二节点的组播路由信息包括第一节点的组播路由标识时,第一节点的组播路由标识可以用于指示目的设备为第一设备,使得第一节点仅根据第一节点的组播路由标识,便可确定需要向第一设备发送第三报文,无需拆封第一报文的内层头部,即IP头部,从而可以提高处理效率。
可选地,结合上述实施例,在第四种应用场景中,一个节点有可能包括多个实体,一个节点内的实体接收到组播报文后可以通过图24所示的方法进行处理,该方法应用于第一实体,第一实体属于第一节点,该方法具体包括:
S2401,第一实体接收第一组播报文。
其中,第一组播报文包括第一节点的第一组播路由信息,第一节点的第一组播路由信息包括:第一节点的第一组播路由标识,以及第一节点的第一组播路由标识对应的非叶子子节点的组播路由信息,第一节点的第一组播路由标识与第一节点的组播路由标识相同,或通过对第一节点的组播路由标识进行更新得到。关于节点的组播路由信息的相关描述可参见上文,不再赘述。
根据上文中关于组播路由标识的作用以及描述可知,若组播路由标识为bit序列,或,Cnt字段+Idx字段,则一个节点的组播路由标识中会有与每个子节点(包括 非叶子子节点和叶子子节点)对应的bit或Idx字段。由于第一组播路由标识是根据组播路由标识衍生得到的,因此,第一节点的第一组播路由标识对应的非叶子子节点是指该第一组播路由标识中的bit或Idx字段对应的子节点中的非叶子子节点。
其中,第一实体为第一节点中的一个实体,第一实体可以从第一节点之外的其他节点接收第一组播报文,也可以从第一节点中的其他实体接收第一组播报文,本申请不作限制。若第一实体从第一节点之外的其他节点接收第一组播报文,则第一节点的第一组播路由信息与第一节点的组播路由信息相同。若第一实体从第一节点中的其他实体接收第一组播报文,则第一节点的第一组播路由标识可能与第一节点的组播路由标识相同,也可能通过对第一节点的组播路由标识进行更新得到。第一组播路由信息具体是如何的可根据第一实体和第二实体之间处理组播报文的方法推算得到,具体示例可参见下文,不再赘述。
S2402,第一实体根据第一节点的第一组播路由标识确定第二实体。
其中,第二实体为第一节点中的实体。S2002在具体实现时可以包括:第一实体根据第一节点的第一组播路由标识查找组播转发表得到第二实体。需要说明的是,第一实体根据第一节点的第一组播路由标识可能可以得到多个第二实体,此处的第二实体可以为其中的任意一个第二实体,本申请中以第一实体向一个第二实体转发组播报文为例进行描述,第一节点在实际处理组播报文时,可以向每个第二实体转发组播报文。
示例性地,若第一组播路由标识为bit序列,则组播转发表中第一组播路由标识中的值为1的bit对应的下一跳为第二实体,若第一组播路由标识为Cnt字段+Idx字段,则组播转发表中Idx字段的值对应的下一跳为第二实体。
S2403,第一实体向第二实体发送第二组播报文。
其中,第二组播报文中包括第一节点的第二组播路由信息。第一节点的第二组播路由信息包括:第一节点的第二组播路由标识,以及第一节点的第三组播路由标识对应的部分或全部非叶子子节点的组播路由信息。第一节点的第三组播路由标识与所述第一节点的第一组播路由标识相同,或通过对所述第一节点的第一组播路由标识进行更新得到。第一节点的第二组播路由标识与第一节点的第三组播路由标识相同,或通过对第一节点的第三组播路由标识进行更新得到。
其中,第一实体具体在以下情况1和情况2下,需要对第一节点的第一组播路由标识进行更新得到第一节点的第三组播路由标识,在其他情况下,第一节点的第三组播路由标识与第一节点的第一组播路由标识相同,以下对情况1和情况2以及更新方法进行示例性说明。
情况1、第一实体属于第一节点的某个子节点(假设为子节点1)。若第一组播路由标识为bit序列,则第一实体将子节点1对应的bit置0得到第三组播路由标识。若第一组播路由标识为Cnt字段+Idx字段,则第一实体将子节点1对应的Idx字段删除,并将Cnt字段的值减1得到第三组播路由标识。
情况2、第一实体不属于第一节点的任意一个子节点,但是组播报文只需要经过第一实体的组播转发就可以到达的第一节点的一个或多个子节点(假设为Q个子节点)。若第一组播路由标识为bit序列,则第一实体将Q个子节点对应的bit置0得 到第三组播路由标识。若第一组播路由标识为Cnt字段+Idx字段,则第一实体将Q个子节点对应的Idx字段删除,并将Cnt字段的值减Q得到第三组播路由标识。
其中,第一实体具体在以下情况3下,需要对第一节点的第三组播路由标识进行更新得到第一节点的第二组播路由标识,在其他情况下,第一节点的第二组播路由标识与第一节点的第三组播路由标识相同,以下对情况3以及更新方法进行示例性说明。
情况3、第一实体需要向多个第二实体转发组播报文。针对任意一个第二实体,若第三组播路由标识为bit序列,则第一实体需要将第一节点的第三组播路由标识中的与除P个子节点之外的其他子节点对应的bit置0得到第二组播路由标识。若第三组播路由标识为Cnt字段+Idx字段,则第一实体将除P个子节点之外的其他子节点对应的Idx字段删除,并将Cnt字段的值减P得到第二组播路由标识。其中,P个子节点为第一节点的一个或多个子节点,这些子节点需要经过该第二实体的组播转发才可以接收到组播报文。
综上,本申请上述实施例提供的方法,相比PIM-SM具有以下好处:
1、节点中的组播转发表的表项个数不会随着组播流个数的增加而增加,因此,即使组播流个数较多,也不需要在路由器中扩展更多的表空间来支持组播报文的转发,因此,可扩展性较好。
2、组播报文是从源节点生成的,并且,组播报文中包括非叶子子节点的组播路由信息,因此,可以通过调整组播报文,主动控制转发路径。例如,如果有多条路径,控制器或源节点可以通过控制面算法选择最优的路径。
3、组播报文是从源节点生成的,因此,节点加入或离开组播树,源节点均是可以获知的,可管理性较高。例如,源节点可以通过应用层采集到用户的偏好,根据这些偏好调整组播报文中的数据。
4、节点不需要发送加入信令,因此,节点不需要处理大量的周期性信令,避免增加节点的计算负载、功耗以及处理资源。
本申请上述实施例提供的方法,相比BIER具有以下好处:
1、组播报文中包括非叶子子节点的组播路由信息,非叶子子节点可以根据自身的组播路由信息进行组播报文的转发,因此,报文份数不会过多,组播效率较高。
2、组播报文是从源节点生成的,并且,组播报文中包括非叶子子节点的组播路由信息,因此,可以通过调整组播报文,主动控制转发路径。例如,如果有多条路径,控制器或源节点可以通过控制面算法选择最优的路径。
此外,本申请上述实施例提供的方法还具有以下好处:
1、由于一个节点发往每个子节点的报文内的树形递归结构都相同,比如都是第二节点的组播路由信息的树形递归结构,使得该节点在对应的每个出端口可以只发送一份报文,以避免出现冗余报文,提高通信效率。
2、每个非叶子子节点的组播路由信息无需上游节点,比如第二节点确定,而可以由该非叶子子节点自行确定,从而可以节约上游节点的处理资源,提高运行效率。
为了使得本申请实施例更加的清楚,以下结合图20所示的场景,且以节点的组播路由标识通过上述方式12实现为例,对上述实施例提供的方法作示例性说明。
在图20所示的组播树中,节点D对应的节点集合包括3个节点,即节点A、节点B和节点C,节点D的bit序列的位宽为3,第1个bit与节点A对应,第2个bit与节点B对应,第3个bit与节点C对应。节点A为节点D的非叶子子节点,节点A对应的节点集合包括3个节点,即节点D、节点E和节点F,节点A的bit序列的位宽为3,第1个bit与节点D对应,第2个bit与节点E对应,第3个bit与节点F对应。节点E为节点A的叶子子节点,节点E对应的节点集合包括4个节点,即节点A、设备3、设备4和设备5,节点A的bit序列的位宽为4,第1个bit与节点A对应,第2个bit与设备3对应,第3个bit与设备4对应,第4个bit与设备5对应。节点F为节点A的叶子子节点,节点F对应的节点集合包括2个节点,即节点A和设备6,节点A的bit序列的位宽为2,第1个bit与节点A对应,第2个bit与设备6对应。节点B为节点D的非叶子子节点,节点B对应的节点集合包括2个节点,即节点D和节点H,节点B的bit序列的位宽为2,第1个bit与节点D对应,第2个bit与节点H对应。节点H为节点B的叶子子节点,节点H对应的节点集合包括3个节点,即节点B、设备7和设备8,节点H的bit序列的位宽为3,第1个bit与节点B对应,第2个bit与设备7对应,第3个bit与设备8对应。节点C为节点D的叶子子节点,节点C对应的节点集合包括3个节点,即节点D、设备1和设备2,节点C的bit序列的位宽为3,第1个bit与节点D对应,第2个bit与设备1对应,第3个bit与设备2对应。图25,除第一字段、第二字段和寻址字段之外,“:”之前的字母表示该字段对应的节点,“:”之后的值表示该字段对应的bit序列;寻址字段中的“:”之前的LEN是指节点的组播路由信息的长度,“:”之后的值表示该字段的值,寻址字段的位宽为1字节。
其中,节点D可以生成图25中的(a)所示的报文1。报文1的外层头部中封装有网络2支持的单播/组播信息1。节点D可以跨网络2分别向节点A、节点B和节点C发送报文1。节点A接收到报文1后,节点A可以根据寻址字段,从节点D的组播路由信息中确定出节点A的组播路由信息,并封装节点A的组播路由信息,以生成图25中的(b)所示的报文2。报文2的外层头部中封装有网络3和网络4支持的单播/组播信息2。节点A可以跨网络3向节点E发送报文2,以及跨网络4向节点E发送报文2。节点E接收到报文2后,可以将报文2中A的组播信息剥除。此时,如果网络6支持IP单播/组播或者MPLS标签,则节点E可以在IP头部中封装单播/组播信息3,以生成图25中的(c)中左侧所示的报文3,该单播/组播信息3包括IP单播/组播信息或者MPLS标签信息。如果网络6支持BIER组播,则节点E可以在IP头部的外层再封装一层包括BIER组播信息1的头部,以生成图25中的(c)中右侧所示的报文3。节点E可以跨网络6分别向设备3、设备4和设备5发送报文3。节点B接收到报文1后,节点B可以根据寻址字段,从节点D的组播路由信息中确定出节点B的组播路由信息,并封装节点B的组播路由信息,以生成图25中的(d)所示的报文4。报文4的外层头部中封装有网络5支持的单播/组播信息4。节点B可以跨网络5向节点H发送报文4。节点H接收到报文4后,可以将报文4中B的组播信息剥除。此时,如果网络8支持IP单播/组播或者MPLS标签,则节点H可以在IP头部中封装单播/组播信息5,以生成图25中的(e)中左侧所示的报文 5,该单播/组播信息5包括IP单播/组播信息或者MPLS标签信息。如果网络8支持BIER组播,则节点E可以在IP头部的外层再封装一层包括BIER组播信息2的头部,以生成图25中的(e)中右侧所示的报文5。这样,节点H可以跨网络8分别向设备7和设备8发送报文5。节点C接收到报文1后,可以将报文1中D的组播信息剥除。此时,如果网络9支持IP单播/组播或者MPLS标签,则节点C可以在IP头部中封装单播/组播信息6,以生成图25中的(f)中左侧所示的报文6,该单播/组播信息6包括IP单播/组播信息或者MPLS标签信息。如果网络9支持BIER组播,则节点C可以在IP头部的外层再封装一层包括BIER组播信息3的头部,以生成图25中的(f)中右侧所示的报文6。这样,节点C可以跨网络9分别向设备1和设备2发送报文6。
上述实施例中,均以组播报文中不包括类型字段为例对本申请提供的方法作示例性说明。若当前节点支持多种类型的组播路由标识,组播报文中可以包括类型字段,则节点可以解析类型字段获取组播路由标识的类型,根据组播路由标识的类型对组播路由标识进行识别。
上述实施例中,组播报文中的任意一个字段的位宽均是示例性地,在实际实现时,任意一个字段的位宽可以不是字节对齐的,也可以是对齐的(例如,该字段均为1字节、2字节或更多字节),本申请不作限制。
上述实施例中,一个节点(或该节点中的实体)在接收到组播报文之后,可以根据外层封装中的字段的指示确定组播报文的报文头中是否包含组播封装,若外层封装中的目的地址为该节点(或该实体)的地址、且确定组播报文中的报文头中包含组播封装,该节点(或该实体)可以剥掉外层封装,获取组播封装,并根据组播封装对组播报文进行相应的处理。
上述实施例中,一个节点(或实体)向多个节点(或实体)发送组播报文之前,可以将接收到的组播报文进行复制,向N个节点(或实体)发送则复制N-1份,在复制的组播报文以及接收到的组播报文上进行编辑得到需要发送的组播报文。若只向一个节点(或实体)发送组播报文,则可以不复制,直接在接收到的组播报文上进行编辑。节点(或实体)在进行组播报文的复制时,可以一次全部复制,再并行编辑组播报文并发送。也可以一次复制一个组播报文,并编辑组播报文并发送。
需要说明的是,在本申请实施例的描述中,一个节点(或实体)向另一个节点(或实体)发送组播报文是指该组播报文的源地址为所述一个节点(或实体)的地址,目的地址为所述另一个节点(或实体)的地址。本申请上述实施例中任何一个bit(可以为单个bit也可以为bit序列中的bit)的值为1时表示的含义也可以通过0表示,为0时的含义也可以通过为1时表示,不作限制。例如,上述实施例中bit序列中的bit的值为1时,表示该bit为节点D1的子节点,值为0时表示该bit不为节点D1的子节点,在实际实现时,也可以bit序列中的bit的值为0时,表示该bit为节点D1的子节点,值为1时表示该bit不为节点D1的子节点。其他bit类似,不再一一阐述。
请参阅图26,本申请提供的通信方法适用于至少两个节点之间的通信,例如第四节点和第五节点之间的通信,该方法包括:
S2601,第四节点获取第四报文。
其中,第四节点为第四网络内的节点,可以是边缘节点或者非边缘节点,对此不限定。第四报文包括第五头部,第五头部包括第五网络的位串信息,即第四报文为BIER的组播报文。第四网络与第五网络是不同的网络,第四网络和第五网络均可以认为是虚拟节点,这样,第四节点或者第五网络内的节点均可以认为是各自虚拟节点内的实体,此外,第四网络与第五网络的具体实现可以参考上述“6、网络”中的相关介绍,在此不予赘述。第四节点可以接收来自上游节点的报文,以根据该报文生成第四报文,或者第四节点可以接收来自上游节点的第四报文,或者第四节点也可以根据业务生成第四报文,对此不限定。可选地,第四节点保存有第五网络的BIFT。如果第四节点需要生成第四报文,则可以查找第五网络的BIFT,确定第五网络的位串信息,从而在报文中封装包括第五网络的位串信息的第五报文,以生成第五报文。
S2602,第四节点根据第四报文,向第五节点发送第五报文。相应的,第五节点接收来自第四节点的第五报文。
其中,第五节点为第四网络内的节点,且可以是第四网络的边缘节点。第五节点可以认为是虚拟节点中的实体。第五报文包括第五头部和第六头部,第六头部位于第五头部的外层,第六头部包括第五节点的位串信息。可以看出,在第五节点是第四网络的边缘节点的情况下,如果想要向第五网络发送第五报文,则需要在第五报文内封装第五节点的位串信息,以便第五报文能够发往第五节点,经过第五节点发往第四网络,从而实现跨域转发。第四节点上存储有第二映射关系表,该第二映射关系表可以记录第五节点与第五网络的对应关系。第四节点查找第二映射关系表,确定第五报文需要发往第五接单。在此基础上,第四节点上存储有第四网络的BIFT,第四节点可以查找第四网络的BIFT,确定第五节点的位串信息,以便第四节点在第四报文中封装包括第五节点的位串信息的第六头部,获得第五报文,从而向第五节点发送第五报文。
例如,假设BIER组播的网络结构如图27所示,节点A、节点P、节点B和节点C为同一网络,比如网络1内的节点。节点A、节点B和节点C构成BIER集合1,节点A的位串信息可以为001、节点B的位串信息可以为010、节点C的位串信息可以为100。此外,节点T、节点E和节点F为同一网络,比如网络2内的节点。节点G、节点H和节点K同一网络,比如网络3内的节点。将网络1作为虚拟节点D1,网络2作为虚拟节点D2,网络3作为虚拟节点D3,虚拟节点D1、虚拟节点D2和虚拟节点D3可以构成BIER集合2,这样,虚拟节点D1的位串信息可以为100、虚拟节点D2的位串信息可以为010、虚拟节点D3的位串信息可以为001。节点A、节点B、节点P和节点C可以作为虚拟节点D1内的实体,节点T、节点E和节点F可以作为虚拟节点D2内的实体,节点G、节点H和节点K可以作为虚拟节点D3内的实体。
在虚拟节点D1需要向虚拟节点D2和虚拟节点D3发送报文的情况下,虚拟节点D1内的某个实体,比如节点A生成该报文。其中,节点A上存储有BIER集合1的BIFT1,映射关系表1以及BIER集合2的BIFT2,BIFT1的一种示例可如表34所示,映射关系表1的一种示例可如表35所示,BIFT2的一种示例可如表36所示。
表34
标识 转发位掩码 邻居设备
010 010 D2
001 001 D3
表35
节点 节点 邻居设备
D2 B 010
D3 C 100
表36
标识 转发位掩码 邻居设备
010 010 P
100 100 C
其中,表34中的转发位掩码(forwarding bit mask,F-BM)用于指示BIER集合1中的子集,该子集有两个,一个子集内的节点为D2,另一个子集内的节点为D3。表36中的F-BM用于指示BIER集合2中的子集,该子集有两个,一个子集内的节点为B,另一个子集内的节点为C。节点A查找表34确定虚拟节点D2对应的转发位掩码为010,即位串信息为010,虚拟节点D3对应的转发位掩码为001,即位串信息为001。如图28中的(a)所示,节点可以在报文A中封装包括位串信息010的头部(记为头部1),在报文B中封装包括位串信息001的头部(记为头部2)。节点A查找表35确定需要进一步查找表36。节点A查找表36确定节点P对应的转发位掩码为010,即位串信息为010,节点C对应的转发位掩码为100,即位串信息为100。如图28中的(b)所示,节点可以在报文A中封装包括位串信息010的头部(记为头部3),在报文B中封装包括位串信息001的头部(记为头部4)。在报文A中,头部3位于头部1的外层,同理,在报文B中,头部4位于头部2的外层,以便于报文A和报文B的转发。节点A可以向节点P发送报文A,向节点C发送报文B,以便节点B能够接收到报文A,节点C能够接收到报文C。
需要说明的是,如果节点A接收到来自其他节点的报文(记为报文X),且报文X需要发往虚拟节点D2和虚拟节点D3,则报文X中的位串信息可以是转发位掩码001+转发位掩码010,即为011。节点A根据位串信息011查找表34,确定虚拟节点D2对应的转发位掩码为010,虚拟节点D3对应的转发位掩码为001。节点A可以剥除报文X中的位串信息011,并将剥除后的报文复制2份。这样,节点A通过查找表35和表36,可以在其中一份报文中封装上述头部1和头部3,得到报文A,在另一份报文中封装上述头部2和头部4,得到报文B,即节点A根据来自上游节点的报文X,生成报文A和报文B。
S2603,第五节点解析第五报文。
其中,第五节点上存储有第五网络的BIFT。第五节点解析第五报文,获得第五节点的位串信息,以及第五网络的位串信息。第五节点可以查找第五网络的BIFT,确定第五网络的BIFT中记录有第五网络的位串信息,但第五网络的BIFT中未记录 第五节点的位串信息。如此,第五节点可以剥除第五报文中的第六头部,从而获得第四报文,然后向第五网络发送第四报文,以实现报文的跨网络转发,使得转发不再受限。
例如,假设BIER组播的网络结构如图27所示,节点B上存储有上述表34,节点B接收到来自节点P的报文A后,节点B通过查找表34,可以将报文A中的头部3剥除,得到报文C(如图28中的(c)所示)。如此,节点B可以向虚拟节点D2发送报文C,实现报文C的跨网络转发。节点C上存储有上述表34,节点C接收到报文B后,节点C通过查找表34,可以将报文B中的头部4剥除,得到报文D(如图28中的(d)所示)。如此,节点C可以向虚拟节点D3发送报文D,实现报文D的跨网络转发。
综上,根据上述实施例提供的方法可知,由于第五报文内封装有第五节点的位串信息,使得第五报文在发往第五网络之前,可以先跨网络转发,比如跨第四网络向第五节点转发,使得转发不再受限。
本申请中的上述附图中所示的“:”之前的部分为助记符,实际报文中并不存在助记符和“:”。本申请各个附图中,各个字段的位置仅仅为示例,在实际实现时有些字段的位置可以与图示中不同,本申请不作限制。
上述主要从方法的角度对本申请实施例的方案进行了介绍。可以理解的是,各个网元,例如,节点或实体为了实现上述功能,其包含了执行各个功能相应的硬件结构和软件模块中的至少一个。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对节点或实体进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
以上结合图8-图28详细说明了本申请实施例提供的通信方法。以下结合图29和图30详细说明用于执行本申请实施例提供的通信方法的通信装置。
示例性地,图29是本申请实施例提供的通信装置的结构示意图一。如图29所示,通信装置2900包括:收发模块2901和处理模块2902。为了便于说明,图29仅示出了该通信装置的主要部件。
一些实施例中,通信装置2900可以是图8所示的方法中的第一节点。
其中,收发模块2901,用于接收来自第二节点的第一报文;处理模块2902,用于解析第一报文。其中,第一报文包括:第二节点的组播路由信息,第一节点为组播树中第二节点的子节点,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在组播树中的非叶子子节点的组播路由信息。
一种可能的设计方案中,第一节点为第二节点的非叶子子节点,处理模块2902,还用于根据第一报文生成第二报文;收发模块2901,还用于向第三节点发送第二报文。其中,第二报文包括:第一节点的组播路由信息,或者第三节点的组播路由信息,第一节点的组播路由信息包括如下任一项:第一节点的组播路由标识和第三节点的组播路由信息、第一节点的组播路由标识、或者第一节点的组播路由标识和第三节点的组播路由标识。
可选地,处理模块2902,还用于根据第二节点的组播路由标识,确定第一节点的组播路由信息;根据第二节点的组播路由信息进行报文封装,获得第二报文。或者,处理模块2902,还用于第一节点根据第二节点的组播路由标识,确定第一节点的组播路由信息;根据第一节点的组播路由信息中第一节点的组播路由标识,确定第三节点的组播路由信息;根据第三节点的组播路由信息进行报文封装,获得第二报文。
进一步地,处理模块2902,还用于根据第二节点的组播路由标识,确定第一节点在第一节点集合内的位置,根据第一节点在第一节点集合内的位置,确定第一节点的组播路由信息。其中,第一节点集合为第二节点对应的节点集合,第一节点集合包括第二节点的部分或全部潜在子节点。
进一步地,第二节点的组播路由标识包括:N个第一字段,N为第一节点集合中的节点个数,处理模块2902,还用于在N个第一字段中确定第一节点对应的第一字段的位置,第一节点对应的第一字段的位置用于表示第一节点在第一节点集合内的位置。
进一步地,第二节点的组播路由信息还包括第二节点的寻址字段。处理模块2902,还用于根据第二节点的组播路由标识,以及第二节点的寻址字段,确定第一节点的组播路由信息。
进一步地,第二节点的寻址字段用于指示第二节点的子节点的组播路由信息的长度。或者,第二节点的寻址字段用于指示第二节点的子节点的组播路由信息的起始位置或结束位置。或者,第二节点的寻址字段包括:多个定界字段,第二节点的子节点的组播路由信息由多个定界字段分隔开。
可选地,第一节点和第三节点为第一网络内的节点。第二报文还包括:第一头部和第二头部,第一头部包括:第三节点的组播路由信息,或者第一节点的组播路由信息,第二头部包括:第二网络的单播/组播信息。
进一步地,第一节点有第一节点的组播路由标识,或第三节点的组播路由标识,与第二网络的单播/组播信息的对应关系。
进一步地,第一节点为第二网络内的节点。
另一种可能的设计方案中,第一节点为第二节点的叶子子节点,处理模块2902,还用于根据第一报文生成第三报文,收发模块2901,还用于向第一设备发送第三报文。其中,第三报文包括:第一设备的单播/组播信息。
可选地,第一报文包括第一节点的组播路由标识,第一节点的组播路由标识用于指示目的设备为第一设备。
一种可能的设计方案中,第一节点和第二节点为第一网络内的节点,第一报文还 包括:第三头部和第四头部,第三头部包括:第二节点的组播路由信息,第四头部包括:第三网络的单播/组播信息。
可选地,第二节点为第三网络内的节点。
一种可能的设计方案中,单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
可选地,收发模块2901也可以包括发送模块和接收模块。其中,发送模块用于实现通信装置2900的发送功能,接收模块用于实现通信装置2900的接收功能
可选地,通信装置2900还可以包括存储模块(图29中未示出),该存储模块存储有程序或指令。当处理模块2902执行该程序或指令时,使得通信装置2900可以执行图8所示的方法中第一节点的功能。
应理解,通信装置2900中涉及的处理模块2902可以由处理器或处理器相关电路组件实现,可以为处理器或处理单元;收发模块2901可以由收发器或收发器相关电路组件实现,可以为收发器或收发单元。
需要说明的是,通信装置2900具体可以是终端或网络设备,也可以是可设置于终端或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端或网络设备的装置,本申请对此不做限定。
此外,通信装置2900的技术效果可以参考图8所示出的方法中第一节点对应的技术效果,此处不再赘述。
另一些实施例中,通信装置2900可以是图8所示的方法中的第二节点。
其中,处理模块2902,用于获取第一报文;收发模块2901,用于向第一节点发送第一报文,第一节点为组播树中第二节点的子节点。其中,第一报文包括:第二节点的组播路由信息,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在组播树中的非叶子子节点的组播路由信息;
一种可能的设计方案中,第一节点和第二节点为第一网络内的节点,第一报文还包括:第三头部和第四头部,第三头部包括:第二节点的组播路由信息,第四头部包括:第三网络的单播/组播信息。
可选地,第二节点为第三网络内的节点。
可选地,单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
可选地,收发模块2901也可以包括发送模块和接收模块。其中,发送模块用于实现通信装置2900的发送功能,接收模块用于实现通信装置2900的接收功能
可选地,通信装置2900还可以包括存储模块(图29中未示出),该存储模块存储有程序或指令。当处理模块2902执行该程序或指令时,使得通信装置2900可以执行图8所示的方法中第二节点的功能。
应理解,通信装置2900中涉及的处理模块2902可以由处理器或处理器相关电路组件实现,可以为处理器或处理单元;收发模块2901可以由收发器或收发器相关电路组件实现,可以为收发器或收发单元。
需要说明的是,通信装置2900具体可以是终端或网络设备,也可以是可设置于 终端或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端或网络设备的装置,本申请对此不做限定。
此外,通信装置2900的技术效果可以参考图8所示出的方法中第二节点对应的技术效果,此处不再赘述。
再一些实施例中,通信装置2900可以是图26所示的方法中的第四节点。
其中,收发模块2901,用于获取第四报文;处理模块2902,用于根据第四报文,控制收发模块2901向第五节点发送第五报文。其中,第四节点为第四网络内的节点,第四报文包括:第五头部,第五头部包括:第五网络的位串信息;第五节点为第四网络内的节点,第五报文包括:第五头部和第六头部,第六头部包括:第五节点的位串信息。
一种可能的设计方案中,第四节点配置有第一表项,以及第二表项。其中,第一表项包括:第五网络的位串信息,第二表项包括:第五节点的串位信息。
一种可能的设计方案中,处理模块2902,还用于在第四报文上封装第六头部,以获得第五报文,从而控制收发模块2901向第五节点发送第五报文。
可选地,收发模块2901也可以包括发送模块和接收模块。其中,发送模块用于实现通信装置2900的发送功能,接收模块用于实现通信装置2900的接收功能
可选地,通信装置2900还可以包括存储模块(图29中未示出),该存储模块存储有程序或指令。当处理模块2902执行该程序或指令时,使得通信装置2900可以执行图26所示的方法中第四节点的功能。
应理解,通信装置2900中涉及的处理模块2902可以由处理器或处理器相关电路组件实现,可以为处理器或处理单元;收发模块2901可以由收发器或收发器相关电路组件实现,可以为收发器或收发单元。
需要说明的是,通信装置2900具体可以是终端或网络设备,也可以是可设置于终端或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端或网络设备的装置,本申请对此不做限定。
此外,通信装置2900的技术效果可以参考图26所示出的方法中第四节点对应的技术效果,此处不再赘述。
又一些实施例中,通信装置2900可以是图26所示的方法中的第五节点。
其中,收发模块2901,用于接收来自第四节点的第五报文;处理模块2902,用于解析第五报文。其中,第四节点和第五节点为第四网络内的节点,第四报文包括:第五头部和第六头部,第五头部包括:第五网络的位串信息,第六头部包括:第五节点的位串信息。
一种可能的设计方案中,处理模块2902,还用于在解析第五报文之后,剥除第五报文中的第六头部,以获得第四报文,从而控制收发模块2901向第五网络发送第四报文。
可选地,收发模块2901也可以包括发送模块和接收模块。其中,发送模块用于实现通信装置2900的发送功能,接收模块用于实现通信装置2900的接收功能
可选地,通信装置2900还可以包括存储模块(图29中未示出),该存储模块存储有程序或指令。当处理模块2902执行该程序或指令时,使得通信装置2900可以执 行图26所示的方法中第五节点的功能。
应理解,通信装置2900中涉及的处理模块2902可以由处理器或处理器相关电路组件实现,可以为处理器或处理单元;收发模块2901可以由收发器或收发器相关电路组件实现,可以为收发器或收发单元。
需要说明的是,通信装置2900具体可以是终端或网络设备,也可以是可设置于终端或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端或网络设备的装置,本申请对此不做限定。
此外,通信装置2900的技术效果可以参考图26所示出的方法中第五节点对应的技术效果,此处不再赘述。
示例性地,图30为本申请实施例提供的通信装置的结构示意图二。该通信装置可以是终端或网络设备,也可以是可设置于终端或网络设备的芯片(系统)或其他部件或组件。如图30所示,通信装置3000可以包括处理器3001。可选地,通信装置3000还可以包括存储器3002和/或收发器3003。其中,处理器3001与存储器3002和收发器3003耦合,如可以通过通信总线连接。
下面结合图30对通信装置3000的各个构成部件进行具体的介绍:
其中,处理器3001是通信装置3000的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器3001是一个或多个中央处理器(central processing unit,CPU),也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。此外,处理器3001也可以是逻辑电路。
可选地,处理器3001可以通过运行或执行存储在存储器3002内的软件程序,以及调用存储在存储器3002内的数据,执行上述图8或图26所述方法。
在具体的实现中,作为一种实施例,处理器3001可以包括一个或多个CPU,例如图30中所示出的CPU0和CPU1。
在具体实现中,作为一种实施例,通信装置3000也可以包括多个处理器,例如图30中所示的处理器3001和处理器3004。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
其中,所述存储器3002用于存储执行本申请方案的软件程序,并由处理器3001来控制执行,具体实现方式可以参考上述方法实施例,此处不再赘述。
可选地,存储器3002可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的 期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器3002可以和处理器3001集成在一起,也可以独立存在,并通过通信装置3000的接口电路(图30中未示出)与处理器3001耦合,本申请实施例对此不作具体限定。
收发器3003,用于与其他通信装置之间的通信。例如,通信装置3000为终端设备,收发器3003可以用于与网络设备通信,或者与另一个终端设备通信。又例如,通信装置3000为网络设备,收发器3003可以用于与终端设备通信,或者与另一个网络设备通信。
可选地,收发器3003可以包括接收器和发送器(图30中未单独示出)。其中,接收器用于实现接收功能,发送器用于实现发送功能。
可选地,收发器3003可以和处理器3001集成在一起,也可以独立存在,并通过通信装置3000的接口电路(图30中未示出)与处理器3001耦合,本申请实施例对此不作具体限定。此外,接口电路也可以是输入输出接口。
需要说明的是,图30中示出的通信装置3000的结构并不构成对该通信装置的限定,实际的通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
此外,通信装置3000的技术效果可以参考上述方法实施例所述的通信方法的技术效果,此处不再赘述。
本申请实施例提供一种通信系统。该通信系统包括上述一个或多个终端或网络设备。该或网络设备用于执行上述图8或图26所述方法。
应理解,在本申请实施例中的处理器可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件(如电路)、固件或其他任意组 合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到 多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (52)

  1. 一种通信方法,其特征在于,所述方法包括:
    第一节点接收来自第二节点的第一报文,其中,所述第一报文包括:所述第二节点的组播路由信息,所述第一节点为组播树中所述第二节点的子节点,一个节点的组播路由标识用于该节点在所述组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在所述组播树中的非叶子子节点的组播路由信息;
    所述第一节点解析所述第一报文。
  2. 根据权利要求1所述的方法,其特征在于,所述第一节点为所述第二节点的非叶子子节点,第三节点为所述第一节点的子节点,所述第一节点解析所述第一报文,包括:
    所述第一节点根据所述第一报文,生成第二报文,其中,所述第二报文包括:所述第一节点的组播路由信息,或者所述第三节点的组播路由信息,所述第一节点的组播路由信息包括如下任一项:第一节点的组播路由标识和所述第三节点的组播路由信息、所述第一节点的组播路由标识、或者所述第一节点的组播路由标识和第三节点的组播路由标识;
    在所述第一节点解析所述第一报文之后,所述方法还包括:
    所述第一节点向所述第三节点发送所述第二报文。
  3. 根据权利要求2所述的方法,其特征在于,所述第一节点根据所述第一报文,生成第二报文,包括:
    所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息;
    所述第一节点根据所述第二节点的组播路由信息进行报文封装,获得所述第二报文;
    或者,所述第一节点根据所述第一报文,生成第二报文,包括:
    所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息;
    所述第一节点根据所述第一节点的组播路由信息中所述第一节点的组播路由标识,确定所述第三节点的组播路由信息;
    所述第一节点根据所述第三节点的组播路由信息进行报文封装,获得所述第二报文。
  4. 根据权利要求3所述的方法,其特征在于,所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息,包括:
    所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点在第一节点集合内的位置,所述第一节点集合为所述第二节点对应的节点集合,所述第一节点集合包括所述第二节点的部分或全部潜在子节点;
    所述第一节点根据所述第一节点在第一节点集合内的位置,确定所述第一节点的组播路由信息。
  5. 根据权利要求4所述的方法,其特征在于,所述第二节点的组播路由标识包 括:N个第一字段,N为所述第一节点集合中的节点个数,所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点在第一节点集合内的位置,包括:
    所述第一节点在所述N个第一字段中确定所述第一节点对应的第一字段的位置,所述第一节点对应的第一字段的位置用于表示所述第一节点在第一节点集合内的位置。
  6. 根据权利要求3所述的方法,其特征在于,所述第二节点的组播路由信息还包括所述第二节点的寻址字段,所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息,包括:
    所述第一节点根据所述第二节点的组播路由标识,以及所述第二节点的寻址字段,确定所述第一节点的组播路由信息。
  7. 根据权利要求6所述的方法,其特征在于,所述第二节点的寻址字段用于指示所述第二节点的子节点的组播路由信息的长度;或者,所述第二节点的寻址字段用于指示所述第二节点的子节点的组播路由信息的起始位置或结束位置;或者,所述第二节点的寻址字段包括:多个定界字段,所述第二节点的子节点的组播路由信息由所述多个定界字段分隔开。
  8. 根据权利要求2-7中任一项所述的方法,其特征在于,所述第一节点和所述第三节点为第一网络内的节点,所述第二报文还包括:第一头部和第二头部,所述第一头部包括:所述第三节点的组播路由信息,或者所述第一节点的组播路由信息,所述第二头部包括:第二网络的单播/组播信息。
  9. 根据权利要求8所述的方法,其特征在于,所述第一节点有所述第一节点的组播路由标识,或所述第三节点的组播路由标识,与所述第二网络的单播/组播信息的对应关系。
  10. 根据权利要求8或9所述的方法,其特征在于,所述第一节点为所述第二网络内的节点。
  11. 根据权利要求1所述的方法,其特征在于,所述第一节点为所述第二节点的叶子子节点,所述第一节点解析所述第一报文,包括:
    所述第一节点根据所述第一报文,生成第三报文,其中,所述第三报文包括:第一设备的单播/组播信息;
    在所述第一节点解析所述第一报文之后,所述方法还包括:
    所述第一节点向所述第一设备发送第三报文。
  12. 根据权利要求11所述的方法,其特征在于,所述第一报文包括所述第一节点的组播路由标识,所述第一节点的组播路由标识用于指示目的设备为所述第一设备。
  13. 根据权利要求1-12中任一项所述的方法,其特征在于,所述第一节点和所述第二节点为第一网络内的节点,所述第一报文还包括:第三头部和第四头部,所述第三头部包括:所述第二节点的组播路由信息,所述第四头部包括:第三网络的单播/组播信息。
  14. 根据权利要求13所述的方法,其特征在于,所述第二节点为所述第三网络内的节点。
  15. 根据权利要求8-14中任一项所述的方法,其特征在于,所述单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
  16. 一种通信方法,其特征在于,所述方法包括:
    第二节点获取第一报文,所述第一报文包括:所述第二节点的组播路由信息,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在所述组播树中的非叶子子节点的组播路由信息;
    所述第二节点向第一节点发送所述第一报文,所述第一节点为所述组播树中所述第二节点的子节点。
  17. 根据权利要求16所述的方法,其特征在于,所述第一节点和所述第二节点为第一网络内的节点,所述第一报文还包括:第三头部和第四头部,所述第三头部包括:所述第二节点的组播路由信息,所述第四头部包括:第三网络的单播/组播信息。
  18. 根据权利要求17所述的方法,其特征在于,所述第二节点为所述第三网络内的节点。
  19. 根据权利要求16-18中任一项所述的方法,其特征在于,所述单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
  20. 一种通信方法,其特征在于,所述方法包括:
    第四节点获取第四报文,其中,所述第四节点为第四网络内的节点,所述第四报文包括:第五头部,所述第五头部包括:第五网络的位串信息;
    所述第四节点根据所述第四报文,向第五节点发送第五报文,其中,所述第五报文包括:所述第五头部和第六头部,第六头部包括:第五节点的位串信息。
  21. 根据权利要求20所述的方法,其特征在于,所述第四节点配置有第一表项,以及第二表项,其中,所述第一表项包括:所述第五网络的位串信息,所述第二表项包括:所述第五节点的串位信息。
  22. 根据权利要求20所述的方法,其特征在于,所述第四节点根据所述第四报文,向第五节点发送第五报文,包括:
    所述第四节点在所述第四报文上封装所述第六头部,获得所述第五报文;
    所述第四节点向所述第五节点发送所述第五报文。
  23. 一种通信方法,其特征在于,所述方法包括:
    第五节点接收来自第四节点的第五报文,其中,所述第四节点和所述第五节点为第四网络内的节点,所述第五报文包括:第五头部和第六头部,所述第五头部包括:所述第五网络的位串信息,所述第六头部包括:所述第五节点的位串信息;
    所述第五节点解析所述第五报文。
  24. 根据权利要求23所述的方法,其特征在于,在所述第五节点解析所述第五报文之后,所述方法还包括:
    所述第五节点剥除所述第五报文中的所述第六头部,获得第四报文;
    所述第五节点向所述第五网络发送所述第四报文。
  25. 一种第一节点,其特征在于,包括:收发模块和处理模块,其中,
    所述收发模块,用于接收来自第二节点的第一报文,其中,所述第一报文包括:所述第二节点的组播路由信息,所述第一节点为组播树中所述第二节点的子节点,一个节点的组播路由标识用于该节点在所述组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在所述组播树中的非叶子子节点的组播路由信息;
    所述处理模块,用于解析所述第一报文。
  26. 根据权利要求25所述的节点,其特征在于,所述第一节点为所述第二节点的非叶子子节点,所述处理模块,还用于根据所述第一报文,生成第二报文,其中,所述第二报文包括:所述第一节点的组播路由信息,或者所述第三节点的组播路由信息,所述第一节点的组播路由信息包括如下任一项:第一节点的组播路由标识和所述第三节点的组播路由信息、所述第一节点的组播路由标识、或者所述第一节点的组播路由标识和第三节点的组播路由标识;所述收发模块,还用于向所述第三节点发送所述第二报文。
  27. 根据权利要求26所述的节点,其特征在于,所述处理模块,还用于根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息;根据所述第二节点的组播路由信息进行报文封装,获得所述第二报文;或者,所述处理模块,还用于所述第一节点根据所述第二节点的组播路由标识,确定所述第一节点的组播路由信息;根据所述第一节点的组播路由信息中所述第一节点的组播路由标识,确定所述第三节点的组播路由信息;根据所述第三节点的组播路由信息进行报文封装,获得所述第二报文。
  28. 根据权利要求27所述的节点,其特征在于,所述处理模块,还用于根据所述第二节点的组播路由标识,确定所述第一节点在第一节点集合内的位置,根据所述第一节点在第一节点集合内的位置,确定所述第一节点的组播路由信息,所述第一节点集合为所述第二节点对应的节点集合,所述第一节点集合包括所述第二节点的部分或全部潜在子节点。
  29. 根据权利要求28所述的节点,其特征在于,所述第二节点的组播路由标识包括:N个第一字段,N为所述第一节点集合中的节点个数,所述处理模块,还用于在所述N个第一字段中确定所述第一节点对应的第一字段的位置,所述第一节点对应的第一字段的位置用于表示所述第一节点在第一节点集合内的位置。
  30. 根据权利要求27所述的节点,其特征在于,所述第二节点的组播路由信息还包括所述第二节点的寻址字段,所述处理模块,还用于根据所述第二节点的组播路由标识,以及所述第二节点的寻址字段,确定所述第一节点的组播路由信息。
  31. 根据权利要求30所述的节点,其特征在于,所述第二节点的寻址字段用于指示所述第二节点的子节点的组播路由信息的长度;或者,所述第二节点的寻址字段用于指示所述第二节点的子节点的组播路由信息的起始位置或结束位置;或者,所述第二节点的寻址字段包括:多个定界字段,所述第二节点的子节点的组播路由信息由所述多个定界字段分隔开。
  32. 根据权利要求26-31中任一项所述的节点,其特征在于,所述第一节点和所述第三节点为第一网络内的节点,所述第二报文还包括:第一头部和第二头部,所述第一头部包括:所述第三节点的组播路由信息,或者所述第一节点的组播路由信息,所述第二头部包括:第二网络的单播/组播信息。
  33. 根据权利要求32所述的节点,其特征在于,所述第一节点有所述第一节点的组播路由标识,或所述第三节点的组播路由标识,与所述第二网络的单播/组播信息的对应关系。
  34. 根据权利要求32或33所述的节点,其特征在于,所述第一节点为所述第二网络内的节点。
  35. 根据权利要求25所述的节点,其特征在于,所述第一节点为所述第二节点的叶子子节点,所述处理模块,还用于根据所述第一报文,生成第三报文,其中,所述第三报文包括:第一设备的单播/组播信息;所述收发模块,还用于向所述第一设备发送第三报文。
  36. 根据权利要求35所述的节点,其特征在于,所述第一报文包括所述第一节点的组播路由标识,所述第一节点的组播路由标识用于指示目的设备为所述第一设备。
  37. 根据权利要求25-36中任一项所述的节点,其特征在于,所述第一节点和所述第二节点为第一网络内的节点,所述第一报文还包括:第三头部和第四头部,所述第三头部包括:所述第二节点的组播路由信息,所述第四头部包括:第三网络的单播/组播信息。
  38. 根据权利要求37所述的节点,其特征在于,所述第二节点为所述第三网络内的节点。
  39. 根据权利要求32-38中任一项所述的节点,其特征在于,所述单播/组播信息包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
  40. 一种第二节点,其特征在于,包括:处理模块和收发模块,其中,
    所述处理模块,用于获取第一报文,所述第一报文包括:所述第二节点的组播路由信息,一个节点的组播路由标识用于该节点在组播树中的非叶子子节点,确定该非叶子子节点的组播路由信息,一个节点的组播路由信息包括:该节点的组播路由标识和该节点在所述组播树中的非叶子子节点的组播路由信息;
    所述收发模块,用于向第一节点发送所述第一报文,所述第一节点为所述组播树中所述第二节点的子节点。
  41. 根据权利要求40所述的节点,其特征在于,所述第一节点和所述第二节点为第一网络内的节点,所述第一报文还包括:第三头部和第四头部,所述第三头部包括:所述第二节点的组播路由信息,所述第四头部包括:第三网络的单播/组播信息。
  42. 根据权利要求41所述的节点,其特征在于,所述第二节点为所述第三网络内的节点。
  43. 根据权利要求40-42中任一项所述的节点,其特征在于,所述单播/组播信息 包括如下任一项:互联网协议IP单播/组播信息、多协议标签交换MPLS标签信息、或位串信息。
  44. 一种第四节点,其特征在于,包括:处理模块和收发模块,其中,
    所述收发模块,用于获取第四报文,其中,所述第四节点为第四网络内的节点,所述第四报文包括:第五头部,所述第五头部包括:第五网络的位串信息;
    所述处理模块,用于根据所述第四报文,控制所述收发模块向第五节点发送第五报文,其中,所述第五节点为所述第四网络内的节点,所述第五报文包括:所述第五头部和第六头部,所述第六头部包括:所述第五节点的位串信息。
  45. 根据权利要求44所述的节点,其特征在于,所述第四节点配置有第一表项,以及第二表项,其中,所述第一表项包括:所述第五网络的位串信息,所述第二表项包括:所述第五节点的串位信息。
  46. 根据权利要求44所述的节点,其特征在于,所述处理模块,还用于在所述第四报文上封装第六头部,获得所述第五报文,以及,所述处理模块,还用于控制所述收发模块向所述第五节点发送所述第五报文。
  47. 一种第五节点,其特征在于,包括:处理模块和收发模块,其中,
    所述收发模块,用于接收来自第四节点的第五报文,其中,所述第四节点和所述第五节点为第四网络内的节点,所述第五报文包括:第五头部和第六头部,第五头部包括:第五网络的位串信息,第六头部包括:第五节点的位串信息
    所述处理模块,用于解析所述第五报文。
  48. 根据权利要求47所述的节点,其特征在于,所述处理模块,还用于在解析所述第五报文之后,剥除所述第五报文中的第六头部,获得第四报文,以及,所述处理模块,还用于控制所述收发模块向所述第五网络发送所述第四报文。
  49. 一种通信装置,其特征在于,该装置包括:处理器和存储器,存储器用于存储计算机程序,当处理器执行该程序时,使得如权利要求1-15中任一项所述的方法被执行,或者如权利要求16-19中任一项所述的方法被执行,或者如权利要求20-22中任一项所述的方法被执行,或者如权利要求23或24所述的方法被执行。
  50. 一种通信系统,其特征在于,所述通信系统包括:如权利要求16-39中任一项所述的第一节点、如权利要求40-43中任一项所述的第二节点、如权利要求44-46中任一项所述的第四节点、或如权利要求47或48所述的第五节点。
  51. 一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序,当所述计算机程序在计算机上运行时,使得如权利要求1-15中任一项所述的方法被执行,或者如权利要求16-19中任一项所述的方法被执行,或者如权利要求20-22中任一项所述的方法被执行,或者如权利要求23或24所述的方法被执行。
  52. 一种计算机可读存储介质,其特征在于,包括:计算机程序;当所述计算机程序在计算机上运行时,使得如权利要求1-15中任一项所述的方法被执行,或者如权利要求16-19中任一项所述的方法被执行,或者如权利要求20-22中任一项所述的方法被执行,或者如权利要求23或24所述的方法被执行。
PCT/CN2022/114357 2021-08-24 2022-08-23 通信方法及装置 Ceased WO2023025171A1 (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中兴通讯股份有限公司 数据包的处理方法及装置、存储介质、电子装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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