Scalable real-time quality of service monitoring and analysis of service dependent subscriber satisfaction in IP networks
First Claim
1. A method of monitoring quality of service (QoS) for an identified subscriber in a packet data network, the method comprising the steps of:
- installing a monitor in the network, the monitor being in communication with inbound and outbound packets;
selecting a subset of all subscribers in the network to be currently monitored, said subset being representative of the identified subscriber;
accepting a plurality of data packets, at the monitor, each of said data packets having a header that identifies source and destination subscriber addresses, identifies a communication protocol, and identifies and application;
preprocessing the accepted packets to identify packets from the subset of currently monitored subscribers, strip off header information from the identified packets, and store the header information in a shared memory;
utilizing a hashing function to create a microflow record that includes QoS statistics for a plurality of data packet streams, each stream of data packets being associated with a different application being utilized by subscribers in the network;
creating a userflow record that includes aggregate QoS statistics for all applications being utilized by the identified subscriber;
providing the preprocessed header information from each identified data packet to an application-dependent statistical calculation function corresponding to the application identified in each header;
calculating QoS statistics for the identified application utilizing the corresponding application-dependent statistical calculation function;
updating the QoS statistics in the microflow record for the identified application; and
updating the aggregate QoS statistics in the userflow record for the identified subscriber.
1 Assignment
0 Petitions
Accused Products
Abstract
A method a system of identifying and determining degradation of the quality of service (QoS) perceived by a subscriber in a network such as the Internet. Traffic of individual applications of the subscriber and aggregate traffic of a subscriber are monitored, captured, and processed to produce QoS statistics. End-to-end QoS metrics are provided for TCP connections based on the observation of packet flows at a single monitoring point. The QoS metrics include, for example, packet loss internally and externally to the monitoring point, detection of stalled periods and estimation of path delay.
-
Citations
16 Claims
-
1. A method of monitoring quality of service (QoS) for an identified subscriber in a packet data network, the method comprising the steps of:
-
installing a monitor in the network, the monitor being in communication with inbound and outbound packets;
selecting a subset of all subscribers in the network to be currently monitored, said subset being representative of the identified subscriber;
accepting a plurality of data packets, at the monitor, each of said data packets having a header that identifies source and destination subscriber addresses, identifies a communication protocol, and identifies and application;
preprocessing the accepted packets to identify packets from the subset of currently monitored subscribers, strip off header information from the identified packets, and store the header information in a shared memory;
utilizing a hashing function to create a microflow record that includes QoS statistics for a plurality of data packet streams, each stream of data packets being associated with a different application being utilized by subscribers in the network;
creating a userflow record that includes aggregate QoS statistics for all applications being utilized by the identified subscriber;
providing the preprocessed header information from each identified data packet to an application-dependent statistical calculation function corresponding to the application identified in each header;
calculating QoS statistics for the identified application utilizing the corresponding application-dependent statistical calculation function;
updating the QoS statistics in the microflow record for the identified application; and
updating the aggregate QoS statistics in the userflow record for the identified subscriber. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
shifting a subscriber Internet Protocol (IP) address to produce a shifted subscriber IP address; and
comparing said shifted subscriber IP address with a value proportional to a tuning parameter.
-
-
3. The method of claim 1, wherein the step of installing the monitor in the network includes installing a passive network interface in the network, said interface including a first probe at an internal aggregation point, and a second probe at a border router.
-
4. The method of claim 1 wherein the step of updating the aggregate QoS statistics in the userflow record includes determining a source of QoS degradation for the identified subscriber based upon the QoS statistics in the userflow record.
-
5. The method of claim 1 wherein said microflow record stores values for a subscriber Internet Protocol (IP) address, a destination IP address, a subscriber port, and a destination port for each application data packet stream.
-
6. The method of claim 1 wherein the step of selecting a subset of subscribers to be monitored includes the steps of:
-
keeping track of when subscriber Transaction Control Protocol (TCP) connections are established; and
selecting for the subset, subscribers with TCP connections that have been alive for a sufficient time to settle down.
-
-
7. The method of claim 1 wherein the step of calculating QoS statistics for the identified application utilizing the corresponding application-dependent statistical calculation function includes calculating, for Transaction Control Protocol (TCP) applications, an internal packet loss and an external packet loss at the monitoring point.
-
8. The method of claim 1 wherein the step of calculating QoS statistics for the identified application utilizing the corresponding application-dependent statistical calculation function includes calculating, for streaming and real-time applications, a delay variation and a packet loss between the monitoring point and an end-host.
-
9. The method of claim 1 wherein the step of calculating QoS statistics for the identified application utilizing the corresponding application-dependent statistical calculation function includes calculating, for Transaction Control Protocol (TCP) applications, stalled periods utilizing only TCP connections that always have a packet waiting to be sent.
-
10. The method of claim 1 wherein the step of calculating QoS statistics for the identified application utilizing the corresponding application-dependent statistical calculation function includes performing a Throughput Efficiency Analysis (TEA) to detect whether the network can provide the throughput promised for the identified subscriber in an associated Service Level Agreement (SLA).
-
11. The method of claim 10 wherein the step of performing a TEA analysis includes the steps of:
-
detecting the arrival of a TCP packet through a TCP connection;
determining whether the TCP connection is of the type that always has a packet waiting to be sent;
if so, determining whether the elapsed time since the TCP connection was last logged is greater than a predetermined time period;
if so, determining from the identified subscriber'"'"'s userflow record, whether the identified subscriber has been logged during the predetermined time period; and
if so, calculating the identified subscriber'"'"'s total throughput based upon the information in the identified subscriber'"'"'s userflow record, and taking into account all applications utilized by the identified subscriber during the predetermined time period.
-
-
12. A system for monitoring quality of service (QoS) for an identified subscriber in a packet data network, the system comprising:
-
a monitor in the network in communication with inbound and outbound packets, said monitor including;
prefiltering means for accepting a plurality of data packets associated with a selected subset of all subscribers in the network, said subset being representative of the identified subscriber; and
preprocessing means for identifying packets from the subset of currently monitored subscribers, stripping off header information from identified packets, and storing the header information, wherein the header information identifies source and destination subscriber addresses, identifies a communication protocol, and identifies an application;
a shared memory for storing the header information;
a microflow record created from the stored header information that includes QoS statistics for a plurality of data packet streams, each stream of data packets being associated with a different application being utilized by subscribers in the network;
a userflow record created from the stored header information that includes aggregate QoS statistics for all applications being utilized by the identified subscriber;
at least one application-dependent statistical calculation function, each calculation function corresponding to a different application identified in the packet headers, said calculation function calculating QoS statistics for the identified application;
means for updating the QoS statistics in the microflow record for the identified application; and
means for updating the aggregate QoS statistics in the userflow record for the identified subscriber. - View Dependent Claims (13, 14, 15, 16)
means for keeping track of when subscriber Transaction Control Protocol (TCP) connections are established; and
means for selecting for the subset, subscribers with TCP connections that have been alive for a sufficient time to settle down.
-
-
16. The system of claim 12 wherein the at least one application-dependent statistical calculation function includes a Throughput Efficiency Analysis (TEA) that determines whether the network can provide the throughput promised for the identified subscriber in an associated Service Level Agreement (SLA).
Specification