Communication method, device and system
By working collaboratively between the multicast source node and the receiving node and dynamically adjusting the tunnel transmission mode, the problem of resource waste in multicast message transmission in cloud scenarios is solved, and more efficient resource utilization and transmission efficiency are achieved.
Patent Information
- Application Number
- CN202410869153.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-04-29
- Filing Date
- 2024-06-28
- Publication Date
- 2025-10-31
AI Technical Summary
In cloud scenarios, resource waste occurs when using Overlay and Underlay networks during multicast message transmission, especially during multicast traffic transmission, where unicast tunneling leads to resource waste and replication bottlenecks.
By coordinating the work between the multicast source node and the receiving node, and utilizing tunnel switching events and switching commands, the tunnel transmission mode is dynamically adjusted to switch from a unicast tunnel to a multicast tunnel, thereby optimizing resource utilization.
It improves resource utilization, reduces the replication burden on multicast source nodes, lowers the routing capability requirements for multicast source nodes, expands the application scope, and improves transmission efficiency.
Smart Images

Figure CN120880973A_ABST
Abstract
Description
[0001] This application claims priority to Chinese Patent Application No. 202410547744.9, filed on April 29, 2024, entitled "A Multicast Method and Apparatus Based on Controller Definition Strategy", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communication technology, and in particular to a communication method, apparatus and system. Background Technology
[0003] In cloud environments, multicast technology can be used to transmit messages. Multicast is a technology that allows a multicast source to send the same message to multiple receiving nodes. The multicast source can utilize overlay and underlay networks to send messages to multiple receiving nodes. For example, in an overlay network, multiple Virtual Xtensible Local Area Network (VXLAN) tunnels are established between the multicast source and multiple receiving nodes, with one VXLAN tunnel corresponding to each receiving node. The multicast source replicates the message in the overlay network, obtaining multiple copies. The multicast source uses the VXLAN tunnels corresponding to each receiving node, and each VXLAN tunnel transmits the message to each receiving node via the underlay network.
[0004] In the above process, receiving a single message requires a VXLAN tunnel and the corresponding Underlay network to provide support, which results in a waste of resources. Summary of the Invention
[0005] This application provides a communication method, apparatus, and system to solve the problem of resource waste when sending nodes transmit multicast messages using Overlay and Underlay networks.
[0006] Firstly, this application provides a communication method. This method is executed by a multicast source node, which can be a computing device, a cluster of computing devices including at least one computing device, or an electronic device with communication capabilities (such as a router, switch, etc.). The method includes: the multicast source node transmitting multicast traffic to multiple receiving nodes using unicast tunneling. When the multicast traffic meets preset conditions, the multicast source node sends a tunnel switching event to a control node. The tunnel switching event triggers the multicast source node to switch its multicast traffic from unicast tunneling to multicast tunneling. The multicast source node receives a first tunnel switching command sent by the control node based on the tunnel switching event. Based on the first tunnel switching command, the multicast source node switches to transmitting multicast traffic to the multiple receiving nodes using multicast tunneling.
[0007] In this application, a multicast source node transmits multicast traffic to multiple receiving nodes using a unicast tunnel, and the receiving nodes receive the multicast traffic from the unicast tunnel. When the multicast traffic transmitted by the multicast source node using the unicast tunnel meets preset conditions, the multicast source node sends a tunnel switching event to a control node. The control node receives the event and establishes a multicast tunnel based on it, and sends a first tunnel switching command to the multicast source node. Based on the first tunnel switching command, the multicast source node switches to transmitting multicast traffic to the multiple receiving nodes using a multicast tunnel. The receiving nodes then receive the multicast traffic from the multicast tunnel. The control node adjusts the transmission method (unicast tunnel or multicast tunnel) to match the multicast traffic transmitted by the multicast source node on the unicast tunnel, thereby improving resource utilization.
[0008] In one possible implementation, the preset conditions include: the multicast traffic transmitted to multiple receiving nodes via unicast tunneling is greater than or equal to a traffic threshold; or, the multicast traffic transmitted to multiple receiving nodes via unicast tunneling conforms to the rules indicated by the Access Control List (ACL). This simplifies the preset conditions, allowing the multicast source node to quickly determine whether to send a tunnel switching event to the control node based on these conditions, ensuring that the tunnel and the traffic transmitted over it match, thereby improving resource utilization.
[0009] In another possible implementation, the method further includes: the multicast source node receiving event subscription information sent by the control node. The event subscription information indicates that the multicast source node should send a tunnel switching event to the control node when the multicast traffic transmitted to multiple receiving nodes via unicast tunneling meets preset conditions. Thus, when the multicast traffic transmitted by the multicast source node to multiple receiving nodes via unicast tunneling meets preset conditions, it can determine whether to send a tunnel switching event to the control node based on these preset conditions, ensuring that the tunnel and the traffic transmitted on the tunnel are matched, thereby improving resource utilization.
[0010] In another possible implementation, after sending a tunnel switching event to the control node, the method further includes: the multicast source node receiving the multicast address sent by the control node based on the tunnel switching event. The multicast source node directly receives the multicast address without needing to utilize its own resources to acquire it, thus reducing the routing capability requirements on the multicast source node and expanding the application scope of this communication method. Furthermore, by using the multicast address to transmit multicast traffic, the multicast source node can reduce the number of multicast packets it needs to replicate, increasing the upper limit of its replication capability.
[0011] In another possible implementation, the multicast address is one of the available multicast addresses. Alternatively, the multicast address is one of the allocated multicast addresses whose corresponding multicast traffic is less than a first traffic threshold. Here, the multicast traffic corresponding to the multicast address includes multicast traffic transmitted over a multicast tunnel established based on the multicast address. Alternatively, the multicast address is one of the allocated multicast addresses whose corresponding number of transmission nodes is less than or equal to a first number threshold. Here, the transmission nodes corresponding to the multicast address include all nodes receiving multicast traffic from the multicast tunnel established from the multicast address. The multicast address is one of the allocated multicast addresses whose corresponding number of transmission nodes is greater than or equal to a second number threshold. Here, the transmission nodes corresponding to the multicast address include receiving nodes receiving multicast traffic from the multicast tunnel established from the multicast address. Thus, by using the multicast tunnel established by this multicast address to transmit multicast traffic to multiple receiving nodes, the multicast traffic and the tunnel transmitting the multicast traffic are matched, improving resource utilization. In the event that no multicast address is available, the system selects the multicast address with the least transmission traffic from the allocated multicast addresses, provided that the number of corresponding transmission nodes is less than or equal to a first threshold, or that the number of corresponding transmission nodes is greater than or equal to a second threshold. This allows for the use of communication resources to transmit more multicast traffic, thereby improving resource utilization.
[0012] In another possible implementation, if the multicast traffic does not meet preset conditions, the multicast source node stops sending tunnel switching events to the control node. The multicast source node receives a second tunnel switching command from the control node. Based on the second tunnel switching command, the multicast source node switches to using a unicast tunnel to transmit multicast traffic. In this way, the multicast source node can adjust the tunnel used to transmit multicast traffic according to the actual multicast traffic situation, so that the tunnel used to transmit multicast traffic can match the multicast traffic situation, saving communication resources while ensuring transmission efficiency.
[0013] Secondly, this application provides a communication method. This method is executed by a receiving node, which may be a computing device, a cluster of computing devices including at least one computing device, or an electronic device with communication capabilities (such as a router, switch, etc.). The method includes: the receiving node obtaining multicast traffic from a multicast source node from a unicast tunnel; the receiving node receiving a first switching message sent by a control node; the first switching message including a multicast address and a tunnel identifier, the first switching message being used to trigger the receiving node to establish a multicast tunnel using the multicast address; the receiving node establishing the multicast tunnel based on the first switching message; and the receiving node receiving multicast traffic from the multicast source node from the multicast tunnel.
[0014] In this application, the receiving node establishes a multicast tunnel based on a tunnel switching message and receives multicast traffic from the multicast tunnel. This reduces the number of multicast packets that the multicast source node needs to replicate, alleviating the bottleneck in achieving its replication capacity caused by the increased number of receiving nodes receiving multicast traffic.
[0015] In one possible implementation, the receiving node establishes a multicast tunnel based on the first handover message. This includes: the receiving node establishing the multicast tunnel using the multicast address and tunnel identifier included in the first handover message, based on a shortest path tree (SPT) approach. In this way, the receiving node directly establishes a multicast tunnel based on the multicast source, reducing the complexity of implementing a multicast tunnel, shortening the transmission path of multicast traffic, and improving resource utilization.
[0016] In another possible implementation, the multicast address is one of the available multicast addresses. Alternatively, the multicast address is one of the allocated multicast addresses whose corresponding multicast traffic is less than a first traffic threshold. Here, the multicast traffic corresponding to the multicast address includes multicast traffic transmitted over a multicast tunnel established based on the multicast address. Alternatively, the multicast address is one of the allocated multicast addresses whose corresponding number of transmission nodes is less than or equal to a first number threshold. Here, the transmission nodes corresponding to the multicast address include all nodes receiving multicast traffic from the multicast tunnel established from the multicast address. The multicast address is one of the allocated multicast addresses whose corresponding number of transmission nodes is greater than or equal to a second number threshold. Here, the transmission nodes corresponding to the multicast address include receiving nodes receiving multicast traffic from the multicast tunnel established from the multicast address. Thus, multicast traffic is transmitted to multiple receiving nodes using a multicast tunnel established with this multicast address, matching the multicast traffic with the tunnel transmitting the multicast traffic, thereby improving resource utilization. In the event that no multicast address is available, the system selects the multicast address with the lowest transmission traffic from the allocated multicast addresses, provided that the number of corresponding transmission nodes is less than or equal to a first threshold, or that the number of corresponding transmission nodes is greater than or equal to a second threshold. This allows for the use of more communication resources to transmit multicast traffic, thereby improving resource utilization.
[0017] In another possible implementation, the receiving node receives a second handover message. This second handover message is sent by the control node when the time difference between receiving the tunnel handover event and the current time is greater than or equal to a duration threshold. The tunnel handover event is periodically sent by the multicast source node. Based on the second handover message, the receiving node obtains the multicast traffic from the multicast source node from the unicast tunnel. In this way, the receiving node can adjust the tunnel for receiving multicast traffic according to the actual multicast traffic situation, saving communication resources while ensuring transmission efficiency.
[0018] In another possible implementation, the receiving node sends a request to the nodes associated with it to revoke the multicast tunnel. Nodes associated with the receiving node include those that sent multicast traffic from the multicast source node to the receiving node. This timely revocation of the multicast tunnel reclaims the multicast address used to establish it, improving resource utilization.
[0019] Thirdly, this application provides a communication method. The method is executed by a control node, which may be a computing device or a cluster of computing devices including at least one computing device. The method includes: the control node receiving a tunnel switching event reported by a multicast source node. The tunnel switching event triggers the multicast traffic of the multicast source node to switch from unicast tunnel transmission to multicast tunnel transmission. In response to the tunnel switching event, the control node sends a first switching message to multiple receiving nodes. The first switching message includes a multicast address and a tunnel identifier, and is used to trigger the multiple receiving nodes to establish a multicast tunnel using the multicast address. The control node sends a first tunnel switching command to the multicast source node. The first tunnel switching command instructs the multicast source node to send multicast traffic to the multiple receiving nodes using a multicast tunnel.
[0020] In this application, the control node receives a tunnel switching event and sends a first tunnel switching command to the multicast source node, enabling the multicast source node to send multicast traffic to multiple receiving nodes using a multicast tunnel. Thus, the control node adjusts the tunnel used to transmit multicast traffic in a timely manner based on the multicast traffic situation, ensuring that the tunnel and the multicast traffic are matched, thereby improving resource utilization. Furthermore, the multicast source node does not need to use its own resources to determine whether a tunnel switching is necessary, reducing the requirements on the multicast source node and saving costs.
[0021] In one possible implementation, the tunnel switching event is sent by the multicast source node when the multicast traffic transmitted over the unicast tunnel meets preset conditions. These preset conditions include: the multicast traffic transmitted to multiple receiving nodes via unicast tunnel is greater than or equal to a traffic threshold; or, the multicast traffic transmitted to multiple receiving nodes via unicast tunnel conforms to the rules indicated by the Access Control List (ACL). In this way, the multicast source node can quickly and accurately determine whether to send a tunnel switching event based on the preset conditions, ensuring that the tunnel transmitting the multicast traffic matches the multicast traffic and improving resource utilization.
[0022] In another possible implementation, the method further includes: the control node sending event subscription information to the multicast source node. The event subscription information indicates that the multicast source node, when transmitting multicast traffic to multiple receiving nodes using unicast tunneling to meet preset conditions, should send a tunnel switching event to the control node. This ensures that when the multicast source node meets the preset conditions, it can receive the tunnel switching event sent by the multicast source node and switch tunnels according to the event, so that the switched tunnel matches the multicast traffic, improving resource utilization.
[0023] In another possible implementation, before sending the first handover message to multiple receiving nodes, the control node obtains a multicast address based on either an available multicast address or an already assigned multicast address. If an available multicast address exists, it is obtained from among the available multicast addresses. Thus, a multicast tunnel established using this multicast address is used to transmit multicast traffic to multiple receiving nodes, improving resource utilization. If no available multicast address exists, a multicast address is obtained from an already assigned multicast address. This allows for the transmission of more multicast traffic using limited communication resources.
[0024] In another possible implementation, the control node obtains the multicast address based on the allocated multicast addresses, including: the control node selecting a multicast address from the allocated multicast addresses whose corresponding multicast traffic is less than a first traffic threshold. Here, the multicast traffic corresponding to the multicast address includes multicast traffic transmitted over the multicast tunnel established based on the multicast address. The control node uses the multicast address whose corresponding multicast traffic is less than the first traffic threshold as the multicast address.
[0025] In another possible implementation, the control node obtains the multicast address based on the allocated multicast addresses, including: the control node selecting multicast addresses from the allocated multicast addresses where the number of corresponding transmission nodes is less than or equal to a first threshold. The transmission nodes corresponding to the multicast address include all nodes receiving multicast traffic from the multicast tunnel established from the multicast address. The multicast addresses whose corresponding transmission nodes are less than or equal to the first threshold are used as the multicast addresses.
[0026] In another possible implementation, the control node obtains the multicast address based on the allocated multicast addresses, including: the control node selecting multicast addresses from the allocated multicast addresses where the number of corresponding transmission nodes is greater than or equal to a second threshold. Here, the transmission nodes corresponding to the multicast address include all nodes receiving multicast traffic from the multicast tunnel established from the multicast address. The control node uses the multicast addresses with a corresponding number of transmission nodes greater than or equal to the second threshold as the multicast addresses.
[0027] In another possible implementation, the control node receives tunnel switching events reported by the multicast source node, including: the control node receiving tunnel switching events periodically reported by the multicast source node. The method further includes: if the time difference between the time of receiving the tunnel switching event and the current time is greater than or equal to a duration threshold, the control node sends a second tunnel switching command to the multicast source node. The second tunnel switching command instructs the multicast source node to use a unicast tunnel to transmit multicast traffic. In this way, the multicast source node can adjust the tunnel used to transmit multicast traffic according to the actual multicast traffic situation, so that the tunnel used to transmit multicast traffic can match the multicast traffic situation, saving communication resources while ensuring transmission efficiency.
[0028] In another possible implementation, the method further includes: the control node sending a second handover message to multiple receiving nodes. The second handover message instructs the multiple receiving nodes to revoke the established multicast tunnel. The control node releases the multicast tunnel and reclaims its multicast address for use with available multicast addresses. This improves the utilization rate of multicast addresses.
[0029] Fourthly, this application provides a communication method. This method is executed by a communication system, which includes a control node, a multicast source node, and multiple receiving nodes. The communication system is used to transmit multicast traffic from the multicast source node to the multiple receiving nodes in a cloud scenario. The method includes: the multicast source node transmitting multicast traffic to the multiple receiving nodes using a unicast tunnel. A first receiving node receives multicast traffic from the unicast tunnel. The first receiving node is one of the multiple receiving nodes. When the multicast traffic meets preset conditions, the multicast source node sends a tunnel switching event to the control node. The tunnel switching event is used to trigger the multicast source node to switch its multicast traffic transmission from the unicast tunnel to the multicast tunnel. The control node receives the tunnel switching event reported by the multicast source node. In response to the tunnel switching event, the control node sends a first switching message to the multiple receiving nodes. The first switching message includes a multicast address and a tunnel identifier, and is used to trigger the multiple receiving nodes to establish a multicast tunnel using the multicast address. The control node sends a first tunnel switching command to the multicast source node. The first tunnel switching command instructs the multicast source node to send multicast traffic to multiple receiving nodes using a multicast tunnel. The multicast source node receives the first tunnel switching command. Based on the first tunnel switching command, the multicast source node switches to using multicast tunnel transmission to send multicast traffic to multiple receiving nodes. The first receiving node receives the multicast traffic sent by the multicast source node from the multicast tunnel.
[0030] In this application, a multicast source node transmits multicast traffic to multiple receiving nodes using unicast tunnel transmission, and the receiving nodes receive the multicast traffic from the unicast tunnel. When the multicast traffic transmitted by the multicast source node using the unicast tunnel meets preset conditions, the multicast source node sends a tunnel switching event to a control node. The control node receives the tunnel switching event and sends a first switching message to the multiple receiving nodes based on the tunnel switching event. The receiving nodes establish a multicast tunnel based on the received first switching message. The control node sends a first tunnel switching command to the multicast source node. Based on the first tunnel switching command, the multicast source node switches to transmitting multicast traffic to the multiple receiving nodes using multicast tunnel transmission. The receiving nodes receive multicast traffic from the multicast tunnel. The control node adjusts the transmission method (unicast tunnel or multicast tunnel) in a timely manner according to the multicast traffic situation to ensure that the tunnel and the traffic transmitted on the tunnel match, thereby improving resource utilization.
[0031] Fifthly, this application provides a communication device. The device includes modules for performing the communication method described in the first aspect or any possible design of the first aspect.
[0032] Sixthly, this application provides a communication device. The device includes modules for performing the communication method described in the second aspect or any possible design of the second aspect.
[0033] In a seventh aspect, this application provides a communication device. The device includes modules for performing the communication method described in the third aspect or any possible design of the third aspect.
[0034] Eighthly, this application provides a communication system. The system includes a control node, a multicast source node, and multiple receiving nodes. The communication system is used to transmit multicast traffic from the multicast source node to the multiple receiving nodes in a cloud scenario. The multicast source node transmits multicast traffic to the multiple receiving nodes using a unicast tunnel. A first receiving node receives multicast traffic from the unicast tunnel. The first receiving node is one of the multiple receiving nodes. When the multicast traffic meets preset conditions, the multicast source node sends a tunnel switching event to the control node. The tunnel switching event triggers the multicast source node to switch its multicast traffic transmission from the unicast tunnel to the multicast tunnel. The control node receives the tunnel switching event reported by the multicast source node. In response to the tunnel switching event, the control node sends a first switching message to the multiple receiving nodes. The first switching message includes a multicast address and a tunnel identifier, and is used to trigger the multiple receiving nodes to establish a multicast tunnel using the multicast address. The control node sends a first tunnel switching command to the multicast source node. The first tunnel switching command instructs the multicast source node to send multicast traffic to the multiple receiving nodes using a multicast tunnel. The multicast source node receives the first tunnel switching command. Based on the first tunnel switching command, the multicast source node switches to transmitting multicast traffic to multiple receiving nodes using multicast tunnel transmission. The first receiving node receives the multicast traffic sent by the multicast source node from the multicast tunnel.
[0035] Ninthly, this application provides a computing device cluster. It includes at least one computing device, each computing device including a processor and a memory; the processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, causing the computing device cluster to perform operational steps of the communication method in the first aspect or any possible implementation of the first aspect, or to perform operational steps of the communication method in the second aspect or any possible implementation of the second aspect, or to perform operational steps of the communication method in the third aspect or any possible implementation of the third aspect, or to perform operational steps of the communication method in the fourth aspect or any possible implementation of the fourth aspect.
[0036] Tenthly, this application provides a computer-readable storage medium. It includes: computer software instructions; when executed in a computing device, the computer software instructions cause the computing device to perform operation steps of the method as described in the first aspect or any possible implementation thereof, or cause the computing device to perform operation steps of the method as described in the second aspect or any possible implementation thereof, or cause the computing device to perform operation steps of the method as described in the third aspect or any possible implementation thereof, or cause the computing device to perform operation steps of the method as described in the fourth aspect or any possible implementation thereof.
[0037] Eleventhly, this application provides a computer program product. When the computer program product is run on a computer, it causes a computing device to perform the operation steps of the method as described in the first aspect or any possible implementation of the first aspect, or causes the computing device to perform the operation steps of the method as described in the second aspect or any possible implementation of the second aspect, or causes the computing device to perform the operation steps of the method as described in the third aspect or any possible implementation of the third aspect, or causes the computing device to perform the operation steps of the method as described in the fourth aspect or any possible implementation of the fourth aspect.
[0038] The beneficial effects described in aspects five through eleven above can be referred to the description of any implementation method in aspect one or four, and will not be repeated here. Based on the implementation methods provided in the above aspects, this application can also be further combined to provide more implementation methods. Attached Figure Description
[0039] Figure 1 This is a schematic diagram of a Vxlan network;
[0040] Figure 2A This is a flowchart illustrating the transmission process of the first type of multicast message;
[0041] Figure 2B This is a flowchart illustrating the transmission process of the second type of multicast message;
[0042] Figure 3 A schematic diagram of the architecture of a communication system provided in this application;
[0043] Figure 4 A schematic diagram of the structure of a computing device provided in this application;
[0044] Figure 5 A flowchart illustrating the first communication method provided in this application;
[0045] Figure 6 Example diagram of the first method for obtaining a multicast address provided in this application;
[0046] Figure 7 Example diagram for the second method of obtaining multicast addresses provided in this application;
[0047] Figure 8 A schematic diagram of multicast message transmission provided in this application;
[0048] Figure 9 This application provides an example diagram of the first type of multicast traffic flow.
[0049] Figure 10 Example diagram of the second type of multicast traffic flow provided in this application;
[0050] Figure 11 A schematic diagram of the structure of the first type of communication device provided in this application;
[0051] Figure 12 A schematic diagram of the structure of the second type of communication device provided in this application;
[0052] Figure 13 A schematic diagram of the structure of the third type of communication device provided in this application;
[0053] Figure 14 This application provides a schematic diagram of the structure of a computing device cluster;
[0054] Figure 15 This is a schematic diagram of the connection between computing devices provided in this application. Detailed Implementation
[0055] The following is a brief introduction to some concepts that may be involved in this application.
[0056] (1) Multicast
[0057] Multicast is a one-to-many (or point-to-multipoint) communication method, typically between a source host and multiple (or a group of) destination hosts in a network. In multicast, there is one sender and multiple receivers. The sender is the multicast source, and the receivers are the multicast receivers used to receive multicast messages sent by the multicast source. Multiple multicast receivers corresponding to one multicast source can form a multicast group. Between the multicast source and the multicast group, switches and / or routers selectively copy and forward multicast messages according to their respective multicast forwarding table entries. For example, video / audio conferencing, IPTV, and stock quotes generally use multicast for transmission.
[0058] To ensure that multicast messages sent by a multicast source can be correctly addressed to the multicast group in the network, the multicast group is assigned a network address. Furthermore, the multicast source and multicast group, as matching objects, are a combination, typically represented as (S, G). Here, S stands for Source, representing the multicast source address, and G stands for Group, representing the multicast group address.
[0059] For a multicast group that matches a multicast source (e.g., multicast group 1 that matches multicast source 1), when a new host needs to receive multicast messages sent from multicast source 1 to multicast group 1, the host can request to join multicast group 1. Specifically, the host can send a multicast join request to multicast source 1 carrying the multicast source address and multicast group address (S1, G1). This allows each forwarding node on the communication link between the host and multicast source 1 to generate or update a multicast forwarding table entry for forwarding multicast messages to multicast group 1 based on (S1, G1) carried in the received multicast join request. For forwarding node 1 on the communication link between the host and multicast source 1, if forwarding node 1 determines that it does not have a multicast forwarding table entry containing (S1, G1), it generates a multicast forwarding table entry containing (S1, G1). This multicast forwarding table entry includes the multicast source 1 address, multicast group 1 address, ingress interface address, and outgress interface list. In this application, the ingress interface address is the interface address in forwarding node 1 that receives multicast packets, and the egress interface list includes the interface addresses in forwarding node 1 that communicate with the node that sent the multicast join request to forwarding node 1. When forwarding node 1 determines that it has a multicast forwarding table entry including (S1, G1), it only needs to update the egress interface list in the multicast forwarding table entry including (S1, G1), that is, forwarding node 1 adds the interface address in which it communicates with the node that sent the multicast join request to forwarding node 1 to the egress interface list. Furthermore, when any forwarding node on the communication link between the host that sent the multicast join request and multicast source 1 subsequently receives a multicast packet from multicast source 1, it can forward the received multicast packet through each egress interface indicated by the egress interface list of its local multicast forwarding table entry. In this application, multicast can also be called multicast, and correspondingly, multicast service can also be called multicast service; the two are interchangeable.
[0060] (2) Virtual Scalable Local Area Network
[0061] Virtual Xtensible Local Area Network (VXLAN) is a network virtualization technology that encapsulates a User Datagram Protocol (UDP) header before the Media Access Control (MAC) header. Specifically, the original packet (such as an Ethernet frame) is first encapsulated with a VXLAN header, then encapsulated within a UDP header, using the underlying network's IP and MAC addresses as the outer header.
[0062] Typically, VXLAN tunnel endpoints (VTEPs) are used to encapsulate and decapsulate VXLAN packets. The source IP address in the outer IP header of the VXLAN packet is the IP address of the source VTEP device, and the destination IP address is the IP address of the destination VTEP device. One pair of VTEP device addresses corresponds to one VXLAN tunnel. After the source VTEP device encapsulates the VXLAN packet, it sends the encapsulated packet to the destination VTEP device, which then decapsulates the received packet. In this application, the VTEP device can be abbreviated as VTEP, the source VTEP can be called the source VTEP, and the destination VTEP can be called the destination VTEP.
[0063] Figure 1 This is a schematic diagram of a VxLAN network, such as... Figure 1 As shown, in VxLAN, the underlying physical network is typically referred to as the Underlay network 101, and the virtualized network is called the Overlay network 102. Virtual devices in the Overlay network 102 can include border devices (such as D1) and edge devices (such as C1-C5), both of which are VTEP devices. The border device represents the exit point of the VxLAN network and can decapsulate VxLAN packets, such as... Figure 1 In this context, D1 is the edge device. D1 interfaces with the external network and is typically a Layer 3 gateway in a VxLAN network. It usually corresponds to the egress gateway B1 of the Underlay network 101, which can be a switch. Edge devices represent access to the VxLAN network and can encapsulate raw packets to obtain VxLAN packets, such as... Figure 1 C1-C5 in the diagram. Edge devices represent the portion of the VXLAN network access terminals. Edge devices typically correspond to the network access devices in the Underlay network 101, such as... Figure 1 In the A1-A5 series, network access devices can generally be switches or wireless access points (APs). Figure 1 In the Overlay network 102, C1-C5 correspond to network access devices A1-A5 in the Underlay network 101, respectively. D1 corresponds to the egress gateway B1.
[0064] To ensure clarity and brevity in the description of the following embodiments, a brief introduction to the related technologies is given below.
[0065] In cloud scenarios, multicast source nodes can use Vxlan to send multicast packets to multicast receiving nodes in the following two ways: Method 1 and Method 2. The two methods are described in detail below.
[0066] Method 1, point-to-point transmission.
[0067] Figure 2A The transmission flowchart for the first type of multicast message is as follows: Figure 2A As shown, Internet Group Management Protocol Snooping (igmpsnooping) is run in the bridge domain, and the multicast forwarding table generated according to the igmp protocol is listened to in the overlay network. Multicast packets are sent from the multicast source to the multicast receiving node according to the multicast forwarding table.
[0068] In this method, the outgoing port of the multicast forwarding table is a Vxlan tunnel. A Vxlan tunnel is used to forward multicast packets from the multicast source (e.g., ...). Figure 2A Cloud-based multicast source node S1 Figure 2A In this method, the multicast source node S2 transmits the message to a multicast receiver node. Each Vxlan tunnel transmission of multicast messages requires bandwidth resources provided by the Underlay network, causing the bandwidth resources occupied by the Underlay network to increase with the number of multicast receiver nodes. Furthermore, because the multicast source node needs to transmit one message to each multicast receiver node, the multicast source needs to replicate the message multiple times, equal to the number of multicast receiver nodes. As the number of multicast receiver nodes increases, this may create a bottleneck in the replication capability of the Overlay multicast.
[0069] Method 2: Point-to-multipoint transmission.
[0070] Figure 2B The transmission flowchart for the second type of multicast message is as follows: Figure 2B As shown, the multicast source node uses multiple network devices to send multicast messages to the multicast receiver node. Specifically, when encapsulating the original message, the source VTEP uses the multicast address (or multicast group) as the destination address of the Vxlan message to construct (multicast source, multicast group). The transmission process of this Vxlan message can include the following ① to ③.
[0071] ① Use the border gateway protocol (BGP) to discover the target network device that needs to exchange data among multiple network devices.
[0072] The network device can refer to a router, switch, or other device with communication capabilities. Taking a switch as an example, the BGP protocol is used to discover switches 1 through 3 from switch 1 to switch n that require data exchange. These switches that require data exchange can also be called leaf switches; for example, switches 1 through 3 can be referred to as leaf switches 1 through 3.
[0073] ② Create a multicast tree using the target network device.
[0074] The following describes the specific process of creating a multicast tree, using leaf switches 1 to 3 as the target network devices.
[0075] When multicast receiving node 1 needs to receive multicast messages transmitted from multicast source node to multicast group, multicast receiving node 1 can apply to join multicast group. Specifically, multicast receiving node 1 can send a join request carrying the multicast source address and multicast group address (S, G) to multicast source node, so that each forwarding node on the communication link between multicast receiving node 1 and multicast source node can generate or update the multicast forwarding table entry for forwarding multicast messages to multicast group based on (S, G) carried in the received multicast join request when forwarding multicast receiving node 1's multicast join request to multicast source node.
[0076] The process of generating multicast forwarding entries for any forwarding node (such as forwarding node 1) on the communication link between the multicast receiving node 1 and the multicast source node has different processing flows depending on whether it has a multicast forwarding entry of (S, G), which are described below.
[0077] Scenario 1
[0078] If forwarding node 1 determines that it does not have a multicast forwarding entry containing (S, G), it generates a multicast forwarding entry containing (S, G). This multicast forwarding entry includes the multicast source node address, multicast group address, ingress interface address, and egress interface list. The ingress interface address is the interface address in forwarding node 1 that receives multicast packets, and the egress interface list includes the interface addresses in forwarding node 1 that communicate with nodes that send multicast join requests to forwarding node 1.
[0079] Scenario 2
[0080] If forwarding node 1 determines that it has a multicast forwarding table entry including (S, G), then it only needs to update the outgoing interface list in the multicast forwarding table entry including (S, G). That is, forwarding node 1 adds the interface address of itself that communicates with the node that sent the multicast join request to forwarding node 1 to the outgoing interface list.
[0081] When any forwarding node on the communication link between multicast receiving node 1, which sent the multicast join request, and the multicast source subsequently receives a multicast message from the multicast source node, it can forward the received multicast message through each outgoing interface indicated in the outgoing interface list of its local multicast forwarding table entry. This forms a communication link that transmits the multicast message from the multicast source node to multicast receiving node 1. Similarly, other multicast receiving nodes (such as multicast receiving node 2) can also form communication links for receiving multicast messages in the manner described above. These communication links, formed by the various multicast receiving nodes and receiving multicast messages from the multicast source node, together constitute a multicast tree. In some possible cases, multicast receiving nodes may also be referred to as multicast receivers, receivers, receiving nodes, etc.
[0082] ③ The multicast source node uses the multicast tree to send multicast messages to the multicast receiver node.
[0083] Please continue reading Figure 2B , Figure 2B In this scenario, the multicast source node sends a multicast message to leaf switch 1, leaf switch 1 sends a multicast message to the spine switch, and the spine switch sends a multicast message to leaf switch 2 and leaf switch 3 respectively. Multicast receiver node 1 receives the multicast message sent by leaf switch 2, and multicast receiver node 2 receives the multicast message sent by leaf switch 3.
[0084] If the above process is implemented using compute nodes, the compute nodes use the next-generation framework NG MVPN to discover leaf switches via the BGP protocol, and to transmit VXLAN tunnel information and private network multicast signaling. This involves a large workload and complex implementation. Furthermore, when a compute node establishes a communication link, it cannot obtain traffic information carried by all nodes included in that communication link, and cannot reasonably allocate the traffic transmitted by each node, which may lead to low transmission efficiency.
[0085] Based on this, this application proposes a communication method that can be executed by a communication system. The communication system includes a control node, a multicast source node, and receiving nodes. The multicast source node transmits multicast traffic to multiple receiving nodes using a unicast tunnel. A first receiving node receives multicast traffic from the unicast tunnel. The first receiving node is one of multiple receiving nodes. When the multicast traffic meets preset conditions, the multicast source node sends a tunnel switching event to the control node. The tunnel switching event triggers the multicast source node to switch its multicast traffic transmission from the unicast tunnel to the multicast tunnel. The control node receives the tunnel switching event reported by the multicast source node. In response to the tunnel switching event, the control node sends a first switching message to multiple receiving nodes. The first switching message includes a multicast address and a tunnel identifier, and is used to trigger multiple receiving nodes to establish a multicast tunnel using the multicast address. The control node sends a first tunnel switching command to the multicast source node. The first tunnel switching command instructs the multicast source node to transmit multicast traffic to multiple receiving nodes using a multicast tunnel. The multicast source node receives the first tunnel switching command. The multicast source node switches to multicast tunnel transmission mode to transmit multicast traffic to multiple receiving nodes based on the first tunnel switching command. The first receiving node receives the multicast traffic sent by the multicast source node from the multicast tunnel.
[0086] Thus, the multicast source node transmits multicast traffic to multiple receiving nodes using unicast tunneling, and the receiving nodes receive this multicast traffic from the unicast tunnel. When the multicast traffic transmitted by the multicast source node using the unicast tunnel meets preset conditions, the multicast source node sends a tunnel switching event to the control node. The control node receives the event and establishes a multicast tunnel based on it, and sends a first tunnel switching command to the multicast source node. Based on the first tunnel switching command, the multicast source node switches to transmitting multicast traffic using multicast tunneling. The receiving nodes then receive multicast traffic from the multicast tunnel. The control node adjusts the transmission method (unicast tunnel or multicast tunnel) as needed based on the multicast traffic transmitted by the multicast source node on the unicast tunnel, ensuring that the tunnel and the traffic transmitted on it match, thereby improving the transmission efficiency of the multicast traffic.
[0087] The communication method provided in this application can be applied to Figure 3 The communication system shown. Figure 3 A schematic diagram of the architecture of a communication system provided in this application is shown below. Figure 3As shown, the communication system 300 includes a control node 310 and multiple computing nodes. The control node 310 and the computing nodes can be computing devices with physical entities or virtual devices without physical entities. When the control node 310 and the computing nodes are computing devices with physical entities, they can be servers, personal computers, tablets, etc., or electronic devices with communication functions, such as routers and switches. When the control node 310 and the computing nodes are computing devices without physical entities, they can be virtual machines, containers, etc. Communication between the control node 310 and the computing nodes, and between the computing nodes themselves, can be via wired or wireless means.
[0088] In a communication system where a computing node needs to send multicast messages to multiple other computing nodes, the multiple computing nodes may include a sending node 320 and multiple receiving nodes 330. The sending node 320 can refer to the computing node that needs to send the multicast messages, and the receiving node 330 can refer to the computing node that needs to receive the multicast messages. In some possible scenarios, the sending node 320 may also be called the multicast source node. The receiving node 330 may also be called the multicast receiver node, multicast receiver, destination node, target node, etc.
[0089] Control node 310 receives a tunnel switching event, sends a first switching message to multiple receiving nodes based on the event, and sends a tunnel switching command to sending node 320. If the multicast traffic transmitted on the unicast tunnel meets preset conditions, sending node 320 sends a tunnel switching event to control node 310 and receives the tunnel switching command sent by control node 310 based on the event. Sending node 320 switches to multicast tunnel transmission mode based on the tunnel switching command to transmit multicast traffic. Receiving node 330 receives multicast traffic from the multicast tunnel.
[0090] The aforementioned wired communication methods can include: Ethernet, fiber optic, and various peripheral component interconnect express (PCIe) buses installed inside the communication system to connect the control node 310, the transmitting node 320, and the receiving node 330.
[0091] The aforementioned wireless communication methods can include: the Internet, wireless fidelity (WIFI), and ultra-wideband (UWB) technology, etc.
[0092] In some possible scenarios, the communication system 300 may also include a client device 340. Users can send multicast traffic to the transmitting node 320 through the client device 340, and users can also configure tunnel switching policies to the control node 310 through the client device 340. The client device 340 can be a terminal device, including but not limited to a personal computer, server, mobile phone, tablet computer, or smart car.
[0093] The aforementioned communication system 300 can be applied in cloud scenarios, where the sending node 310 sends multicast messages to multiple receiving nodes. The sending node 310 can be a computing node in the cloud service (or a cloud-based multicast source) or a computing node outside the cloud service (or an external multicast source).
[0094] For example, Figure 3 The control nodes and computing nodes in the system can be implemented using computing devices. For example... Figure 4 As shown, Figure 4 A schematic diagram of the structure of a computing device provided in this application, such as... Figure 4 As shown, the computing device 400 includes a communication interface 414, a processor 411, and a memory 412. The communication interface 414 can be an input / output (I / O) interface. The communication interface 414 is used to communicate with devices located outside the computing device 400. For example, the computing device 400 receives multicast traffic to be transmitted through the communication interface 414.
[0095] Processor 411 is the core of computing device 400 for both computation and control. It may include: a central processing unit (CPU), a specific integrated circuit, other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. In practical applications, computing device 400 may also include multiple processors. Processor 411 may include one or more processor cores. An operating system and other software programs are installed in processor 411, enabling it to access memory 412 and various peripheral component interconnect (PCIe) devices.
[0096] The processor 411 is connected to the memory 412 via bus 416. Bus 416 can be a double data rate (DDR) bus or other types of bus. Memory 412 is the main memory of computing device 400. Memory 412 is typically used to store various running software, received requests, and processing results to be output in the operating system. To improve the access speed of processor 411, memory 412 needs to have the advantage of high access speed. In traditional computer devices, dynamic random access memory (DRAM) is usually used as memory 412. In addition to DRAM, memory 412 can also be other random access memory, such as static random access memory (SRAM). In addition, memory 412 can also be read-only memory (ROM). For example, read-only memory can be programmable read-only memory (PROM) or erasable programmable read-only memory (EPROM). This embodiment does not limit the number and type of memory 412.
[0097] Optionally, in order to persistently store data (such as processing results), the computing device 400 also includes a data storage system 413, which is located outside the computing device 400 (e.g., Figure 4 As shown, the data storage system 440 exchanges data with the computing device 400 via a network. Optionally, the data storage system 440 can also be located inside the host, such as when the data storage system 440 exchanges data with the processor 411 via the bus 416. In this case, the data storage system 440 behaves as a hard disk.
[0098] It is understood that the structure illustrated in this embodiment does not constitute a specific limitation on the computing device. In other embodiments, the computing device may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
[0099] The following is combined Figure 3 and Figure 4 The content shown provides a detailed description of the communication method provided in this application. Figure 5 This is a flowchart illustrating the first communication method provided in this application, which can be applied to... Figure 3The communication system shown includes a control node, a transmitting node, and multiple receiving nodes. The hardware implementation of the control node, transmitting node, and receiving nodes can be found in the foregoing. Figure 4 The description of that will not be repeated here. Figure 5 As shown, the message processing method provided in this embodiment includes the following S510 to S5115.
[0100] In the S510, the multicast source node transmits multicast traffic to multiple receiving nodes using unicast tunnel transmission.
[0101] In one possible scenario, the multicast source node can also execute S510A before executing S510. S510A includes: the multicast source node acquiring configuration information. This configuration information is used to instruct the multicast source node to send a tunnel switching event to the control node when the multicast traffic on the unicast tunnel meets preset conditions. The multicast source node can acquire configuration information in various ways; two possible examples are given below.
[0102] Example 1: The multicast source node receives configuration information sent by the control node.
[0103] Example 2: The multicast source node receives configuration information sent by other electronic devices. These other electronic devices can be servers storing configuration information or client devices receiving user input; this application does not limit the scope of the application.
[0104] In one possible scenario, the preset conditions can include multiple types; two examples are given below.
[0105] Example 1: The multicast traffic transmitted to multiple receiving nodes using unicast tunneling is greater than or equal to the traffic threshold.
[0106] Example 2 shows that multicast traffic transmitted to multiple receiving nodes using unicast tunneling conforms to the rules indicated by the Access Control List (ACL). The preset conditions can be other settings configured by the user according to the actual application needs; this application does not limit them.
[0107] In one possible scenario, the multicast source node transmits multicast traffic to multiple receiving nodes using unicast tunneling, which may include the following ① and ②.
[0108] ① The multicast source node obtains the multicast traffic to be transmitted based on the original multicast message.
[0109] The process can be described as follows: The multicast source node adds a source IP address and a destination IP address to the original multicast packet. The source IP address is the IP address of a VTEP (or source VTEP), the destination IP address is the IP address of another VTEP (or destination VTEP), and the destination IP address is a unicast address. In some possible scenarios, the multicast source node can also add a tunnel identifier to the original multicast packet to obtain a Vxlan packet including the IP addresses of the source VTEP, the destination VTEP, and the VNI. This Vxlan packet is the multicast traffic to be transmitted. In some possible scenarios, the tunnel identifier can also be called a Vxlan Network Identifier (VNI), the source VTEP's IP address can also be called a Vxlan source address, and the destination VTEP's IP address can also be called a Vxlan destination address.
[0110] ② The multicast source node transmits multicast traffic to multiple receiving nodes using unicast tunnel transmission.
[0111] The multicast source node uses a unicast tunnel to transmit ① the IP address of the source VTEP, the IP address of the destination VTEP, and the Vxlan message of the VNI.
[0112] In one possible scenario, the multicast source node and the receiving node can have the same VNI.
[0113] S520, the first receiving node receives multicast traffic from the unicast tunnel.
[0114] In this scenario, the first receiving node is one of multiple receiving nodes. The first receiving node receives multicast traffic from the destination VTEP of the unicast tunnel. For example, the source VTEP of the unicast tunnel transmitting multicast traffic is VTEP1, and the destination VTEP is VTEP2. The IP address of VTEP2 is a unicast address. In this case, the first receiving node receives multicast traffic from VTEP2 of the unicast tunnel.
[0115] The preceding sections, in conjunction with S510 and S520, describe the process by which a multicast source node transmits multicast messages to multiple receiving nodes using a unicast tunnel, and the specific procedures by which receiving nodes receive multicast messages from the unicast tunnel. In some possible scenarios, if the multicast messages sent by the multicast source node using the unicast tunnel meet preset conditions, the multicast source node can also execute the following steps, S530 to S5100, to transmit multicast messages using a multicast tunnel. Please refer to the relevant descriptions below for details.
[0116] S530: When the multicast traffic meets the preset conditions, the multicast source node sends a tunnel switching event to the control node.
[0117] Among them, the tunnel switching event is used to trigger the multicast traffic of the multicast source node to switch from unicast tunnel transmission to multicast tunnel transmission.
[0118] In other possible scenarios, if the multicast messages sent by the multicast source node using the unicast tunnel do not meet preset conditions, the multicast source node may stop sending tunnel switching events to the control node, or send a first message to the control node. This first message indicates that the traffic of the multicast source node on the unicast tunnel does not meet preset conditions.
[0119] In one possible scenario, the multicast source node may execute S530A before executing S530. S530A includes: the multicast source node receiving event subscription information sent by the control node. The event subscription information indicates that the multicast source node sends a tunnel switching event to the control node when the multicast traffic transmitted to multiple receiving nodes using unicast tunneling meets preset conditions.
[0120] In some possible scenarios, depending on the preset conditions, the multicast source node can use different methods to determine whether the multicast traffic it transmits on the unicast tunnel meets the preset conditions. The following is an explanation of each scenario.
[0121] Scenario 1 is based on the following condition: the multicast traffic transmitted to multiple receiving nodes using unicast tunneling is greater than or equal to the traffic threshold.
[0122] If the duration of multicast traffic transmitted to multiple receiving nodes via unicast tunneling reaches a traffic threshold is greater than or equal to a time length threshold, the multicast traffic transmitted by the multicast source node on the unicast tunnel can be considered to meet preset conditions. In this case, the multicast source node can periodically report tunnel switching events to the control node, and this period can be set by the user according to the needs of the actual application scenario.
[0123] Scenario 2, the preset condition is: multicast traffic transmitted to multiple receiving nodes using unicast tunnel transmission conforms to the rules indicated by the ACL.
[0124] If multicast traffic transmitted to multiple receiving nodes via unicast tunneling conforms to the rules indicated by the ACL, it can be assumed that the multicast traffic transmitted by the multicast source node on the unicast tunnel meets the preset conditions. In this case, the multicast source node can periodically report tunnel switching events to the control node, and this period can be set by the user according to the needs of the actual application scenario.
[0125] In one possible scenario, after sending a tunnel handover event to the control node, the source multicast node can also receive a multicast address sent by the control node based on the tunnel handover event. This multicast address can be an available multicast address or an assigned multicast address, which will be explained separately below.
[0126] ① The multicast address is an available multicast address.
[0127] In this scenario, an available multicast address can refer to a multicast address that has not been used to establish other multicast tunnels. For example, multicast addresses include multicast address 1 to multicast address n. Multicast addresses 1 to n-2 have all been used to establish multicast tunnels, multicast address n-1 is a reserved multicast address, and multicast address n has not been used to establish a multicast tunnel, nor is it a reserved multicast address. In this case, multicast address n can be considered an available multicast address.
[0128] ② The multicast address is an already assigned multicast address.
[0129] In this scenario, depending on the selection strategy, the multicast address can be a different multicast address from the allocated multicast addresses. Several possible examples are given below. Example 1: The multicast address is a multicast address from the allocated multicast addresses whose corresponding multicast traffic is less than a first traffic threshold; wherein, the multicast traffic corresponding to the multicast address includes multicast traffic transmitted on the multicast tunnel established based on the multicast address.
[0130] Example 2: The multicast address is a multicast address for which the number of corresponding transmission nodes is less than or equal to a first quantity threshold among the allocated multicast addresses; wherein, the transmission nodes corresponding to the multicast address include all nodes that receive multicast traffic on the multicast tunnel established from the multicast address.
[0131] Example 3: The multicast address is a multicast address for which the number of corresponding transmission nodes is greater than or equal to a second quantity threshold among the allocated multicast addresses; wherein, the transmission nodes corresponding to the multicast address include receiving nodes that receive multicast traffic on the multicast tunnel established from the multicast address.
[0132] Depending on the needs of the actual application, other selection strategies can be set to select multicast addresses that meet other conditions from the allocated multicast addresses as multicast addresses, and this application does not limit this.
[0133] S540, the control node receives tunnel switching events reported by the multicast source node.
[0134] Before executing S540, the control node can also execute S540A. S540A includes sending event subscription information to the multicast source node.
[0135] After the control node receives the tunnel switching event reported by the multicast source node, it can perform different operations. Two possible examples are given below.
[0136] Example 1: After the control node receives the tunnel switching event reported by the multicast source node for the first time, it immediately executes S550.
[0137] Example 2: After the control node receives a tunnel switching event reported by the multicast source node more than or equal to the number of times it receives such event, it executes S550. This number of times threshold can be set by the user according to the actual application scenario.
[0138] In response to a tunnel handover event, the control node in S550 sends a first handover message to multiple receiving nodes.
[0139] The first switching message includes the multicast address and tunnel identifier. These multiple receiving nodes are all used to receive multicast traffic carrying the same information sent by the multicast source node.
[0140] Depending on whether an available multicast address exists, the control node can use different methods to obtain the multicast address included in the first handover message, which will be explained in detail below.
[0141] Scenario 1: A multicast address is available.
[0142] In this scenario, the control node can obtain the multicast address based on the available multicast address and use that multicast address to construct the first handover message. The control node can obtain the multicast address from the available multicast address in several ways; some possible examples are given below.
[0143] Example 1: The control node can randomly select a multicast address (such as the first multicast address) from the available multicast addresses, and use the first multicast address to establish a multicast tunnel.
[0144] Example 2: The control node can also randomly select a multicast address (such as a second multicast address) from the available multicast addresses using preset rules, and establish a multicast tunnel using this second multicast address. These preset rules can be set by the user according to the actual application. For example, the preset rule could be to prioritize selecting multicast addresses in network segment 1 to establish a multicast tunnel.
[0145] Depending on the actual application requirements, the control node may also use other methods to obtain the multicast address and use the multicast address to construct the first handover message, which is not limited in this application.
[0146] Scenario 2: No available multicast address exists.
[0147] In this scenario, the control node can obtain the multicast address based on the assigned multicast address and use that multicast address to construct the first handover message. The control node can obtain the multicast address in several ways; some possible examples are given below.
[0148] Example 1: The control node selects a multicast address from the allocated multicast addresses whose multicast traffic is less than a first traffic threshold. The multicast traffic corresponding to the multicast address includes multicast traffic transmitted over the multicast tunnel established based on the multicast address.
[0149] The first traffic threshold can refer to a fixed value or the multicast traffic transmitted over a multicast tunnel established based on the first multicast address. This fixed value can be set based on historical data or determined based on data transmission between the multicast source node and multiple receiving nodes; this application does not limit this. The first multicast address is one of the allocated multicast addresses. The multicast traffic transmitted through a multicast tunnel established using the first multicast address is less than the multicast traffic transmitted through multicast tunnels established using other multicast addresses, which are multicast addresses other than the first multicast address among the allocated multicast addresses.
[0150] The following example illustrates the process of selecting a multicast address by the control node using the method shown in Example 1, with the first traffic threshold referring to the multicast traffic transmitted over the multicast tunnel established based on the first multicast address as an example. Figure 6 Example diagram of the first method for obtaining multicast addresses provided in this application, such as Figure 6 As shown, multicast tunnel 1 between address 1 and multicast address 1 is used to transmit multicast messages between (S11, G11) and (S12, G12). Multicast tunnel 2 between address 1 and multicast address 2 is used to transmit multicast messages between (S21, G21) and (S22, G22). Multicast tunnel 3 between address 1 and multicast address 3 is used to transmit multicast messages between (S31, G31). In this case, the control node selects multicast address 3, which transmits the least multicast traffic, from multicast address 1 to multicast address 3 as the multicast address. In this case, the traffic transmitted on the multicast tunnel established based on multicast address 3 is the first traffic threshold. The control node instructs the receiving nodes to establish multicast tunnel 1 using multicast address 3, and this multicast tunnel 1 is used to transmit multicast messages between (S1, G1). Here, S1 refers to the multicast source node, and each receiving node receives multicast messages from G1.
[0151] Example 2: The control node selects multicast addresses from the allocated multicast addresses where the number of corresponding transmission nodes is less than or equal to a first threshold. The transmission nodes corresponding to the multicast addresses include all nodes receiving multicast traffic from the multicast tunnel established from the multicast addresses.
[0152] The first quantity threshold can be a fixed value. This fixed value can be set based on historical data or determined based on the data transmission between the multicast source node and multiple receiving nodes; this application does not limit this.
[0153] The first quantity threshold is a fixed value of 100. Multicast tunnel 1 between address 1 and multicast address 2 is used to transmit multicast messages between (S11, G11) and (S12, G12). G11 includes 40 receiving nodes, and G12 includes 80 receiving nodes. The multicast tunnel established using multicast address 1 has 120 receiving nodes. Multicast tunnel 2 between address 1 and multicast address 2 is used to transmit multicast messages between (S21, G21) and (S22, G22). G21 includes 30 receiving nodes, and G22 includes 80 receiving nodes. In this case, multicast tunnel 2 established using multicast address 2 has 110 receiving nodes. Multicast tunnel 3 between address 1 and multicast address 3 is used to transmit multicast messages between (S31, G31). G31 includes 30 receiving nodes. In this scenario, the multicast tunnel 3 established using multicast address 3 has 30 receiving nodes. In this scenario, the control node selects multicast address 3 from multicast addresses 1 to 3, choosing multicast address 3 as the multicast address if it has 100 or fewer receiving nodes.
[0154] The first quantity threshold can also be the first multicast address. The first multicast address is one of the allocated multicast addresses. All nodes receiving multicast traffic on the multicast tunnel established from the first multicast address constitute the first node set, and all nodes receiving multicast traffic on the multicast tunnel established from the second multicast address constitute the second node set. The second multicast address is any multicast address other than the first multicast address among the allocated multicast addresses. The number of nodes in the first node set that are different from the receiving nodes is less than or equal to the number of nodes in the second node set that are different from the receiving nodes.
[0155] Figure 7 Example diagram of the second method for obtaining multicast addresses provided in this application, such as Figure 7As shown, (S11, G11) and (S12, G12) transmit multicast messages using multicast tunnel 1, (S21, G21) and (S22, G22) transmit multicast messages using multicast tunnel 2, and (S31, G31) transmit multicast messages using multicast tunnel 3. The source addresses of multicast tunnels 1, 2, and 3 are the same. The destination address of multicast tunnel 1 is multicast address 1, the destination address of multicast tunnel 2 is multicast address 2, and the destination address of multicast tunnel 3 is multicast address 3. Receiving nodes R1 to R3 receive multicast messages from multicast tunnel 1, receiving nodes R4 and R5 receive multicast messages from multicast tunnel 2, and receiving nodes R6 to R8 receive multicast messages from multicast tunnel 3. In the case where the multicast source node S1 needs to send multicast messages to receiving nodes R6 and R7, i.e., receiving nodes R6 and R7 need to receive multicast messages from G1, the receiving nodes of multicast tunnel 1 established using multicast address 1 include R1 to R3, and are all different from receiving nodes R6 and R7. That is, multicast tunnel 1 established using multicast address 1 has 3 nodes different from the receiving nodes. Similarly, multicast tunnel 2 established using multicast address 2 has 2 nodes different from the receiving nodes, and multicast tunnel 3 established using multicast address 3 has 1 node different from the receiving nodes. In this case, the control node uses multicast tunnel 3 established using the source address and multicast address 3 to send multicast messages from the multicast source node to receiving nodes R6 and R7. Example 3: The control node selects multicast addresses from the allocated multicast addresses whose corresponding number of transmitting nodes is greater than or equal to a second quantity threshold. The transmission nodes corresponding to the multicast address include all nodes that receive multicast traffic from the multicast tunnel established from the multicast address.
[0156] The second threshold can be a fixed value or the total number of nodes receiving multicast traffic from the multicast tunnel established from the first multicast address. This fixed value can be determined based on historical data or on the data transmission between the multicast source node and multiple receiving nodes; this application does not limit this. The first multicast address is one of the allocated multicast addresses. All nodes receiving multicast traffic from the multicast tunnel established from the first multicast address constitute the first node set, and all nodes receiving multicast traffic from the multicast tunnel established from the second multicast address constitute the second node set. The second multicast address is any multicast address other than the first multicast address among the allocated multicast addresses. The number of receiving nodes included in the first node set is greater than or equal to the number of receiving nodes included in the second node set.
[0157] The following example illustrates the process of selecting a multicast address for the control node using the method shown in Example 3, with the second quantity threshold referring to the total number of nodes receiving multicast traffic from the multicast tunnel established from the first multicast address. Please refer to [link to previous text]. Figure 7 When the multicast source node needs to send multicast messages to receiving nodes R6 and R7, the receiving nodes of multicast tunnel 1 established using multicast address 1 include R1 to R3. There are no nodes identical to receiving nodes R6 and R7; that is, multicast tunnel 1 established using multicast address 1 has 0 nodes identical to the receiving nodes. Similarly, multicast tunnel 2 established using multicast address 2 has 0 nodes identical to the receiving nodes, and multicast tunnel 3 established using multicast address 3 has 2 nodes different from the receiving nodes. In this case, the control node uses multicast tunnel 3 established using the source address and multicast address 3 to send the multicast messages from the multicast source node to receiving nodes R6 and R7.
[0158] In some possible scenarios, the control node may obtain multiple multicast addresses that meet the requirements from the allocated multicast addresses using the methods shown in Examples 1 to 3. In this case, the control node can combine the methods shown in Examples 1 to 3 to obtain a multicast address that simultaneously meets at least two of the requirements in Examples 1 to 3, and construct a handover message using the multicast address that meets at least two of the requirements in Examples 1 to 3 to instruct the receiving node to establish a multicast tunnel using that multicast address. Depending on the needs of the actual application, the control node may also adopt other strategies to select multicast addresses from the allocated multicast addresses for establishing a multicast tunnel, which is not limited in this application.
[0159] In the above process, the control node sends the multicast address to the multicast source node and multiple receiving nodes, enabling the multicast source node to send multicast messages using the multicast tunnel established by that multicast address, and each of the multiple receiving nodes to receive the multicast messages from the multicast tunnel established by that multicast address. Specifically, the control node sends the multicast address to the multicast source node and each receiving node. The multicast source node uses this multicast address as the IP address of the destination VTEP and performs multicast VXLAN tunnel encapsulation. The multicast source node uses this multicast tunnel to send the multicast messages from the multicast source node, the source VTEP, the destination VTEP, to each receiving node.
[0160] S560, the first receiving node receives the first handover message and establishes a multicast tunnel based on the received first handover message.
[0161] In some possible scenarios, the first receiving node establishes a multicast tunnel based on the multicast address and tunnel identifier included in the first handover message, using a Shortest Path Tree (SPT) bearer. For example, the first receiving node may use Protocol Independent Multicast-Source Specific Multicast (PIM-SSM) Shortest Path Tree (SPT) bearer or Protocol Independent Multicast-Any Source Multicast (PIM-ASM) Any-Source Multicast (APT) bearer in the Underlay network, based on the multicast address and tunnel identifier included in the first handover message. When using the PIM-SSM SPT bearer, the Underlay network is triggered to send a PIM SSM(S,G) join or prune message based on the multicast address in the first handover message sent by the control node. In addition, when using the SPT bearer of PIM-ASM, the Underlay network is triggered to send PIM ASM(S,G) join or prune messages based on the multicast address in the first handover message sent by the control node. Figure 8 This application provides a schematic diagram of multicast message transmission, such as... Figure 8 As shown, the multicast source node sends multicast messages to the receiving node via nodes 1 to 3. In this scenario, the receiving node sends join messages to nodes 3 to 1, and nodes 1 to 3 obtain (S, G) entries based on the joined messages, and establish transmission links based on the (S, G) entries. Nodes 1 to 3 then transmit the multicast messages from the multicast source node to the receiving node according to their respective (S, G) entries. Furthermore, in cases where the multicast tunnel needs to be terminated, the receiving node sends pruning messages to nodes 3 to 1, and nodes 1 to 3 delete (S, G) entries based on the pruning messages, thus deleting the transmission links.
[0162] S570, the control node sends the first tunnel switching command to the multicast source node.
[0163] The first tunnel switching command is used to instruct the multicast source node to send multicast traffic to multiple receiving nodes using a multicast tunnel.
[0164] In some possible scenarios, the control node may wait for a first duration after sending a first handover message to multiple receiving nodes, and then send a first tunnel handover command to the multicast source node after the first duration. This first duration may be set according to the actual application requirements. For example, the first duration may be set based on the historical time when the receiving nodes established multicast tunnels using the multicast address. Alternatively, the first duration may be set based on the communication status between the receiving nodes and the multicast source node; this application does not limit this setting.
[0165] S580, the multicast source node receives the first tunnel switching command.
[0166] The multicast source node can directly receive the first tunnel switching command transmitted by the control node. Depending on the actual application requirements, the multicast source node can also receive the first tunnel switching command sent by the control node from the relay device. This application does not limit this.
[0167] S590, the multicast source node switches to multicast tunnel transmission mode to transmit multicast traffic to multiple receiving nodes based on the first tunnel switching command.
[0168] In this scenario, the multicast source node can change the destination address when encapsulating the message from a unicast address to a multicast address, resulting in a message to be transmitted that includes the multicast address as the destination address.
[0169] S5100: The first receiving node receives multicast traffic sent by the multicast source node from the multicast tunnel.
[0170] The above describes the process by which the multicast source node switches from transmitting multicast traffic to multiple receiving nodes using unicast tunnels to transmitting multicast traffic to multiple receiving nodes using multicast tunnels when the multicast traffic transmitted by the multicast source node on the unicast tunnel meets the preset conditions, and the specific process by which the receiving nodes switch from receiving multicast traffic from unicast tunnels to receiving multicast traffic from multicast tunnels.
[0171] Figure 9 The first example diagram of multicast traffic flow provided in this application is as follows: Figure 9 Figure (a) illustrates a schematic diagram of how the multicast source node S1 transmits multicast messages to each receiving node. Receiving nodes R1 through R6 all receive multicast traffic transmitted from S1 from multicast group G1, and receiving nodes R5 and R6 are deployed on the same server. The previous hop for receiving nodes R1 through R3 is node 1, the previous hop for receiving nodes R4 and R5 is node 2, and the previous hop for nodes 1 and 2 is node 3.
[0172] S1 uses unicast tunneling to transmit multicast traffic to multiple receiving nodes.
[0173] In this scenario, since receiving nodes R5 and R6 are deployed on the same server, S1 needs to obtain five copies of the multicast message. S1 transmits the five multicast messages to node 3 via at least one node. Node 3 transmits three copies of the multicast message to node 1, and node 1 transmits these three copies to R1, R2, and R3 respectively. Node 3 transmits two more copies of the multicast message to node 2, node 2 transmits one copy of the multicast message to R4, and transmits the other copy to the server deploying R5 and R6. This server then replicates the multicast message to obtain two copies. The server then transmits these two copies of the multicast message to R5 and R6 respectively.
[0174] S1 uses multicast tunneling to transmit multicast traffic to multiple receiving nodes.
[0175] In this scenario, S1 transmits the multicast message to Node 3 via at least one hop, and Node 3 replicates the multicast message to obtain two copies. Node 3 sends one copy of the multicast message to Node 1 and the other copy to Node 2. Node 1 replicates the multicast message to obtain three copies. Node 1 transmits the three copies of the multicast message to R1, R2, and R3 respectively. Node 2 replicates the multicast message to obtain two copies. Node 2 transmits one copy of the multicast message to R4 and the other copy to the server where R5 and R6 are deployed. The server receives and replicates the two copies of the multicast message, and then transmits the two copies to R5 and R6 respectively.
[0176] Please continue reading Figure 9 , Figure 9 Figure (b) shows a schematic diagram of how the multicast source node S2 transmits multicast messages to each receiving node within the cloud. Receiving nodes R5 through R8 all receive multicast traffic transmitted from S2 from multicast group G2. The previous hop of receiving nodes R5 and R6 is node 4, and the previous hop of receiving nodes R7 and R8 is node 5.
[0177] S2 uses unicast tunneling to transmit multicast traffic to multiple receiving nodes.
[0178] In this scenario, S2 replicates four multicast messages. S2 transmits the multicast message to node 4 via at least one node, and transmits two copies of the multicast message to R5 and R6 respectively. S2 transmits the multicast message to node 5 via at least one node, and transmits two copies of the multicast message to R7 and R8 respectively.
[0179] S2 uses multicast tunneling to transmit multicast traffic to multiple receiving nodes.
[0180] In this scenario, S2 transmits the multicast message to Node 4 via at least one hop, and Node 4 replicates the multicast message to obtain three copies. Node 4 transmits two copies of the multicast message to R5 and R6 respectively, and transmits the third copy to Node 5 via at least one node. Node 5 replicates the multicast message to obtain two copies. Node 5 then transmits the two copies of the multicast message to R7 and R8 respectively.
[0181] After executing S5100, the communication system can also execute S5111 to S5115, which causes the multicast source node to switch to transmitting multicast traffic to multiple receiving nodes using unicast tunnel transmission, and the first receiving node to receive multicast traffic from the unicast tunnel. This process may include S5111 to S5115.
[0182] S5111, if the time difference between the time of receiving the tunnel switching event and the current time is greater than or equal to the duration threshold, the control node sends a second tunnel switching command to the multicast source node.
[0183] The second tunnel switching command is used to instruct the multicast source node to send multicast traffic using a unicast tunnel.
[0184] The time of receiving a tunnel switching event can refer to the time when the tunnel switching event was last received, or the current time can refer to the time when the tunnel switching event was acquired. For example, the control node last received a tunnel switching event from the multicast source node at time 1. Then, at time 2, the control node did not receive a tunnel switching event from the multicast source node. In this case, the control node calculates the time difference 1 between time 2 and time 1. If the time difference 1 is greater than or equal to a duration threshold, the control node considers that the multicast traffic sent by the multicast source node using the multicast tunnel does not meet the preset conditions and sends a second tunnel switching command to the multicast source node, causing the multicast source node to switch to unicast tunnel transmission to transmit multicast traffic to multiple receiving nodes.
[0185] In some possible scenarios, the control node can also execute S5111A. S5111A includes: the control node sending a second handover message to multiple receiving nodes. The second handover message is used to instruct the multiple receiving nodes to cancel the established multicast tunnel.
[0186] S5112, the multicast source node receives the second tunnel switching command, and based on the second tunnel switching command, switches to sending multicast traffic from the unicast tunnel.
[0187] Upon receiving the second tunnel switching command, the multicast source node can immediately switch to the unicast tunnel to send multicast traffic. Alternatively, after receiving the second tunnel switching command, the multicast source node can first check the working status of the unicast tunnel. If the unicast tunnel is functioning normally, the multicast source node switches to the unicast tunnel to send multicast traffic. If the unicast tunnel is not functioning correctly, the multicast source node sends a notification of unicast tunnel malfunction to the control node. This notification requests the use of a multicast tunnel for multicast traffic transmission, or another unicast tunnel transmission method to transmit multicast traffic to multiple receiving nodes. Depending on the needs of the application, the multicast source node may also use other methods to transmit multicast traffic after receiving the second tunnel switching command; this application does not limit this.
[0188] S5113, the first receiving node receives multicast traffic from the unicast tunnel.
[0189] For details regarding the receiving node obtaining multicast traffic from the unicast tunnel, please refer to the relevant description of S520 above; it will not be repeated here.
[0190] S5114, the first receiving node receives the second handover message and cancels the multicast tunnel based on the second handover message.
[0191] In some possible scenarios, the first receiving node may also send a request to revoke the multicast tunnel to nodes associated with it based on a second handover message. Nodes associated with the first receiving node include nodes that send multicast traffic from the multicast source node to the first receiving node. For example, the multicast source node sends multicast traffic to receiving node 1 in the sequence "Node 1 -> Node 2 -> Node 3 -> Node 4 -> Node 5". Upon receiving a request instructing receiving node 1 to receive multicast traffic from the multicast source node via a unicast tunnel, receiving node 1 may send a request to Nodes 1 through 5 to revoke the multicast tunnel. This causes Nodes 1 through 5 to delete their stored (S, G) entries, thereby revoking the multicast tunnel.
[0192] S5115, the control node reclaims the multicast address of the multicast tunnel and moves it to an available multicast address.
[0193] After a multicast tunnel is released, the multicast address used to establish that tunnel may be used to establish other multicast tunnels. These other multicast tunnels are used to transmit multicast messages between the multicast source node and the receiving node. The control node can handle this multicast address in different ways; two possible examples are given below.
[0194] Example 1: After a multicast tunnel is released, the multicast address used to establish that multicast tunnel will not be used to establish other multicast tunnels.
[0195] In this scenario, the control node reclaims the multicast address and adds it to the available multicast address list. For example, after the control node releases the multicast tunnel, the multicast address 1 used to establish that tunnel is no longer used to establish other multicast tunnels. In this case, the control node can add multicast address 1 to the available address table.
[0196] Example 2: After the multicast tunnel is released, the multicast address used to establish that multicast tunnel is used to establish other multicast tunnels.
[0197] In this scenario, the control node does not reclaim the multicast address and add it to the list of available multicast addresses, nor does it update the multicast source and receiver nodes that use the multicast address to transmit multicast messages. The updated multicast address is then used only to establish other multicast tunnels. For example, the multicast address is used to establish multicast tunnel 1 and multicast tunnel 2. Multicast tunnel 1 is used to transmit multicast messages from S1 to G1, and multicast tunnel 2 is used to transmit multicast messages from S2 to G2. After the control node releases multicast tunnel 1, if it detects that the multicast address used to build multicast tunnel 1 is also used to establish multicast tunnel 2, it does not add this multicast address to the list of available multicast addresses and updates the list to show that the multicast address is only used to establish multicast tunnel 2.
[0198] The above describes the process by which the multicast source node switches to unicast tunnel transmission to transmit multicast traffic to multiple receiving nodes after the multicast source node switches to multicast tunnel transmission when the multicast traffic transmitted on the multicast tunnel changes again and does not meet the preset conditions, and the specific process by which the multiple receiving nodes receive multicast traffic from the unicast tunnel.
[0199] Figure 10 Example diagram of the second type of multicast traffic flow provided in this application, such as Figure 10 Figure (a) provides a flowchart illustrating the process of switching from multicast source node S1 outside the cloud to unicast tunnel transmission when transmitting multicast traffic to multiple receiving nodes. This process is similar to... Figure 9 The process described in (a) is the opposite. S1 first transmits multicast traffic to multiple receiving nodes using multicast tunnel transmission, and then transmits multicast traffic to multiple receiving nodes using unicast tunnel transmission. Please refer to the above for relevant descriptions, which will not be repeated here.
[0200] Please continue reading Figure 10 , Figure 10Figure (b) illustrates a flowchart illustrating the process of switching from multicast source node S2's multicast traffic transmission to unicast tunnel transmission to multicast traffic transmission to multiple receiving nodes within the cloud. Receiving nodes 5 through 8 all receive multicast traffic transmitted from S2 from multicast group G2. The previous hop for receiving nodes 5 and 6 is node 4, and the previous hop for receiving nodes 7 and 8 is node 5. This process is similar to... Figure 9 The process described in (b) is the opposite. S2 first transmits multicast traffic to multiple receiving nodes using multicast tunnel transmission, and then transmits multicast traffic to multiple receiving nodes using unicast tunnel transmission. Please refer to the above for relevant descriptions, which will not be repeated here.
[0201] The above text combined Figures 5 to 10 This application describes a communication method in which a multicast source node transmits multicast traffic to multiple receiving nodes using a unicast tunnel, and the receiving nodes receive the multicast traffic from the unicast tunnel. When the multicast traffic transmitted by the multicast source node using the unicast tunnel meets preset conditions, the multicast source node sends a tunnel switching event to a control node. The control node receives the tunnel switching event and establishes a multicast tunnel based on it, and sends a first tunnel switching command to the multicast source node. Based on the first tunnel switching command, the multicast source node switches to transmitting multicast traffic to multiple receiving nodes using a multicast tunnel. The receiving nodes then receive the multicast traffic from the multicast tunnel. The control node adjusts the transmission method based on the multicast traffic transmitted by the multicast source node using the unicast tunnel, ensuring that the tunnel and the traffic transmitted on it match, thereby improving the transmission efficiency of the multicast traffic.
[0202] The above text combines Figures 1 to 10 The communication method provided according to the embodiments of this application is described in detail below, in conjunction with Figure 11 This describes a communication apparatus provided according to embodiments of the present application.
[0203] Figure 11 A schematic diagram of the structure of the first type of communication device provided in this application is shown below. Figure 11 As shown, the communication device 1100 includes: a traffic transmission module 1110, an event sending module 1120, a command receiving module 1130, and a processing module 1140.
[0204] The traffic transmission module 1110 is used to transmit multicast traffic to multiple receiving nodes using unicast tunnel transmission. The event sending module 1120 is used to send a tunnel switching event to the control node when the multicast traffic meets preset conditions. The tunnel switching event triggers the multicast source node to switch its multicast traffic from unicast tunnel transmission to multicast tunnel transmission. The command receiving module 1130 is also used to receive a first tunnel switching command sent by the control node based on the tunnel switching event. The processing module 1140 is also used to switch to multicast tunnel transmission to multiple receiving nodes based on the first tunnel switching command.
[0205] In some possible scenarios, the preset conditions include: the multicast traffic transmitted to multiple receiving nodes using unicast tunneling is greater than or equal to the traffic threshold, or the multicast traffic transmitted to multiple receiving nodes using unicast tunneling conforms to the rules indicated by the ACL.
[0206] In some possible scenarios, the command receiving module 1130 is also used to: receive event subscription information sent by the control node. The event subscription information is used to indicate that when the multicast source node transmits multicast traffic to multiple receiving nodes using unicast tunnel transmission and meets preset conditions, it sends a tunnel switching event to the control node.
[0207] In some possible scenarios, the communication device 1100 also includes an address receiving module 1150. After sending a tunnel switching event to the control node, the address receiving module 1150 is configured to: receive the multicast address sent by the control node based on the tunnel switching event.
[0208] In some possible scenarios, the multicast address is one of a first multicast address, a second multicast address, and a third multicast address. The first multicast address is one of the available multicast addresses. The second multicast address is one of the allocated multicast addresses. The multicast traffic transmitted through a multicast tunnel established using the second multicast address is less than the multicast traffic transmitted through multicast tunnels established using other multicast addresses, which are the allocated multicast addresses other than the second multicast address. The third multicast address is one of the allocated multicast addresses. Nodes receiving multicast traffic from the third multicast address form a first node set, and nodes receiving multicast traffic from the fourth multicast address form a second node set. The number of receiving nodes in the first node set is greater than the number of receiving nodes in the second node set. The third multicast address is one of the other multicast addresses, which are the allocated multicast addresses other than the third multicast address.
[0209] In some possible scenarios, where multicast traffic does not meet preset conditions, the processing module 1140 is further configured to: stop sending tunnel switching events to the control node. The multicast source node receives a second tunnel switching command sent by the control node. Based on the second tunnel switching command, the multicast source node switches to sending multicast traffic using a unicast tunnel.
[0210] For more details on the traffic transmission module 1110, event sending module 1120, command receiving module 1130, processing module 1140 and address receiving module 1150, please refer to the relevant descriptions above, which will not be repeated here.
[0211] Figure 12 A schematic diagram of the structure of the second type of communication device provided in this application is shown below. Figure 12 As shown, the communication device 1200 includes: a traffic receiving module 1210, a command receiving module 1220, and a processing module 1230. The traffic receiving module 1210 is used to: acquire multicast traffic from the multicast source node from the unicast tunnel. The command receiving module 1220 is used to: receive a first tunnel switching command sent by a control node. The first tunnel switching command is sent by the control node upon receiving a tunnel switching event from the multicast source node, whereby the tunnel switching event is sent when the multicast traffic transmitted by the multicast source node on the unicast tunnel meets preset conditions. The processing module 1230 is further used to: switch to acquiring multicast traffic from the multicast source node from the multicast tunnel based on the first tunnel switching command.
[0212] In some possible scenarios, the preset conditions include: the multicast traffic transmitted to multiple receiving nodes using unicast tunneling is greater than or equal to the traffic threshold, or the multicast traffic transmitted to multiple receiving nodes using unicast tunneling conforms to the rules indicated by the ACL.
[0213] In some possible scenarios, the command receiving module 1220 is further configured to: receive a second handover message. The second handover is sent by the control node when the time difference between receiving the tunnel handover event and the current time is greater than or equal to a duration threshold. The processing module 1230 is further configured to: obtain the multicast traffic of the multicast source node through the unicast tunnel based on the second handover message.
[0214] For more details on the traffic receiving module 1210, command receiving module 1220, and processing module 1230, please refer to the relevant descriptions above; they will not be repeated here.
[0215] Figure 13 A schematic diagram of the structure of the third type of communication device provided in this application is shown below. Figure 13 As shown, the communication device 1300 includes a transceiver module 1310 and a processing module 1320.
[0216] The transceiver module 1310 is configured to: receive a tunnel switching event reported by the multicast source node. The tunnel switching event triggers the multicast source node to switch its multicast traffic from unicast tunnel transmission to multicast tunnel transmission. The processing module 1320 is configured to: establish a multicast tunnel from the multicast source node to multiple receiving nodes in response to the tunnel switching event. The transceiver module 1310 is further configured to: send a first tunnel switching command to the multicast source node. The first tunnel switching command instructs the multicast source node to use a multicast tunnel to send multicast traffic to multiple receiving nodes.
[0217] In some possible scenarios, a tunnel switching event is sent when the multicast traffic transmitted by the multicast source node over the unicast tunnel meets preset conditions. These preset conditions include: the multicast traffic transmitted to multiple receiving nodes via unicast tunneling is greater than or equal to a traffic threshold; or, the multicast traffic transmitted to multiple receiving nodes via unicast tunneling conforms to the rules indicated by the ACL.
[0218] In some possible scenarios, the transceiver module 1310 is also configured to: send event subscription information to the multicast source node. The event subscription information is used to indicate that the multicast source node sends a tunnel switching event to the communication device 1300 when the multicast traffic transmitted to multiple receiving nodes using unicast tunnel transmission meets preset conditions.
[0219] In some possible scenarios, the processing module 1320 is specifically used to: obtain a multicast address based on an available multicast address or an assigned multicast address, and use the multicast address to establish a multicast tunnel from the multicast source node to multiple receiving nodes.
[0220] In some possible scenarios, processing module 1320 is specifically configured to: select a first multicast address from the allocated multicast addresses. Wherein, the multicast traffic transmitted through the multicast tunnel established using the first multicast address is less than the multicast traffic transmitted through the multicast tunnel established using other multicast addresses, which are multicast addresses other than the first multicast address among the allocated multicast addresses. Processing module 1320 is also specifically configured to: use the first multicast address as the multicast address.
[0221] In some possible scenarios, processing module 1320 is specifically configured to: select a second multicast address from the allocated multicast addresses. Nodes receiving multicast traffic from the second multicast address constitute a first node set, and nodes receiving multicast traffic from the third multicast address constitute a second node set. The number of receiving nodes in the first node set is greater than the number of receiving nodes in the second node set. The third multicast address is one of the other multicast addresses, which are multicast addresses other than the second multicast address among the allocated multicast addresses. Processing module 1320 is also specifically configured to: use the second multicast address as the multicast address.
[0222] In some possible scenarios, if the time difference between the time the tunnel switching event is received and the current time is greater than or equal to a duration threshold, the transceiver module 1310 is further configured to: send a second tunnel switching command to the multicast source node. The second tunnel switching command is used to instruct the multicast source node to send multicast traffic using a unicast tunnel.
[0223] In some possible scenarios, the transceiver module 1310 is further configured to: send a second handover message to multiple receiving nodes. The second handover message is used to instruct the multiple receiving nodes to revoke the established multicast tunnel. The processing module 1320 is further configured to: release the multicast tunnel and reclaim the multicast address of the multicast tunnel to an available multicast address.
[0224] For more details on the transceiver module 1310 and the processing module 1320, please refer to the relevant descriptions above; they will not be repeated here.
[0225] The communication devices 1100, 1200 and 1300 in the embodiments of this application can all be implemented by software modules.
[0226] When the communication device 1100 corresponds to the steps performed by the transmitting node in the communication method described in the embodiments of this application, the above-mentioned and other operations and / or functions of each module in the communication device 1100 respectively implement the method flow performed by the transmitting node in the aforementioned figures. When the communication device 1200 corresponds to the steps performed by the receiving node in the communication method described in the embodiments of this application, the above-mentioned and other operations and / or functions of each module in the communication device 1200 respectively implement the method flow performed by the receiving node in the aforementioned figures. When the communication device 1300 corresponds to the steps performed by the control node in the communication method described in the embodiments of this application, the above-mentioned and other operations and / or functions of each module in the communication device 1300 respectively implement the method flow performed by the control node in the aforementioned figures.
[0227] It is worth noting that if the above-mentioned communication devices are implemented through software modules, for example, the software module can be provided to users through a cloud service subscription model, and users can choose different subscription levels according to their needs; or, for example, the software module can also provide enterprise-level customized services with professional domain customization, interface personalization and extended functions according to the needs of users or enterprises.
[0228] Furthermore, the communication devices provided in this application can also be made into value-added services and provided to users, and this application does not limit this.
[0229] The communication devices in the embodiments of this application can also be implemented in hardware, such as computing devices. For details regarding the specific details of each communication device, please refer to [link / reference]. Figure 4 The description of that will not be repeated here.
[0230] The method steps in this embodiment can be implemented in hardware or by a processor executing software instructions. The software instructions can consist of corresponding software modules, which can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, portable hard disks, CD-ROMs, or any other form of storage medium known in the art. Some exemplary storage media are coupled to the processor, enabling the processor to read information from and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and storage medium can reside in an ASIC. Alternatively, the ASIC can reside in a computing device. Of course, the processor and storage medium can also exist as discrete components in a network device or terminal device.
[0231] This application also provides some computing device clusters. The computing device cluster includes at least one computing device, which may be a server. In some embodiments, the computing device may also be a desktop computer, a laptop computer, or a smartphone, or other terminal device.
[0232] like Figure 14 As shown, Figure 14 This application provides a schematic diagram of a computing device cluster, which includes at least one computing device 400. The memory 412 of one or more computing devices 400 in the computing device cluster may store the same instructions for executing communication methods.
[0233] In some possible scenarios, the memory 412 of one or more computing devices 400 in the computing device cluster may also store partial instructions for executing the communication method. In other words, a combination of one or more computing devices 400 can jointly execute the instructions for executing the communication method.
[0234] It should be noted that the memory 412 in different computing devices 400 within the computing device cluster can store different instructions, each used to execute a portion of the computing device's functions. Taking the computing device cluster implementing the functions performed by the sending node as an example, in this case, the instructions stored in the memory 412 of different computing devices 400 can implement the functions of one or more units in the transceiver module 1310 and the processing module 1320.
[0235] In some possible scenarios, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN). Figure 15 Some possible scenarios are shown. For example... Figure 15 As shown, Figure 15 This application provides a schematic diagram of a connection between computing devices, where two computing devices 400A and 400B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this possible implementation, the instructions stored in the memory 412 of computing device 400A can implement the functions of the traffic transmission module 1110, the event sending module 1120, the command receiving module 1130, and the address receiving module 1150. Meanwhile, the instructions stored in the memory 412 of computing device 400B can implement the functions of the processing module 1140.
[0236] It should be noted that the memory 412 in different computing devices 400 within the computing device cluster can store different instructions for executing some functions of the communication system. That is, the instructions stored in the memory 412 of different computing devices 400 can implement the functions of one or more of the communication devices 1100, 1200, and 1300.
[0237] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform a communication method.
[0238] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by a computing device, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to perform a communication method.
[0239] This application also provides a chip. The chip includes an interface circuit and a control circuit. The interface circuit is used to acquire the traffic transmitted by the sending node on the first tunnel, and the control circuit is used to implement the function of the sending node in the communication method; alternatively, the interface circuit is used to receive a first tunnel switching command, and the control circuit is used to implement the function of the receiving node in the communication method; alternatively, the interface circuit is used to receive a tunnel switching event, and the control circuit is used to implement the function of the controlling node in the communication method.
[0240] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this application are performed entirely or partially. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user equipment, or other programmable device. The computer program or instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another. For example, the computer program or instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; it can also be an optical medium, such as a digital video disc (DVD); or it can be a semiconductor medium, such as a solid-state drive (SSD).
[0241] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and these modifications or substitutions should all be covered within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A communication method, characterized in that, The method is executed by the control node, and the method includes: Receive a tunnel switching event reported from the multicast source node; wherein the tunnel switching event is used to trigger the multicast traffic of the multicast source node to switch from transmission using unicast tunnel to transmission using multicast tunnel; In response to the tunnel switching event, a first switching message is sent to multiple receiving nodes; the first switching message includes a multicast address and a tunnel identifier, and the first switching message is used to trigger the multiple receiving nodes to establish a multicast tunnel using the multicast address. Send a first tunnel switching command to the multicast source node; the first tunnel switching command is used to instruct the multicast source node to send the multicast traffic to the multiple receiving nodes using the multicast tunnel.
2. The method according to claim 1, characterized in that, The tunnel switching event is sent by the multicast source node when the multicast traffic transmitted on the unicast tunnel meets preset conditions. The preset conditions include: The multicast traffic transmitted through the unicast tunnel is greater than or equal to the traffic threshold, or, The multicast traffic transmitted through the unicast tunnel conforms to the rules indicated by the Access Control List (ACL).
3. The method according to claim 1 or 2, characterized in that, The method further includes: Send event subscription information to the multicast source node; the event subscription information is used to indicate that: when the multicast traffic transmitted by the multicast source node to the multiple receiving nodes using the unicast tunnel transmission method meets the preset conditions, the multicast source node sends the tunnel switching event to the control node.
4. The method according to any one of claims 1-3, characterized in that, Before sending the first handover message to the multiple receiving nodes, the method further includes: The multicast address is obtained based on the available multicast address or the assigned multicast address.
5. The method according to claim 4, characterized in that, Obtaining the multicast address based on the allocated multicast address includes: From the allocated multicast addresses, select the multicast address whose multicast traffic is less than a first traffic threshold; wherein, the multicast traffic corresponding to the multicast address includes the multicast traffic transmitted on the multicast tunnel established based on the multicast address; The multicast address whose corresponding multicast traffic is less than the first traffic threshold is used as the multicast address.
6. The method according to claim 4, characterized in that, Obtaining the multicast address based on the allocated multicast address includes: From the allocated multicast addresses, select multicast addresses whose corresponding number of transmission nodes is less than or equal to a first number threshold; wherein, the transmission nodes corresponding to the multicast address include all nodes that receive multicast traffic from the multicast tunnel established by the multicast address; The multicast address is defined as the multicast address whose number of corresponding transmission nodes is less than or equal to a first quantity threshold.
7. The method according to claim 4, characterized in that, Obtaining the multicast address based on the allocated multicast address includes: From the allocated multicast addresses, select multicast addresses whose corresponding number of transmission nodes is greater than or equal to a second threshold; wherein, the transmission nodes corresponding to the multicast address include all nodes that receive multicast traffic from the multicast tunnel established by the multicast address; The multicast address is defined as the multicast address whose number of corresponding transmission nodes is greater than or equal to the second quantity threshold.
8. The method according to any one of claims 1-7, characterized in that, The receiving of tunnel switching events reported by the multicast source node includes: Receive tunnel switching events periodically reported by the multicast source node; The method further includes: If the time difference between the time the tunnel switching event is received and the current time is greater than or equal to a duration threshold, perform one or more of the following: Send a second tunnel switching command to the multicast source node; the second tunnel switching command is used to instruct the multicast source node to send the multicast traffic using the unicast tunnel; A second switching message is sent to the plurality of receiving nodes; the second switching message is used to instruct the plurality of receiving nodes to cancel the multicast tunnel.
9. The method according to claim 8, characterized in that, The method further includes: Reclaim the multicast address of the multicast tunnel and relocate it to an available multicast address.
10. A communication method, characterized in that, The method is executed by the multicast source node, and the method includes: Multicast traffic is transmitted to multiple receiving nodes using unicast tunneling. When the multicast traffic meets the preset conditions, a tunnel switching event is sent to the control node; the tunnel switching event is used to trigger the multicast traffic of the multicast source node to switch from the mode of transmission using the unicast tunnel to the mode of transmission using the multicast tunnel. Receive the first tunnel switching command sent by the control node based on the tunnel switching event; Based on the first tunnel switching command, the system switches to using the multicast tunnel to transmit the multicast traffic to the multiple receiving nodes.
11. The method according to claim 10, characterized in that, The preset conditions include: The multicast traffic transmitted via the unicast tunnel is greater than or equal to the traffic threshold, or... The multicast traffic transmitted via unicast tunnel conforms to the rules indicated by the Access Control List (ACL).
12. The method according to claim 10 or 11, characterized in that, The method further includes: receiving event subscription information sent by the control node; the event subscription information is used to indicate that: when the multicast source node transmits multicast traffic to the multiple receiving nodes using the unicast tunnel transmission method and the multicast traffic meets preset conditions, the multicast source node sends the tunnel switching event to the control node.
13. The method according to any one of claims 10-12, characterized in that, After sending the tunnel handover event to the control node, the method further includes: Receive the multicast address sent by the control node based on the tunnel switching event.
14. The method according to claim 13, characterized in that, The multicast address is one of the available multicast addresses; or... The multicast address is a multicast address among the allocated multicast addresses whose corresponding multicast traffic is less than a first traffic threshold; wherein, the multicast traffic corresponding to the multicast address includes multicast traffic transmitted on the multicast tunnel established based on the multicast address; or, The multicast address is a multicast address among the allocated multicast addresses whose corresponding number of transmission nodes is less than or equal to a first threshold; wherein, the transmission nodes corresponding to the multicast address include all nodes receiving multicast traffic from the multicast tunnel established from the multicast address; or, The multicast address is a multicast address among the allocated multicast addresses in which the number of corresponding transmission nodes is greater than or equal to a second quantity threshold; wherein, the transmission nodes corresponding to the multicast address include receiving nodes that receive multicast traffic on the multicast tunnel established from the multicast address.
15. The method according to any one of claims 10-14, characterized in that, If the multicast traffic does not meet the preset conditions, stop sending the tunnel switching event to the control node; Receive the second tunnel switching command sent by the control node; Based on the second tunnel switching command, switch to using the unicast tunnel to send the multicast traffic.
16. A communication method, characterized in that, The method is executed by the receiving node, and the method includes: Obtain multicast traffic from the multicast source node from the unicast tunnel; The receiving node receives a first switching message sent by the control node; the first switching message includes a multicast address and a tunnel identifier, and the first switching message is used to trigger the receiving node to establish a multicast tunnel using the multicast address. Based on the first switching message, a multicast tunnel is established; Receive multicast traffic from the multicast source node from the multicast tunnel.
17. The method according to claim 16, characterized in that, The step of establishing a multicast tunnel based on the first switching message includes: Based on the multicast address and tunnel identifier included in the first switching message, a multicast tunnel is established using the method of establishing a shortest path tree (SPT).
18. The method according to claim 16 or 17, characterized in that, The multicast address is one of the available multicast addresses; or... The multicast address is a multicast address among the allocated multicast addresses whose corresponding multicast traffic is less than a first traffic threshold; wherein, the multicast traffic corresponding to the multicast address includes multicast traffic transmitted on the multicast tunnel established based on the multicast address; or, The multicast address is a multicast address among the allocated multicast addresses in which the number of corresponding transmission nodes is less than or equal to a first number threshold; wherein, the transmission nodes corresponding to the multicast address include all nodes that receive multicast traffic from the multicast tunnel established from the multicast address; The multicast address is a multicast address among the allocated multicast addresses in which the number of corresponding transmission nodes is greater than or equal to a second quantity threshold; wherein, the transmission nodes corresponding to the multicast address include receiving nodes that receive multicast traffic on the multicast tunnel established from the multicast address.
19. The method according to any one of claims 16 to 18, characterized in that, Receive a second handover message; the second handover message is sent by the control node when the time difference between receiving the tunnel handover event and the current time is greater than or equal to a duration threshold, and the tunnel handover event is periodically sent by the multicast source node; Based on the second switching message, the multicast tunnel is cancelled.
20. The method according to claim 19, characterized in that, The cancellation of the multicast tunnel includes: Send a request to revoke the multicast tunnel to the nodes associated with the receiving node; the nodes associated with the receiving node include nodes that send multicast traffic from the multicast source node to the receiving node.
21. A communication method, characterized in that, The method is executed by a communication system, which includes a control node, a multicast source node, and multiple receiving nodes. The communication system is used to transmit multicast traffic from the multicast source node to the multiple receiving nodes in a cloud scenario. The method includes: The multicast source node transmits multicast traffic to multiple receiving nodes using unicast tunnel transmission. The first receiving node receives the multicast traffic from the unicast tunnel; the first receiving node is one of the plurality of receiving nodes; When the multicast traffic meets preset conditions, the multicast source node sends a tunnel switching event to the control node; the tunnel switching event is used to trigger the multicast traffic of the multicast source node to switch from transmission through the unicast tunnel to transmission through the multicast tunnel; The control node receives the tunnel switching event reported by the multicast source node; In response to the tunnel switching event, the control node sends a first switching message to multiple receiving nodes; the first switching message includes a multicast address and a tunnel identifier, and the first switching message is used to trigger the multiple receiving nodes to establish a multicast tunnel using the multicast address. The control node sends a first tunnel switching command to the multicast source node; the first tunnel switching command is used to instruct the multicast source node to send the multicast traffic to the multiple receiving nodes using the multicast tunnel. The multicast source node receives the first tunnel switching command; Based on the first tunnel switching command, the multicast source node switches to transmitting the multicast traffic to the multiple receiving nodes using the multicast tunnel transmission method. The first receiving node receives the multicast traffic sent by the multicast source node from the multicast tunnel.
22. A communication device, characterized in that, The device includes: The transceiver module is used to: receive tunnel switching events reported by the multicast source node; wherein the tunnel switching event is used to trigger the multicast traffic of the multicast source node to switch from transmission using unicast tunnels to transmission using multicast tunnels. The processing module is configured to: in response to the tunnel switching event, send a first switching message to multiple receiving nodes; the first switching message includes a multicast address and a tunnel identifier, and the first switching message is used to trigger the multiple receiving nodes to establish a multicast tunnel using the multicast address; The transceiver module is further configured to: send a first tunnel switching command to the multicast source node; the first tunnel switching command is used to instruct the multicast source node to send the multicast traffic to the plurality of receiving nodes using the multicast tunnel.
23. A communication device, characterized in that, The device includes: The processing module is used to transmit multicast traffic to multiple receiving nodes using unicast tunneling. The transceiver module is used to: send a tunnel switching event to the control node when the multicast traffic meets preset conditions; the tunnel switching event is used to trigger the multicast traffic of the multicast source node to switch from the mode of transmission using the unicast tunnel to the mode of transmission using the multicast tunnel. The transceiver module is further configured to: receive a first tunnel switching command sent by the control node based on the tunnel switching event; The processing module is further configured to: switch to using the multicast tunnel to transmit the multicast traffic to multiple receiving nodes based on the first tunnel switching command.
24. A communication device, characterized in that, The device includes: The processing module is used to: obtain multicast traffic from the multicast source node from the unicast tunnel; The transceiver module is configured to: receive a first switching message sent by a control node; the first switching message includes a multicast address and a tunnel identifier, and the first switching message is used to trigger the receiving node to establish a multicast tunnel using the multicast address; The processing module is further configured to: obtain the multicast traffic of the multicast source node from the multicast tunnel.
25. A communication system, characterized in that, The system includes a control node, a multicast source node, and multiple receiving nodes. The communication system is used to transmit multicast traffic from the multicast source node to the multiple receiving nodes in a cloud scenario. The multicast source node transmits multicast traffic to multiple receiving nodes using unicast tunnel transmission. The first receiving node receives the multicast traffic from the unicast tunnel; the first receiving node is one of the plurality of receiving nodes; When the multicast traffic meets preset conditions, the multicast source node sends a tunnel switching event to the control node; the tunnel switching event is used to trigger the multicast traffic of the multicast source node to switch from transmission through the unicast tunnel to transmission through the multicast tunnel; The control node receives the tunnel switching event reported by the multicast source node; In response to the tunnel switching event, the control node sends a first switching message to multiple receiving nodes; the first switching message includes a multicast address and a tunnel identifier, and the first switching message is used to instruct the multiple receiving nodes to establish a multicast tunnel using the multicast address. The control node sends a first tunnel switching command to the multicast source node; the first tunnel switching command is used to instruct the multicast source node to send the multicast traffic to the multiple receiving nodes using the multicast tunnel. The multicast source node receives the first tunnel switching command; Based on the first tunnel switching command, the multicast source node switches to transmitting the multicast traffic to the multiple receiving nodes using the multicast tunnel transmission method. The first receiving node receives the multicast traffic sent by the multicast source node from the multicast tunnel.
26. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, such that the cluster of computing devices performs the method as described in any one of claims 1-9. Alternatively, the computing device cluster may be configured to perform the method as described in any one of claims 10-15. Alternatively, the computing device cluster may be configured to perform the method as described in any one of claims 16-20. Alternatively, the computing device cluster may be configured to perform the method as described in claim 21.
27. A computer program product containing instructions, characterized in that, When the instruction is executed by the computing device cluster, it causes the computing device cluster to perform the method as described in any one of claims 1-9. Alternatively, the computing device cluster may be configured to perform the method as described in any one of claims 10-15. Alternatively, the computing device cluster may be configured to perform the method as described in any one of claims 16-20. Alternatively, the computing device cluster may be configured to perform the method as described in claim 21.
28. A computer-readable storage medium, characterized in that, Includes computer program instructions, which, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the method as described in any one of claims 1-9. Alternatively, the computing device cluster may be configured to perform the method as described in any one of claims 10-15. Alternatively, the computing device cluster may be configured to perform the method as described in any one of claims 16-20. Alternatively, the computing device cluster may be configured to perform the method as described in claim 21.