Embodiments of the present invention relate to a method and apparatus of measuring and recording various parameters of traffic at nodes in a data transmission network; in particular, to the provision and use of a sampling circuit for the measurement and recording of such traffic parameters.
Any data transmission network comprises switches or routers in which traffic is carried in flows defined by identifiers, which may be VC/VP pairs in an ATM switch, source or destination address pairs in an IP router or a logical prefix-based aggregations of source or destination addresses. Traffic management schemes are based on measurement of traffic load and for such schemes to work effectively, the measurement must be accurate. The most fundamental form of measurement is a sample of the bit-rate of the traffic and the timescale over which such a measurement is made determines how much information can be deduced from it. If the timescale is relatively long such as the order of hours or days, then all that can be deduced is the average traffic load and the measurement tells nothing whatsoever of the typical delays or indeed packet-drop rates. In order to deduce the latter, sampling of the traffic rate must take place using a timescale at which packet queuing occurs, namely, that of the order of tens of milliseconds. Making accurate rate-measurements in such timescales is extremely challenging and difficult. Current networking hardware can count various quantities relating to traffic streams, such as the number of arriving packets and arriving bytes. In order to make bit-rate measurements, software within the switch or router operating system must poll the byte counter, read the system time, set the software timeout and then read the byte counter and system time again. The bit-rate sample is then calculated as the ratio of:
Unfortunately, there are traditionally a number of serious problems with a solely software-based system when used to measure and record traffic parameters.
First, arranging for times of software timers to expire accurately can be difficult, especially at a timescale of 10 ms. Even if such software timers are accurate, the underlying architecture does not scale well. If the counting process is handling many counts at once, the counting process needs to use its timer many times, namely, once for each count. When the counter periods overlap, the actual timeout periods may be much shorter than the timescale of the count, namely, 10 ms, mentioned already, for any individual count. Thus, in practice, many counts will interfere with each other in software, leading inevitably to reduce accuracy for all the counts.
A further problem is that even if the number of counts and/or counter is such that they can be handled correctly, it is virtually impossible to guarantee that the times in which the byte counters are read will be recorded and/or clocked accurately. Effectively, software processes are programmed to poll the byte counter and then immediately read the system clock. However, there is no guarantee that the actual process will not be preempted by another process having a higher priority or by a hardware interrupt between polling the counter and reading the clock. Obviously, if the counting process is preempted, it makes the current count unusable and/or inaccurate. A further problem is that typically there will be no record of this interrupt and thus the process cannot discard that particular faulty count and reject it but it will be used for further processing.
Finally, a major drawback inherent in using software alone is that even if the counting and timing could be carried out accurately, there is a limitation in that, in effect, rate samples can only be taken over specified periods of time. In some applications, it is important to be able to time a specific feature and/or function, such as how long it takes for a fixed number of bytes to arrive. Unfortunately, the latter timing is impossible to achieve in software without a busy loop constantly polling the bye counter, which would effectively leave the CPU unusable for any other purpose. Accordingly, carrying out such a task by way of software alone is relatively useless for traffic management.
At least one embodiment of the present invention is directed towards providing a method and apparatus for rate sampling by measuring and recording various parameters of traffic of at least some of the nodes in a data transmission network.
In accordance with at least one embodiment of the invention, there is provided a method of measuring and recording various parameters of traffic at least at some of the nodes in a data transmission network in a rate sampling piece of hardware. Exemplary nodes include network switch routers, destination addresses, and so on. At least some of the nodes in the data transmission network are connected to at least one system counter provided in software.
In accordance with another feature of at least one embodiment, the method comprises enabling a group of counters; counting various individual activities of the traffic at the node as separate system activity counts; and providing a simultaneous real time count.
In accordance with a further feature of at least one embodiment, the method comprises causing each counter to be disabled on a pre-set activity condition being sensed at the node; reading the count recorded at the node for the real time between the enabling and disabling of the counter; reading the real time elapsed during said count; storing the count and time read as traffic data; and re-enabling the counter to continue with the next count.
In at least one embodiment, hardware implementations overcome all the hereinafore-mentioned disadvantages and problems of heretofore-known “software only” solutions.
In at least one embodiment, on disabling a counter, one or more are disabled and the traffic data for each of said counters is stored. Many pre-set activity count conditions can be sensed and used, such as the real time elapsed since enabling the counter, the number of bytes counted since enabling the counter, and the number of data packets counted since enabling the counter.
In at least one embodiment, all the system activity counts are carried out simultaneously at the node by disabling all counters connected to the node once one counter is disabled and enabling all the counters connected to the node when any of the counters connected to the node is enabled.
Alternatively, in at least one embodiment, all the system activity counts are carried out simultaneously over the same time period by disabling all counters on any one of a number of pre-set activity count conditions being sensed at the nodes and enabling all counters simultaneously when any one counter is enabled.
It will be appreciated that in at least one embodiment, the method will also include computing traffic data from the traffic parameters and storing the traffic data for subsequent retrieval. The amount of computation used will depend entirely on the hardware being used.
Further, at least one embodiment of the invention provides a sampling circuit for the measurement and recording of traffic parameters as system activity counts at a node in a data transmission network comprising a plurality of separately operable hardware counters, each for counting a specific system activity count at the node; a time counter having an input signal in the form of a clock operating at fixed interval; operating circuit means for enabling and disabling the operation of each counter; recording circuit means for the individual counts read at the counter for the real time between the enabling and disabling of each counter; and storage circuit means for the individual counts.
In accordance with another feature of at least one embodiment, there is also provided computational circuit means for calculating traffic parameters for the network.
In accordance with an additional feature of at least one embodiment, the operating recording and storage circuit means is carried out by a programmable control circuit.
In accordance with a further feature of at least one embodiment, the counters may be combined into a counter assembly comprising at least one system counter, but more likely, at least two system counters. Ideally, these are a system counter for counting bytes and a system counter for counting packets and always a time counter. It is envisaged that dedicated multiplexors may be used for monitoring and detecting the output of each system counter measured in the number of bits. Such as system counter will be provided by an addressable register in at least one embodiment.
In accordance with at least one embodiment of the invention, there is also provided a sampling circuit comprising: a plurality of addressable registers forming a time counter and at least one system counter; a multiplexor connected to each counter; a global multiplexor connected to each per-counter multiplexor; a control register connected to each multiplexor the control register being programmed to configure each node multiplexor to handle the bits at each counter in accordance with a pre-set count condition and to assert an inhibit and re-set signal for transmission to each counter on sensing the pre-set count condition; the control register being programmed to configure the global multiplexor to combine the outputs of node multiplexors to assert the inhibit and re-set signal; and circuit counting means for the individual system activity counts in real time.
Other features that are considered as characteristic for the invention are set forth in the appended claims.
Although the invention is illustrated and described herein as embodied in system hardware and software, it is, nevertheless, not intended to be limited to the details shown because various modifications and structural changes may be made therein without departing from the spirit of the invention and remain within the scope and range of equivalents of the claims.
The construction and method of operation of the invention, however, together with additional objects and advantages thereof, will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings.
The present invention will be described by way of exemplary embodiments, but not limitations, illustrated in the accompanying drawings in which like references denote similar elements, and in which:
In the specification the terms “comprise, comprises, comprised and comprising” or any variation thereof and the terms “include, includes, included and including” or any variation thereof are considered to be totally interchangeable and they should all be afforded the widest possible interpretation.
Moreover, reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” or “in at least one embodiment” in various places in the specification do not necessarily all refer to the same embodiment, but it may.
Furthermore, the phrase “A/B” means “A or B”. The phrase “A and/or B” means “(A), (B), or (A and B)”. The phrase “at least one of A, B and C” means “(A), (B), (C), (A and B), (A and C), (B and C) or (A, B and C)”. The phrase “(A) B” means “(A B) or (B)”, that is “A” is optional.
Referring to the drawings, there is provided a plurality of counters labeled in
Obviously, the low-order bits of the byte counters would not normally be used. Referring now to
At least one embodiment allows accurate rate measurements over a specified interval of time. The logic can be arranged so that all the counters are initially frozen, reset and then simultaneously started. For example, a bit in the time counter is monitored and as soon as that bit is set, all counters are simultaneously frozen again. The counters can then be read and their values divided by the elapsed time recorded by the counter to give accurate rate measurements. In this way, an accurate measure of the data rate of a network flow may be obtained.
At least one embodiment of the invention also allows accurate rate measurements over intervals of time defined by the quantity to be measured. For example, it is possible to measure the length of time taken for a specified number of bytes to arrive on a given flow to measure the length of time it takes for 2 n bytes to arrive; simply reset all counters, set them all going simultaneously and then monitor the n'th bit of the byte counter. It will be appreciated that the logic will allow more complicated specifications of timings to be performed. For example, one could measure until a given length of time has passed or until a given number of bytes or packets have arrived on a flow, one could monitor bits in both the time counter and the byte counter, apply a logical OR to them and use the result to trigger a freeze of all counters. At least one embodiment of the invention is a hardware solution to a problem in the present method of measuring and recording various parameters of traffic data at nodes on a data transmission network which methods have heretofore been carried out in software which have led to inherent problems. The count is timed in hardware so that it is exact. Each count is performed on a dedicated piece of hardware, probably silicon based, which reduces existing problems associated with scaling the design up. In at least one embodiment, the hardware includes a small amount of silicon, such as three or more registers and some logic from any applications. The byte count and clock are synchronized hardware giving perfect precision and the hardware arrangement allows fixed volume counts to be performed as easily as fixed time counts.
It will be appreciated that what has been described hereinbefore is a system for providing a sampling of the traffic at a node in a network at a specific time period. While the use of hardware has been emphasized, it will be appreciated that in today's technology applications that the line between hardware and software implementations is often blurred and is not intended to limit the present invention to application using any one set of implementation techniques where the functionality of the invention can be provided by an other type of implementation techniques. For example, in various embodiments of the invention certain or all components can be provided in a software implementation.
These accumulated windows provide a plurality of sliding windows 500, example of which are shown in
The provision of an historical overview of the system activity is advantageous in many ways and has a plurality of applications as will be appreciated by those skilled in the art. For example, by comparing the number of bytes recorded at a particular counter, which indicates the system activity at this specific time period, with the number of bytes in one of the accumulator data fields, it can be ascertained whether the system activity at this instant corresponds with normal expected behavior or whether an anomaly has been experienced. This can then be used to change the characteristics of the network at the node, for example, by increasing or decreasing the available bandwidth at that node, or by changing the type of traffic that is being served and at which priority. Therefore, a system using the sampling circuit of the present invention can be used to monitor and control traffic activity within a network so as to optimize performance based on actual usage. In this way the present invention can be utilized in applications such as a network monitoring tool.
Each of the fields in the buffer, and correspondingly the fields in the accumulator, can be related to the output from one specific counter (e.g., a byte counter) or could be used to provide a representation of the system activity for a plurality of counters (e.g., a byte counter and a packet counter). By providing this population or feeding of the data fields of the buffer from a plurality of different sources, subsequent analysis of these specific data fields can provide information about characteristics of the network above those represented by a single integer. This can be combined with a timing counter so that if each subsequent iteration of the corresponding counter occurred at non-regular timing intervals, that the irregularity of the timing intervals can be normalized to provide a time independent overview of the system activity.
Although not discussed heretofore, it will be understood that the counters of
Although the invention has been described with reference to a hardware implementation, it will be appreciated that the system components of the invention can equally well be implemented using software or indeed a combination of hardware and software. While hardware may be advantageous for certain components such as timing circuitry, etc., it is not intended to limit the present invention in any way except as may be deemed necessary in the light of the appended claims which are intended to define and encompass implementations irrespective of whether they are hardware or software.
The invention is not limited to the embodiments hereinbefore described but may be varied in both construction and detail. Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art and others, that a wide variety of alternate and/or equivalent implementations may be substituted for the specific embodiment shown in the described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the embodiments discussed herein. Therefore, it is manifested and intended that the invention be limited only by the claims and the equivalence thereof.
This application is a continuation-in-part of prior U.S. application Ser. No. 10/875,179, filed Jun. 25, 2004, entitled MEASURE AND RECORDING OF TRAFFIC PARAMETERS IN DATA TRANSMISSION NETWORKS which is a division of prior U.S. application Ser. No. 09/608,108, filed Jun. 30, 2000, also entitled MEASURE AND RECORDING OF TRAFFIC PARAMETERS IN DATA TRANSMISSION NETWORKS.
Number | Date | Country | |
---|---|---|---|
Parent | 09608108 | Jun 2000 | US |
Child | 10875179 | Jun 2004 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10875179 | Jun 2004 | US |
Child | 11285989 | Nov 2005 | US |