1. Field of the invention
Embodiments of the present invention generally relate to computer networks and, more particularly, to a method and apparatus for identifying logical locations of network devices on a Local Area Network (LAN).
2. Description of the Related Art
Voice-over-Internet Protocol (VoIP) is a technological development in the field of telecommunications that is utilized to transmit voice conversations over a data network using Internet Protocol (IP) packets rather than the existing and traditional telecommunications system more commonly referred to as the Public Switched Telephone Network (PSTN) or Plain Old Telephone Service (POTS). Entities (e.g., businesses or individuals) implement VoIP by purchasing and installing the necessary equipment (e.g., one or more VoIP Terminal Adaptors (TA)) to access a VoIP service provider and activating this telecommunication service via a broadband Internet connection.
Typically, entities will not solely have telecommunications equipment connected to the broadband Internet connection. Various other data networking devices including but not limited to computers, peripherals and wireless networking devices will comprise a substantial Local Area Network (LAN) that is connected to a Wide Area Network (WAN) with a multitude of services available via the broadband Internet connection. Such VoIP systems may interface with other devices connected to the home network. However, these other devices connected to a user's home network may cause problems with the VoIP systems/service if not operating properly, configured incorrectly, outdated, and the like.
Typically, VoIP service providers have customer care service centers to interact and provide customer service to VoIP telephony users. One problem typically encountered by customers who interact with a support communications center is the need to provide detailed sets of information regarding the state and configuration of the customer's internal home network (e.g., how network devices are connected in the customer's internal home network) each time the customer starts a communications session or interacts with an operator. This information is typically required in order to troubleshoot problems that may be encountered by a VoIP telephony user.
It would be beneficial if methods and apparatus were developed which improved the customer experience by reducing the amount of redundant or inaccurate customer input. In addition to improving the customer experience, the reduced time to ascertain the state and configuration of a user's home network would translate directly into reduced costs and improve capital utilization. Therefore, there is a need in the art for an improved method and apparatus for determining the network topology of a customer's LAN.
A method and apparatus for identifying logical locations of network devices on a LAN is provided herein. In some embodiments, the method includes receiving an input including a network identifier of a network terminal adaptor on a LAN, determining, using the received network identifier, network devices connected upstream and downstream of the network terminal adapter on the LAN, and collecting device telemetry data associated with each determined network device and the network terminal adaptor, and generating, using the device telemetry data, a data structure including (a) a representation of a logical location of the network terminal adaptor and of each determined network device connected to the LAN, and (b) at least some of the device telemetry data.
In some embodiments, an apparatus for identifying logical locations of network devices on a LAN is provided which includes a) at least one processor, b) at least one input device, and c) at least one storage device storing processor-executable instructions which, when executed by the at least one processor, perform a method including: receiving an input including a network identifier of a network terminal adaptor on a LAN; determining, using the received network identifier, network devices connected upstream and downstream of the network terminal adapter on the LAN and collecting device telemetry data associated with each determined network device; and generating, using the device telemetry data, a data structure including (a) a representation of a logical location of each of the network terminal adaptor and of each determined network device connected to the network terminal adaptor on the LAN, and (b) at least some of the device telemetry data.
In some embodiments, a computer readable medium storing a software program that, when executed by a computer, causes the computer to perform a method for identifying logical locations of network devices on a LAN including receiving an input including a network identifier of a network terminal adaptor on a LAN, determining, using the received network identifier, network devices connected upstream and network devices connected downstream of the network terminal adapter on the LAN, and collecting device telemetry data associated with each determined network device, and generating, using the device telemetry data, a data structure including (a) a representation of a logical location of each of the network terminal adaptor and of each determined network device connected to the network terminal adaptor on the LAN, and (b) at least some of the device telemetry data.
So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
While the methods and apparatus are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that method and apparatus for identifying logical locations of network devices on a LAN is not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed. Rather, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of method and apparatus for identifying logical locations of network devices on a customer's Local Area Network. Any headings used herein are for organizational purposes only and are not meant to limit the scope of the description or the claims. As used herein, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including, but not limited to.
Embodiments of the present invention include a method and apparatus for identifying logical locations of network devices on a customer's LAN. Using previously collected device telemetry environmental data (DTC data) from VoIP terminal adaptors on a customer's LAN, a logical representation of a customer's home network topology can be generated. DTC data is essentially a snapshot of a TA's WAN/LAN IP Addresses, LAN Dynamic Host Configuration Protocol (DHCP) Client Data, and WAN gateway data (i.e., a thorough depiction of network devices connected upstream and downstream of the TA on the LAN). Through a recursive set of processes, a representation of the logical location of network devices on the customer's network can be generated without requiring private access to the customer's LAN.
Various embodiments of an apparatus and method for identifying logical locations of network devices on a customer's LAN are provided below. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, methods, apparatuses or systems that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter.
The server 106 is represented in the form of a general purpose computer such as those generally known in the art that, when executing particular software becomes a specific purpose computer for performing various embodiments of the present invention. The server 106 may include one or more central processing units (CPU) 140 coupled to each of support circuits 142, and memory 144. The CPU 140 may comprise one or more commercially available microprocessors or microcontrollers that facilitate data processing and storage. The various support circuits 142 are utilized to facilitate the operation of the CPU 140 and may include such circuits as clock circuits, power supplies, cache, input/output (I/O) circuits and devices, modulation/demodulation devices, human interface devices, and the like. In some embodiments, the support circuits 142 may include a display device (not shown) and an input device (not shown) that provides a Web front end to a service representative to accept input and send/receive input that may be used in a LAN topology generation application 148 described below.
The memory 144 may comprise random access memory, read only memory, removable storage, optical disk storage, disk drive storage, flash memory, and combinations thereof. The memory 144 may store software that is executed to perform methods of according to embodiments of the invention. For example, the software can implement at least a portion of the methods 300, 400, 500 and 600 performed by server 106 or other servers 100 in the VoIP network 104. The software, when executed by the CPU 140, transforms the general purpose computer into a specific purpose computer that controls methods described herein. The software stored in memory 144 includes an operating system 146 and the LAN topology generation application 148. Such operating system 146 may include Linux, UNIX, Apple OS, Windows, and the like. In operation, the CPU 140 executes the operating system 146 to control the general utilization and functionality of server 106. The LAN topology generation application 148 operates to identify the logical location of network devices on a customer's LAN 102 in some embodiments consistent with the present invention. The LAN topology generation application 148 does so by generating a data structure including a representation of the logical location of network devices connected to LAN 102. In some embodiments, the LAN topology generation application 148 is a standalone application that informs other applications of the network topology of a customer's LAN 102. One of ordinary skill in the art would recognize that such a LAN topology generation application 148 may be implemented as a component of the operating system 146, as a device driver, as part of a separate application, as an application program interface (API) or in any other type of software as commonly known in the art. In some embodiments, the LAN topology generation application may be implemented in any of software, firmware, hardware, or a combination thereof.
In some embodiments consistent with the present invention, a service terminal 112, such as one used by a customer service representative of a VoIP service provider, is coupled to the VoIP network 104. The service terminal 112 may be coupled to server 106 via IP network 108 or via other internal network/links 114 separate from IP network 108. In some embodiments, the service terminal 112 may include a display device (not shown) and an input device (not shown) that provides a Web front end to a service representative to accept input and send/receive input from server 106.
LAN 102 may include a VoIP terminal adaptor (TA) 120 and various network devices 122a-x coupled directly or indirectly to the IP network 108 via links 128. It should be understood that LAN 102 may include more or less network devices than depicted in
The TA 120 typically collects DTC data from each of the network devices 122a-x connected on LAN 102. A DTC report is generated by TA 120 and sent to at least one of server 106 or other servers 110. The DTC reports sent by TA 120 may be generated and sent on a daily basis, upon startup of the TA 120, by manual request, or by any other configured schedule. The DTC data included in the DTC report is stored in DTC tables 150 in a database (e.g., database 116). The DTC data collected by TA 120 from each network device 122a-x, and/or from the TA 120 itself, may include, but is not limited to, device type, device vendor, LAN IP address, WAN IP address, MAC address, software version, uptime, VoIP service provider account number, one or more VoIP phone line numbers, registration status, recent telemetry events, and the like. In some embodiments consistent with the present invention, in the DTC tables 150, each entry for a specific network device stores the MAC and IP Addresses of each device that is connected immediately downstream to the specific network device (i.e., each DHCP client of that device). Thus, the “children” or downstream network devices the specific network device is associated with may be included in DTC tables 150. In addition, in some embodiments consistent with the present invention, each entry for a specific network device stores the specific network device's “wan_router_mac_address”. In other words, the MAC address of the upstream router (“parent”) it is connected to. Furthermore, in some embodiments consistent with the present invention, “siblings” of the specific network device can be found by searching for other network devices in the DTC table 150 with that same “wan_router_mac_address.”
As depicted in
In embodiments consistent with the present invention, a first network device that is connected upstream of a second network device (or a TA 220) is one that is coupled to the LAN 202 between the second network device (or the TA 220) and IP network 208, such that any communication between the second network device (or the TA 220) and IP network 208 passes through the first network device. For example, in
In embodiments consistent with the present invention, a first network device that is connected downstream of a second network device (or a TA 220) is one where the second network device (or the TA 220) is coupled to the LAN 202 between the first network device and IP network 208, such that any communication between the first network device and IP network 208 passes through the second network device (or the TA 220).
In embodiments consistent with the present invention, a first network device that is a sibling of a second network device is one where the first network device and the second network device are both communicatively coupled to a third common upstream network device, and therefore the first and second network devices logically exist at the same hierarchical network level. For example, in
In embodiments consistent with the present invention, all network devices connected upstream of TA 220 are recursively determined. For example, using a network identifier of TA 220, a DTC table in database 116 may be queried using the network identifier to identify upstream devices. For each upstream device found, an upstream recursive process is performed (discussed below in more detail with respect to
Similarly, in embodiments consistent with the present invention, all network devices connected downstream of TA 220 are recursively determined. However, unlike the upstream recursive process, a downstream recursive process (described in more detail below with respect to
The method 300 then proceeds to 306 where all network devices connected upstream of the TA on the customer's LAN are determined along with device telemetry data associated with each determined upstream device and the TA. At step 308, the method 300 determines if there are any more upstream network devices and continues to perform steps 306 and 308 for each device found and until all upstream devices have been resolved. The upstream recursive procedure for determining all upstream devices is described in more detail with respect to
The method 300 then proceeds to 310 where all network devices connected downstream of the TA on a customer's LAN are determined along with device telemetry data associated with each determined downstream device and the TA. At step 312, the method 300 determines if there are any more downstream network devices and continues to perform steps 310 and 312 for each device found and until all downstream devices have been resolved. The downstream recursive procedure for determining all downstream devices is described in more detail with respect to
After all upstream and downstream devices with respect to the TA have been resolved, the method 300 generates a data structure including representation of customer LAN topology at step 314. The representation of the customer LAN topology includes a representation of the network TA, of each determined network device connected to the network TA on the LAN, and of at least some of the associated device telemetry data. In some embodiments consistent with the present invention, the representation may be one of a Markup Language (XML) representation or a JavaScript Object Notation (JSON) representation. Other data representations may also be used. The method 300 then ends at 316.
Next, for each network device determined (at step 406), the method 400 determines sibling network devices (at the same network level of the network device being analyzed) and associated device telemetry data at step 410. For example, the device telemetry data for each network device in the DTC table 150 includes a “wan_router_mac_address” (i.e., the MAC address of the upstream router it's connected to). Thus, in some embodiments of the present invention, the method 400 can find siblings of a network device by searching for other network devices in the DTC table 150 with that same “wan_router_mac_address”.
At step 412, downstream network devices and associated device telemetry data are determined/collected. For example, the device telemetry data for each network device in the DTC table 150 includes a “lan_dhcp_client_table_data” field (i.e., the MAC address of “children” network devices). Thus, in some embodiments of the present invention, the method 400 can find children of a network device (i.e., downstream network devices) using the “lan_dhcp_client_table_data” field.
At step 414, if network devices were determined in any of steps 408, 410 and 412, the method 400 returns to step 406. At step 414, if no network devices were determined in steps 408, 410 and 412, the method 400 proceeds to step 416. At step 416, if there are more devices in the first set of network devices determined in step 404 that have not been recursively processed, the method 400 returns to step 406. At step 416, if all devices in the first set of network devices determined in step 404 were recursively processed, the method 400 ends at step 418.
Although not shown in
In
Although not shown, the graphical user map may display differences in different network configurations that may have existed on different dates with respect to a customer's LAN. The prior configuration may be displayed as grayed or in a different color to emphasis the differences.
The foregoing description of embodiments of the invention comprises a number of elements, devices, circuits and/or assemblies that perform various functions as described. For example, support circuits 142 are an example of a means for receiving an input including a network identifier of a network terminal adaptor on a LAN, and one or more processors 140 and LAN topology generation application 148 are examples of means for determining, using the received network identifier, network devices connected upstream and downstream of the network terminal adapter on the LAN, and device telemetry data associated with each determined network device and the network terminal adaptor and a means for generating, using the device telemetry data, a data structure including a representation of the network terminal adaptor, of each determined network device connected to the network terminal adaptor on the LAN, and of at least some of the associated device telemetry data. These elements, devices, circuits, and/or assemblies are exemplary implementations of means for performing their respectively described functions.
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.