FIELD OF THE INVENTION
[0001] The present invention is directed to the auditing of service level agreements. In
particular, the present invention provides for the auditing of communication network
service level agreements by test packet insertion.
BACKGROUND OF THE INVENTION
[0002] A service level agreement is a business agreement between a client and a provider
of communication or computer network capacity. Traditionally, such agreements have
specified a minimum bandwidth to be provided in connection with ATM/frame relay technology.
However, such agreements have not typically been used in connection with Internet
protocol networks.
[0003] With the development of new Internet protocol technologies, such as differentiated
services (DiffServ), contracts between clients and network serviced providers are
more likely to specify minimum quality of service levels in connection with Internet
protocol networks. For example, a service provider may guarantee that traffic marked
with the DiffServ Expedited Forwarding code points will take less than 50 milliseconds
to transit the network with less than 0.1 % of the packets being dropped, provided
that less than 10% of the traffic is marked with an expedited flag.
[0004] In the event that the perceived quality of network service is less than the guaranteed
levels, it will be necessary for the client to audit the actual service levels provided
by the network. This must be done in a reliable and unobtrusive way in order to establish
that the service provider is not meeting the terms of the agreement, or to identify
other potential sources for the perceived quality deficit. In addition, it would be
desirable to provide a way to determine whether the actual service levels provided
by an Internet protocol network requires that data packets be marked with an expedited
flag, potentially incurring additional cost for the transmission of those packets,
in order to ensure delivery of such data packets within desired performance parameters.
[0005] Prior art solutions for auditing network service levels are only capable of auditing
ATM or frame relay networks; they are incapable of auditing Internet protocol networks.
Furthermore, prior art auditing solutions measure the quality of service from end
to end, rather than within or across the network region governed by a service level
agreement. Measuring the end to end performance available between communication end
points does not provide an acceptable way to audit the performance of a service provider
network, because a measurement of end to end performance typically includes the effects
of the customer's network at one or both ends of the communication.
SUMMARY OF THE INVENTION
[0006] The present invention is directed to solving these and other problems and disadvantages
of the prior art.
[0007] In accordance with a first embodiment of the present invention, a method for auditing
communication network service levels is provided, comprising:
sending at least a first packet from a first router to a second router;
receiving from said second router said at least a first packet at said first router;
measuring at least a first parameter with respect to said received at least a first
packet;
comparing said measured at least a first parameter to at least a first predetermined
value; and
in response to a first predetermined comparison result between said measured at least
a first parameter and said at least a first predetermined value, generating a signal
indicating that a first service level is not being met.
[0008] In addition, the method for auditing communication network service levels in accordance
with the first embodiment may comprise:
determining a status of a first queue on said first router; and
in response to determining a first status of said first queue, providing said at least
a first packet to said first router, wherein said packet is placed in said first queue
prior to said step of sending said at least a first packet.
[0009] The method for auditing communication network service levels in accordance with the
first embodiment may also comprise:
determining a status of a first queue or said first router; and
in response to determining that at least a first number of packets are waiting in
said queue, providing said at least a first packet to a second queue.
[0010] In addition, the method for auditing communication network service levels in accordance
with the first embodiment may comprise:
determining a number of packets requesting an expedited service level sent from said
router within a first period of time;
comparing said determined number of packets to a threshold amount; and
in response to said number of packets being less than said threshold amount, performing
said step of sending at least a first packet.
[0011] The method for auditing communication network service levels in accordance with the
first embodiment may further include generating said at least a first packet in a
management server, In addition, the at least a first packet may comprise a timed packet,
such as an Internet control message protocol ECHO packet. The at least a first packet
may also be marked with a requested quality of service priority. Furthermore, the
requested quality of service level may comprise a differentiated services quality
of service request.
[0012] In accordance with a second embodiment of the present invention, a method for managing
use of a communication network is provided, comprising:
transmitting at least a first test packet marked with a first quality of service level
across a first communication network;
determining at least a first packet data transmission parameter for said at least
a first test packet transmitted across said first communication network; and
in response to said at least a first packet data transmission parameter meeting at
least a first threshold, transmitting at least a first data packet from a first data
endpoint to a second data endpoint across said first communication network, wherein
said at least a first data packet is marked with said first quality of service level.
[0013] The method in accordance with the second embodiment may also include, in response
to said at least a first packet data transmission parameter not meeting said at least
a first threshold, transmitting a least a second test packet marked with a second
quality of service level across said first communication network;
determining said at least a first data transmission parameter for said second test
packet transmitted across said first communication network; and
in response to said at least a first data transmission parameter for said second test
packet meeting said at least a first threshold, transmitting at least a first data
packet from said first data endpoint to said second data endpoint across said first
communication network, wherein said at least a first data packet is marked with said
second quality of service level, wherein said first quality of service level is less
than said second quality of service level.
[0014] In addition, a method in accordance with the second embodiment may include a service
level agreement for said first communication network that establishes said at least
a first data transmission parameter.
[0015] In accordance with a third embodiment of the present invention, a system for auditing
communication network service levels is provided, comprising:
means for interconnecting a first subnetwork to a communication network, wherein said
means are capable of transmitting a test data packet across said communication network
and receiving said test data packet; and
means for detecting at least a first network performance parameter with respect to
said test packet.
[0016] In addition, the third embodiment of a disclosed system for auditing communication
network service levels may include a first network performance parameter that is set
forth in a service level agreement. The system in accordance with the third embodiment
may also include means for outputting at least a first network performance parameter.
[0017] In accordance with a fourth embodiment of the present invention, a system for auditing
service level agreements is provided, comprising:
a first router, comprising:
data storage operable to store at least one of programming and data packets; and
at least a first network interface operable to send and receive data packets between
a first subnetwork and a communication network for which guaranteed service levels
are set forth in a service level agreement, wherein said first router sends test packets
across said communication network.
[0018] A system for auditing communication network service level agreements in accordance
with the fourth embodiment of the present invention may further include:
a first server, comprising:
data storage operable to store programming;
a processor operable to run said programming; and
a communication interface interconnecting said first server to said first router over
at least one of said first subnetwork and a first communication channel, wherein said
programming is operable to instruct said first router to send said test packets and
to determine at least a first network performance parameter with respect to said test
packets.
[0019] In addition, the fourth embodiment may include:
a first data endpoint interconnected to said first subnetwork, wherein said test packets
are marked with a first quality of service level, and wherein data packets marked
with said first quality of service level are provided by said first data endpoint
to said first router for transmission across said communication network in response
to a determination that a performance of said communication.
[0020] A system for auditing communication network service level agreements in accordance
with the fourth embodiment may also comprise:
a second subnetwork; and
a second router interconnecting said communication network to said second subnetwork,
wherein said test packets are transmitted between said first and second routers across
said communication network.
[0021] Generally, according to the present invention, a test packet is inserted into a communication
network under test at a first edge router. The time for the test packet to transit
from the first edge router across the network under test to a second edge router is
then determined. A determination may then be made as to whether the observed transit
time is within the parameters set by the applicable service level agreement. In accordance
with another embodiment of the present invention, additional or alternative transmission
parameters are determined. For example, packet loss rate, and packet jitter may be
determined.
[0022] In accordance with a further embodiment of the present invention, test packets having
different requested quality of service levels are inserted at a first router on the
edge of the network under test. The test packets are then transmitted to a second
edge router across the network under test, and one or more parameters regarding the
transmission of the test packets are determined.
[0023] In accordance with still another embodiment of the present invention, prior to sending
test packets across the network under test, the queues established on the first router
are identified. In addition, the status of each of the identified queues is determined.
If the number of data packets within an identified queue exceeds a predetermined amount,
the insertion of test packets into the network under test may be delayed or may be
made from another queue on the router. In accordance with yet another embodiment of
the present invention, recent or existing traffic levels on the communication network
are monitored. If the total volume of data packets sent across the network or the
volume of data packets marked with a desired quality of service level of at least
a first amount exceeds a threshold number, the insertion of test packets is delayed.
[0024] In accordance with an embodiment of the present invention, a system for auditing
service level agreements includes at least a first edge router. The first edge router
may be interconnected to a management server running application software capable
of monitoring communication network parameters, and of providing test packets to the
first router for insertion into the communication network. In accordance with another
embodiment of the present invention, the first edge router is capable of running management
software, without requiring a separate management server.
[0025] These and other advantages and features of the invention will become more apparent
from the following discussion, particularly when taken together with accompanying
drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0026]
Fig. 1 is a block diagram of a communication system in accordance with an embodiment of
the present invention;
Fig. 2 is a block diagram of an edge router in accordance with an embodiment of the present
invention;
Fig. 3 is a block diagram of a management server in accordance with an embodiment of the
present invention;
Fig. 4 is a flow chart depicting the operation of a system in accordance with an embodiment
of the present invention;
Fig. 5 is block diagram depicting additional aspects of the operation of a system in accordance
with an embodiment of the present invention;
Fig. 6 is a flow chart depicting additional aspects of the operation of a system in accordance
with an embodiment of the present invention; and
Fig. 7 is a flow chart depicting still other aspects of the operation of a system in accordance
with an embodiment of the present invention.
DETAILED DESCRIPTION
[0027] The present invention is directed to the auditing of communication network service
level agreements.
[0028] Fig. 1 is a block diagram of a communication system
100 in accordance with an embodiment of the present invention. In general, the communication
system
100 includes a first subnetwork
104 and a second or a remote subnetwork
108. The first subnetwork
104 is interconnected to the second subnetwork
108 by a communication network
112.
[0029] The first subnetwork
104 generally includes an edge router
116 and one or more data endpoints
120. The data endpoints
120 may comprise any device capable of initiating or receiving communications that can
be transmitted according to packet data protocols across a communication network
112. Accordingly, examples of data endpoints
120 include general purpose computers, Internet protocol telephones, and soft telephones
running on a general purpose computer. In addition, the first subnetwork
104 may include a management server
124. As shown in
Fig. 1, the first subnetwork
104 may comprise a customer communication network
128 for enabling communications between the various components
116-124 of the first subnetwork
104. As can be appreciated by one of skill in the art, examples of a first subnetwork
104 include an intranet or a private branch exchange.
[0030] The communication network
112 generally includes a packet data network. For example, the communication network
112 may comprise an Internet protocol network. In general, the communication network
112 may be used by one or more clients or network customers to transmit data, including
voice communications, between two or more subnetworks (e.g. subnetworks
104,108).
[0031] With reference now to
Fig. 2, a router
116 in accordance with an embodiment of the present invention is illustrated in block
diagram form. In general, the router
116 includes an internal buffer
204 comprising memory in which packet queues may be established in accordance with instructions
received from a queuing engine
208. As can further be appreciated, queues within the internal buffer
204 may be established separately for incoming and outgoing packets. In addition, one
or more queues may be established for each quality of service level recognized by
the router
116 that may be associated with individual data packets.
[0032] The management server
124 may be interconnected to the first router 116 through either or both of the customer
network
128 or a communication channel
132 (see
Fig. 1). With reference now to
Fig. 3, the management server
124 may comprise a general purpose computer having a processor
304, memory
308, data storage
312, and a communication network interface
316. The processor
304 may include any general purpose programmable processor capable of running software,
such as software stored on the data storage
312. In an alternative embodiment, the management server
124 may include a processor
304 that comprises a controller running microcode. The memory
308 may comprise any memory suitable for the temporary storage of data. The data storage
312 may include mass storage devices, such as hard disk drives, optical drives, or tape
drives. The data storage
312 may store an operating system
320 and a management application
324.
[0033] With continued reference to
Fig. 1, the second subnetwork
108 may include an edge router
136, data endpoints
140, and a remote network infrastructure
144. The second router
136 may comprise an edge router, and may generally be configured like the first router
116 illustrated in
Fig. 2. In general, the second router
136 interconnects the second subnetwork
108 to the communication network
112. The data endpoints
140 may comprise any device capable of initiating or receiving communications that can
be transmitted according to packet data protocols across a communication network
112. Accordingly, examples of data endpoints
140 include general purpose computers, Internet protocol telephones, and soft telephones
running on a general purpose computer.
[0034] With reference now to
Fig. 4, the operation of a system
100 in accordance with an embodiment of the present invention is depicted. Initially,
at step
400, test packets are sent from a management application
324 to a destination router
136 via a first router
116 and the communication network
112. The management application
324 may be stored in data storage
312 and run on a processor
304 provided in connection with the management server
124. As can also be appreciated, the router
116 may incorporate the functions of the management server
124. Accordingly, the management application
324 may be running on a processor provided as part of the first router
116. The test packets sent from the first router
116 across the communication network
112 may be marked with a priority or requested quality of service level. Furthermore,
different packets among the test packets sent from the first router
116 as part of a test sequence may be marked with different requested quality of service
levels. The request for a particular level of service may be made in accordance with
a differentiated services Internet protocol.
[0035] At step
404, the test packets are received at the destination or second router
136. The second router
136 then sends those packets back to the management application
324 via the communication network
112 and the first router
116. One or more packet data metrics may then be measured (step
408), For example, the time required for the test packets to transit from the first router
116 across the communication network
112, to the second router
136, may be determined by dividing the round trip time required for the packets to travel
from the first router
116 to the second router
136 and back to the first router
116 by two. In accordance with an embodiment in which the test packets are sent from
a management server
124 that is interconnected to the first router
116 through either the first customer network infrastructure
128 or a specially provided communication channel
132, the time spent by the test packets transiting between the management server
124 and the first router
116 is subtracted from the total round trip time observed in connection with the packets.
When half the round trip time is not believed to accurately reflect the time required
for data packets to be delivered by the communication network
112, for example where the initial delivery and return transit times are asymmetric,
a trusted second router
136 may be used to time stamp the test packets as they arrive at the second router
136. A trusted second router
136 may include a second edge router operated by the operator of the first subnetwork
104 and located remotely from the first subnetwork
104, or operated by a trusted third party.
[0036] At step
412, a determination is made as to whether a predetermined service level is being provided
by the communication network. For example, the measured packet data metric or metrics
may be compared to one or more performance parameters specified in a service level
agreement governing use of the communication network. If the predetermined service
level is not met, a signal indicating that the service level agreement has been violated
may be generated (step
416). If the comparison indicates that the predetermined service level is being met,
a signal indicating that the service level agreement is being complied with may be
generated (step
420).
[0037] As can be appreciated by one of skill in the art, the test packets may be time stamped
at various points along their delivery path in order to determine transmission times.
In accordance with an embodiment of the present invention, Internet control message
protocol echo packets are used to determine the round-trip times for the test packets
within a test sequence. As can also be appreciated, other parameters of a communication
network's
112 performance can be obtained, for example by observing the arrival times and the arrival
order of test packets at the first router
116, the second router
136, or the management server 124 after transmission of the test packets across the communication
network
112. Examples of additional or alternative packet parameters that may be measured in
connection with the performance of a communication network
112 include packet loss rate and jitter. In accordance with another embodiment of the
present invention, test packets may comprise Internet control message protocol (ICMP)
echo packets that have been modified to include differential service level markings,
such as a quality of service flag.
[0038] With reference now to
Fig. 5, additional aspects of a system
100 in accordance with an embodiment of the present invention are depicted. Initially,
at step
500, a query is sent from the auditing application
324 to the first router
116 regarding the queues established on the first router
116. After receiving a reply from the first router
116 regarding the existing queues, the auditing or management application
324 queries the router
116 regarding the status of those queues (step
504). At step
508, a determination is made as to whether less than a predetermined number of packets
(x) are waiting in the first queue. If this condition is satisfied, test packets are
then sent through the first queue (step
512). If the condition with respect to the first queue is not met, a determination is
made as to whether there are less than a predetermined number of packets (y) in the
second queue (step
516). If there are less than the predetermined number of packets in the second queue,
test packets may be sent through the second queue (step
520). If the condition of step 516 is not met with respect to the second queue, additional
checks may be made with respect to any remaining queues. For example, at step
524, a determination is made as to whether less than a predetermined number of packets
are waiting in an n
th queue established in the second router
116. If this condition is met, test packets may be sent through the n
th queue (step
528). If there are not less than the predetermined number of packets (z) in the n
th queue (
i.e., none of the queues established in connection with the first router have less than
a predetermined number of packets in them) the sending of test packets is delayed
(step
532). Although the example set further above in connection with
Fig. 5 describes a different predetennined number (i.e., x, y or z) with respect to each
of the queues, it should be appreciated that the predetermined number for some or
all of the queues may be the same.
[0039] The querying of the first router
116 to determine what queues exist in the router
116, and the conditions of those queues, allows a more accurate measure of communication
network
112 parameters to be taken. In particular, as the queues on the router
116 are filled, the time required for data packets to be provided by the router
116 for delivery across the communication network
112 increases. In accordance with an embodiment of the present invention, the predetermined
threshold or thresholds used to determine whether test packets may be sent through
a particular queue on a router
116 is established by the service level agreement governing use of the communication
network
112. As can also be appreciated, queues established in connection with the second router
136 to which test packets are to be addressed can also be identified, and the status
of those queues determined. This can ensure that measurements taken with respect to
test packets are not negatively impacted by conditions on the second router
136.
[0040] With reference now to
Fig. 6, additional aspects of the operation of a system 100 in accordance with an embodiment
of the present invention are illustrated. Initially, at step
600, the first router
116 is queried regarding the number of data packets that have been sent from the first
router
116 over the communication network
112 within a selected time period. At step
604, a determination is made as to whether the number of packets sent within the selected
time period is greater than a threshold amount. If the threshold amount has been exceeded,
the sending of test packets is delayed (step
608). If the threshold number of packets has not been exceeded, then the sending of test
packets may proceed (step
612).
[0041] As can be appreciated, a check to ensure that the number of packets or quantity of
data sent across a communication network
112 under test by a router
116 immediately before the insertion of test packets increases the accuracy with which
the performance of the communication network
112 can be measured. In particular, by ensuring that the components of the system
100, such as the router
116,136 in the communication network
112 are not overwhelmed, and more particularly by ensuring that any parameters regarding
traffic levels specified in the service level agreement are met, compliance with the
terms of the service level agreement can be more accurately determined.
[0042] From the description set forth above, it should be appreciated that the insertion
of test packets into a communication network
112 can allow parameters regarding the performance of the communication network
112 to be determined. Furthermore, it should be appreciated that the use of a number
of test packets allows the performance of a communication network
112 to be determined with greater confidence than if a single test packet, or relatively
small number of test packets are sent. However, it should also be appreciated that
the number of test packets in total or that are marked with a particular quality of
service level should be limited so that any terms regarding use of the communication
network
112, and in particular regarding performance guaranteed by a service level agreement
at different levels of use, are complied with.
[0043] It should also be appreciated that the present invention may be used in connection
with determinations regarding the marking of data packets with quality of service
level requests. For example, where a client must pay a premium to the operator of
the communication network
112 in connection with packets that are marked with an expedited quality of service level,
the use of test packets to determine actual service levels being delivered by the
communication network
112 may be used to determine whether a lower quality of service level marking will be
sufficient. For instance, in connection with a stream of data that requires delivery
of associated data packets with a delay across the communication network
112 of 50 milliseconds or less, it may be necessary to mark the packets belonging to
the data stream with an expedited level of service request when traffic on the communication
network
112 is relatively heavy. However, at times when traffic on the communication network
112 is relatively light, data packets may be delivered within the required 50 millisecond
period without requiring the use of an expedited quality of service level.
[0044] With reference now to
Fig. 7, the operation of a system
100 in connection with the determination of actual service levels and the marking of
packets with requests for expedited service is illustrated. Initially, at step
700, a sequence of test packets marked with a first or minimal requested quality of service
level (for example, a "best effort" service level) are sent across the communication
network
112 from the first router
116 to the second router
136. At step
704, a determination is made as to whether the transit time for the test packets marked
with a first quality of service level is less than a predetermined amount (t
1). The transit time may be determined using any of the methods described above. If
the transit time is found to be less than the predetermined amount, data packets may
be sent across the communication network
112 marked with the first quality of service level request (step
708).
[0045] If the transit time for the test packets marked with the first quality of service
level is not less than the first predetermined time, a sequence of test packets marked
with an expedited quality of service level are sent from the first router 116 across
the communication network
112 (step
712). At step
716, a determination is made as to whether the transit time for the test packets belonging
to the second sequence is less than a predetermined amount (t
2). The threshold time period t
2 to which the second sequence of test packets is compared may be the same as the threshold
time t
1 used in connection with the first sequence of test packets. In accordance with another
embodiment of the present invention, the threshold period of time t
2 used in connection with the test packets marked with an expedited quality of service
level may be different, for example a shorter period of time or a time period specified
as a guaranteed delivery time by a service level agreement may be used. If the transmit
time is less than the threshold period of time, data packets marked with the expedited
quality of service level request may be sent across the communication network
112 (step
720). If the transit time for the test packets marked with the expedited quality of service
level is not less than the threshold period of time t
2, an indication that the service level agreement has been violated may be generated
(step
724).
[0046] The foregoing discussion of the invention has been presented for purposes of illustration
and description. Further, the description is not intended to limit the invention to
the form disclosed herein. Consequently, variations and modifications commensurate
with the above teachings, within the skill and knowledge of the relevant art, are
within the scope of the present invention. The embodiments described hereinabove are
further intended to explain the best mode presently known of practicing the invention
and to enable others skilled in the art to utilize the invention in such or other
embodiments with various modifications required by their particular application or
use of the invention. It is intended that the appended claims be construed to include
the alternative embodiments to the extent permitted by the prior art.