Computer networks generally comprise various interconnected computing devices that can exchange data. Computing devices in a computer network can be in direct communication with one or more other computing devices. Each direct communication connection between computing devices in a computer network is generally referred to as a network link, or a link. While a computer network is generally made up of a number of links, computing devices in a computer network do not typically include links to every other computing device in the computer network. Rather, data to be exchanged between computing devices can be subdivided into packets and propagated via the computer network to eventually reach an intended recipient, regardless of whether there is a direct link between the sender and recipient.
More specifically, packets of data are typically transmitted from an origin computing device to an identified destination computing device. If a packet of data is received by a computing device that is not the identified destination computing device, the receiving computing device becomes an intermediary in the communication path between the origin computing device and the destination computing device by forwarding the packet to another computing device in the computer network. Accordingly, each packet of data is transmitted through one or a series of intermediate links in the computer network until the packet reaches its destination computing device. The one or more links for delivery of a packet of data between an origin computing device and a destination computing device is generally referred to as a network path, or a path.
At each computing device in a communication network, an independent decision may be made regarding the path to the identified destination computing device for each received data packet. Each computing device can use several factors for making the decision regarding the path to the identified destination. For example, in some networks, portions of the destination address included in the data packet may be used to compare to a lookup table on the computing device. Based on the independent decision, a receiving computing device transmits a received data packet on the next intermediate link in the path.
Indications of total traffic on any one link in the network may be obtained by measuring packets transmitted or received on the two computing devices connected by that link. As networks become increasingly complex, network operators may desire to obtain information regarding the performance of paths in the network, rather than indications of total traffic on individual links. The performance of paths in the network may include a view of the interconnection between all the computing devices in the network. Performance of the paths may also include indications of network availability or failures, which may include an indication of dropped or lost packets, an indication of service degradation, or even of a network halt due to excessive traffic.
In some cases, the computer network may be part of a network operated as a data center. Operators of data centers generally wish to ensure the highest availability possible for their network at the lowest cost possible. Problems relating to network failures affect the operators' overall costs. The operators typically wish to be able to accurately estimate the impact of the network failures. For example, in some situations, several different components in the network may be affected by the same cause of failure. In other situations, several causes of failures may affect the same network component. In either of these circumstances, a network failure should be detected. As another example, some failures may demonstrate high packet loss but may be confined to a small number of devices, while other failures may demonstrate low packet loss, but be confined to a large number of devices. The data center operators wish to identify the impact of all types of failures.
The foregoing aspects and many of the attendant advantages will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
Generally described, aspects of the present disclosure relate to the management of information related to the impact of network failures. Aspects of the present disclosure enable the determination of impact of failures in networks by collecting performance information across paths in the network, wherein the paths include one or more nodes and links between nodes in the network. Once there has been sufficient performance information collected, the system analyzes the performance observed on paths associated with at least one common node. The analysis of the performance observed may include an assessment of the absolute and relative quantity of paths on the network with a performance level above or below a predetermined threshold. The assessment of the absolute and relative quantities may be used to determine a scale of customer impact of any observed failure in the network. For example, determining the impact may include determining the quantity of paths associated with specific customers' sub-networks. Based on the analysis of the performance, the system may also determine whether some nodes are associated with performance information that is statistically different from performance information from other nodes. Such nodes may be labeled as “outliers.” For nodes labeled as outliers, the performance information associated with paths crossing through such nodes may be adjusted to exclude the performance of links having comprising at least one outlier node. Then, the performance information associated with outlier nodes is not considered in a subsequent analysis used to determine the impact of any network failures.
Illustratively, systems and components which are common to any set of data center components may be identified and analyzed to determine whether a failure may affect multiple otherwise independent data center components. Devices (also referred to herein as servers, or nodes) in the network may be physically connected to one another. In addition, devices may also be organized into logical hierarchies and connected with physical cabling, wireless signaling or otherwise purely programmatic abstractions (e.g., API calls). These “logical topologies” apply to such things as network layout of hosts within a network switching fabric, power connections made through data center, room and rack level power distribution components or execution dependencies between software components. Components may fail in the physical domain and interrupt correct functioning of devices that are not necessarily in close physical proximity because of the “logical” connections; for example, a failed network router may cause service interruptions to servers even in entirely different geographic regions. Such logical hierarchies of devices, servers or nodes may be referred to as “racks” of devices, servers or nodes herein.
Although various aspects of the disclosure will be described with regard to illustrative examples and embodiments, one skilled in the art will appreciate that the disclosed embodiments and examples should not be construed as limiting. Various aspects of the disclosure will now be described with regard to certain examples and embodiments, which are intended to illustrate but not limit the disclosure.
An example network computing environment in which the features of the network failure impact determination system can be implemented will be described.
Illustratively, the network failure impact determination component 108 can receive data from a number of data center components 110, detect the existence of network failures, determine the impact of such network failures, and respond to queries from the client computing device 120. For example, the network failure impact determination component 108 may receive data regarding the data center components 110 and operational characteristics thereof directly from the data center components 110, from a data store 106, from data entry or manual scanning of barcodes associated with the various data center components, or from some other sources. In some embodiments, the network failure impact determination component 108 can generate an alert upon detection of a network failure and/or determination of impact of such network failure.
The network failure impact determination component 108 or the client computing device 120 may be computing devices, such as server computers or desktop computers, configured with various hardware and software modules to implement the processes described herein. In addition, the network failure impact determination component 108 and/or the client device 120 may be physically located within a data center, and may therefore also be a data center component 110. In some embodiments, the network failure impact determination component 108 or client device 120 may be remote from the data center which includes the data center components 110. In some embodiments, the network failure impact determination component 108 may be integrated with the client device 120 or physically co-located on the same computing device.
In accordance with
Illustratively, the origin node does not specify the path in which a packet may or must travel. For illustrative purposes, for the packet travelling from node N4 to N7, N4 does not specify that the packet may or must travel through N1, N5 and N3. Rather, if a receiving node, such as node N1, which is an intermediary node, and is not the destination node N7, obtains a packet from N4, it transmits the packet to another node, such as N5 via a selected link, such as link L15. Accordingly, the results of each intermediary node (such as for example nodes N1, N5 and N3) forwarding a packet defines the path which the packet takes from N4 to N7. As such, the same intermediary node may forward successive packets along different links, which would result in the successive packets being forwarded to the destination node along different paths based on the selection of the link the intermediary node. With reference to
One skilled in the relevant art will appreciate that networks monitored by the network failure impact determination component 108 may include several more nodes than the illustrative network shown in
At block 302, the topology of the network is gathered, in order to be used for network failure impact determination, as described further in connection with the routine 400 illustrated in
In order to determine whether there are any remaining paths for which data needs to be gathered, a rough knowledge of the network topology may be used. The rough knowledge of the network topology may be derived from querying router devices in the network to gather topology information such as information provided by various routing protocols, such as for example, Open Shortest Path First (OSPF) and Border Gateway Protocol (BGP). The rough knowledge of the topology may also be based on diagrams provided by network technicians. The diagrams provided may also be associated with various confidence levels. The rough knowledge of the topology may also be based on knowledge of the workflow of the build process for the network. For example, it may be known that the network was initially designed with a 100 nodes, and there was a planned expansion of a doubling of nodes in a given timeframe within a given geographic area. The topology may also be inferred from a combination of external sources, such as configuration files, technicians' information, automated switch building, subnet analysis, SNMP query information regarding run-time configuration states of devices, or other monitoring services. The topology of the network is gathered and stored. The topology may also be periodically validated to ensure it is up to date, and updated as necessary. Any topology changes observed may be used to trigger reallocation of health checks at block 304 described below. The topology gathered may be made available for display.
At block 304, health checks are allocated across the paths in the network. In one embodiment, in order to not overload links in the network with health check information, the network failure impact determination component 108 determines a minimum number of health checks across the network that may be necessary to adequately cover potential paths in the network. The minimum number of health checks may be related to the size of the network. The minimum number of health checks may also be related to the network operator objectives, including the balance between overloading the network by running health checks and gathering sufficient data to triangulate issues with a given level of statistical power. The frequency of health checks may be set and adjusted in various ways. The frequency may be static, it may be manually adjusted, or it may also be dynamically adjusted based on business logic. The frequency of health checks may also be adjusted (as indicated by the loop 305 based on topology changes observed in block 302 or based on frequency of such topology changes. The health check allocation may also be adjusted based on validation of the allocation strategy at block 404 described below with reference to
A ping utility may be used to check if a remote device is operating and connected to another node in a network. The source device may send an Internet Control Message Protocol (ICMP) packet to the remote device's IP address. If the destination device is operating and the network links are healthy, the source device will receive a return an ICMP packet, unless configured to ignore such requests. Thus, the network failure impact determination component 108 can collect data on roundtrip times and delays using the ping utility. Using other packet protocols, including for example TCP, UDP and the like, may have different advantages and may be used in various embodiments, which may be chosen based on the intended use cases of the network. In some embodiments, transmitting a message with UDP or TCP packets instead of ICMP packets provides the added advantage of being able to select the paths taken between two endpoints.
The network failure impact determination component 108 may manipulate paths between the two endpoints by manipulating port numbers. For example, the network failure impact determination component 108 may manipulate paths in accordance with flow preserving next-hop packet forwarding protocols such as Equal Cost Multi-Path (ECMP). With ECMP, and similar flow preserving packet forwarding strategies, at each node in the network, the decision on which path to take to send a packet to the destination computing device is done independently, and is deterministically dependent on the source port number, the destination port number, the source IP address, and the destination IP address. The use of UDP packets by the transmitters of the network failure impact determination component 108 allows the packets to be re-routed as necessary to a path for which data needs to be gathered. The re-routing is enabled by manipulation of port numbers. Each node learns and takes a default flow through the nodes in the network to arrive at a given destination. By manipulating the destination port through the use of UDP packets, the intermediate packet forwarding devices can be forced into taking a different, desired path. Therefore, in the network failure impact determination component 108, each link in the network 112 is covered by a sufficient number of paths in order to identify a failing link from a set of failing paths. The various paths covering a link may be achieved by using one or more of the agents on the nodes.
The strategy for allocating health checks across a network may include iterating through all the links in a network in order to meet a number of predetermined constraints. Examples of such constraints may include, for example, a minimum number of paths per link, or a maximum number of paths per link. In order to achieve a level of desired allocation coverage, the network failure impact determination component 108 may add synthetic network traffic by sending probes from select agents in the network. It may be desirable to throttle the frequency of health checks to manage the load generated on network links. However, a minimum number of health checks are necessary for adequate coverage and monitoring of the network. In order to accurately measure packets dropped or lost on links to nodes, each node is tested for reachability at an ideal frequency designed to keep the amount of data generated by the transmission of the messages to a workable level while accurately measuring packet loss. In some embodiments, a health check may be initiated every 100 milliseconds, or every 500 milliseconds, or every 5 seconds, or every 5 minutes, or any other suitable period of time according to business and/or other requirements of the network supported service.
Using the network topology previously gathered, each link in the network is iterated through in order to ensure that at least one path traverses the link. If a path is successfully allocated to a given link, a counter for all links on a path may be incremented by a certain value. If however if a path is not allocated to a link yet, then the health check allocation may be adjusted to achieve a desired path until all links achieve a target number of paths per link.
Once the health checks are allocated (and adjusted), then, at block 306, the communication attributes across the network are measured. The communication attributes may be measured on one-way or on round-trip paths. Since the different paths of the network are discovered during topology gathering at block 302, the route followed by a data packet is known based on the combination of the source IP and port, and destination IP and port used in the packet. The time taken to send and receive the packet is recorded by the network failure impact determination component 108. Once the communication attributes are measured on the various paths in the network 112, the routine ends at block 308.
Though the process described above may describe actions or events in a linear manner, the description is not meant to imply that linear execution of the process is required. One skilled in the art will appreciate that components of the process described above may be carried out in different orders than described above. As such, the description of the process above is intended to be descriptive of one example only.
At block 402, the communication attributes collected by each of the selected nodes are aggregated. Aggregation of the communication attributes enables reliable detection of failing paths. Data collected across several paths crossing the same node through different links or through packets sent from different transmitter nodes are aggregated. In some embodiments, the aggregation uses information from the gathered network topology. In some embodiments, the aggregation may be done at a rack level. For example, the performance information for all paths associated with a logical grouping of nodes may be aggregated. In some embodiments, the logical grouping of the nodes may be based the association of the nodes with individual customers of the data center.
At block 404 the communication attributes collected are used to determine whether the allocation strategy adopted is appropriate. The allocation strategy aims to provide adequate coverage of all the paths in the network. The communication attributes collected may indicate a need to adjust the allocation strategy in order to collect more path information. The health check frequency may thus be increased in some scenarios. In some scenarios, new paths may be allocated to one more different agents on the networks. At block 405, if it is determined that the health checks need to be reallocated, then the loop 305 of the routine 300 may be repeated.
At block 406, using the communication attributes aggregated, the network failure impact determination component 108 calculates performance characteristics for the paths, using the network topology gathered at block 302 of the collection service routine 300. Performance characteristics may include indications of packet transfer rate, packet loss, latency, throughput, jitter and the like. The aggregation service may store the information collected and aggregated in a data store such as data store 106 illustrated in
Using the network topology gathered at block 302 of the collection service routine 300, the aggregation service may iterate through all the links in the network topology in order to compute a percentage of links and nodes which indicate a failure. The links and nodes may be sorted by failure percentage. The performance information collected for the links and nodes may also be used to compute path performance and thereby determine, for example, customer impact of any failures observed.
At block 408, the aggregation service performs refinement of the collected information. Having calculated the performance characteristics over the paths on the network, the aggregation service may, using knowledge regarding the network topology, refine the collected information to reduce the amount of information used to perform network failure impact determination. For example, a criterion for refinement may be to only consider paths on the network through which a predetermined percentage of the packets are transmitted. Another criterion for refinement may be to only consider paths which exhibit packet loss exceeding a predetermined threshold. An illustrative example of refinement may be to only consider a node or link if a predetermined percentage of paths through the node or link drop more than a predetermined percentage of packets. Other criteria may also be used for refining the collected information, and one or more criteria may be used in conjunction with others. In some embodiments, the refinement of collected information may not be performed, and all of the collected information may be used to perform network failure impact determination.
At block 410 the aggregation service initiates a network failure impact determination subroutine, an example of which is described with respect to
Though the process described above may describe actions or events in a linear manner, the description is not meant to imply that linear execution of the process is required. One skilled in the art will appreciate that components of the process described above may be carried out in different orders than described above. As such, the description of the process above is intended to be descriptive of one example only.
In some embodiments, network failure detection may be performed by constructing a set of equations given a performance indication across a path given estimates on performance indication for each link and node in the path. This allows a numerical optimization method to solve for the performance indication for each link and node in the path given the data on the performance indication across paths. For example, one indication of performance may be packet transfer rate (PTR). Another indication of performance may be loss. The loss may be represented by a packet loss rate (PLR). In some embodiments, the PLR may be represented by the percentage of packets transmitted from one node and not successfully received by another node. In some embodiments, the PLR may be represented as 1-PTR.
Given the performance characteristics collected from various paths, a set of equations given an indication of performance across a path may be developed in order to solve for the performance indications for each link and node in the path. The health of each node and each link can be represented as a system of equations dependent on the network topology. The health of each node and link in the network can be determined by solving the system of equations in the context of the pathwise performance indication. In some embodiments, the performance indication can be data related to packet transfer rates. Therefore, in order to perform network failure detection, data for enough different paths needs to be collected.
Generally described, the network failure impact determination component 108 processes the aggregated data to determine the impact of the detected failures. In one embodiment, the scale of customer impact may be determined. In another embodiment, the locations of nodes impacted by network failures may be determined.
At block 502, the collected information which has been refined by the process illustrated in
Each node in the network may be associated with several paths of links passing through the node. The statistics collected for the several paths associated with the node may be further analyzed to determine a number of problematic paths passing through the node, and also a number of non-problematic paths passing through the same node. In various embodiments, a problematic path may include a path exhibiting percentage performance characteristics exceeding or not meeting a predetermined threshold. Then, the numbers of problematic and non-problematic paths associated with other nodes in the same rack of the data center may also be determined. By comparing the performance of paths of different nodes located on the same rack of the data center, it is possible to make a determination of whether the node itself is problematic, or the paths associated with the nodes are indeed problematic.
For example, it may be determined that a total of 15 paths passing through a node, say node 1, are problematic, and 2 paths crossing through the node 1 are non-problematic. For another node in the same rack, say node 2, it may be determined that there are a total of 8 paths which are problematic and 7 paths which are non-problematic. For yet another node in the same rack, say node 3, there may be 3 paths which are problematic and 2 paths which are non-problematic. Given that the nodes logically associated with one another are expected to exhibit similar path performances, the network failure impact determination component 108 may make a determination of whether the problems observed are indicative of problematic paths, or the problems are more indicative of problematic nodes.
Additionally, information associated with a first rack of nodes may be used to extrapolate information associated with one or more other racks of nodes having a path which crosses at least one of the nodes in the first rack. For example, once a determination is made that a path associated with a node is problematic, any racks having a node on the problematic path may be identified as impacted by the network failure.
Then, at block 504 the impact determination routine determines the appropriate set of information to analyze. For example, the network failure impact determination system may determine that some of the collected information may need to be removed from the set, and it may also determine information regarding other racks even if the information is not necessarily collected from the other racks by extrapolating. Continuing the example above, the collected information across node 1 may be removed from the set, due to an indication of a problematic node as opposed to problematic paths. Node 1 may thus be considered to be an outlier, because that node's number of problematic paths is relatively very high. Once a node is considered to be an outlier, all the links passing through that node may be removed from the set of information processed to determine the impact of network failures. Therefore, in the example above, all of the links passing through node 1 are removed from the set of collected information used to detect network failures and to also determine the impact of those network failures. Similarly, if a path is determined to be problematic, any racks having a node on the problematic path may be identified as impacted by the network failure, even if information is not collected for that node.
At block 506, having removed the outliers from the set of collected information, and also having extrapolated information to other racks as appropriate, the impact determination component 108 may determine the impact of any network failures. For example, the impact determination component 108 may determine the set of problematic paths in the network after discounting for problematic nodes. Once the correct set of problematic paths is determined, the component 108 may make a determination of the reachability of various nodes and/or racks in the network. The various nodes and/or racks in the network may be associated with various customers of the data center. Therefore, an indication of the reachability of the various nodes/racks provides an indication of the potential impact to the service of the respective customers. Once the impact of network failures is determined, the routine 500 ends at block 508.
Though the process described above may describe actions or events in a linear manner, the description is not meant to imply that linear execution of the process is required. One skilled in the art will appreciate that components of the process described above may be carried out in different orders than described above. As such, the description of the process above is intended to be descriptive of one example only.
It will be appreciated by those skilled in the art and others that all of the functions described in this disclosure may be embodied in software executed by one or more processors of the disclosed components and mobile communication devices. The software may be persistently stored in any type of non-volatile storage.
Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.
Any process descriptions, elements, or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those skilled in the art. It will further be appreciated that the data and/or components described above may be stored on a computer-readable medium and loaded into memory of the computing device using a drive mechanism associated with a computer readable storing the computer executable components such as a CD-ROM, DVD-ROM, or network interface further, the component and/or data can be included in a single device or distributed in any manner. Accordingly, general purpose computing devices may be configured to implement the processes, algorithms and methodology of the present disclosure with the processing and/or execution of the various data and/or components described above.
It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
4853927 | Wenzel | Aug 1989 | A |
5477531 | McKee | Dec 1995 | A |
5832225 | Hacherl et al. | Nov 1998 | A |
5864662 | Brownmiller et al. | Jan 1999 | A |
6185612 | Jensen et al. | Feb 2001 | B1 |
6654914 | Kaffine et al. | Nov 2003 | B1 |
6671818 | Mikurak | Dec 2003 | B1 |
6678250 | Grabelsky | Jan 2004 | B1 |
6694455 | Scrandis et al. | Feb 2004 | B1 |
6738933 | Fraenkel et al. | May 2004 | B2 |
6747991 | Hemy | Jun 2004 | B1 |
6823479 | McElhaney et al. | Nov 2004 | B1 |
6901530 | Cerami et al. | May 2005 | B2 |
6909741 | Smith et al. | Jun 2005 | B1 |
6978302 | Chisholm et al. | Dec 2005 | B1 |
6981039 | Cerami et al. | Dec 2005 | B2 |
7016313 | Harper | Mar 2006 | B1 |
7134135 | Cerami et al. | Nov 2006 | B2 |
7251055 | Sawada et al. | Jul 2007 | B2 |
7260060 | Abaye et al. | Aug 2007 | B1 |
7337206 | Wen | Feb 2008 | B1 |
7385924 | Riddle | Jun 2008 | B1 |
7423995 | Elliott | Sep 2008 | B1 |
7441154 | Klotz et al. | Oct 2008 | B2 |
7457868 | Guo | Nov 2008 | B1 |
7525922 | Cidon et al. | Apr 2009 | B2 |
7546609 | Florissi et al. | Jun 2009 | B2 |
7609650 | Roskowski et al. | Oct 2009 | B2 |
7639705 | Watanabe et al. | Dec 2009 | B2 |
7706373 | Xu et al. | Apr 2010 | B2 |
7751350 | Pabst | Jul 2010 | B1 |
7788536 | Qureshi et al. | Aug 2010 | B1 |
7844730 | Kawaguchi | Nov 2010 | B2 |
7936694 | Choudhury | May 2011 | B2 |
7949739 | Florissi et al. | May 2011 | B2 |
7953020 | Breslau et al. | May 2011 | B2 |
8018844 | Bender et al. | Sep 2011 | B2 |
8098583 | Cahn | Jan 2012 | B2 |
8196199 | Hrastar et al. | Jun 2012 | B2 |
8223655 | Heinz | Jul 2012 | B2 |
8300554 | Vijendra et al. | Oct 2012 | B1 |
8375244 | Bobak et al. | Feb 2013 | B2 |
8433894 | Reznik et al. | Apr 2013 | B2 |
8520556 | Karuppiah et al. | Aug 2013 | B2 |
8937870 | Callaghan | Jan 2015 | B1 |
9197495 | Rauser et al. | Nov 2015 | B1 |
9210038 | Rauser et al. | Dec 2015 | B1 |
9385917 | Khanna et al. | Jul 2016 | B1 |
20020010735 | McMillen et al. | Jan 2002 | A1 |
20020016856 | Tallegas et al. | Feb 2002 | A1 |
20020107980 | Kawaguchi | Aug 2002 | A1 |
20020165957 | Devoe | Nov 2002 | A1 |
20030156541 | Haihong | Aug 2003 | A1 |
20040034614 | Asher et al. | Feb 2004 | A1 |
20040044764 | Padmanabhan et al. | Mar 2004 | A1 |
20040044765 | Meek et al. | Mar 2004 | A1 |
20040208128 | Lu | Oct 2004 | A1 |
20040252700 | Anandakumar | Dec 2004 | A1 |
20050041593 | Kikuchi | Feb 2005 | A1 |
20050091361 | Bernstein et al. | Apr 2005 | A1 |
20050122996 | Azenkot | Jun 2005 | A1 |
20050169185 | Qiu | Aug 2005 | A1 |
20050210132 | Florissi et al. | Sep 2005 | A1 |
20060007870 | Roskowski et al. | Jan 2006 | A1 |
20060107086 | Walker et al. | May 2006 | A1 |
20060218447 | Garcia et al. | Sep 2006 | A1 |
20060259984 | Juneau | Nov 2006 | A1 |
20070047453 | Bender et al. | Mar 2007 | A1 |
20070053283 | Bidwell et al. | Mar 2007 | A1 |
20070064715 | Lloyd et al. | Mar 2007 | A1 |
20070086335 | McCanne | Apr 2007 | A1 |
20070091811 | Thubert et al. | Apr 2007 | A1 |
20070201380 | Ma et al. | Aug 2007 | A1 |
20070263540 | Charzinski | Nov 2007 | A1 |
20080049640 | Heinz | Feb 2008 | A1 |
20080089235 | Kotrla et al. | Apr 2008 | A1 |
20080089236 | Kotrla et al. | Apr 2008 | A1 |
20080148099 | Bhat et al. | Jun 2008 | A1 |
20080186866 | Morinaga et al. | Aug 2008 | A1 |
20080205263 | Cooley et al. | Aug 2008 | A1 |
20080225733 | Hua et al. | Sep 2008 | A1 |
20080253295 | Yumoto et al. | Oct 2008 | A1 |
20080298271 | Morinaga et al. | Dec 2008 | A1 |
20090037771 | Morse et al. | Feb 2009 | A1 |
20090067483 | Casas et al. | Mar 2009 | A1 |
20090086643 | Kotrla | Apr 2009 | A1 |
20090116404 | Mahop | May 2009 | A1 |
20090122697 | Madhyasha | May 2009 | A1 |
20090138618 | Li | May 2009 | A1 |
20090245115 | Krishnaswamy et al. | Oct 2009 | A1 |
20090271513 | Liu et al. | Oct 2009 | A1 |
20090285101 | Lu | Nov 2009 | A1 |
20090290497 | Gibbings | Nov 2009 | A1 |
20100027415 | So et al. | Feb 2010 | A1 |
20100067396 | Cui et al. | Mar 2010 | A1 |
20100085948 | Yu et al. | Apr 2010 | A1 |
20100121910 | Kim | May 2010 | A1 |
20100157516 | Doorhy et al. | Jun 2010 | A1 |
20100161852 | Veni et al. | Jun 2010 | A1 |
20100165849 | Eisenberg | Jul 2010 | A1 |
20100246408 | Kerber et al. | Sep 2010 | A1 |
20100278049 | Meloche et al. | Nov 2010 | A1 |
20100278056 | Meloche et al. | Nov 2010 | A1 |
20100316373 | Chang et al. | Dec 2010 | A1 |
20110007629 | Atlas et al. | Jan 2011 | A1 |
20110063979 | Matthews et al. | Mar 2011 | A1 |
20110063986 | Denecheau et al. | Mar 2011 | A1 |
20110078291 | Bickson et al. | Mar 2011 | A1 |
20110096675 | Li et al. | Apr 2011 | A1 |
20110134791 | So et al. | Jun 2011 | A1 |
20110164502 | Mohan et al. | Jul 2011 | A1 |
20110199911 | Ikada | Aug 2011 | A1 |
20110292813 | Dunbar et al. | Dec 2011 | A1 |
20110317580 | Kozisek | Dec 2011 | A1 |
20120093004 | Nishi | Apr 2012 | A1 |
20120106561 | Horio | May 2012 | A1 |
20120109600 | Saeed et al. | May 2012 | A1 |
20120163163 | Kim et al. | Jun 2012 | A1 |
20120182864 | Heinz et al. | Jul 2012 | A1 |
20120213224 | Chen | Aug 2012 | A1 |
20120239256 | Hammerschmidt et al. | Sep 2012 | A1 |
20120278477 | Terrell | Nov 2012 | A1 |
20120320784 | Edwards et al. | Dec 2012 | A1 |
20120327765 | Gibbings | Dec 2012 | A1 |
20130044625 | Luo | Feb 2013 | A1 |
20130064075 | Pu | Mar 2013 | A1 |
20130070612 | Timus et al. | Mar 2013 | A1 |
20130117272 | Barga et al. | May 2013 | A1 |
20130308471 | Krzanowski | Nov 2013 | A1 |
20140098685 | Shattil | Apr 2014 | A1 |
20140280884 | Searle | Sep 2014 | A1 |
20150142970 | Callaghan | May 2015 | A1 |
Entry |
---|
Cavanagh et al., Determining Locations of Network Failures, U.S. Appl. No. 13/441,179, filed Apr. 6, 2012. |
Batsakis, Alexandros et al., “Practical Passive Lossy Link Inference”, Proc. of PAM 2005, 2005. |
Bu, Tian et al., “Network tomography on general topologies”, Proc. of the ACM SIGMETRICS, Jun. 2002. |
Coates, Mark, et al., “Network inference from passive unicast measurements”, Rice University, ECE Department, Technical Report TR-0002, Jan. 21, 2000. |
Czepiel, Scott, “Maximum Likelihood Estimation of Logistic Regression Models: Theory and Implementation”, http://czep.net/stat/mlelr.pdf, available as of Feb. 5, 2005 according to Internet Archive. |
Kniaz, Krzysztof, “Non-gradient optimization techniques (Nelder-Mead and Rosenbrock)”, http://www.kniaz.net/software/rosnm.aspx, May 2009. |
Salakhutdinov, Ruslan, et al., “Optimization with EM and Expectation-conjugate-gradient”, Proceedings of the Twentieth International Conference on Machine Learning (ICML-2003), Washington DC, 2003. |
Sauro, Jeff, “What's a Z-score and why use it in usability testing?”, http://www.measuringusability.com/z.htm, Sep. 17, 2004. |
Sharman, K.C., “Maximum likelihood parameters estimation by simulated annealing”, International Conference on Acoustics, Speech, and Signal Processing, pp. 2741-2744, Apr. 1988. |
Tachibana, Atsuo et al., “Empirical study on locating congested segments over the Internet based on multiple end-to-end path measurements”, Proc. IEEE/IPSG International Symposium on Applications and the Internet (SAINT 2005), Jan. 2005. |
Tsang, Yolanda et al., “Passive network tomography using EM algorithms”, 2001 IEEE International Conference on Acoustics, Speech, and Signal Processing, Proceedings, vol. VI, May 2001. |
Khanna, R et al. Monitoring and Detecting Causes of Failures of Network Paths, U.S. Appl. No. 13/077,589, filed Mar. 31, 2011. |