[go: up one dir, main page]

WO2002033893A2 - Method and apparatus for communicating data within measurement traffic - Google Patents

Method and apparatus for communicating data within measurement traffic Download PDF

Info

Publication number
WO2002033893A2
WO2002033893A2 PCT/US2001/032309 US0132309W WO0233893A2 WO 2002033893 A2 WO2002033893 A2 WO 2002033893A2 US 0132309 W US0132309 W US 0132309W WO 0233893 A2 WO0233893 A2 WO 0233893A2
Authority
WO
WIPO (PCT)
Prior art keywords
measurement
packet
paths
receiver
statistics
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2001/032309
Other languages
French (fr)
Other versions
WO2002033893A3 (en
Inventor
Wayne Allen Feick
Sean P. Finn
Mansour J. Karam
Michael A. Lloyd
Herbert S. Madan
James G. Mcguire
Jose-Miguel Pulido Villaverde
Omar C. Baldonado
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
RouteScience Technologies Inc
Original Assignee
RouteScience Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/903,423 external-priority patent/US7363367B2/en
Priority claimed from US09/903,441 external-priority patent/US7080161B2/en
Priority claimed from US09/923,924 external-priority patent/US7406539B2/en
Priority claimed from US09/960,623 external-priority patent/US7349994B2/en
Application filed by RouteScience Technologies Inc filed Critical RouteScience Technologies Inc
Priority to AU2002211775A priority Critical patent/AU2002211775A1/en
Priority to US10/070,339 priority patent/US7756032B2/en
Publication of WO2002033893A2 publication Critical patent/WO2002033893A2/en
Publication of WO2002033893A3 publication Critical patent/WO2002033893A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5025Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Definitions

  • This invention relates to the field of networking.
  • the invention relates to communicating data within measurement traffic.
  • Ping uses ICMP packets to measure reachability and round trip delay from a source host to a remote host.
  • Traceroute detects common reachability problems such as routing loops and network black holes by sending ICMP packets from a source host to a destination host, and by receiving ICMP responses from intermediate routers along the path between the source host and the remote host.
  • Each intermediate router in the path decrements the TTL value stored in the header of an ICMP packet by one; when the TTL field expires (reaches the value zero) in a router, the router does not forward the packet towards the destination host. Instead, it returns the ICMP to the source host responding with a Time Exceeded response.
  • the source host is able to receive an ICMP response from all the routers in the path.
  • Traceroute also computes the round trip time of each ICMP packet, hence being able to determine the round trip delay between the source host and intermediate routers.
  • Pathchar measures congestion of a path by estimating performance characteristics of each node along a path from a source to a destination.
  • Pathchar also leverages the ICMP protocol's Time Exceeded response to packets whose TTL has expired. By sending a series of UDP packets of various sizes to each hop, pathchar uses knowledge about earlier nodes and the round trip time distribution to this node to assess incremental bandwidth, latency, loss, and queue characteristics across the link connected to this node.
  • IP Performance Metrics IP Performance Metrics
  • the IPPM working group has specified a general framework for measuring performance characteristics of a path, including specifications for clock synchronization and for size, number and inter-transmission time of measurement packets.
  • the IPPM working group has also specified specific performance metrics for one-way delay, one-way inter- packet delay variation, and one-way loss, among others.
  • the goal of the IPPM measurement framework is to allow service providers and other network providers to develop and operate and inter-operable measurement infrastructure, for performance and billing purposes, among other purposes. However, even if this measurement infrastructure is in place, a way to communicate measurements and performance characteristics of measured paths to appropriate points of the network where decisions based on those performance characteristics can be made, is needed. In addition, this communication should be efficient, i.e., it should minimize the amount of bandwidth consumed.
  • the invention includes methods and apparatuses for communicating data within measurement traffic. Some embodiments of the invention will consist of a sender of measurement packets. Some embodiments of the invention will consist of a receiver of measurement packets. Some embodiments of the invention will consist of both a sender and a receiver of measurement packets. In some embodiments of the invention, measurement packets will traverse one or more paths traversing at least a portion of an internetwork.
  • the measurement packet will include information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet.
  • the measurement packet sizes and times between measurement packets will simulate the traffic pattern of one or more applications such as — by way of a non-limiting example — voice and video.
  • measurement statistics may be computed that are at least partly recomputed with the arrival of each measurement packet. This computation may include at least one of a moving average, an average based on the Robbins-Moro estimator, a window-based average, and a bucket-based average.
  • the measurement packets will contain data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
  • the measurement statistics may include one or more of delay, jitter and loss.
  • Some embodiments of the invention will contain clocks synchronized by GPS, IRIG, NTP or NIST. Some other embodiments will use unsynchronized clocks and will adjust for clock skew and drift by performing computations on the measurement data.
  • paths will be selected based at least in part on at least one of: one or more of the measurement statistics from the measurement packet and one or more of the computed statistics.
  • FIG. 1 shows some possible embodiments of devices that are communicating with each other, for example sending and receiving measurement packets.
  • Fig. 2 shows one specific detailed embodiment of two devices, where each device is sending and receiving measurement packets as well as selecting a subset of paths.
  • Fig. 3 shows an embodiment with more than two devices that are sending and receiving measurement packets to obtain measurements of performance characteristics of paths and to communicate measurements statistics about those paths.
  • a measurement packet is a packet sent by a sender over an internetwork that includes information necessary for the receiver of the packet to compute measurements of the performance characteristics of the path the packet has traversed over that internetwork.
  • the information includes information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet; and data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
  • the information included in the measurement packet to compute measurements includes at least one of a timestamp of a sending time of the packet and a number to identify the packet by itself and/ to identify the relative position of the measurement packet in a sequence of measurement packets,
  • the measurement packet is implemented using the following data structure: struct MeasurementHeader ⁇
  • the mGeneration field is used to detect when a sending process has started a new session. This field is used by the receiver to determine that a discontinuity in the stream's sequence numbers is the result of a sender restart, rather than due to large network latencies, duplicate packets or dropped packets.
  • sequence number msequence field is incremented by one each time a packet is sent. This approach allows the receiver to deduce lost and duplicate packets by identifying missing and duplicate sequence numbers.
  • the mSendTime field contains the time at which the packet was sent, represented as microseconds since January 1, 1970 UTC. This field is compared to the time the packet arrived at the receiver to determine the delay between the sender and the receiver.
  • a plurality of one or more packets are sent over a path continuously.
  • the continuous stream of packet is denoted as a measurement stream.
  • Each measurement stream is uniquely identified by the source and destination IP addresses.
  • the sender maintains one socket descriptor for each source IP address it sends from and writes the destination IP address into the mDstAddr field.
  • the source IP address is returned by the recv() system call and the destination address is retrieved from the measurement packet.
  • data will be included, including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
  • Some embodiments of the invention will add a single type of data to each packet. Some embodiments of the invention will use a complex data, including subpackets.
  • Some embodiments of the invention use subpackets that include a single byte subpacket type identifier, followed by a 2-byte length field (including the length of the type and length fields) and finally including the data that is to be sent.
  • One embodiment will store all values in network byte order. Other byte orders will be apparent to those skilled in the art.
  • the following data structure definition describes some embodiments.
  • One embodiment of this invention will include data describing a momentary snapshot of the measurement statistics for a given path between a sender and a receiver.
  • this data will include one or more of the following information: the source and destination IP addresses that define the path, a measurement packet size for which the statistics have been calculated as well as computed measurement statistics that are at least partly responsive to delay; computed measurement statistics that are at least partly responsive to jitter and computed measurement statistics that are at least partly responsive to packet loss.
  • these statistics will be in units of microseconds expressed as 64-bit floating-point quantities and transmitted in a standard network byte order.
  • the following data structure will store the computed statistics:
  • TunnelStatsSubPacket public SubPacket ⁇ / * * * * The time that this statistic snapshot was taken ( in
  • Some embodiments of this invention include the time at which the statistics were computed such that those statistics are sent over multiple paths for improved reliability and to take advantage of one path having less delay than another.
  • One embodiment at the receiving end is able to compare the computation times of received statistics to place them in their original temporal order, regardless of their relative arrival times over the paths.
  • Some embodiments of this invention will send computed statistics specific to the paths that are part of the plurality of one or more paths that are between the specific sender and receiver. Other embodiments will send additional computed statistics for paths that are not one of the plurality of one or more paths that are between the specific sender and receiver.
  • Some embodiments of this invention will include network information concerning network topology including but not limited to information retrieved from routers such as in-bound or out-bound link utilization, inbound or outbound link bandwidth and/or CPU utilization. Other network information determined from routers and other network devices will be apparent to someone skilled in the art.
  • Some embodiments of this invention will also include control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
  • control data will instruct a receiver to alter its configuration, including but not limited to zero or more of the following examples: instructing a receiver to initiate sending a plurality of one or more measurement packets, change one or more of the measurement packet sizes, inter-measurement packet transmission times and mix of packet sizes, and stop sending one or more of the plurality of measurement packets.
  • this control information will include notification of measurement devices that have joined or left the network.
  • the measurement packets will be encrypted by the sender and decrypted by the receiver. Some of these embodiments will use IPSec.
  • the encryption and decryption will be done by an external device using IPSec.
  • the measurement packets will be digitally signed.
  • a generic communication channel will be used by a sender and a receiver to communicate data between them.
  • Measurements are used to compute performance characteristics of the paths traversed by the measurement packets.
  • the measurements can either be computed from the measurement packets themselves, or extracted from the arbitrary data carried by the measurement packets.
  • the measurements of performance characteristics include at least one or more of one-way measurements and round-trip measurements.
  • the performance characteristics include at least one or more reachability, delay, jitter, loss, available bandwidth, and total bandwidth. Other performance characteristics will be apparent to those skilled in the art.
  • delay measurements are computed as the interval of time from the moment the measurement packet is sent by the sender to the moment of time the measurement packet is received by the receiver.
  • the sending time is carried by the packet, and it is measured by the clock the sender refers to.
  • the receiving time is measured by a clock that the receiver refers to, which may or may not be synchronized with the sender's clock.
  • the clock of the sender and the clock of the receiver are synchronized.
  • a plurality of one or more precise clock inputs such as GPS, NTP, IRIG and NIST will be used.
  • Some embodiments of this invention will use the same clock as an input to more than one of the plurality of one or more senders and receivers.
  • the clock of the sender and the clock of the receiver are the same.
  • the clock of the sender and the clock of the receiver are not synchronized, and mechanisms based on the measurement data are used to correct the clock skew and clock drift, the mechanisms including using minimum delay across multiple measurement samples, and using a mechanism to track the minimum delay over time.
  • Some embodiments of the invention will use the minimum round-trip delay between the devices to place a lower bound on clock skew. Some embodiments of the invention will use the lower bound of multiple paths between the sender and receiver to further reduce the lower bound.
  • Some embodiments of the invention will correct for clock drift by tracking the relative clock skew between the sender and receiver over time and adjusting for the slope of the drift.
  • jitter measurements also known as inter-measurement packet delay variations
  • inter-measurement packet delay variations are computed as the difference in delay on consecutive, successfully received packets.
  • jitter can also be computed as the difference between the instantaneous delay of a packet, and the average delay of all the measurement packets previously received.
  • loss measurements are computed by assigning a timeout value to each measurement packet that indicates the instant of time after which the measurement packet will be declared lost, if the packet has not arrived by that time.
  • the timeout value of a measurement packet can be computed with the transmission time of a previously received packet, an estimation of the inter-transmission time between measurement packet, and an estimation of the transmission delay of the measurement packet.
  • the inter- transmission time can be estimated if the receiver knows about the scheduling pattern of transmission of measurement packets.
  • the transmission delay of packet can be estimated based on delay and jitter performance characteristics.
  • Performance characteristics of a path could be the measurement themselves, or statistics on those measurements.
  • a dynamic algorithm is used to updates the statistics associated with a path with every new measurement obtained with the arrival of every new packet over the path.
  • the algorithm computes statistics over the performance characteristics of the path.
  • the statistics include averages, deviations, and variances. Other statistics will be apparent to those skilled in the art.
  • averages can be computed using a plurality of one or more techniques including a moving average, an average based on the Robbins-Moro estimator, a window-based average or a bucket- based average. Other techniques to compute averages will be apparent to those skilled in the art.
  • the moving average is an exponentially moving average computed using a Robbins-Moro estimator. The Robbins-Moro stochastic approximation estimator finds a solution of the equation:
  • E f(t) - x] where E is the expectation, f(t) a function and x the estimator.
  • is the weight of the estimator, and determines the amount contributed to the average by the function.
  • is constant.
  • is a dynamic value, whose value depends on the last value of the function f according to the formula:
  • K is a constant that also determines the importance of the last value of/ with respect to the current value of the estimator x.
  • d is the exponentially moving average of delay
  • ... is the last delay sample
  • is the weight of the moving average
  • average jitter can be computed using an exponentially moving average as follows,
  • v is the exponentially moving average of jitter
  • ⁇ d - m ⁇ is the last sample of jitter
  • is the weight of the average
  • average jitter can be computed using an exponentially moving average as follows,
  • v is the exponentially moving average of jitter
  • ⁇ m - m '( is the last sample of jitter, in is the last delay sample
  • m ' is the previous delay sample
  • is the weight of the average
  • delay and jitter averages can be combined into a single value as follows:
  • d is the average delay
  • v is the average jitter and is a constant.
  • is determined based on the notion of forgiveness against a single packet loss.
  • the forgiveness period is the interval of time between the time the packet loss occurs and the time the average loss is forgiven.
  • the forgiveness period can be either defined in units of time, or in number of packets if the rate of the monitoring flow is known. That is, the forgiveness period will end after n consecutive packets have been received after the loss, when these packets have been transmitted at a certain rate.
  • the value of the exponentially moving average after receiving the n packets is needed before ⁇ can be determined, and this value is known as the forgiveness threshold.
  • the forgiveness threshold is chosen arbitrarily.
  • the forgiveness threshold takes the value:
  • This value is half of the value of the estimator after the singe loss occurs, and thus we call it the half-life threshold. Similarly, we also call the forgiveness period under this threshold the half-life period.
  • the advantage of using a forgiveness threshold greater than zero is that issues related to host-dependent floating-point representations reaching that value are avoided.
  • is computed by comparing the value of the estimator after n consecutive packet arrivals since the loss with the half- life threshold:
  • is computed as:
  • exp ((In '/?) / n)
  • two thresholds are defined, an upper threshold and a lower threshold.
  • the path traversed by the measurement packets from the sender to the receiver is such that the path is at least partly implemented with at least one of a GRE tunnel, an IPSEC tunnel and IPonlP tunnel.
  • Other path implementations using tunnel will be apparent for those skilled in the art.
  • the path traversed by the measurement packets from the sender to the receiver is implemented with a virtual circuit, including a frame relay PVC, an ATM PVC or MPLS.
  • a virtual circuit including a frame relay PVC, an ATM PVC or MPLS.
  • Other path implementations using virtual circuits will be apparent for those skilled in the art.
  • Other path implementations will be apparent to those skilled in the art.
  • the internetwork is implemented by a plurality of one or more subnetworks, including a plurality of one or more VPNs, a plurality of one or more BGP autonomous systems, a plurality of one or more local area networks, a plurality of one or metropolitan area networks, and a plurality of one or morewide area networks.
  • the internetwork is implemented by an overlay network.
  • Other internetwork implementations will be apparent to those skilled in the art. Packet Sizes and Transmission Times
  • the measurement packets are of varying sizes, including 64, 256, 512, 1024, 1500 bytes.
  • the size of the measurement packets is specified with an external API.
  • the measurement packets are of a fixed size.
  • the measurement packet sizes and times between measurement packets simulate the traffic pattern of a plurality of one or more applications
  • traffic patterns correspond to voice applications, where the packets re of small size, e.g., 30 bytes, and the inter- transmission time between consecutive packets is constant, e.g., 10 ms. These examples do not limit the possible size values and inter-transmission time values.
  • traffic patterns correspond to video applications, where the packets size is the largest permitted to be transmitted by an internetwork without being fragmented, and the inter- transmission time between consecutive packets varies depending on the spatial and temporal complexity of the video content being transmitted, the compression scheme, the encoding control scheme.
  • traffic patterns correspond to the plurality of applications observed in an internetwork, including at least one or more of HTTP transactions, FTP downloads, IRC communications, NNTP exchanges, streaming video sessions, VoIP sessions, videoconferencing sessions and e-commerce transactions.
  • HTTP transactions including at least one or more of HTTP transactions, FTP downloads, IRC communications, NNTP exchanges, streaming video sessions, VoIP sessions, videoconferencing sessions and e-commerce transactions.
  • IRC communications including at least one or more of HTTP transactions, FTP downloads, IRC communications, NNTP exchanges, streaming video sessions, VoIP sessions, videoconferencing sessions and e-commerce transactions.
  • the inter-measurement packet transmission times are of varying length. In some embodiments of the invention, the inter-measurement packet transmission times are of fixed length.
  • the inter-measurement packet transmission times specified with an external API is specified with an external API.
  • the length of the inter- measurement packet transmission times is randomized according to a distribution. In some embodiments of the invention, this distribution is based at least in part on a uniform distribution. In some embodiments of the invention, this distribution is based at least in part on an exponential distribution. In some embodiments of the invention, this distribution is based at least in part on a geometric distribution. Other distributions will be apparent to those skilled in the art.
  • the length of the inter- measurement packet transmission times is provided by a table.
  • the length of the inter- measurement packet transmission times is controlled by a scheduler.
  • the scheduler uses a priority queue, keyed on desired send time. Other mechanisms to specify the inter-measurement packet transmission time will be apparent to those skilled in the art.
  • the subset of the plurality of paths is selected based at least in part on at least one of: one or more of the measurement statistics from the measurement packet and one or more of the computed statistics.
  • the selection of the subset of the plurality of paths is based at least partly on the position of paths in a ranking.
  • the ranking is at least partly based on one or more of the measurement statistics included as data in the measurement packet.
  • the ranking is at least partly based on the computed statistics of the path.
  • the ranking is implemented by using a comparison function to compare the paths, and by ordering the paths in a decreasing order.
  • the ranking is implemented by using a comparison function to compare the paths, and by ordering the paths in an increasing order. Other ranking techniques will be apparent to those skilled in the art.
  • the ranking is based on a single score associated to each path.
  • this score is denoted Magic Score (MS), and it is computed as follows:
  • ML is the Magic Latency, a component of the MS obtained using delay and jitter respectively calculated with statistics
  • MF is the Magic scaling Factor that multiplies the value of ML, and is computed based on loss statistics.
  • M is a constant that takes several values, including 4, for example.
  • MS can be seen as a scaled-up version of ML
  • the scaling factor MF is a function of p- hat and delta, a constant. As p-hat not only reflects loss but also detects large delay spikes before they happen, p-hat can be seen as an indicator of the departure of the path from a "normal mode" operation, and thus the scaling factor is only applied when there are loss or spikes.
  • the goal of MF is to differentiate between paths that have very similar delay characteristics, but with one having losses and the other not having them.
  • ML is used as a delay indicator, given that jitter is accounted as an increase in delay.
  • the selection of a subset of paths is based on applying at least one or more thresholds to at least one of more of the statistics.
  • a single threshold is used, and computed as a certain percentage of the highest score of the paths. In some embodiments of the invention, the threshold is determined by subtracting a fixed quantity to the highest score of the paths.
  • the number of paths in the subset of paths is fixed. In some embodiments of the invention, this fixed number of paths N out of M paths is determined such that the probability of having loss in (M - N) paths simultaneously is less than a certain threshold. In some embodiments of the invention, this probability is a binomial, with the assumption that all paths have the same probability of loss.
  • the selection of the subset of the plurality of paths is based at least partly on a probability associated with each path.
  • the probability of each path is at least partly based on one or more of the measurement statistics included as data in the measurement packet.
  • the probabilities of each path are equal.
  • the selection of the subset of the plurality of paths is based at least partly on the cost of the path.
  • the selection of the subset of the plurality of paths is based at least partly on the amount of bandwidth consumed over a period of time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Traffic Control Systems (AREA)

Abstract

Methods and apparatuses for communicating data within measurement traffic are described. Embodiments that send, receive and both send and receive are described. Some embodiments are described that compute statistics based at least partly on measurement traffic. Some embodiments are described that communicate computed statistics within measurement traffic. Some embodiments are described that rank and select paths based at least in part on computed statistics.

Description

METHOD AND APPARATUS FOR COMMUNICATING DATA WITHIN MEASUREMENT TRAFFIC
BACKGROUND OF THE INVENTION
Field of the Invention
This invention relates to the field of networking. In particular, the invention relates to communicating data within measurement traffic.
Description of the Related Art
Internetworks such as the Internet provide a best-effort service and do not reserve resources for a path. Hence, performance characteristics of the path such as delay, jitter and loss can change over time due to routing changes, congestion, and lack of connectivity, and therefore it is important to being able to measure them. There are several tools available to measure the performance characteristics of a path:
Ping uses ICMP packets to measure reachability and round trip delay from a source host to a remote host.
Traceroute detects common reachability problems such as routing loops and network black holes by sending ICMP packets from a source host to a destination host, and by receiving ICMP responses from intermediate routers along the path between the source host and the remote host. Each intermediate router in the path decrements the TTL value stored in the header of an ICMP packet by one; when the TTL field expires (reaches the value zero) in a router, the router does not forward the packet towards the destination host. Instead, it returns the ICMP to the source host responding with a Time Exceeded response. By starting with an initial TTL value of 1 and gradually incrementing the TTL field in successive ICMP packets, the source host is able to receive an ICMP response from all the routers in the path. Traceroute also computes the round trip time of each ICMP packet, hence being able to determine the round trip delay between the source host and intermediate routers. Pathchar measures congestion of a path by estimating performance characteristics of each node along a path from a source to a destination. Pathchar also leverages the ICMP protocol's Time Exceeded response to packets whose TTL has expired. By sending a series of UDP packets of various sizes to each hop, pathchar uses knowledge about earlier nodes and the round trip time distribution to this node to assess incremental bandwidth, latency, loss, and queue characteristics across the link connected to this node.
These tools are mainly used for troubleshooting purposes. A more formal attempt to measure performance characteristics of Internet paths is being developed by the IP Performance Metrics (IPPM) working group of the Internet
Engineering Task Force (IETF). The IPPM working group has specified a general framework for measuring performance characteristics of a path, including specifications for clock synchronization and for size, number and inter-transmission time of measurement packets. The IPPM working group has also specified specific performance metrics for one-way delay, one-way inter- packet delay variation, and one-way loss, among others. The goal of the IPPM measurement framework is to allow service providers and other network providers to develop and operate and inter-operable measurement infrastructure, for performance and billing purposes, among other purposes. However, even if this measurement infrastructure is in place, a way to communicate measurements and performance characteristics of measured paths to appropriate points of the network where decisions based on those performance characteristics can be made, is needed. In addition, this communication should be efficient, i.e., it should minimize the amount of bandwidth consumed.
SUMMARY OF THE INVENTION
The invention includes methods and apparatuses for communicating data within measurement traffic. Some embodiments of the invention will consist of a sender of measurement packets. Some embodiments of the invention will consist of a receiver of measurement packets. Some embodiments of the invention will consist of both a sender and a receiver of measurement packets. In some embodiments of the invention, measurement packets will traverse one or more paths traversing at least a portion of an internetwork.
In some embodiments of the invention, the measurement packet will include information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet. In some embodiments, the measurement packet sizes and times between measurement packets will simulate the traffic pattern of one or more applications such as — by way of a non-limiting example — voice and video. In an embodiment that includes a receiver of measurement packets, measurement statistics may be computed that are at least partly recomputed with the arrival of each measurement packet. This computation may include at least one of a moving average, an average based on the Robbins-Moro estimator, a window-based average, and a bucket-based average. In some embodiments of the invention, the measurement packets will contain data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver. In an embodiment wherein the data includes measurement statistics, the measurement statistics may include one or more of delay, jitter and loss.
Some embodiments of the invention will contain clocks synchronized by GPS, IRIG, NTP or NIST. Some other embodiments will use unsynchronized clocks and will adjust for clock skew and drift by performing computations on the measurement data.
In some embodiments of the invention, paths will be selected based at least in part on at least one of: one or more of the measurement statistics from the measurement packet and one or more of the computed statistics. These and other embodiments are described further herein.
BRIEF DESCRIPTION OF THE FIGURES Fig. 1 shows some possible embodiments of devices that are communicating with each other, for example sending and receiving measurement packets.
Fig. 2 shows one specific detailed embodiment of two devices, where each device is sending and receiving measurement packets as well as selecting a subset of paths.
Fig. 3 shows an embodiment with more than two devices that are sending and receiving measurement packets to obtain measurements of performance characteristics of paths and to communicate measurements statistics about those paths.
DETAILED DESCRIPTION
Measurement Packets
A measurement packet is a packet sent by a sender over an internetwork that includes information necessary for the receiver of the packet to compute measurements of the performance characteristics of the path the packet has traversed over that internetwork. The information includes information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet; and data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
In some embodiments of the invention, the information included in the measurement packet to compute measurements includes at least one of a timestamp of a sending time of the packet and a number to identify the packet by itself and/ to identify the relative position of the measurement packet in a sequence of measurement packets,
In some embodiments of the invention, the measurement packet is implemented using the following data structure: struct MeasurementHeader {
/**
* A generation number. This value represents when the
* sender began sending. This value is a standard Unix
* timestamp that seconds since Jan 1, 1970 UTC.
** I uint32 t mGeneration;
* A sequence number for the packet. This increments each
* time a packet is sent and rolls over when 16 bits is
* exceeded. **/ uintl6_t mSequence;
/**
* The IP address the packet is sent to. **/ uint32_t mDstAddr;
/**
* The send timestamp for this packet. **/ uint64_t mSendTime;
} ;
The mGeneration field is used to detect when a sending process has started a new session. This field is used by the receiver to determine that a discontinuity in the stream's sequence numbers is the result of a sender restart, rather than due to large network latencies, duplicate packets or dropped packets.
The sequence number msequence field is incremented by one each time a packet is sent. This approach allows the receiver to deduce lost and duplicate packets by identifying missing and duplicate sequence numbers.
The mSendTime field contains the time at which the packet was sent, represented as microseconds since January 1, 1970 UTC. This field is compared to the time the packet arrived at the receiver to determine the delay between the sender and the receiver.
In some embodiments of the invention, a plurality of one or more packets are sent over a path continuously. In some embodiments of the invention, the continuous stream of packet is denoted as a measurement stream.
Each measurement stream is uniquely identified by the source and destination IP addresses. The sender maintains one socket descriptor for each source IP address it sends from and writes the destination IP address into the mDstAddr field. On the receiver side, the source IP address is returned by the recv() system call and the destination address is retrieved from the measurement packet.
Data Included in the Measurement Packets
In measurement packets that contain sufficient space, data will be included, including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
Some embodiments of the invention will add a single type of data to each packet. Some embodiments of the invention will use a complex data, including subpackets.
Some embodiments of the invention use subpackets that include a single byte subpacket type identifier, followed by a 2-byte length field (including the length of the type and length fields) and finally including the data that is to be sent. One embodiment will store all values in network byte order. Other byte orders will be apparent to those skilled in the art. The following data structure definition describes some embodiments.
class SubPacket { /*
* The type identifier for this subpacket .
*/ uint8_t mType ; /*
* The length of this subpacket, in network byte order.
*/ uintl6_t ml-ength; };
One embodiment of this invention will include data describing a momentary snapshot of the measurement statistics for a given path between a sender and a receiver. In some embodiments of this invention, this data will include one or more of the following information: the source and destination IP addresses that define the path, a measurement packet size for which the statistics have been calculated as well as computed measurement statistics that are at least partly responsive to delay; computed measurement statistics that are at least partly responsive to jitter and computed measurement statistics that are at least partly responsive to packet loss.
In one embodiment of this invention, these statistics will be in units of microseconds expressed as 64-bit floating-point quantities and transmitted in a standard network byte order. In one embodiment of this invention, the following data structure will store the computed statistics:
class TunnelStatsSubPacket : public SubPacket { / * * * The time that this statistic snapshot was taken ( in
* microseconds since 1970) . **/ uint64_t mTimestamp;
/**
* The source IP address of the tunnel these statistics apply
* to.
** / uint32 t mSrcAddr; j * *
* The destination IP address of the tunnel these statistics
* apply to . **/ uint32_t mDstAddr;
/**
* The size of measurement packet that these statistics apply
* to. A size of 0 indicates that these statistics apply to
* all packet sizes.
** / uintl6__t mPktSize;
/* ..
* The average delay in microseconds .
** / double mDelay;
**
* The average jitter in microseconds.
double mJitter;
* The percentage of packets that have been lost, in the range * o to l.
double m oss;
Some embodiments of this invention include the time at which the statistics were computed such that those statistics are sent over multiple paths for improved reliability and to take advantage of one path having less delay than another. One embodiment at the receiving end is able to compare the computation times of received statistics to place them in their original temporal order, regardless of their relative arrival times over the paths.
Some embodiments of this invention will send computed statistics specific to the paths that are part of the plurality of one or more paths that are between the specific sender and receiver. Other embodiments will send additional computed statistics for paths that are not one of the plurality of one or more paths that are between the specific sender and receiver.
Some embodiments of this invention will include network information concerning network topology including but not limited to information retrieved from routers such as in-bound or out-bound link utilization, inbound or outbound link bandwidth and/or CPU utilization. Other network information determined from routers and other network devices will be apparent to someone skilled in the art.
Some embodiments of this invention will also include control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
In some embodiments of the invention, the control data will instruct a receiver to alter its configuration, including but not limited to zero or more of the following examples: instructing a receiver to initiate sending a plurality of one or more measurement packets, change one or more of the measurement packet sizes, inter-measurement packet transmission times and mix of packet sizes, and stop sending one or more of the plurality of measurement packets.
In some embodiments of the invention, this control information will include notification of measurement devices that have joined or left the network.
In many embodiments of the invention, the measurement packets will be encrypted by the sender and decrypted by the receiver. Some of these embodiments will use IPSec.
In some embodiments of the invention, the encryption and decryption will be done by an external device using IPSec.
Other encryption and decryption options will be apparent to one skilled in the art. In some embodiments of the invention, the measurement packets will be digitally signed.
In some embodiments of the invention, a generic communication channel will be used by a sender and a receiver to communicate data between them.
Performance Characteristics of a Path
Measurements are used to compute performance characteristics of the paths traversed by the measurement packets. The measurements can either be computed from the measurement packets themselves, or extracted from the arbitrary data carried by the measurement packets. The measurements of performance characteristics include at least one or more of one-way measurements and round-trip measurements. The performance characteristics include at least one or more reachability, delay, jitter, loss, available bandwidth, and total bandwidth. Other performance characteristics will be apparent to those skilled in the art.
In some embodiments of the invention, delay measurements are computed as the interval of time from the moment the measurement packet is sent by the sender to the moment of time the measurement packet is received by the receiver. The sending time is carried by the packet, and it is measured by the clock the sender refers to. The receiving time is measured by a clock that the receiver refers to, which may or may not be synchronized with the sender's clock.
In some embodiments of the invention, the clock of the sender and the clock of the receiver are synchronized. A plurality of one or more precise clock inputs such as GPS, NTP, IRIG and NIST will be used. Some embodiments of this invention will use the same clock as an input to more than one of the plurality of one or more senders and receivers. In some embodiments of the invention, the clock of the sender and the clock of the receiver are the same. In some embodiments of the invention, the clock of the sender and the clock of the receiver are not synchronized, and mechanisms based on the measurement data are used to correct the clock skew and clock drift, the mechanisms including using minimum delay across multiple measurement samples, and using a mechanism to track the minimum delay over time.
Some embodiments of the invention will use the minimum round-trip delay between the devices to place a lower bound on clock skew. Some embodiments of the invention will use the lower bound of multiple paths between the sender and receiver to further reduce the lower bound.
Some embodiments of the invention will correct for clock drift by tracking the relative clock skew between the sender and receiver over time and adjusting for the slope of the drift.
In some embodiments of the invention, jitter measurements, also known as inter-measurement packet delay variations, are computed as the difference in delay on consecutive, successfully received packets.
In some embodiments of the invention, jitter can also be computed as the difference between the instantaneous delay of a packet, and the average delay of all the measurement packets previously received.
In some embodiments of the invention, loss measurements are computed by assigning a timeout value to each measurement packet that indicates the instant of time after which the measurement packet will be declared lost, if the packet has not arrived by that time. In some embodiments of the invention, the timeout value of a measurement packet can be computed with the transmission time of a previously received packet, an estimation of the inter-transmission time between measurement packet, and an estimation of the transmission delay of the measurement packet. In some embodiments of the invention, the inter- transmission time can be estimated if the receiver knows about the scheduling pattern of transmission of measurement packets. In some embodiments of the invention, the transmission delay of packet can be estimated based on delay and jitter performance characteristics.
Performance characteristics of a path could be the measurement themselves, or statistics on those measurements. In the statistics case, a dynamic algorithm is used to updates the statistics associated with a path with every new measurement obtained with the arrival of every new packet over the path. In some embodiments of the invention, the algorithm computes statistics over the performance characteristics of the path.
In some embodiments of the invention, the statistics include averages, deviations, and variances. Other statistics will be apparent to those skilled in the art. In some embodiments of the invention, averages can be computed using a plurality of one or more techniques including a moving average, an average based on the Robbins-Moro estimator, a window-based average or a bucket- based average. Other techniques to compute averages will be apparent to those skilled in the art. In some embodiments of the invention, the moving average is an exponentially moving average computed using a Robbins-Moro estimator. The Robbins-Moro stochastic approximation estimator finds a solution of the equation:
E f(t) - x] = where E is the expectation, f(t) a function and x the estimator. The general form of the solution is: x(t) = x(t-l) + alpha * [f(t) - x(t - 1) J = ■ (1 - alpha) * x(t-l) + alpha *f(t) or, with alpha - (1 - μ)> x - μ * x + (1 - μ) *f
μ is the weight of the estimator, and determines the amount contributed to the average by the function.. In some embodiments of the invention, μ is constant. In some embodiments of the invention, μ is a dynamic value, whose value depends on the last value of the function f according to the formula:
μ = e A-f/ K)
where K is a constant that also determines the importance of the last value of/ with respect to the current value of the estimator x.
In some embodiments of the invention, average delay can be computed using an exponentially moving average as follows, d = μ * d + (1 - μ) * m
where d is the exponentially moving average of delay, ... is the last delay sample, and μ is the weight of the moving average.
In some embodiments of the invention, average jitter can be computed using an exponentially moving average as follows,
v = μ * v + (l - μ) * \d - m\
where v is the exponentially moving average of jitter, \d - m\ is the last sample of jitter, and μ is the weight of the average.
In some embodiments of the invention, average jitter can be computed using an exponentially moving average as follows,
v ~ μ * v + (7 - μ) * \m - m '\
Where v is the exponentially moving average of jitter, \m - m '( is the last sample of jitter, in is the last delay sample, m ' is the previous delay sample, and μ is the weight of the average.
In some embodiments of the invention, delay and jitter averages can be combined into a single value as follows:
A d + M * v
Where d is the average delay, v is the average jitter and is a constant.
In some embodiments of the invention, average loss can be computed using an exponentially moving average as follows, p-hat = μ * p-hat + (J - μ) * p where p-hat is the moving average of the loss, p = {0 if packet is received, 1 is the packet is declared lost}, and μ is the weight of the exponentially moving average.
In some embodiments of the invention, μ is determined based on the notion of forgiveness against a single packet loss. The forgiveness period is the interval of time between the time the packet loss occurs and the time the average loss is forgiven. The forgiveness period can be either defined in units of time, or in number of packets if the rate of the monitoring flow is known. That is, the forgiveness period will end after n consecutive packets have been received after the loss, when these packets have been transmitted at a certain rate.
The value of the exponentially moving average after receiving the n packets is needed before μ can be determined, and this value is known as the forgiveness threshold. In some embodiments of the invention, the forgiveness threshold is chosen arbitrarily. In some embodiments of the invention, the forgiveness threshold takes the value:
VA μ)
This value is half of the value of the estimator after the singe loss occurs, and thus we call it the half-life threshold. Similarly, we also call the forgiveness period under this threshold the half-life period. The advantage of using a forgiveness threshold greater than zero is that issues related to host-dependent floating-point representations reaching that value are avoided.
In some embodiments of the invention, μ is computed by comparing the value of the estimator after n consecutive packet arrivals since the loss with the half- life threshold:
p-hat = (1- μ) * μ A n < ' ( J - μ)
Given that n is known because is determined by the value of the half-life period and the transmission rate, μ is computed as:
μ = exp ((In '/?) / n) In some embodiments of the invention, two thresholds are defined, an upper threshold and a lower threshold. When the value of p-hat exceeds the upper threshold, the loss is not forgiven until enough measurement packets are received consecutively so that the value of p-hat gets below the lower threshold.
Other mechanisms to compute μ will be apparent to for those skilled in the art.
Path Description
In some embodiments of the invention, the path traversed by the measurement packets from the sender to the receiver is such that the path is at least partly implemented with at least one of a GRE tunnel, an IPSEC tunnel and IPonlP tunnel. Other path implementations using tunnel will be apparent for those skilled in the art.
In some embodiments of the invention, the path traversed by the measurement packets from the sender to the receiver is implemented with a virtual circuit, including a frame relay PVC, an ATM PVC or MPLS. Other path implementations using virtual circuits will be apparent for those skilled in the art. Other path implementations will be apparent to those skilled in the art.
Internetwork Description
In some embodiments of the invention, the internetwork is implemented by a plurality of one or more subnetworks, including a plurality of one or more VPNs, a plurality of one or more BGP autonomous systems, a plurality of one or more local area networks, a plurality of one or metropolitan area networks, and a plurality of one or morewide area networks.
In some embodiments of the invention, the internetwork is implemented by an overlay network. Other internetwork implementations will be apparent to those skilled in the art. Packet Sizes and Transmission Times
In some embodiments of the invention, the measurement packets are of varying sizes, including 64, 256, 512, 1024, 1500 bytes.
In some embodiments of the invention, the size of the measurement packets is specified with an external API.
In some embodiments of the invention, the measurement packets are of a fixed size.
In some embodiments of the invention, the measurement packet sizes and times between measurement packets simulate the traffic pattern of a plurality of one or more applications
In some embodiments of the invention, traffic patterns correspond to voice applications, where the packets re of small size, e.g., 30 bytes, and the inter- transmission time between consecutive packets is constant, e.g., 10 ms. These examples do not limit the possible size values and inter-transmission time values.
In some embodiments of the invention, traffic patterns correspond to video applications, where the packets size is the largest permitted to be transmitted by an internetwork without being fragmented, and the inter- transmission time between consecutive packets varies depending on the spatial and temporal complexity of the video content being transmitted, the compression scheme, the encoding control scheme.
In some embodiments of the invention, traffic patterns correspond to the plurality of applications observed in an internetwork, including at least one or more of HTTP transactions, FTP downloads, IRC communications, NNTP exchanges, streaming video sessions, VoIP sessions, videoconferencing sessions and e-commerce transactions. Other types of applications will be apparent to those skilled in the art.
In some embodiments of the invention, the inter-measurement packet transmission times are of varying length. In some embodiments of the invention, the inter-measurement packet transmission times are of fixed length.
In some embodiments of the invention, the inter-measurement packet transmission times specified with an external API. In some embodiments of the invention, the length of the inter- measurement packet transmission times is randomized according to a distribution. In some embodiments of the invention, this distribution is based at least in part on a uniform distribution. In some embodiments of the invention, this distribution is based at least in part on an exponential distribution. In some embodiments of the invention, this distribution is based at least in part on a geometric distribution. Other distributions will be apparent to those skilled in the art.
In some embodiments of the invention, the length of the inter- measurement packet transmission times is provided by a table.
In some embodiments of the invention, the length of the inter- measurement packet transmission times is controlled by a scheduler. In some embodiments of the invention, the scheduler uses a priority queue, keyed on desired send time. Other mechanisms to specify the inter-measurement packet transmission time will be apparent to those skilled in the art.
Other packet sizes and transmission times will be apparent to those skilled in the art.
Path Selection
It is possible that multiple alternative paths between a sender and a receiver are available through an internetwork at any given moment. Performance characteristics of each of these paths can be used to select a subset of the paths. In some embodiments of the invention, the subset of the plurality of paths is selected based at least in part on at least one of: one or more of the measurement statistics from the measurement packet and one or more of the computed statistics.
In some embodiments of the invention, the selection of the subset of the plurality of paths is based at least partly on the position of paths in a ranking. In some embodiments of the invention, the ranking is at least partly based on one or more of the measurement statistics included as data in the measurement packet. In some embodiments of the invention the ranking is at least partly based on the computed statistics of the path. In some embodiments of the invention the ranking is implemented by using a comparison function to compare the paths, and by ordering the paths in a decreasing order. In some embodiments of the invention the ranking is implemented by using a comparison function to compare the paths, and by ordering the paths in an increasing order. Other ranking techniques will be apparent to those skilled in the art.
In some embodiments of the invention, the ranking is based on a single score associated to each path. In some embodiments of the invention, this score is denoted Magic Score (MS), and it is computed as follows:
MS = ML * MF
ML = d + M * v
MF = delta * p-hat + 1
where ML is the Magic Latency, a component of the MS obtained using delay and jitter respectively calculated with statistics; and MF is the Magic scaling Factor that multiplies the value of ML, and is computed based on loss statistics. M is a constant that takes several values, including 4, for example. MS can be seen as a scaled-up version of ML, and the scaling factor MF is a function of p- hat and delta, a constant. As p-hat not only reflects loss but also detects large delay spikes before they happen, p-hat can be seen as an indicator of the departure of the path from a "normal mode" operation, and thus the scaling factor is only applied when there are loss or spikes. The goal of MF is to differentiate between paths that have very similar delay characteristics, but with one having losses and the other not having them.
In some embodiments of the invention, ML is used as a delay indicator, given that jitter is accounted as an increase in delay. In contrast, MS, although a scaled version of ML, cannot be used to indicate delay, except when MF = 1 (p- hat = 0), which leads to MS = ML. That means the value of MS is useful not by itself but to compare it with the MSs of other tunnels. In some embodiments of the invention, loss statistics can be used as a discriminator instead of a scaling factor. That is, p-hat can eliminate paths experimenting loss. Then, the remaining paths can be selected using MS = ML.
In some embodiments of the invention, the selection of a subset of paths is based on applying at least one or more thresholds to at least one of more of the statistics.
In some embodiments of the invention, a single threshold is used, and computed as a certain percentage of the highest score of the paths. In some embodiments of the invention, the threshold is determined by subtracting a fixed quantity to the highest score of the paths.
In some embodiments of the invention, the number of paths in the subset of paths is fixed. In some embodiments of the invention, this fixed number of paths N out of M paths is determined such that the probability of having loss in (M - N) paths simultaneously is less than a certain threshold. In some embodiments of the invention, this probability is a binomial, with the assumption that all paths have the same probability of loss.
In some embodiments of the invention, the selection of the subset of the plurality of paths is based at least partly on a probability associated with each path. In some embodiments of the invention, the probability of each path is at least partly based on one or more of the measurement statistics included as data in the measurement packet.
In some embodiments of the invention, the probabilities of each path are equal.
In some embodiments of the invention, the selection of the subset of the plurality of paths is based at least partly on the cost of the path.
In some embodiments of the invention, the selection of the subset of the plurality of paths is based at least partly on the amount of bandwidth consumed over a period of time.
Other possibilities to compute path probabilities will be apparent to those skilled in the art. Other mechanisms to select a subset of the paths will be apparent to those skilled in the art.

Claims

CLAIMSWhat is claimed is:
1. A method for communicating data within measurement traffic, the method comprising: sending a plurality of one or more measurement packets over a plurality of one or more paths, each of the plurality of one or more paths traversing at least a portion of an internetwork, and each of the plurality of one or more measurement packets including: information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the ' path of the measurement packet, data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
2. The method of claim 1, wherein the measurements of performance characteristics include one-way measurements.
3. The method of claim 1, wherein the data includes measurement statistics.
4. A method for communicating data within measurement traffic, the method comprising: receiving a plurality of one or more measurement packets over a plurality of one or more paths, each of the plurality of one or more paths traversing at least a portion of an internetwork, and each of the plurality of one or more measurement packets including: information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet, data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
5. The method of claim 4, wherein the measurements of performance characteristics include one-way measurements.
6. The method of claim 4, wherein the data includes measurement statistics.
7. The method of claim 4, further comprising analyzing of the measurement packet based on a dynamic algorithm, the dynamic algorithm computing computed statistics on one or more of the measurements of performance characteristics of at least a portion of the path of the measurement packet.
8. The method of claim 7, wherein a subset of the plurality of one or more paths is selected based at least in part on at least one of: one or more of the measurement statistics from the measurement packet and one or more of the computed statistics.
9. A method for communicating data within measurement traffic, the method comprising: sending a first plurality of one or more measurement packets over a first plurality of one or more paths, each of the first plurality of one or more paths traversing at least a portion of an internetwork, and each of the first plurality of one or more measurement packets including: information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet, data including one or more of measurement statistics, a generic communication channel, network information, and control data directing
9? a receiver of the measurement packet to change one or more configuration parameters of the receiver, receiving a second plurality of one or more measurement packets over a second plurality of one or more paths, each of the second plurality of one or more paths traversing at least a portion of an internetwork, and each of the second plurality of one or more measurement packets including: information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet, and data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
10. The method of claim 9, wherein the measurements of performance characteristics include one-way measurements.
1 1. The method of claim 9, wherein the data includes measurement statistics.
12. The method of claim 11 , wherein the measurement statistics are at least partly responsive to jitter.
13. The method of claim 1 1 , wherein the measurement statistics are at least partly responsive to delay.
14. The method of claim 1 1 , wherein the measurement statistics are at least partly responsive to loss.
15. The method of claim 9, wherein the data includes control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
16. The method of claim 9, wherein the data includes a generic communication channel.
17. The method of claim 9, wherein the data includes network information.
18. The method of claim 9, wherein the data is embedded in multiple measurement packets that are sent over multiple paths for improved communication performance, including redundancy and shorter transmission time.
19. The method of claim 9, wherein the measurement packets are at least one of encrypted and digitally signed.
20. The method of claim 9, wherein a clock referred to by a sender of the measurement packet and a clock referred to by the receiver of the measurement packet are synchronized, the synchronization methods including at least one or more of GPS, NTP, IRIG, and NIST.
21. The method of claim 9, further comprising analyzing of the measurement packet based on a dynamic algorithm, the dynamic algorithm computing computed statistics on one or more of the measurements of performance characteristics of at least a portion of the path of the measurement packet.
22. The method of claim 21, wherein the algorithm computes averages of the measurements, including at least one of a moving average, an average based on the Robbins-Moro estimator, a window-based average, and a bucket-based average.
23. The method of claim 21, wherein the algorithm is at least partly specified through an external API.
24. The method of claim 21 , wherein the computed statistics are at least partly recomputed upon the arrival of every measurement packet.
25. The method of claim 21 , wherein the computed statistics are at least partly on measurement statistics from the measurement packet.
26. The method of claim 21. wherein a subset of the plurality of one or more paths is selected based at least in part on at least one of: one or more of the measurement statistics from the measurement packet and one or more of the computed statistics.
27. The method of 26, wherein the selection of the subset of the plurality of one or more paths is based at least partly on the position of paths in a ranking.
28. The method of 27, wherein the ranking is at least partly based on one or more of the measurement statistics included as data in the measurement packet.
29. The method of 26, wherein the selection of the subset of the plurality of one or more paths is based at least partly on a probability associated with each path of the plurality of one or more paths.
30. The method of claim 29, wherein the probability of each path of the plurality of one or more paths is at least partly based on one or more of the measurement statistics included as data in the measurement packet.
31. The method of 26, wherein the selection of the subset of the plurality of one of more paths is based at least partly on applying one or more thresholds to at least one of the measurements statistics included as data in the measurement packet.
32. The method of claim 9, wherein measurement packets at least partly rely on UDP.
33. The method of claim 9, wherein at least one of the plurality of one or more paths is at least partly implemented with at least one of a GRE tunnel and an IPSEC tunnel.
34. The method of claim 9, wherein at least one of the plurality of one or more paths is at least partly implemented with at least one of a frame relay PVC, an ATM PVC, and MPLS.
35. The method of claim 9, wherein the internetwork is a plurality of one or more subnetworks, including at least one of a plurality of one or more VPNs; an overlay network; a plurality of one or more BGP autonomous systems; a plurality of one or more local area networks; a plurality of one or more metropolitan area networks; and a plurality of one or more or wide area networks.
36. The method of claim 9, wherein the measurement packet sizes and times between measurement packets simulate the traffic pattern of a plurality of one or more applications.
37. The method of claim 36, wherein the plurality of one of more applications includes voice applications.
38. The method of claim 36, wherein the plurality of one of more applications includes video applications.
39. A networking system, comprising: a plurality of one or more devices communicating at least a first plurality of one or more measurement packets over a first plurality of one or more paths, each of the first plurality of one or more paths traversing at least a portion of an internetwork, and each of the first plurality of one or more measurement packets including: information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet, and data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
40. The networking system of claim 39, wherein the plurality of one or more devices includes a first sub-plurality of one or more devices, wherein the first sub-plurality of one or more devices sends one or more of the first plurality of one or more measurement packets.
41. The networking system of claim 40, wherein the plurality of one or more devices includes a second sub-plurality of one or more devices, wherein the second sub-plurality of one or more devices receives one or more of a second plurality of one or more measurement packets over a second plurality of one or more paths, each of the second plurality of one or more paths traversing at least a portion of the internetwork, each of the second plurality of one or more measurement packets including: information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet, data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
42. The networking system of claim 41, wherein at least one of the first plurality of one or more measurement packets and at least one of the second plurality of one or more measurement packets are the same packet.
43. The networking system of claim 39, wherein at least one of the plurality of one or more devices receives one or more of the first plurality of one or more measurement packets.
44. The networking system of claim 39, wherein the plurality of one or more devices includes a first sub-plurality of one or more devices, wherein the first sub-plurality of one or more devices receives one or more of a second plurality of one or more measurement packets over a second plurality of one or more paths and sends one or more of the first plurality of one or more measurement packets, each of the second plurality of one or more paths traversing at least a portion of the internetwork, each of the second plurality of one or more measurement packets including: information for a receiver of the measurement packet to compute measurements of performance characteristics of at least a portion of the path of the measurement packet, data including one or more of measurement statistics, a generic communication channel, network information, and control data directing a receiver of the measurement packet to change one or more configuration parameters of the receiver.
45. The networking system of claim 44, wherein at least one of the first plurality of one or more measurement packets and at least one of the second plurality of one or more measurement packets are the same packet.
46. The networking system of claim 44, wherein the plurality of one or more devices includes a second sub-plurality of one or more devices, wherein the second sub-plurality of one or more devices sends one or more of the first plurality of one or more measurement packets.
47. The networking system of claim 46, wherein at least one of the first plurality of one or more measurement packets and at least one of the second plurality of one or more measurement packets are the same packet.
48. The networking system of claim 44, wherein the plurality of one or more devices includes a second sub-plurality of one or more devices, wherein the second sub-plurality of one or more devices receives one or more of the second plurality of one or more measurement packets.
49. The networking system of claim 48, wherein at least one of the first plurality of one or more measurement packets and at least one of the second plurality of one or more measurement packets are the same packet.
PCT/US2001/032309 2000-10-17 2001-10-17 Method and apparatus for communicating data within measurement traffic Ceased WO2002033893A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2002211775A AU2002211775A1 (en) 2000-10-17 2001-10-17 Method and apparatus for communicating data within measurement traffic
US10/070,339 US7756032B2 (en) 2000-10-17 2001-10-17 Method and apparatus for communicating data within measurement traffic

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US60/241,450 2000-10-17
US27520601P 2001-03-12 2001-03-12
US60/275,206 2001-03-12
US09/903,441 2001-07-10
US09/903,423 US7363367B2 (en) 2000-10-17 2001-07-10 Systems and methods for robust, real-time measurement of network performance
US09/903,423 2001-07-10
US09/903,441 US7080161B2 (en) 2000-10-17 2001-07-10 Routing information exchange
US09/923,924 US7406539B2 (en) 2000-10-17 2001-08-06 Method and apparatus for performance and cost optimization in an internetwork
US09/923,924 2001-08-06
US09/960,623 US7349994B2 (en) 2000-10-17 2001-09-20 Method and apparatus for coordinating routing parameters via a back-channel communication medium
US09/960,623 2001-09-20
US24145001P 2001-10-17 2001-10-17

Publications (2)

Publication Number Publication Date
WO2002033893A2 true WO2002033893A2 (en) 2002-04-25
WO2002033893A3 WO2002033893A3 (en) 2003-01-23

Family

ID=27559306

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/032309 Ceased WO2002033893A2 (en) 2000-10-17 2001-10-17 Method and apparatus for communicating data within measurement traffic

Country Status (1)

Country Link
WO (1) WO2002033893A2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006029400A2 (en) 2004-09-09 2006-03-16 Avaya Technology Corp. Methods of and systems for remote outbound control
EP1657851A1 (en) * 2004-11-16 2006-05-17 Agilent Technologies, Inc. - a Delaware corporation - Apparatus and method for routing packets in a network
EP1734690A1 (en) * 2005-06-17 2006-12-20 Alcatel Performance monitoring of frame transmission in a data network utilising OAM protocols
EP2114034A1 (en) * 2008-04-28 2009-11-04 British Telecommunications Public Limited Company Communications network
EP1807952A4 (en) * 2004-10-28 2010-01-06 Telcordia Licensing Company Ll TELE-ESTIMATING RETURN SPEED TIME IN A DATA NETWORK
CN103560930A (en) * 2013-10-31 2014-02-05 国家电网公司 Network performance online automatic monitoring system
CN104935448A (en) * 2014-03-18 2015-09-23 重庆康拜因科技有限公司 Background management system of LTE network transmission comprehensive test instrument
WO2016077801A3 (en) * 2014-11-14 2016-07-28 Bigleaf Networks, Llc Circuit-aware load balancing with dynamic quality of service

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0528075A1 (en) * 1991-08-19 1993-02-24 ALCATEL BELL Naamloze Vennootschap Performance measurement device for a telecommunication path and method used therein
US5668800A (en) * 1994-05-02 1997-09-16 International Business Machines Corporation Path testing in communications networks
US5563875A (en) * 1995-07-10 1996-10-08 International Business Machines Corporation Wrap-around route testing in packet communications networks
US5822520A (en) * 1995-12-26 1998-10-13 Sun Microsystems, Inc. Method and apparatus for building network test packets
US5793976A (en) * 1996-04-01 1998-08-11 Gte Laboratories Incorporated Method and apparatus for performance monitoring in electronic communications networks
US6370163B1 (en) * 1998-03-11 2002-04-09 Siemens Information And Communications Network, Inc. Apparatus and method for speech transport with adaptive packet size

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006029400A2 (en) 2004-09-09 2006-03-16 Avaya Technology Corp. Methods of and systems for remote outbound control
EP1790127A4 (en) * 2004-09-09 2010-08-04 Avaya Inc METHODS AND SYSTEMS FOR REMOTE START CONTROL
EP1807952A4 (en) * 2004-10-28 2010-01-06 Telcordia Licensing Company Ll TELE-ESTIMATING RETURN SPEED TIME IN A DATA NETWORK
EP1657851A1 (en) * 2004-11-16 2006-05-17 Agilent Technologies, Inc. - a Delaware corporation - Apparatus and method for routing packets in a network
US7724681B2 (en) 2004-11-16 2010-05-25 Agilent Technologies, Inc. Apparatus and method for routing packets in a network
US7733794B2 (en) 2005-06-17 2010-06-08 Alcatel Lucent Performance monitoring of frame transmission in data network OAM protocols
EP1734690A1 (en) * 2005-06-17 2006-12-20 Alcatel Performance monitoring of frame transmission in a data network utilising OAM protocols
EP2114034A1 (en) * 2008-04-28 2009-11-04 British Telecommunications Public Limited Company Communications network
WO2009133345A1 (en) * 2008-04-28 2009-11-05 British Telecommunications Public Limited Company Communications network
CN102017523B (en) * 2008-04-28 2014-01-15 英国电讯有限公司 Communications network
US8948211B2 (en) 2008-04-28 2015-02-03 British Telecommunications Public Limited Company Performance evaluation of a communications network using jitter parameter values
CN103560930A (en) * 2013-10-31 2014-02-05 国家电网公司 Network performance online automatic monitoring system
CN104935448A (en) * 2014-03-18 2015-09-23 重庆康拜因科技有限公司 Background management system of LTE network transmission comprehensive test instrument
WO2016077801A3 (en) * 2014-11-14 2016-07-28 Bigleaf Networks, Llc Circuit-aware load balancing with dynamic quality of service
US10178008B2 (en) 2014-11-14 2019-01-08 Bigleaf Networks, Inc. Circuit-aware load balancing with dynamic quality of service

Also Published As

Publication number Publication date
WO2002033893A3 (en) 2003-01-23

Similar Documents

Publication Publication Date Title
US7756032B2 (en) Method and apparatus for communicating data within measurement traffic
EP3970322B1 (en) Rate-optimized congestion management
EP1350363B1 (en) Method and apparatus for the assessment and optimization of network traffic
US7304951B2 (en) Methods and systems for rate-based flow control between a sender and a receiver
US7336613B2 (en) Method and apparatus for the assessment and optimization of network traffic
US7773536B2 (en) Method and apparatus for the assessment and optimization of network traffic
KR101459252B1 (en) Traceroute_delay diagnostic command
US9503384B1 (en) Estimating network capacity and network bandwidth without server instrumentation
US20030161321A1 (en) Method and apparatus for characterizing the quality of a network path
Abdelsalam et al. TCP wave: a new reliable transport approach for future internet
EP3005622A1 (en) Performance measurement of a link of a packet-switched communication network
Fracchia et al. WiSE: Best-path selection in wireless multihoming environments
Hu et al. Improving TCP startup performance using active measurements: algorithm and evaluation
Jain et al. The TCP bandwidth-delay product revisited: network buffering, cross traffic, and socket buffer auto-sizing
Turkovic et al. P4qos: Qos-based packet processing with p4
WO2002033893A2 (en) Method and apparatus for communicating data within measurement traffic
WO2006056880B1 (en) Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgentcp (square wave form) tcp friendly san
Sisalem et al. The direct adjustment algorithm: A TCP-friendly adaptation scheme
Jaiswal et al. A comparative performance analysis of TCP congestion control algorithm: elastic TCP vs. e-Elastic TCP
Abut Through the diversity of bandwidth-related metrics, estimation techniques and tools: an overview
Martignon et al. Loss differentiation schemes for TCP over wireless networks
Turrubiartes et al. Analysis of IP network path capacity estimation using a variable packet size method
Baganal-Krishna et al. RPM: Reverse Path Congestion Marking on P4 Programmable Switches
Cociglio et al. RFC 9506: Explicit Host-to-Network Flow Measurements Techniques
Pudlewski et al. MQCC: Maximum Queue Congestion Control for Multipath Networks with Blockage

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US US US US US US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007115840

Country of ref document: US

Ref document number: 10070339

Country of ref document: US

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWP Wipo information: published in national office

Ref document number: 10070339

Country of ref document: US