Unified topology across domains
Through device query and identification of device connections across network domains, a unified network topology is established, and the monitoring blind spots caused by overlapping IP addresses in distributed networks are solved, achieving more effective fault management and security monitoring.
Patent Information
- Application Number
- CN202411238597.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-30
- Filing Date
- 2024-09-05
- Publication Date
- 2025-05-02
AI Technical Summary
The prior art is difficult to create a unified network topology in a distributed network, resulting in failure management systems being unable to effectively monitor network domains with overlapping IP addresses, affecting fault detection and network security.
Through the device query and identification of connections between equipment parts across network domains, a unified network topology is established, the circuit system is used to detect equipment parts, identify nodes and update database records, determine the location of equipment parts, and identify equipment parts across segments through network query.
It realizes the creation of a unified network topology in a distributed network, improves the monitoring capabilities of the fault management system, solves the monitoring blind spots caused by overlapping IP addresses, and enhances the network's fault detection and security.
Smart Images

Figure CN119922084A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to unified topology across domains. Background Art
[0002] The present disclosure relates to network topology and discovery of devices connected to a distributed network. Summary of the Invention
[0003] In one aspect, the present disclosure provides a system comprising: a plurality of nodes distributed across a network, wherein respective nodes of the plurality of nodes represent respective equipment pieces of a plurality of equipment pieces connected to the network; and a first device corresponding to a first segment of a plurality of network segments, wherein the plurality of segments of the network are defined by a plurality of devices including the first device, and wherein the first device comprises one or more circuits configured to: detect a first equipment piece of the plurality of equipment pieces; identify a first node of the plurality of nodes representing the first equipment piece of the plurality of equipment pieces; receive an identification of the first equipment piece of the plurality of equipment pieces from the first equipment piece; and update a data The method further comprises: determining a record in a database to include the identification of the first equipment item among the multiple equipment items and an indication that the first node among the multiple nodes represents the first equipment item among the multiple equipment items; determining that the second equipment item among the multiple equipment items is not in the first segment among the multiple segments based on information for identifying the second equipment item among the multiple equipment items, wherein the information for identifying the second equipment item among the multiple equipment items is received from the first equipment item among the multiple equipment items; and querying one or more devices among the multiple devices via the network to identify the second equipment item among the multiple equipment items in response to determining that the second equipment item among the multiple equipment items is not in the first segment among the multiple segments.
[0004] In another aspect, the present disclosure provides an apparatus corresponding to a first segment of a plurality of segments of a network, wherein the network includes a plurality of nodes distributed across the network, wherein respective nodes of the plurality of nodes represent respective pieces of equipment of a plurality of items of equipment connected to the network, and wherein the apparatus comprises one or more circuits configured to: detect a first piece of equipment of the plurality of items of equipment; identify a first node of the plurality of nodes representing the first piece of equipment of the plurality of items of equipment; receive an identification of the first piece of equipment of the plurality of items of equipment from the first piece of equipment; and update a record in a database to include the first piece of equipment of the plurality of items of equipment in response to receiving the identification. The device further comprises: a first device component comprising: a first device component and a second device component among the plurality of devices; a second device component among the plurality of devices; a second device component among the plurality of devices; a first device component and a second device component among the plurality of devices; a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices; a second device component and a second device component among the plurality of devices;
[0005] In another aspect, the present disclosure provides a method comprising: detecting, by one or more circuits of a first device, a first device among a plurality of equipment items, wherein the plurality of equipment items are connected to a network; identifying, by the one or more circuits of the first device, a first node among a plurality of nodes representing the first device among the plurality of equipment items, wherein the plurality of nodes are distributed across the network, and wherein respective nodes among the plurality of nodes represent respective devices among the plurality of equipment items; receiving, by the one or more circuits of the first device, an identification of the first device among the plurality of equipment items from the first device among the plurality of equipment items; and updating, by the one or more circuits of the first device, a record in a database to include the identification of the first device among the plurality of equipment items in response to receiving the identification. The identification of the first equipment item and an indication that a given node among the multiple nodes represents the first equipment item among the multiple equipment items; determining, by the one or more circuits of the first device, that the second equipment item among the multiple equipment items is not in the first segment among the multiple segments based on information for identifying the second equipment item among the multiple equipment items, wherein the information for identifying the second equipment item among the multiple equipment items is received from the first equipment item among the multiple equipment items; and querying, by the one or more circuits of the first device, one or more devices through the network to identify the second equipment item among the multiple equipment items in response to determining that the second equipment item among the multiple equipment items is not in the first segment among the multiple segments. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The various objects, aspects, features and advantages of the present disclosure will become more apparent and better understood by reference to the detailed description taken in conjunction with the accompanying drawings, in which the same reference characters identify corresponding elements throughout. In the drawings, the same reference characters generally indicate identical, functionally similar and / or structurally similar elements.
[0007] Figure 1 is a block diagram of a system for discovering devices connected to a network, according to some embodiments.
[0008] Figure 2 is a block diagram including one or more nodes to illustrate a network topology of devices connected to the network, according to some embodiments.
[0009] Figure 3 is established according to some embodiments Figure 2 A flowchart of the process of illustrating the network topology.
[0010] Figure 4 is established according to some embodiments Figure 2 A flowchart of the process of illustrating the network topology.
[0011] Figure 5 is determined according to some embodiments to be included in Figure 2 A flowchart of a process for illustrating a relationship between one or more equipment components in a network topology. DETAILED DESCRIPTION
[0012] Some embodiments relate to systems and methods for establishing a unified topology for devices connected to a network. A topology may refer to and / or include a network topology. For example, a topology may include and / or represent the physical and logical arrangement of devices connected to the network. Continuing with this example, a network may include a wide area network (WAN), and the devices may include switches and / or routers connected to the WAN. A topology may establish and / or indicate the placement and / or location of devices. For example, a topology may establish a given building that houses a router. As another example, a topology may establish how a router connects to the network (e.g., wired and / or wireless connections). A topology may also establish and / or indicate the flow of data throughout the network. For example, a topology may indicate that device A provides data to device B. A topology may include one or more nodes, and the nodes may be connected to each other and / or arranged in a row. For example, a topology may include a first node and a second node. The first node may represent a first device component, and the second node may represent a second device component. A topology may also include links between the first and second device components. Links may represent and / or otherwise indicate that the first and second device components are connected to each other.
[0013] A network topology may include one or more domains and / or segments. For example, a network topology may include a network domain. A network domain may include and / or otherwise establish one or more segments of a network and / or network topology. For example, a first building may be included in a first network domain and a second building may be included in a second network domain. When a device is connected to a network that includes the first network domain and the second network domain, a given device may then be associated with the given network domain. For example, as a result of a router being connected to the network, a router located in the first building may be associated with the first network domain. Continuing with this example, the router may connect a device in the first building to a device associated with the second network domain. Connections between devices across network domains may create and / or establish a distributed network.
[0014] A fault management system (FMS) can be deployed and / or implemented to monitor and / or address network security on a computer network. A distributed network with multiple domain networks may include multiple FMSs. For example, a first network domain may be monitored by a first FMS and a second network domain may be monitored by a second FMS. A distributed system that includes data, voice, application, and video services (including interconnected network technologies) may have FMSs that manage network domains separately. Network domains may include overlapping and / or duplicate Internet Protocol (IP) addresses, which may result in a single FMS being unable to monitor the security of network domains with overlapping IP addresses. For example, a first network domain and a second network domain may utilize a common IP address. Continuing with this example, a single FMS may be unable to monitor both the first network domain and the second network due, in part, to the duplication of IP addresses. In other words, because a device component in the first network domain may have the same IP address as a device component in the second network domain, a single FMS may be unable to monitor both network domains.
[0015] Other systems utilize multiple FMSs to monitor distributed networks, which can prevent and / or limit the creation of centralized and / or unified topologies. For example, a first FMS monitoring a first network domain may be unaware of the status of a second network domain monitored by a second FMS. Systems with distributed networks and isolated FMSs can impact one or more aspects of network monitoring. For example, fault detection, network troubleshooting, and detection of unauthorized network access are all impacted by distributed networks.
[0016] Some technical solutions and advantages of some embodiments relate to a system comprising multiple devices to discover multiple equipment components connected to a network and establish a unified network topology by querying one or more devices of the system to identify connections between one or more equipment components that occur across network domains. A first device may monitor a first segment of the network (e.g., a first domain) and a second device may monitor a second segment of the network (e.g., a second domain). The first device may detect equipment components located in and / or associated with the first segment. For example, a router may be connected to the network via the first segment and the first device may detect the router. Continuing with this example, the first device may prompt the router for information corresponding to one or more equipment components connected to the router. The first device may create and / or generate a topology in response to receiving information from the router.
[0017] In some embodiments, a system may refer to and / or include at least one of a computer network, a network topology, a wide area network (WAN), a local area network (LAN), a virtual local area network (VLAN), a data center, an isolated network, data communications, a data network, a telecommunications network, and / or other possible computer systems. In some embodiments, a system may refer to and / or include a network. In some embodiments, a device may refer to and / or include at least one of an integrated circuit, a general-purpose processor, a multi-core processor, a software programmable device, a computer application, a programmable logic controller, and / or other possible circuit systems and / or hardware. Similarly, the functions of the device may be stored as software, firmware, and / or instructions in a memory, and when the information stored in the memory (e.g., software, firmware, and / or instructions) is executed by a processor, the processor performs the functions of the device (e.g., the processor may detect equipment and establish a topology across the network).
[0018] In some embodiments, an equipment item may refer to and / or include at least one of a network device, a router, a switch, a hub, a computer, a computing device, a mobile device, a desktop, a laptop, a server, a controller, a modem, an Internet of Things (IoT) device, a video device, a monitor, a display, a tablet, a printer, a scanner, a fax machine, a gateway, an Ethernet jack, a bridge, a network interface, a wired jack, a network port, and / or other possible network devices. A node may refer to and / or include at least one of a connection point, a network node, a physical node, a logical node, a portion and / or segment of a network topology representing a device, and / or other possible network device representations.
[0019] In some embodiments, an identifier of a device element may refer to and / or include at least one of a local device identifier, a local port, a remote device identifier, a remote port, an IP address, a chassis identifier, a hello packet, device capabilities, a media access control (MAC) address, a VLAN name, a device description, and / or other possible device identifiers. In some embodiments, a record may refer to and / or include at least one of a table, a data structure, a cache, a protocol table, a data array, and / or other possible types of information that may be stored and / or maintained in a memory. In some embodiments, a database may refer to and / or include a memory, a memory device, a memory structure, a memory type, a collection of information, a data store, and / or other possible information structures.
[0020] In some embodiments, query and / or querying may refer to and / or include at least one of prompting, asking, communicating with, and / or otherwise requesting information from one or more systems and / or one or more devices. In some embodiments, receiving may refer to and / or include at least one of receiving, accepting, collecting, and / or otherwise obtaining information and / or a response.
[0021] Some embodiments relate to a system. The system may include multiple nodes. The multiple nodes may be distributed across a network. A corresponding node among the multiple nodes may represent a corresponding device among multiple equipment items connected to the network. The system may also include a first device. The first device may correspond to a first segment among multiple segments of the network. The multiple segments of the network may be defined by multiple devices. The multiple devices may include the first device. The first device may include one or more circuits. The one or more circuits may detect a first device among the multiple equipment items. The one or more circuits may also identify a first node among the multiple nodes that represents the first device among the multiple equipment items. The one or more circuits may also receive an identification of the first device among the multiple equipment items from the first device among the multiple equipment items. In response to receiving the identification, the one or more circuits may also update a record in a database to include the identification of the first device among the multiple equipment items and an indication that the first node among the multiple nodes represents the first device among the multiple equipment items. The one or more circuits may also determine that a second piece of equipment among the plurality of equipment items is not located in the first section of the plurality of sections based on information identifying the second piece of equipment among the plurality of equipment items. The information identifying the second piece of equipment among the plurality of equipment items may be received from the first piece of equipment among the plurality of equipment items. The one or more circuits may also query one or more of the plurality of devices via the network to identify the second piece of equipment among the plurality of equipment items in response to determining that the second piece of equipment among the plurality of equipment items is not located in the first section of the plurality of sections.
[0022] In some embodiments, the one or more circuits may also receive a response identifying the second one of the plurality of equipment items in response to querying the one or more devices in the plurality of devices. The response may include an identification of the second one of the plurality of equipment items and an indication of a given one of the plurality of sections that includes the second one of the plurality of equipment items. The one or more circuits may also update the record to include the identification of the second one of the plurality of equipment items and the indication of the given one of the plurality of sections in response to receiving the response.
[0023] In some embodiments, the one or more circuits may query the one or more devices of the plurality of devices via the network to identify the second device of the plurality of equipment items, which may include: generating a node to store the information used to identify the second device of the plurality of equipment items. The node may be included within the plurality of nodes for a predetermined amount of time. The one or more circuits may also query the one or more devices of the plurality of devices via the network to identify the second device of the plurality of equipment items, which may also include: transmitting a message via the node requesting the one or more devices to search for a corresponding record containing information related to the device of the plurality of equipment items included in the corresponding section. The one or more circuits may also query the one or more devices of the plurality of devices via the network to identify the second device of the plurality of equipment items, which may also include: replacing the node with a second node to link the first device of the plurality of equipment items with the second device of the plurality of equipment items in response to receiving a response identifying the second device of the plurality of equipment items. The second node may not have been previously known to the first device of the plurality of devices.
[0024] In some embodiments, the one or more circuits may also generate a graph to illustrate the multiple nodes distributed across the network. The graph may include multiple links between corresponding equipment items in the multiple equipment items. A link between the first equipment item in the multiple equipment items and the second equipment item in the multiple equipment items in the multiple links may indicate that the first equipment item in the multiple equipment items is a neighbor of the second equipment item in the multiple equipment items. The one or more circuits may also update the graph to include a second link between the second equipment item in the multiple equipment items and one or more third equipment items in the multiple equipment items in response to receiving a response to querying the one or more devices in the multiple devices. The link between the first equipment item in the multiple equipment items and the second equipment item in the multiple equipment items, and the second link between the second equipment item in the multiple equipment items and the one or more third equipment items in the multiple equipment items may represent a connection between two or more of the multiple segments.
[0025] In some embodiments, the one or more circuits may further use the graph to detect a plurality of faults across the network. The one or more circuits may further implement responses to resolve the plurality of faults on the network in response to detecting the plurality of faults. A first fault in the plurality of faults may be associated with at least one of the plurality of segments that is different from the first segment in the plurality of segments.
[0026] In some embodiments, the one or more circuits may also receive a response identifying the second one of the plurality of equipment items in response to querying the one or more devices in the plurality of devices. The one or more circuits may also identify one or more third ones of the plurality of equipment items connected to the second one of the plurality of equipment items via corresponding ones of the plurality of nodes in response to receiving the response. The one or more circuits may also update the graph to include a first link between the first one of the plurality of equipment items and the second one of the plurality of equipment items, and one or more second links between the second one of the plurality of equipment items and the one or more third ones of the plurality of equipment items.
[0027] In some embodiments, the one or more circuits may further detect a fourth device item among the plurality of device items. The one or more circuits may further identify a second node among the plurality of nodes representing the fourth device item among the plurality of device items. The one or more circuits may further determine, in response to the identification of the fourth device item among the plurality of device items, that a fifth device item among the plurality of device items connects the first device item among the plurality of device items to the fourth device item among the plurality of device items.
[0028] In some embodiments, the one or more circuits may also monitor communications across the network via a graph including links between the plurality of nodes to detect one or more faults. The graph may be generated by the one or more circuits by subsequently querying the one or more given devices of the plurality of devices in response to determining that the one or more given devices of the plurality of devices are not in the first of the plurality of segments.
[0029] In some embodiments, the one or more circuits may further provide a prompt to the first of the plurality of equipment items, including the information for identifying the second of the plurality of equipment items. The second of the plurality of equipment items may communicate with the first of the plurality of equipment items via the network. The first of the plurality of equipment items may be detected via a first protocol. The prompt may be provided to the first of the plurality of equipment items via a second protocol. The first and second protocols may be different.
[0030] Some embodiments relate to an apparatus. The apparatus may correspond to a first segment of a plurality of segments of a network. The network may include a plurality of nodes distributed across the network. A corresponding node of the plurality of nodes may represent a corresponding piece of equipment of a plurality of items connected to the network. The apparatus may include one or more circuits. The one or more circuits may detect a first piece of equipment of the plurality of items. The one or more circuits may also identify a first node of the plurality of nodes representing the first piece of equipment of the plurality of items. The one or more circuits may also receive an identification of the first piece of equipment of the plurality of items from the first piece of equipment. In response to receiving the identification, the one or more circuits may update a record in a database to include the identification of the first piece of equipment of the plurality of items and an indication that the first node of the plurality of nodes represents the first piece of equipment of the plurality of items. The one or more circuits may also determine, based on information identifying a second piece of equipment of the plurality of items, that the second piece of equipment of the plurality of items is not in the first segment of the plurality of segments. The information identifying the second piece of equipment of the plurality of items may be received from the first piece of equipment of the plurality of items. The one or more circuits may also query one or more devices of a plurality of devices via the network to identify the second equipment item of the plurality of equipment items in response to determining that the second equipment item of the plurality of equipment items is not in the first section of the plurality of sections.
[0031] In some embodiments, the one or more circuits may also receive a response identifying the second one of the plurality of equipment items in response to querying the one or more devices in the plurality of devices. The response may include an identification of the second one of the plurality of equipment items and an indication of a given one of the plurality of sections that includes the second one of the plurality of equipment items. The one or more circuits may also update the record to include the identification of the second one of the plurality of equipment items and the indication of the given one of the plurality of sections in response to receiving the response.
[0032] In some embodiments, the one or more circuits may query the one or more of the plurality of devices via the network to identify the second of the plurality of equipment items by generating a node to store the information identifying the second of the plurality of equipment items, wherein the node is contained within the plurality of nodes for a predetermined amount of time. The one or more circuits may also query the one or more of the plurality of devices via the network to identify the second of the plurality of equipment items by transmitting a message via the node requesting the one or more devices to search for a corresponding record containing information related to the equipment items of the plurality of equipment items contained in a corresponding section. The one or more circuits may also query the one or more of the plurality of devices via the network to identify the second of the plurality of equipment items by replacing the node with a second node in response to receiving a response identifying the second of the plurality of equipment items to link the first of the plurality of equipment items with the second of the plurality of equipment items. The second node may not have been previously known to the first of the plurality of devices.
[0033] In some embodiments, the one or more circuits may also generate a graph to illustrate the multiple nodes distributed across the network. The graph may include multiple links between corresponding equipment items in the multiple equipment items. A link in the multiple links between the first equipment item in the multiple equipment items and the second equipment item in the multiple equipment items indicates that the first equipment item in the multiple equipment items is a neighbor of the second equipment item in the multiple equipment items. The one or more circuits may also update the graph to include a second link between the second equipment item in the multiple equipment items and one or more third equipment items in the multiple equipment items in response to receiving a response to querying the one or more devices in the multiple devices. The link between the first equipment item in the multiple equipment items and the second equipment item in the multiple equipment items, and the second link between the second equipment item in the multiple equipment items and the one or more third equipment items in the multiple equipment items may represent a connection between two or more of the multiple segments.
[0034] In some embodiments, the one or more circuits may further use a graph to detect a plurality of faults on the network. The one or more circuits may further implement a response to resolve the plurality of faults on the network in response to detecting the plurality of faults. A first fault in the plurality of faults may be associated with at least one of the plurality of segments that is different from the first segment in the plurality of segments.
[0035] In some embodiments, the one or more circuits may also receive a response identifying the second one of the plurality of equipment items in response to querying the one or more devices in the plurality of devices. The one or more circuits may also identify one or more third ones of the plurality of equipment items connected to the second one of the plurality of equipment items via corresponding ones of the plurality of nodes in response to receiving the response. The one or more circuits may also update the graph to include a first link between the first one of the plurality of equipment items and the second one of the plurality of equipment items, and one or more second links between the second one of the plurality of equipment items and the one or more third ones of the plurality of equipment items.
[0036] In some embodiments, the one or more circuits may further detect a fourth device item among the plurality of device items. The one or more circuits may further identify a second node among the plurality of nodes representing the fourth device item among the plurality of device items. The one or more circuits may further determine, in response to the identification of the fourth device item among the plurality of device items, that a fifth device item among the plurality of device items connects the first device item among the plurality of device items to the fourth device item among the plurality of device items.
[0037] In some embodiments, the one or more circuits may also monitor communications across the network via a graph including links between the plurality of nodes to detect one or more faults. The graph may be generated by the one or more circuits by subsequently querying one or more of the plurality of devices in response to determining that one or more given devices of the plurality of devices are not in the first of the plurality of segments.
[0038] Some embodiments relate to a method. The method may include detecting, by one or more circuits of a first device, a first piece of equipment from a plurality of items of equipment. The plurality of items of equipment may be connected to a network. The method may also include identifying, by the one or more circuits of the first device, a first node from a plurality of nodes that represents the first piece of equipment from the plurality of items of equipment. The plurality of nodes may be distributed across the network. A corresponding node from the plurality of nodes may represent a corresponding piece of equipment from the plurality of items of equipment. The method may also include receiving, by the one or more circuits of the first device, an identification of the first piece of equipment from the plurality of items of equipment. The method may also include updating, by the one or more circuits of the first device, a record in a database to include the identification of the first piece of equipment from the plurality of items of equipment and an indication that a given node from the plurality of nodes represents the first piece of equipment from the plurality of items of equipment, in response to receiving the identification. The method may also include determining, by the one or more circuits of the first device, based on information identifying the second piece of equipment from the plurality of items of equipment, that the second piece of equipment from the plurality of items of equipment is not in a first segment from a plurality of segments. The information identifying the second piece of equipment from the plurality of items of equipment may be received from the first piece of equipment from the plurality of items of equipment. The method may also include querying, by the one or more circuits of the first device, one or more devices via the network to identify the second equipment item of the plurality of equipment items in response to determining that the second equipment item of the plurality of equipment items is not in the first section of the plurality of sections.
[0039] In some embodiments, the method may further include generating, by the one or more circuits of the first device, a graph illustrating the plurality of nodes distributed across the network. The graph may include a plurality of links between corresponding ones of the plurality of equipment items. A link between the first one of the plurality of equipment items and the second one of the plurality of equipment items in the plurality of links may indicate that the first one of the plurality of equipment items is a neighbor of the second one of the plurality of equipment items. The method may further include updating, by the one or more circuits of the first device, the graph to include a second link between the second one of the plurality of equipment items and one or more third ones of the plurality of equipment items in response to receiving a response to a query to the one or more of the plurality of devices. The link between the first one of the plurality of equipment items and the second one of the plurality of equipment items, and the second link between the second one of the plurality of equipment items and the one or more third ones of the plurality of equipment items, may represent a connection between two or more of the plurality of segments.
[0040] In some embodiments, the method may further include detecting, by the one or more circuits of the first device, a plurality of faults on the network using the graph. The method may further include implementing, by the one or more circuits of the first device, a response to addressing the plurality of faults on the network in response to detecting the plurality of faults. A first fault in the plurality of faults may be associated with at least one segment of the plurality of segments that is different from the first segment of the plurality of segments.
[0041] Figure 1 A block diagram of system 100 is depicted according to some embodiments. Each system, device, and / or component of system 100 may include one or more processors, memory, a network interface, a communication interface, and / or a user interface. In some embodiments, the memory may store programming logic that, when executed by the processor, controls the operation of the corresponding system, device, and / or component. The memory may also store data in a database. The network interface may allow the systems and / or components of system 100 to communicate wirelessly. The communication interface may include a wired and / or wireless communication interface, and the systems and / or components of system 100 may be connected via the communication interface. The various components in system 100 may be implemented via hardware (e.g., circuitry), software (e.g., executable code), or any combination thereof. Figure 1 The systems, devices, and components in the present disclosure may be added, removed, modified, separated, combined, rearranged, deleted, integrated, and / or adjusted. For example, a first device shown as including a first component and a second component may be modified so that the first component and the second component are provided as a single component. As another example, a device shown as included within a first system may also be added to a second system.
[0042] In some embodiments, system 100 may include at least one fault management system (FMS) 105, at least one network 135, at least one device 140 and / or equipment 140, and at least one node 145. In some embodiments, network 135 may refer to and / or include wired and / or wireless telecommunications. Network 135 may include at least one of the various networks described herein. For example, network 135 may include a wide area network (WAN). As another example, network 135 may include a local area network (LAN). In some embodiments, equipment 140 may include at least one of the various types and / or equipment items described herein. For example, equipment 140 may include at least one of a router, a switch, a bridge, a hub, and / or a gateway.
[0043] In some embodiments, node 145 may include at least one of the various nodes described herein. For example, node 145 may include a network topology node. In some embodiments, node 145 may include physical and / or logical nodes. For example, a first node 145 may represent and / or be associated with a first device component 140, and a second node 145 may represent and / or be associated with a second device component 140. In some embodiments, nodes 145 may be distributed across network 135. For example, network 135 may include multiple network domains, and node 145 may be included in one or more network domains of network 135. In some embodiments, node 145 may represent one or more device components 140.
[0044] In some embodiments, nodes 145 may be connected to each other via network 135. For example, first device item 140 may be connected to network 135, and network 135 may connect first device item 140 with second device item 140. Continuing with this example, first device item 140 and second device item 140 may communicate with each other via network 135.
[0045] In some embodiments, FMS 105 may refer to and / or include the devices described herein. For example, FMS 105 may establish a unified topology. In some embodiments, FMS 105 may include multiple FMSs 105. For example, FMS 105 may include a first FMS 105 and a second FMS 105. Continuing with this example, first FMS 105 may correspond to a first segment (e.g., a first domain) of network 135, and second FMS 105 may correspond to a second segment (e.g., a second domain) of network 135.
[0046] In some embodiments, the FMS 105 may include at least one processing circuit 110, at least one node module 125, and at least one interface 130. Processing circuit 110 may refer to and / or include at least one of the circuits and / or processing circuits described herein. In some embodiments, processing circuit 110 may include at least one processor 115 and memory 120. Memory 120 may refer to and / or include one or more devices (e.g., RAM, ROM, flash memory, hard disk storage) used to store data and / or computer code for completing and / or facilitating the various processes described herein. Memory 120 may be and / or include non-transitory volatile memory, non-volatile memory, and non-transitory computer storage media. Memory 120 may include database components, object code components, script components, or any other type of information structure used to support the various activities and information structures described herein. Memory 120 may be communicatively coupled to processor 115 and may include computer code or instructions (e.g., firmware or software) for executing one or more processes described herein.
[0047] The processor 115 may be implemented as one or more application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), a set of processing components, or other suitable electronic processing components. The memory 120 may store one or more instructions that, when executed by the processor 115, cause the processor 115 to perform one or more of the various operations described herein. In some embodiments, the memory 120 may store, retain, and / or maintain at least one of a record, table, database, data structure, and / or information collection.
[0048] In some embodiments, node module 125 may interface and / or otherwise communicate with processing circuitry 110 and / or interface 130. For example, node module 125 may be communicatively coupled to processing circuitry 110. In some embodiments, processing circuitry 110 may include node module 125 and / or interface 130. In some embodiments, processing circuitry 110 may perform operations similar to those of node module 125 and / or interface 130. For example, memory 120 may store instructions that, when executed by processor 115, cause processor 115 to perform operations similar to those of node module 125.
[0049] In some embodiments, interface 130 may include at least one of a network communication device, a network interface, and / or other possible communication interfaces. Interface 130 may include a wired or wireless communication interface (e.g., a socket, antenna, transmitter, receiver, transceiver, wiring terminal, etc.) for communicating data with the various systems, devices, and / or components described herein. Interface 130 may include direct (e.g., local wired or wireless communication) and / or via a communication network (e.g., network 135). For example, interface 130 may include an Ethernet card and port for sending and receiving data via an Ethernet-based communication link or network. Interface 130 may include a Wi-Fi transceiver for communicating via a wireless communication network (e.g., network 135). Interface 130 may include a power line communication interface. Interface 130 may include an Ethernet interface, a universal serial bus (USB) interface, a serial communication interface, and / or a parallel communication interface. In some embodiments, interface 130 may connect and / or integrate FMS 105 with network 135. For example, FMS 105 may communicate with one or more devices 140 connected to network 135 via interface 130.
[0050] In some embodiments, node module 125 may detect one or more device components. For example, node module 125 may detect device 140. In some embodiments, node module 125 may detect device 140 in response to device 140 connecting to network 135. For example, node module 125 may monitor network 135 and node module 125 may detect an IP address. Continuing with this example, node module 125 may detect device 140 in response to detecting an IP address. In some embodiments, node module 125 may detect multiple device components. For example, node module 125 may detect a first device component 140 and a second device component 140.
[0051] In some embodiments, the node module 125 can identify one or more nodes. For example, the node module 125 can identify a first node 145 representing a first device component 140. In some embodiments, the node module 125 can identify a node during device discovery. For example, the node module 125 can identify a node in response to detecting a device 140. In some embodiments, the node module 125 can prompt the device 140 for information associated with one or more device components 140. For example, the node module 125 can implement push and / or polling techniques corresponding to one or more protocols. As another example, the node module 125 can implement the Link Layer Discovery Protocol (LLDP) while detecting, identifying, and / or prompting the device 140.
[0052] In some embodiments, node module 125 may receive one or more responses from device 140. For example, node module 125 may prompt device 140 for information, and device 140 may provide a response to node module 125. In some embodiments, node module 125 may receive identifying information related to device 140. For example, node module 125 may receive a response corresponding to one or more protocols. As another example, node module 125 may receive a packet, and the packet may include information identifying device 140.
[0053] In some embodiments, node module 125 may update one or more records. For example, memory 120 may contain, store, and / or maintain a cache (e.g., a record), and node module 125 may update the cache. As another example, memory 120 may include a data structure, and node module 125 may update the data structure. In some embodiments, memory 120 may include a database, and node module 125 may update the record stored in the database. In some embodiments, the cache may include chassis IDs corresponding to one or more devices 140, and node module 125 may update the cache to include the detected chassis IDs of the plurality of device pieces 140. For example, node module 125 may receive the chassis ID from a device 140.
[0054] In some embodiments, the node module 125 may update one or more records (e.g., a cache memory) to include one or more identifications of devices and / or indications of corresponding nodes. For example, the node module 125 may detect a first device component 140 and the node module 125 may identify a given node 145 that represents the first device component 140. Continuing with this example, the node module 125 may receive a response from the first device component 140 that includes identification information of the first device component 140. Furthermore, the node module 125 may update the record to include the identification of the first device component 140 and an indication that the given node 145 represents the first device component 140.
[0055] In some embodiments, device 140 may provide a response including information about one or more neighbors. A neighbor may refer to and / or include connected devices. For example, a first device 140 may be connected to a second device 140. Continuing with this example, first device 140 and second device 140 may be considered neighbors. In some embodiments, neighbors may be connected to each other via one or more nodes 145. For example, a given node 145 may connect a first device 140 to a second device 140. In some embodiments, device 140 may store and / or maintain information about neighbors. For example, a first device 140 may store a chassis ID associated with a second device 140.
[0056] In some embodiments, the node module 125 may determine that one or more equipment components 140 are not in a given segment of the network 135. For example, the node module 125 may receive a response from a first equipment component 140, and the response may include a chassis ID of a second equipment component 140. Continuing with this example, the node module 125 may determine that the second equipment component 140 is not in the given segment of the network 135. In other words, the first equipment component 140 and the second equipment component 140 may be connected to each other (e.g., neighbors), but the second equipment component 140 and the first equipment component 140 may be included in different network domains. In some embodiments, the node module 125 may determine that the second equipment component 140 is not in the given segment of the network 135 in response to the chassis ID of the second equipment component 140 not being in the cache.
[0057] In some embodiments, the node module 125 can query one or more systems and / or one or more devices. For example, the node module 125 can query one or more FMSs 105, and the FMSs 105 can correspond to, represent, and / or monitor one or more segments of the network 135. For example, a node module 125 (e.g., an FMS 105) can correspond to a first segment (e.g., a first domain) of the network 135, and the node module 125 can query one or more FMSs 105 corresponding to one or more second segments (e.g., a second domain) of the network 135.
[0058] In some embodiments, the node module 125 can provide, via the query, an identification associated with the second equipment component 140. For example, the node module 125 can provide a chassis ID to one or more FMSs 105. As another example, the node module 125 can provide an LLDP remote device ID to one or more FMSs 105.
[0059] In some embodiments, the node module 125 may receive one or more responses. For example, the node module 125 may receive responses from one or more FMSs 105. In some embodiments, the node module 125 may receive responses in response to querying one or more FMSs 105. In some embodiments, the responses may identify the second device component 140. For example, the node module 125 may receive a response from a given FMS 105, and the response may identify the second device component 140. As another example, the response may identify a source port node and a destination port node.
[0060] In some embodiments, the node module 125 may update the record to include information provided by one or more FMSs 105. For example, the node module 125 may update the cache to include information related to the second device component 140. As another example, the node module 125 may update the cache to include an indication of a given segment of the network 135 (e.g., a given domain) that includes the second device component 140.
[0061] In some embodiments, the node module 125 may generate a graph. For example, the node module 125 may generate and / or establish a network topology. In some embodiments, the graph may include and / or illustrate nodes 145. For example, the graph may include nodes 145 representing devices 140. In some embodiments, the graph may include one or more links. For example, a first node 145 may be connected to a second node 145 via a link (e.g., a connection). In some embodiments, a link between a first node 145 and a second node 145 may indicate that a first device component 140 (represented by the first node 145) is a neighbor of a second device component 140 (represented by the second node 145).
[0062] In some embodiments, the node module 125 may update the graph. For example, the node module 125 may update the graph to add a link between devices 140. As another example, the node module 125 may update the graph to include a link between a first device component 140 and a second device component 140. In some embodiments, the node module 125 may add (e.g., update) a link to the graph in response to the node module 125 receiving a response from one or more FMSs 105. In some embodiments, the first device component 140 may be included in a first domain and the second device component 140 may be included in a second domain. The link between the first device component 140 and the second device component may represent a connection between two or more segments. In other words, the link may represent that the first device component 140 is included in the first domain and the second device component 140 is included in the second domain.
[0063] In some embodiments, the node module 125 may receive a response identifying one or more neighbors. For example, the node module 125 may query one or more FMSs 105 to receive information related to a given piece of equipment 140. Continuing with this example, the node module 125 may receive information identifying the given piece of equipment 140 and information identifying the neighbors of the given piece of equipment 140. In some embodiments, the node module 125 may identify the neighbors of the given piece of equipment 140. For example, the response may include a chassis ID for the given piece of equipment and a chassis ID for the neighbors.
[0064] In some embodiments, the node module 125 may update the graph to include links between devices 140. For example, the node module 125 may detect a first device component 140 and the node module 125 may update the graph to include a node 145 representing the first device component 140. Continuing with this example, the first device component 140 may provide information identifying a second device component 140 (e.g., a neighbor). Furthermore, the node module 125 may update the graph to include a node 145 representing the second device component 140 and a link between the first device component 140 and the second device component 140.
[0065] In some embodiments, the node module 125 may detect the device component 140 via one or more protocols. For example, the node module 125 may detect the first device component 140 via Simple Network Management Protocol (SNMP). As another example, the node module 125 may detect the first device component 140 via LDDP. In some embodiments, the node module 125 may identify the one or more device components 140 via a first protocol. The node module 125 may detect the one or more device components 140 via a second protocol. In some embodiments, the first protocol and the second protocol may be the same. In some embodiments, the first protocol and the second protocol may be different.
[0066] Figure 2A block diagram depicts a network topology 200 according to some embodiments. In some embodiments, network topology 200 may refer to and / or include a diagram described herein. In some embodiments, network topology 200 may be included in and / or correspond to network 135. In some embodiments, node module 125 may generate and / or establish network topology 200.
[0067] In some embodiments, network topology 200 may include one or more segments 205. For example, network topology 200 may include a first segment 205 and a second segment 205. In some embodiments, a respective FMS 105 may define and / or establish a given segment 205 of network topology 200. For example, a first FMS 105 may define the first segment 205 and a second FMS 105 may define the second segment 205. In some embodiments, a segment 205 may refer to and / or include the segments described herein. For example, a segment 205 may include a network domain.
[0068] In some embodiments, segments 205 may include nodes 145. For example, first segment 205 may include nodes A, B, C, D, E, and F. As another example, second segment 205 may include nodes G, H, I, J, K, and L. As another example, third segment 205 may include nodes 1, 2, 3, 4, 5, and 6. In some embodiments, nodes 145 may be connected to each other via one or more links. For example, first node 145 may be connected to second node 145 via a first link. In some embodiments, network topology 200 may include one or more links 210 and / or one or more links 215.
[0069] In some embodiments, links 210 may represent connections between nodes within a single segment. For example, links 210a, 210b, 210c, 210d, and 210e represent connections between nodes 145 of the first segment 205. In some embodiments, links 215 may represent connections between nodes comprising two or more segments. For example, links 215a, 215b, and 215c may represent links that comprise and / or connect nodes 145 from two or more segments 205. As another example, link 215a may represent a connection between node F and node G. Figure 2 As shown in , node F is included in the first segment 205 and node G is included in the second segment 205.
[0070] In some embodiments, node module 125 can monitor communications across network 135. For example, node module 125 can monitor communications via network topology 200. In some embodiments, node module 125 can monitor communications to detect one or more failures. For example, node module 125 can detect that a given node 145 is unresponsive. As another example, node module 125 can detect that a given node 145 has failed to connect to network 135.
[0071] In some embodiments, the node module 125 can generate the network topology 200 by repeating and / or subsequently performing at least one of the steps and / or processes described herein. For example, the node module 125 can generate the network topology 200 by detecting the device 140 and prompting the device 140 with information about its neighbors. As another example, the node module 125 can then query one or more FMSs 105 to identify neighboring nodes.
[0072] In some embodiments, the node module 125 may generate one or more nodes. For example, the node module 125 may generate a temporary node. In some embodiments, the temporary node may be represented by one or more nodes 145. In some embodiments, the node module 125 may generate a temporary node to identify one or more equipment components 140. For example, the node module 125 may generate a temporary node to identify a neighbor whose information (e.g., chassis ID) is not in the cache. In some embodiments, the node module 125 may store information related to the neighbor in the temporary node. For example, the node module 125 may store information provided by the first equipment component 140 in the temporary node.
[0073] In some embodiments, the node module 125 may transmit the temporary node to one or more FMSs 105. For example, the node module 125 may provide information contained in the temporary node to one or more FMSs 105. In some embodiments, the node module 125 may transmit a message requesting that one or more FMSs 105 search their caches. In some embodiments, the node module 125 may replace the temporary node with a given node 145. For example, the node module 125 may receive a response from one or more FMSs 105, and the response may include information identifying the equipment component represented by the temporary node. As another example, the response may identify a node representing the equipment component, and the node module 125 may replace the temporary node with the node representing the equipment component.
[0074] Figure 3A flowchart depicts a process 300 for establishing network topology 200, according to some embodiments. In some embodiments, at least one of the various systems, devices, and / or components described herein may perform at least one step of process 300. For example, FMS 105 may perform at least one of the steps of process 300. Although some steps of process 300 are described as being performed by node module 125, processing circuitry 110 may also perform some steps of process 300.
[0075] In step 305, in some embodiments, devices may be discovered. For example, device component 140 may be discovered. In some embodiments, device component 140 may be discovered in response to device component 140 connecting to network 135. In some embodiments, node module 125 may discover device component 140. For example, node module 125 may identify an IP address corresponding to device component 140. In some embodiments, process 300 may proceed to step 310.
[0076] In some embodiments, step 310 may include determining whether the remote node exists. For example, node module 125 may determine whether the device discovered in step 305 is contained in segment 205 represented by node module 125. In some embodiments, node module 125 may determine that the remote node exists in response to determining that the device is contained in a subsequent segment of network 135. In some embodiments, node module 125 may determine that the remote node does not exist. For example, node module 125 may determine that the device discovered in step 305 is represented by a node within segment 205 represented by node module 125. In some embodiments, process 300 may proceed to step 315 in response to determining that the remote node does not exist. In some embodiments, process 300 may proceed to step 320 in response to determining that the remote node exists.
[0077] In some embodiments, step 315 may include completing process 300. For example, with respect to the device discovered in step 305, process 300 may end in response to determining that the remote node does not exist.
[0078] In some embodiments, step 320 may include determining whether the connection is to be resolved. For example, node module 125 may determine that the device discovered in step 310 includes a neighbor (e.g., second device component 140). Continuing with this example, node module 125 may determine to resolve the connection in response to node module 125 identifying and / or knowing the neighbor. As another example, node module 125 may determine not to resolve the connection in response to node module 125 determining that the neighbor is an unknown device component. In some embodiments, process 300 may proceed to step 325 in response to determining to resolve the connection. In some embodiments, process 300 may proceed to step 330 in response to determining not to resolve the connection.
[0079] In some embodiments, step 325 may include creating a connection. For example, the node module 125 may create a connection (e.g., a link) between the device and the neighbor discovered in step 305. As another example, the node module 125 may create a link 215 between the first device component 140 and the second device component 140.
[0080] In some embodiments, step 330 may include creating a node. For example, the node module 125 may create a temporary node 145 to represent the unknown device 140. Continuing with this example, the node module 125 may query one or more FMSs 105 to provide information related to the temporary node 145. Furthermore, the node module 125 may receive one or more responses from the one or more FMSs 105. In some embodiments, the process 300 may proceed to step 310. In some embodiments, the node module 125 may determine whether the remote node exists based on the information included in the response.
[0081] Figure 4 A flowchart depicts a process 400 for establishing network topology 200 in some embodiments. In some embodiments, at least one of the various systems, devices, and / or components described herein can perform at least one step of process 400. For example, FMS 105 can perform at least one of the steps of process 400. Although one or more steps of process 300 are described as being performed by node module 125, processing circuitry 110 can also perform one or more steps of process 400.
[0082] In some embodiments, step 405 may include receiving temporary node information. For example, step 405 may include receiving information related to the temporary node 145 created in step 330. In some embodiments, the temporary node information may be received by one or more FMSs 105. In some embodiments, process 400 may proceed to step 410.
[0083] In some embodiments, step 410 may include broadcasting a message. For example, node module 125 may broadcast a message to one or more FMSs 105. As another example, FMS 105 may broadcast a message to notify one or more equipment pieces 140 of information related to temporary node 145. In some embodiments, process 400 may proceed to step 415.
[0084] In some embodiments, step 415 may include local discovery. For example, one or more FMSs 105 may inspect and / or analyze their caches. Continuing with this example, one or more FMSs 105 may identify the device component 140 represented by the temporary node 145 based on the information in their caches. In some embodiments, process 400 may proceed to step 420.
[0085] In some embodiments, step 420 may include receiving one or more results of the local discovery. For example, the node module 125 may receive one or more responses from one or more FMSs 105. In some embodiments, the responses may include information identifying the equipment component 140. For example, a given FMS 105 may determine that the equipment component 140 is included in the segment 205 represented by the given FMS 105. Continuing with this example, the given FMS 105 may provide the node module 125 with information stored in the cache memory of the given FMS 105. In some embodiments, process 400 may proceed to step 425.
[0086] In some embodiments, step 425 may include determining whether the remote device was found. For example, the node module 125 may determine that the remote device was found in response to a response received in step 420 that includes information identifying the device component 140. As another example, the node module 125 may determine that the device component 140 represented by the temporary node 145 is recognized by one or more FMSs 105. In some embodiments, step 425 may refer to and / or include step 310. For example, step 425 may include determining whether the remote node exists. In some embodiments, process 400 may proceed to step 430 in response to determining that the remote device was found. In some embodiments, process 400 may proceed to step 435 in response to determining that the remote device was not found.
[0087] In some embodiments, step 430 may include creating a connection. For example, node module 125 may connect the remote device found in step 425 to one or more equipment components 140. In some embodiments, step 430 may refer to and / or include step 325. For example, node module 125 may create link 215 between the remote device found in step 425 and one or more equipment components 140. In some embodiments, process 400 may proceed to step 440.
[0088] In some embodiments, step 435 may include determining that a counter has elapsed. For example, when node module 125 creates temporary node 145, node module 125 may establish and / or determine the amount of time (e.g., a counter) that the temporary node will be active. As another example, node module 125 may determine that the temporary node will be active for five minutes. In some embodiments, the temporary node may be active for a predetermined amount of time. In some embodiments, process 400 may proceed to step 440.
[0089] In some embodiments, step 440 may include destroying the node. For example, node module 125 may destroy the temporary node in response to determining that the counter has expired in step 435. As another example, node module 125 may destroy the temporary node in response to establishing a connection between the device discovered in step 425 and one or more equipment items 140 in step 430.
[0090] Figure 5 A block diagram depicts a process 500 for determining relationships between one or more equipment items included in network topology 200, in some embodiments. In some embodiments, at least one step of process 500 may be performed by at least one of the systems, devices, and / or components described herein. For example, FMS 105 may perform at least one of the steps of process 500. Although some steps of process 500 are described as being performed by node module 125, processing circuitry 110 may perform at least one step of process 500.
[0091] In some embodiments, step 505 may include detecting a device component. For example, node module 125 may detect a first device component 140. In some embodiments, first device component 140 may be connected to a network. For example, first device component 140 may be connected to network 135. In some embodiments, node module 125 may detect first device component 140 in response to first device component 140 being connected to network 135. In some embodiments, node module 125 may represent a given segment 205, and first device component 140 may be included in the given segment 205.
[0092] In some embodiments, step 510 may include identifying a node representing the first equipment component. For example, the node module 125 may identify a given node 145 representing the first equipment component 140. In some embodiments, the node module 125 may identify the given node 145 in response to detecting the first equipment component in step 505. For example, the node module 125 may identify the given node 145 based on information related to the first equipment component 140.
[0093] In some embodiments, step 515 may include receiving an identification of the first equipment item. For example, node module 125 may receive information identifying first equipment item 140 from first equipment item 140. As another example, node module 125 may receive the identification of the first equipment item in response to node module 125 prompting the first equipment item.
[0094] In some embodiments, step 520 may include updating a record. For example, node module 125 may update a cache (e.g., a record) to include the identification received in step 515. In some embodiments, node module 125 may update a record to include an identification of the device and an indication of a given node. For example, node module 125 may update a cache to include the identification of the device detected in step 505 and to include the node identified in step 510.
[0095] In some embodiments, step 525 may include determining that the second device component is not in the segment. For example, the node module 125 may determine that the identification received in step 515 includes information identifying a neighbor (e.g., the second device component). Continuing with this example, the node module 125 may determine that the neighbor is not in the given segment 205 based on the information identifying the neighbor. In other words, the node module 125 may determine that the neighbor is included in the second segment 205.
[0096] In some embodiments, step 530 may include querying one or more devices to identify the second equipment item. For example, node module 125 may query one or more FMSs 105. As another example, node module 125 may generate a temporary node and node module 125 may transmit a message to prompt one or more FMSs 105 for information identifying the second equipment item.
[0097] The hardware systems described herein can be implemented in many different ways and with many different combinations of hardware, software, and circuit designs. For example, all or part of an embodiment may be a circuit system comprising an instruction processor, such as a central processing unit (CPU), a microcontroller, or a microprocessor; an application-specific integrated circuit (ASIC), a programmable logic device (PLO), or a field-programmable gate array (FPGA); or a circuit system comprising discrete logic or other circuit components, including analog circuit components, digital circuit components, or both; or any combination thereof. As an example, the circuit system may include discrete interconnected hardware components and / or may be combined on a single integrated circuit die, distributed across multiple integrated circuit dies, or implemented in a multi-chip module (MCM) comprising multiple integrated circuit dies in a common package. In some embodiments, the circuit system may be disposed on one or more integrated circuit dies in an integrated circuit package. In some embodiments, the integrated circuit package may be a combination of two or more packages.
[0098] The circuitry may further include or access instructions (e.g., software or firmware) that are executed by the circuitry. The instructions may be stored in a tangible storage medium other than a transient signal, such as flash memory, random access memory (RAM), read-only memory (ROM), or erasable programmable read-only memory (EPROM); or on a magnetic or optical disk, such as a compact disk read-only memory (CDROM), a hard disk drive (HDD), or other magnetic or optical disk; or in or on another machine-readable medium. A product, such as a computer program product, may include a storage medium and instructions stored in or on the medium, and the instructions, when executed by the circuitry in a device, may cause the device to perform any of the processes described above or illustrated in the figures.
[0099] The embodiments may be distributed as circuitry across multiple system components, such as across multiple processors and memories, optionally including multiple distributed processing systems. Parameters, databases, and other data structures may be stored and managed separately, incorporated into a single memory or database, logically and physically organized in many different ways, and implemented in many different ways, including as data structures such as linked lists, hash tables, arrays, records, objects, or implicit storage mechanisms. Programs may be parts of a single program (e.g., subroutines), separate programs, distributed across several memories and processors, or implemented in many different ways, such as in libraries such as shared libraries (e.g., dynamic link libraries (DLLs)). For example, a DLL may store instructions that, when executed by the circuitry, perform any of the processes described above or illustrated in the figures.
[0100] The term "couple" and its variations include causing two components to be directly or indirectly coupled to one another. The term "electrically coupled" and its variations include directly or indirectly coupling two components to one another through a conductive material (e.g., metal or copper traces). This coupling can be fixed (e.g., permanent or fixed) or removable (e.g., removable or releasable). This coupling can be achieved by: the two components being directly coupled to one another; the two components being coupled to one another using a separate intermediary component and any additional intermediary components that couple to one another; or the two components being coupled to one another using an intermediary component that is integrally formed as a single unitary body with one of the two components. If "couple" or its variations are modified by additional terms (e.g., directly coupled), the general definition of "couple" provided above is modified by the ordinary language meaning of the additional terms (e.g., "directly coupled" means that the two components are coupled without any separate intermediary components), resulting in a narrower definition than the general definition of "couple" provided above. This coupling can be mechanical, electrical, or fluidic. In some embodiments, the term "electrically decoupled" and its variations include directly or indirectly decoupling two components from one another (e.g., temporarily or permanently). Coupling and decoupling can be performed using switches (e.g., transistors).
[0101] The foregoing summarizes the features of several embodiments so that those skilled in the art may better understand aspects of the present disclosure. Those skilled in the art will appreciate that they may readily use this disclosure as a basis for designing or modifying other processes and structures for implementing the same purposes and / or achieving the same advantages of the embodiments described herein. Those skilled in the art will also recognize that such equivalent constructions should not depart from the spirit and scope of the present disclosure, and that various changes, substitutions, and modifications may be made herein without departing from the spirit and scope of the present disclosure.
[0102] It should be noted that certain paragraphs of this disclosure may refer to terms related to transmission spatial streams, sounding frames, responses, and subsets of devices, such as "first" and "second," to identify or distinguish one from another or from another. These terms are not intended to relate entities (e.g., first device and second device) solely in time or order, although in some cases, these entities may encompass such a relationship. These terms also do not limit the number of possible entities that may operate within a system or environment. It should be understood that the above-described systems may include multiple copies of any or each of these components, and that these components may be located on a standalone machine or, in some embodiments, on multiple machines in a distributed system. Furthermore, the above-described systems and methods may be provided as one or more computer-readable programs or executable instructions embodied on or in one or more articles of manufacture (e.g., floppy disk, hard disk, CD-ROM, flash memory card, PROM, RAM, ROM, or tape). The programs may be implemented in any programming language (e.g., LISP, PERL, C, C++, C#) or any bytecode language (e.g., JAVA). The software programs or executable instructions may be stored as object code on or in one or more articles of manufacture.
[0103] Although the above written description of the methods and systems enables one skilled in the art to make and use embodiments thereof, one skilled in the art will understand and appreciate that there are variations, combinations, and equivalents of the specific embodiments, methods, and examples herein. Therefore, the present methods and systems should not be limited to the above-described embodiments, methods, and examples, but rather to all embodiments and methods within the scope and spirit of the present disclosure.
Claims
1. A system comprising: a plurality of nodes distributed across a network, wherein respective nodes of the plurality of nodes represent respective pieces of equipment of a plurality of pieces of equipment connected to the network; and a first device corresponding to a first segment of a plurality of segments of the network, wherein the plurality of segments of the network are defined by a plurality of devices including the first device, and wherein the first device comprises one or more circuits configured to: detecting a first equipment item among the plurality of equipment items; identifying a first node among the plurality of nodes representing the first equipment item among the plurality of equipment items; receiving, from the first of the plurality of equipment items, an identification of the first of the plurality of equipment items; In response to receiving the identification, updating a record in a database to include the identification of the first one of the plurality of equipment items and an indication that the first one of the plurality of nodes represents the first one of the plurality of equipment items; determining that a second piece of equipment among the plurality of pieces of equipment is not in the first section among the plurality of sections based on information identifying the second piece of equipment among the plurality of pieces of equipment, wherein the information identifying the second piece of equipment among the plurality of pieces of equipment is received from the first piece of equipment among the plurality of pieces of equipment; and In response to determining that the second one of the plurality of equipment items is not in the first one of the plurality of sections, querying one or more of the plurality of devices via the network to identify the second one of the plurality of equipment items.
2. The system of claim 1, wherein the one or more circuits are further configured to: Receiving a response identifying the second one of the plurality of equipment items in response to querying the one or more devices of the plurality of devices, wherein the response comprises: an identification of the second equipment item among the plurality of equipment items; and an indication of a given section of the plurality of sections that includes the second piece of equipment of the plurality of equipment pieces; and The record is updated in response to receiving the response to include the identification of the second one of the plurality of equipment items and the indication of the given one of the plurality of sections.
3. The system of claim 1 , wherein querying the one or more devices of the plurality of devices via the network to identify the second device piece of the plurality of equipment pieces comprises: generating a node to store the information for identifying the second equipment item among the plurality of equipment items, wherein the node is included within the plurality of nodes for a predetermined amount of time; transmitting, via the node, a message to request the one or more devices to search for a corresponding record, the corresponding record including information related to an equipment item among the plurality of equipment items included in the corresponding section; and Responsive to receiving a response identifying the second one of the plurality of equipment items, replacing the node with a second node to link the first one of the plurality of equipment items with the second one of the plurality of equipment items, wherein the second node was not previously known to the first one of the plurality of devices.
4. The system of claim 1, wherein the one or more circuits are further configured to: generating a graph to illustrate the plurality of nodes distributed across the network, wherein the graph includes a plurality of links between respective ones of the plurality of equipment items, wherein a link between the first one of the plurality of equipment items and the second one of the plurality of equipment items in the plurality of links indicates that the first one of the plurality of equipment items is a neighbor of the second one of the plurality of equipment items; and updating the graph to include a second link between the second one of the plurality of equipment items and one or more third one of the plurality of equipment items in response to receiving a response to querying the one or more of the plurality of devices; Wherein the link between the first equipment item among the multiple equipment items and the second equipment item among the multiple equipment items, and the second link between the second equipment item among the multiple equipment items and the one or more third equipment items among the multiple equipment items represent connections between two or more segments among the multiple segments.
5. The system of claim 4, wherein the one or more circuits are further configured to: using the graph to detect a plurality of faults on the network; and implementing a response to resolve the plurality of faults on the network in response to detecting the plurality of faults; Wherein a first fault of the plurality of faults is associated with at least one segment of the plurality of segments that is different from the first segment of the plurality of segments.
6. The system of claim 1, wherein the one or more circuits are further configured to: receiving a response identifying the second one of the plurality of equipment items in response to querying the one or more of the plurality of devices; identifying, in response to receiving the response, one or more third ones of the plurality of equipment items connected to the second one of the plurality of equipment items via corresponding ones of the plurality of nodes; and The graph is updated to include a first link between the first of the plurality of equipment items and the second of the plurality of equipment items, and one or more second links between the second of the plurality of equipment items and the one or more third of the plurality of equipment items.
7. The system of claim 6, wherein the one or more circuits are further configured to: detecting a fourth equipment component among the plurality of equipment components; identifying a second node among the plurality of nodes representing the fourth equipment component among the plurality of equipment components; and A fifth one of the plurality of equipment items is determined in response to the identification of the fourth one of the plurality of equipment items to connect the first one of the plurality of equipment items with the fourth one of the plurality of equipment items.
8. The system of claim 1, wherein the one or more circuits are further configured to: monitoring communications across the network via a graph including links between the plurality of nodes to detect one or more failures; Wherein the graph is generated by the one or more circuits by subsequently querying one or more given devices of the plurality of devices in response to determining that the one or more given devices of the plurality of devices are not in the first segment of the plurality of segments.
9. The system of claim 1, wherein the one or more circuits are further configured to: providing a prompt of the information for identifying the second equipment piece among the plurality of equipment pieces to the first equipment piece among the plurality of equipment pieces, wherein the second equipment piece among the plurality of equipment pieces communicates with the first equipment piece among the plurality of equipment pieces via the network; wherein the first device component among the plurality of device components is detected via a first protocol; wherein the prompt is provided to the first of the plurality of equipment items via a second protocol; and The first protocol and the second protocol are different.
10. A device corresponding to a first segment of a plurality of segments of a network, wherein the network comprises a plurality of nodes distributed across the network, wherein respective nodes of the plurality of nodes represent respective pieces of equipment of a plurality of pieces of equipment connected to the network, and wherein the device comprises one or more circuits configured to: detecting a first equipment item among the plurality of equipment items; identifying a first node among the plurality of nodes representing the first equipment item among the plurality of equipment items; receiving, from the first of the plurality of equipment items, an identification of the first of the plurality of equipment items; In response to receiving the identification, updating a record in a database to include the identification of the first one of the plurality of equipment items and an indication that the first one of the plurality of nodes represents the first one of the plurality of equipment items; determining that a second piece of equipment among the plurality of pieces of equipment is not in the first section among the plurality of sections based on information identifying the second piece of equipment among the plurality of pieces of equipment, wherein the information identifying the second piece of equipment among the plurality of pieces of equipment is received from the first piece of equipment among the plurality of pieces of equipment; and In response to determining that the second one of the plurality of equipment items is not in the first one of the plurality of sections, one or more of the plurality of devices are queried via the network to identify the second one of the plurality of equipment items.
11. The device of claim 10, wherein the one or more circuits are further configured to: Receiving a response identifying the second one of the plurality of equipment items in response to querying the one or more devices of the plurality of devices, wherein the response comprises: an identification of the second equipment item among the plurality of equipment items; and an indication of a given section of the plurality of sections that includes the second piece of equipment of the plurality of equipment pieces; and The record is updated in response to receiving the response to include the identification of the second one of the plurality of equipment items and the indication of the given one of the plurality of sections.
12. The device of claim 10, wherein the one or more circuits are configured to query the one or more of the plurality of devices via the network to identify the second of the plurality of equipment items by: generating a node to store the information for identifying the second equipment item among the plurality of equipment items, wherein the node is included within the plurality of nodes for a predetermined amount of time; transmitting, via the node, a message to request the one or more devices to search for a corresponding record, the corresponding record including information related to an equipment item among the plurality of equipment items included in the corresponding section; and Responsive to receiving a response identifying the second one of the plurality of equipment items, replacing the node with a second node to link the first one of the plurality of equipment items with the second one of the plurality of equipment items, wherein the second node was not previously known to the apparatus.
13. The device of claim 10, wherein the one or more circuits are further configured to: generating a graph to illustrate the plurality of nodes distributed across the network, wherein the graph includes a plurality of links between respective ones of the plurality of equipment items, wherein a link between the first one of the plurality of equipment items and the second one of the plurality of equipment items in the plurality of links indicates that the first one of the plurality of equipment items is a neighbor of the second one of the plurality of equipment items; and updating the graph to include a second link between the second one of the plurality of equipment items and one or more third one of the plurality of equipment items in response to receiving a response to querying the one or more of the plurality of devices; Wherein the link between the first equipment item among the multiple equipment items and the second equipment item among the multiple equipment items, and the second link between the second equipment item among the multiple equipment items and the one or more third equipment items among the multiple devices represent connections between two or more segments among the multiple segments.
14. The device of claim 10, wherein the one or more circuits are further configured to: detecting a plurality of faults on the network using the graph generated by the device; and implementing a response to resolve the plurality of faults on the network in response to detecting the plurality of faults; Wherein a first fault of the plurality of faults is associated with at least one segment of the plurality of segments that is different from the first segment of the plurality of segments.
15. The device of claim 10, wherein the one or more circuits are further configured to: receiving a response identifying the second one of the plurality of equipment items in response to querying the one or more of the plurality of devices; identifying, in response to receiving the response, one or more third ones of the plurality of equipment items connected to the second one of the plurality of equipment items via corresponding ones of the plurality of nodes; and The graph is updated to include a first link between the first of the plurality of equipment items and the second of the plurality of equipment items, and one or more second links between the second of the plurality of equipment items and the one or more third of the plurality of equipment items.
16. The device of claim 15, wherein the one or more circuits are further configured to: detecting a fourth equipment component among the plurality of equipment components; identifying a second node among the plurality of nodes representing the fourth equipment component among the plurality of equipment components; and A fifth one of the plurality of equipment items is determined in response to the identification of the fourth one of the plurality of equipment items to connect the first one of the plurality of equipment items with the fourth one of the plurality of equipment items.
17. The device of claim 10, wherein the one or more circuits are further configured to: monitoring communications across the network via a graph including links between the plurality of nodes to detect one or more failures; Wherein the graph is generated by the one or more circuits by subsequently querying one or more given devices of the plurality of devices in response to determining that the one or more given devices of the plurality of devices are not in the first segment of the plurality of segments.
18. A method comprising: detecting, by one or more circuits of the first device, a first piece of equipment from among a plurality of pieces of equipment, wherein the plurality of pieces of equipment are connected to a network; identifying, by the one or more circuits of the first device, a first node of a plurality of nodes representing the first piece of equipment of the plurality of pieces of equipment, wherein the plurality of nodes are distributed across the network, and wherein a respective node of the plurality of nodes represents a respective piece of equipment of the plurality of pieces of equipment; receiving, by the one or more circuits of the first device from the first device of the plurality of equipment items, an identification of the first device item of the plurality of equipment items; updating, by the one or more circuits of the first device in response to receiving the identification, a record in a database to include the identification of the first one of the plurality of equipment items and an indication that a given one of the plurality of nodes represents the first one of the plurality of equipment items; determining, by the one or more circuits of the first device, that a second equipment item among the plurality of equipment items is not in a first segment among the plurality of segments based on information identifying the second equipment item among the plurality of equipment items, wherein the information identifying the second equipment item among the plurality of equipment items is received from the first equipment item among the plurality of equipment items; and In response to determining that the second piece of equipment in the plurality of equipment items is not in the first section of the plurality of sections, the one or more circuits of the first device query one or more of the plurality of devices via the network to identify the second piece of equipment in the plurality of equipment items.
19. The method according to claim 18, further comprising: generating, by the one or more circuits of the first device, a graph to illustrate the plurality of nodes distributed across the network, wherein the graph includes a plurality of links between respective ones of the plurality of equipment items, wherein a link between the first one of the plurality of equipment items and the second one of the plurality of equipment items in the plurality of links indicates that the first one of the plurality of equipment items is a neighbor of the second one of the plurality of equipment items; and updating, by the one or more circuits of the first device in response to receiving a response to querying the one or more devices of the plurality of devices, the graph to include a second link between the second device of the plurality of equipment items and one or more third device items of the plurality of equipment items; Wherein the link between the first equipment item among the multiple equipment items and the second equipment item among the multiple equipment items, and the second link between the second equipment item among the multiple equipment items and the one or more third equipment items among the multiple equipment items represent connections between two or more segments among the multiple segments.
20. The method of claim 19, further comprising: using the graph by the one or more circuits of the first device to detect a plurality of faults on the network; and implementing, by the one or more circuits of the first device in response to detecting the plurality of faults, a response to resolve the plurality of faults on the network; Wherein a first fault of the plurality of faults is associated with at least one segment of the plurality of segments that is different from the first segment of the plurality of segments.