Multicast tree construction method and device

By obtaining the target network topology diagram and building a multicast tree that meets the constraints, the problem of low multicast tree construction efficiency in the existing technology is solved, and efficient network resource utilization and excellent user experience are achieved.

CN120128520APending Publication Date: 2025-06-10HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311683853.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-12-07
Publication Date
2025-06-10

AI Technical Summary

Technical Problem

The prior art is difficult to efficiently meet multi-constraint conditions when building multicast trees, resulting in low network resource utilization, resource congestion and poor user experience.

Method used

By obtaining network topology information and multicast tree construction requirements information, obtaining the target network topology diagram, and building a multicast tree based on this diagram, ensuring that all paths meet the constraints, thereby reducing the scale of the topology diagram and quickly building a multicast tree.

Benefits of technology

It realizes the reduction of the topology graph scale during the constraint satisfaction process, improves the efficiency of multicast tree construction, meets multi-constraint conditions, and improves network resource utilization and user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120128520A_ABST
    Figure CN120128520A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a multicast tree construction method and device. The method comprises the following steps: acquiring network topology information and multicast tree construction demand information; and based on the network topology information and the multicast tree construction demand information, obtaining a target network topology graph of which all paths meet constraint conditions. And constructing a target multicast tree based on the attribute information of each path in the target network topological graph. Therefore, constraint satisfaction and multicast tree solving are decoupled, in the constraint satisfaction process, the scale of the topological graph is reduced through constraints, and the path satisfying the constraints can be obtained. In the multicast tree solving process, the multicast tree can be quickly constructed through the reduced topological graph.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present application relate to the field of communications, and in particular, to a method and apparatus for constructing a multicast tree. Background Art

[0002] 5G New Radio (NR) broadcasting technology transmits user services in a point-to-multipoint manner by wirelessly sharing and transmitting resources. One traffic flow covers as many users as possible, effectively improving network resource utilization, reducing resource congestion, and enhancing the user service experience. As a new 5G application scenario, 5G NR broadcasting poses functional requirements for all parts of the network. The 5G access bearer network needs to support multicast functions. On the other hand, Quality of Services (QoS) has attracted increasing attention. QoS refers to a series of constraints imposed on communication transmission services in network applications, such as end-to-end delay, link hop count, link bandwidth, must-pass / must-not-pass, etc. Therefore, solving the multi-constrained multicast tree has important commercial value. Summary of the Invention

[0003] The present application provides a method and apparatus for constructing a multicast tree, which can improve the efficiency of constructing the multicast tree.

[0004] To achieve the above object, the present application adopts the following technical solutions:

[0005] In a first aspect, the present application provides a method for constructing a multicast tree. The method includes: obtaining network topology information and multicast tree construction requirement information, where the multicast tree construction requirement information is used to indicate the constraint conditions for constructing the multicast tree, the root node of the multicast tree, and at least one destination node of the multicast tree, and the network topology information is used to indicate the attribute information of the directed edges between any two nodes in the network topology. Based on the network topology information and the multicast tree construction requirement information, a target network topology graph is obtained; the target network topology graph includes at least one path between the root node and each destination node, and the attribute information of at least one path between the root node and each destination node; wherein, all paths in the target topology graph satisfy the constraint conditions. Based on the attribute information of each path in the target network topology graph, a target multicast tree is constructed. In this way, by decoupling constraint satisfaction and multicast tree solving, in the process of constraint satisfaction, the present application reduces the scale of the topology graph through constraints and can obtain paths that satisfy the constraints. In the process of multicast tree solving, a multicast tree can be quickly constructed through the already reduced topology graph.

[0006] Exemplarily, the constraint conditions can be used to constrain at least one of the hop count from the root node to the destination node and the delay from the root node to the destination node.

[0007] Exemplarily, the attribute information of the path between the root node and the destination node in the multicast tree is the sum of the attribute information of all the directed edges passed from the root node to the destination node.

[0008] In a possible implementation manner, based on the network topology information and the multicast tree construction requirement information, a target network topology graph is obtained, including: based on the constraint conditions, traversing all the paths between the root node and a single destination node in the network topology. Retaining the paths that satisfy the constraint conditions between the root node and the single destination node in the network topology. In this way, the present application makes full use of the constraint conditions to reduce the scale of the graph. And through this reduction technology, the paths that satisfy the constraints from the root node to the destination node can be obtained.

[0009] In a possible implementation manner, based on the constraint conditions, traversing all the paths between the root node and a single destination node in the network topology includes: adopting the backtracking method, based on the constraint conditions, traversing all the paths between the root node and the single destination node in the network topology. In this way, through the backtracking method, combined with the constraint conditions, the paths that do not satisfy the constraint conditions are pruned during the backtracking process, and the paths that satisfy the constraint conditions are retained, thereby effectively reducing the scale of the multicast tree and providing a basis for quickly establishing the multicast tree.

[0010] In a possible implementation manner, the attribute information includes a target attribute. Based on the attribute information of each path in the target network topology graph, a target multicast tree is constructed, including: traversing the target network topology graph, and constructing a target multicast tree based on a first target path in which the target attribute value in at least one path between the root node and a single destination node satisfies a first preset condition; after the target multicast tree is completely constructed, if there is a second target path that satisfies a second preset condition in at least one path between the root node and a single node, replacing the first target path with the second target path. In this way, the present application can add the path with the minimum loss value among all the paths corresponding to a single destination node to the multicast tree. According to the above traversal method, after adding the paths with the minimum loss value of each destination node to the multicast tree, the construction of the initial multicast tree is completed. After that, the present application replaces the paths in the initial multicast tree to greatly improve the optimization efficiency of the multicast tree in a shorter time.

[0011] In a possible implementation manner, the target attribute is the loss value, and the first preset condition is the minimum loss value.

[0012] Exemplarily, in other embodiments, the target attribute may also be other values, which are not limited in the present application.

[0013] In a possible implementation, the second preset condition is that the second target path is a path other than the first target path among at least one path between the root node and a single node, and the target attribute value of the second target path satisfies the first preset condition. Moreover, after the second target path is replaced into the target multicast tree, the target attribute value of the target multicast tree is better than that before the replacement. In this way, through local optimization based on the overall performance of the multicast tree, the present application realizes the optimization of the overall multicast tree.

[0014] In a possible implementation, traverse the target network topology graph, and construct a target multicast tree based on the first target path among at least one path between the root node and a single destination node, where the target attribute value satisfies the first preset condition, including: construct a target multicast tree based on the second target path among at least one path between the root node and the first destination node, where the target attribute value satisfies the first preset condition; set the target attribute value of the second target path in the target network topology graph to a preset value; construct a target multicast tree based on the third target path among at least one path between the root node and the second destination node, where the target attribute value satisfies the first preset condition; set the target attribute value of the third target path in the target network topology graph to a preset value. In this way, through the path residual technology, the present application can quickly construct an initial multicast tree that meets all constraints.

[0015] In a possible implementation, the preset value is 0.

[0016] In a possible implementation, the attribute information includes at least one of the following: delay value, loss value, bandwidth value.

[0017] In a second aspect, the present application provides a multicast tree construction device, including a first acquisition module, configured to acquire network topology information and multicast tree construction requirement information, where the multicast tree construction requirement information is used to indicate the constraint conditions for constructing the multicast tree, the root node of the multicast tree, and at least one destination node of the multicast tree, and the network topology information is used to indicate the attribute information of the directed edges between any two nodes in the network topology; a second acquisition module, configured to acquire a target network topology graph based on the network topology information and the multicast tree construction requirement information; the target network topology graph includes at least one path between the root node and each destination node, and the attribute information of at least one path between the root node and each destination node; wherein all paths in the target topology graph satisfy the constraint conditions; a construction module, configured to construct a target multicast tree based on the attribute information of each path in the target network topology graph.

[0018] In a possible implementation, the second acquisition module is specifically configured to: traverse all paths between the root node and a single destination node in the network topology based on the constraint conditions; retain the paths between the root node and the single destination node in the network topology that satisfy the constraint conditions.

[0019] In a possible implementation, the second acquisition module is specifically configured to: traverse all paths between the root node and the single destination node in the network topology based on the constraint conditions by using the backtracking method.

[0020] In a possible implementation, the attribute information includes a target attribute. The construction module is specifically configured to: traverse the target network topology graph, and construct a target multicast tree based on a first target path in at least one path between the root node and the single destination node where the target attribute value satisfies a first preset condition; after the target multicast tree is completely constructed, if there is a second target path in at least one path between the root node and the single node that satisfies a second preset condition, replace the first target path with the second target path.

[0021] In a possible implementation, the target attribute is a loss value, and the first preset condition is that the loss value is the smallest.

[0022] In a possible implementation, the second preset condition is that the second target path is a path in at least one path between the root node and the single node other than the first target path where the target attribute value satisfies the first preset condition, and after the second target path is replaced into the target multicast tree, the target attribute value of the target multicast tree is better than that before the replacement.

[0023] In a possible implementation, the construction module is specifically configured to: construct a target multicast tree based on a second target path in at least one path between the root node and the first destination node where the target attribute value satisfies the first preset condition; set the target attribute value of the second target path in the target network topology graph to a preset value; construct a target multicast tree based on a third target path in at least one path between the root node and the second destination node where the target attribute value satisfies the first preset condition; set the target attribute value of the third target path in the target network topology graph to a preset value.

[0024] In a third aspect, an embodiment of the present application provides a control device, including: a transceiver / transceiver pin and a processor. Optionally, a memory is further included. Wherein, the transceiver / transceiver pin, the processor, and the memory communicate with each other through an internal connection path; the processor is configured to execute instructions to control the transceiver / transceiver pin to send or receive signals; the memory is used to store instructions. When the processor executes the instructions, the processor executes the method according to the first aspect or any possible implementation manner in the first aspect.

[0025] In a fourth aspect, an embodiment of the present application provides a computer-readable medium for storing a computer program, and the computer program includes instructions for executing the method according to the first aspect or any possible implementation manner in the first aspect.

[0026] Fifth aspect, an embodiment of the present application provides a computer program, which includes instructions for executing the method in the first aspect or any possible implementation manner of the first aspect.

[0027] Sixth aspect, an embodiment of the present application provides a chip, which includes a processing circuit and transceiver pins. Among them, the transceiver pins and the processing circuit communicate with each other through an internal connection path, and the processing circuit executes the method in the first aspect or any possible implementation manner of the first aspect to control the receiving pin to receive a signal and control the sending pin to send a signal. Description of the Drawings

[0028] Figure 1 is a schematic diagram of a communication system shown exemplarily;

[0029] Figure 2 is a schematic diagram of a multicast tree structure shown exemplarily;

[0030] Figure 3 is a schematic diagram of a multicast tree structure shown exemplarily;

[0031] Figure 4 is a flowchart of multicast tree construction shown exemplarily;

[0032] Figure 5 is a schematic diagram of the principle of the multicast tree construction method shown exemplarily;

[0033] Figure 6 is a schematic flowchart of a multicast tree construction method provided by an embodiment of the present application;

[0034] Figure 7 is a schematic flowchart of obtaining a target topology map shown exemplarily;

[0035] Figure 8 is a schematic diagram of the structure of a network topology map shown exemplarily;

[0036] Figure 9 is a process view of a multicast tree construction method shown exemplarily;

[0037] Figure 10 is a schematic diagram of test results shown exemplarily;

[0038] Figure 11 is a schematic block diagram of a multicast tree construction device provided by an embodiment of the present application;

[0039] Figure 12 is a schematic diagram of the structure of a multicast tree construction device provided by an embodiment of the present application. Detailed Embodiments

[0040] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments in the present application without creative efforts belong to the scope of protection of the present application.

[0041] The term "and / or" in this document is merely a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent three situations: A exists alone, A and B exist simultaneously, and B exists alone.

[0042] The terms "first", "second", etc. in the description and claims of the embodiments of the present application are used to distinguish different objects, rather than to describe a specific order of the objects. For example, the first target object and the second target object are used to distinguish different target objects, rather than to describe a specific order of the target objects.

[0043] In the embodiments of the present application, words such as "exemplary" or "for example" are used to represent examples, illustrations or explanations. Any embodiment or design solution described as "exemplary" or "for example" in the embodiments of the present application should not be construed as being more preferred or having more advantages than other embodiments or design solutions. Exactly, using words such as "exemplary" or "for example" is intended to present relevant concepts in a specific manner.

[0044] In the description of the embodiments of the present application, unless otherwise specified, the meaning of "a plurality of" refers to two or more. For example, a plurality of processing units refers to two or more processing units; a plurality of systems refers to two or more systems.

[0045] Before describing the technical solutions of the embodiments of the present application, the communication system of the embodiments of the present application will be described first in conjunction with the accompanying drawings. Refer to Figure 1 , which is a schematic diagram of a communication system provided by the embodiments of the present application. The communication system includes but is not limited to: a network controller (which can be simply referred to as a controller) and network devices (such as Node 1 to Node n), etc.

[0046] In the embodiments of the present application, the network device may include but is not limited to: a routing device, a base station, etc., and the present application does not make a limitation. Among them, some network devices can be connected to user equipment (which can also be called terminal equipment, and the present application does not make a limitation).

[0047] In the embodiments of the present application, the controller communicates with each network device (which can also be called a node) in the network topology (which can also be called a communication system or a communication network) through a network connection.

[0048] In a possible implementation, there is a direct communication path between any two nodes in the network topology, and any two nodes can communicate through the direct communication path, thus forming a mesh communication structure. For example, there is a communication connection (which can also be referred to as a communication link, network connection, or direct communication path, etc., and this application does not make a limitation) between Node 1 and Node 2 and they can communicate with each other. There is a communication connection between Node 1 and Node 3 (not shown in the figure) and they can communicate with each other.

[0049] In another possible implementation, there may also be network devices that are not directly connected in the network topology. For example, there may not be a direct communication path between Node 1 and Node 2. Optionally, Node 1 and Node 2 can communicate through other paths (or routes), and this application does not make a limitation.

[0050] In the embodiments of this application, an example is given where there is a direct communication path between any two nodes. For the scenario where there may not be a direct communication path between nodes, the implementation is the same, and this application will not give examples one by one.

[0051] The above communication system can be used to support fourth-generation (4G) access technologies, such as Long Term Evolution (LTE) access technology; or, the communication system can also support fifth-generation (5G) access technologies, such as New Radio (NR) access technology; or, the communication system can also be used to support third-generation (3G) access technologies, such as Universal Mobile Telecommunications System (UMTS) access technology; or the communication system can also be used to support second-generation (2G) access technologies, such as Global System for Mobile Communications (GSM) access technology; or, the communication system can also be used to support a communication system with multiple wireless technologies, such as supporting LTE technology and NR technology. Additionally, the communication system can also be applicable to Narrow Band-Internet of Things (NB-IoT) systems, Enhanced Data rate for GSM Evolution (EDGE) systems, Wideband Code Division Multiple Access (WCDMA) systems, Code Division Multiple Access 2000 (CDMA2000) systems, Time Division-Synchronization Code Division Multiple Access (TD-SCDMA) systems, Long Term Evolution (LTE) systems, and future-oriented communication technologies.

[0052] The main application scenario in the embodiments of this application is the 5G NR broadcast scenario. This scenario poses new functional requirements for all parts of the network architecture. Among them, the 5G access bearer network part needs to support multicast functions.

[0053] It should be noted that in practical applications, the number of network devices can be one or more. Figure 1 The number of network devices in the shown communication system is only for illustrative purposes and is not limited in this application.

[0054] Combined with Figure 1, the background technology that may be involved in the embodiments of the present application will be briefly described below:

[0055] Multicast tree: In a multicast network, one of the most important tasks of the multicast routing protocol is to generate an acyclic tree for the multicast network. This tree is also the transmission path of multicast traffic in the network and is called a multicast tree.

[0056] Root node: In a multicast network, the root node is the sender of multicast traffic.

[0057] Destination node: In a multicast network, the destination node is the receiver of multicast traffic.

[0058] Loss value: The embodiments of the present application include path loss (i.e., path loss value) and multicast tree loss (i.e., multicast tree loss value). The path loss further includes: the loss of the direct connection path (which can also be called the loss value of the directed edge) and the loss of the communication path. The direct connection path loss refers to the loss value of the directed edge from node A to node B (which can also be called a direct link, a direct connection, etc., and the present application does not make a limitation). The communication path loss value is the loss value of the communication path (which can also be called a communication link, a communication connection, etc., and the present application does not make a limitation) between node A and node B. Among them, the communication path between two nodes can include (or cover) one or more direct connection paths (i.e., directed edges). Correspondingly, the loss value of the communication path is the loss value of the direct connection path, or the sum of the loss values of the multiple covered direct connection paths. Exemplarily, the multicast tree loss value can optionally be the sum of the losses of all edges on the multicast tree.

[0059] On the control plane side, the controller collects the network topology information on the network side and learns the information of the multicast source (which can also be called the traffic sender or data sender. In the embodiments of the present application, the multicast source can be the root node) and the multicast receiver (which can also be called the traffic receiver or data receiver. In the embodiments of the present application, the multicast receiver is the destination node). Then, the controller is responsible for calculating the multicast path tree that meets the given constraint conditions.

[0060] In a communication network, the topology structure of the network is usually described by a graph structure. Users and communication relays are described as nodes in the graph, and the links (which are direct links and can also be called direct connections) between users and communication relays are described as directed edges in the graph.

[0061] The detailed description of the multicast tree problem is as follows: Given a directed graph G = (E, V), where E is the set of directed edges and V is the set of vertices. Each directed edge e ∈ E has some attributes, such as: delay (which can also be referred to as latency), loss, bandwidth, etc. Given a root node r, a set of destination nodes D, and the constraints that the path from the root node r to a destination node d ∈ D needs to satisfy, the optimal multicast tree problem is to find a tree structure with the minimum loss, where the root node of the tree is r, and a connected path (which can also be referred to as a communication path, not limited in this application) can be found on the tree from the root node r to all destination nodes d ∈ D, and this path needs to satisfy certain constraints.

[0062] Figure 2 Schematic diagram of the multicast tree structure shown for illustration. Please refer to Figure 2 In this multicast tree, each edge e (i.e., a directed edge, and all edges mentioned in the embodiments of this application are directed edges, and will not be repeated hereinafter) has three attributes: number id, loss ce, and delay δ e .

[0063] The dashed lines in this multicast tree represent the directed edges between each node. Among them, the number corresponding to each directed edge is used to represent the number, loss, and delay of this directed edge. For example, the number of the directed edge between the root node 0 and the node 3 is 2, the loss is 3, and the delay is 3.

[0064] Exemplarily, the controller determines that the root node of the multicast tree is vertex 0 and the set of destination nodes is {2, 4, 6, 8} according to the user's requirements. And, in this example, let Δ ij represent the upper bound of the delay from point i to point j. The constraint from the root node 0 to each destination node is the upper bound of the delay constraint:

[0065]

[0066] That is, the delay of the communication path from the root node 0 to the destination node 2 needs to be less than or equal to 10, the delay of the communication path from the root node 0 to the destination node 4 needs to be less than or equal to 15, the delay of the communication path from the root node 0 to the destination node 6 needs to be less than or equal to 20, and the delay of the communication path from the root node 0 to the destination node 8 needs to be less than or equal to 10.

[0067] Based on the above network topology information and constraint conditions, the controller constructs a multicast tree. Among them, the network topology information includes but is not limited to: the root node, the destination node, and the directed edge information (including but not limited to the number, delay, and loss of the directed edge, etc.) (which can also be referred to as the attribute information of the directed edge, not limited in this application). Figure 3 Schematic diagram of the structure of the multicast tree shown for illustration. Please refer to Figure 3, where the solid lines are used to represent the paths in the multicast tree. In this multicast tree, the multicast path (i.e., the communication path) from the root node 0 to the destination node 2 is: node 0 → node 3 → node 2. The loss of this multicast path is 5 (i.e., the sum of the loss values of directed edge 2 and directed edge 17), and the delay is 10 (i.e., the sum of the delay values of directed edge 2 and directed edge 17), satisfying the delay upper bound constraint Δ 02 ≤ 10; the multicast path from the root node 0 to the destination node 4 is: node 0 → node 5 → node 4. The loss of this multicast path is 2 (i.e., the sum of the loss values of directed edge 4 and directed edge 19), and the delay is 4 (i.e., the sum of the delay values of directed edge 2 and directed edge 19), satisfying the delay upper bound constraint Δ 04 ≤ 15; the multicast path from the root node 0 to the destination node 6 is: node 0 → node 5 → node 6. The loss of this multicast path is 12 (i.e., the sum of the loss values of directed edge 4 and directed edge 12), and the delay is 15 (i.e., the sum of the delay values of directed edge 4 and directed edge 12), satisfying the delay upper bound constraint Δ 06 ≤ 20; the multicast path from the root node 0 to the destination node 8 is: node 0 → node 1 → node 8. The loss of this multicast path is 11 (i.e., the sum of the loss values of directed edge 0 and directed edge 23), and the delay is 6 (i.e., the sum of the delay values of directed edge 0 and directed edge 23), satisfying the delay upper bound constraint Δ 08 ≤ 10.

[0068] It should be noted that there may be multiple multicast trees that satisfy the constraints, and the optimal multicast tree problem is to find the multicast tree that satisfies the constraints with the minimum loss. This is an NP problem, and there is no solution algorithm within polynomial time.

[0069] To quickly construct a multicast tree, an existing technique has proposed a method for solving the multi-constrained multicast tree problem: the BoundedShortest Multicast Algorithm (BSMA) algorithm. The execution process of this algorithm is as Figure 4 shown. In this method, in order to find all possible candidate paths in path replacement, BSMA defines a new tree T′ j , called the collapsed treeof T j (folded tree). T′ j contains a series of nodes and hyperedges. The nodes of T′ j include: the root node r, the set of destination nodes in T j , and the nodes in T j that connect more than 2 tree edges. The hyperedges of T′ j : the longest simple path in T j , where all intermediate nodes are not nodes of T′ j . All hyperedges represent T jA candidate path for possible path replacement. To reduce the tree weight of the current multicast tree T j BSMA first deletes one hyperedge in T′ j which corresponds to deleting one path p in T j This will generate two subtrees and wherein then find a shortest path p that satisfies the delay constraint s Connect and again.

[0070] In this method, since the initial feasible solution needs to be calculated, it only supports the delay upper bound constraint and the hop count constraint. Although the framework supports controlling the number of calls to the optimization algorithm, it is difficult to dynamically adjust according to different network models in actual applications.

[0071] The embodiment of the present application provides a multicast tree construction method, which can quickly solve a multicast tree with a relatively optimal loss value for a given network topology, multicast tree root node, destination node, and constraints that each communication link needs to satisfy. Figure 5 For the schematic diagram of the principle of the exemplary multicast tree construction method, please refer to Figure 5 , in the embodiment of the present application, the controller (such as Figure 1 the controller shown in) collects the current network topology state in real time, mainly including but not limited to: node information in the network and information of each directed edge. Among them, the node information includes but not limited to: node number, device type, etc. The information of the directed edge (which can also be called attribute information) includes but not limited to at least one of the following: identification information of the directed edge (such as number), loss value, delay value, etc.

[0072] Exemplarily, the user can send customer requirements (which can also be called user requirements) through the user device. Among them, the user requirements are used to indicate the root node, destination node, and constraint information of the multicast tree. Optionally, usually the sending end of the user requirements is the root node. For example, as Figure 1 shown, when the controller receives the user requirements sent by node 1, then node 1 is the root node corresponding to the user requirements. Among them, the user requirements sent by node 1 may be sent by the user device accessing node 1, and the present application does not make any limitation.

[0073] Exemplarily, the controller can construct a multicast tree that meets the user requirements based on the user requirements and the network topology state.

[0074] In a possible implementation, the controller may receive multiple user requirements, and the root node, destination node, and constraint information indicated by each user requirement may be different. The controller may construct a corresponding multicast tree for each user requirement.

[0075] Figure 6 The flowchart of a multicast tree construction method provided by an embodiment of this application is shown in Figure 6 , and specifically includes but is not limited to the following steps:

[0076] S601. Obtain network topology information and multicast tree construction requirement information. The multicast tree construction requirement information is used to indicate the constraint conditions for constructing the multicast tree, the root node of the multicast tree, and at least one destination node of the multicast tree. The network topology information is used to indicate the attribute information of the directed edges between any two nodes in the network topology.

[0077] Exemplarily, the controller loads the network topology graph. Specifically, after the communication system is initialized, the controller can obtain the network topology information. Among them, the network topology information includes but is not limited to: node information and directed edge information. The node information includes but is not limited to: node number, device type, etc. The directed edge information (which can also be called attribute information, and the specific concept can refer to the above) includes but is not limited to at least one of the following: identification information of the directed edge (such as number), loss value, delay value, etc.

[0078] In a possible implementation, the controller can obtain the network topology information in real time or periodically to update the corresponding network topology graph. Optionally, if the network topology is updated (such as adding a node, deleting a node, adding a directed edge, deleting a directed edge, etc.), the controller can reconstruct the multicast trees corresponding to each user requirement according to the multicast tree construction method in the embodiment of this application based on the obtained user requirements. Optionally, if the network topology is updated, the controller can also request new user requirements from each user and reconstruct the multicast tree according to the multicast tree construction method in the embodiment of this application based on the new user requirements.

[0079] Exemplarily, the controller loads the user requirements (i.e., the multicast tree construction requirement information). Specifically, after the user sets the user requirements through the user terminal, the user terminal sends the user requirements to the controller through the nodes in the network topology. The user requirements are used to indicate the root node of the multicast tree, at least one destination node, and the constraint conditions of the multicast tree. Exemplarily, the user requirements include but are not limited to: root node information, information of at least one destination node, and constraint conditions. The root node information includes but is not limited to: identification information of the root node (such as address information, which is not limited in this application), device type, etc. The information of at least one destination node includes but is not limited to: identification information of the destination node (such as address information, which is not limited in this application), etc.

[0080] Exemplarily, the constraint condition can also be referred to as a path constraint condition, which is used to indicate the constraint on the communication path between the root node and a single destination node.

[0081] In the embodiments of the present application, the constraint condition may include, but is not limited to, at least one of the following: hop count constraint, delay constraint, must-pass / must-not-pass constraint, etc. It should be noted that the constraint conditions involved in the present application are only illustrative examples. In other embodiments, other types of constraints may be included, which can be set according to actual needs, and the present application does not make any limitations.

[0082] Exemplarily, the hop count constraint is used to indicate the upper limit of the hop count between the root node and a single destination node, and can also be understood as the upper limit of the number of nodes passed by the communication link from the root node to the single destination node. For example, the upper limit of the hop count (i.e., less than or less than or equal to) between the root node 0 and the destination node 2 is 5.

[0083] The delay constraint is used to indicate the upper limit of the delay between the root node and a single destination node. For example, the upper limit of the delay (i.e., less than or less than or equal to) between the root node 0 and the destination node 2 is 3 ms.

[0084] Must-pass / must-not-pass is used to indicate at least one directed edge that the communication path between the root node and a single destination node must pass through or cannot pass through.

[0085] Optionally, the types and specific contents of the path constraint conditions between the root node and each destination node may be the same or different. For example, the constraint condition between the root node 0 and the destination node 2 is that the upper limit of the hop count is A, and the constraint condition between the root node 0 and the destination node 4 is that the upper limit of the delay is B. For another example, the constraint condition between the root node 0 and the destination node 2 is that the upper limit of the hop count is A, and the constraint condition between the root node 0 and the destination node 4 is that the upper limit of the hop count is C.

[0086] Optionally, the path constraints between the root node and each destination node may include one or more. For example, the constraint condition between the root node 0 and the destination node 2 is that the upper limit of the hop count is A; the constraint conditions between the root node 0 and the destination node 4 are that the upper limit of the delay is B and the upper limit of the hop count is D. The specific constraint conditions can be set according to actual needs, and the present application does not make any limitations.

[0087] S602. Based on the network topology information and the multicast tree construction requirement information, obtain the target network topology graph. The target network topology graph includes at least one path between the root node and each destination node, and the attribute information of at least one path between the root node and each destination node; wherein, all paths in the target topology graph satisfy the constraint conditions.

[0088] Specifically, after the controller obtains the network topology information (i.e., the network topology graph) and the user requirements (i.e., the multicast tree construction requirement information), it can obtain the target network topology graph in which all paths meet the user requirements based on the network topology information and the user requirements. That is to say, in this step, the controller is responsible for solving all paths that meet the constraints between the multicast tree root node and the corresponding destination nodes. Correspondingly, in the target topology graph obtained by the controller, there is at least one communication path (which can be simply referred to as a path in the embodiments of the present application) between the root node and any destination node (which can also be understood as a single destination node), and all paths in the target topology graph meet the constraint conditions.

[0089] Figure 7 For the schematic diagram of the target topology graph acquisition process shown by way of example, please refer to Figure 7 , which specifically includes but is not limited to the following steps:

[0090] S701, traverse the destination nodes.

[0091] Exemplarily, the controller can obtain the corresponding network topology graph based on the network topology information and the user requirements. Specifically, the controller can determine the corresponding network topology graph based on the information of the root node and at least one destination node indicated by the user requirements. The network topology graph includes but is not limited to: the root node, at least one destination node, and the information of each directed edge (such as number, loss, delay, etc.). After the controller obtains the network topology graph, it traverses the destination nodes in the network topology graph one by one. Among them, the traversal order can be sequential or disordered, which can be set according to actual needs, and the present application does not make any limitations.

[0092] Illustrate with an example, Figure 8 For the schematic diagram of the structure of the network topology graph shown by way of example, after the controller obtains the network topology information, the root node information, and the information of at least one destination node, it can obtain the corresponding network topology graph. Please refer to Figure 8 , the network topology graph includes node information and directed edge information. The node information includes: the root node information and the destination node information. Among them, the root node information includes: the identification information of node 0, etc. That is, node 0 is the root node of the multicast tree. The destination node information includes but is not limited to: the identification information of nodes 1, 2, 4, 7, 8, etc. That is to say, nodes 1, 2, 4, 7, 8 are the destination nodes of the multicast tree. The directed edge information includes but is not limited to the loss value, delay value, etc. of the directed edge between any two nodes. Among them, Figure 8 the various numerical values, the number and direction of the directed edges, the number and layout of the nodes, etc. in are only illustrative examples, and the present application does not make any limitations.

[0093] Exemplarily, the controller traverses each destination node in the network topology graph one by one. For example, the traversal order of the controller is: destination nodes 1, 2, 4, 7, 8. When traversing to destination node 1, the controller executes S702.

[0094] S702, detect whether the traversal is completed.

[0095] Exemplarily, every time the controller traverses a destination node, it detects whether all nodes have been traversed. In one example, if the traversal is completed, S603 is executed. In another example, if the traversal is not completed, S703 is executed.

[0096] S703, read the destination node.

[0097] Exemplarily, the controller reads the node information of the currently traversed destination node. For example, information such as the node number is obtained.

[0098] S704, traverse the network topology graph and retain all paths that meet the constraint conditions between the root node and this destination node.

[0099] Exemplarily, based on the constraint conditions indicated by the user requirements, the controller traverses all feasible communication paths between the root node and the currently read destination node in the network topology graph, and retains the paths that meet the constraint conditions between the node and the currently read destination node.

[0100] In the embodiments of the present application, the controller can adopt the backtracking method to traverse all feasible paths between the root node and the currently read destination node, and the traversal results can be saved in a dictionary data structure. The key of this dictionary is the multicast tree destination node, and the value is all paths that meet the constraints from the multicast tree root node to this destination node on the topology graph. Optionally, as described above, the controller may receive multiple user requirements, and different user requirements correspond to different traversal results. The controller can store multiple traversal results.

[0101] In the backtracking method, in the solution space tree containing all possible solutions, starting from the root node, search is performed according to the strategy of limited depth. For a certain node in the solution space tree, if the node meets the constraint conditions of the problem, enter the subtree to continue the search, otherwise prune with this node as the root node.

[0102] In the embodiments of the present application, the controller can determine the pruning conditions corresponding to each destination node based on the constraint conditions indicated by the user requirements.

[0103] Illustrate with examples:

[0104] For the delay constraint, it restricts the upper bound of the delay of the communication path between the root node and the destination node. In the backtracking method, the pruning condition corresponding to the delay constraint is that the path passed through by the current traversal does not exceed (is less than or less than or equal to) the maximum delay upper bound of the multicast tree. That is, if the path passed through by the controller during the current traversal exceeds (is greater than or greater than or equal to) the maximum delay upper bound of the multicast tree, there is no need to continue traversing deeper and return to the previous layer. Among them, the maximum delay upper bound of the multicast tree is optionally the maximum value of the delay upper bound constraints from the root node of the multicast tree to all destination nodes. For example, the delay constraint condition corresponding to destination node 2 is delay A, that is, the delay of the communication path between the root node and destination node 2 cannot exceed delay A. The delay constraint condition corresponding to destination node 4 is delay B, that is, the delay of the communication path between the root node and destination node 4 cannot exceed delay B. The delay constraint condition corresponding to destination node 6 is delay C, that is, the delay of the communication path between the root node and destination node 6 cannot exceed delay C. Among them, delay A is greater than delay B is greater than delay C. That is, among the delay constraint conditions of all destination nodes, the maximum upper limit value of the delay is delay C. Correspondingly, the corresponding pruning condition is that the maximum delay value of the path passed through by the current traversal is delay A. That is to say, when the controller traverses the path from the root node to any destination node, if the delay of the path passed through currently (that is, the sum of the delays of the directed edges passed through) does not exceed delay A, it can continue to traverse deeper. If the path passed through currently exceeds delay A, there is no need to continue traversing deeper and return to the previous layer to select other branches to continue traversing.

[0105] For the hop count constraint, it restricts the upper bound of the hop count of the communication path between the root node and the destination node (that is, the upper limit of the number of directed edges passed through). In the backtracking method, the pruning condition corresponding to the hop count constraint is that the depth of the traversal does not exceed (is less than or less than or equal to) the maximum hop count upper bound of the multicast tree. Among them, the maximum hop count upper bound of the multicast tree is the maximum value of the hop count upper bound constraints from the root node of the multicast tree to all destination nodes.

[0106] For the must-pass / must-not-pass constraint, in the backtracking method, the corresponding pruning condition is optionally that the path currently traversed must pass through or must not pass through certain directed edges.

[0107] The pruning conditions corresponding to other constraints can be set according to actual requirements, and this application will not give examples one by one.

[0108] Exemplarily, as described above, the multicast tree in the embodiments of the present application may include various types of composite constraints, such as delay constraint and hop count constraint. In this scenario, the corresponding pruning condition may optionally be: the path passed by the current traversal does not exceed (less than or less than or equal to) the maximum delay upper bound of the multicast tree, and the depth of the traversal does not exceed (less than or less than or equal to) the maximum hop count upper bound of the multicast tree. That is to say, when the controller traverses the path, if the path passed by the current traversal exceeds (greater than or greater than or equal to) the maximum delay upper bound of the multicast tree, and the depth of the traversal exceeds (greater than or greater than or equal to) the maximum hop count upper bound of the multicast tree, there is no need to continue traversing deeper, and return to the upper layer. It can be understood that when the constraint condition is a composite constraint condition, the corresponding pruning condition is to perform pruning when exceeding the upper limits of all constraints, and if only some of the constraint upper limits are exceeded, the traversal can continue deeper.

[0109] In a possible implementation manner, if no constraint condition is set in the user requirement, the controller may automatically generate the corresponding constraint condition (such as setting a certain delay threshold, etc.) and the corresponding pruning condition. The basic design idea is: use the shortest path algorithm (dijkstra) to find the minimum path from the multicast tree root node to the destination node based on a certain attribute (such as delay, cost, etc.), and then multiply this minimum value by a scaling factor (which can be set according to actual requirements) to determine the upper bound of this attribute for pruning.

[0110] Exemplarily, after the controller determines the pruning condition, the backtracking method can be used, and based on the pruning condition, traverse the path between the root node and the currently read destination node, and prune the paths that meet the pruning condition during the traversal, so as to retain all paths that meet the constraint conditions between the root node and the destination node.

[0111] Optionally, when the controller traverses the path of the first destination node (such as destination node 2) and prunes some paths, when the controller traverses other destination nodes, it will no longer traverse the pruned paths, thereby effectively reducing the complexity of the network topology graph and achieving efficient pruning.

[0112] Still taking Figure 8 the network topology graph in

[0113] Table 1

[0114]

[0115]

[0116] In this scenario, the controller can use the backtracking method. Based on the pruning conditions corresponding to the constraint conditions (i.e., the time delay of the currently traversed path is less than or equal to 12 ms), it can find the feasible paths that satisfy the constraints from the root node to each destination node, and obtain the target attribute values corresponding to each feasible path (i.e., the sum of the target attribute values of the directed edges that make up the feasible path), so as to obtain the target network topology graph. Among them, the target network topology graph includes the paths that satisfy the constraint conditions between the root node and each destination node, and the attribute values corresponding to each path. In the embodiments of the present application, the target attribute value is the path loss value, and in other embodiments, it can also be other attribute values, which are not limited in the present application.

[0117] Table 2 exemplarily shows all the feasible paths (i.e., the paths that satisfy the constraint conditions) from the root node to each destination node and the corresponding loss values. Among them, the identifier of the feasible path is the number sequence of at least one directed edge that makes up the path. Among them, the content described in Table 2 is part of the content of the target network topology graph corresponding to the user requirements. The target network topology graph may also include other attribute information of each directed edge, such as time delay, etc., which are not limited in the present application. The present application only takes the form of a list as an example for illustration. The controller can store the information of the target network topology graph in other ways, which are not limited in the present application.

[0118] Table 2

[0119]

[0120] As shown in Table 2, when the controller traverses to destination node 1 and detects that not all destination nodes have been traversed, it reads destination node 1. Based on the pruning condition, that is, the time delay of the currently traversed path is less than or equal to 12 ms, the controller traverses the path between root node 3 and destination node 1 in the network topology graph. During the traversal process, the controller prunes the nodes that satisfy the pruning condition and retreats to the previous layer. By looping the above steps, the paths from root node 3 to destination node 1 obtained are: 10 - 33 - 21 - 16, 10 - 37 - 30 - 21 - 16, 11 - 16. Among them, each numerical value is the number of the directed edge passed by the path. And the controller obtains the loss values corresponding to the above paths, that is, the sum of the loss values corresponding to the directed edges passed by each path. The communication paths of other destination nodes can refer to Table 2 and will not be elaborated one by one here.

[0121] S603, construct a target multicast tree based on the attribute information of each path in the target network topology graph.

[0122] In the embodiments of the present application, the construction of the target multicast tree can be divided into two parts. The first part is the construction of the initial multicast tree, and the second part is to optimize the initial multicast tree to obtain the target multicast tree. The following will elaborate on the two parts in detail:

[0123] The first part is to construct an initial multicast tree.

[0124] In this process, the controller can select the path with the minimum loss value in the path combination based on the target network topology graph that has been simplified and all paths meet the constraint conditions, and construct an initial multicast tree, so as to obtain a multicast tree that meets all constraint conditions. This part adopts the idea of the greedy algorithm. The greedy algorithm (Greedy Algorithm) is also called the hill-climbing algorithm. Its fundamental idea is to gradually reach the top of the mountain, that is, to gradually obtain the optimal solution. It is a simple but limited applicable strategy when solving optimization problems. In each greedy selection, only consider the current choice that is most beneficial to itself. Therefore, the controller can also optimize the initial multicast tree based on the second part, that is, optimizing the initial multicast tree from the perspective of the overall benefit of the multicast tree.

[0125] Figure 9 For the process view of the exemplary multicast tree construction method, please refer to Figure 9 , which specifically includes but is not limited to the following steps:

[0126] S901, traverse the feasible paths.

[0127] Exemplarily, the controller traverses all feasible paths in the target network topology graph, such as all paths in Table 2.

[0128] S902, determine whether there are feasible paths.

[0129] In the embodiment of the present application, the controller deletes some specified paths in S905. Therefore, after each traversal, the number of feasible paths in the target network topology graph will decrease.

[0130] In one example, if there are no feasible paths, that is, the controller has removed all feasible paths in the target network topology graph, then execute S907.

[0131] In another example, if there are feasible paths, then execute S903.

[0132] S903, add the path with the minimum loss value to the initial multicast tree.

[0133] Exemplarily, the controller traverses all feasible paths in the target network topology graph (such as all paths in Table 2), and finds the path with the minimum loss value in the target network topology graph. Taking Table 2 as an example, the controller detects that in the target network topology graph, the loss value corresponding to the feasible path "9" (the loss value is 10) is the smallest.

[0134] The controller adds the feasible path "9" to the initial multicast tree. Currently, the information of the initial multicast tree is shown in Table 3:

[0135] Table 3

[0136]

[0137] As shown in Table 3, in the initial multicast tree, the communication path from the root node 3 to the destination node 7 is: directed edge 9, the path loss is 10, and the path delay is 5. Among them, Table 3 is only for illustrative purposes, and a multicast tree similar to Figure 3 can also be constructed, and the present application does not make any limitations.

[0138] S904. Find the destination node corresponding to this path.

[0139] Exemplarily, the controller can, based on Table 2, find that the destination node corresponding to the feasible path "9" is the destination node 7.

[0140] S905. Remove other paths corresponding to this destination node.

[0141] Exemplarily, the controller removes other paths corresponding to this destination node in the target network topology diagram. For example, still taking the destination node 7 as an example, after the controller adds the feasible path "9" to the initial multicast tree, it removes the feasible path "9", and moreover, finds that the destination node corresponding to the feasible path "9" is the destination node 7. The controller removes other paths corresponding to the destination node 7, including: the feasible path "10 - 36", the feasible path "10 - 37 - 39", as shown in Table 4, where the "-" in Table 4 indicates that the path has been deleted from the target network topology diagram.

[0142] Table 4

[0143]

[0144]

[0145] S905. Update the loss values of all paths.

[0146] Exemplarily, the controller updates the loss values of other feasible paths in the target network topology diagram based on the loss values of the selected (i.e., the feasible paths selected in S903) feasible paths. Specifically, the controller sets the loss value of this feasible path in the target network topology diagram to a preset value, for example, 0. Correspondingly, the loss values of all paths in the target network topology diagram that share a directed edge with this feasible path will be updated accordingly.

[0147] In the scenario shown in Table 4, the feasible path selected by the controller is 9. The controller sets the loss value of the feasible path 9 in the target network topology graph, that is, the loss value of the directed edge 9, to 0. That is to say, the loss values of all feasible paths in Table 4 that contain the directed edge 9 will be subtracted by the loss value corresponding to the directed edge 9 (which is 10). In this scenario, the directed edge 9 is not included in other feasible paths, so the loss values of each path remain unchanged.

[0148] The controller returns to S901 to continue traversing other feasible paths until all feasible paths in Table 2 are removed.

[0149] In a possible implementation, the controller can also, during the process of traversing the target network topology graph, preferentially search for destination nodes that correspond to only one feasible path. If any exist, directly add the feasible path to the initial multicast tree and continue to execute S904. For example, still taking Table 2 as an example, the controller traverses the target network topology graph and detects that the destination node 8 corresponds to only one feasible path, that is, the feasible path "10 - 37". The controller adds this feasible path to the initial multicast tree, and the initial multicast tree is shown in Table 5:

[0150] Table 5

[0151]

[0152] The controller removes this feasible path from the target network topology graph and updates the loss values of other paths, as shown in Table 6:

[0153] Table 6

[0154]

[0155]

[0156] Please refer to Table 6. The controller removes the feasible path "10 - 37". Among them, this feasible path includes the directed edge 10 and the directed edge 37, and the corresponding loss values are 9 and 6 respectively. Correspondingly, the controller updates the loss values of the paths in the target network topology graph that share edges with the feasible path "10 - 37" (that is, the directed edge 10 and / or the directed edge 37), that is, subtracts the loss values of the directed edge 10 and / or the directed edge 37.

[0157] For example, taking the feasible path "10-33-21-16" corresponding to the destination node 1 as an example, since this feasible path includes the directed edge 10, the controller subtracts the loss value of the directed edge 10 (i.e., 9 in Table 2) from its loss value (i.e., 28 in Table 2). The loss value of the updated feasible path "10-33-21-16" is 19. Another example, the feasible path "10-37-39" corresponding to the destination node 7 includes the directed edge 10 and the directed edge 37. Correspondingly, the controller subtracts the loss value of the directed edge 10 (i.e., 9) and the loss value of the directed edge 37 (i.e., 6) from its loss value (i.e., 21 in Table 2). The loss value of the updated feasible path "10-37-39" is 6. The update of the loss values of other feasible paths can refer to the above method, and no further examples will be given here.

[0158] Exemplarily, when repeatedly executing S901 to S906, the controller can select the path with the smallest loss value based on the already updated target network topology graph. For example, when the controller executes S901 to S903 again, the controller traverses the target network topology graph and detects that the path with the smallest current loss value is "10-36", and its loss value is 4. Then the controller adds this feasible path to the initial multicast tree, and the obtained initial multicast tree is shown in Table 7:

[0159] Table 7

[0160]

[0161] Exemplarily, based on Table 6, the controller deletes the communication path "10-36". And the controller finds the destination node corresponding to the feasible path "10-36", which is the destination node 7, and the controller deletes the other feasible paths of the destination node 7. And the controller sets the loss value of the feasible path "10-36" in the target network topology to zero, that is, sets the loss values of the directed edge 10 and the directed edge 36 to 0. In this example, since the directed edge 10 has been set to 0, the controller only needs to set the directed edge 36 to zero, and the processing result is shown in Table 8:

[0162] Table 8

[0163]

[0164]

[0165] The controller can execute S901 to S906 in a loop in the above manner to obtain an initial multicast tree, as shown in Table 9. The initial multicast tree includes a root node, destination nodes, and a communication path from the root node to each destination node and its corresponding path information (which can also be referred to as attribute information). Among them, all communication paths meet the constraint conditions, and the loss value of the current initial multicast tree is relatively optimal. In the embodiments of the present application, the loss value of the multicast tree is the sum of the loss values of all directed edges.

[0166] Table 9

[0167]

[0168] The second part is to construct the target multicast tree.

[0169] Exemplarily, after the controller obtains the initial multicast tree, the controller can optimize the initial multicast tree through a local search algorithm to further reduce the target attribute value of the multicast tree, such as reducing the loss value of the multicast tree. In the embodiments of the present application, for each destination node of the multicast tree, the currently obtained path is removed, and then a new path with a smaller loss is searched for. If found, the multicast tree is updated; otherwise, the removed path is restored. This method is a destroy-repair heuristic algorithm.

[0170] For the specific steps, please refer to Figure 9 , including but not limited to the following steps:

[0171] S907, traverse the destination nodes.

[0172] Exemplarily, the controller traverses each destination node in the initial multicast tree. In one example, the traversal order can be sorted in descending order of node numbers. In another example, the traversal order can be disordered, that is, random. In yet another example, the traversal order can be based on the sharing degree of the path. Among them, the sharing degree can be understood as the sharing times of the directed edge. Exemplarily, the directed edges in the multicast tree may be shared by multiple paths. Among them, the smaller the sharing degree of the directed edge included in the path, the more forward it can be in the traversal sequence. For example, taking Table 3 as an example, for the path "9" corresponding to the destination node 7, the sharing degree of its directed edge is 0, that is, no other destination node's path shares this directed edge. Correspondingly, the traversal order of the destination node 7 can be ranked first in the traversal sequence.

[0173] S908, determine whether the traversal is completed.

[0174] In one example, if the controller has traversed all the destination nodes in the initial multicast tree, the current process ends.

[0175] In another example, if the controller determines that traversal of all destination nodes has not been completed, S909 is executed.

[0176] S909: Remove the path between the destination node and the root node from the initial multicast tree and replace it with the path with the least loss.

[0177] Exemplarily, when the controller traverses to the current destination node, the communication path between the currently traversed destination node and the root node (which can be called the initial communication path) is removed from the initial multicast tree. For example, when the controller traverses to destination node 7, the controller removes the communication path "9" between destination node 7 and root node 3.

[0178] The controller searches in the target network topology graph for the path with the least loss value between the destination node and the root node, other than the initial communication path, and replaces this path in the initial multicast tree. Specifically, after the controller obtains the initial multicast tree, it can set the loss values of the directed edges in the target network topology graph corresponding to the directed edges in the initial multicast tree to 0. For example, based on Table 2, the controller sets the loss values of the directed edges in the initial multicast tree (i.e., the directed edges in Table 9) to 0, as shown in Table 10:

[0179] Table 10

[0180]

[0181] As shown in Table 10, each path in the initial multicast tree has been removed from the target network topology graph, and the loss values of the corresponding directed edges have all been set to 0. Assume that the controller traverses to destination node 7, and the controller removes the communication path "10 - 36" between destination node 7 and the root node in the initial multicast tree.

[0182] In one example, if one or more directed edges in the communication path are shared directed edges, that is, other nodes also include the one or more directed edges, then the controller removes the directed edges other than the one or more directed edges, that is, non - shared directed edges. For example, if directed edge 10 and directed edge 36 are both shared directed edges, then the controller does not remove directed edge 10 and directed edge 36. During the process of finding a new path, the controller selects the path with the least loss value from the other feasible paths corresponding to destination node 7 (that is, other than the communication path "10 - 36") and adds it to the initial multicast tree. For example, as shown in Table 10, among the feasible paths currently corresponding to destination node 7, the path "10 - 37 - 39" has the least loss value, so the controller replaces this path in the multicast tree.

[0183] In another example, if all the directed edges in the communication path are non-shared directed edges, the entire communication path is removed. During the process of the controller searching for a new path, after restoring the loss values of the non-shared directed edges in the feasible paths corresponding to the destination node 7 in Table 10 (i.e., the target network topology graph) to their original values, the controller selects the path with the minimum loss value from the other feasible paths corresponding to the destination node 7 (i.e., except for the communication path "10-36") and adds it to the initial multicast tree. Taking the destination node 1 as an example, both the directed edge 11 and the directed edge 16 in the communication path "11-16" corresponding to the destination node 1 are non-shared directed edges, and the controller removes the directed edge 11 and the directed edge 16. After the controller restores the loss values of the directed edge 11 (where there is no directed edge 11 in the feasible paths of the destination node 1 in Table 10) and the directed edge 16 in all the feasible paths corresponding to the destination node 11 in Table 10 to their original loss values (i.e., Figure 8 the loss value corresponding to the directed edge in

[0184] S910, determine whether the loss of the initial multicast tree is smaller.

[0185] After the controller adds the new path to the initial multicast tree, the controller obtains the loss value of the current initial multicast tree, that is, the sum of the loss values of each directed edge. In one example, if the current loss value is greater than or equal to the loss value before replacing the path, execute S912. In another example, if the current loss value is less than or less than or equal to the loss value before replacing the path, execute S911.

[0186] S911, restore this path.

[0187] Exemplarily, the controller reinserts the removed path into the multicast tree and re-executes S907. Optionally, if the loss value of the feasible path is modified in S909, the modified loss value of the feasible path is restored (for example, restored to the value shown in Table 10).

[0188] S912, update the initial multicast tree.

[0189] Exemplarily, the controller retains the new path in the initial multicast tree. And, the controller removes the new path added to the initial multicast tree from the target network topology graph (i.e., Table 10), and sets the loss value in the new path of the target network topology graph (i.e., Table 10) to 0. Optionally, the old path removed from the initial multicast tree (such as the path "10-36") is re-added to the target network topology graph (i.e., Table 10), and the controller restores the loss value of the non-shared edges (i.e., the directed edges not in the current multicast tree) in the old path in the target network topology graph to the original loss value (i.e., Figure 8The corresponding loss value).

[0190] After the controller finishes traversing all destination nodes, the target multicast tree is obtained. That is to say, the loss value of this target multicast tree will be less than or less than or equal to the initial multicast tree.

[0191] In a possible implementation, the controller can reset the traversal order of the destination nodes of the current target multicast tree and execute S907 - S911 again to further optimize the current target multicast tree. The controller can repeat the optimization process multiple times. Each optimization process is a local optimization of the multicast tree after the previous optimization, so as to obtain a target multicast tree with a lower loss value. That is to say, after the controller performs a local search on all destination nodes each time, an updated multicast tree may be obtained (or may not be updated). The next execution is to perform a local search on each destination node of this new multicast tree.

[0192] In the embodiments of the present application, there are delay upper bound constraints from the root node to the destination nodes. The effect test of the present invention in such an embodiment is as follows Figure 10 shown. Please refer to Figure 10 , where the time consumption is in milliseconds (ms), and there are a total of three groups of test cases (case01, case02, case03). For example, in case01, there are 1900 test cases. The average number of nodes in the topological structure corresponding to these test cases is 71 nodes, the average number of edges is 284 edges, and the average number of destination nodes of the multicast tree to be solved is 37 nodes. Under these data, the average solution time consumption of the present application is 0.65 milliseconds.

[0193] The above mainly introduces the solution provided by the embodiments of the present application from the perspective of the interaction between each network element. It can be understood that in order to implement the above functions, the multicast tree construction device includes the corresponding hardware structure and / or software module for executing each function. Those skilled in the art should easily realize that, combined with the units and algorithm steps of each example described in the embodiments disclosed in this article, the embodiments of the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such an implementation should not be considered to exceed the scope of the present application.

[0194] The embodiments of the present application can divide the multicast tree construction device into functional modules according to the above method examples. For example, each functional module can be corresponding to each function, or two or more functions can be integrated into one processing module. The above integrated module can be implemented in the form of hardware or in the form of a software functional module. It should be noted that the division of modules in the embodiments of the present application is illustrative, only a logical function division, and there may be other division methods in actual implementation.

[0195] In the case of dividing each functional module corresponding to each function, in the case of dividing each functional module corresponding to each function, Figure 11 shows a possible structural schematic diagram of the multicast tree construction device 1100 involved in the above embodiments, as Figure 11 shown, the multicast tree construction device may include: a first acquisition module 1101, configured to acquire network topology information and multicast tree construction requirement information, where the multicast tree construction requirement information is used to indicate the constraint conditions for constructing the multicast tree, the root node of the multicast tree, and at least one destination node of the multicast tree, and the network topology information is used to indicate the attribute information of the directed edge between any two nodes in the network topology; a second acquisition module 1102, configured to acquire a target network topology diagram based on the network topology information and the multicast tree construction requirement information; the target network topology diagram includes at least one path between the root node and each destination node, and the attribute information of at least one path between the root node and each destination node; wherein, all paths in the target topology diagram satisfy the constraint conditions; a construction module 1103, configured to construct a target multicast tree based on the attribute information of each path in the target network topology diagram.

[0196] In another example, Figure 12 shows a schematic block diagram of a multicast tree construction device 1200 according to an embodiment of the present application. The multicast tree construction device may include: a processor 1201 and a transceiver / transceiver pin 1202. Optionally, a memory 1203 is further included. The processor 1201 can be used to execute the steps performed by the multicast tree construction device in each method of the foregoing embodiments, and control the receiving pin to receive signals and control the sending pin to send signals.

[0197] Each component of the multicast tree construction device 1200 is coupled together through a bus 1204. The bus system 1204 includes, in addition to the data bus, a power bus, a control bus, and a status signal bus. However, for the sake of clarity, all kinds of buses are labeled as the bus system 1204 in the figure.

[0198] Optionally, the memory 1203 can be used to store instructions in the foregoing method embodiments.

[0199] It should be understood that the multicast tree construction device 1200 according to the embodiments of the present application may correspond to the first device in each of the methods of the foregoing embodiments, and the above and other management operations and / or functions of each component in the multicast tree construction device 1200 are respectively for implementing the corresponding steps of the foregoing respective methods. For the sake of brevity, they will not be described herein again.

[0200] All relevant content of each step involved in the above method embodiments can be cited in the function descriptions of the corresponding functional modules, and will not be described herein again.

[0201] Based on the same technical concept, an embodiment of the present application further provides a computer-readable storage medium. The computer-readable storage medium stores a computer program, and the computer program includes at least one segment of code. The at least one segment of code can be executed by the multicast tree construction device to control the multicast tree construction device to implement the above method embodiments.

[0202] Based on the same technical concept, an embodiment of the present application further provides a computer program. When the computer program is executed by the multicast tree construction device, it is used to implement the above method embodiments.

[0203] The program can be stored in whole or in part on a storage medium packaged together with the processor, or can be stored in whole or in part on a memory not packaged together with the processor.

[0204] Based on the same technical concept, an embodiment of the present application further provides a processor. The processor is used to implement the above method embodiments. The above processor can be a chip.

[0205] The steps of the method or algorithm described in combination with the disclosed content of the embodiments of the present application can be implemented in a hardware manner or by a processor executing software instructions. The software instructions can be composed of corresponding software modules. The software modules can be stored in a random access memory (RAM), flash memory, read only memory (ROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), register, hard disk, removable hard disk, compact disc read only memory (CD-ROM), or any other form of storage medium well known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium can be located in an ASIC. Additionally, the ASIC can be located in a network device. Of course, the processor and the storage medium can also exist as discrete components in the network device.

[0206] Those skilled in the art should be able to realize that in one or more of the above examples, the functions described in the embodiments of the present application can be implemented by hardware, software, firmware, or any combination thereof. When implemented using software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. The computer-readable medium includes computer storage media and communication media, where the communication media includes any medium that facilitates the transmission of a computer program from one place to another. The storage media can be any available medium that can be accessed by a general-purpose or special-purpose computer.

[0207] The embodiments of the present application have been described above in conjunction with the accompanying drawings. However, the present application is not limited to the above specific implementation manners. The above specific implementation manners are merely illustrative rather than restrictive. Those of ordinary skill in the art, under the inspiration of the present application, can also make many forms without departing from the purpose of the present application and the scope protected by the claims, and all of them belong to the protection scope of the present application.

Claims

1. A method for constructing a multicast tree, characterized in that, it includes: Obtain network topology information and multicast tree construction requirement information, where the multicast tree construction requirement information is used to indicate the constraint conditions for constructing the multicast tree, the root node of the multicast tree, and at least one destination node of the multicast tree, and the network topology information is used to indicate the attribute information of the directed edges between any two nodes in the network topology; Based on the network topology information and the multicast tree construction requirement information, obtain a target network topology graph; The target network topology graph includes at least one path between the root node and each destination node, and the attribute information of at least one path between the root node and each destination node; wherein, all paths in the target topology graph satisfy the constraint conditions; Based on the attribute information of each path in the target network topology graph, construct a target multicast tree.

2. The method according to claim 1, characterized in that, The obtaining of the target network topology graph based on the network topology information and the multicast tree construction requirement information includes: Based on the constraint conditions, traverse all paths between the root node and a single destination node in the network topology; Retain the paths that satisfy the constraint conditions between the root node and the single destination node in the network topology.

3. The method according to claim 2, characterized in that, The traversing all paths between the root node and a single destination node in the network topology based on the constraint conditions includes: Using the backtracking method, based on the constraint conditions, traverse all paths between the root node and a single destination node in the network topology.

4. The method according to claim 1, characterized in that, The attribute information includes a target attribute, and the constructing of the target multicast tree based on the attribute information of each path in the target network topology graph includes: Traverse the target network topology graph, and construct the target multicast tree based on the first target path in which the target attribute value in at least one path between the root node and a single destination node satisfies the first preset condition; After the target multicast tree is completely constructed, if there is a second target path that satisfies the second preset condition in at least one path between the root node and the single node, replace the first target path with the second target path.

5. The method according to claim 4, characterized in that, The target attribute is a loss value, and the first preset condition is the minimum loss value.

6. The method according to claim 4, characterized in that, The second preset condition is: Among at least one path between the root node and the single node except the first target path, the path whose target attribute value satisfies the first preset condition, and after the second target path is replaced into the target multicast tree, the target attribute value of the target multicast tree is better than that before replacement.

7. The method according to claim 4, characterized in that, Traversing the target network topology graph, and constructing the target multicast tree based on a first target path in at least one path between the root node and a single destination node, where the target attribute value satisfies a first preset condition, includes: Constructing the target multicast tree based on a second target path in at least one path between the root node and a first destination node, where the target attribute value satisfies the first preset condition; Setting the target attribute value of the second target path in the target network topology graph to a preset value; Constructing the target multicast tree based on a third target path in at least one path between the root node and a second destination node, where the target attribute value satisfies the first preset condition; Setting the target attribute value of the third target path in the target network topology graph to a preset value.

8. The method according to claim 7, wherein, the preset value is 0.

9. The method according to any one of claims 1 to 8, wherein, the attribute information includes at least one of the following: delay value, loss value, bandwidth value.

10. A multicast tree construction device, wherein, it includes: A first acquisition module, configured to acquire network topology information and multicast tree construction requirement information, where the multicast tree construction requirement information is used to indicate the constraint conditions for constructing the multicast tree, the root node of the multicast tree, and at least one destination node of the multicast tree, and the network topology information is used to indicate the attribute information of the directed edges between any two nodes in the network topology; A second acquisition module, configured to acquire a target network topology graph based on the network topology information and the multicast tree construction requirement information; The target network topology graph includes at least one path between the root node and each destination node, and the attribute information of at least one path between the root node and each destination node; wherein, all paths in the target topology graph satisfy the constraint conditions; A construction module, configured to construct a target multicast tree based on the attribute information of each path in the target network topology graph.

11. The device according to claim 10, wherein, the second acquisition module is specifically configured to: Traverse all paths between the root node and a single destination node in the network topology based on the constraint conditions; Retain the paths that satisfy the constraint conditions between the root node and the single destination node in the network topology.

12. The device according to claim 11, wherein, the second acquisition module is specifically configured to: Adopt a backtracking method to traverse all paths between the root node and a single destination node in the network topology based on the constraint conditions.

13. The device according to claim 10, wherein, the attribute information includes a target attribute, and the construction module is specifically configured to: Traverse the target network topology graph, and construct the target multicast tree based on a first target path in at least one path between the root node and a single destination node, where the target attribute value satisfies a first preset condition; After the construction of the target multicast tree is completed, if there is a second target path that meets the second preset condition in at least one path between the root node and the single node, replace the first target path with the second target path.

14. The apparatus according to claim 13, wherein, the target attribute is a loss value, and the first preset condition is that the loss value is the smallest.

15. The apparatus according to claim 13, wherein, the second preset condition is: in at least one path between the root node and the single node, except for the first target path, a path whose target attribute value meets the first preset condition, and after the second target path is replaced into the target multicast tree, the target attribute value of the target multicast tree is better than that before replacement.

16. The apparatus according to claim 13, wherein, the construction module is specifically configured to: construct the target multicast tree based on a second target path whose target attribute value meets the first preset condition in at least one path between the root node and the first destination node; set the target attribute value of the second target path in the target network topology diagram to a preset value; construct the target multicast tree based on a third target path whose target attribute value meets the first preset condition in at least one path between the root node and the second destination node; set the target attribute value of the third target path in the target network topology diagram to a preset value.

17. A chip, wherein, it includes one or more interface circuits and one or more processors; the interface circuit is configured to receive a signal from a memory of an electronic device and send the signal to the processor, and the signal includes computer instructions stored in the memory; when the processor executes the computer instructions, the electronic device executes the method according to any one of claims 1-9.