Patent Publication Number: US-8111618-B2

Title: End-to-end service quality using source-routed probes

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to the fields of networking and network management and, in particular, relates to monitoring network services and evaluating quality of service. 
     BACKGROUND OF THE INVENTION 
     Network probing with low overhead has prompted a flurry of research activity in recent past. A research project called the ID maps project produced the latency maps of the Internet from which latencies of any arbitrary path can be obtained. However, because only relatively few paths are actually monitored, it is possible to make errors in estimating the latencies of any arbitrary path. An overlay network setting finds the minimal set of paths to monitor, so that the behavior of all paths can be inferred. One existing solution is to compute the minimum cost set of multicast trees that can cover links of particular interest in the network. 
     Recently, algorithms have been provided for selecting probe stations such that all links are covered and the minimal set of probe paths that must be transmitted by each station are computed, such that the latency of every link can be measured. However, the probe paths are computed via Internet protocol (IP) routes available from the probing stations. The problem of probe-path design has been considered where local flexibility was assumed. The probe-paths can be selected as either the current IP route or one of the current IP routes of the immediate neighbors. The efficient probe node (called beacon) placement strategy provides the minimum number of probe nodes required to deterministically monitor all network links even in the presence of dynamism in IP routes. 
     All of these existing works on probe-paths and probe-node location have focused on IP routes as potential probe-paths. There is a need to focus on explicitly routed probe packets. One work studied the problem of measuring path latencies through explicitly routed packet probes, while minimizing the overhead imposed by the probe traffic. However, the probe packets are required to originate from a central point in the network. There is a need for link-cover algorithms to focus on the design of probe paths. This differs from existing work, probe paths can be chosen (source-routed) that originate and terminate from any given set of terminal nodes in the network. This new problem setting raises the following questions: (1) how to define a probe, (2) how to find a minimum cost set of probes to cover a given set of edges, and (3) what is the tradeoff between the number of probes and the cost of probes? 
     SUMMARY 
     Various deficiencies of the prior art are addressed by various exemplary embodiments of the present invention of systems and methods for end-to-end service quality using source-routed probes. 
     One embodiment is a method for network monitoring. After receiving a topology of a network, a set of selected edges, and a set of terminals, a set of probes is determined that has probe paths that originate and terminate from the set of terminal nodes. These probe paths cover the set of selected edges, while minimizing cost. This method provides the set of probes, which is capable of measuring an end-to-end service quality. Another embodiment is a computer readable medium storing instructions for performing this method. Another embodiment is a system for network monitoring, including a processor and a software component. The processor includes an operating system and at least one storage device. The software component executes on the processor and performs this method. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The teachings of the present invention can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which: 
         FIG. 1  is a block diagram of an example showing the link-cover problem; 
         FIG. 2  is an illustration of an example for the proof of Theorem 2; 
         FIG. 3  is an illustration of an example for the proof to Lemma 2; 
         FIG. 4  is a listing of pseudo code for an exemplary embodiment of an algorithm describing how to find the set of probes with the minimal total cost of probes; 
         FIG. 5  is a listing of pseudo code for an exemplary embodiment of the algorithm for primal link-covering problem (PLP); 
         FIG. 6  is a listing of pseudo code for an exemplary embodiment of a method for merging in the algorithm link-covering for PLP; 
         FIG. 7  is a listing of pseudo code for an exemplary embodiment of a method for link-covering for dual link-covering problem (DLP); 
         FIG. 8  is Table I, which shows simulation results of the exemplary embodiment of the polynomial-time algorithm for minimum-cost link-covering problem (LCP) on different Internet service provider (ISP) topologies; 
         FIG. 9  is Table II, which shows simulation results of the exemplary embodiment of the polynomial-time algorithm for minimum-cost link-covering problem (LCP) for the Telestra topologies; 
         FIG. 10  is Table III, which shows simulation results of the exemplary embodiment of the 2-approximation PLP algorithm; 
         FIG. 11  is a chart showing an exemplary relationship between the maximal costs of a probe and the number of terminals in the Telestra topology; 
         FIG. 12  is a chart showing the total number of edges in the network versus the total number of probes in exemplary simulations; and 
         FIG. 13  is a high level block diagram showing a computer. 
     
    
    
     To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. 
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention will be primarily described within the general context of exemplary embodiments include systems and methods for end-to-end service quality using source-routed probes. However, those skilled in the art and informed by the teachings herein will realize that the invention is applicable generally to any network, any network protocol, and any kind of probes. Edges and links are used synonymously in the following description. 
     INTRODUCTION 
     The emerging need to support real-time services and applications over a converged Internet Protocol (IP) network has prompted service providers to monitor network-wide service performance and service availability. In addition to having sufficient capacity to support the required throughput, service performance also depends on the impairments due to routing, such as reconvergence times and service disruption duration. Thus, the performance and availability of a network service depends not only on available bandwidth, but also on router architectures and the design of the control plane. Evaluating the impact of network impairments on services can best be performed by end-to-end probes, which can mimic the behavior of the specific service being monitored. These end-to-end probes can track the changes of crucial performance parameters, such as network delay and loss. End-to-end probes fall in the general category of active probes. 
     Current measurement methods, i.e., those based on the standard simple network management protocol (SNMP)-based polling or link-level measurements, cannot be used to model network services. SNMP only provides a device centric view of performance, while link-state metrics such as those based on Hello packets can only be used to detect link failures/availability. Unlike employing end-to-end probes, neither of these methods can be used directly to measure end-to-end delay, loss, and the impact that these performance metrics have on service quality. There are many issues surrounding the deployment of end-to-end network probes. One exemplary embodiment is a design for optimal probe deployment algorithms to detect service quality degradation over the IP path provisioned for the specific service. For example, voice over IP (VoIP) probes are designed to monitor the stringent end-to-end delay and loss requirements. 
     There are different types of end-to-end probe mechanisms: one-packet methods such as pathchar, the packet pair family, IP management protocol (IPMP), and Internet control message protocol (ICMP). Pathchar is used for estimating link bandwidths via round trip delays of packet sequences from successive routers. Packetpair methods can be used for estimating available bandwidth or the bottleneck link rate. Using these 2 techniques to obtain end-to-end measurements requires that the measured data be correlated with the topology information obtained from traceroute. 
     IPMP is used for measuring one-way delay and is designed to overcome some of the limitations of the packet probes. The IPMP protocol combines both path and delay measurements, thus alleviating the need for correlation with the traceroute measurement (i.e., path information is determined from the path record field in the IPMP packet, which is populated by the routers). In a user-based path diagnosis method that overcomes the limitations of pathchar, two end-users of a flow cooperate to find performance faults that affect their flow. The users do not make use of any privileged network information, but make use of packet pair techniques such as ICMP. However, the treatment received by probe packets, such as IPMP and ICMP at the individual routers, is dependent on the protocol used to encapsulate the probe packet. The network may prioritize this probe traffic differently from normal service traffic. 
     Thus, any active measurement method that is out-of-band (not end-to-end) and does not look like application traffic might experience different network conditions as compared to the service traffic. Therefore, it cannot be used to measure service quality. An example of an out-of-band network measurement scheme is one that identifies faulty and malicious routing. In that scheme, the goal was to securely trace the path of existing traffic, thus preventing malicious routers from misleading specialized traceroute packets by treating them differently from normal traffic. 
     One exemplary embodiment is a service monitoring framework that comprises sourcerouted probes crafted to mimic different network services (e.g., VoIP and Video-on-Demand). Using the complete knowledge of network topology, a service provider can efficiently choose the MPLS probe paths that cover a set of interested edges, thus reducing the total probe traffic. This is called the link-covering problem. Service specific probes are sent along the computed probe paths at some predefined frequency, and checked for violations in terms of end-to-delay or loss metrics. Based on the probe paths that experienced performance degradation, a miscreant-link detection algorithm can be initiated on the common set of links to isolate the link that is contributing to the performance degradation. Source-routed probes provide a deterministic map between the probe measurements and the associated links. Thus the correlation problem can be avoided with inaccurate trace route data (due to transient congestions), as well as the limitation of pathrecord fields in IPMP. 
     This framework assumes that, in general, most links have good operational performance and one goal is to identify the few links or nodes that may be encountering performance degradations. This approach may significantly reduce the total probing load on the network. One embodiment of the end-to-end probe design assumes complete knowledge of the topology and requires network support for source-routing mechanisms such as MPLS. 
     Two main issues related to deploying active network probes are simultaneously addressed by exemplary embodiments: (1) reducing the amount of probe traffic and (2) minimizing the cost of deploying probes. The cost of probe deployments can be captured in terms of terminal costs (e.g., installing software for creating a probe terminal) as well as the path costs (i.e., capacity cost of using a specific link). 
     A link-cover problem is formulated as a combinatorial graph problem, where a set of probes are designed that can cover a specified set of edges of interest and every probe is elementary (i.e., without traversing intermediate nodes more than once). The design of our minimal total cost probe-paths is obtained using a greedy approach. This is a polynomial-time algorithm and is based on the idea of getting the minimal-cost source-destination path for each edge to be covered. The algorithm generates probes without loops and results in a set of probes with the minimal total cost. Two variants of the link-cover problem are considered. One variant is to minimize the maximal-cost of any probe, while keeping the total number of probes be ≦k. The other variant is to minimize the number of probes, while keeping the maximal-cost of any probe be ≦I max . These two variants are NP-hard and exemplary embodiments include 2-approximation algorithms for them. 
     Exemplary embodiments include a polynomial-time algorithm as well as the 2-approximation algorithms, which were evaluated via the simulations on five of the largest Internet service provider (ISP) topologies obtained from the research project called the Rocketfuel project. The evaluation criteria in each case were: (1) the total cost of all probes, (2) the maximal cost of a probe, when the total number of probes is fixed, and (3) the average cost of a probe. 
     It was shown that the exemplary embodiments of the algorithms performed extremely closely to the optimal solution, when the probe terminal set was chosen to be the backbone nodes. A probe terminal is the node that a probe starts from and at which it ends. Probes have been designed to be those paths (tours) derived from a Chinese Postman Tour covering all edges of a graph as known to one skilled in the art. However, the probes deployed in that solution had loops, which made the solution more tedious requiring a loop detection scheme and the use of heuristics to eliminate the loops. The elimination of loops is a needed step for a practical implementation of the probes. One exemplary embodiment is a method that explicitly accounts for the elimination of loops by finding probes that are elementary paths (tours) only, i.e., the probe path never intersects a transit (intermediate) node more than once. 
     Motivation and Problem Formulation 
     Real-time monitoring of network performance and service availability requires measurement techniques to measure end-to-end delay, packet loss, and service quality. Service-specific probes are active probes that closely mimic the service traffic such that they receive the same treatment from the network as the actual service traffic, in one embodiment. Source-routed probes also mimic different network services, in one embodiment. Source-routed probes require complete knowledge of the network topology. Combined with a miscreant-link detection algorithm, links contributing to performance degradation can be isolated. Source-routed probes avoid the correlation problem. Network support is available for source-routing, such as multiprotocol label switching (MPLS). Evaluating network service quality can be performed by end-to-end probes, in one embodiment. 
     There is a need for an algorithm for minimizing total probe traffic, for minimizing the maximal-cost of a probe, and minimizing the number of probes. Simulation results for exemplary embodiments indicated that for most ISP topologies, just 5% of the nodes as terminals covered more than 98% of the edges; therefore, increasing the number of terminals does not help much in minimizing the total probe traffic. 
     Problem Description 
       FIG. 1  is a block diagram  100  of an example showing the link-cover problem. In the network shown in  FIG. 1 , there are 8 nodes: node a  102 , node b  104 , node c  106 , node d  108 , node e  110 , node f  112 , node g  114 , and node h  116 . Node a  102 , node b  104 , and node c  106  act as the terminal nodes (shaded circles in  FIG. 1 )  118  and all others (i.e., node d  108 , node e  110 , node f  112 , node g  114 , and node h  116 ) are regular nodes (unshaded circles in  FIG. 1 )  120 . The dashed lines in  FIG. 1  are the probe paths. There are three probes: probe  1   122 , probe  2   124 , and probe  3   126 . Each probe  122 ,  124 ,  126  locates its end-points at one of the terminals  118 , i.e., node a  102 , node b  104 , or node c  106 . Each network link has a cost (weight) as specified in  FIG. 1 . Edges (g, h)  128 , (h, c)  130 , (a, d)  132 , and (d, f)  134  are the network links of interest. (The terms edge and link are used interchangeably herein.) A goal is to design a set of probes that covers all these interesting edges, i.e., the selected edges to monitor. 
     In this example, probe  1   122  goes from terminal a  102 , traverses links (a, d)  132 , (d, f)  134 , and reaches back to terminal a  102 ; probe  2   124  goes from node a  102 , traverses links (a, d)  132 , (d, e)  136 , (e, h)  138  and arrives at terminal c  106 . Probe  1   122  is a tour. Probe  3   124  starts from terminal b  104 , runs across edges (b, g)  140 , (g, h)  128  and ends at terminal c  106 . All links of interest  128 ,  130 ,  132 ,  134  are covered by these 3 probes. The sum of the weights of all edges of a path is used to represent the cost of a probe. The total cost of the set of probes is (10+50+10)+(10+10+10+10)+(10+10+10)=140, and the maximum cost probe is probe  1   122 , whose cost is 70. From this example, link (a, d)  134  is covered by two probes (i.e., probe  1   122  and probe  2   126 ), and its weight counts twice to the total cost of these three probes. A probe  122 ,  124 ,  126  is allowed to have both its ends lie at the same terminal, like probe  1   122 . Also, probe  2   126  is unnecessary to cover all interesting edges  128 ,  130 ,  132 ,  134 . That is, probe  2   126  can be removed and all interesting edges  128 ,  130 ,  132 ,  134  are still covered by probe  1   122  and probe  3   126  only, and the total cost is reduced to 100 from 140. 
     Problem Formulation 
     One exemplary embodiment is a formal description of the link-cover problem. The network is modeled as a connected, undirected graph, G=(V, E), V is the set of the vertices (which represents the nodes in the network), and E is the set of edges (which represent the network links); |V|=n and |E|=m. There is no self-loop in G, i.e., there is no edge that goes from one node and returns to the node itself, and G is not necessarily a planar graph. Without confusion, in graph G, node and vertex, link and edge are used interchangeably. 
     There is a cost function over each edge eεE, w e →   + . This function denotes the cost of a probe when it runs across this network link (edge). A set of specific nodes T in the graph are called terminals, T ⊂ V. S is the set of edges of interest and S ⊂ E. Normally, T≠Ø(1≦|T|≦n) and S≠Ø. A path P is defined to be a set of concatenated edges between two nodes in V and these two nodes are called ends of the path. If both ends of a path are the same node, the path can also be called a tour. Given a path P, we use eεP to denote the fact that path P contains (runs across) edge e. Except for end-nodes, all nodes that a path crosses are called intermediate nodes. In the general case, a path may have loops. A loop is defined to be a sub-path that crosses an intermediate node more than once. A path (resp. tour) not traversing any intermediate node more than once is called an elementary path (resp. tour); that is, an elementary path (resp. tour) is loop-less. Also, the path from node v 1 εV to node v 2 εV is denoted as v 1 ˜→v 2  and the cost of a path P is defined as w(P):=Σ eεP w e . 
     A specific path called probe is defined to be an elementary path from one terminal t 1 εT to another terminal t 2 εT. That is, both ends of a probe must be terminals. Terminals t 1  and t 2  are not required to be distinct. If t 1 =t 2 , the probe is a (loop-less) tour. The motivation for enforcing a probe to be elementary is that, typically, a route with loops is not permitted in an IP network. Such a path will be rejected by the routers. Therefore, a feasible solution to the link-cover problem is to find a set of elementary probe-paths, P, such that every edge eεS( ⊂ E) is covered by at least one path PεP. 
     Input Instance 
     Given an undirected, connected weighted graph G=(V, E), S ⊂ E and T ⊂ V. A mapping w e  exists, from each edge eεE to a non-negative number representing its cost, w e : w e →   + ; for each edge eεE, w e ≧0. The set of probe-paths, P, is defined as all such probes (P=v i ˜→v j ), v i ,v j εT. For each edge eεS, there exists at least one probe PεP, such that eεP. Exemplary embodiments have optimization objectives that can be represented as the following three subproblems: minimum-cost link-covering problem (LCP), primal link-covering problem (PLP), and dual link-covering problem (DLP). 
     1. The first subproblem is the minimum-cost link-covering problem (LCP). In LCP, the goal is to minimize the total cost of the probes required. The cost of the probes is measured in terms of the traffic load on the network. That is, 
     
         
         
           
             min Σ PεP w(P), 
             subject to: 
             ∀eεS, ∃P j , εP, eεP j , 
             ∀P i εP, P i  has no loop.
 
2. The second subproblem is primal link-covering problem (PLP). In PLP, the goal is to minimize the maximum cost of a probe. The cost of a probe can be measured in terms of latency, throughput, or length. That is,
 
             min max PεP w(P) 
             where |P|≦k, 
             subject to: 
             ∀eεS, ∃P j εP,eεP j    
             ∀P i εP, P i  has no loop.
 
where k is a constant and is the upper bound of the number of probes that can be used.
 
3. The third subproblem is dual link-covering problem (DLP). In DLP, the goal is to minimize the total number of probes. The total number of probes reflects the cost of probe installation. That is,
 
             min k 
             where |P|≦k, 
             subject to: 
             ∀PεP, w(P)≦I max , 
             ∀eεS, ∃P j εP,eεP j , 
             ∀P i εP P i  has no loop.
 
where I max  is the given maximal cost allowed for any probe and k is the number of probes required.
 
Algorithms and Analysis
 
           
         
       
    
     The complexity of the three variants of the link-cover problem needs to be determined. Because LCP is not a NP-hard problem, a polynomial-time algorithm that is designed for LCP and a 2-approximation algorithm for PLP and DLP are presented. The complexity (hardness) for PLP and DLP is analyzed as follows. 
     Complexity Analysis for Relaxations of PLP and DLP 
     In the problem formulation, a probe is enforced to be an elementary path or tour. Even if the problem formulation is relaxed, such that a probe is not necessarily an elementary path (can have loops), PLP and DLP are still NP-hard. This can be easily generalized from the Min-Max k-Chinese Postman Problem (MM k-CPP) and the Capacitated Arc Routing Problem (CARP). 
     Briefly speaking, PLP is the generalization of MM k-CPP when S=E and T={s}, where s is the depot node in MM k-CPP. At the same time, DLP is the generalization of CARP when we let S=E and T={s}, where s is the depot node and I max  is the vehicle capacity in CARP. 
     NP-Hardness of the Primal Link-Cover Problem (PLP) 
     If a probe is restricted to be defined as an elementary path (tour), PLP&#39;s hardness cannot be induced directly from the MM k-CPP. 
     Consider the following problem, i.e., minimal makespan scheduling. Given a set of tasks, T, there are m identical machines for fixed number m. Each task tεT requires time p t  to be finished and any task can be run on any (identical) machine. The objective of this problem is to minimize the makespan, which is the maximal completion time for any machine in this schedule. This problem, minimizing makespan scheduling, is known to be NP-hard (even for m=2) and there exists a simple greedy policy, which results in a 2-approximation algorithm. Also, a polynomial-time scheme (PTAS) algorithm improves the approximation ratio to be 1+ε. The following proves that PLP&#39;s hardness via a transformation from the problem of minimizing makespan scheduling. 
     Theorem 1: The decision version of PLP is NP-hard 
     Proof: Theorem 1 is proved by the contradiction method via a transformation from the problem of minimizing makespan scheduling. Given any instance I of the minimum makespan scheduling problem, prove that an instance I′ can be constructed to PLP (in polynomial-time), such that if I′ satisfies PLP in polynomial-time, then I satisfies the decision version of the minimum makespan scheduling problem in polynomial-time. Therefore, assume there exists a polynomial-time algorithm for PLP; then, the problem of minimizing makespan over multiple machines is not NP-hard, because it can be solved via the algorithm for PLP in polynomial-time. Details of the proof follow. 
     Consider an instance I of the minimum makespan scheduling problem. There are m identical machines and a set of jobs T. Each job tεT requires processing time of p t . Now, construct an instance I′ to PLP. In I′, there is a graph G=(V,E), |V|=2×|T|+2. Each job tεT corresponds to two nodes in graph G and, without loss of generality, each job is viewed as one that has a left node and a right node in the graph. The weight of the edge connecting the left node and the right node is p t . 
     Suppose there are two specific nodes, s 1  and s 2 . T={s 1 ,s 2 }. Now, link s 1  to each job&#39;s left node and set the weight of the link to be 0. Also, link each job&#39;s right node to s 2  and the weight assigned to that link is 0. Furthermore, link each job&#39;s right node to all other job&#39;s left nodes and assign the weight of the link to 0. The corresponding edges (connecting a job&#39;s left node and right node) of all jobs consist of the set of interesting edges S ⊂ E. Until now, an instance I′ to PLP was created in which only two terminals, s 1  and s 2  exist. Set S to the set of edges to cover and the number of probes to be used, k, is limited by m(k≦m), where m is the number of identical machines in instance I to the minimum makespan scheduling problem. 
     Clearly, for this instance, I′, if a polynomial-tie algorithm can be constructed that minimizes the maximal cost of a probe, then, given the existence of k=m probes (the more probes used, the smaller the probe length), it can be seen in the instance I that all the edges belonging to the same probe lead to all corresponding jobs scheduled on one machine. There are m-k machines to run these jobs. So, any instance to the minimum makespan scheduling problem can be converted in polynomial-time to an instance to PLP. Because the decision version of the minimum makespan scheduling problem is NP-hard, the decision version of PLP is NP-hard. Theorem 1 holds. 
     Next, consider the NP-hardness of DLP. DLP is the counterpart of PLP and they have the same NP-hardness. Similarly, the hardness of DLP cannot be proved via a direct transformation from CARP. Consider a classical NP-hard problem, the bin-packing problem. Given n items with sizes a 1 , a 2 , . . . , a n ε{0,1}, find a packing in unit-sized bins that minimizes the number of bins used. The bin-packing problem has been proved to be NP-hard. From that, corollary 1 is inferred. 
     Corollary 1: The decision version of DLP is NP-hard 
     Proof: Corollary 1 can be proved via a transformation from the classical problem of bin-packing, which is the same as that constructed in the proof to Theorem 1, except that the weight of the edges to cover corresponds to the value of an item in the bin-packing problem. 
     Clearly, for this instance, I′, a polynomial-time algorithm can be constructed that minimizes the number of the probes. Then, given the existence of each probe cost ≦I max  it can be seen that in the instance I, the number of probes reflects the number of bins to be used. So, any instance to the bin=packing problem can be converted in polynomial-time to an instance to DLP. Because the decision version of the bin-packing problem is NP-hard, the decision version of DLP is NP-hard also. Corollary 1 holds. 
     Given the fact that PLP and DLP are NP-hard, there is no efficient algorithm solving them. So, an approximation algorithm is designed to solve them, in one embodiment. Some previously well-known results are useful in understanding the algorithms. First, finding a Chinese Postman Tour in a mixed graph is NP-hard. However, there exists an efficient algorithm to calculate a Chinese Postman Tour in an undirected graph. Second, there is an efficient algorithm for calculating the shortest-path between any two nodes in an undirected, connected and non-negative weighted graph. If the weight of an edge is allowed to be negative, the shortest path problem is NP-hard. Third, there is an efficient algorithm for breadth-first search or depth-first search. Using the breadth-first search algorithm, a simpler shortest path algorithm can be found (in linear time) on un-weighted, undirected graphs. Based on the second and third techniques, a polynomial-time algorithm can be designed for LCP and a 2-approximation algorithm can be designed for both PLP and DLP. 
     Algorithms 
     One exemplary embodiment is a polynomial algorithm that can compute a set of elementary probes P, such that all edges in S are covered by at least one path PεP and the total cost of the probes is minimized. Another exemplary embodiment is a 2-approximation algorithm for PLP. One embodiment, with a little modification on the algorithm for PLP, is a 2-approximation algorithm for DLP. 
     Without loss of generality, use t 1 , . . . , t |T|  to denote the set of terminals and use (a, b) to denote the edge connecting node a and node b. Node a is the left node for the edge and node b is the right node for the edge. Remember that, in undirected graphs, there is no difference between left node and right node of an edge. Here, “left” and “right” are specified for easiness of illustrating the algorithms only. In the following, a shortest path refers to the shortest path on a weighted, undirected graph. The shortest path refers to the probe (path) with minimal cost. 
     A Polynomial-Time Algorithm for LCP 
     Lemma 1: Given an edge e=(v 1 ,v 2 ), a set of terminals T, the shortest path from one terminal to the nodes v 1  and v 2 , say t i ˜→(v 1 ,v 2 )˜→t j  is either an elementary path (tour) or a path (tour) that has only one loop. Here, t i ,t j εT and t i , and t j  are not necessarily distinct. 
     Proof: The shortest path stated (found) in Lemma 1 may not be a probe, though both its ends are terminals, because a probe is required to be only an elementary path (tour). The proof to Lemma 1 is straightforward. Given a path t i ˜→(v 1 ,v 2 )˜→t j , first, there are no other terminals in between t i ˜→v 1 , (v 1 ,v 2 ), and v 2 ˜→t j . Otherwise, the given path is not a shortest path from the node of the given edge (v 1 ,v 2 ) to a terminal in T. The reason is that the shortest path algorithm is applied (on a non-negative, weighted graph) in locating the terminal for v 1 , so once a terminal is met for v 1 , any possible terminal along the path has shorter distance to v 1 . 
     If both nodes of the edge e, v 1  and v 2 , have one same terminal as their destination of the shortest paths, exactly one loop is generated. Lemma 1 holds. 
     Lemma 1 serves the purpose of finding the shortest probe that covers only one edge. Given an edge e=(v 1 ,v 2 )(eεS) and given the set of terminals T ⊂ V,|T|≦n, there are at most |T| 2  pairs of terminals that can serve as the probe-ends for a probe covering edge, e. Also, if the shortest path to v 1  is given by, say P 1 =t i ˜→v 1 , in order to avoid generating a loop, other than t i εT, any intermediate node in the path vεP 1 (v≠t i )—none of them is a terminal—cannot be one of the intermediate nodes in the path from v 2  to a terminal, v 2 ˜→t j . Therefore, once the shortest path from one terminal to v 1  is found, to avoid generating loops, all the intermediate nodes V′ in the path need to be removed and all the edges E associated with those intermediate nodes need to be removed from the graph G′=(V−V′,E−E′), where V′ is the set of intermediate nodes in the shortest path from one terminal to v 1  and E′ is the set of edges associated with those nodes. Apply the same procedure to find a shortest path P 2  from v 2  to another terminal εT. Clearly, if such a path exists, P 1 ˜→P 2 , it is an elementary path (tour). 
     Care needs to be taken in the order of picking v 1  and v 2 . Without loss of generality, index all terminals and if node v 1  has the same distance to more than one terminal in T, select the one that has a smaller index number. With such an approach, the procedure for locating the nearest terminal for a given node is fixed in polynomial-time. Also, if P 2  cannot be found, then there is no elementary path (tour) containing the edge e. 
     Now, given |T| 2  pairs of terminals, at most |T| 2  different elementary paths (tours) covering each edge eεS can be found. Then, among those |T| 2  elementary paths calculated, determine which one is the shortest one covering the edge e=(v 1 ,v 2 ). Select it as the shortest elementary path that is assigned to e. Therefore, followed by Lemma 1, we have Lemma 2. 
     Lemma 2: Given an edge e=(v 1 ,v 2 ), a set of terminals T, there exists a polynomial-time algorithm to find the shortest (minimum-cost) and elementary path from t i ˜→(v 1 ,v 2 )˜→t j ,t i ,t j εT and t i , and t j  are not necessarily distinct. 
     Proof: Given a terminal t i εT, there exists a polynomial-time algorithm to find the minimal-cost path from v 1  to t i . Then, remove all intermediate nodes in the path and their associated edges from the remaining graph. Apply the same algorithm to get the minimal-cost path from v 2  to a terminal t j εT. In conclusion, the concatenated path (tour) (a path fro a terminal to v 1 , edge e, and a path from v 2  to a terminal) is elementary. Among all feasible concatenated paths or tours (at most |T 2 | paths or tours, because both v 1  and v 2  can be the first node in finding a path in the procedure), the minimal-cost one can be found and it serves as the probe covering edge (v 1 ,v 2 ). 
     It is claimed that any shorter (less cost) path or tour that covers edge (v 1 ,v 2 ) results in a loop. Assume a shorter path exists, say an optimal path. It has three parts; without loss of generality, assume it consists of a path from one terminal to v 1 , edge  2 , and a path from v 2  to one terminal. So, the optimal path from one terminal to v 1  is the same as the one found. With the same distance to different terminals, the node chosen is the one with the smallest indexed number. 
       FIG. 3  is an example  300  illustrating the proof to Lemma 2. 
     Assume there are two edges to cover, i.e., e 1 =(v 1 ,v 2 ) and e 2 =(v 3 ,v 4 ). Two elementary paths cover them and one path covering e 1  starts from terminal t 1  and ends at terminal t 2 . The other path covering e 2  starts from terminal t 3  and ends at terminal t 4 . Assume these two paths intersect at node v. Now, consider the path covering e 1 , when it goes from node v, it chooses terminal t 2  instead of terminal t 4  as its end, because the path length from v to t 4  is larger than the path length from v to t 2 . At the same time, the path covering e 2  chooses t 4  instead of t 2  as its terminal, so the path length from v to t 4  is shorter than that of the path from v to t 2 . These two conclusions conflict with each other. Thus, the assumption is wrong. So, any two elementary paths calculated from the shortest-distance algorithm cannot intersect with each other. 
     In summary, if there exists a shorter path from v 2  to one terminal, then the path should interact intersect with one intermediate node in the path to v 1 . Therefore, it turns out that the path is not elementary. If path P 1  and P 2  share an edge, they must share at least one node. From the above analysis, Lemma 2 holds. 
     Theorem 2 follows from Lemma 1 and Lemma 2. 
     Theorem 2: There is a polynomial-time algorithm for finding a set of probes P, such that all interesting edges are covered by the probes P such that all interesting edges are covered by the probes and Σ PεP w(P) is minimized. 
     Proof: Theorem 2 is proved by a construction method directly from Lemma 1 and Lemma 2. Lemma 1 and Lemma 2 provide a polynomial-time procedure to find an elementary path (tour) covering any given edge e. Lemmas 1 and 2 provide the background for finding the minimal total-cost probes covering all edges in S. The minimal-cost path from one node to a given terminal is calculated using any shortest-path algorithm over an undirected, non-negative weighted graph. Once a probe for edge e is located, all interesting edges in this probe are removed from S. Among those paths with interesting edges on it that are also covered by other probes, remove that probe from P. Repeat this until there is no such probe in the set P. This removes the redundancy of the probes covering all required edges. The greedy approach. reduces the total cost of the probes in each step and each newly generated probe cannot be replaced by all proves generated already. So, apply the same procedure to find the shortest path covering the remaining edges in S. Repeat until set S is empty. 
     Then, a set of elementary paths P is found. P is a path that acts as a probe, covering one or more interesting edges. Finally, the above procedure results in a polynomial-time algorithm for LCP in minimizing the total cost of all proves. Theorem 2 holds. 
     Refer to  FIG. 2  as an example to the proof of Theorem 2. (Not all links are shown in  FIG. 2  for clarity.) Given five edges to be covered, s 1  and s 2  are only two terminals in T. The costs of traversing each edge are shown as those in  FIG. 2 . Now, assume the number of probes is limited to be k=2 and two probes, i.e., s 1 →10→12→s 2  and s 1 →7→3→1→10.5→s 2 , are found in a polynomial-time algorithm for PLP, with the minimum cost of a probe being 22. So, correspondingly, in the minimum makespan scheduling problem, these five jobs can be optimally arranged in two identical machines. One is running jobs with processing time 10, 12 and the other is running jobs with processing time 7, 3, 1, and 10.5. The optimal makespan is 22. 
       FIG. 4  is a listing of pseudo code for an exemplary embodiment of an algorithm describing how to find the set of probes with the minimal total cost of probes. This exemplary embodiment is an algorithm to find a link-covering for LCP for a graph, G, having a set of vertices, V, and a set of edges, E. The input includes the topology of the network, G=(V,E), a set of interesting edges, S 0 , and a set of terminal nodes, T, which are indexed. For each interesting edge between any two given nodes I and r (v I ,v r ) and for each terminal that belongs to the set of terminals, find a shortest path between node I and the terminal. Choose the nearest terminal, breaking any ties in favor of the smaller indexed terminal. Find another path from terminal node back to either the same terminal node or some other node without using the links that were already used. So, all the intermediate nodes, V′, in the original shortest path are removed from the graph G and all associated edges are removed as well. Then, on the remaining graph, G, find another shortest path from the next endpoint, v r , to a terminal node, which could be the same or a different terminal node. In this way, break down the link (v I ,v r ) as if it were two shortest path problems going from any terminal node to v I  and, then, v r  to any other terminal node, making sure that the path from v r  to any other terminal node does not use any links used in the past to avoid loops. 
     Once all the elementary paths for each given edge are found, choose the elementary path with the minimum total cost and denote it as probe P e  for edge e. Remove all interesting edges e′ from S 0 . Mark e and put removed edges into a separate set. The second part of the problem is to remove the probes having the heaviest weights, e.g., high cost or number of hops. Sometimes longer probe paths are more costly than shorter probe paths. The first part of the problem is finding loop-free paths and finding a set of probes that cover the interesting edges for the least cost. The result of this exemplary embodiment is a set of probe paths that cover the interesting edges and have the minimum cost. This set of probe paths is capable of being used in a network monitoring tool, such as NetProbe. A network manager can send probes from one terminal to another using the set of probe paths. This configures probes to send traffic over a network that mimics a network service at minimum cost. 
     A 2-Approximation Algorithm for PLP 
     The proof of Theorem 2 is a constructive proof. Assume the number of elementary shortest paths found is k′. If the number of probes for all edges in S, k′≦k, the optimal solution is found to PLP, which is the maximal-cost of the probe in the prove-sets found. If k′&gt;k, the number of probes is reduced by merging some of them, until the number of elementary paths (tours) is k. In order to merge two elementary paths, under a bounded cost for the maximal-cost probe, two elementary paths (probes) can be merged into one elementary path (probe). 
     The following definitions help illustrate exemplary embodiments of algorithms clearly and efficiently. Briefly, for the exemplary embodiment of the approximation algorithm for PLP, first, a series of elementary probes is found, as done in the algorithm for LCP. Then, if the number of probes k′ is more than what is affordable, say k′&gt;k, merge probes such that the number of probes is reduced, while sacrificing the maximal-cost of a probe in the probe set. The following definitions are related to the exemplary embodiment of merging two probes. 
     Definition 1: Merge distance is the minimal cost of the final probe after connecting two proves via linking one node in one probe to another node in the other probe. 
     Clearly, there exists an efficient algorithm (polynomial-time) to identify the cost of linking two probes. Not every pair of probes can be merged into one longer probe. 
     Definition 2: A shared edge is an edge e that is said to be shared by all the probes that are incident to it, if several probes (≧2 probes) cross an interesting edge eεS to cover. If an edge only has one probe to cover it, that edge is necessary to that probe. 
     Clearly, given any two probes, the probes can be linked together, while leaving (possible) shared edges aside. Lemma 3 is based on these definitions. 
     Lemma 3: Given any two elementary paths (tours), there exists a method that concatenates these two elementary paths and still finds an elementary path. Other terminals may exist on the path, because such a path may be concatenated by several elementary paths covering a given edge. 
     Proof: Lemma 3 can be proved by the contradiction method. For each elementary path, the left or right node of an edge has the minimum-cost to the nearest terminals in the elementary path found. If two elementary paths, P 1  and P 2  have a node v that both of them traverse, conclude that for the given node v in these two paths, there are two terminals that both have minimal-cost.  FIG. 4  illustrates an example of this proof of Lemma 3. 
     Both path P 1  and path P 2  share the same node v. Edge e 1  is the edge that P 1  supposes to cover and e 2  is the edge that P 2  supposes to cover. The end terminals for P 1  and P 2  are t 1 εT and t 2 εT. Now, investigate the paths from v to t 1  and from v to t 2 . Because, when the probe P 1  for edge e 1  is located, P 1  will end at terminal t 2  based on the order of the terminals and the distance of the terminals examined. In the same manner, after analyzing the path P 2 , it is concluded that length(v˜→t 1 )&gt;length(v˜→t 2 ). This conclusion conflicts with the conclusion made before. Therefore, the elementary paths P 1  and P 2  do not traverse the same node. 
     Furthermore, t 1  and t 2  can be linked to generate an elementary path for both paths, if there is no shared intermediate node (or no shared edges) in path P 1  and path P 2  (as illustrated in  FIG. 2 ). If path P 1  and path P 2  have shared edges, there is no way to reduce the number of probes via removing P 1  or P 2  only. (For any probe, all of whose interesting edges are shared and have been removed from the probe set P as algorithm link-covering for LCP does.) Based on the above analysis, Lemma 3 holds. 
     One exemplary embodiment is an approximation algorithm for PLP. Let L denote the maximum-cost of a probe path in a graph G=(V,E) under the restriction that there are at most k probe paths (the solution). Use OPT to denote an optimal solution for the min w(P) PεP . The number of probes is ≦k, and A returns the maximum length of a probe. 
     First, it is known before merging and probes together, after the algorithm link-covering for LCP, a series of elementary paths (tours) are found as the probes for the interesting edges. Assume the number is k′. If k′≦k, return the optimal maximal-cost of a probe. If k′&gt;k, merge elementary paths in order to reduce the number of probes, while the maximal-cost of the probes is the lower bound of OPT. The merge part is similar to the bin-packing problem, if the probe-length is regarded as the bin&#39;s load and the number of probes is limited as the number of bins, k. With the goal of reducing the complexity of the algorithm, apply the optimal suit method to merge any two probes. If their probe distance is the smallest among all pairs of probes, these two elementary paths are merged, if possible. This exemplary embodiment of the algorithm for PLP is shown in  FIG. 5 . 
       FIG. 5  is a listing of pseudo code for an exemplary embodiment of the algorithm for primal link-covering problem (PLP). This exemplary embodiment has an input graph G, representing the topology of a network, and a limit, k, on the number of probes, i.e., the number of probes must be less than k. Unlike the exemplary embodiment in  FIG. 4  for link-covering for LCP, this exemplary embodiment finds a set of probes covering a set of interesting edges using a minimum number of probes. In  FIG. 4  the number of probes was unlimited so long as the total cost was minimized. Here, in  FIG. 5 , the number of probes is also minimized. 
     The exemplary embodiment of  FIG. 5  first calls the exemplary embodiment of  FIG. 4  to find the link-covering for LCP and if the number of probes is less than k, then that set of probes is provided. Otherwise, the exemplary embodiment for PLP of  FIG. 5 , merges pairs of probes (see  FIG. 6 ) until the number of probes is less than k. 
       FIG. 6  is an exemplary embodiment of a method for merging in the algorithm link-covering for PLP. In this exemplary embodiment, the procedure for merging two elementary probes is called Merge(P 1 , P 2 ). The nearest nodes are defined to be the node pairs v 1ε P 1  and v 2 εP 2 . Linking these two nodes makes the final probe connecting P 1  and P 2  the minimal newly generated probe cost. In  FIG. 6 , for all shared edges, e, LCP provided two paths, P 1  and P 2 . If e is shared by another probe P, then link P 1  and P 2  at the connecting node. Otherwise, paths P 1  and P 2  cannot be merged. If P 1  and P 2  have no shared edge between them, then link the nearest node between them. 
     Minimizing the number of probes also minimizes the number of terminals. It is desirable to have as few terminal nodes as possible. This is because terminal nodes require extra enhancement of the nodes, including extra software, extra computing capacity, extra storage, and the like. Specialized nodes, like terminal nodes, are most expensive than regular nodes in a network. 
     Theorem 3: The algorithm link-covering for PLP is 2-approximation. 
     Proof: Theorem 3 states a fact that the algorithm link-covering for PLP works the same way as the optimal suit algorithm for bin-packing, if the number of probes is regarded as the number of bins and the maximal-cost of a probe is regarded as the maximal-load of a bin. Directly following the bin-packing algorithm&#39;s analysis, Theorem 3 can be proved. The detailed proof is as follows. 
     OPT is used to denote the optimal maximal-cost of a probe, instead of the optimal algorithm itself. The lower bound of OPT corresponds to a set of k probes, such that each interesting edge eεS is covered by at least one probe and the maximal-cost of a probe in such probe set is minimized to be OPT. In each step, merge two elementary paths. The increase of the cost of the probe is bounded by OPT as the minimal merge distance is chosen. Also, the sum of the total cost of the covered edges to the nearest terminal is the lower bound of k×OPT and the cost of each probe to be merged is also the lower bound of OPT. So, in each step, the cost of any probe generated is still bounded by 2×OPT. Therefore, Theorem 3 holds. 
     A 2-Approximation Algorithm for DLP 
     One exemplary embodiment of a 2-approximation algorithm is introduced for DLP. The variant DLP is the counterpart of the variant PLP. 
     Assume the maximal cost of a probe is limited by I max . The goal is to minimize the number of probes to be employed. First of all, with a fixed initial number k′=1 as the number of probes used, apply the algorithm link-covering for PLP to estimate the maximal length of a probe generated. If the maximal cost of a probe is I p  in the resulting probe set P and if I p ≦I max , it is claimed that k′ is the minimal number of probes to be used. If I p &gt;I max , double k′. Increase k′ by one time, k′←2×k′ and, then, apply the same algorithm for PLP to locate a set of probes and the maximal cost of a probe in it. Repeat until there is a set of probes P in which the maximal-cost of probe ≦I max  and return k′. It is claimed that k′≦2×k, which is proven in Theorem 4. 
       FIG. 7  is an exemplary embodiment of a method for link-covering for DLP. This exemplary embodiment minimizes the maximal cost of any probe in the set of probes covering the interesting edges, S. Inputs include a limit on the maximal cost of a probe so that no probe in the probe set should have a cost that exceeds that limit. Given the probe set, P, if the maximal cost of a probe is greater than the limit, find another probe set by calling PLP (see  FIG. 5 ) with k′=2×k, until the maximal cost of all of the probes in the probe set P are less than the limit. 
     Using Theorem 3 and following the same idea, yields Theorem 4. 
     Theorem 4: The algorithm link-covering for DLP is 2-approximation. 
     Proof: Theorem 4 can be proved by following Theorem 3 directly. From Theorem 3, it is known that if the number of proves used is increased by one time, then the algorithm link-covering for PLP returns the lower bound of the optimal maximal-cost of a probe, when the optimal algorithm has k probes to be used and the algorithm is allowed to employ 2 33  k probes. So, in algorithm link-covering for DLP, in the step I≦I max , the number of probes increases up to two times the number of probes that an optimal algorithm will use. Therefore, Theorem 4 holds. 
     Simulation Results 
     The link-cover solutions were evaluated on different realistic ISP topologies that were obtained from the Rocketfuel project. The largest five topologies were chosen, because they provide the most interesting analysis in terms of the complexity of the network being monitored. Each link in the network is assigned a cost that is its inferred latency (link cost). In each case, the backbone nodes were chosen as the potential set of terminals. 
     Because the number of terminals (backbone nodes) for the ISP topologies is relatively large when compared with the total number of nodes (almost half), the choice of the number of terminals was restricted to be about 5%, 10%, and 15% of the total number of nodes |V| of that topology. However, the chosen terminals were placed at randomly chosen backbone node locations. Also, the set of interested edges to be covered was chosen to be about 25%, 50%, 75%, and 100% of the total number of edges in the network. 
     Table I, which is shown in  FIG. 8 , shows the results of the exemplary embodiment of the polynomial-time algorithm for LCP on different ISP topologies. The algorithm is used to compute the number of probes required to cover the interested edges using about 5% and 15% of the total nodes as terminals. Two sets of interested edges comprising about 50% and 100% of the total edges were considered. In each case, the maximal-cost of a probe, the average-cost of a probe, and the total cost of all of the probes were obtained. One scenario was where, for the Telestra and Sprintlink networks, not all edges randomly selected could have been covered by a probe, because the probe was required to be an elementary path linking two terminals. The specific question of the impact of the number of probe terminals on coverage was studied using the Telestra topology and the results are presented in Table II, which is shown in  FIG. 9 . 
     The general case of the undirected, non-negative, weighted graphs were considered. So, the cost of the edge cost for probe traversal was assigned as a non-negative real number. Without loss of generality and for simplicity in experimental design, the number of hops was used to denote the cost of the path. That is, the shortest path on an unweighted graph was calculated. 
     From Tables I and II, it was seen that, as expected, the number of probes almost doubled as the number of interested edges increased from about 50% to 100% of all the edges in the network. A similar effect was observed in the total probe costs. Covering additional edges with the same number of terminals increased as the total probes cost increased. Also observed was that the maximal cost and the average cost of the probe decreased as the number of terminals increased. Furthermore, the values of these metrics were found to be comparable for all five topologies. 
     The evaluation of the 2-approximation PLP algorithm was presented in Table III, which is shown in  FIG. 10 . Here, the fixed k was targeted as the ½ of the number of probes obtained using LCP. Table III provided as comparison of probe characteristics (e.g., probe cost, maximal-cost, average cost of a probe) obtained by the polynomial algorithm LCP and the probes obtained after merging using the PLP algorithm. 
     DISCUSSION 
     One goal was to design optimal probe paths to cover the selected edges in a network. The optimality criteria was evaluated using metrics such as the total cost of the probes deployed, maximal cost of the probe, and the number of probes required to cover the edges. Under these evaluation metrics, it was found that the LCP algorithm provided a very good performance. 
     With only about 5% of the nodes as terminals, almost 100% of the edges were covered. Increasing the number of terminals to about 15% did not provide any additional edge coverage and reduced the total cost of the probes on average by only about 1.08%. It was found that using fewer terminal nodes implied that fewer nodes needed to be enhanced to host probe generation software and probe installation costs were minimized. 
     Using about 5% of the nodes as terminals and about 100% coverage of links, the average cost of a probe was found to be 3.62, suggesting that the load induced by probing on the different network links was minimal. One goal of the PLP algorithm was to reduce the number of probes by merging the probe paths obtained using LCP. It was found that, after merging, the average percentage reduction in the number of probes was just about 26%. This implied that the probe paths identified by the LCP algorithm were close to optimal. 
     From Table III, for any given topology, there was no linear relationship between the number of terminals and the total number of probes or probe costs. It was believed that this effect was a consequence of the shortest path computation used to determine probe paths as well as some experimental factors involved with the random choice of the interested edges. 
       FIG. 11  shows an exemplary relationship between the maximal costs of a probe and the number of terminals in the Telestra topology. It was observed that, as the number of terminals increased, the maximum probe cost decreased. However, only unit gain was obtained by increasing the number of terminals from about 15% of the nodes as terminals. Thus, it was claimed that for the topologies considered, the gain expected by solving the dual problem of PLP, namely DLP, might not have been significant. Thus, an exemplary embodiment of the two step design for probe based monitoring includes the LCP algorithm followed by PLP. 
     Impact from Network Topology 
     From  FIG. 12 , it was found that the number of probes required to cover the interesting edge set was almost linearly dependent on the number of edges in the network. The observation was found to be true, regardless of the number of interested edge or the number of terminals used. However, from Table I, it could be seen that the number of nodes did not have any characterizable impact on the number of probes. It was also observed that in the case of covering all edges, in two of the five topologies, increasing the number of terminals did not improve the edge coverage. The same number of links was left uncovered in both cases. It was believed that this was a consequence of the location of these edges in the network with respect to the position of the (randomly) chosen terminal nodes. 
     It was also observed that the percent reduction obtained using PLP in the number of probes and the maximal cost of the probe was dependent on the degree of the network. It was found that for the network with the highest degree of about 8.41, the reduction after PLP was significantly smaller than the other four topologies, which had an average degree in the range of about 2.336 to 3.29. Thus, for networks with higher degree, the exemplary embodiment of the polynomial-time LCP algorithm provided a nearly optimal solution. 
     CONCLUSION 
     Based on the simulations studied, it was concluded that for any network topology, for covering almost 100% edges, only about 5% of the nodes needed to be assigned as terminal nodes. This was a significant finding for probe-based monitoring systems. Because there was no edge coverage advantage by adding additional probe terminals, the design of the probe-based monitoring system can be optimized strictly based on deployment costs. The deployment costs are in terms of the cost of terminal installations versus the cost of setting up and maintaining probe paths. Furthermore, using the exemplary embodiment of the LCP algorithm, it is possible to obtain probe paths that provide nearly optimal results in terms of minimizing all three criteria: the number of probes, the maximal cost of the probe, and the average probe cost. 
     One embodiment uses the DLP algorithm taking into account topological issues, such as the degree of network connectivity for further improvement of the PLP algorithm. The exemplary embodiments of the PLP and DLP algorithms can be easily mapped on to the minimum makespan scheduling problem and bin-packing problem. Therefore, it is believed that a (1+ε)-approximation algorithm exists, when k is a constant. 
       FIG. 13  is a high level block diagram showing a computer. The computer  1300  may be employed to implement embodiments of the present invention. The computer  1300  comprises a processor  1330  as well as memory  1340  for storing various programs  1344  and data  1346 . The memory  1340  may also store an operating system  1342  supporting the programs  1344 . 
     The processor  1330  cooperates with conventional support circuitry such as power supplies, clock circuits, cache memory and the like as well as circuits that assist in executing the software routines stored in the memory  1340 . As such, it is contemplated that some of the steps discussed herein as software methods may be implemented within hardware, for example, as circuitry that cooperates with the processor  1330  to perform various method steps. The computer  1300  also contains input/output (I/O) circuitry that forms an interface between the various functional elements communicating with the computer  1300 . 
     Although the computer  1300  is depicted as a general purpose computer that is programmed to perform various functions in accordance with the present invention, the invention can be implemented in hardware as, for example, an application specific integrated circuit (ASIC) or field programmable gate array (FPGA). As such, the process steps described herein are intended to be broadly interpreted as being equivalently performed by software, hardware, or a combination thereof. 
     The present invention may be implemented as a computer program product wherein computer instructions, when processed by a computer, adapt the operation of the computer such that the methods and/or techniques of the present invention are invoked or otherwise provided. Instructions for invoking the inventive methods may be stored in fixed or removable media, and/or stored within a working memory within a computing device operating according to the instructions. 
     While the foregoing is directed to various embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof. As such, the appropriate scope of the invention is to be determined according to the claims, which follow.