Comparing network topologies, states, and configurations at different time instances

Effective troubleshooting and management of the network is solved by representing the network as a network image (NI) graph and marking the effective time period of edges with timestamps, the challenge of comparing topology, state, and configurations at different time instances in complex and distributed networks is achieved.

CN119728440AActive Publication Date: 2025-03-28HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202410460137.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-09-28
Filing Date
2024-04-17
Publication Date
2025-03-28
Estimated Expiration
2044-04-17

AI Technical Summary

Technical Problem

In complex and distributed networks, comparing the topology, state, and configuration of networks at different time instances is challenging, and prior art is difficult to effectively support this process.

Method used

By representing the network as a network image (NI) graph, the edges are marked with valid time periods using timestamps, and the NI graph is traversed at time instances to determine the topology, state, and configuration of the network. The system can effectively compare network configuration, status, and topology at different time instances, supporting effective troubleshooting of the network.

Benefits of technology

It realizes effective comparison of the topology, state and configuration of the network at different time instances, helps identify and solve problems in the network, and improves the efficiency and accuracy of network management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728440A_ABST
    Figure CN119728440A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to comparing network topologies, states, and configurations at different time instances. A network management system for orchestrating a network is provided. During operation, the system generates a graph representing the network. The respective vertices correspond to entities in the network, and the respective edges indicate a relationship between pairs of vertices. The system may determine first and second timestamps for respective edges. The first timestamp indicates a time instance when the relationship indicated by the edge is established. The second timestamp indicates a time instance when the relationship is terminated. A time range between the first and second timestamps indicates a valid time period of the edge. The system then receives instructions from an interface of the system to compare the topology, status, and configuration of the network. The system determines the topology, state, and configuration of the network at the target time instance indicated by the instruction by traversing the valid edges of the graph.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Switches in a network may support different protocols and services. Furthermore, switches may be distributed between different locations (e.g., sites) in the network. Identifying errors and misconfigurations in such a complex network may require effectively determining changes in the network. BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Figure 1 An example of a network management system (NMS) using a network image (NI) diagram to represent a network according to one aspect of the present application is illustrated.

[0003] Figure 2A An example of using an auxiliary graph to enhance a NI graph according to one aspect of the present application is illustrated.

[0004] Figure 2B An example of using an auxiliary diagram to incorporate changes into an NI diagram according to one aspect of the present application is illustrated.

[0005] Figure 3A An example of a NI diagram representing a network at a time instance according to one aspect of the present application is illustrated.

[0006] Figure 3B An example of a NI diagram representing a network modified at another time instance according to one aspect of the present application is illustrated.

[0007] Figure 4A A flow chart illustrating an example of a process for an NMS to determine the topology, state, and configuration of a network at a target time instance according to one aspect of the present application is presented.

[0008] Figure 4B A flow chart illustrating an example of a process by which an NMS compares corresponding NI graphs at different time instances according to one aspect of the present application is presented.

[0009] Figure 4C A flow chart illustrating an example of a process for an NMS to determine differences between corresponding NI maps at different time instances according to one aspect of the present application is presented.

[0010] Figure 4D A flow chart illustrating an example of a process for an NMS to determine vertices of a NI graph at a time instance according to one aspect of the present application is presented.

[0011] Figure 5A A flow chart illustrating an example of a process for an NMS to determine attribute differences between corresponding NI graphs at different time instances according to one aspect of the present application is presented.

[0012] Figure 5BA flow chart illustrating an example of a process by which an NMS determines vertex differences between corresponding NI graphs at different time instances according to one aspect of the present application is presented.

[0013] Figure 6 An example of a computing system that facilitates an NMS to compare network topologies and configurations at different time instances according to one aspect of the present application is illustrated.

[0014] Figure 7 An example of an apparatus that facilitates an NMS to compare network topologies and configurations at different time instances according to one aspect of the present application is illustrated.

[0015] In the drawings, like reference numerals refer to like drawing elements. DETAILED DESCRIPTION

[0016] High-capacity interconnects are delivery media for various applications running on physical and virtual devices. Such applications increase their demand for bandwidth. As a result, equipment vendors compete to build larger devices with significant processing power. Therefore, a network may include different types of devices, such as switches and client devices. Even though these devices may belong to the same management domain, the devices may be distributed across multiple sites. Specifically, network virtualization may allow devices from different sites to communicate with each other via distributed local area networks, such as virtual local area networks (VLANs).

[0017] When one or more devices of a network are updated (e.g., due to a firmware update), the network may cause problems. For example, data exchange between two switches may stop due to a VLAN misconfiguration. To address such issues, an updated network instance can be compared with a stable instance of the network. However, network management applications often do not support effective comparison of network changes across time periods. In particular, in complex and distributed networks, it can be challenging to compare the topology, state, and configuration of the network at different time instances.

[0018] Various aspects described herein solve the problem of effectively comparing the topology, state, and configuration of a network at different time instances by: (i) representing the network as a network image (NI) graph, in which entities and relationships in the network are represented as vertices and edges, respectively; (ii) maintaining timestamp pairs for corresponding edges to indicate the valid time period for the edges; and (iii) traversing the NI graph via valid edges at a time instance to determine the topology, state, and configuration of the network at the time instance. When a problem in the network is detected or if a comparison is desired, the topology, state, and configuration of the network can be effectively determined for the corresponding time instances when the network was stable and when the problem occurred. By generating graph differences between corresponding NI graph instances at time instances, changes in the network can be effectively detected.

[0019] Using existing technology, if a network management system such as a network orchestrator detects a problem in the network (e.g., a failure), the system needs to determine the cause of the problem. Problems are often caused by changes in the network (e.g., a software upgrade or the presence of a new device). If the system detects a problem after a change in the network, the system may need to identify the cause of the problem. In a distributed network that spans multiple sites, it is challenging to determine why a change was made and how the change caused the problem. Typically, if a network begins to fail, a stable deployed configuration set (or configuration "dump") of the network can be compared to another configuration set that is currently deployed. Each configuration set can include a complete set of configurations applied on corresponding switches in the network.

[0020] However, the system may not support effectively comparing the topology, state, and configuration of the network at different time instances. For example, a stably deployed configuration set may not be available for comparison. In addition, the process requires the network to maintain a recently deployed stable configuration set. Network tools can capture snapshots or images of the network state associated with individual devices. The snapshot can include services running on the network at a specific time instance. The tool can compare the snapshots and determine changes to the device.

[0021] Furthermore, such an approach may require obtaining and maintaining periodic snapshots (i.e., at certain time intervals). Maintaining such a large amount of information may be inefficient. Furthermore, the tools may not support determining network-wide changes. As a result, even if the tools can compare the configurations of individual devices, using these tools to compare the topology, state, and configuration of a network may be cumbersome and prone to error.

[0022] To solve this problem, a network management system may include a network management system (NMS) that can represent a network as a NI graph. The entities of the network may be vertices of the NI graph and the corresponding relationships between the entities may be corresponding edges. For example, a site and a device at the site may be represented by corresponding vertices. The site vertex may then be connected to the device vertex via a corresponding edge. The edge may then indicate that the device is deployed at the site.

[0023] The corresponding vertex can be associated with a set of attributes that indicate the configuration of the entity represented by the vertex. In addition, the NMS can maintain two timestamps for each edge, indicating when the edge was established (or created) and when the edge expires. The edge expires when the relationship associated with the edge terminates. For existing edges, the expiration timestamp can be a large value, such as "infinity". The created and expired timestamps indicate the valid time period for the edge. The NMS can then determine the network topology (e.g., physical and logical connections), state (e.g., parameters indicating device health, bandwidth, memory, and processing utilization on the device, etc.) and configuration (e.g., parameters defined for protocols and services) at a given time instance by traversing the valid edges of the NI graph. Any valid edges created at a time instance and not expired can be included in the traversal.

[0024] Thus, if a problem such as a client experiencing performance degradation (e.g., a connection loss or a roaming problem) is detected, the NMS can determine a set of vertices by traversing the NI graph at a time instance when the network is stable. The traversal can continue until a predetermined depth threshold is reached. Here, the traversal of the NI graph can include starting from a pre-selected initial vertex and exploring the vertices via corresponding valid edges. The depth threshold can indicate how many consecutive edges can be explored from the initial vertex. If the traversal is active, the traversal may not be associated with a specific problem, and the initial vertex used for the traversal can be a high-level vertex, such as a vertex representing a site. The traversal can then be a top-down traversal. On the other hand, if the traversal is reactive, the traversal can be a response to a specific problem, and the initial vertex can represent a client or device. The traversal can then be a bottom-up traversal. The NMS can then determine another set of vertices at the time instance when the problem was detected. Since the vertices can represent the configuration of the network based on corresponding attributes, the NMS can effectively determine changes in the network by comparing the two vertex sets. Therefore, the NMS can support effective troubleshooting in the network by effectively comparing the configuration, state, and topology of the network at different time instances.

[0025] In addition, the NMS can represent the NI graph as an auxiliary graph to effectively represent changes in the NI graph. For example, if a site is updated, the NI graph needs to replace the vertex representing the site with a new vertex, which can cause the edges that couple the vertices representing the site equipment to be regenerated. In order to effectively represent the change, the corresponding vertex can be represented by three vertices in the auxiliary graph. One of these vertices can be a primary vertex representing an entity. The other two vertices can be auxiliary vertices associated with the primary vertex.

[0026] The auxiliary vertices may include inlet and outlet vertices coupled to the main vertex. The outlet vertex of the site may then be coupled to the corresponding inlet vertex of the device. As a result, even if the main vertex of the site is updated, only the edges coupling the inlet and outlet vertices are changed. In this way, the auxiliary graph may be used to efficiently capture changes to the NI graph.

[0027] In this disclosure, the term "switch" is used in a general sense and it may refer to any stand-alone or fabric switch operating in any network layer. "Switch" should not be interpreted as limiting the examples of the present invention to layer-2 networks. Any device that can forward traffic to an external device or another switch may be referred to as a "switch". Any physical or virtual device that can forward traffic to a terminal device (e.g., a virtual machine or switch operating on a computing device) may be referred to as a "switch". Examples of "switches" include, but are not limited to, layer 2 switches, layer 3 routers, routing switches, components of a Gen-Z network, or a fabric switch comprising multiple similar or heterogeneous smaller physical and / or virtual switches.

[0028] The term "packet" refers to a group of bits that can be transmitted together across a network. "Packet" should not be interpreted as limiting the examples of the present invention to a specific layer of a network protocol stack. "Packet" can be replaced by other terms referring to groups of bits, such as "message", "frame", "cell", "datagram" or "transaction". In addition, the term "port" can refer to a port that can receive or transmit data. "Port" can also refer to hardware, software and / or firmware logic that can facilitate the operation of the port.

[0029] Figure 1An example of a network using an NI diagram is illustrated in accordance with an aspect of the present application. NMS 130 (e.g., a network orchestrator) can manage network 100. Network 100 may include several switches and devices, and may include heterogeneous network components, such as layer 2 and layer 3 jumps and tunnels. In some examples, network 100 may be an Ethernet, InfiniBand, or other network, and may use corresponding communication protocols, such as Internet Protocol (IP), Fibre Channel over Ethernet (FCoE), or other protocols. Network 100 may span multiple sites 110 and 120. Thus, network 100 may be a multi-site distributed network. Site 110 may include switches 111, 113, 114, 116, and 118; site 120 may include switches 122, 124, and 126. Terminal devices (e.g., user devices) 132 and 134 may be coupled to switch 126. Respective switches in respective sites may be associated with MAC addresses and IP addresses.

[0030] In the corresponding sites of the network 100, the switches can be coupled to each other via links or tunnels. Examples of tunnels may include, but are not limited to, VXLAN, Generic Routing Encapsulation (GRE), Network Virtualization Using GRE (NVGRE), Generic Networking Virtualization Encapsulation (Geneve), Internet Protocol Security (IPsec), and Multi-Protocol Label Switching (MPLS). Tunnels in sites can be formed over an underlying network (or base network). The underlying network can be a physical network, and the corresponding links of the underlying network can be physical links. The corresponding switch pairs in the underlying network can be Border Gateway Protocol (BGP) peers.

[0031] Site 110 may include a virtual gateway switch (VGS) 112. Switches 111 and 113 may operate in conjunction with each other as a single switch to facilitate VGS 112. VGS 112 may be associated with one or more virtual addresses (e.g., a virtual IP address and / or a virtual MAC address). The corresponding data stream directed to VGS 112 may use the virtual address. In order to effectively manage data forwarding, switches 111 and 113 may maintain an inter-switch link (ISL) between them for sharing control and / or data packets. The ISL may be a layer 2 or layer 3 connection that allows data forwarding between switches 111 and 113. Because the virtual address of VGS 112 is associated with both switches 113 and 113, other switches of site 110 (such as switches 114, 116, and 118) may treat VGS 112 as a single switch, rather than switches 111 and 113.

[0032] With the prior art, if NMS 130 detects a problem (e.g., a failure) in network 100, NMS 130 needs to determine the cause of the problem. Problems are often caused by changes in network 100. For example, if the firmware of a switch (such as switch 122) is upgraded, a change has occurred in network 100. If the problem is detected after the change, the cause of the problem may be related to the change. Since network 100 is a distributed network spanning multiple sites, it may be challenging to determine the impact of the change on the problem. Specifically, if an error occurs in network 100, such as a VLAN conflict, the changed instance of network 100 may be compared with the stable instance of network 100.

[0033] However, such comparisons may require maintaining snapshots or images of stable instances of network 100, which may include configuration dumps. Maintaining such a large amount of information for network 100 may be inefficient. In addition, network 100 may deploy one or more network tools that can capture snapshots or images of individual devices of network 100. These tools can compare snapshots and determine changes to devices. These tools may not support determining changes across network 100. As a result, the comparison process may need to be repeated for all devices in network 100. Therefore, using these tools to compare the topology, state, and configuration of network 100 may be cumbersome and prone to errors.

[0034] To address this issue, the network 100 may be enhanced with an NMS 130, which may be accessed via a wide area network (WAN) such as an enterprise network or the Internet. For example, the NMS 130 may be run on a cloud server. During operation, the NMS 130 may obtain network topology, status, and configuration information, and represent the network 100 as a NI graph 150. The entities of the network 100 may be vertices of the NI graph 150 and the corresponding relationships between the entities may be corresponding edges. The corresponding networks of sites 110 and 120 may be represented by subgraphs 160 and 170 of the NI graph 150, respectively. Vertex 152 of the NI graph 150 may represent the network 100 and may connect the subgraphs 160 and 170 in the NI graph 150.

[0035] In the NI graph 150, sites 110 and 120 may be represented by vertices 172 and 162, respectively. Here, vertices 162 and 172 may be in subgraphs 160 and 170, respectively. In subgraph 170, switches 111, 113, 114, 116, and 118 may be represented by vertices 182, 184, 174, 176, and 178, respectively. VGS 112 may be represented by vertex 180. Since switches 111 and 113 form VGS 112, vertices 182 and 184 may be coupled to vertex 180. In addition, vertices 180, 174, 176, and 178 may be coupled to vertex 172 via corresponding edges. These edges may then indicate that the corresponding switches are deployed at site 110. On the other hand, in subgraph 160, switches 122, 124, and 126 may be represented by vertices 164, 166, and 168, respectively. Terminal devices 132 and 134 may be represented by vertices 192 and 194. Because terminal devices 132 and 134 are coupled to switch 126, vertices 192 and 194 may be coupled to vertex 168. Vertices 164, 166, and 168 may be coupled to vertex 162.

[0036] The corresponding vertex can be associated with a property set. For example, vertex 164 can be associated with a property set 146 indicating the configuration of switch 122, and switch 122 is represented by vertex 164. Therefore, attribute 146 can correspond to a configuration parameter of switch 122. One of the attributes in attribute 146 can be a unique identifier 148, which can uniquely identify vertex 164 in NI graph 150. In addition, NMS130 can maintain two timestamps for each edge, and the two timestamps indicate when the edge is established or created and when the edge expires. In this example, edge 140 between vertices 162 and 164 can be associated with timestamps e.created and e.expired 144. Here, e.created 142 and e.expired 144 can indicate when edge 140 is created and expired, respectively. The timestamp value can be represented by a timestamp variable supported by the underlying development model (e.g., a timestamp variable of a programming language). Thus, the time period within timestamps e.created 142 and e.expired 144 may indicate the duration that edge 140 is valid.

[0037] When the switch 122 remains in the site 120, the relationship between the vertices 162 and 164 can remain valid. Therefore, the edge 140 can also remain valid, thereby indicating the relationship. During the valid period of the edge 140, e.expired 144 may include a large value N, such as "infinity" (e.g., assigned based on the infinity function supported by the underlying development model). In this way, e.created 142 and e.expired 144 can indicate the valid period for the edge 140. The NMS 130 can then determine the topology, state, and configuration of the network 100 at a given time instance by traversing the valid edges of the NI graph 150. Any valid edges (i.e., created and unexpired) at the time instance can be included in the traversal. The traversal can be a top-down traversal from vertices representing high-level entities (e.g., sites), or a bottom-up traversal from vertices representing client-level entities (e.g., devices). The traversal can continue until a predetermined depth threshold is reached. Thus, if a problem is detected in network 100, NMS 130 may determine a set of vertices by traversing NI graph 150 at time instance t1 when network 100 is stable. NMS 130 may then determine another set of vertices at time instance t2 when the problem is detected.

[0038] Since vertices can represent the configuration of the network 100 based on corresponding attributes, the NMS 130 can effectively determine changes in the network 100 by comparing the corresponding vertex sets determined for time instances t1 and t2. For example, if time instances t1 and t2 fall within e.created 142 and e.expired 144, the edge 140 can be included in the corresponding traversals at time instances t1 and t2. Therefore, vertex 164 can be included in both traversals. The NMS 130 can then use the attributes 146 to determine the configuration of the switch 122 at time instances t1 and t2, and compare them to determine whether any changes have occurred at time instance t2. In this way, the NMS 130 can support effective troubleshooting in the network 100 by effectively comparing the network configuration, state, and topology at different time instances.

[0039] Additionally, the NMS 130 may represent the NI graph 150 as an auxiliary graph to efficiently represent changes in the NI graph 150 . Figure 2AAn example of using an auxiliary graph to enhance a NI graph according to one aspect of the present application is illustrated. NMS 230 may generate a NI graph 200 representing a site 240, which includes a switch 242 and terminal devices 244 and 246. Graph 200 may include vertices 252, 254, 256, and 258 corresponding to site 240, switch 242, and terminal devices 244 and 246, respectively. Vertices 252 and 254 may have an edge 202 between them. Similarly, vertex 254 may be coupled to vertices 256 and 258 via edges 204 and 206, respectively. If edges 202, 204, and 206 are created at time instance t1, the e.created and e.expired values ​​for each of these edges may be t1 and N, respectively. Without an auxiliary graph, if switch 242 is updated, NMS 230 needs to replace vertex 254 with a new vertex, which may cause the edge coupling vertex 254 to be regenerated.

[0040] To efficiently represent the change, the corresponding vertices in graph 200 may be represented by three vertices in auxiliary graph 210. Since graph 210 is an auxiliary representation of graph 200, graph 210 may also be considered an NI graph. In this example, vertex 254 may be represented by vertex set 220 in graph 210. Vertex set 220 may include vertex 254 and auxiliary vertices associated with vertex 254. The auxiliary vertices may include entry vertex 216 and exit vertex 218 that couple vertex 254. All incoming edges to vertex 254 may be coupled to entry vertex 216; and all outgoing incoming edges from vertex 254 may be coupled to exit vertex 218. Similarly, vertex 252 may be coupled to entry vertex 212 and exit vertex 214; vertex 256 may be coupled to entry vertex 222 and exit vertex 224; and vertex 258 may be coupled to entry vertex 226 and exit vertex 228.

[0041] Instead of coupling vertex 252 to vertex 254, the outlet vertex 214 of vertex 252 can be coupled to the inlet vertex 216 of vertex 254. Similarly, the outlet vertex 218 of vertex 254 can be coupled to the inlet vertices 222 and 226 of vertices 256 and 258, respectively. Here, if the edge of graph 210 is created at time instance t1, the e.created and e.expired values ​​for each of these edges can be t1 and N, respectively. In graph 210, unlike the edges that directly couple the main vertices representing entities (such as edge 202 of graph 200), main vertices 252, 254, 256 and 258 are not coupled to each other. Instead, the corresponding connections between the main vertices in graph 210 are established via corresponding outlet and inlet vertices. These outlet and inlet vertices can remain persistent, while the main vertices can expire and be replaced by new vertices.

[0042] Figure 2B An example of incorporating changes into an NI graph using an auxiliary graph according to one aspect of the present application is illustrated. Assume that at time instance t2, switch 242 is updated (e.g., new firmware is installed). Accordingly, the attributes associated with vertex 254 may be changed or modified. Changes to attributes may include, but are not limited to, the presence of new attributes, the removal or absence of existing attributes, and updates to attributes. Upon receiving updated information from the network management system, NMS230 may generate a new vertex 264 with changed attributes, which are used to represent the updated switch 242. Since the previous vertex 254 is no longer valid, the edges coupling the inlet vertex 216 and the outlet vertex 218 to the vertex 254 may expire at time instance t2. Therefore, the e.expired value for these edges may be t2. Therefore, these vertices remain valid for the duration within time instances t1 and t2.

[0043] NMS230 can also couple vertex 264 with entry vertex 216 and exit vertex 218 using corresponding edges. The e.created and e.expired values ​​for each of these edges can be t2 and N, respectively. The e.created and e.expired values ​​for the incoming edge of entry vertex 216 and the outgoing edge of exit vertex 218 can be maintained as t1 and N, respectively. Due to the use of entry vertex 216 and exit vertex 218, NMS230 does not need to remove the edge from vertex 254 to vertices 252, 256, and 258; and establish a new edge to vertex 264. As a result, even when the main vertex 254 is replaced by the new vertex 264, only the edge coupling the entry vertex and the exit vertex is changed. In this way, changes in network 100 can be effectively captured using auxiliary graphs 210 and 250.

[0044] Figure 3AAn example of a NI graph representing a network at a time instance according to one aspect of the present application is illustrated. During operation, the NMS 330 may generate a NI graph 300 representing a site 240 of the network at a time instance t1. The site 340 may include a set of devices 342, 344, 346, and 348. The graph 300 may be a graph G=(V, E). Here, V may include primary vertices that may represent entities and their secondary vertices. The entities may include the site 340 and devices 342, 344, 346, and 348. On the other hand, E may include an edge set indicating a correspondence between vertices. The graph 300 may include a vertex 310 representing the site 340 and vertices 312, 314, 316, and 318 representing devices 342, 344, 346, and 348, respectively. The secondary vertices of the vertex 310 may include an entry vertex 302 and an exit vertex 304. Similarly, for vertices 312, 314, 316, and 318, the entry vertices may be vertices 322, 324, 326, and 328, respectively, and the exit vertices may be vertices 332, 334, 336, and 338, respectively.

[0045] The e_created and e_expired values ​​for each of the edges in the graph 300 may be t1 and N, respectively. In addition, the corresponding primary vertex may be associated with a property set. For example, vertex 312 may be associated with a property set corresponding to a configuration parameter of device 342. One of the properties may include a unique identifier that can clearly identify vertex 312 in graph 300. Another property may indicate whether the vertex is a primary vertex or an auxiliary vertex. NMS 330 may maintain a graph data structure (e.g., a multidimensional array or a linked list) in the memory of a computer system to maintain information associated with graph 300. The corresponding edges of graph 300 may be represented by an edge data structure in the graph data structure. The edge data structure may be a variable indicating the e.created and e.expired values ​​for the corresponding edges.

[0046] In addition, the corresponding vertices can be represented by a vertex data structure in the graph data structure. The vertex data structure can include a set of variables representing a set of properties associated with the vertex. These variables can then store configuration parameters for the corresponding entity. One of the variables can store a unique identifier for the vertex. NMS 330 can store the graph data structure in a persistent storage device to ensure that the information represented in graph 300 is maintained during a power cycle of the computer system (e.g., due to unexpected or scheduled unavailability). As a result, NMS 130 may not need to regenerate graph 300 in such an event.

[0047] The user can instruct NMS 330 to perform a graph traversal for a time instance. When NMS 330 performs a graph traversal (e.g., a breadth-first or depth-first traversal up to a predetermined depth) on graph 300, NMS 330 can obtain a unique identifier of the starting vertex and start the traversal from the starting vertex. If the administrator wants to determine how site 340 operates at a time instance, NMS 330 can use breadth-first traversal to determine the network topology, state, and configuration at each level. On the other hand, in order to explore how a particular device or set of devices operates at a time instance, NMS 330 can use depth-first traversal. In this example, the starting vertex can be vertex 302. Even if the traversal of graph 300 can include auxiliary vertices, the traversal can also include only the main vertex. In other words, NMS 330 can distinguish between the main vertex and the auxiliary vertex of graph 300 and exclude the auxiliary vertex from the traversal accordingly. As a result, if NMS 330 traverses graph 300 for time instances between t1 and N, vertices 310 , 312 , 314 , 316 , and 318 may be included in the traversal.

[0048] Figure 3B An example of a NI graph representing a network that has been modified at another time instance according to one aspect of the present application is illustrated. If the network is modified at time instance t2, NMS 330 can obtain information indicating the change from the network management system and update graph 300 to generate an updated NI graph 350. The change may include a change to site 340. Accordingly, NMS 330 can generate a new vertex 320 incorporating the change to site 340, thereby generating a new graph 350. Since the previous vertex 310 is no longer valid, the edges coupling the inlet vertex 302 and the outlet vertex 304 to the vertex 310 can expire at time instance t2. Therefore, the e.expired value for these edges can be t2. Therefore, these vertices remain valid for the duration within time instances t1 and t2. NMS 330 can also couple vertex 320 having the inlet vertex 302 and the outlet vertex 304 to vertex 264 having the corresponding edge. The e.created and e.expired values ​​for each of these edges can be t2 and N, respectively.

[0049] There may be several other changes in site 340. For example, one or more attributes of device 342 may be removed, one or more attributes may be added to device 344, one or more attributes of device 346 may be updated, device 348 may be removed from site 340 (indicated using a cross), and a new device 368 may be added to site 340. Based on these changes, NMS 330 may generate new vertices 352, 354, and 356 representing newer versions of devices 342, 344, and 346, respectively. The edges coupling the auxiliary vertices of previous vertices 312, 314, and 316 may then expire. Accordingly, the e.expired values ​​for these edges may be t2. The new edges may then couple the corresponding auxiliary vertices to vertices 352, 354, and 356. The e.created and e.expired values ​​for each of these edges may be t2 and N, respectively.

[0050] Since device 348 is removed, the edge coupling corresponding vertex 318 can expire at time instance t2. In addition, the edge coupling entry vertex 328 can also expire. Therefore, the e.expired value for these edges can be t2. Additionally, a new vertex 360 representing a newly added device 368 can be added to graph 350. Vertex 360 can be coupled to entry vertex 362 and exit vertex 364 via corresponding edges. Exit vertex 304 of vertex 320 can be coupled to vertex 362 via corresponding edges. The e.created and e.expired values ​​for each of these edges can be t2 and N, respectively. In this way, graph 350 can then represent site 340 at time instance t2.

[0051] During operation, NMS 330 may receive instructions to compare the topology, status, and configuration of site 340 at time instances t1 and t2. NMS 330 may present a user interface to the user for receiving instructions. Examples of user interfaces may include, but are not limited to, graphical user interfaces, text interfaces, touch interfaces, gesture detection interfaces, virtual or augmented reality interfaces, and motion detection interfaces. NMS 330 may then traverse the active edges at time instance t1. Figure 3A NMS 330 can also traverse the graph 300 at time instance t2 via the valid edges. Figure 3B During the corresponding traversal, NMS 330 may present the properties represented by the vertices of the corresponding traversal. Thus, time instances t1 and t2 may be target time instances for the corresponding traversal.

[0052] In order to initiate the corresponding traversal, NMS 330 can determine the initial or starting vertex based on the unique identifier associated with the vertex. The initial vertex can be the starting point of the traversal. If the traversal is active and may not be associated with a specific problem, the initial vertex can be the entry vertex 302 associated with vertices 310 and 320. The traversal can then be a top-down traversal of the vertices representing the device. The sequence of the top-down traversal for the corresponding vertex set can be the entry vertex, the main vertex, and the exit vertex. Since the initial vertex at time instance t2 may have expired at time instance t2, NMS 330 can determine the initial vertex for each time instance. For the top-down traversal of graph 350, the sequence of vertices explored by the traversal can be vertices 302, 320, 304, 322, 352, 332, 324, 354, 334, 326, 356, 336, 328, 318, 338, 362, 360, and 364.

[0053] On the other hand, if the traversal is reactive, which can respond to a specific problem, the initial vertex can be a client-level vertex, such as a vertex representing a device (e.g., vertex 332, 334, 336, 338, or 364). The problem can be the experience at the client site (e.g., performance degradation at the network device). The traversal can then be a bottom-up traversal. The sequence of bottom-up traversals for the corresponding vertex set can be an exit vertex, a main vertex, and an entry vertex. Thus, the bottom-up traversal can gradually traverse upward to vertices representing large entities (e.g., sites). For a bottom-up traversal of the graph 350 starting from vertex 336, the sequence of vertices explored by the traversal can be vertices 336, 356, 326, 304, 320, and 302. Based on the traversal, the NMS 330 can determine the corresponding vertex sets that are reachable via valid vertices at time instances t1 and t2. The NMS 330 can identify the vertices that exist in the two vertex sets and determine the attribute differences for each of the identified vertices. Differences can include removed attributes, new attributes, and updated attributes.

[0054] For example, at time instance t1, the traversal may explore vertices 312, 314, and 316 via corresponding valid edges. On the other hand, at time instance t1, the traversal may explore vertices 352, 354, and 356 via corresponding valid edges. During the exploration, the NMS 330 may present, via a user interface, the attributes represented by the corresponding traversed or explored vertices associated with the corresponding entity. By comparing vertices 312 and 352, the NMS 330 may determine that the attribute indicated by vertex 312 is removed at vertex 352. Similarly, the NMS 330 may determine that an attribute that does not exist in vertex 314 is added to vertex 352, and that the attribute is updated at vertex 356 relative to vertex 316. The NMS 330 may also compare the vertex sets to identify the removed vertex 318 and the new vertex 360. In this way, the NMS 330 may effectively determine and compare the configuration, state, and topology associated with the site 340 at time instances t1 and t2.

[0055] Figure 4A A flowchart illustrating an example of a process for an NMS to determine the topology, state, and configuration of a network at a target time instance according to one aspect of the present application is presented. During operation, the NMS may generate a graph representing the configuration, state, and topology of the network, wherein respective vertices correspond to entities and respective edges indicate relationships between pairs of vertices (operation 402). The NMS may obtain information associated with respective entities (such as sites and devices) of the network. The NMS may then use the vertices of the graph to represent the entities. The NMS may then couple the vertices to other vertices that have relationships with the corresponding edges. The NMS may determine first and second timestamps for the respective edges, wherein the first and second timestamps indicate respective time instances when the relationships are established and terminated, thereby indicating a valid time period for the edges (operation 404). When the edge remains valid, the second timestamp may have a large value, such as infinity, indicating that the corresponding relationship has not expired. The NMS may then receive instructions for comparing the topology, state, and configuration of the network from an interface of the NMS (operation 406). Accordingly, the NMS may determine the topology, network state set, and configuration set of the network at the target time instance indicated in the instruction by traversing the edges that are valid at the target time instance (operation 408). The graph traversal may start from a pre-selected initial vertex and explore corresponding vertices reachable via valid edges from the traversed vertex.

[0056] Figure 4BA flowchart illustrating an example of a process for an NMS according to one aspect of the present application to compare corresponding NI graphs at different time instances is presented. During operation, the NMS may identify an initial vertex in the NI graph based on a unique identifier and a corresponding time instance (operation 422). The NMS may present an interface, via which a user may provide the unique identifier to the NMS. Examples of interfaces may include, but are not limited to, a text interface, a graphical user interface, a touch interface, and a gesture or motion interface. The NMS may then traverse the graph via valid edges at the initial time instance to determine the initial vertex (operation 424). If the edge falls between the created timestamp and the expired timestamp, the edge may be valid at a certain time instance. The traversal may then explore the vertices reachable via the edges at the time instance. The NMS may also traverse the graph via valid edges at subsequent time instances to determine subsequent vertices (operation 426). The NMS may then compare the initial vertex with the subsequent vertex (operation 428), and determine the difference between the vertices based on the comparison (operation 430). The comparison may include determining, for the same vertex, whether there are new, removed, or updated attributes at the subsequent time instance relative to the initial timestamp.

[0057] Figure 4C A flowchart illustrating an example of a process in which an NMS according to one aspect of the present application determines differences between corresponding NI graphs at different time instances is presented. During operation, the NMS may determine a set of vertices with removed attributes (operation 432) and a set of vertices with new attributes (operation 434). The NMS may also determine a set of vertices with updated attributes (operation 436). If the initial instance of the vertex includes an attribute that is missing in a subsequent instance, the vertex is added to the set of vertices with the removed attribute. On the other hand, if the initial instance of the vertex does not include an attribute that exists in a subsequent instance, the vertex is added to the set of vertices with the new attribute. In addition, if the initial instance of the vertex includes an attribute that is updated in a subsequent instance, the vertex is added to the set of vertices with the updated attribute. Each of these vertex sets may appear at a different time instance. For each vertex, the attributes at different time instances are compared with each other to determine the difference. In addition, the NMS may also determine new vertices in the subsequent vertices (operation 438) and vertices removed from the initial vertex (operation 440).

[0058] Figure 4DA flowchart illustrating an example of a process for an NMS to determine vertices of an NI graph at a time instance according to one aspect of the present application is presented. During operation, the NMS can find a vertex with a unique identifier and a valid edge at a given time instance as an initial or starting vertex (operation 452). A user can provide instructions with a unique identifier and a time instance to the NMS. The instructions can be received via an interface presented by the NMS. The NMS can then determine subsequent vertices at a predetermined depth from the initial vertex (operation 454) and determine whether the edges to the subsequent vertices are valid (operation 456). For example, if the depth is 1, each of the subsequent vertices can be coupled to the initial vertex using one edge.

[0059] If the edge to the subsequent vertex is valid, the NMS may include the subsequent vertex in the vertex set (operation 464). On the other hand, if the edge to the subsequent vertex is not valid, the NMS may determine whether the traversal is complete (operation 458). The traversal may be complete when all vertices up to a threshold depth (e.g., a maximum depth to be explored) are explored. If the traversal is complete, the NMS may determine whether a depth threshold is reached (operation 460). If the depth threshold is not reached, the NMS may increase the depth of the traversal (operation 462). However, if the traversal is not complete (operation 458) or when the depth is increased (operation 462), the NMS may continue to determine another subsequent vertex at a predetermined depth from the initial vertex (operation 454).

[0060] Figure 5A A flow chart illustrating an example of a process for an NMS according to one aspect of the present application to determine attribute differences between corresponding NI graphs at different time instances is presented. During operation, the NMS may select a vertex that exists in an initial vertex and a subsequent vertex (operation 502) and select an attribute associated with the vertex (operation 504). The NMS may then perform several checks to determine the difference associated with the attribute. Accordingly, the NMS may determine whether the attribute is in both the initial vertex and the subsequent vertex (operation 506). If the attribute is in both the initial vertex and the subsequent vertex, the NMS may also determine whether the attribute is a modified attribute (operation 508). If the attribute is a modified attribute, the NMS may include the attribute in a modified attribute list associated with the vertex (operation 510).

[0061] On the other hand, if the attribute is in both the initial vertex and the subsequent vertex (operation 506) or is not a modified attribute (operation 508), the NMS may determine whether the attribute is in the initial instance of the vertex but not in the subsequent instance (operation 512). If the attribute is in the initial instance of the vertex but not in the subsequent instance of the vertex, the NMS may include the attribute in a list of removed attributes associated with the vertex (operation 514). Otherwise, the NMS may determine whether the attribute is not in the initial instance of the vertex but is in the subsequent instance of the vertex (operation 516). If the attribute is not in the initial instance of the vertex but is in the subsequent instance of the vertex, the NMS may include the attribute in a new attribute list associated with the vertex (operation 518).

[0062] When performing the check (operations 506, 508, 512, and 516) or including the attribute to the list (operation 510, 514, or 516), the NMS may determine whether all attributes associated with the vertex are checked (operation 520). If all attributes are not checked, the NMS may proceed to select another attribute associated with the vertex (operation 504). However, if all attributes are checked, the NMS may determine whether all vertices present in the initial and subsequent vertices are checked (operation 522). If all vertices are not checked, the NMS may proceed to select another vertex present in the initial and subsequent vertices (operation 502). If all vertices are checked, the NMS may present a list associated with the corresponding vertex (operation 524).

[0063] Figure 5B A flow chart illustrating an example of a process for an NMS according to one aspect of the present application to determine vertex differences between corresponding NI graphs at different time instances is presented. During operation, the NMS may examine new and removed vertices. To do this, the NMS may select a vertex from the union of an initial vertex and a subsequent vertex (operation 552) and determine whether the vertex is not in the initial vertex but in the subsequent vertex (operation 554). If the vertex is not in the initial vertex but in the subsequent vertex, the NMS may include the vertex in a new vertex list (operation 556). Otherwise, the NMS may determine whether the vertex is in the initial vertex but not in the subsequent vertex (operation 558).

[0064] If the vertex is in the initial vertices but not in the subsequent vertices, the NMS may include the vertex in the list of removed vertices (operation 560). Otherwise, the vertex may be present in both the initial and subsequent vertices. When performing the check (operations 554 and 558) or including the vertex in the list (operation 556 or 562), the NMS may determine whether all vertices in the union are checked (operation 562). If all vertices are checked, the NMS may present corresponding lists of new and removed vertices on the user interface of the NMS (operation 564).

[0065] Figure 6 An example of a computing system that facilitates NMS to compare network topologies and configurations at different time instances according to one aspect of the present application is illustrated. Computing system 600 may include a processor set 602, a memory unit 604, a network interface card (NIC) 606, and a storage device 608. The memory unit 604 may include a volatile memory device set (e.g., a dual in-line memory module (DIMM)). In addition, if desired, computing system 600 may be coupled to a display device 612, a keyboard 614, and a pointing device 616. The storage device 608 may store an operating system 618, a NI management system 620, and data 636.

[0066] The NI management system 620 may include instructions that, when executed by the computing system 600, may cause the computing system 600 to perform the methods and / or processes described in the present disclosure. Specifically, if the computing system 600 is a transmitter device, the NI management system 620 may include instructions for generating a NI graph representing a network (graph logic block 622). The NI management system 620 may also include instructions for representing the NI graph as an auxiliary graph (auxiliary logic block 624). The NI management system 620 may include instructions for determining and maintaining created and expired timestamps for corresponding edges of the NI graph (time logic block 626).

[0067] The NI management system 620 may include instructions for presenting a user interface (interface logic block 628). The NI management system 620 may also include instructions for receiving a comparison of the topology, state, and configuration of the network at two time instances (interface logic block 628). The NI management system 620 may also include instructions for traversing the NI graph via valid edges at the time instance to determine a set of vertices (traversal logic block 630). In addition, the NI management system 620 may include instructions for determining the difference between the two vertex sets (difference logic block 632). The difference may include identifying new and removed vertices, and determining new, removed, and updated attributes of corresponding vertices present in the two vertex sets.

[0068] NI management system 620 may also include instructions for sending and receiving packets based on respective destinations (communication logic block 634). Data 636 may include any data that facilitates the operation of NI management system 620. Data 636 may include, but is not limited to, data structures representing NI graphs, initial vertex information, and outputs of graph traversals and graph differences.

[0069] Figure 7An example of an apparatus that facilitates an NMS to compare network topologies and configurations at different time instances according to one aspect of the present application is illustrated. NI management apparatus 700 may include multiple units or apparatuses that may communicate with each other via wired, wireless, quantum optical or electrical communication channels. Apparatus 700 may be implemented using one or more integrated circuits and may include, for example, Figure 7 The apparatus 700 may include fewer or more units or devices than those shown. In addition, the apparatus 700 may be integrated with a computer system or implemented as a dedicated device. For example, the apparatus 700 may be an accelerator in a computer system. Specifically, the apparatus 700 may include units 702-714, and the units 702-714 perform the same as Figure 6 The logic blocks 622-634 of the NI management system 620 have similar functions or operations, including: a map unit 702; an auxiliary unit 704, a time unit 706; an interface unit 708; a traversal unit 710, a difference unit 712; and a communication unit 714.

[0070] The description herein is presented so that any person skilled in the art can make and use the present invention and is provided in the context of a specific application and its requirements. Various modifications to the disclosed examples will be apparent to those skilled in the art and the general principles defined herein may be applied to other examples and applications without departing from the spirit and scope of the present invention. Therefore, the present invention is not limited to the examples shown, but conforms to the widest scope consistent with the claims.

[0071] One aspect of the present technology can provide a network management system that can orchestrate a network. During operation, the system can generate a graph representing the configuration, state, and topology of the network. The corresponding vertices of the graph can correspond to entities in the network and the corresponding edges of the graph can indicate the relationship between the vertex pairs. The system can determine a first timestamp and a second timestamp for the corresponding edges of the graph. The first timestamp indicates the time instance when the relationship indicated by the edge is established. The second timestamp indicates the time instance when the relationship indicated by the edge is terminated. Here, the time range between the first and second timestamps indicates the valid time period for the edge. The system can then receive instructions for comparing the topology, state, and configuration of the network from the interface of the system. Accordingly, the system can determine the topology of the network at the target time instance indicated by the instruction, the network state set, and the network configuration set by traversing the edges of the graph that are valid at the target time instance based on the instruction.

[0072] In variations on this aspect, upon determining a change in the network at a first time instance, the system may change edges in the graph that were created at a previous time instance.

[0073] In another variation, if the modification of the edge includes the removal of the edge, the system may set the first time instance to the second timestamp for the edge. On the other hand, if the modification of the edge includes the addition of the edge, the system may set the first time instance to the first timestamp for the edge. Here, a value greater than the first timestamp is set to the second timestamp for the edge.

[0074] In another variation, the system may determine a set of vertices affected by the change. The set of vertices may be associated with the same entity of the network. The set of vertices may include a primary vertex and multiple secondary vertices, and edges may be coupled to the secondary vertices.

[0075] In another variation, the system may modify an edge by coupling the edge to a new primary vertex while the edge remains coupled to the secondary vertex.

[0076] In another variation, the system may determine, at the first time instance, one or more of: a missing attribute, a new attribute, a changed attribute, a new vertex, and a missing vertex.

[0077] In a variation on this aspect, the system may identify a starting vertex for traversing the graph.

[0078] In another variation, the traversal depth from the starting vertex may be predetermined.

[0079] In a variation on this aspect, a first vertex corresponding to a first entity of the network may represent a set of attributes associated with the first entity. Here, one attribute in the set of attributes is a unique identifier that identifies a vertex in the graph.

[0080] In a variation on this aspect, upon receiving a second instruction from an interface of the management system, the system may determine a second topology, a second network state set, and a second configuration set of the network at a second target time instance indicated by the second instruction by performing a second traversal of the graph. The system may then determine a difference between the first and second topologies and a difference between the first and second configuration sets.

[0081] The data structures and codes described in this detailed description are typically stored on a computer-readable storage medium, which can be any device or medium that can store code and / or data for use by a computer system. Computer-readable storage media include, but are not limited to, volatile memory; non-volatile memory; magnetic and optical storage devices such as disks, tapes, CDs (compact disks), DVDs (digital versatile disks or digital video disks); or other media capable of storing computer-readable media now known or later developed.

[0082] The methods and processes described in the detailed description section may be implemented as code and / or data, which may be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and / or data stored on the computer-readable storage medium, the computer system executes the methods and processes embodied as data structures and codes and stored in the computer-readable storage medium.

[0083] The methods and processes described herein may be performed by and / or included in hardware logic blocks or devices. These logic blocks or devices may include, but are not limited to, application specific integrated circuit (ASIC) chips, field programmable gate arrays (FPGAs), dedicated or shared processors that execute specific software logic blocks or code segments at specific times, and / or other programmable logic devices now known or later developed. When the hardware logic blocks or devices are activated, they execute the methods and processes included therein.

[0084] The above descriptions of the embodiments of the present invention are for illustration and description purposes only. They are not intended to be exhaustive or limit the present disclosure. Therefore, many modifications and variations will be apparent to those skilled in the art. The scope of the present invention is defined by the appended claims.

Claims

1. A method comprising: generating, by a network management system, a graph representing a configuration, state, and topology of a network, wherein respective vertices of the graph correspond to entities in the network, and wherein respective edges of the graph indicate relationships between pairs of vertices; determining, by the network management system, a first timestamp and a second timestamp for a corresponding edge of the graph, wherein the first timestamp indicates a time instance when a relationship indicated by the edge is established, wherein the second timestamp indicates a time instance when the relationship indicated by the edge is terminated, and wherein a time range between the first timestamp and the second timestamp indicates a validity period for the edge; receiving, from an interface of the network management system, instructions for comparing the topology, status, and configuration of the network; as well as The network management system determines, based on the instruction, a topology, a network state set, and a configuration set of the network at the target time instance indicated by the instruction by traversing edges of the graph valid at the target time instance. 2 . The method of claim 1 , further comprising, in response to determining a change in the network at a first time instance, changing an edge in the graph that was created at a previous time instance.

3. The method according to claim 2, further comprising: In response to modifying the edge comprising removing the edge, setting the first time instance to the second timestamp for the edge; as well as In response to changing the edge comprising adding the edge, the first time instance is set as the first timestamp for the edge, wherein a value greater than the first timestamp is set as the second timestamp for the edge.

4. The method of claim 2, further comprising determining a set of vertices affected by the change, wherein the set of vertices are associated with a same entity of the network, wherein the set of vertices comprises a primary vertex and a plurality of secondary vertices; and wherein the edges are coupled to the secondary vertices. 5 . The method of claim 4 , wherein modifying the edge further comprises coupling the edge to a new primary vertex while the edge remains coupled to the secondary vertex.

6. The method of claim 2, further comprising determining, at the first time instance, one or more of: a missing attribute, a new attribute, a changed attribute, a new vertex, and a missing vertex.

7. The method of claim 1, further comprising identifying a starting vertex for the traversal of the graph. The method of claim 7 , wherein a depth of the traversal from the starting vertex is predetermined.

9. The method of claim 1, wherein a first vertex corresponding to a first entity of the network represents a set of properties associated with the first entity, and wherein one property in the set of properties is a unique identifier that identifies the vertex in the graph.

10. The method according to claim 1, further comprising: In response to a second instruction from the interface of the management system, determining a second topology, a second set of network states, and a second set of configurations of the network at a second target time instance indicated by the second instruction by performing a second traversal of the graph; determining a difference between the first topology and the second topology; as well as Differences between the first configuration set and the second configuration set are determined.

11. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor of a computer facilitating a network management system, implement a method comprising: generating a graph representing a configuration, state, and topology of a network, wherein respective vertices of the graph correspond to entities in the network, and wherein respective edges of the graph indicate relationships between pairs of vertices; determining a first timestamp and a second timestamp for a corresponding edge of the graph, wherein the first timestamp indicates a time instance when a relationship indicated by the edge was established, wherein the second timestamp indicates a time instance when the relationship indicated by the edge was terminated, and wherein a time range between the first timestamp and the second timestamp indicates a validity time period for the edge; receiving, from an interface of the network management system, instructions for comparing the topology, status, and configuration of the network; as well as Based on the instruction, a topology, a network state set, and a configuration set of the network at the target time instance indicated by the instruction are determined by traversing the edges of the graph valid at the target time instance.

12. The non-transitory computer-readable storage medium of claim 11, wherein the method further comprises, in response to determining a change in the network at a first time instance, changing an edge in the graph that had been created at a previous time instance.

13. The non-transitory computer-readable storage medium of claim 12, wherein the method further comprises: In response to modifying the edge comprising removing the edge, setting the first time instance to the second timestamp for the edge; as well as In response to changing the edge comprising adding the edge, the first time instance is set as the first timestamp for the edge, wherein a value greater than the first timestamp is set as the second timestamp for the edge.

14. The non-transitory computer-readable storage medium of claim 12, wherein the method further comprises: determining a set of vertices affected by the modification, wherein the set of vertices is associated with a same entity of the network, wherein the set of vertices includes a primary vertex and a plurality of secondary vertices; And wherein the edge is coupled to the secondary vertex.

15. The non-transitory computer-readable storage medium of claim 14, wherein altering the edge further comprises coupling the edge to a new primary vertex while the edge remains coupled to the secondary vertex.

16. The non-transitory computer-readable storage medium of claim 12, wherein the method further comprises determining, at the first time instance, one or more of: a missing attribute, a new attribute, a changed attribute, a new vertex, and a missing vertex. 17 . The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises assigning a unique identifier to a starting vertex for the traversal of the graph, wherein a depth of the traversal from the starting vertex is predetermined.

18. The non-transitory computer-readable storage medium of claim 11, wherein a first vertex corresponding to a first entity of the network represents a set of properties associated with the first entity, and wherein one property in the set of properties is a unique identifier that identifies the vertex in the graph.

19. The non-transitory computer-readable storage medium of claim 11, wherein the method further comprises: In response to a second instruction from the interface of the management system, determining a second topology, a second set of network states, and a second set of configurations of the network at a second target time instance indicated by the second instruction by performing a second traversal of the graph; determining a difference between the first topology and the second topology; as well as Differences between the first configuration set and the second configuration set are determined.

20. A computer system comprising: processor; Memory devices; Forwarding hardware; as well as control circuitry for facilitating the interface logic block, the graph logic block, and the traversal logic block; and Wherein the interface logic block is used to obtain instructions from the interface of the network management system; The diagram logic blocks are used to: generating a graph representing a configuration, state, and topology of a network, wherein respective vertices of the graph correspond to entities in the network, and wherein respective edges of the graph indicate relationships between pairs of vertices; as well as determining a first timestamp and a second timestamp for a corresponding edge of the graph, wherein the first timestamp indicates a time instance when a relationship indicated by the edge was established, wherein the second timestamp indicates a time instance when the relationship indicated by the edge was terminated, and wherein a time range between the first timestamp and the second timestamp indicates a validity period for the edge; and The traversal logic block is used to determine, based on the instruction, the topology, network state set and configuration set of the network at the target time instance indicated by the instruction by traversing the edges of the graph valid at the target time instance.

Citation Information

Patent Citations

  • Information processing method, computing device and computer readable medium

    CN113014535A

  • Determining organization level network topology

    CN116455759A

  • Feature-based network embedding

    US20210014124A1

  • Method for Modeling a Network Topology of a Low-Voltage Network

    US20220405437A1