This background section provides a context for the disclosure. The description herein may include concepts that could be pursued but are not necessarily ones that have been previously conceived or pursued. The description is not intended to be limiting and unless otherwise stated, nothing in this section is admitted as prior art simply by inclusion in this section.
Measurement and monitoring of network traffic and topology is in high demand by Internet service providers (ISPs) as a result of the Internet continuing to utilize a broad array of quality of service (QoS) applications. Active measurement can be used to satisfy the monitoring needs of ISP's. Active measurement can refer to a process by which routers and/or end hosts act as measurement points, and deliberately send probing packets to target destinations with precisely controlled departure times. The target destinations can measure the arrival time of such packets or, in the alternative, may estimate a resulting delay of the packets based on feedback from routers and/or the end hosts. The network information obtained from this active measurement can include parameters such as available bandwidth, capacity, one-way delay, round trip time, jitter, topology, etc. The knowledge of such parameters can be used to facilitate various network administration tasks such as network threat monitoring (e.g., denial-of-service attacks and hot spots), traffic engineering (e.g., QoS routing, re-routing, and link state update), and billing (e.g., where price is based on traffic amount, QoS performance, etc.)
This section is intended to provide a broad overview of illustrative embodiments, and is not intended to be limiting. Other principal features and advantages will become apparent to those skilled in the art upon review of the following drawings, the detailed description, and the appended claims.
A method of scheduling tasks for active network measurement is provided. The method includes identifying a first measurement task for measuring a first network parameter and a second measurement task for measuring a second network parameter. It is determined whether there is a conflict between the first measurement task and the second measurement task. A first execution time of the first measurement task and a second execution time of the second measurement task are also determined. A task schedule is generated based at least in part on the first execution time, the second execution time, and whether there is the conflict between the first measurement task and the second measurement task. The task schedule is further generated based at least in part on a color graph.
A measurement device for scheduling tasks for active network measurement is also provided. The measurement device includes a processor and a computer-readable medium operably coupled to the processor. The computer-readable medium has computer-readable instructions stored thereon. Upon execution by the processor, the computer-readable instructions cause the measurement device to determine whether there is a conflict between a first measurement task and a second measurement task. The computer-readable instructions also cause the measurement device to determine a first execution time of the first measurement task and a second execution time of the second measurement task. The computer-readable instructions also cause the measurement device to generate a color graph based at least in part on the first execution time, the second execution time, and whether there is the conflict between the first measurement task and the second measurement task. The computer-readable instructions further cause the measurement device to generate a task schedule including the first measurement task and the second measurement task, wherein the task schedule is based at least in part on the color graph.
A computer-readable medium having computer-readable instructions for scheduling tasks for active network measurement stored thereon is further provided. Upon execution by the processor, the computer-readable instructions cause a computing device to determine whether there is a conflict between a first measurement task and a second measurement task. The computer-readable instructions also cause the computing device to determine a first execution time of the first measurement task and a second execution time of the second measurement task. The computer-readable instructions also cause the computing device to generate a color graph based at least in part on the first execution time, the second execution time, and whether there is the conflict between the first measurement task and the second measurement task. The computer-readable instructions further cause the computing device to generate a task schedule including the first measurement task and the second measurement task based at least in part on the color graph.
The foregoing and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only several embodiments in accordance with the disclosure and are, therefore, not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail through use of the accompanying drawings.
a) is an illustration of a round robin scheduling algorithm with a minimal schedule slot size in accordance with an illustrative embodiment.
b) is an illustration of a round robin scheduling algorithm with a maximal schedule slot size in accordance with an illustrative embodiment.
c) is an illustration of a concurrent execution scheduling algorithm in accordance with an illustrative embodiment.
d) is an illustration of a descending clique coloring scheduling algorithm in accordance with an illustrative embodiment.
e) is an illustration of an on-demand scheduling algorithm in accordance with an illustrative embodiment.
Active measurement tools may compete for network resources as they are carrying out their tasks. Without correct regulation, the competition and resulting conflicts may adversely affect network measurement results. This, in turn, could be falsely interpreted as a network problem and lead to erroneous network administration decisions and/or traffic bursts which may impair the quality of data transmissions. In addition, measurement tasks are often executed as soon as possible such that a network performance state can be timely updated to different quality of service (QoS) management systems (e.g., QoS routers, server hosts, etc.) As the frequency of measurement task execution increases, measurement traffic may also increase, thus raising the possibility of measurement disturbance. Therefore, it is desirable to reduce conflicts between measurement tasks and to minimize the measurement time of all measurement tasks in each measurement cycle (i.e., a set of measurement tasks that are to be performed within a specified period). By reducing conflicts and minimizing measurement times, more active probing of the network can be performed in each measurement cycle.
In one embodiment, a graph coloring theory can be used to facilitate a measurement-task scheduling algorithm for network measurement system 100. The algorithm can be designed to resolve measurement contention and to provide efficient task processing. For scheduling of pre-computation measurement tasks (or offline tasks), a descending-order clique-based coloring (DCC) algorithm may be used. The DCC algorithm can be used to avoid task contention and conflict, and to significantly improve measurement efficiency. For the scheduling of on-demand tasks (or online tasks), an on-demand scheduling (ODS) algorithm can be used. The ODS algorithm can be used to prevent new on-demand tasks from affecting existing pre-scheduled arrangements and to minimize the waiting time of incoming tasks.
In an illustrative embodiment, active measurements can be launched from a specific measurement server (or measurement point) such as measurement server 105 or measurement server 110. Measurement server 105 and/or measurement server 110 can be connected to one or more routers in the network. Section (a) of
Network measurement system 100 can be used to measure a plurality of different QoS parameters such as one-way delay, round-trip delay, available bandwidth, topology, bandwidth capacity, and/or any other parameters known to those of skill in the art. Table I below illustrates representative measurement tools for evaluating representative QoS parameters. In alternative embodiments, any other measurement tools known to those of skill in the art may be used.
As discussed above, the measurement tasks may be executed periodically in measurement cycles. In each measurement cycle, a measurement task Jix→y can be denoted as one measurement process executed by an ith measurement tool. The ith measurement tool can send probing packets from a measurement point x to a measurement point y. The same measurement task can be processed periodically based at least in part on a length of the measurement cycle.
In one embodiment, a smallest time unit can be referred to as a scheduling (or time) slot, and can be represented by B. Each measurement task can be executed in one or more scheduling slots, depending at least in part on the amount of time it takes for the measurement task to execute. Scheduling efficiency may be improved by having multiple tasks execute during a single scheduling slot as long as there is not a conflict between any of the multiple tasks. Equations 1 and 2 below, which can be used to express illustrative relationships between measurement tasks and execution time of the measurement tasks, are as follows:
B=┌min(T(J))┐ Equation 1
┌T(Jj)┐=αj·B, ∀j∈[1, . . . |J|], Equation 2
where J=(J1, J2, . . . Jm) is a set of measurement tasks, T(x) is the execution time (or measurement processing time) of a task x, and αj is a positive integer.
As an example, a set of measurement tasks can be represented as J=(JL1→2, JL2→1, JL2→3, . . . , JLn−1→n, JLn→n−1). The set of measurement tasks can be executed within one measurement cycle. A set of measurement points within the network can be represented as N=(1,2, . . . , n), and an index of measurement tools can be represented as L={1,2 . . . , s}. Each measurement task can be represented as a node in a graph, such as the plurality of nodes 1-32 illustrated with reference to
In an illustrative embodiment, the scheduling of measurement tasks can be enunciated as the arrangement of the nodes in the graph G such that none of the nodes connected with each other are scheduled for simultaneous execution. This problem can be described as a vertex coloring problem. For a conflict graph G(V,E) with vertices V=V(G), each vertex can be assigned a color out of k (e.g., integers 1, . . . , k) colors such that no two adjacent vertices have the same color. In one embodiment, each color can map to one time slot. As such, the color set to be used in the conflict graph can represent a total number of time slots in a measurement cycle.
In an illustrative embodiment, task Jp1→p21 may compete with Jp1→p22 for available memory at first measurement point 200. Task Jp1→p21 may also be in contention with task Jp2→p11 for a transmission channel. Task Jp2→p11 may also compete with task Jp2→p12 for available memory at second measurement point 205. As illustrated in
One objective of the embodiment of
∀j∈[1,2, . . . r], where U is the constraint (i.e., the limit of the network resource(s) that can be expended by the measurements). As such, consumption matrix 300 can be used to ensure that the sum of the consumption of one or more network resource is less than or equal to the constraint of the one or more network resource at each schedule slot. Total consumption of network resources in each time slot can be represented by the dashed ovals in
Various scheduling algorithms can be implemented based on the graph coloring techniques described herein.
For pre-computation scheduling, one approach can be to initialize a pending queue to stack all of the measurement tasks to be processed, and creates two lists. A first list can maintain the task release time points and a second list can maintain the finishing times. At each release time, new tasks can be released and examined to determine whether they can be executed without conflict with other on-going measurement tasks. A determination can also be made regarding whether the total measurement load would exceed the resource constraint(s). If a new task cannot be executed at a given release time, the task can be moved to the pending queue for another trial at the next scheduling point. The next scheduling point can be either a subsequent release time or a time when an executing measurement task completes execution. In one embodiment, the task with the shortest execution time can be selected first in the queue. Such a method introduces the possibility of overlapping multiple tasks in each time slot. However, sorting the tasks in the pending queue based solely on their execution time does not account for conflicts between the measurement tasks.
As an example, four measurement tasks J1, J2, J3 and J4 can have individual execution times of 1, 1, 1, and 4 units, respectively. In addition, measurement tasks J1, J2, J3 can be in conflict with each other, but can be capable of concurrent execution with measurement task J4. Using a sequential scheduling scheme, the total execution time can be at least 7 time units. However, using a concurrent scheduling scheme in which the longest processing time is first considered (i.e., the 4 units of measurement task J4), the total execution time can be reduced to 4 units. This is because the remaining three measurement tasks J1, J2, and J3 can execute sequentially while overlapping with measurement task J4.
In a representative pre-computation scheduling algorithm, the term “clique” can refer to a maximal set of mutually adjacent vertices of a graph G. The term “clique number” can refer to the number of vertices in the largest clique of the graph G denoted as ω(G). The term “degree” can refer to the degree of vertex v in graph G, which can be the number of adjacent vertices of v in G, denoted as dG(v). The maximum degree of graph C can be the maximum number of d(v) in G, denoted as Δ(G).
As described with reference to
The sub-vertices in a set νi can represent different but consecutive schedule time slots for one measurement task. As such, it can be readily determined whether they conflict mutually, which can be described as a complete sub-graph Gi.
In an illustrative embodiment, each sub-vertex in the sub-graphs can be colored. In one embodiment, a greedy algorithm can be used to color the sub-vertices with a minimal number of colors. For example, beginning with a fixed sub-vertex enumeration Vs=(νs1, νs2, . . . , νs|νs|), the sub-vertices can be considered in turn and each sub-vertex can be colored with the smallest index color within a color set C=(1, . . . , K) that is not reserved to color any of its adjacent sub-vertices. As such, no more than Δ(Gs)+1 colors may be used to complete the coloring. This upper bound of colors can be lowered. For example, only dG
If the current sub-vertex is connected to all the colored sub-vertices, then the total number of colors used can be dG
As an example, CD and CR can be the numbers of colors used in coloring the vertices with a descending order degree and with the random order, respectively, and it can be assumed that CD≦CR. The probability that the vertex νi has the same color as its adjacent vertex can be p(νi). As such, p(νi)∝dG(ν1) because
where pj(νi) is the probability that the vertex has the same color with a specific neighbor j. For those neighbors which have not been colored yet, pj(νi) is 0, so that
and p(νi)∝dG|ν1, . . . νi](ν1). In addition, dG[ν1, . . . νi](ν1)=dG(ν1)−dG[uncolored](νi) and the degree of the current vertex among the uncolored parts satisfies dG[uncolored](ν1)∝1/C(νi), where C(νi) is the number of colors which have been used before coloring the current vertex. Since
and p(no vertex)=0, it can be verified that Equation 3 below is true when coloring the vertex with the largest degree first. As such, CD≦CR.
In accordance with one embodiment, the degree of a sub-vertex in sub-graph Gi is Δ(Gi)+dG(νi), that is, the conflict between the sub-vertices in the same set νi(sub-graph Gi), and the conflict between the vertices in graph G, respectively. Although the complexity of the coloring scheme by the above descending-order degree is not high, the constraint that the sub-vertices in the same set be with consecutive colors can increase the complexity. Hence, in this embodiment, only sub-vertices are enumerated by descending order of Δ(Gi), i.e., the clique number of each sub-graph. This can also be referred to as descending-order clique-based coloring. As shown in
In one embodiment, during the execution of the periodic measurement by the pre-computed schedule, an instant and non-periodic measurement task (i.e., on-demand task) may arise with a higher priority than periodic tasks. To simplify the problem, the demand can be sent to a central regulator so that the schedule is controlled by a client/server mode. A goal of the on-demand scheduling can be to execute on-demand requests as soon as possible without disturbing the existing pre-computed schedule table. To achieve this, once an on-demand request arrives, the algorithm can determine whether any running task conflicts with the on-demand request or if the insertion of the on-demand task would violate the constraints of the resources. If there is a conflict or if constraints would be violated, insertion of the on-demand task can be delayed until all conflict tasks are executed and/or until the total consumption is within the constraint. During execution of the on-demand task, periodic tasks may be deferred to let the on-demand measurement exclusively run without competition. This is illustrated with reference to
As noted above,
c) illustrates a descending degree coloring (DDC) scheduling algorithm in accordance with an illustrative embodiment. The DDC algorithm can utilize a conflict graph G, but may not consider sub-vertices in each vertex (i.e., may not consider the execution time of each task). The DDC algorithm can choose the tasks by the descending order of the degree of each vertex vi in graph G: dG(νi). To keep the complexity of this scheme within an acceptable level, the schedule slot size can be set to the largest value of the execution time as described above with reference to
As an example, a measurement can be comprised of six periodic active measurement tasks with execution time units (1, 2, 4, 6, 8, 10), respectively. For purposes of simplification, it can be assumed that there is no consumption constraint (i.e., that U is infinite). The conflict probability, which represents the probability of the existence of the edge between any two vertices, can be changed from 0 to 1 with increments of 0.2. The conflict probability of 0 implies that there is no edge between vertices. With conflict probability of 1, the graph becomes a complete graph. The normalized time space utilization as defined in Equation 4 below can be used to estimate the efficiency of the scheduling algorithm. Equation 4 is as follows:
where r is the number of time slots used for all measurements, m is the number of measurement tasks, and max(T(J)) is the maximum execution time of the measurement tasks. For example, Rn of the schedule shown in
In another example, the number of pre-scheduled measurement tasks can be changed from 4 to 10. The difference of the execution time between two consecutive tasks in the set of measurement tasks is 1, i.e., from T(J)=(1, 2, 3, 4) to T(J)=(1,2,3,4,5,6,7,8,9,10).
In another example, the execution time of five measurement tasks can be changed, while keeping the mean execution time as 4, as delineated in
In a representative embodiment, the scheduling of the network measurement tasks can be modeled using a graph coloring technique. Both pre-computed (offline) scheduling and the on-demand (online) scheduling algorithms can be addressed in the modeling. A descending-order clique-based task scheduling algorithm can be used to solve the measurement task scheduling problem.
In one embodiment, the greedy algorithm can be used to color the vertices in a graph by a descending order of the degree. Use of the greedy algorithm can result in a relatively small number of colors with low complexity. Hence, the algorithm schedules the tasks in terms of the descending order of the clique in the mapped conflict graph. The proposed approach has been demonstrated to achieve a great improvement on time efficiency and load balancing for measurement-task scheduling under various measurement scenarios.
The presently disclosed systems and methods offer significant advantages over existing scheduling techniques. The advantageous properties and/or characteristics of the disclosed method include, but are not limited to, effectiveness, robustness, and simplicity in implementation. The scheduling methodology can be used to optimize network state computation, improve utilization of storage and channel resources, and shorten measurement time. In accordance with at least one embodiment, a methodology schedules different measurement tasks such that network resources are not exhausted. The network measurement tasks can be modeled as a graph with contention between any two tasks considered as a link there between. In at least one embodiment, each node can be represented as a set of sub-nodes where each sub-node can map to a time unit. For pre-computed offline tasks, priority may be decided by the descending-order of clique number in each set with clique being defined as a maximal set of mutually adjacent vertices on the graph. It can be shown that the number of time units used in various disclosed embodiments will be smaller than that of other existing methods. The scheduling algorithms disclosed herein can also set a resource consumption threshold to constrain the number of parallel tasks executed, to prevent the exceeding of network resources, and to minimize expense. Scheduling on-demand tasks can be implemented by giving the on-demand tasks a priority over offline tasks. In one embodiment, currently executing offline tasks may be allowed complete execution prior to the execution of an on-demand task.
The above described embodiments may be implemented within the context of methods, devices, systems, instructions stored on computer readable media, and computer program processes. As such, it is contemplated that some of the steps discussed herein as methods, algorithms and/or software processes may be implemented within hardware (e.g., circuitry that cooperates with a processor to perform various steps), software or a combination of hardware and software. The embodiments 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 methods may be stored in fixed or removable media and/or stored within a working memory or mass storage device associated with a computing device operating according to the instructions. A computing device including a processor, memory, and input/output means may be used to process software instructions, store software instructions and/or propagate software instructions to or from a communications channel, storage device or other computer/system.
An attempt has been made to disclose all embodiments and applications of the disclosed subject matter that could be reasonably foreseen. However, there may be unforeseeable, insubstantial modifications that remain as equivalents. While the representative embodiments have been described in conjunction with specific, illustrative embodiments thereof, it is evident that many alterations, modifications, and variations will be apparent to those skilled in the art in light of the foregoing description without departing from the spirit or scope of the present disclosure. Accordingly, the present disclosure is intended to embrace all such alterations, modifications, and variations of the above detailed description.
The present application claims priority to U.S. Provisional Patent Application No. 60/967,046 filed Aug. 31, 2007, the contents of which are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
60967046 | Aug 2007 | US |