A path computation method and related apparatus
By deriving nodes from leased network nodes and adding leased network links in the public internet topology, the problem that routing scheduling systems cannot take into account both leased networks and the public internet is solved, achieving flexibility and accuracy in data transmission paths and allowing for a choice between high performance and low cost.
Patent Information
- Application Number
- CN202211122638.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-15
- Publication Date
- 2025-11-07
- Estimated Expiration
- 2042-09-15
AI Technical Summary
Existing routing and scheduling systems cannot take into account both leased networks and the public internet during path calculation, forcing users to sacrifice either cost or network performance to obtain higher network performance or lower cost, without being able to make a trade-off between the two.
By deriving corresponding nodes for target nodes with leased network links in a public Internet-based topology graph, and adding connection edges representing leased network links between the derived nodes, a hybrid wide area network topology graph is constructed, enabling fine-grained control over data transmission paths.
It enables the simultaneous construction of public internet links and leased network links in the same topology map, avoiding ambiguity of dual links, ensuring the flexibility and accuracy of data transmission path selection, and enabling a trade-off between high network performance and low cost.
Smart Images

Figure CN117749689B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of wide area network traffic engineering technology, and in particular to a path calculation method and related apparatus. Background Technology
[0002] In the field of communications, the public internet refers to the internet that interconnects global network systems and provides best-effort network services. Generally, the public internet is composed of multiple Autonomous Systems (AS), and data transmission paths over the public internet typically traverse multiple ASes. Due to the complex commercial relationships involved in the interconnection between ASes, data transmission paths over the public internet are often influenced by these commercial relationships and are not necessarily the shortest paths in the communication network. For example, transmission between two nodes in the same region may be routed to another region, thus increasing end-to-end latency.
[0003] To overcome the inefficiencies of data transmission on the public internet, many network service providers (ISPs) establish private backbone networks by deploying edge sites or point-of-presence (PoPs) globally. This allows ISPs to build a new virtual overlay network, known as a hybrid wide area network (WAN), on top of both the private backbone and the public internet. Based on this hybrid WAN, ISPs can rely on routing and scheduling systems to select data transmission paths that meet user needs, such as high-performance data transmission paths based on private leased lines or low-cost data transmission paths based on the public internet.
[0004] However, current routing systems, once the network type is determined, can only construct data transmission paths based on either purely public internet or purely private leased lines, without the ability to exercise finer-grained control over these paths. Therefore, users often have to sacrifice either cost for higher network performance or vice versa, without being able to strike a balance between the two. Summary of the Invention
[0005] This application provides a path calculation method that can solve the problem that related technologies cannot take into account both leased networks and the public Internet during the path calculation process, enabling fine-grained control over data transmission paths and ensuring the flexibility of data transmission path selection.
[0006] This application provides a path calculation method applied to a controller in a network architecture. The controller is communicatively connected to multiple site devices in the network architecture, and the controller can be a device independent of the site devices, or it can be integrated into one or more site devices. Site devices are devices in the network architecture responsible for transmitting and forwarding data. The method includes: the controller acquiring a first topology graph, which includes multiple nodes and multiple connecting edges between the nodes. Each node in the first topology graph represents a site device in the network architecture, and the multiple edges in the first topology graph represent public internet links between the multiple nodes, i.e., public internet links between the multiple site devices.
[0007] Then, based on the leased network links between multiple target nodes, the controller adds multiple derived nodes and connecting edges between these derived nodes to the first topology graph, resulting in a second topology graph. In the first topology graph, the multiple nodes include multiple target nodes, and the newly added derived nodes correspond one-to-one with each target node. Each derived node has a connecting edge with its corresponding target node in the second network topology. The connecting edges between the derived nodes represent the leased network links between the target nodes. In other words, the controller can determine the multiple target nodes with leased network links in the first topology graph based on the acquired leased network links between the various site devices, thereby deriving a corresponding derived node for each target node and adding connecting edges between the target node and its corresponding derived node. Since each derived node corresponds to a target node, the controller can add connecting edges between multiple derived nodes based on the leased network links between the target nodes. The connecting edge between any two derived nodes represents the leased network link between the target nodes corresponding to those two derived nodes.
[0008] Finally, based on the weights of the connecting edges between nodes in the second topology graph, the path between the first node and the second node is determined. The weights of the connecting edges are determined based on the quality of the public internet link or leased network link between the nodes. The first node and the second node can be any two nodes in the second topology graph. For example, assuming the latency of the public internet link between two site devices is 100ms, the controller can assign a weight of 100 to the connecting edge between the nodes corresponding to these two site devices.
[0009] This scheme, based on a topology graph constructed using the public internet, derives corresponding nodes from target nodes with leased network links in the topology graph, and adds connecting edges representing leased network links between the derived nodes. This allows for the simultaneous construction of both public internet links and leased network links within the same topology graph. By using node derivation, this scheme avoids ambiguity caused by constructing dual links in the topology graph, solves the problem of related technologies being unable to consider both leased networks and the public internet during path calculation, and enables fine-grained control over data transmission paths, ensuring flexibility in data transmission path selection.
[0010] In one possible implementation, the path between the first node and the second node includes connection edges representing public internet links and / or connection edges representing leased network links. That is, for site device 1 represented by the first node and site device 2 represented by the second node, the data transmission path between site device 1 and site device 2 may include only a public internet link, or only a leased network link; the data transmission path between site device 1 and site device 2 may also include both a public internet link and a leased network link.
[0011] In this scheme, corresponding nodes are derived for target nodes that simultaneously possess both public internet links and leased line links. Connecting edges representing leased line network links are added between the derived nodes, thus enabling the simultaneous construction of public internet links and leased line network links within the same topology graph. By deriving nodes, ambiguity caused by constructing dual links between two nodes in the topology graph is avoided, and the optimal path is selected between the leased line network and the public internet, ensuring the accuracy and flexibility of data transmission path selection. In other words, in some cases, compared to related technologies that only use leased line network links for data transmission, this scheme, based on the constructed topology graph, achieves better transmission quality and lower transmission costs by using a hybrid approach of leased line network links and public internet links for data transmission.
[0012] In one possible implementation, the controller can determine the path between the first and second nodes using a shortest path algorithm based on the weights of the connecting edges between nodes in the second topology graph. The goal is to minimize the sum of the weights of the connecting edges along this path, meaning the path determined by the controller is the optimal path. In this way, since the nodes in the second topology graph correspond to site devices in the network architecture, and the connecting edges correspond to links between these site devices, the controller can determine the optimal data transmission path between any two site devices in the network architecture.
[0013] In one possible implementation, the weight of the connection edge between the derived node and the target node in the second topology graph is a preset threshold. This preset threshold can be determined based on the cost of switching links for the site equipment in actual applications, for example, a preset threshold of 0, 0.5, 1, or 2.
[0014] In one possible implementation, after the controller determines the path between the first node and the second node, the controller sends the path between the first node and the second node to multiple target site devices, where the multiple target site devices are the site devices represented by the multiple nodes traversed by the path. That is, after determining the data transmission path between the source site device and the destination site device, the controller can send this data transmission path to each site device along the data transmission path, so that these site devices can transmit data according to the instructions of the data transmission path when they receive data from the source site device to the destination site device.
[0015] In one possible implementation, specifically, the controller receives multiple link status messages sent by multiple site devices. These link status messages indicate the public internet link status and leased line link status between the multiple site devices. Based on the multiple link status messages, the controller constructs a first topology graph and obtains the leased network link status between multiple target nodes. The multiple nodes in the first topology graph represent multiple site devices. Specifically, the link status messages sent by the multiple target site devices indicate the leased network links between them, thus enabling the controller to obtain the leased network links between the multiple target nodes corresponding to the multiple target site devices. Then, based on the obtained leased network links between the multiple target nodes, the controller can further add multiple derived nodes and connection edges between the derived nodes to the first topology graph to obtain a second topology graph.
[0016] Specifically, in constructing the first topology graph, the controller can use site devices in the network architecture as nodes and links between site devices as connecting edges to construct a first topology graph including multiple nodes and multiple connecting edges. That is, multiple nodes in the first topology graph are used to represent multiple site devices that send link status messages to the controller, each node is used to uniquely represent a site device, and the edge between two nodes represents the public Internet link between the site devices corresponding to the two nodes.
[0017] In one possible implementation, since the link quality between site devices in the network architecture is easily affected by the physical environment or the amount of data transmitted between site devices, each site device can periodically measure the link quality between itself and other site devices and report the periodically measured link quality back to the controller. This allows the controller to update the topology map and replan paths in real time. Specifically, the controller can receive a link quality message sent by a first site device, which indicates the link quality between the first and second site devices. Then, based on the link quality message, the controller updates the weights of the connection edges between a third node and a fourth node in the second topology map, where the third node represents the first site device and the fourth node represents the second site device. Furthermore, after the weights of the connection edges in the second topology map change, the controller can recalculate the path between the first and second nodes to ensure that the path between the first and second nodes is the optimal path in real time.
[0018] A second aspect of this application provides a path calculation apparatus, comprising: an acquisition module for acquiring a first topology graph, the first topology graph including multiple nodes in a network and multiple connecting edges between the multiple nodes, the multiple edges representing public internet links between the multiple nodes; a processing module for adding multiple derived nodes and connecting edges between the multiple derived nodes to the first topology graph based on leased network links between multiple target nodes, to obtain a second topology graph, wherein the multiple nodes include multiple target nodes, the multiple derived nodes correspond one-to-one with the multiple target nodes, and each derived node has a connecting edge with a corresponding target node in the second network topology, the connecting edges between the multiple derived nodes representing leased network links between the multiple target nodes; the processing module is further configured to determine a path between a first node and a second node based on the weights corresponding to the connecting edges between each node in the second topology graph, wherein the weights are determined based on the quality of the public internet link or leased network link between the nodes, and the first node and the second node are any two nodes in the second topology graph.
[0019] In one possible implementation, the path between the first node and the second node includes connecting edges representing public internet links and / or connecting edges representing leased network links.
[0020] In one possible implementation, the processing module is specifically used to determine the path between the first node and the second node using a shortest path algorithm based on the weights corresponding to the connecting edges between each node in the second topology graph, so as to minimize the sum of the weights corresponding to the connecting edges on the path between the first node and the second node.
[0021] In one possible implementation, the weight of the connecting edge between the derived node and the target node in the second topology graph is a preset threshold.
[0022] In one possible implementation, the apparatus further includes a sending module for sending a path between a first node and a second node to a plurality of target site devices, wherein the plurality of target site devices are site devices represented by the plurality of nodes through which the path passes.
[0023] In one possible implementation, the acquisition module is further configured to receive multiple link status messages sent by multiple site devices, the multiple link status messages being used to indicate the public Internet link status and leased line link status between the multiple site devices; the processing module is further configured to construct a first topology map based on the multiple link status messages and acquire the leased network link status between the multiple target nodes, the multiple nodes in the first topology map being used to represent multiple site devices.
[0024] In one possible implementation, the apparatus further includes: a sending module for receiving a link quality message sent by a first site device, the link quality message indicating the link quality between the first site device and the second site device; and a processing module for updating the weight of the connection edge between a third node and a fourth node in the second topology graph according to the link quality message, the third node representing the first site device and the fourth node representing the second site device.
[0025] A third aspect of this application provides a network device comprising: a memory and a processor; the memory storing code, and the processor being configured to execute the code, wherein when the code is executed, the network device performs a method as described in any of the implementations of the first aspect.
[0026] The fourth aspect of this application provides a network system comprising: a network device as described in the third aspect and a plurality of site devices.
[0027] The fifth aspect of this application provides a computer-readable storage medium storing a computer program that, when run on a computer, causes the computer to perform a method as described in any of the implementations of the first aspect.
[0028] The sixth aspect of this application provides a computer program product that, when run on a computer, causes the computer to perform a method as described in any of the implementations in the first aspect.
[0029] A seventh aspect of this application provides a chip including one or more processors. Part or all of the processors are configured to read and execute a computer program stored in a memory to perform the method in any implementation of the first aspect described above.
[0030] Optionally, the chip includes a memory, which is connected to the processor via a circuit or wire. Optionally, the chip also includes a communication interface, to which the processor is connected. The communication interface is used to receive data and / or information that needs to be processed. The processor obtains the data and / or information from the communication interface, processes the data and / or information, and outputs the processing result through the communication interface. The communication interface can be an input / output interface. The method provided in this application can be implemented by a single chip or by multiple chips working together.
[0031] The technical effects of any of the design methods in aspects two through seven can be found in the technical effects of different implementation methods in aspect one above, and will not be repeated here. Attached Figure Description
[0032] Figure 1 A schematic diagram of a hybrid wide area network based on the public Internet and a private backbone network provided for an embodiment of this application;
[0033] Figure 2 A schematic diagram of the network architecture used in a path calculation method provided in an embodiment of this application;
[0034] Figure 3 A flowchart illustrating a path calculation method provided in an embodiment of this application;
[0035] Figure 4 A schematic diagram illustrating the generation of a first topology graph and a second topology graph, provided as an embodiment of this application;
[0036] Figure 5 A schematic diagram illustrating path determination based on a second topology graph, provided as an embodiment of this application;
[0037] Figure 6 A schematic diagram of a network architecture provided in an embodiment of this application;
[0038] Figure 7 This is another schematic diagram of a path calculation method provided in an embodiment of this application;
[0039] Figure 8 A schematic diagram of a network topology provided for an embodiment of this application;
[0040] Figure 9 A schematic diagram illustrating an optimal path including a public internet link and a leased network link, provided for embodiments of this application;
[0041] Figure 10 A schematic diagram illustrating an optimal path that includes only public internet links, provided for an embodiment of this application;
[0042] Figure 11 A cost comparison diagram provided for an embodiment of this application;
[0043] Figure 12 Another cost comparison diagram provided for embodiments of this application;
[0044] Figure 13 This is a schematic diagram of the structure of a path calculation device 1300 provided in an embodiment of this application;
[0045] Figure 14 This is a schematic diagram of the structure of a network device 1400 provided in an embodiment of this application;
[0046] Figure 15 This is a schematic diagram of the structure of a network device 1500 provided in an embodiment of this application. Detailed Implementation
[0047] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application are described below with reference to the accompanying drawings. Obviously, the described embodiments are merely some, and not all, of the embodiments of this application. Those skilled in the art will understand that, with the emergence of new application scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.
[0048] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such descriptions can be used interchangeably where appropriate to allow embodiments to be implemented in a sequence other than that illustrated or described in this application. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or device that includes a series of steps or modules is not necessarily limited to those explicitly listed, but may include other steps or modules not explicitly listed or inherent to such processes, methods, products, or devices. The naming or numbering of steps appearing in this application does not imply that the steps in the method flow must be performed in the chronological / logical order indicated by the naming or numbering. The execution order of named or numbered process steps can be changed according to the desired technical purpose, as long as the same or similar technical effect is achieved. The division of units in this application is a logical division. In practical applications, there may be other division methods. For example, multiple units may be combined or integrated into another system, or some features may be ignored or not executed. In addition, the shown or discussed mutual coupling, direct coupling, or communication connection may be through some interface, and the indirect coupling or communication connection between units may be electrical or other similar forms, none of which are limited in this application. Furthermore, the units or sub-units described as separate components may or may not be physically separated, may or may not be physical units, or may be distributed among multiple circuit units. Some or all of the units can be selected to achieve the purpose of the solution in this application according to actual needs.
[0049] For ease of understanding, the technical terms involved in the embodiments of this application will be introduced below.
[0050] (1) Public Internet
[0051] The public internet, often simply called the public network, refers to the internet, which interconnects the global network system. It typically includes internet links deployed by multiple service providers. The network quality of the public internet is prone to fluctuations due to cross-ISP (Internet Service Provider) or different countries / regions, and the Quality of Service (QoS) of the public internet is generally worse than that of leased networks.
[0052] (2) Leased Line Network
[0053] A leased network, also known as a private network, refers to an independent network transmission channel provided to a specific organization, such as a dedicated network cable. Specifically, leased networks rely on global backbone networks and broadband metropolitan area network resources to provide dedicated access by connecting to private networks, meeting users' needs for internet access or connecting to their own local area networks. The advantages of leased networks include high security, reliable data transmission, and guaranteed QoS. However, the rental price of leased networks is relatively high, and they require professional management.
[0054] Generally, leased network infrastructures primarily consist of two types of channels: 1. Physical Dedicated Channel (PDC): A PDC involves laying a dedicated line between the service provider and the user. This line is exclusively for the user's use, and other data cannot access it. In contrast, a regular line allows multiple users to share the channel. 2. Virtual Private Channel (VPS): A VPS reserves a certain amount of bandwidth for the user on a regular channel, allowing the user to exclusively use this bandwidth. It's like opening another channel on a public channel, accessible only to the designated user. Furthermore, the user's data is encrypted to ensure reliability and security.
[0055] (3) Hybrid Wide Area Network
[0056] A hybrid wide area network (WAN) is a WAN composed of both the public internet and leased networks. Users can flexibly choose between the public internet or leased networks to build data transmission paths based on their needs (e.g., high service quality or low cost).
[0057] (4) Routing
[0058] A route is an end-to-end path from a source address to a destination address. Routes are typically planned in advance by controllers or routers based on the overall network topology.
[0059] (5) Border Gateway Protocol (BGP)
[0060] BGP is a routing protocol for autonomous systems that runs on the Transmission Control Protocol (TCP). BGP is the only protocol designed to handle networks the size of the Internet and is also the only protocol capable of properly handling multiple connections between unrelated routing domains.
[0061] Since its inception, the public internet has primarily aimed to ensure connectivity between different networks. Because the public internet can only provide best-effort service, data transmission paths based on it typically have poor performance, exhibiting high latency and low throughput. These paths often traverse multiple Autonomous Systems (AS), and each AS has limited visibility and control over other ASs along the same data transmission path. Current routing between ASs relies mainly on the Border Gateway Protocol (BGP), which cannot effectively utilize available alternative routes within ASs, and its routing decisions are not influenced by network performance. Furthermore, complex business relationships exist between different ASs, and the lack of coordination between ASs when determining routes using BGP can lead to latency inflation and network congestion. For example, transmission between two Asian nodes might detour through Europe, undoubtedly increasing end-to-end latency.
[0062] To overcome the inefficiency of data transmission on the public internet, many network service providers (ISPs) establish private backbone networks by deploying edge sites or Points of Presence (PoPs) globally. For example, ISP A has built its own global data center interconnection backbone and a backbone network for internet users; ISP B has built its own global backbone network, enabling interconnection between data centers, between PoP nodes, and between PoP nodes and data centers; ISP C has designed a backbone network connecting data centers and deployed PoP nodes at the edge to establish an edge network. In this way, ISPs can build a new layer of virtual overlay network on top of their private backbone and the public internet, called a hybrid WAN. Based on the hybrid WAN, ISPs can rely on routing and scheduling systems to select data transmission paths that meet user needs, such as high-performance data transmission paths based on private leased lines or low-cost data transmission paths based on the public internet. Figure 1 As shown, Figure 1 This is a schematic diagram illustrating a hybrid wide area network (WAN) constructed based on the public internet and a private backbone network, as provided in an embodiment of this application. Figure 1 In this system, the source and destination network devices are connected by a hybrid wide area network (WAN) consisting of the public internet and leased lines. The routing and scheduling system established by the network service provider can select the data transmission path from the source to the destination network device based on user needs. For example, the network service provider can choose a data transmission path based on the public internet to reduce data transmission costs; or, for instance, it can choose a data transmission path based on a leased line to improve data transmission performance.
[0063] With the development of network technology, the operational quality of the public internet has significantly improved (packet loss rate below 5%), making it capable of carrying enterprise traffic. On the other hand, enterprises' bandwidth demands for wide area networks (WANs) are constantly increasing, while leased networks, such as Virtual Private Networks (VPNs) based on Multi-Protocol Label Switching (MPLS), are prohibitively expensive. For the same bandwidth, the price of an MPLS-based VPN is approximately 10 to 100 times that of the public internet. For these reasons, more and more enterprises are willing to use the public internet to carry some of their traffic. Therefore, some WAN service providers have proposed hybrid Software-Defined Wide Area Networks (SD-WAN).
[0064] Hybrid SD-WAN routing and scheduling functions are mainly divided into two types: policy-based routing control and performance-based routing control. Policy-based routing control refers to using the public internet to carry low-priority or less network-quality-critical application traffic, while high-priority or high-quality application traffic is still carried using dedicated networks. Performance-based routing control involves adding performance measurement functions to network devices to direct as much traffic as possible that meets performance requirements to the public internet. For example, under the premise of meeting performance requirements, users can direct network performance-sensitive traffic such as real-time voice to the public internet.
[0065] However, current routing systems, once the network type is determined, can only construct data transmission paths based on either purely public internet or purely private leased lines, lacking finer-grained control over these paths. Generally, users don't necessarily expect the highest possible network performance; they only need to meet certain Service Level Agreement (SLA) requirements. For example, cloud gaming latency needs to be below 100ms, while real-time voice communication needs to be below 200ms. Existing technologies can only select the optimal or lowest-cost transmission path through the routing system, failing to achieve fine-grained routing control—that is, minimizing cost while achieving acceptable performance. Therefore, users often have to sacrifice either cost for higher network performance or vice versa, unable to strike a balance between high performance and low cost.
[0066] In view of this, this application provides a path calculation method. Based on a topology graph constructed using the public internet, corresponding nodes are derived from target nodes with leased network links in the topology graph, and connecting edges representing leased network links are added between the derived nodes. This allows for the simultaneous construction of public internet links and leased network links within the same topology graph. By deriving nodes, this solution avoids ambiguity caused by constructing dual links in the topology graph, solves the problem that related technologies cannot simultaneously consider both leased networks and the public internet during path calculation, and enables fine-grained control over data transmission paths, ensuring flexibility in data transmission path selection.
[0067] Specifically, the path calculation method provided in this application can be applied to any network transmission scenario, including but not limited to wide area networks (WANs) between data centers, WANs for Internet users, WANs of network service providers, and vendor-built overlay WANs, etc. Network link types include the public Internet and leased networks, where leased network types include, but are not limited to, MPLS-based VPN leased lines, fiber optic leased lines, international leased lines (International Private Leased Circuit, IPLC), and global private leased circuits (GPLC), etc. In general, the path calculation method provided in this embodiment is not limited to specific services, network service providers, network link types, or communication protocols.
[0068] Please see Figure 2 , Figure 2 This is a schematic diagram of the network architecture used in a path calculation method provided in an embodiment of this application. Figure 2 As shown, the network architecture includes a controller and multiple site devices (site device 1-site device 6). The controller has communication connections with each of the site devices. Adjacent site devices establish communication connections via the public internet or a leased network. For example, site device 1 communicates with site devices 2 and 4, site device 2 communicates with site device 3, site device 3 communicates with site devices 5 and 6, and site device 4 communicates with site device 5.
[0069] During network architecture operation, the controller collects link information reported by each of the multiple site devices to determine the links connecting the various site devices in the network architecture. Each of the multiple site devices periodically measures the quality of its communication links with other site devices and reports the measured link quality back to the controller.
[0070] Based on the collected links and link quality between various site devices, the controller uses the path calculation method provided in the embodiments of this application to calculate the optimal path between two site devices and sends the calculated optimal path to the corresponding site devices.
[0071] exist Figure 2 In this context, controllers and site devices can be physical devices within a communication network. For example, a controller can be a server, and a site device can be a switch, router, gateway, or hub, etc., within a wide area network. A controller can also be a software entity or software module; that is, a controller can be deployed on physical devices (such as servers, switches, routers, gateways, or hubs) within a communication network.
[0072] Optional, Figure 2 The controller shown is independent of the site devices; that is, the controller is used to interact with the site devices but not to perform data forwarding. In some embodiments, the controller may also be integrated into one or more site devices, meaning the site devices simultaneously possess the functions of both controllers and site devices. A site device with an integrated controller can be responsible for both data forwarding and interacting with other site devices to determine data transmission paths.
[0073] Please see Figure 3 , Figure 3 This is a flowchart illustrating a path calculation method provided in an embodiment of this application. Figure 3 As shown, the path calculation method includes the following steps 301-303.
[0074] Step 301: Obtain a first topology graph. The first topology graph includes multiple nodes in the network and multiple connecting edges between the multiple nodes. The multiple edges are used to represent public Internet links between the multiple nodes.
[0075] The path calculation method provided in this embodiment can be applied to... Figure 2 The controller shown is used to calculate the data transmission paths between site devices. Before calculating the data transmission paths between site devices, the controller can obtain the links established between each site device, and thus construct a first topology map based on the links between each site device.
[0076] For example, the controller can receive multiple link status messages sent by multiple site devices and construct a first topology map based on the multiple link status messages.
[0077] In this network architecture, each site device can send one or more link status messages to the controller. Each link status message indicates the link status between that site device and other site devices. The link status indicated by the link status message can include information such as the ingress site, egress site, link validity, and link type. Therefore, the controller can use multiple link status messages received from multiple site devices to indicate the public internet link status between those site devices. For example, as described above... Figure 2 Taking the network architecture shown as an example, the link status message sent by site device 1 to the controller can indicate that there is a public Internet link between site device 1 and site device 2 and site device 4, and that the public Internet link is valid.
[0078] Based on the link status messages sent by the site devices, the controller can determine the link connection relationships between various site devices in the network architecture, thereby constructing a first topology graph. Specifically, the controller can construct a first topology graph with multiple nodes and multiple connecting edges, using site devices as nodes and the links between site devices as connecting edges. That is, the multiple nodes in the first topology graph are used to represent multiple site devices that send link status messages to the controller, each node uniquely represents a site device, and the edge between two nodes represents the public Internet link between the site devices corresponding to the two nodes.
[0079] Optionally, besides the controller generating the first topology map based on the links between site devices, the first topology map can also be pre-installed in the controller, or the controller can receive the first topology map from other network devices. For example, after the administrator in the network architecture constructs the first topology map, they can pre-deploy the first topology map in the controller; or, after other devices in the network architecture generate the first topology map, they can send the first topology map to the controller.
[0080] In general, this embodiment does not limit the specific method by which the controller obtains the first topology map.
[0081] Step 302: Based on the leased network links between multiple target nodes, add multiple derived nodes and connection edges between the multiple derived nodes to the first topology graph to obtain a second topology graph. The multiple nodes include multiple target nodes, and the multiple derived nodes correspond one-to-one with the multiple target nodes. Each derived node has a connection edge with the corresponding target node in the second network topology. The connection edges between the multiple derived nodes are used to represent the leased network links between the multiple target nodes.
[0082] In this embodiment, in addition to obtaining the connection relationships of public internet links between various site devices, the controller can also obtain the connection relationships of leased network links between various site devices. For example, the controller can receive link status messages sent by site devices to obtain the leased network links between site devices.
[0083] Generally, within the same network architecture, the coverage of public internet links is greater than that of leased network links. That is, for multiple site devices in a network architecture, each site device may have a public internet link with other site devices, but only some site devices in the network architecture may have leased network links with other site devices.
[0084] Since the first topology graph actually only records the connection relationships of public internet links between multiple nodes, the controller can add multiple derived nodes to the first topology graph based on the obtained connection relationships of leased network links between various site devices. These derived nodes have a one-to-one correspondence with multiple target nodes in the first topology graph, and the site devices represented by the target nodes are connected to leased network links. In other words, the controller can determine multiple target nodes with leased network links in the first topology graph based on the obtained leased network links between various site devices, thereby deriving a corresponding derived node for each target node and adding connecting edges between the target node and its corresponding derived node. Since each derived node corresponds to a target node, the controller can add connecting edges between multiple derived nodes based on the leased network links between target nodes. The connecting edge between any two derived nodes represents the leased network link between the target nodes corresponding to these two derived nodes.
[0085] For example, please refer to Figure 4 , Figure 4 This is a schematic diagram illustrating the generation of a first topology graph and a second topology graph, provided as an embodiment of this application. Figure 4 As shown, the actual network architecture includes site devices 1 to 6. Site device 1 is connected to site device 2 and site device 4 via a public internet link. Site device 3 is connected to site device 2 and site device 6 via a public internet link. Site device 5 is connected to site device 4 and site device 6 via a public internet link. Furthermore, site device 5 is also connected to site device 1 and site device 4 via a leased network link. Site device 3 is also connected to site device 2 and site device 6 via a leased network link.
[0086] based on Figure 4 The network architecture shown allows the controller to construct the first topology map. For example... Figure 4The first topology diagram is shown in the figure. The first topology diagram includes nodes V1-V6 corresponding to site devices 1-6 respectively. Nodes V1, V2, V3 and V6 are connected in sequence, as are nodes V4, V5 and V6. The connecting edges between nodes in the first topology diagram are used to represent the public Internet links between the site devices corresponding to the nodes.
[0087] Based on the first topology diagram, and using site equipment with dedicated network links in the network structure, the controller can add derived nodes and connecting edges to the corresponding nodes in the first topology diagram to obtain a second topology diagram. For example... Figure 4 As shown in the second topology diagram, node V1 has a corresponding derived node V1', node V2 has a corresponding derived node V2', node V3 has a corresponding derived node V3', node V4 has a corresponding derived node V4', node V5 has a corresponding derived node V5', and node V6 has a corresponding derived node V6'. Furthermore, each node has a connection edge with its corresponding derived node; for example, node V1 has a connection edge with its derived nodes. In addition, derived nodes also have connection edges to represent leased network links between their corresponding nodes. For example, derived node V5' has a connection edge with derived nodes V1' and V4' to represent a leased network link between site device 5 and site devices 1 and 4; derived node V3' has a connection edge with derived nodes V2' and V6' to represent a leased network link between site device 3 and site devices 2 and 6.
[0088] Step 303: Based on the weights of the connecting edges between each node in the second topology graph, determine the path between the first node and the second node, where the weights are determined based on the quality of the public Internet link or leased network link between the nodes, and the first node and the second node are any two nodes in the second topology graph.
[0089] In this embodiment, after obtaining the second topology graph, the controller can acquire the link quality between the site devices represented by each node in the second topology graph. For example, the public internet link quality between site devices corresponding to non-derived nodes or the leased network link quality between site devices corresponding to derived nodes. Thus, the controller can assign corresponding weights to the connection edges between nodes in the second topology graph based on the link quality between the site devices corresponding to the nodes, thereby obtaining the weights corresponding to the connection edges between each node in the second topology graph.
[0090] For example, assuming the latency of the public internet link between two site devices is 100ms, the controller can assign a weight of 100 to the connection edge between the nodes corresponding to these two site devices; assuming the latency of the leased network link between two site devices is 20ms, the controller can assign a weight of 20 to the connection edge between the derived nodes corresponding to these two site devices.
[0091] Furthermore, since the derived nodes in the second topology are derived from the target node, the connection edges between the derived nodes and the target node do not have corresponding links in the network architecture. In other words, it is impossible to assign weights to the connection edges between the derived nodes and the target node based on link quality.
[0092] Optionally, since in practical applications, the connection edge between the derived node and the target node is used to represent the forwarding of data received by the site device from the public Internet link through the leased network link, the weight of the connection edge between the derived node and the target node can be understood as the cost of the site device switching links. Therefore, the weight of the connection edge between the derived node and the target node in the second topology graph can be set to a preset threshold. The preset threshold can be determined based on the cost of the site device switching links in practical applications, for example, a preset threshold of 0, 0.5, 1, or 2. This embodiment does not limit the specific value of the preset threshold.
[0093] Based on the weights of the connecting edges between nodes in the second topology graph, the controller can determine the path between any two nodes in the second topology graph. For example, the controller can determine the path between the first node and the second node using a shortest path algorithm based on the weights of the connecting edges between the nodes in the second topology graph, so that the sum of the weights of the connecting edges on the path between the first node and the second node is minimized; that is, the path between the first node and the second node determined by the controller is the optimal path. In this way, since the nodes in the second topology graph correspond to site devices in the network architecture, and the connecting edges in the second topology graph correspond to links between site devices in the network architecture, the controller can determine the data transmission path between any two site devices in the network architecture.
[0094] For example, please refer to Figure 5 , Figure 5 This is a schematic diagram illustrating path determination based on a second topology graph, provided as an embodiment of this application. Figure 5As shown, each connecting edge in the second topology graph has a corresponding weight, and the weight of the connecting edge between the derived node and the target node is 1. Taking node V1 as the source node (i.e., site device 1 is the source site device) and node V6 as the destination node (i.e., site device 6 is the destination site device), by executing the shortest path algorithm in the second topology graph, the optimal path can be calculated as: node V1 → node V2 → node V2' → node V3' → node V6' → node V6. Therefore, based on the second topology graph, the controller can determine the shortest path between site device 1 and site device 6 as: site device 1 → public internet link → site device 2 → leased network link → site device 3 → leased network link → site device 6.
[0095] Optionally, the path between the first node and the second node includes connection edges representing public internet links and / or connection edges representing leased network links. That is, for site device 1 represented by the first node and site device 2 represented by the second node, the data transmission path between site device 1 and site device 2 may include only public internet links or only leased network links; the data transmission path between site device 1 and site device 2 may also include both public internet links and leased network links.
[0096] It should be noted that the inventors' research revealed that due to the high cost of leased network links, their deployment is relatively sparse globally, while public internet links are densely deployed globally. Furthermore, with network development, the transmission quality of public internet links is continuously improving. The network performance of both leased and public internet links is related to the user's geographical location and network connectivity, such as the distribution of PoP sites and the real-time measurement performance of the leased network and the public internet. Therefore, in some cases, using a leased network link does not necessarily guarantee better network performance than using a public internet link. That is, for two specific site devices, the transmission quality of the public internet link between them may even be better than that of the leased network link.
[0097] For example, suppose that for regions 1 and 2, when data is transmitted using a public internet link, the data is transmitted through the direct public internet link connecting regions 1 and 2. However, when data is transmitted using a leased network link, the data needs to be relayed through a central node in region 3; that is, the data is first transmitted from region 1 to region 3 via the leased network link, and then relayed from region 3 to region 2. In this case, the quality of the public internet link between regions 1 and 2 is likely to be better than the quality of the leased network link between regions 1 and 2.
[0098] In this scheme, corresponding nodes are derived for target nodes that simultaneously possess both public internet links and leased line links. Connecting edges representing leased line network links are added between the derived nodes, thus enabling the simultaneous construction of public internet links and leased line network links within the same topology graph. By deriving nodes, ambiguity caused by constructing dual links between two nodes in the topology graph is avoided, and the optimal path is selected between the leased line network and the public internet, ensuring the accuracy and flexibility of data transmission path selection. In other words, in some cases, compared to related technologies that only use leased line network links for data transmission, this scheme, based on the constructed topology graph, achieves better transmission quality and lower transmission costs by using a hybrid approach of leased line network links and public internet links for data transmission.
[0099] Optionally, in some embodiments, after the controller determines the path between the first node and the second node, the controller sends the path between the first node and the second node to multiple target site devices, wherein the multiple target site devices are the site devices represented by the multiple nodes traversed by the path. That is, after determining the data transmission path between the source site device and the destination site device, the controller can send the data transmission path to each site device along the data transmission path, so that these site devices can transmit data according to the instructions of the data transmission path when they receive data from the source site device to the destination site device.
[0100] Furthermore, when sending data transmission paths to various site devices, the controller can either send the entire data transmission path to each site device, or it can send only a portion of the data transmission path relevant to that site device. For example, assuming the data transmission path is: Site Device 1 → Leased Network Link 1 → Site Device 2 → Public Internet Link 1 → Site Device 3; then the content sent by the controller to Site Device 1 is: Source Site Device 1, Destination Site Device 3, and Next Hop Site 2 connected via Leased Network Link 1; the content sent by the controller to Site Device 2 is: Source Site Device 1, Destination Site Device 3, and Next Hop Site 3 connected via Public Internet Link 1; the content sent by the controller to Site Device 3 is: Source Site Device 1, Destination Site Device 3, and No Next Hop Site.
[0101] In this solution, after determining the data transmission path, the data transmission path is sent to each station device along the data transmission path, enabling each station device to transmit data according to the instructions of the data transmission path, thus ensuring the feasibility of the solution.
[0102] The previous section described the process by which the controller calculates paths based on the second topology map after it has been constructed. However, the network connection status between various station devices in the network architecture changes in real time. Therefore, the following section will describe the process by which the controller updates the second topology map based on the real-time network connection status during operation.
[0103] In this embodiment, since the link quality between site devices in the network architecture is easily affected by the physical environment or the amount of data transmitted between site devices, the site devices can periodically measure the link quality between themselves and other site devices and report the periodically measured link quality to the controller. Therefore, the controller can update the weights of the connecting edges in the second topology graph based on the link quality periodically reported by the site devices to ensure that the path planned by the controller in real time is the optimal path.
[0104] For example, the controller can receive a link quality message sent by the first site device, which indicates the link quality between the first site device and the second site device. Then, the controller updates the weight of the connection edge between the third node and the fourth node in the second topology graph based on the link quality message, where the third node represents the first site device and the fourth node represents the second site device. Optionally, the first site device may only send a link quality message to the controller when the link quality between the first site device and the second site device changes; if the first site device measures that the link quality between it and the second site device has not changed, the first site device does not send a link quality message to the controller, and the controller assumes that the link quality between the first site device and the second site device remains unchanged.
[0105] Furthermore, after the weight of the connecting edge changes in the second topology graph, the controller can recalculate the path between the first node and the second node to ensure that the path between the first node and the second node is the optimal path in real time.
[0106] The above describes the execution flow of the path calculation method provided in the embodiments of this application. For ease of understanding, the path calculation method provided in the embodiments of this application will be described in detail below with specific examples.
[0107] Please see Figure 6 , Figure 6 This is a schematic diagram of a network architecture provided in an embodiment of this application. For example... Figure 6As shown, the network architecture includes a controller and multiple site devices. The controller communicates with all site devices, which are connected via public internet links and / or leased network links. By default, each site device has a public internet link, while only site devices with leased network links have dedicated leased network links. Furthermore, regardless of whether it's a public internet link or a leased network link, if a site device detects a connection failure during actual link measurement, it is considered that there is no valid connection between the site devices.
[0108] The controller includes a topology management module, a network measurement module, a topology map construction module, and a path calculation module. The workflow between the various site devices in the network architecture and the various modules in the controller is as follows: Figure 7 As shown. Please refer to [the original text]. Figure 7 , Figure 7 This is another schematic flowchart illustrating a path calculation method provided in an embodiment of this application. Figure 7 The path calculation method includes the following steps 701-706.
[0109] Step 701: Each site device reports registration information and link status information to the controller.
[0110] In this embodiment, the registration information reported by the site device may include the site device's identifier, site role, and site attributes such as whether the site device has a leased network interface. The site device's identifier uniquely identifies the site device, and its site role indicates whether it is an edge device, data center, or Content Delivery Network (CDN) site. The link status information reported by the site device includes the local interface number, the peer device interface number, link validity, and link type (i.e., public internet link or leased network link). The local interface number and the peer device interface number are used as a unique identifier pair to identify a link.
[0111] In addition, when the link status between a site device and other site devices changes, such as a link failure or the addition of a new link, the site device reports a link status change message to the controller to notify the controller that the topology in the network architecture has changed.
[0112] After the controller receives the registration information and link status information reported by the site devices, it can save the registration information in the configuration file and the link status information in the database for use by other modules in the controller.
[0113] Step 702: The topology management module in the controller configures the site device number according to the site device registration information and configures the connection relationship between the site devices according to the link status information to synthesize the network topology.
[0114] After receiving the registration and link status information reported by the site devices, the topology management module in the controller reads the registration information from the configuration file, performs unified encoding on all site devices with public network interfaces, and generates original IDs for each site device, with each site device having a unique original ID. Furthermore, the topology management module determines whether a site device has a leased network interface. For target site devices with leased network interfaces, the topology management module performs extended encoding based on the target site device's original ID to generate a derived ID for the target site device. In addition, the topology management module configures the connection relationships between each site device according to the link status messages read from the database to obtain the network topology. In this way, the topology management module can perform unified encoding on site devices and synthesize the network topology based on the interconnection relationships between site devices.
[0115] For example, the topology management module can uniformly encode site devices using the following IDs: {[v1,v1'],[v2,v2'],[v3,v3'],[v4]}, where v represents the original ID of the site device and v' represents the derived ID. The link status collected by the topology management module can be represented using a quintuple (x,y,z,'t','m'). Here, x represents the ingress site device ID, y represents the egress site device ID, z represents the link validity, 't' represents the link type ('p' for public internet, 'r' for leased network), and 'm' represents the performance metrics. For example, the link state can be represented as {(v1,v2,true,'p','m'),(v1,v3,true,'p','m'),(v1,v3,true,'r','m'),(v1,v4,false,'p','m'),(v2,v3,true,'p','m'),(v2,v3,true,'r','m'),(v2,v4,true,'p','m'),(v3,v4,true,'p','m')}. It's important to note that a public network link exists between the two site devices by default. If the public network link is unavailable, it needs to be explicitly stated through the link state. For leased line networks, explicit statement is only required if a leased line interface exists but is actually unavailable; that is, if there is no leased line interface between the two site devices, it is not necessary to explicitly state that the leased line is unavailable. Please refer to [link to relevant documentation]. Figure 8 , Figure 8 This is a schematic diagram of a network topology provided in an embodiment of this application. The network topology synthesized based on the encoding and link states of the station devices in the above example is as follows: Figure 8 As shown.
[0116] Step 703: The network measurement module in the controller receives the link quality data reported by each site device and processes the link quality data.
[0117] During network architecture operation, each site device periodically measures the link quality between itself and other site devices, such as the quality of public internet links and leased network links, and reports the measured link quality data to the controller. The link quality data measured by the site devices may include link latency, packet loss rate, and jitter.
[0118] Because the raw link quality data measured by site devices may exhibit spikes and distortions during the measurement process due to changes in network conditions, it may not accurately reflect the true network situation. Therefore, the network measurement module in the controller can filter the link quality data reported by the site devices, eliminating distorted samples and obtaining processed link quality data. Specifically, the network measurement module can calculate the mean, variance, and confidence interval of the link quality data, using various statistical indicators to reflect the statistical values of the link measurement metrics. The mean of the link quality is used to assign weights to the links, the variance of the link quality is used to calculate the confidence interval, and the confidence interval of the link quality is used in path selection to exclude paths with unreliable measurement performance metrics.
[0119] Step 704: The topology graph construction module in the controller constructs a topology graph based on the network topology and the processed link quality data.
[0120] Since some site devices in the network topology synthesized by the topology management module in step 702 have both public Internet links and leased network links (i.e. ambiguous dual links), path calculation cannot be performed directly. Therefore, the topology map construction module further constructs a topology map based on the network topology and the processed link quality data.
[0121] First, the topology graph construction module constructs an initial topology graph (i.e., the first topology graph in the above embodiment) based on the synthesized network topology, using the original IDs of the site devices and the public internet links between the site devices. This initial topology graph records the public internet connection relationships between each site device. Second, the topology graph construction module adds corresponding derived nodes to nodes with leased network links in the initial topology graph; for example, it adds a corresponding derived node V1' to node V1. Then, the topology graph construction module adds a switching edge between the derived node and the original node. If the derived node connects two consecutive leased network links, the switching edge is set to a bidirectional edge (indicating that the path can switch from the public internet to the leased network, and vice versa). Figure 4In the graph, nodes v3' → v3 are linked; otherwise, the edges are unidirectional. Furthermore, the topology graph construction continues to add dedicated network connection edges between derived nodes, such as... Figure 4 In the graph, nodes v1'→node v5', v2'→node v3', etc., are processed. Finally, the topology graph construction module calculates the weights of each connection edge (including public internet connection edges and leased network connection edges) in the topology graph based on the processed link quality data. The average latency of the public internet links is used as the weight for public internet connection edges, and the average latency of the leased network links is used as the weight for leased network connection edges. For switching edges between original and derived nodes, the switching cost is used as its weight, for example, a weight of 1.
[0122] Step 705: The path calculation module in the controller calculates the optimal path based on the topology graph.
[0123] This step, by introducing derived nodes and switching edges into the topology graph, eliminates ambiguous dual links. The path calculation module can then execute typical shortest path algorithms, such as Dijkstra's or Floyd's algorithm, to calculate the optimal path between nodes with different source and destination points. During path calculation, the algorithm is not aware of edge or node types; it only drives the calculation based on edge weights. This naturally allows for cross-routing between public internet links and leased network links, resulting in the final hybrid route. Figure 5 As shown, assuming the optimal path between source node v1 and destination node v6 is v1→v2→v2'→v3'→v6'→v6, it means that starting from source node v1, the path first goes to node v2 via a public internet link, then switches to the leased network interface v2' within node v2, and then from v2', it goes to node v6 via two consecutive leased network links v2'→v3' and v3'→v6', and finally switches to the public internet interface within node v6 to reach the destination node v6.
[0124] Step 706: The controller sends the optimal path to the site equipment.
[0125] After calculating the optimal path between station devices, the controller can send the calculated optimal path to each station device associated with the optimal path, so that each station device can perform data transmission based on the optimal path.
[0126] For example, please refer to Figure 9 , Figure 9 This diagram illustrates an optimal path including a public internet link and a leased network link, as provided in an embodiment of this application. Figure 9The diagram shows the input entries for the topology diagram, including a link status table and a site code table generated based on site registration information. The input entries indicate that the network architecture includes three site devices, all interconnected via public internet links. Site device 2 and site device 3 also have a dedicated network link. Therefore, the nodes corresponding to site devices 2 and 3 in the topology diagram require derived IDs, while site device 1 only needs its original ID. The controller generates the topology diagram based on the link status and site codes as follows: Figure 9 As shown in the lower right corner, the controller calculates the optimal path from v1 to v3 based on the shortest path algorithm, as shown in the topology diagram, passing through nodes V1, V2, V2', V3', and V3 respectively. Specifically, this optimal path starts from site device v1 and first reaches site device v2 via the public internet. Then, within site device 2, it switches to the leased line interface v2', then reaches site device 3 via the leased network link, and finally switches back to the public internet interface, i.e., v3, from within site device 3.
[0127] exist Figure 9 The optimal path shown includes scenarios where public internet links and leased network links are intertwined. However, existing methods can only select paths that include only public internet links or only leased network links, and cannot achieve flexible routing for intertwined public internet and leased network links.
[0128] For example, please refer to Figure 10 , Figure 10 This is a schematic diagram illustrating an optimal path that includes only public internet links, as provided in an embodiment of this application. Wherein, Figure 10 The network architecture shown is Figure 9 The network architectures shown are similar, but the difference lies in... Figure 10 The public internet links in the network architecture shown are of higher quality than leased network links.
[0129] Specifically, in Figure 10 In this topology diagram, the weight of the public internet link between node v2 and node v3 decreases from 20 to 5, while the weight of the leased network link between node v2' and node v3' increases from 5 to 20. The resulting topology is as follows: Figure 9 As shown in the lower right corner, the controller calculates the optimal path from v1 to v3 using the shortest path algorithm: node v1 → node V2 → node V3. Specifically, this optimal path first reaches site device 2 from site device 1 via a public internet link, and then continues from site device 2 to site device 3 via a public internet link, using only public internet links throughout the entire process.
[0130] exist Figure 10The example demonstrates that even when a leased network link exists, the optimal path calculated using the path calculation method provided in this embodiment still prioritizes the use of the public internet link. However, existing technologies often assume that leased networks are superior to the public internet and therefore prioritize leased networks, making it impossible to select a path with better network performance at a lower cost.
[0131] In this embodiment, by uniformly encoding the site equipment and adding derived nodes, cross-mixed routing between public Internet links and leased network links in the WAN is allowed, ensuring that the advantages of different links can be fully utilized in WAN transmission to achieve optimal network performance; and, fine-grained routing control is provided to achieve a trade-off between low cost and high network performance.
[0132] Furthermore, since the public internet can provide network performance comparable to or even better than leased networks in some cases, and is typically much cheaper, this solution can significantly reduce costs while maintaining or even improving performance. For example, please refer to... Figure 11 , Figure 11 This is a cost comparison diagram provided for an embodiment of this application. Figure 11 As shown in the figure, experiments have revealed that, compared to path calculation methods in related technologies, the path calculation method provided in this solution can save 10,000 yuan / month / Gbps. Please refer to [link / reference]. Figure 12 , Figure 12 Another cost comparison diagram provided for an embodiment of this application. For example... Figure 12 As shown in the figure, experiments have revealed that, compared to path calculation methods in related technologies, the path calculation method provided in this solution can reduce path costs by up to 95.68%, with an average reduction of 25.2%.
[0133] To implement the above embodiments, this application also provides a path calculation device. See also... Figure 13 , Figure 13 This is a schematic diagram of the structure of a path calculation device 1300 provided in an embodiment of this application.
[0134] like Figure 13As shown, the path calculation device 1300 includes: an acquisition module 1301, used to acquire a first topology map, the first topology map including multiple nodes in the network and multiple connecting edges between the multiple nodes, the multiple edges representing public Internet links between the multiple nodes; a processing module 1302, used to add multiple derived nodes and connecting edges between the multiple derived nodes to the first topology map based on the leased network links between the multiple target nodes, to obtain a second topology map, wherein the multiple nodes include multiple target nodes, the multiple derived nodes correspond one-to-one with the multiple target nodes, and each derived node has a connecting edge with the corresponding target node in the second network topology, the connecting edges between the multiple derived nodes representing leased network links between the multiple target nodes; the processing module 1302 is also used to determine the path between a first node and a second node based on the weights corresponding to the connecting edges between each node in the second topology map, wherein the weights are determined based on the quality of the public Internet link or leased network link between the nodes, and the first node and the second node are any two nodes in the second topology map.
[0135] In one possible implementation, the path between the first node and the second node includes connecting edges representing public internet links and / or connecting edges representing leased network links.
[0136] In one possible implementation, the processing module 1302 is specifically used to determine the path between the first node and the second node based on the weights corresponding to the connecting edges between each node in the second topology graph, so as to minimize the sum of the weights corresponding to the connecting edges on the path between the first node and the second node.
[0137] In one possible implementation, the weight of the connecting edge between the derived node and the target node in the second topology graph is a preset threshold.
[0138] In one possible implementation, the path calculation device 1300 further includes a sending module 1303 for sending a path between a first node and a second node to a plurality of target site devices, wherein the plurality of target site devices are site devices represented by the plurality of nodes through which the path passes.
[0139] In one possible implementation, the acquisition module 1301 is further configured to receive multiple link status messages sent by multiple site devices, the multiple link status messages being used to indicate the public Internet link status and leased line link status between the multiple site devices; the processing module 1302 is further configured to construct a first topology map based on the multiple link status messages and acquire the leased network link status between the multiple target nodes, the multiple nodes in the first topology map being used to represent multiple site devices.
[0140] In one possible implementation, the path calculation device 1300 further includes: a sending module 1303, configured to receive a link quality message sent by a first site device, the link quality message indicating the link quality between the first site device and the second site device; and a processing module 1302, configured to update the weight of the connection edge between a third node and a fourth node in the second topology graph according to the link quality message, the third node representing the first site device and the fourth node representing the second site device.
[0141] Please refer to Figure 14 , Figure 14 This is a schematic diagram of the structure of a network device 1400 provided in an embodiment of this application. Figure 13 The path calculation device 1300 shown can be deployed in Figure 14 The network device 1400 shown, or the path calculation device 1300, can be implemented using the structure shown in the network device 1400. Figure 14 Although the network device 1400 shown has certain specific features, those skilled in the art will realize from the embodiments of this application that, for the sake of brevity, Figure 14 Various other features are not shown to avoid obscuring more relevant aspects of the implementation methods disclosed in this application. Therefore, as an example, in some implementations, network device 1400 includes one or more processing units (e.g., CPU) 1401, a network interface 1402, a programming interface 1403, a memory 1404, and one or more communication buses 1405 for interconnecting various components. In other implementations, network device 1400 may omit or add some functional components or units based on the above examples.
[0142] In some implementations, network interface 1402 is used to connect to one or more other network devices / servers in a network system. In some implementations, communication bus 1405 includes circuitry for interconnecting and controlling communication between system components. Memory 1404 may include non-volatile memory, such as read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Memory 1404 may also include volatile memory, which may be random access memory (RAM) used as an external cache.
[0143] In some implementations, memory 1404 or a non-transitory computer-readable storage medium of memory 1404 stores programs, modules and data structures, or subsets thereof, including, for example, an acquisition unit (not shown), a transmission unit (not shown), and a processing unit 14041.
[0144] In one possible embodiment, the network device 1400 may have the above-described features. Figure 3 Any function in the controller in the corresponding method embodiment.
[0145] It should be understood that network device 1400 corresponds to the controller in the above method embodiments. The modules in network device 1400 and the other operations and / or functions described above are respectively for implementing various steps and methods performed by the controller in the above method embodiments. For specific details, please refer to the above... Figure 3 For the sake of brevity, the corresponding method implementations will not be described in detail here.
[0146] It should be understood that the data transmission and reception operations in this application can be performed by the network interface 1402 on the network device 1400, or the processor can call the program code in the memory and cooperate with the network interface 1402 to realize the function of the transceiver unit when needed.
[0147] In various implementations, the network device 1400 is used to execute the path calculation method provided in the embodiments of this application, such as executing the above-described method. Figure 3 The path calculation method corresponding to the illustrated embodiment.
[0148] This application Figure 14 The specific structure of the network device can be as follows: Figure 15 As shown.
[0149] Figure 15 This is a schematic diagram of the structure of a network device 1500 provided in an embodiment of this application. The network device 1500 includes a main control board 1510 and an interface board 1530.
[0150] The main control board 1510, also known as the main processing unit (MPU) or route processor, is used to control and manage the various components in the network device 1500, including route calculation, device management, device maintenance, and protocol processing functions. The main control board 1510 includes a central processing unit 1511 and a memory 1512.
[0151] Interface board 1530 is also known as a line processing unit (LPU), linecard, or service board. Interface board 1530 provides various service interfaces and implements packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces, POS (Packet over SONET / SDH) interfaces, etc. Interface board 1530 includes: a central processing unit 1531, a network processor 1532, a forwarding table entry memory 1534, and a physical interface card (PIC) 1533.
[0152] The central processing unit 1531 on the interface board 1530 is used to control and manage the interface board 1530 and communicate with the central processing unit 1511 on the main control board 1510.
[0153] The network processor 1532 is used to implement packet forwarding. The network processor 1532 can be in the form of a forwarding chip.
[0154] Physical interface card 1533 is used to implement physical layer interfacing functions. Raw traffic enters interface board 1530 through this card, and processed packets are sent out from the physical interface card 1533. Physical interface card 1533 includes at least one physical interface, also called a physical port, which can be a Flexible Ethernet (FlexE) physical interface. Physical interface card 1533, also called a daughter card, can be installed on interface board 1530 and is responsible for converting photoelectric signals into packets, performing validity checks on the packets, and forwarding them to network processor 1532 for processing. In some embodiments, the central processing unit 1531 of interface board 1530 can also perform the functions of network processor 1532, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for network processor 1532 in interface board 1530.
[0155] Optionally, network device 1500 includes multiple interface boards. For example, network device 1500 also includes interface board 1540, which includes: central processing unit 1541, network processor 1542, forwarding table entry memory 1544, and physical interface card 1543.
[0156] Optionally, network device 1500 also includes a switching fabric board 1520. The switching fabric board 1520 can also be referred to as a switch fabric unit (SFU). In cases where the network device has multiple interface boards 1530, the switching fabric board 1520 is used to complete data exchange between the interface boards. For example, interface boards 1530 and 1540 can communicate via the switching fabric board 1520.
[0157] The main control board 1510 and the interface board are coupled. For example, the main control board 1510, interface boards 1530 and 1540, and the switching network board 1520 are interconnected via a system bus and / or a system backplane. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 1510 and the interface board 1530, and the main control board 1510 and the interface board 1530 communicate with each other through the IPC channel.
[0158] Logically, network device 1500 includes a control plane and a forwarding plane. The control plane includes a main control board 1510 and a central processing unit 1531, while the forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 1534, a physical interface card 1533, and a network processor 1532. The control plane performs functions such as publishing routes, generating forwarding tables, processing signaling and protocol messages, and configuring and maintaining the device's status. The control plane distributes the generated forwarding tables to the forwarding plane. In the forwarding plane, the network processor 1532 looks up and forwards messages received by the physical interface card 1533 based on the forwarding tables distributed by the control plane. The forwarding tables distributed by the control plane can be stored in the forwarding table entry memory 1534. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same device.
[0159] It should be understood that the acquisition unit 1801 and the transmission unit 1803 in network device 1800 can be equivalent to the physical interface card 1533 or the physical interface card 1543 in network device 1500; the processing unit 1802 in network device 1800 can be equivalent to the central processing unit 1511 or the central processing unit 1531 in network device 1500, or it can be equivalent to the program code or instructions stored in memory 1512.
[0160] It should be understood that the operation on interface board 1540 in this embodiment is consistent with the operation on interface board 1530, and will not be described again for the sake of simplicity. It should be understood that the network device 1500 in this embodiment can correspond to the first network device in the above-described method embodiments. The main control board 1510, interface board 1530 and / or interface board 1540 in the network device 1500 can implement the functions and / or various steps implemented by the first network device in the above-described method embodiments, and will not be described again for the sake of simplicity.
[0161] It's worth noting that a network device may have one or more main control boards, including a primary and a backup main control board. It may also have one or more interface boards; the stronger the network device's data processing capabilities, the more interface boards it provides. Each interface board may also have one or more physical interface cards. A switching board may or may not exist; multiple switching boards can share load and provide redundancy. In a centralized forwarding architecture, the network device may not need a switching board, with the interface boards handling the entire system's business data processing. In a distributed forwarding architecture, the network device can have at least one switching board, enabling data exchange between multiple interface boards and providing high-capacity data exchange and processing capabilities. Optionally, the network device can also consist of only one board, without a switching board, integrating the functions of the interface boards and the main control board onto this single board. In this case, the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU, executing the combined functions of both. The specific architecture adopted depends on the specific network deployment scenario and is not a single, definitive choice.
[0162] In some possible embodiments, the network device described above can be implemented as a virtualized device. A virtualized device can be a virtual machine (VM) running a program for sending packets, a virtual router, or a virtual switch. The virtualized device is deployed on hardware (e.g., a physical server). For example, the first network device can be implemented based on a general-purpose physical server combined with network functions virtualization (NFV) technology.
[0163] It should be understood that the network devices of the various product forms described above each have any of the functions of the first network device in the above method embodiments, which will not be elaborated here.
[0164] Furthermore, embodiments of this application also provide a computer program product that, when run on a network device, causes the network device to perform the aforementioned... Figure 3 The method executed in the corresponding method embodiment.
[0165] This application also provides a chip system, including a processor and an interface circuit. The interface circuit is used to receive instructions and transmit them to the processor. The processor is used to implement the methods in any of the above method embodiments.
[0166] Optionally, the chip system also includes a memory, and the chip system can have one or more processors. The processor can be implemented in hardware or software. When implemented in hardware, the processor can be a logic circuit, integrated circuit, etc. When implemented in software, the processor can be a general-purpose processor that implements the methods in any of the above method embodiments by reading software code stored in the memory.
[0167] Optionally, the chip system may contain one or more memories. These memories may be integrated with the processor or separated from it; this application does not limit this. For example, the memory may be a non-transient processor, such as a read-only memory (ROM), which may be integrated with the processor on the same chip or disposed on different chips. This application does not specifically limit the type of memory or the arrangement of the memory and processor.
[0168] The embodiments of this application have been described in detail above. The steps in the method of the embodiments of this application can be scheduled, merged or deleted in sequence according to actual needs; the modules in the device of the embodiments of this application can be divided, merged or deleted according to actual needs.
[0169] It should be understood that the phrase "an embodiment" or "one embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment" or "in one embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence number of the above-described processes does not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0170] In this article, the term "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. Additionally, the character " / " in this article generally indicates that the preceding and following related objects have an "or" relationship.
[0171] It should be understood that in the embodiments of this application, "B corresponding to A" means that B is associated with A, and B can be determined based on A. However, it should also be understood that determining B based on A does not mean that B is determined solely based on A; B can also be determined based on A and / or other information.
[0172] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0173] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, or indirect coupling or communication connection between apparatuses or units, and may be electrical, mechanical, or other forms.
[0174] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0175] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
Claims
1. A path computation method, characterized by, The method comprises: obtaining a first topology graph, the first topology graph comprising a plurality of nodes in a network and a plurality of connection edges between the plurality of nodes, the plurality of edges being used to represent public Internet links between the plurality of nodes; based on private network links between a plurality of target nodes, adding a plurality of derived nodes and connection edges between the plurality of derived nodes in the first topology graph to obtain a second topology graph, wherein the plurality of nodes comprise the plurality of target nodes, the plurality of derived nodes correspond one-to-one to the plurality of target nodes, and each derived node has a connection edge with the corresponding target node in the second topology graph, and the connection edges between the plurality of derived nodes are used to represent private network links between the plurality of target nodes; determining a path between a first node and a second node based on weights corresponding to connection edges between nodes in the second topology graph, wherein the weights are determined based on qualities of public Internet links or private network links between nodes, and the first node and the second node are any two nodes in the second topology graph.
2. The method of claim 1, wherein, The path between the first node and the second node comprises connection edges representing public Internet links and / or connection edges representing private network links.
3. The method according to claim 1 or 2, characterized in that, The determination of the path between the first node and the second node based on the weights corresponding to the connection edges between the nodes in the second topology graph comprises: determining the path between the first node and the second node by a shortest path algorithm based on the weights corresponding to the connection edges between the nodes in the second topology graph, so that the sum of the weights corresponding to the connection edges in the path between the first node and the second node is the smallest.
4. The method according to any one of claims 1 to 3, characterized in that, The weight of the connection edge between the derived node and the target node in the second topology graph is a preset threshold value.
5. The method according to any one of claims 1 to 4, characterized in that, The method further comprises: sending the path between the first node and the second node to a plurality of target site devices, wherein the plurality of target site devices are site devices represented by the plurality of nodes on the path.
6. The method according to any one of claims 1 to 5, characterized in that, The method further comprises: receiving a plurality of link state messages sent by a plurality of site devices, the plurality of link state messages being used to indicate public Internet link states and private link states between the plurality of site devices; constructing the first topology graph based on the plurality of link state messages and obtaining private network link states between the plurality of target nodes, wherein the plurality of nodes in the first topology graph are used to represent the plurality of site devices.
7. The method according to any one of claims 1 to 6, characterized in that, The method further comprises: receiving a link quality message sent by a first site device, the link quality message being used to indicate a link quality between the first site device and a second site device; updating a weight of a connection edge between a third node and a fourth node in the second topology graph based on the link quality message, the third node being used to represent the first site device, and the fourth node being used to represent the second site device.
8. A path computation device, characterized by, The method comprises: an obtaining module, configured to obtain a first topology graph, the first topology graph comprising a plurality of nodes in a network and a plurality of connection edges between the plurality of nodes, the plurality of edges being used to represent public Internet links between the plurality of nodes; The processing module is configured to add a plurality of derived nodes and connection edges between the derived nodes in the first topology graph based on the dedicated network links between the target nodes, so as to obtain a second topology graph, wherein the nodes include the target nodes, the derived nodes correspond to the target nodes one by one, each derived node has a connection edge with the corresponding target node in the second topology graph, and the connection edges between the derived nodes represent the dedicated network links between the target nodes. The processing module is further configured to determine a path between a first node and a second node based on the weights corresponding to the connection edges between the nodes in the second topology graph, wherein the weights are determined based on the quality of the public Internet links or the dedicated network links, and the first node and the second node are any two nodes in the second topology graph.
9. The apparatus of claim 8, wherein, The path between the first node and the second node includes connection edges representing the public Internet links and / or connection edges representing the dedicated network links.
10. The apparatus of claim 8 or 9, wherein The processing module is specifically configured to determine the path between the first node and the second node by a shortest path algorithm based on the weights corresponding to the connection edges between the nodes in the second topology graph, so that the weights corresponding to the connection edges in the path between the first node and the second node are the smallest.
11. The apparatus of any of claims 8-10, wherein, The weight of the connection edge between the derived node and the target node in the second topology graph is a preset threshold value.
12. The apparatus of any one of claims 8-11, wherein, The apparatus further includes: A sending module configured to send the path between the first node and the second node to a plurality of target site devices, wherein the target site devices are site devices represented by the nodes on the path.
13. The apparatus of any one of claims 8-12, wherein The obtaining module is further configured to receive a plurality of link state messages sent by a plurality of site devices, wherein the link state messages are used to indicate the public Internet link states and the dedicated link states between the site devices. The processing module is further configured to construct the first topology graph based on the link state messages and obtain the dedicated network link states between the target nodes, and the nodes in the first topology graph represent the site devices.
14. The apparatus of any of claims 8-13, wherein, The apparatus further includes: A sending module configured to receive a link quality message sent by a first site device, wherein the link quality message is used to indicate the link quality between the first site device and a second site device. The processing module is further configured to update the weight of the connection edge between a third node and a fourth node in the second topology graph based on the link quality message, wherein the third node represents the first site device and the fourth node represents the second site device.
15. A network device, comprising: A network device including a memory and a processor, wherein the memory stores code, and the processor is configured to execute the code, and when the code is executed, the network device performs the method in any one of claims 1-7.
16. A network system, characterized by The network device as claimed in claim 15 and a plurality of station devices.
17. A computer storage medium, comprising, The computer storage medium stores instructions which, when executed by a computer, cause the computer to implement the method of any one of claims 1 to 7.
18. A computer program product, characterised in that, The computer program product stores instructions which, when executed by a computer, cause the computer to implement the method of any one of claims 1 to 7.
Citation Information
Patent Citations
Network bandwidth planning method, device, equipment and storage medium
CN108880894A
Communication network optimization simulation system, method and device based on OPNET
CN114285758A