Method and system for comparing network topology, state and configuration at different time instances

By representing the network as an NI graph and using timestamps and auxiliary graphs, the challenge of comparing the topology, status, and configuration of network management systems at different time instances is solved, enabling efficient troubleshooting and diagnosis.

CN119728440BActive Publication Date: 2026-02-13HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Existing network management systems struggle to effectively compare and detect changes in the topology, state, and configuration of complex distributed networks at different times, leading to difficulties in troubleshooting.

Method used

The network is represented as a network image (NI) graph, edges are timestamped, and the topology, state and configuration of the network at different time instances are determined by traversing the valid edges. Auxiliary graphs are used to represent network changes, and primary and secondary vertices are distinguished to capture network variations.

Benefits of technology

It enables efficient troubleshooting of complex distributed networks at different times, reduces the burden of information maintenance, and improves the accuracy of fault detection and diagnosis.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728440B_ABST
    Figure CN119728440B_ABST
Patent Text Reader

Abstract

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

Description

BACKGROUND

[0001] Switches in a network can support different protocols and services. In addition, the switches can be distributed among different locations (e.g., sites) of the network. Identifying errors and misconfigurations in such a complex network can require efficiently determining changes in the network. BRIEF DESCRIPTION OF DRAWINGS

[0002] Figure 1 An example of a network management system (NMS) representing a network using a network image (NI) graph is illustrated in accordance with an aspect of the present application.

[0003] Figure 2A An example of augmenting an NI graph using an auxiliary graph is illustrated in accordance with an aspect of the present application.

[0004] Figure 2B An example of incorporating changes into an NI graph using an auxiliary graph is illustrated in accordance with an aspect of the present application.

[0005] Figure 3A An example of an NI graph representing a network at a time instance is illustrated in accordance with an aspect of the present application.

[0006] Figure 3B An example of an NI graph representing a network changed at another time instance is illustrated in accordance with an aspect of the present application.

[0007] Figure 4A A flowchart illustrating an example of a process of an NMS determining a topology, a state, and a configuration of a network at a target time instance in accordance with an aspect of the present application is presented.

[0008] Figure 4B A flowchart illustrating an example of a process of an NMS comparing respective NI graphs at different time instances in accordance with an aspect of the present application is presented.

[0009] Figure 4C A flowchart illustrating an example of a process of an NMS determining differences between respective NI graphs at different time instances in accordance with an aspect of the present application is presented.

[0010] Figure 4D A flowchart illustrating an example of a process of an NMS determining vertices of an NI graph at a time instance in accordance with an aspect of the present application is presented.

[0011] Figure 5A A flowchart illustrating an example of a process of an NMS determining attribute differences between respective NI graphs at different time instances in accordance with an aspect of the present application is presented.

[0012] Figure 5BA flow diagram illustrating an example of a process for an NMS to determine vertex differences between respective NI graphs at different time instances, in accordance with one aspect of the present application, is presented.

[0013] Figure 6 An example of a computing system that facilitates an NMS being able to compare network topology and configuration at different time instances, in accordance with one aspect of the present application, is illustrated.

[0014] Figure 7 An example of an apparatus that facilitates an NMS being able to compare network topology and configuration at different time instances, in accordance with one aspect of the present application, is illustrated.

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

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

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

[0018] Aspects described herein solve the problem of effectively comparing a topology, state, and configuration of a network at different time instances by: (i) representing the network as a network image (NI) graph, where entities and relationships in the network are represented as vertices and edges, respectively; (ii) maintaining a pair of time stamps for respective edges to indicate a valid time period for the edge; and (iii) traversing the NI graph via valid edges at a time instance to determine a 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 respective time instances when the network was stable and when the problem occurred. Changes in the network can be effectively detected by generating a graph difference between corresponding NI graph instances at time instances.

[0019] With existing technology, if a network management system, such as a network orchestrator, detects a problem (e.g., a fault) in a network, the system needs to determine a cause of the problem. The problem is often caused by a change in the network (e.g., a software upgrade or presence of a new device). If the system detects the problem after a change in the network, the system can need to identify a cause of the problem. In a distributed network that spans multiple sites, it is challenging to determine why the change and how the change caused the problem. Typically, if the network starts to malfunction, 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 that are applied on respective switches in the network.

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

[0021] Further, such approaches can require obtaining and maintaining periodic snapshots (i.e., at some time interval). It can be inefficient to keep such a large amount of information. Further, the tools can not support determining network-wide changes. As a result, even though the tools can compare configurations of individual devices, it can be cumbersome and error-prone to use these tools to compare a topology, state, and configuration of the network.

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

[0023] The respective vertices can be associated with a set of attributes that indicate a configuration of the entity represented by the vertex. Further, the NMS can maintain, for each edge, two timestamps that indicate 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 timestamp of expiration can be a large value, such as "infinity." The created and expired timestamps indicate a valid time period for the edge. The NMS can then determine the network topology (e.g., physical and logical connections), state (e.g., parameters that indicate 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 edge that is created at the time instance and has 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 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 exploring vertices via corresponding valid edges from a pre-selected initial vertex. The depth threshold can indicate how many consecutive edges can be explored from the initial vertex. If the traversal is proactive, the traversal can not be associated with a particular problem, then the initial vertex 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 particular problem, then the initial vertex can represent a client or a 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 configurations of the network based on corresponding attributes, the NMS can effectively determine changes in the network by comparing the two sets of vertices. Thus, the NMS can support effective troubleshooting in the network by effectively comparing configurations, states, and topologies of the network at different time instances.

[0025] Further, the NMS can represent the NI graph as an auxiliary graph to efficiently 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 regeneration of edges coupling vertices representing site devices. To efficiently represent this change, the corresponding vertex can be represented by three vertices in the auxiliary graph. One of these vertices can be a primary vertex representing the entity. The other two vertices can be secondary vertices associated with the primary vertex.

[0026] The secondary vertices can include an ingress and egress vertex coupled to the primary vertex. The egress vertex of the site can then be coupled to the corresponding ingress vertex of the device. As a result, even if the primary vertex of the site is updated, only the edges coupling the ingress and egress vertices are changed. In this way, the auxiliary graph can 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 can refer to any standalone or fabric switch operating in any network layer. "Switch" should not be interpreted to limit examples of the invention to layer-2 networks. Any device that can forward traffic to an external device or another switch can be referred to as a "switch." Any physical or virtual device that can forward traffic to an end device (e.g., a virtual machine or switch operating on a computing device) can be referred to as a "switch." Examples of "switch" include, but are not limited to, a layer-2 switch, a layer-3 router, a routing switch, a component of a Gen-Z network, or a fabric switch that includes 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 to limit examples of the invention to a particular layer of a network protocol stack. "Packet" can be replaced by other terms referring to a group of bits, such as "message," "frame," "cell," "datagram," or "transaction." Further, the term "port" can refer to a port capable of receiving or transmitting 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 represented by an NMS using NI graphs is illustrated in accordance with an aspect of the present application. An NMS 130 (e.g., a network orchestrator) can manage a network 100. The network 100 can include several switches and devices, and can include heterogeneous network components, such as Layer 2 and Layer 3 hops and tunnels. In some examples, the network 100 can be an Ethernet, InfiniBand, or other network, and can use corresponding communication protocols, such as Internet Protocol (IP), Fibre Channel over Ethernet (FCoE), or other protocols. The network 100 can span multiple sites 110 and 120. Thus, the network 100 can be a multi-site distributed network. The site 110 can include switches 111, 113, 114, 116, and 118; the site 120 can include switches 122, 124, and 126. End devices (e.g., user devices) 132 and 134 can be coupled to the switch 126. Respective switches in respective sites can be associated with MAC addresses and IP addresses.

[0030] In respective sites of the network 100, the switches can be coupled to each other via links or tunnels. Examples of tunnels can include, but are not limited to, VXLAN, Generic Routing Encapsulation (GRE), Network Virtualization using GRE (NVGRE), Generic Network Virtualization Encapsulation (Geneve), Internet Protocol Security (IPsec), and Multiprotocol Label Switching (MPLS). Tunnels in a site can form over an underlay network (or base network). The underlay network can be a physical network, and respective links of the underlay network can be physical links. Respective pairs of switches in the underlay network can be Border Gateway Protocol (BGP) peers.

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

[0032] With existing technology, if the NMS 130 detects a problem (e.g., a fault) in the network 100, the NMS 130 needs to determine the cause of the problem. The problem is often caused by a change in the network 100. For example, if the firmware of a switch, such as the switch 122, is upgraded, a change has occurred in the network 100. If the problem is detected after the change, the cause of the problem can be related to the change. Since the network 100 is a distributed network that spans multiple sites, it can be challenging to determine the impact of the change on the problem. Specifically, if an error, such as a VLAN conflict, occurs in the network 100, the changed instance of the network 100 can be compared to a stable instance of the network 100.

[0033] However, such a comparison can require maintaining a snapshot or image of the stable instance of the network 100, which can include a configuration dump. It can be inefficient to maintain such a large amount of information for the network 100. Furthermore, the network 100 can deploy one or more network tools that are capable of capturing snapshots or images of individual devices of the network 100. These tools can compare the snapshots and determine changes to the devices. These tools can not support determining changes across the network 100. As a result, the comparison process can need to be repeated for all devices in the network 100. Therefore, it can be cumbersome and error-prone to compare the topology, state, and configuration of the network 100 using these tools.

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

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

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

[0037] The relationship between vertices 162 and 164 can remain valid while switch 122 remains in site 120. Thus, edge 140 can also remain valid, indicating the relationship. During the valid time period of edge 140, e.expired 144 can include a large value N, such as "infinity" (e.g., assigned based on an infinity function supported by the underlying development model). In this way, e.created 142 and e.expired 144 can indicate the valid time period for edge 140. NMS 130 can then determine the topology, state, and configuration of network 100 at a given time instance by traversing the valid edges of NI graph 150. Any valid edges (i.e., created and not expired) at that 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 an issue is detected in network 100, NMS 130 can determine a set of vertices by traversing NI graph 150 at time instance ti when network 100 is stable. NMS 130 can then determine another set of vertices at time instance t2 when the issue is detected.

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

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

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

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

[0042] Figure 2B An example of incorporating changes into the NI graph using auxiliary graphs is illustrated in accordance with an aspect of the present application. Assume that at time instance t2, switch 242 is updated (e.g., new firmware is installed). Accordingly, the attributes associated with vertex 254 can be changed or modified. The changes to the attributes can include, but are not limited to, the existence of new attributes, the removal or non-existence of existing attributes, and updates to the attributes. Upon receiving the updated information from the network management system, NMS 230 can generate a new vertex 264 with the changed attributes to represent the updated switch 242. Since the previous vertex 254 is no longer valid, the edges coupling the ingress vertex 216 and the egress vertex 218 to vertex 254 can expire at time instance t2. Thus, the e.expired value for these edges can be t2. Accordingly, these vertices remain valid for the duration of time instances t1 and t2.

[0043] NMS 230 can also couple vertex 264 with ingress vertex 216 and egress vertex 218 with 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 ingress vertex 216 and the outgoing edge of egress vertex 218 can remain t1 and N, respectively. Due to the use of ingress vertex 216 and egress vertex 218, NMS 230 need not remove the edges from vertex 254 to vertices 252, 256, and 258; and establish new edges to vertex 264. As a result, only the edges coupling the ingress and egress vertices are changed even when the primary vertex 254 is replaced by the new vertex 264. In this way, the 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 is illustrated in accordance with an aspect of the present application. During operation, NMS 330 can generate a NI graph 300 representing sites 240 of a network at time instance tl. Sites 340 can include device sets 342, 344, 346, and 348. Graph 300 can be graph G = (V, E). Here, V can include primary vertices and their secondary vertices that can represent entities. Entities can include sites 340 and devices 342, 344, 346, and 348. On the other hand, E can include a set of edges that indicate corresponding relationships between vertices. Graph 300 can include vertex 310 that represents site 340 and vertices 312, 314, 316, and 318 that represent devices 342, 344, 346, and 348, respectively. Secondary vertices of vertex 310 can include entry vertex 302 and exit vertex 304. Similarly, for vertices 312, 314, 316, and 318, entry vertices can be vertices 322, 324, 326, and 328, respectively, and exit vertices can be vertices 332, 334, 336, and 338, respectively.

[0045] e_created and e_expired values for each of the edges in graph 300 can be tl and N, respectively. In addition, the corresponding primary vertices can be associated with a set of attributes. For example, vertex 312 can be associated with a set of attributes that correspond to configuration parameters of device 342. One of the attributes can include a unique identifier that clearly identifies vertex 312 in graph 300. Another attribute can indicate whether the vertex is a primary vertex or a secondary vertex. NMS 330 can maintain a graph data structure (e.g., a multi-dimensional array or a linked list) in a memory of a computer system to maintain information associated with graph 300. The corresponding edges of graph 300 can be represented by edge data structures in the graph data structure. An edge data structure can be a variable that indicates e.created and e.expired values for the corresponding edge.

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

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

[0048] Figure 3B An example of an NI graph representing a network altered at another time instance is illustrated in accordance with an aspect of the present application. If the network is altered at a time instance t2, the NMS 330 can obtain information indicating the alteration from the network management system and update the graph 300 to generate an updated NI graph 350. The alteration can include an alteration to the site 340. Accordingly, the NMS 330 can generate a new vertex 320 that incorporates the alteration to the site 340, thereby generating the new graph 350. Since the previous vertex 310 is no longer valid, the edges coupling the entry vertex 302 and the exit vertex 304 to the vertex 310 can expire at the time instance t2. Thus, the e.expired values for these edges can be t2. Accordingly, these vertices remain valid for the duration between the time instances t1 and t2. The NMS 330 can also couple the vertex 320 having the entry vertex 302 and the exit vertex 304 to the vertex 264 having the corresponding edges. The e.created and e.expired values for each of these edges can be t2 and N, respectively.

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

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

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

[0052] ​To initiate the respective traversal, the NMS 330 can determine an initial or starting vertex based on the unique identifier associated with the vertex. The initial vertex can be a starting point for the traversal. If the traversal is proactive, possibly not associated with a particular issue, the initial vertex can be the entry vertex 302 associated with the vertices 310 and 320. The traversal can then be a top-down traversal of the vertices representing the devices. The sequence of the top-down traversal for the respective set of vertices can be the entry vertex, the primary vertex, and the exit vertex. Since the initial vertex at time instance t2 can have expired at time instance t2, the NMS 330 can determine the initial vertex for each time instance. For the top-down traversal of the 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 be in response to a particular issue, the initial vertex can be a client-level vertex, such as a vertex representing a device (e.g., vertices 332, 334, 336, 338, or 364). The issue can be an experience at a client site (e.g., a performance degradation at a network device). The traversal can then be a bottom-up traversal. The sequence of the bottom-up traversal for the respective set of vertices can be the exit vertex, the primary vertex, and the entry vertex. Thus, the bottom-up traversal can progressively traverse up to a vertex representing a large entity (e.g., a site). For the 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 set of vertices reachable via the effective vertex at time instances ti and t2. The NMS 330 can identify vertices present in both sets of vertices and determine the difference in attributes for each of the identified vertices. The difference can include removed attributes, new attributes, and updated attributes.

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

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

[0056] Figure 4BA flowchart illustrating an example of a process for an NMS to compare respective NI graphs at different time instances according to an aspect of the application is presented. During operation, the NMS can identify an initial vertex in the NI graph based on a unique identifier and a corresponding time instance (operation 422). The NMS can present an interface via which a user can provide the unique identifier to the NMS. Examples of the interface can include, but are not limited to, a text interface, a graphical user interface, a touch interface, and a gesture or motion interface. The NMS can then traverse the graph via valid edges at the initial time instance to determine the initial vertex (operation 424). An edge can be valid at a time instance if the edge falls between a created timestamp and an expired timestamp. The traversal can then explore vertices reachable via edges at that time instance. The NMS can also traverse the graph via valid edges at a subsequent time instance to determine a subsequent vertex (operation 426). The NMS can then compare the initial vertex to the subsequent vertex (operation 428) and determine differences between the vertices based on the comparison (operation 430). The comparison can 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 for an NMS to determine differences between respective NI graphs at different time instances according to an aspect of the application is presented. During operation, the NMS can determine a set of vertices with removed attributes (operation 432) and a set of vertices with new attributes (operation 434). The NMS can also determine a set of vertices with updated attributes (operation 436). A vertex is added to the set of vertices with removed attributes if the initial instance of the vertex includes an attribute that is missing in the subsequent instance. On the other hand, a vertex is added to the set of vertices with new attributes if the initial instance of the vertex does not include an attribute that is present in the subsequent instance. Furthermore, a vertex is added to the set of vertices with updated attributes if the initial instance of the vertex includes an attribute that is updated in the subsequent instance. Each of these sets of vertices can occur in different time instances. For each vertex, the attributes at the different time instances are compared to each other to determine the differences. In addition, the NMS can also determine new vertices in the subsequent vertices (operation 438) and vertices removed from the initial vertices (operation 440).

[0058] Figure 4DA flowchart illustrating an example of a process for an NMS to determine vertices of a NI graph at a time instance, in accordance with one aspect of the present application, is presented. During operation, the NMS can find vertices with unique identifiers and valid edges at a given time instance as initial or starting vertices (operation 452). A user can provide an instruction to the NMS with a unique identifier and a time instance. The instruction can be received via an interface presented by the NMS. The NMS can then determine subsequent vertices at a predetermined depth from the initial vertices (operation 454) and determine whether 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 vertices using one edge.

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

[0060] Figure 5A A flowchart illustrating an example of a process for an NMS to determine attribute differences between respective NI graphs at different time instances, in accordance with one aspect of the present application, is presented. During operation, the NMS can select a vertex present in an initial vertex and a subsequent vertex (operation 502) and select an attribute associated with the vertex (operation 504). The NMS can then perform several checks to determine differences associated with the attribute. Accordingly, the NMS can 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 can also determine whether the attribute is a modified attribute (operation 508). If the attribute is a modified attribute, the NMS can include the attribute in a list of modified attributes 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 in the modified attributes (operation 508), the NMS can 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 can include the attribute in the removed attribute list associated with the vertex (operation 514). Otherwise, the NMS can determine whether the attribute is not in the initial instance of the vertex but in the subsequent instance of the vertex (operation 516). If the attribute is not in the initial instance of the vertex but in the subsequent instance of the vertex, the NMS can include the attribute in the new attribute list associated with the vertex (operation 518).

[0062] In performing the checks (operations 506, 508, 512, and 516) or including attributes to the lists (operations 510, 514, or 516), the NMS can determine whether all attributes associated with the vertex are checked (operation 520). If all attributes are not checked, the NMS can continue to select another attribute associated with the vertex (operation 504). However, if all attributes are checked, the NMS can determine whether all vertices present in the initial and subsequent vertices are checked (operation 522). If all vertices are not checked, the NMS can continue to select another vertex present in the initial and subsequent vertices (operation 502). If all vertices are checked, the NMS can present the lists associated with the respective vertices (operation 524).

[0063] Figure 5B A flowchart illustrating an example of a process by which an NMS determines vertex differences between respective NI graphs at different time instances according to one aspect of the present application is presented. During the operation, the NMS can check new and removed vertices. To do so, the NMS can select a vertex from the union of the initial and subsequent vertices (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 can include the vertex in a new vertex list (operation 556). Otherwise, the NMS can 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 vertex but not in the subsequent vertex, the NMS can include the vertex in a removed vertex list (operation 560). Otherwise, the vertex can be present in both the initial and subsequent vertices. In performing the checks (operations 554 and 558) or including the vertices in the lists (operations 556 or 562), the NMS can determine whether all vertices in the union are checked (operation 562). If all vertices are checked, the NMS can present respective lists of the new and removed vertices on a user interface of the NMS (operation 564).

[0065] Figure 6 FIGURE 1 illustrates an example of a computing system that facilitates an NMS being able to compare network topology and configuration at different time instances, according to one aspect of the present disclosure. The computing system 100 can include a processor set 102, a memory unit 104, a network interface card (NIC) 106, and a storage device 108. The memory unit 104 can include a set of volatile memory devices (e.g., a dual in-line memory module (DIMM)). In addition, the computing system 100 can be coupled to a display device 112, a keyboard 114, and a pointing device 116, if desired. The storage device 108 can store an operating system 118, an NI management system 120, and data 136.

[0066] The NI management system 120 can include instructions that, when executed by the computing system 100, can cause the computing system 100 to perform the methods and / or processes described in the present disclosure. Specifically, if the computing system 100 is a sender device, the NI management system 120 can include instructions to generate an NI graph representing a network (graph logic 122). The NI management system 120 can also include instructions to represent the NI graph as an auxiliary graph (auxiliary logic 124). The NI management system 120 can include instructions to determine and maintain created and expired timestamps for respective edges of the NI graph (timestamp logic 126).

[0067] The NI management system 120 can include instructions to present a user interface (interface logic 128). The NI management system 120 can also include instructions to receive a comparison of topology, state, and configuration of a network at two time instances (interface logic 128). The NI management system 120 can also include instructions to traverse the NI graph at a time instance via valid edges to determine a set of vertices (traversal logic 130). In addition, the NI management system 120 can include instructions to determine a difference between two sets of vertices (difference logic 132). The difference can include identifying new and removed vertices, and determining new, removed, and updated attributes of respective vertices that exist in both sets of vertices.

[0068] The NI management system 120 can also include instructions to send and receive packets based on respective destinations (communication logic 134). The data 136 can include any data that facilitates the operation of the NI management system 120. The data 136 can include, but is not limited to, data structures representing the NI graph, initial vertex information, and outputs of graph traversal and graph differences.

[0069] Figure 7The illustration depicts an example of an apparatus according to one aspect of this application that enables NMS to compare network topology and configuration at different time instances. The NI management device 700 may include multiple units or devices capable of communicating with each other via wired, wireless, quantum optical, or electrical communication channels. The device 700 may be implemented using one or more integrated circuits and may include components larger than... Figure 7 The illustrated unit or device may contain fewer or more units or devices. Furthermore, device 700 may be integrated with a computer system or implemented as a dedicated device. For example, device 700 may be an accelerator in a computer system. Specifically, device 700 may include units 702-714, which perform operations related to… Figure 6 Similar functions or operations to logic blocks 622-634 of the NI management system 620 include: graph unit 702; auxiliary unit 704, time unit 706; interface unit 708; traversal unit 710, difference unit 712; and communication unit 714.

[0070] The description herein is presented to enable any person skilled in the art to make and use the invention and is provided in the context of a particular 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 can be applied to other examples and applications without departing from the spirit and scope of the invention. Therefore, the invention is not limited to the examples shown, but is accorded the widest scope consistent with the claims.

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

[0072] In a variation on this aspect, when determining changes to the network at a first-time instance, the system can modify edges created at previous-time instances in the graph.

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

[0074] In another variant, the system can determine a set of vertices affected by the change. The set of vertices can be associated with the same entity of the network. The set of vertices can include a primary vertex and a plurality of secondary vertices, and the edge can be coupled to the secondary vertices.

[0075] In another variant, the system can change the edge by coupling the edge to a new primary vertex while the edge remains coupled to the secondary vertices.

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

[0077] In a variant with respect to this aspect, the system can identify a starting vertex for traversing the graph.

[0078] In another variant, the depth of the traversal from the starting vertex can be predetermined.

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

[0080] In a variant with respect to this aspect, upon receiving the second instruction from the interface of the management system, the system can determine a second topology of the network, a second set of network states, and a second set of configurations at a second target time instance indicated by the second instruction by performing a second traversal of the graph. The system can then determine differences between the first and second topologies and differences between the first and second sets of configurations.

[0081] The data structures and code described in this detailed description are typically stored in 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 disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), 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 can be implemented as code and / or data stored in a computer-readable storage medium, which can be executed by a computer system. When the computer system reads and executes the code and / or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium.

[0083] The methods and processes described herein can be executed by, and / or included in, hardware logic blocks or devices, which can be implemented in connection with, among other things, an application specific integrated circuit (ASIC) chip, a field programmable gate array (FPGA), a dedicated or shared processor and / or controller and / or other programmable logic device now known or later developed. When the hardware logic blocks or devices are activated, they perform the methods and processes included within them.

[0084] The above description of the disclosed embodiments is merely illustrative and is not intended to limit the disclosure. Thus, many modifications and variations of the disclosed embodiments are possible and will be apparent to those of ordinary skill in the art. The scope of the disclosure, therefore, is to be determined from the following claims.

Claims

1. A method comprising: A graph representing the configuration, state, and topology of a network is generated by a network management system, wherein the corresponding vertices of the graph correspond to entities in the network, and the corresponding edges of the graph indicate the relationships between pairs of vertices. The network management system determines 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 of the graph is established, wherein the second timestamp indicates a time instance when the relationship indicated by the edge of the graph is terminated, and wherein the time range between the first timestamp and the second timestamp indicates a valid time period for the relationship indicated by the edge of the graph. Receive instructions from the interface of the network management system for comparing the topology, status, and configuration of the network at the target time instance; Traverse the corresponding edges of the graph and determine whether the relationship indicated by the edge is valid at the target time instance based on the first timestamp and the second timestamp associated with the edge; as well as The network management system determines the first topology, first network state set, and first configuration set of the network at the target time instance based on the instructions and on the relationships that are valid at the target time instance.

2. The method of claim 1, further comprising changing the edges in the graph in response to determining a change in the network at a first-time instance.

3. The method according to claim 2, further comprising: In response to changing the edge, including removing the edge, the first time instance is set to the second timestamp for the edge; as well as In response to changing the edge, including adding the edge, the first time instance is set to the first timestamp for the edge, wherein a value larger than the first timestamp is set to 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 represents the same entity of the network in the graph, wherein the set of vertices includes primary vertices and a plurality of secondary vertices; and wherein the edges are coupled to secondary vertices in the graph.

5. The method of claim 4, wherein changing the edge further comprises coupling the edge to a new primary vertex while keeping the edge coupled to the secondary vertex in the graph.

6. The method of claim 2, wherein determining the change in the network further comprises determining one or more of the following at the first time instance: missing attribute, new attribute, changed attribute, new vertex, and missing vertex.

7. The method of claim 1, further comprising identifying a starting vertex for the traversal of the graph.

8. The method of claim 7, wherein the depth of the traversal from the starting vertex is predetermined.

9. The method of claim 1, wherein the corresponding vertices of the graph correspond to entities of the network and represent a set of attributes associated with the entities, and wherein one attribute in the attribute set 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, a second topology, a second network state set, and a second configuration set of the network are determined at a second target time instance indicated by the second instruction; Traverse the corresponding edges of the graph and determine whether the relationship indicated by the edge is valid at the second target time instance based on the first timestamp and the second timestamp associated with the edge; Determine the differences between the first topology and the second topology; as well as The differences between the first configuration set and the second configuration set are determined based on the differences between the first topology and the second topology.

11. A non-transitory computer-readable storage medium storing instructions, said instructions being implemented when executed by a processor of a computer facilitating a network management system, said method comprising: Generate a graph representing the configuration, state, and topology of a network, wherein the corresponding vertices of the graph correspond to entities in the network, and wherein the corresponding edges of the graph indicate relationships between pairs of vertices; Determine 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 of the graph is established, wherein the second timestamp indicates a time instance when the relationship indicated by the edge of the graph is terminated, and wherein the time range between the first timestamp and the second timestamp indicates a valid time period for the relationship indicated by the edge of the graph. Receive instructions from the interface of the network management system for comparing the topology, status, and configuration of the network at the target time instance; Traverse the corresponding edges of the graph and determine whether the relationship indicated by the edge is valid at the target time instance based on the first timestamp and the second timestamp associated with the edge; as well as Based on the instructions, a first topology, a first network state set, and a first configuration set of the network at the target time instance are determined based on the relationships that are valid at the target time instance.

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

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

14. The non-transitory computer-readable storage medium of claim 12, wherein the method further comprises: Identify the set of vertices affected by the change, wherein the set of vertices represents the same entity in the network of the graph, and wherein the set of vertices includes a primary vertex and multiple secondary vertices; Furthermore, the edges are coupled to auxiliary vertices in the graph.

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

16. The non-transitory computer-readable storage medium of claim 12, wherein determining the change in the network further comprises determining one or more of the following at the first time instance: missing attribute, new attribute, changed attribute, new vertex, and missing vertex.

17. The non-transitory computer-readable storage medium of claim 11, wherein the method further comprises identifying a starting vertex for the traversal of the graph, wherein the depth of the traversal from the starting vertex is predetermined.

18. The non-transitory computer-readable storage medium of claim 11, wherein the corresponding vertices of the graph correspond to entities of the network and represent a set of attributes associated with the entities, and wherein one attribute in the attribute set is a unique identifier identifying 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, a second topology, a second network state set, and a second configuration set of the network are determined at a second target time instance indicated by the second instruction; Traverse the corresponding edges of the graph and determine whether the relationship indicated by the edge is valid at the second target time instance based on the first timestamp and the second timestamp associated with the edge; Determine the differences between the first topology and the second topology; as well as The differences between the first configuration set and the second configuration set are determined based on the differences between the first topology and the second topology.

20. A computer system comprising: processor; as well as A non-transitory computer-readable storage medium storing instructions for: Generate a graph representing the configuration, state, and topology of a network, wherein the corresponding vertices of the graph correspond to entities in the network, and wherein the corresponding edges of the graph indicate relationships between pairs of vertices; as well as Determine 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 of the graph is established, wherein the second timestamp indicates a time instance when the relationship indicated by the edge of the graph is terminated, and wherein the time range between the first timestamp and the second timestamp indicates a valid time period for the relationship indicated by the edge of the graph. Receive instructions from the interface of the computer system for comparing the topology, status, and configuration of the network at a target time instance; Traverse the corresponding edges of the graph and determine whether the relationship indicated by the edge is valid at the target time instance based on the first and second timestamps associated with the edge; as well as The topology, network state set, and configuration set of the network at the target time instance are determined based on the relationships that are valid at the target time instance.

Citation Information

Patent Citations

  • Feature-based network embedding

    US20210014124A1

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

    US20220405437A1