Parameterized method for selecting root nodes of network subgraphs
By calculating the node overhead value of the network node and selecting the node with the lowest overhead value as the root node, the problem of difficulty in selecting root nodes in network subgraph construction in the prior art is solved, and network performance and construction efficiency are improved.
Patent Information
- Application Number
- CN202080102930.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-07-13
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2040-07-13
AI Technical Summary
In the prior art, when building network subgraphs, it is difficult to effectively select the root node, resulting in poor network performance, especially in networks with rich connections.
By obtaining the link overhead value of the node link in the network, selecting the weighted parameters, calculate the node overhead value of each node, and selecting the node with the lowest overhead value as the root node based on the node overhead value.
Improved the construction of network subgraphs, and by prioritizing the selection of better and more powerful nodes as root nodes, network performance is improved and computational complexity is reduced.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0001] The present invention relates generally to network topology, and more particularly to a method of selecting a root node for a subgraph of a given network topology. Background Art
[0002] A packet-switched computer network consists of multiple nodes interconnected by links. When user data traffic arrives at an edge node from a source user equipment (UE), the traffic is forwarded by that node and each subsequent node it passes through to zero or more directly connected nodes in the network. If the traffic arrives at one or more subsequent edge nodes, the traffic typically leaves the network for the destination UE. Control data can also be transmitted between nodes in the network. In a process known as "flooding," control data can be forwarded to reach every node in the network. Summary of the invention
[0003] A first aspect relates to a method for selecting a root node for a subgraph to be constructed of a network. The method comprises: obtaining link cost values of links connecting multiple nodes in the network; selecting a weighting parameter based at least in part on the link cost values; calculating a node cost value corresponding to each of the multiple nodes based on the link cost values and the weighting parameter; and selecting a node as a root node based on the node cost value, wherein the root node is selected from the multiple nodes.
[0004] Optionally, according to any of the above aspects, in another implementation of this aspect, selecting a node as a root node includes selecting at least one node with a lowest node cost value.
[0005] Optionally, according to any of the above aspects, in another implementation of this aspect, the weighted parameter is selected based on a first number of links connected to each node, and a second number of links having a lower link cost value than other links in the network.
[0006] Optionally, according to any of the above aspects, in another implementation of this aspect, the node cost value corresponding to each of the multiple nodes is calculated using the following formula:
[0007]
[0008] Among them, C1, C2, C3, ... represent link cost values, k represents a weighting parameter, and the number of links is the number of links connected to the node for calculating the node cost value.
[0009] Optionally, according to any of the above aspects, in another implementation of this aspect, C1, C2, C3, . . . are integers greater than zero.
[0010] Optionally, according to any of the above aspects, in another implementation of this aspect, selecting the weighting parameter includes setting k to a value greater than 1.
[0011] Optionally, according to any of the above aspects, in another implementation of this aspect, selecting the weighting parameter includes setting k to a value between 0 and 1.
[0012] Optionally, according to any of the above aspects, in another implementation of this aspect, selecting the weighting parameter includes setting k to a value equal to 1.
[0013] A second aspect relates to a network device for root node selection. The network device includes a storage device and a processor coupled to the storage device. The processor is used to execute instructions stored in the storage device to enable the network device to: obtain link cost values of links connecting multiple nodes in a network; select weighting parameters at least in part based on the link cost values; calculate a node cost value corresponding to each of the multiple nodes based on the link cost values and the weighting parameters; and select a node as a root node based on the node cost value, wherein the root node is selected from the multiple nodes.
[0014] Optionally, according to any of the above aspects, in another implementation of this aspect, the network device selects a node as a root node by selecting at least one node with a lowest node cost value.
[0015] Optionally, according to any of the above aspects, in another implementation of this aspect, the network device selects weighting parameters based on a first number of links connected to each node and a second number of links having lower link cost values than other links in the network.
[0016] Optionally, according to any of the above aspects, in another implementation of this aspect, the node cost value corresponding to each of the multiple nodes is calculated using the following formula:
[0017]
[0018] Among them, C1, C2, C3, ... represent link cost values, k represents a weighting parameter, and the number of links is the number of links connected to the node for calculating the node cost value.
[0019] Optionally, according to any of the above aspects, in another implementation of this aspect, C1, C2, C3, . . . are integers greater than zero.
[0020] Optionally, according to any of the above aspects, in another implementation of this aspect, the network device selects the weighting parameter by setting k to a value greater than 1.
[0021] Optionally, according to any of the above aspects, in another implementation manner of this aspect, the network device selects the weighting parameter by setting k to a value between 0 and 1.
[0022] Optionally, according to any of the above aspects, in another implementation of this aspect, the network device selects the weighting parameter by setting k to a value equal to 1.
[0023] A third aspect relates to a network device for root node selection. The network device includes: a component for obtaining link cost values of links connecting multiple nodes in a network; a component for selecting a weighting parameter based at least in part on the link cost value; a component for calculating a node cost value corresponding to each of the multiple nodes based on the link cost value and the weighting parameter; and a component for selecting a node as a root node based on the node cost value, wherein the root node is selected from the multiple nodes.
[0024] Optionally, according to any of the above aspects, in another implementation of this aspect, selecting a node as a root node includes selecting at least one node with a lowest node cost value.
[0025] Optionally, according to any of the above aspects, in another implementation of this aspect, the weighted parameter is selected based on a first number of links connected to each node, and a second number of links having a lower link cost value than other links in the network.
[0026] Optionally, according to any of the above aspects, in another implementation of the aspect, the node cost value used to calculate the node cost value corresponding to each of the multiple nodes is calculated using the following formula:
[0027]
[0028] Among them, C1, C2, C3, ... represent link cost values, k represents a weighting parameter, and the number of links is the number of links connected to the node for calculating the node cost value.
[0029] The disclosed technology improves the construction of network subgraphs by prioritizing nodes that are rich in connections and more powerful to select nodes as root nodes. By prioritizing nodes based on information local to each node (such as the total number of links connecting each node to other nodes and the cost values of these links), it can be beneficial to calculate the priority of a specific node, where the link cost value can be based on bandwidth. To this end, the root node of the subgraph to be constructed can be calculated by selecting such a node, where the cost value of the node has the minimum quotient of the harmonic mean of the link cost value divided by the number of links connected to the node. Although such calculations may be impractical for humans, one or more network components (such as nodes, routers, controllers, etc.) can be used to calculate such quotients without having to perform any type of difficult exponential or polynomial calculations on global metrics over the entire network / subgraph / path.
[0030] For clarity, any of the above implementations can be combined with any one or more of the above implementations to create new embodiments within the scope of the present invention. These embodiments and other features will be more clearly understood from the following detailed description in conjunction with the accompanying drawings and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] For a more complete understanding of the present invention, reference is made to the following brief description taken in conjunction with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
[0032] Figure 1A is a schematic diagram of a network according to an embodiment of the present invention.
[0033] Figures 1B to 1H Shown as Figure 1A The different stages of the subgraph of network construction in .
[0034] Figure 2 Is for Figure 1A Flowchart for selecting the root node of the subgraph to be constructed in the network.
[0035] Figure 3 is a graph showing node cost values calculated according to an embodiment of the present invention.
[0036] FIG. 4A to FIG. 4D as well as FIG. 5A to FIG. 5D Different stages of constructing a subgraph according to an embodiment of the present invention are shown.
[0037] Figure 6 is a schematic diagram of a network device according to an embodiment of the present invention.
[0038] Figure 7 It is a schematic diagram of an apparatus for implementing a root node selection and subgraph construction method according to an embodiment of the present invention. DETAILED DESCRIPTION
[0039] First, it should be understood that although illustrative implementations of one or more embodiments are provided below, the disclosed systems and / or methods may be implemented using any number of techniques, whether currently known or in existence. The present invention is in no way limited to the illustrative implementations, drawings, and techniques described below, including the exemplary designs and implementations illustrated and described herein, but may be modified within the scope of the appended claims and the full scope of their equivalents.
[0040] In some cases, a "tree" or "distribution tree" is used for the transmission of user data and / or control data. A tree is a subgraph that includes a non-cyclic subset of inter-node links that reach each node in the network. Typical examples of such trees / graphs include the "Spanning Tree Protocol" graph in bridged networks and the multicast data distribution tree in the Transparent Interconnection of Lots of Links (TRILL) specification. Unless otherwise specified, "tree", "distribution tree", "subgraph" and "graph" are used interchangeably in this document.
[0041] In other cases, graphs can be used to flood control information. Such graphs differ from acyclic trees in that they typically provide some path redundancy and therefore include cycles. For example, the graph can be constructed so that each node is at least doubly connected, that is, each node is connected to at least two links that are part of the flooding graph. Alternatively, the graph can be constructed so that each node is triply connected, or even with richer connections. Such a more richly connected graph can be constructed by first constructing an acyclic tree and then adding selected links to achieve the desired richness of connections. However, there may be some nodes in the network that are only individually connected or have limited connections, for which the desired richness of connections is unreachable.
[0042] Routing protocols specify the way routers communicate with each other, distributing information to enable routers to choose routes between any two nodes on a computer network. An interior gateway protocol (IGP) is a type of protocol used to exchange routing information between gateways (usually routers) within a network, which can be of any suitable type, such as an autonomous system (AS). This routing information can then be used to route network layer protocols such as internet protocol (IP) packets.
[0043] In IGP, there are different types of protocols, such as link-state routing protocols. Link-state routing protocols are executed by each switching node in the network (i.e., a node that is ready to forward data packets; in the Internet, these nodes are called routers). The basic concept of link-state routing is that each node builds a graph of its connections to the network in the form of a diagram, showing which nodes are connected to which other nodes. Each node then independently calculates the best (e.g., lowest cost value) logical path or best next-hop interface from it to each possible destination in the network. Each set of best paths will then form the routing table of each node. Examples of link-state routing protocols include the open shortest path first (OSPF) routing protocol and the intermediate system to intermediate system (IS-IS). OSPF is a standard routing protocol specified by the Internet Engineering Task Force (IETF).
[0044] OSPF uses link-state advertisements (LSAs) to exchange routing information between routers. IS-IS is a routing protocol standardized by the International Standards Organization (ISO). IS-IS uses link state protocol data units (LSPs) to exchange routing information between routers. For link state routing protocols such as OSPF or IS-IS, control data is typically flooded by each node that sends such data on many and / or all links, and the received copies of the control data are discarded. This method of flooding control data may be wasteful in some cases. For example, in a network with rich connections, nodes typically receive many copies of link state updates (perhaps even 100 or more). Therefore, a flooding graph that reduces redundant transmission of control information can be used.
[0045] The construction or derivation of a distribution tree, flooding graph, etc. is typically accomplished by the following steps: (a) selecting a root node from which to grow the tree / graph (the root node may be designated as layer zero); (b) selecting and adding links from the root node to directly connected nodes (these links and directly connected nodes may be designated as layer 1); (c) if there are any remaining nodes that are not part of the tree / graph, then selecting links that are not part of the tree from the layer one nodes to the nodes that are not part of the tree (these added links and nodes may be designated as layer two); (d) in each subsequent step, if there are any remaining nodes that are not yet part of the tree, then selecting links that are not part of the tree from the nodes of the layer added by the previous step (these added links and nodes may be designated as the next higher numbered layer, e.g., layer three, layer four, etc.). For some types of subgraphs, such as link-state flooding subgraphs, there may be one or more additional stages in which additional links are added to the subgraph. However, after the selection of the root node, the tree or subgraph may be constructed in other ways. For example, links may be added from remote nodes working toward the root, rather than from the root outward. Alternatively, these techniques may be combined, or the tree may be constructed in other ways using a selected root.
[0046] A tree can have multiple parallel physical links between a pair of nodes. When this condition is detected, (1) all links except one may be disabled for communication; (2) the multiple links may be treated as a single link and traffic distributed across them; or (3) some combination of (1) and (2), such as disabling some of the parallel physical links while distributing traffic across the links that are still enabled. In any case, all of these options can be treated as if a single logical link exists between the nodes.
[0047] Links have associated "cost values," and optimizing data paths through a network is generally considered to be minimizing the sum of the cost values associated with the links through which the data passes. Most commonly, the "cost value" of a link is based on the inverse of the speed of the link. For example, the cost value may be set to 20000000000000 (20 trillion) divided by the link speed in bits per second (bps). For another example, the cost value may be based on reliability, monetary cost, latency, security, or any combination of these or other factors. Traditionally, the cost value of a link is expressed as a positive integer. Cost values are typically symmetric, meaning that for a link connecting nodes N1 and N2, the cost value from N1 to N2 is the same as the cost value from N2 to N1. However, there may be asymmetric cost values where the cost value from N1 to N2 is different from the cost value from N2 to N1.
[0048] Different link cost values can be defined for different traffic flows. For example, traffic such as real-time gaming traffic may be very sensitive to latency, while bulk file transfers may be more sensitive to bandwidth or transport cost values. Therefore, different subgraphs can be constructed for such different traffic flows. For unicast routing applications, the goal is to minimize the cost value of the path (link sequence) that the data flow passes through.
[0049] In a given tree, every node should have the same understanding of the tree's topology so that when receiving traffic on a link, the node can know which other links to send data on. Building a subgraph of a network can be done in a distributed or centralized manner. For example, distributed subgraph construction involves each node having enough information to calculate how it fits into the subgraph. In contrast, centralized subgraph construction involves one or more centralized controllers processing information to build a subgraph and then sending that information to all nodes in the network.
[0050] Figure 1A 1 is a schematic diagram of a network 100 including a plurality of nodes n1, n2, ..., n30, which are interconnected by a plurality of links. In some embodiments, the links may have different bandwidths. For example, in Figure 1A , the links include low bandwidth links 102 and high bandwidth links 104, the latter represented by wider and thicker lines. Although four high bandwidth links (i.e., n1-n2, n1-n3, n1-n4, and n4-n6) are shown in this example, in other examples, network 100 may include more or fewer high bandwidth links.
[0051] Each node n1, n2...n30 in the network 100 should have the same understanding of the network topology so that when the node receives traffic on a link, the node can know which other links to send the data on. To this end, a subgraph of the network 100 can be constructed. Constructing the subgraph can be done in a distributed or centralized manner. For example, distributed subgraph construction involves configuring each node n1, n2...n30 with enough information to calculate how it fits into the subgraph. In contrast, centralized subgraph construction involves one or more centralized controllers processing the information of the constructed subgraph and then sending the information to all nodes n1, n2...n30 in the network 100.
[0052] Regardless of the approach chosen, building a subgraph for network 100 can begin with selecting a root node (e.g., n1, n2, ... n30) for which to build the subgraph. According to other methods, a common selection method involves manually configuring the priority of the node to be selected as the root node. Alternatively, the root node can be automatically selected based on an identifier, such as a serial number, an interface address (e.g., a media access control (MAC) or Internet protocol (IP) address of each node port), the "order" or "degree" of the node (i.e., the number of other nodes to which it is directly connected via a link), etc.
[0053] For example, the node with the lowest port MAC address or the node with the highest node order may be automatically selected as the root node. In some cases, when manual or automatic selection of a root node results in multiple root node candidates (e.g., if two or more nodes may have the same priority or order), a tie-breaking process may be implemented. In this case, the tie-breaking process may be based on an arbitrary unique number associated with the node (e.g., a built-in device serial number, the lowest or highest address of one of the node's ports, etc.).
[0054] Using examples from other methods, assume that the highest numbered node is automatically selected as the root node for building the subgraph of network 100. Further assume that: at each subsequent stage, the edge nodes of layer N are checked starting from the highest numbered layer N node to the lowest numbered layer N node; for each node checked, if each node with a direct link is not already part of the subgraph, a link is added to each node with a direct link so as to build the N+1 layer of the tree; the same process is repeated for the next higher numbered layer until all nodes n1, n2, ... n30 are part of the subgraph. Combined with Figures 1B to 1H The process of constructing a subgraph according to the above example is further described.
[0055] like Figure 1B As shown, because n30 is the highest numbered node in network 100, the process starts by automatically selecting node n30 as the root node. The selection of root node n30 completes stage zero of building the subgraph. It should be noted that in the first stage below, each node connected to the root node can be referred to as a "layer one node". Similarly, in the second stage, each node connected to the layer one node can be referred to as a "layer two node", and in the third stage, each node connected to the layer two node can be referred to as a "layer three node", and so on.
[0056] The first stage of building the subgraph includes connecting the root node n30 to one or more other nodes in the network 100 that are not yet part of the subgraph. In this example, the root node n30 has two available connections. Therefore, the root node n30 can be connected to two layer 1 nodes by adding a link from n30 to n25 and another link from n30 to n2 (the added links are connected via Figure 1C The addition of these two links completes the first phase.
[0057] The second phase involves connecting layer 1 nodes n25 and n2 to one or more layer 2 nodes. Figure 1D As shown in Figure 1, since n25 is a higher numbered node than n2, this phase begins by adding a link from n25 to the layer 2 node n1 before adding any links from n2. Since n25 has no other connecting links available, the second phase ends by adding 4 links from n2 to the layer 2 nodes n10, n11, n12, and n3, as shown in Figure 1. Figure 1E As shown. It should be noted that although a link from n2 to n1 is available, the link will not be added because n1 is already connected via a link from n25. In addition, adding a link from n2 to n1 will result in a loop (i.e., between n30, n25, n1, and n2), which may adversely affect data transmission within network 100 (e.g., when sending broadcast traffic or multicast data).
[0058] The third phase involves adding links from the layer 2 nodes (i.e., n1, n10, n11, n12, and n3) to one or more nodes that are not yet part of the subgraph. It should be noted that layer 2 nodes n10 and n11 have no additional links available. Although a link is available to connect n12 to n3, because n3 is already connected to n2, this link will not be added to the subgraph. Therefore, the third phase can ignore the layer 2 nodes n10, n11, and n12, and continue to add links from n1 and n3, starting with the latter, because n3 is a high-numbered node. As Figure 1F As shown, after adding 6 links from n3 to layer 3 nodes n13, n9, n8, n7, n6 and n4, and then adding 2 links from n1 to layer 3 nodes n24 and n5, the third stage is completed.
[0059] The fourth phase begins with the highest numbered layer three node n24, which has one available connection to n5. However, because n5 is already connected to n1, no link is added from n24 to n5. The second highest numbered layer three node is n13, but for similar reasons, no link is added from n13 to n9. The third highest numbered layer three node is n9, which has 8 available connections. Therefore, the fourth phase begins by adding 7 links from n9 to layer four nodes n14, n26, n27, n28, n29, n15, and n16, but because n8 is already connected to n3, the eighth link from n9 to n8 is not added. The next highest numbered layer three node is n8, but because n16 is already connected to n9, no link is added from n8 to n16. The next highest numbered layer three node is n7, which has two available connections. Here, a link is added from n7 to layer four node n17, but no link is added to n16. Next, add two links from n6 to layer 4 nodes n18 and n20, but do not add a link to n17. Figure 1G As shown, after adding two links from n5 to the fourth-layer nodes n23 and n21, the fourth stage is completed.
[0060] The fifth phase begins by adding a link from n23 to layer 5 node n22 and ends by adding a link from n20 to layer 5 node n19, thus completing the subgraph. Figure 1H As shown, the constructed subgraph represents a complete acyclic tree spanning all nodes n1, n2, ... n30 in the network 100. Although the final result depends on the characteristics of the network 100, it can be seen that constructing the subgraph according to other methods (e.g., using the highest numbered node as the root node) may not be optimal.
[0061] For example, Figure 1H The subgraph shown in does not use any high-bandwidth links (i.e., n2-n1, n1-n3, n1-n4, or n4-n6) in network 100. Additionally, all traffic between the upper right region of network 100 and the lower left region of network 100 must pass through root node n30 and multiple lower bandwidth links at the upper left corner of network 100. Furthermore, the paths between some edge nodes may include up to 9 hops (e.g., the path between edge nodes n22 and n14).
[0062] Improved subgraphs can be built using better connected and more powerful nodes as root nodes. Different applications may require different types of roots. For example, high-bandwidth user traffic with many sources and sinks requires a subgraph premised on nodes with high-bandwidth links. Heuristically, nodes with higher bandwidth links are also more capable and have lower latency than nodes with lower bandwidth links. Therefore, nodes with higher bandwidth links tend to have more powerful hardware (e.g., for handling shorter inter-packet arrival times) and may be more efficient in moving traffic from port to port. On the other hand, a flooding graph for lower bandwidth control traffic (e.g., link state information) requires nodes with many links in order to propagate the control information to many other nodes more quickly. Therefore, better connected and more powerful nodes may depend on the presence of low-cost value links and the number of links connected to the node.
[0063] Disclosed herein is a method for constructing a subgraph by prioritizing nodes based on information local to the nodes to select nodes as root nodes. The method involves prioritizing nodes using a "node cost value" for each node, wherein the node cost value is calculated as the harmonic mean of a parameterized power of a link cost value. The method also includes selecting a node as a root node based on a minimum node cost value, which may be based on a weighted parameter to take into account the number of low cost value links and connected links. The method can be implemented without calculating a global metric over the entire network / subgraph, which may require complex exponential or polynomial calculations on the number of nodes or the total number of links in the network. In addition, the method is applicable to routing applications, link state flooding graphs, multicast / broadcast distribution trees, and related standards. These features and others are described in detail below.
[0064] Figure 2 Shown as Figure 1A A method 200 for selecting a root node for a subgraph to be constructed of a network such as network 100 in the network 100. The operations in method 200 may be performed in the order shown, or in a different order. In addition, two or more operations of method 200 may be performed simultaneously, rather than in sequence. In some implementations, method 200 may be implemented using distributed tree computing, wherein each node (e.g., n1, n2, ... n30) selects the same root node and calculates the same subgraph of the network. In other implementations, method 200 may be implemented by one or more centralized controllers (e.g., software-defined networking (SDN) controllers), which are used to select root nodes, calculate subgraphs, and provide all relevant network information to each node in the network.
[0065] At block 202, method 200 obtains cost values for all links connected to nodes in a network, where it can be assumed that each node has one or more links to other nodes in the network. Figure 1A In the network 100, the cost value C of each link of a particular node can be expressed as C1, C2, ..., Cm, where m is the number of links connected to the node. Figure 1A In FIG. 1 , the cost values of the link connected to node n7 can be expressed as C1, C2, Cm, where Cm is C3 because node n7 is connected to three links. In some embodiments, the link cost value can be based on bandwidth, where the cost value C of a particular low-bandwidth or high-bandwidth link can be set to a value divided by the link speed, for example, C=2*10 13 In other implementations, the link cost value may be based on one or more factors, such as bandwidth, reliability, delay / latency, transmission cost value per bit, or some combination thereof.
[0066] At block 204, the method 200 selects a weighting parameter k to be used at block 206. Additional details regarding the selection of the weighting parameter k are discussed below in conjunction with Table 1. At block 206, the method 200 calculates a node cost value for each node n1, n2 ... n30 in the network. In one embodiment, the node cost value may be set to the quotient obtained by dividing the number of links connected to a particular node (e.g., n1, n2 ... n30) by the kth power of the harmonic mean of the cost values of the links connected to the node. For example, the node cost value may be mathematically derived by the following formula:
[0067]
[0068] The above formula can be rewritten using any of the following formulas, but each formula is otherwise identical to the above formula. Therefore, unless otherwise stated, these three formulas are collectively referred to as Equation 1.
[0069] or
[0070]
[0071] It should be noted that equation 1 assumes that the link cost value Cm is greater than zero. If the type of link cost value used allows a value of zero or negative, a constant can be added to ensure a positive cost value. As an example of using a non-negative integer cost value, assume that the link cost value is equal to zero, in which case the link cost value can be increased by 1 before using equation 1 to calculate the node cost value.
[0072] At block 208, method 200 selects a root node based on the node cost values calculated in block 206. In one embodiment, the node with the lowest node cost value is selected as the root node.
[0073] Table 1 below includes a mapping between values of k and the effects of choosing different values of k.
[0074] Table 1
[0075]
[0076] As can be seen from Table 1, setting k to zero has the effect of setting the node cost value of a particular node to the inverse of the number of links connected to that node, while setting k equal to 1 has the effect of giving equal weight to the number of nodes connected to that particular node and the presence of low-cost value links. In general, the latter option may be a reasonable choice when little or no information is known about the subgraph to be constructed. Otherwise, setting k to a value greater or less than 1 may be more reasonable depending on the intended use.
[0077] For example, when building a general multicast traffic distribution tree or a spanning tree that carries unicast and multicast traffic, traffic to and from the various branch ends of the tree will tend to be concentrated in the middle of the tree. Therefore, in this case, k can be set to a value greater than 1, because the cost value of the central link in the tree will affect most user traffic, so a larger weight should be given to the presence of low cost value links. On the other hand, in applications where there is limited control traffic flooding to nodes, having more abundant connections may have a higher priority (for example, to get control information to more nodes faster). Therefore, k can be set to a value less than 1, thereby giving more weight to selecting root nodes with more links connected to the root node.
[0078] Figure 3 Shown as Figure 1A 300 of node cost values calculated for nodes n1, n2, ..., n30 in network 100. The node cost values are calculated according to an example in which high-bandwidth links (i.e., n2-n1, n1-n3, n1-n4, and n4-n6) support speeds up to 100 megabits per second (mbps), while other low-bandwidth links support speeds up to 40 mbps. As shown in graph 300, high-bandwidth links (i.e., n2-n1, n1-n3, n1-n4, and n4-n6) support speeds up to 100 megabits per second (mbps), while other low-bandwidth links support speeds up to 40 mbps. HBW ) is set to 200000, and the low bandwidth link (Link LBW) is set to 500000. It should be understood that the high bandwidth link and / or the low bandwidth link have other cost values in other implementations. To demonstrate the effect of selecting the weighting parameter k at block 204 of method 200, node cost values are calculated using different values of k as inputs to the formula disclosed above. It should be understood that in other implementations, other values of k may be used as inputs.
[0079] The first column of the diagram 300 indicates the node numbers corresponding to nodes n1, n2, ... n30, where node number 1 corresponds to n1, node number 2 corresponds to n2, and so on. The second and third columns indicate the number of high-bandwidth and low-bandwidth links connected to each node. For example, the diagram 300 specifies that node n1 is connected to three high-bandwidth links (n1-n2, n1-n3, and n1-n4) and three low-bandwidth links (n1-n25, n1-n24, and n1-n5), as shown in FIG. Figure 1A The fourth, fifth, sixth and seventh columns represent the node cost values calculated using different values of k as input to Equation 1.
[0080] As described above, method 200 can select the node with the lowest node cost value as the root node. Therefore, when k is set to 0.0, node n9 can be selected as the root node because the corresponding node cost value is 0.10, which is the lowest node cost value calculated using Equation 1. It should be noted that there are more links (10) connected to node n9 than to any other node. Therefore, the node cost value of node n9 is consistent with the case of k=0 in Table 1, which indicates that the node cost value is set to the number of links connected to the node. The node with the second most connected links is node n3, with a total of 9 links connected to the node. Therefore, when k is set to 0.0 as an input to Equation 1 for node n3, node n3 has the second lowest node cost value (0.11). In contrast, the node cost value of nodes with only 1 connected link (e.g., n10 and n14) is equal to 1.0, which is 10 times higher than the lowest node cost value of node n9.
[0081] When k is set to 1.0, as the input of equation 1, there are two nodes (n1 and n3) that can be selected as root nodes because these nodes have the lowest node cost value (47619.05). In this case, a tie-breaker process can be implemented to select a node as the root node between nodes n1 and n3. For example, because n1 is a node with a lower number than n3, node n1 can be selected as the root node. Alternatively, because n3 is a node with a higher number than n1, node n3 can be selected as the root node. For another example, because n3 is connected to more links than n1, node n3 can be selected as the root node. For another example, if the number of high-bandwidth links is an important criterion, node n1 can be selected as the root node.
[0082] refer to FIG. 4A to FIG. 4D , use the combination Figures 1B to 1H Similar principles discussed above describe the process of constructing a subgraph of network 100, where the method 200 disclosed herein is used to select a root node. Additionally, the process will be described using an example where k is set to 0.8 as an input to Equation 1. As shown in graph 300, when k=0.8 is used as an input to Equation 1, node n3 has the lowest node cost value (3594.64). Therefore, in this case, method 200 can select node n3 as the root node, as shown in FIG. Figure 4A This completes Phase Zero of the process.
[0083] The first stage of building the subgraph includes connecting the root node n3 to one or more other nodes in the network 100 that are not yet part of the subgraph. In this example, the root node n3 has 9 available connections. Therefore, the root node n3 can connect to 9 layer 1 nodes to establish 8 low-bandwidth links (n3-n2, n3-12, n3-n13, n3-n9, n3-n8, n3-n7, n3-n6, and n3-n4) and 1 high-bandwidth link (n3-n1), as shown in FIG. Figure 4B shown.
[0084] The second phase involves connecting layer one nodes n2, n12, n13, n9, n8, n7, n6, n4, and n1 to one or more nodes, starting with node n13 because it is the highest numbered layer one node. Although node n13 has an available connection to node n9, a link from n13 to n9 is not added because n8 is already connected to node n3. The second highest numbered layer one node is n12, but no link is added for similar reasons. The third highest numbered layer one node is n9, which is connected to layer two nodes n14, n26, n27, n28, n29, n15, and n16, but not to nodes n8 or n13. The process continues in a similar manner to that previously described until the second phase is complete, with the results shown in Figure 1. Figure 4C shown.
[0085] Figure 4D The results of the third and final stage of the process are shown, where it can be seen that the constructed subgraph utilizes high bandwidth links (n3-n1) and has a shorter maximum path length between nodes than the previously described subgraphs constructed according to other methods. For example, Figure 4D The number of hops between edge nodes does not exceed 6 hops, and Figure 1H The number of hops between edge nodes does not exceed 10. Additionally, Figure 4D The subgraph in is constructed in only three phases, which means that it only takes 3 steps to reach each node in the network 100.
[0086] refer to FIG. 5A to FIG. 5D , use the combination Figures 1B to 1H Similar principles discussed above describe the process of constructing a subgraph of network 100, where the method 200 disclosed herein is used to select a root node. Additionally, the process will be described using an example where k is set to 1.25 as an input to Equation 1. As shown in graph 300, when k=1.25 is used as an input to Equation 1, node n1 has the lowest node cost value (1069584.62). Therefore, in this case, method 200 can select node n1 as the root node, as shown in FIG. Figure 5A This completes Phase Zero of the process.
[0087] The first stage of building the subgraph includes connecting the root node n3 to one or more other nodes in the network 100 that are not yet part of the subgraph. In this example, the root node n1 has 6 available connections. Therefore, the root node n1 can connect to 6 layer 1 nodes to establish 3 low-bandwidth links (n1-n25, n1-n24, and n1-n5) and 3 high-bandwidth links (n1-n2, n1-n3, and n1-n4), as shown in FIG. Figure 5B shown.
[0088] The second phase involves connecting layer one nodes n25, 24, n5, n2, n3, and n4 to one or more nodes, starting with node n25 because it is the highest numbered layer one node and ending with layer one node n2 because it is the lowest numbered layer one node. Figure 5C The results of the second phase are shown.
[0089] The third phase involves connecting the layer 2 nodes to one or more nodes, starting with node n30 because it is the highest numbered layer 2 node and ending with node n6 because it is the lowest numbered layer 2 node. Figure 5D The results of the third and final stage of the process are shown, where it can be seen that the constructed subgraph utilizes 4 high-bandwidth links (n1-n2, n1-n3, n1-4, and n4-n6) and has a shorter maximum path length between nodes than the previously described subgraphs constructed according to other methods. Therefore, setting k to a value greater than 1 (e.g., k=1.25) may be suitable for transmissions involving broadcast and multicast traffic. Figure 4D Like the subgraph in Figure 5D The number of hops between edge nodes in does not exceed 6 hops, and the subgraph is constructed in only three stages.
[0090] In some embodiments, the cost value of the links in the network can be based on bandwidth, where the bandwidth of the links from each node can be represented as B1, B2, B3, etc. In these embodiments, selecting a node as a root node can involve selecting a node with the highest total bandwidth. The bandwidth of each node can be calculated as follows: node bandwidth = B1 + B2 + B3 + ...
[0091] In an implementation where the bandwidth may not be directly known or obtained, but the links are known to have cost values C1, C2, C3, ..., the bandwidth may be estimated based on the link cost values as follows: node bandwidth = 1 / C1 + 1 / C2 + 1 / C3 + ...
[0092] In these embodiments and implementations, the node with the highest node bandwidth in the network may be selected as the root node. If there are two or more nodes in the network with the same highest node bandwidth, the node with the highest node bandwidth and the largest number of connected links may be selected as the root node. If there is still a tie, the node with the highest node bandwidth, the largest number of connected links, and the highest (or lowest) node identifier (ID) or address may be selected as the root node.
[0093] In some implementations, the cost values between links may be asymmetric, where the cost value from node one N1 to node two N2 is different from the cost value from node two N2 to node N1. In these implementations, the link cost value used in the root selection method disclosed herein may be derived from the two different directional cost values by calculating the arithmetic, geometric, or harmonic mean of these cost values, or selecting one in a systematic manner, such as selecting the highest or lowest of the two cost values, or any combination of these methods.
[0094] In some embodiments, the disclosed techniques may be used to construct multiple distribution trees and / or flooding graphs for a particular network. That is, the present invention is not limited to selecting a root node for a single tree / graph, because a network may include multiple trees / graphs at the same time, for example, multiple trees / graphs may be used simultaneously in a network. Therefore, multiple root nodes may be derived (e.g., using different values of k) to construct multiple trees / graphs, so that each tree / graph is customized for certain applications (e.g., different types of traffic). For example, when the network is used for high-bandwidth data transmission, root nodes may be derived to construct a tree / graph with links with low overhead values. For another example, when the network is used to send control data with limited traffic, root nodes may be derived to construct another tree / graph with many links (i.e., less emphasis on link overhead values) to quickly distribute these control data.
[0095] Figure 66 is a schematic diagram of a network device 600 according to an embodiment of the present invention. The network device 600 is suitable for implementing the components described herein. The network device 600 includes an inlet port 610 and a receiving unit (Rx) 620 for receiving data; a processor, a logic unit or a central processing unit (CPU) 630 for processing data; a transmitting unit (Tx) 640 and an outlet port 650 for transmitting data; and a memory 660 for storing data. The network device 600 may also include an optical-to-electrical (OE) component and an electrical-to-optical (EO) component coupled to the inlet port 610, the receiving unit 620, the transmitting unit 640 and the outlet port 650, which are used as outlets or inlets for optical or electrical signals.
[0096] In some embodiments, the network device 600 can be connected to one or more bidirectional links. In addition, at least one of the receiving units 620 can be integrated with at least one of the sending units 640. Additionally, or alternatively, at least one of the receiving units 620 can be replaced with at least one transceiver unit. Similarly, at least one of the sending units 640 can be replaced with at least one transceiver unit. In addition, at least one of the inlet ports 610 can be integrated with at least one of the outlet ports 650. Additionally, or alternatively, at least one of the inlet ports 620 can be replaced with at least one bidirectional port. Similarly, at least one of the outlet ports 640 can be replaced with at least one bidirectional port. Therefore, in these embodiments, the network device 600 can be used to send and receive data on one or more bidirectional links via the bidirectional ports 620 and / or 640.
[0097] The processor 630 can be implemented by hardware and software. The processor 630 can be implemented as one or more CPU chips, cores (e.g., multi-core processors), field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and digital signal processors (DSPs). The processor 630 can communicate with the input port 610, the receiving unit 620, the sending unit 640, the output port 650, and the memory 660. The processor 630 includes a root node selection and subgraph construction module 670. The module 670 can implement the embodiments disclosed above. For example, the module 670 can implement Figure 2The method 200 and the process disclosed herein. Therefore, the inclusion of module 670 provides substantial improvements to the functionality of device 600 and enables the transition of device 600 to different states. Alternatively, module 670 can be implemented as instructions stored in memory 660 and executed by processor 630.
[0098] The memory 660 includes one or more disks, tape drives, and solid-state hard disks, and can be used as an overflow data storage device to store programs when they are selected for execution, as well as to store instructions and data read during program execution. The memory 660 can be volatile and non-volatile, and can be a read-only memory (ROM), a random access memory (RAM), a ternary content-addressable memory (TCAM), and a static random-access memory (SRAM).
[0099] Figure 7 is a schematic diagram of an apparatus 700 for performing root node selection in a network according to various embodiments of the present invention. The apparatus 700 includes: a component 710 for obtaining link cost values of links connecting multiple nodes in the network; a component 720 for selecting a weighting parameter based at least in part on the link cost values; a component 730 for calculating a node cost value corresponding to each of the multiple nodes based on the link cost values and the weighting parameters; and a component 740 for selecting a node as a root node based on the node cost value, wherein the root node is selected from the multiple nodes.
[0100] In some embodiments, the network device 600 and / or the apparatus 700 may include a controller (e.g., a software defined network (SDN) controller) in a network (e.g., the network 100). In other embodiments, the network device 600 and / or the apparatus 700 may include other types of network components such as nodes and routers.
[0101] The disclosed embodiments may be systems, apparatus, methods, and / or computer program products at any possible level of integrated technical detail. The computer program product may include a computer-readable storage medium having computer-readable program instructions that cause a processor to perform various aspects of the present invention. The computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device.
[0102] Although the present invention provides several embodiments, it should be understood that the disclosed systems and methods may be embodied in other various specific forms without departing from the spirit or scope of the present invention. The present examples are considered to be illustrative rather than restrictive, and are not intended to be limited to the details given herein. For example, various elements or components may be combined or integrated in another system, or some features may be omitted or not implemented.
[0103] In addition, without departing from the scope of the present invention, the techniques, systems, subsystems and methods described and illustrated as discrete or separate in various embodiments may be combined or integrated with other systems, modules, techniques or methods. Other items shown or discussed as coupled or directly coupled or communicating with each other may also be indirectly coupled or communicated through an interface, device or intermediate component using electrical, mechanical or other means. Other examples of changes, substitutions, and alterations may be determined by those skilled in the art and may be exemplified without departing from the spirit and scope disclosed herein.
Claims
1. A method for selecting a root node for a subgraph to be constructed of a network, characterized in that: The method comprises: Obtaining link cost values of links connecting multiple nodes in the network; selecting a weighting parameter based at least in part on the link cost values, a first number of links connected to each node, and a second number of links having lower link cost values than other links in the network; Calculating a node cost value corresponding to each of the plurality of nodes according to the link cost value and the weight parameter; A node is selected as the root node according to the node cost value, wherein the root node is selected from the plurality of nodes.
2. The method according to claim 1, characterized in that: Selecting the node as the root node includes: selecting at least one node with a lowest node cost value.
3. The method according to claim 1 or 2, characterized in that: The node cost value used to calculate the node cost value corresponding to each node in the plurality of nodes is calculated using the following formula: Among them, C1, C2, ..., Cm represent link cost values, k represents the weighting parameter, and the number of links is the number of links connected to the node for calculating the node cost value.
4. The method according to claim 3, characterized in that C1, C2, ..., Cm are integers greater than zero.
5. The method according to claim 3, characterized in that: Selecting the weighting parameter includes setting k to a value greater than one.
6. The method according to claim 3, characterized in that Selecting the weighting parameter includes setting k to a value between 0 and 1.
7. The method according to claim 3, characterized in that Selecting the weighting parameter comprises setting k to a value equal to one.
8. A network device for root node selection, characterized in that: include: Storage devices; A processor is coupled to the storage device and is used to execute instructions on the storage device, so that when the instructions are executed, the network device: Obtain link cost values of links connecting multiple nodes in a network; selecting a weighting parameter based at least in part on the link cost values, a first number of links connected to each node, and a second number of links having lower link cost values than other links in the network; Calculating a node cost value corresponding to each of the plurality of nodes according to the link cost value and the weight parameter; A node is selected as a root node according to the node cost value, wherein the root node is selected from the plurality of nodes.
9. The network device according to claim 8, characterized in that: The network device selects the node as the root node by selecting at least one node having a lowest node cost value.
10. The network device according to claim 8 or 9, characterized in that: The node cost value used to calculate the node cost value corresponding to each node in the plurality of nodes is calculated using the following formula: Among them, C1, C2, ..., Cm represent link cost values, k represents the weighting parameter, and the number of links is the number of links connected to the node for calculating the node cost value.
11. The network device according to claim 10, characterized in that: C1, C2, ..., Cm are integers greater than zero.
12. The network device according to claim 10, characterized in that: The network device selects the weighting parameter by setting k to a value greater than one.
13. The network device according to claim 10, characterized in that: The network device selects the weighting parameter by setting k to a value between 0 and 1.
14. The network device according to claim 10, characterized in that: The network device selects the weighting parameter by setting k to a value equal to one.
15. A network device for root selection, characterized in that: include: A component for obtaining link cost values of links connecting multiple nodes in the network; means for selecting a weighting parameter based at least in part on the link cost values, a first number of links connected to each node, and a second number of links having link cost values lower than other links in the network; means for calculating a node cost value corresponding to each of the plurality of nodes based on the link cost value and the weighting parameter; means for selecting a node as a root node based on the node cost value, wherein the root node is selected from the plurality of nodes.
16. The network device according to claim 15, characterized in that: Selecting the node as the root node includes selecting at least one node having a lowest node cost value.
17. The network device according to claim 15 or 16, characterized in that: The node cost value used to calculate the node cost value corresponding to each node in the plurality of nodes is calculated using the following formula: Among them, C1, C2, ..., Cm represent link cost values, k represents the weighting parameter, and the number of links is the number of links connected to the node for calculating the node cost value.
Citation Information
Patent Citations
Primary / restoration path calculation in mesh networks based on multiple-cost criteria
US20040205239A1