draft-ietf-ippm-2679-bis-05.txt | rfc7679.txt | |||
---|---|---|---|---|
Network Working Group G. Almes | Internet Engineering Task Force (IETF) G. Almes | |||
Internet-Draft Texas A&M | Request for Comments: 7679 Texas A&M | |||
Obsoletes: 2679 (if approved) S. Kalidindi | STD: 81 S. Kalidindi | |||
Intended status: Standards Track Ixia | Obsoletes: 2679 Ixia | |||
Expires: February 21, 2016 M. Zekauskas | Category: Standards Track M. Zekauskas | |||
Internet2 | ISSN: 2070-1721 Internet2 | |||
A. Morton, Ed. | A. Morton, Ed. | |||
AT&T Labs | AT&T Labs | |||
August 20, 2015 | January 2016 | |||
A One-Way Delay Metric for IPPM | A One-Way Delay Metric for IP Performance Metrics (IPPM) | |||
draft-ietf-ippm-2679-bis-05 | ||||
Abstract | Abstract | |||
This memo (RFC 2679 bis) defines a metric for one-way delay of | This memo defines a metric for one-way delay of packets across | |||
packets across Internet paths. It builds on notions introduced and | Internet paths. It builds on notions introduced and discussed in the | |||
discussed in the IPPM Framework document, RFC 2330; the reader is | IP Performance Metrics (IPPM) Framework document, RFC 2330; the | |||
assumed to be familiar with that document. This memo makes RFC 2679 | reader is assumed to be familiar with that document. This memo makes | |||
obsolete. | RFC 2679 obsolete. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at http://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 5741. | ||||
This Internet-Draft will expire on February 21, 2016. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
http://www.rfc-editor.org/info/rfc7679. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Changes from RFC 2679 . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction ....................................................4 | |||
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.1. Motivation .................................................4 | |||
2.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . 6 | 2. General Issues regarding Time ...................................6 | |||
2.2. General Issues Regarding Time . . . . . . . . . . . . . . 7 | 3. A Singleton Definition for One-Way Delay ........................7 | |||
3. A Singleton Definition for One-way Delay . . . . . . . . . . 8 | 3.1. Metric Name ................................................7 | |||
3.1. Metric Name: . . . . . . . . . . . . . . . . . . . . . . 8 | 3.2. Metric Parameters ..........................................7 | |||
3.2. Metric Parameters: . . . . . . . . . . . . . . . . . . . 8 | 3.3. Metric Units ...............................................7 | |||
3.3. Metric Units: . . . . . . . . . . . . . . . . . . . . . . 8 | 3.4. Definition .................................................7 | |||
3.4. Definition: . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.5. Discussion .................................................8 | |||
3.5. Discussion: . . . . . . . . . . . . . . . . . . . . . . . 9 | 3.6. Methodologies ..............................................9 | |||
3.6. Methodologies: . . . . . . . . . . . . . . . . . . . . . 10 | 3.7. Errors and Uncertainties ..................................10 | |||
3.7. Errors and Uncertainties: . . . . . . . . . . . . . . . . 11 | 3.7.1. Errors or Uncertainties Related to Clocks ..........10 | |||
3.7.1. Errors or uncertainties related to Clocks . . . . . . 11 | 3.7.2. Errors or Uncertainties Related to Wire | |||
3.7.2. Errors or uncertainties related to Wire-time vs Host- | Time vs. Host Time .................................11 | |||
time . . . . . . . . . . . . . . . . . . . . . . . . 12 | 3.7.3. Calibration of Errors and Uncertainties ............12 | |||
3.7.3. Calibration . . . . . . . . . . . . . . . . . . . . . 13 | 3.8. Reporting the Metric ......................................14 | |||
3.8. Reporting the metric: . . . . . . . . . . . . . . . . . . 15 | 3.8.1. Type-P .............................................14 | |||
3.8.1. Type-P . . . . . . . . . . . . . . . . . . . . . . . 15 | 3.8.2. Loss Threshold .....................................15 | |||
3.8.2. Loss Threshold . . . . . . . . . . . . . . . . . . . 16 | 3.8.3. Calibration Results ................................15 | |||
3.8.3. Calibration Results . . . . . . . . . . . . . . . . . 16 | 3.8.4. Path ...............................................15 | |||
3.8.4. Path . . . . . . . . . . . . . . . . . . . . . . . . 16 | 4. A Definition for Samples of One-Way Delay ......................15 | |||
4. A Definition for Samples of One-way Delay . . . . . . . . . . 16 | 4.1. Metric Name ...............................................16 | |||
4.1. Metric Name: . . . . . . . . . . . . . . . . . . . . . . 17 | 4.2. Metric Parameters .........................................16 | |||
4.2. Metric Parameters: . . . . . . . . . . . . . . . . . . . 17 | 4.3. Metric Units ..............................................16 | |||
4.3. Metric Units: . . . . . . . . . . . . . . . . . . . . . . 17 | 4.4. Definition ................................................17 | |||
4.4. Definition: . . . . . . . . . . . . . . . . . . . . . . . 18 | 4.5. Discussion ................................................17 | |||
4.5. Discussion: . . . . . . . . . . . . . . . . . . . . . . . 18 | 4.6. Methodologies .............................................18 | |||
4.6. Methodologies: . . . . . . . . . . . . . . . . . . . . . 19 | 4.7. Errors and Uncertainties ..................................18 | |||
4.7. Errors and Uncertainties: . . . . . . . . . . . . . . . . 19 | 4.8. Reporting the Metric ......................................18 | |||
4.8. Reporting the metric: . . . . . . . . . . . . . . . . . . 19 | 5. Some Statistics Definitions for One-Way Delay ..................18 | |||
5. Some Statistics Definitions for One-way Delay . . . . . . . . 19 | 5.1. Type-P-One-way-Delay-Percentile ...........................19 | |||
5.1. Type-P-One-way-Delay-Percentile . . . . . . . . . . . . . 20 | 5.2. Type-P-One-way-Delay-Median ...............................19 | |||
5.2. Type-P-One-way-Delay-Median . . . . . . . . . . . . . . . 20 | 5.3. Type-P-One-way-Delay-Minimum ..............................20 | |||
5.3. Type-P-One-way-Delay-Minimum . . . . . . . . . . . . . . 21 | 5.4. Type-P-One-way-Delay-Inverse-Percentile ...................20 | |||
5.4. Type-P-One-way-Delay-Inverse-Percentile . . . . . . . . . 21 | 6. Security Considerations ........................................21 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | 7. Changes from RFC 2679 ..........................................22 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 8. References .....................................................24 | |||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 | 8.1. Normative References ......................................24 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 8.2. Informative References ....................................25 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 23 | Acknowledgements ..................................................26 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 24 | Authors' Addresses ................................................27 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | ||||
1. Changes from RFC 2679 | ||||
Note: This section's placement currently preserves minimal | ||||
differences between this memo and RFC 2679. The RFC Editor should | ||||
place this section in an appropriate place, and remove this note. | ||||
The following text constitutes RFC 2769 bis proposed for advancement | ||||
on the IETF Standards Track. This section tracks the changes from | ||||
[RFC2679]. | ||||
[RFC6808] provides the test plan and results supporting [RFC2679] | ||||
advancement along the standards track, according to the process in | ||||
[RFC6576]. The conclusions of [RFC6808] list four minor | ||||
modifications: | ||||
1. Section 6.2.3 of [RFC6808] asserts that the assumption of post- | ||||
processing to enforce a constant waiting time threshold is | ||||
compliant, and that the text of the RFC should be revised | ||||
slightly to include this point. The applicability of post- | ||||
processing was added in the last list item of section 3.6, below. | ||||
2. Section 6.5 of [RFC6808] indicates that Type-P-One-way-Delay- | ||||
Inverse-Percentile statistic has been ignored in both | ||||
implementations, so it is a candidate for removal or deprecation | ||||
in RFC2679bis (this small discrepancy does not affect candidacy | ||||
for advancement). This statistic was deprecated in section 5.4, | ||||
below. | ||||
3. The IETF has reached consensus on guidance for reporting metrics | ||||
in [RFC6703], and this memo should be referenced in RFC2679bis to | ||||
incorporate recent experience where appropriate. This reference | ||||
was added in the last list item of section 3.6, section 3.8, and | ||||
in section 5 below. | ||||
4. There is currently one erratum with status "Held for document | ||||
update" for [RFC2679], and this minor revision and additional | ||||
text was incorporated in RFC2679bis in section 5.1, below. | ||||
A number of updates to the [RFC2679] text have been implemented in | ||||
the text below, to reference key IPPM RFCs that were approved after | ||||
[RFC2679], and to address comments on the IPPM mailing list | ||||
describing current conditions and experience. | ||||
1. Near the end of section 2.1, update of a network example using | ||||
ATM and clarification of TCP's affect on queue occupation and | ||||
importance of one-way delay measurement. | ||||
2. Explicit inclusion of the maximum waiting time input parameter | ||||
in section 3.2 and 4.2, reflecting recognition of this parameter | ||||
in more recent RFCs and ITU-T Recommendation Y.1540. | ||||
3. Addition of reference to RFC6703 in the discussion of packet | ||||
life time and application timeouts in section 3.5. | ||||
4. Addition of reference to the default requirement (that packets | ||||
be standard-formed) from RFC2330 as a new list item in section | ||||
3.5. | ||||
5. GPS-based NTP experience replaces "to be tested" in section 3.5. | ||||
6. Replaced "precedence" with updated terminology (DS Field) in 3.6 | ||||
and 3.8.1 (with reference). | ||||
7. Added parenthetical guidance on minimizing interval between | ||||
timestamp placement to send time in section 3.6. | ||||
8. Section 3.7.2 notes that some current systems perform host time | ||||
stamping on the network interface hardware. | ||||
9. "instrument" replaced by the defined term "host" in sections | ||||
3.7.3 and 3.8.3. | ||||
10. Added reference to RFC 3432 Periodic sampling alongside Poisson | ||||
sampling in section 4, and also noting that a truncated Poisson | ||||
distribution may be needed with modern networks as described in | ||||
the IPPM Framework update, RFC7312. | ||||
11. Add reference to RFC 4737 Reordering metric in the related | ||||
discussion of section 4.6, Methodologies. | ||||
12. Formatting of Example in section 5.1 modified to match the | ||||
original (issue with conversion to XML in bis version). | ||||
13. Clarifying the conclusions on two related points on harm to | ||||
measurements (recognition of measurement traffic for unexpected | ||||
priority treatment and attacker traffic which emulates | ||||
measurement) in section 6, Security Considerations. | ||||
14. Expanded and updated the material on Privacy, and added cautions | ||||
on use of measurements for reconnaissance in section 6, Security | ||||
Considerations. | ||||
Section 5.4.4 of [RFC6390] suggests a common template for performance | ||||
metrics partially derived from previous IPPM and BMWG RFCs, but also | ||||
contains some new items. All of the [RFC6390] Normative points are | ||||
covered, but not quite in the same section names or orientation. | ||||
Several of the Informative points are covered. Maintaining the | ||||
familiar outline of IPPM literature has both value and minimizes | ||||
unnecessary differences between this revised RFC and current/future | ||||
IPPM RFCs. | ||||
The publication of RFC 6921 suggested an area where this memo might | ||||
need updating. Packet transfer on Faster-Than-Light (FTL) networks | ||||
could result in negative delays and packet reordering, however both | ||||
are covered as possibilities in the current text and no revisions are | ||||
deemed necessary (we also note that this is an April 1st RFC). | ||||
2. Introduction | 1. Introduction | |||
This memo defines a metric for one-way delay of packets across | This memo defines a metric for one-way delay of packets across | |||
Internet paths. It builds on notions introduced and discussed in the | Internet paths. It builds on notions introduced and discussed in the | |||
IPPM Framework document, [RFC2330]; the reader is assumed to be | IPPM Framework document, [RFC2330]; the reader is assumed to be | |||
familiar with that document, and its recent update [RFC7312]. | familiar with that document and its recent update [RFC7312]. | |||
This memo is intended to be parallel in structure to a companion | This memo is intended to be parallel in structure to a companion | |||
document for Packet Loss ("A One-way Packet Loss Metric for IPPM") | document for Packet Loss ("A One-way Packet Loss Metric for IPPM") | |||
[RFC2680]. | [RFC7680]. | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in [RFC2119]. Although | |||
Although [RFC2119] was written with protocols in mind, the key words | [RFC2119] was written with protocols in mind, the key words are used | |||
are used in this document for similar reasons. They are used to | in this document for similar reasons. They are used to ensure the | |||
ensure the results of measurements from two different implementations | results of measurements from two different implementations are | |||
are comparable, and to note instances when an implementation could | comparable and to note instances when an implementation could perturb | |||
perturb the network. | the network. | |||
The structure of the memo is as follows: | Whenever a technical term from the IPPM Framework document is first | |||
used in this memo, it will be tagged with a trailing asterisk. For | ||||
example, "term*" indicates that "term" is defined in the Framework | ||||
document. | ||||
+ A 'singleton' analytic metric, called Type-P-One-way-Delay, will be | The structure of the memo is as follows: | |||
introduced to measure a single observation of one-way delay. | ||||
+ Using this singleton metric, a 'sample', called Type-P-One-way- | o A 'singleton*' analytic metric, called Type-P-One-way-Delay, will | |||
Delay-Poisson-Stream, will be introduced to measure a sequence of | be introduced to measure a single observation of one-way delay. | |||
singleton delays sent at times taken from a Poisson process. | ||||
+ Using this sample, several 'statistics' of the sample will be | o Using this singleton metric, a 'sample*' called Type-P-One-way- | |||
defined and discussed. This progression from singleton to sample to | Delay-Poisson-Stream is introduced to measure a sequence of | |||
statistics, with clear separation among them, is important. | singleton delays sent at times taken from a Poisson process, | |||
defined in Section 11.1.1 of [RFC2330]. | ||||
Whenever a technical term from the IPPM Framework document is first | o Using this sample, several 'statistics*' of the sample will be | |||
used in this memo, it will be tagged with a trailing asterisk. For | defined and discussed. This progression from singleton to sample | |||
example, "term*" indicates that "term" is defined in the Framework. | to statistics, with clear separation among them, is important. | |||
2.1. Motivation | 1.1. Motivation | |||
One-way delay of a Type-P* packet from a source host* to a | Understanding one-way delay of a Type-P* packet from a source host* | |||
destination host is useful for several reasons: | to a destination host is useful for several reasons: | |||
+ Some applications do not perform well (or at all) if end-to-end | o Some applications do not perform well (or at all) if end-to-end | |||
delay between hosts is large relative to some threshold value. | delay between hosts is large relative to some threshold value. | |||
+ Erratic variation in delay makes it difficult (or impossible) to | o Erratic variation in delay makes it difficult (or impossible) to | |||
support many real-time applications. | support many real-time applications. | |||
+ The larger the value of delay, the more difficult it is for | o The larger the value of delay, the more difficult it is for | |||
transport-layer protocols to sustain high bandwidths. | transport-layer protocols to sustain high bandwidths. | |||
+ The minimum value of this metric provides an indication of the | o The minimum value of this metric provides an indication of the | |||
delay due only to propagation and transmission delay. | delay due only to propagation and transmission delay. | |||
+ The minimum value of this metric provides an indication of the | o The minimum value of this metric provides an indication of the | |||
delay that will likely be experienced when the path* traversed is | delay that will likely be experienced when the path* traversed is | |||
lightly loaded. | lightly loaded. | |||
+ Values of this metric above the minimum provide an indication of | o Values of this metric above the minimum provide an indication of | |||
the congestion present in the path. | the congestion present in the path. | |||
The measurement of one-way delay instead of round-trip delay is | The measurement of one-way delay instead of round-trip delay is | |||
motivated by the following factors: | motivated by the following factors: | |||
+ In today's Internet, the path from a source to a destination may be | o In today's Internet, the path from a source to a destination may | |||
different than the path from the destination back to the source | be different than the path from the destination back to the source | |||
("asymmetric paths"), such that different sequences of routers are | ("asymmetric paths"), such that different sequences of routers are | |||
used for the forward and reverse paths. Therefore round-trip | used for the forward and reverse paths. Therefore, round-trip | |||
measurements actually measure the performance of two distinct paths | measurements actually measure the performance of two distinct | |||
together. Measuring each path independently highlights the | paths together. Measuring each path independently highlights the | |||
performance difference between the two paths which may traverse | performance difference between the two paths that may traverse | |||
different Internet service providers, and even radically different | different Internet service providers and even radically different | |||
types of networks (for example, research versus commodity networks, | types of networks (for example, research versus commodity | |||
or networks with asymmetric link capacities, or wireless vs. wireline | networks, or networks with asymmetric link capacities, or wireless | |||
access). | versus wireline access). | |||
+ Even when the two paths are symmetric, they may have radically | o Even when the two paths are symmetric, they may have radically | |||
different performance characteristics due to asymmetric queueing. | different performance characteristics due to asymmetric queuing. | |||
+ Performance of an application may depend mostly on the performance | o Performance of an application may depend mostly on the performance | |||
in one direction. For example, a TCP-based communication will | in one direction. For example, a TCP-based communication will | |||
experience reduced throughput if congestion occurs in one direction | experience reduced throughput if congestion occurs in one | |||
of its communication. Trouble shooting may be simplified if the | direction of its communication. Troubleshooting may be simplified | |||
congested direction of TCP transmission can be identified. | if the congested direction of TCP transmission can be identified. | |||
+ In quality-of-service (QoS) enabled networks, provisioning in one | o In networks in which quality of service (QoS) is enabled, | |||
direction may be radically different than provisioning in the reverse | provisioning in one direction may be radically different than | |||
direction, and thus the QoS guarantees differ. Measuring the paths | provisioning in the reverse direction and thus the QoS guarantees | |||
independently allows the verification of both guarantees. | differ. Measuring the paths independently allows the verification | |||
of both guarantees. | ||||
It is outside the scope of this document to say precisely how delay | It is outside the scope of this document to say precisely how delay | |||
metrics would be applied to specific problems. | metrics would be applied to specific problems. | |||
2.2. General Issues Regarding Time | 2. General Issues regarding Time | |||
{Comment: the terminology below differs from that defined by ITU-T | {Comment: The terminology below differs from that defined by ITU-T | |||
documents (e.g., G.810, "Definitions and terminology for | documents (e.g., G.810, "Definitions and terminology for | |||
synchronization networks" and I.356, "B-ISDN ATM layer cell transfer | synchronization networks" and I.356, "B-ISDN ATM layer cell transfer | |||
performance"), but is consistent with the IPPM Framework document. | performance") but is consistent with the IPPM Framework document. In | |||
In general, these differences derive from the different backgrounds; | general, these differences derive from the different backgrounds; the | |||
the ITU-T documents historically have a telephony origin, while the | ITU-T documents historically have a telephony origin, while the | |||
authors of this document (and the Framework) have a computer systems | authors of this document (and the Framework document) have a computer | |||
background. Although the terms defined below have no direct | systems background. Although the terms defined below have no direct | |||
equivalent in the ITU-T definitions, after our definitions we will | equivalent in the ITU-T definitions, after our definitions we will | |||
provide a rough mapping. However, note one potential confusion: our | provide a rough mapping. However, note one potential confusion: our | |||
definition of "clock" is the computer operating systems definition | definition of "clock" is the computer operating systems definition | |||
denoting a time-of-day clock, while the ITU-T definition of clock | denoting a time-of-day clock, while the ITU-T definition of clock | |||
denotes a frequency reference.} | denotes a frequency reference.} | |||
Whenever a time (i.e., a moment in history) is mentioned here, it is | Whenever a time (i.e., a moment in history) is mentioned here, it is | |||
understood to be measured in seconds (and fractions) relative to UTC. | understood to be measured in seconds (and fractions) relative to UTC. | |||
As described more fully in the Framework document, there are four | As described more fully in the Framework document, there are four | |||
skipping to change at page 8, line 4 | skipping to change at page 6, line 41 | |||
clock on a second host. {Comment: A rough ITU-T equivalent is "time | clock on a second host. {Comment: A rough ITU-T equivalent is "time | |||
error".} | error".} | |||
accuracy* | accuracy* | |||
measures the extent to which a given clock agrees with UTC. For | measures the extent to which a given clock agrees with UTC. For | |||
example, the clock on a host might be 27.1 msec behind UTC. {Comment: | example, the clock on a host might be 27.1 msec behind UTC. {Comment: | |||
A rough ITU-T equivalent is "time error from UTC".} | A rough ITU-T equivalent is "time error from UTC".} | |||
resolution* | resolution* | |||
measures the precision of a given clock. For example, the clock on | ||||
an old Unix host might tick only once every 10 msec, and thus have a | specification of the smallest unit by which the clock's time is | |||
resolution of only 10 msec. {Comment: A very rough ITU-T equivalent | updated. It gives a lower bound on the clock's uncertainty. For | |||
is "sampling period".} | example, the clock on an old Unix host might tick only once every 10 | |||
msec, and thus have a resolution of only 10 msec. {Comment: A very | ||||
rough ITU-T equivalent is "sampling period".} | ||||
skew* | skew* | |||
measures the change of accuracy, or of synchronization, with time. | measures the change of accuracy, or of synchronization, with time. | |||
For example, the clock on a given host might gain 1.3 msec per hour | For example, the clock on a given host might gain 1.3 msec per hour | |||
and thus be 27.1 msec behind UTC at one time and only 25.8 msec an | and thus be 27.1 msec behind UTC at one time and only 25.8 msec an | |||
hour later. In this case, we say that the clock of the given host | hour later. In this case, we say that the clock of the given host | |||
has a skew of 1.3 msec per hour relative to UTC, which threatens | has a skew of 1.3 msec per hour relative to UTC, which threatens | |||
accuracy. We might also speak of the skew of one clock relative to | accuracy. We might also speak of the skew of one clock relative to | |||
another clock, which threatens synchronization. {Comment: A rough | another clock, which threatens synchronization. {Comment: A rough | |||
ITU-T equivalent is "time drift".} | ITU-T equivalent is "time drift".} | |||
3. A Singleton Definition for One-way Delay | 3. A Singleton Definition for One-Way Delay | |||
3.1. Metric Name: | 3.1. Metric Name | |||
Type-P-One-way-Delay | Type-P-One-way-Delay | |||
3.2. Metric Parameters: | 3.2. Metric Parameters | |||
+ Src, the IP address of a host | o Src, the IP address of a host | |||
+ Dst, the IP address of a host | o Dst, the IP address of a host | |||
+ T, a time | o T, a time | |||
+ Tmax, a loss threshold waiting time | o Tmax, a loss threshold waiting time | |||
3.3. Metric Units: | 3.3. Metric Units | |||
The value of a Type-P-One-way-Delay is either a real number, or an | The value of a Type-P-One-way-Delay is either a real number or an | |||
undefined (informally, infinite) number of seconds. | undefined (informally, infinite) number of seconds. | |||
3.4. Definition: | 3.4. Definition | |||
For a real number dT, >>the *Type-P-One-way-Delay* from Src to Dst at | For a real number dT, >>the *Type-P-One-way-Delay* from Src to Dst at | |||
T is dT<< means that Src sent the first bit of a Type-P packet to Dst | T is dT<< means that Src sent the first bit of a Type-P packet to Dst | |||
at wire-time* T and that Dst received the last bit of that packet at | at wire time* T and that Dst received the last bit of that packet at | |||
wire-time T+dT. | wire time T+dT. | |||
>>The *Type-P-One-way-Delay* from Src to Dst at T is undefined | >>The *Type-P-One-way-Delay* from Src to Dst at T is undefined | |||
(informally, infinite)<< means that Src sent the first bit of a | (informally, infinite)<< means that Src sent the first bit of a | |||
Type-P packet to Dst at wire-time T and that Dst did not receive that | Type-P packet to Dst at wire time T and that Dst did not receive that | |||
packet (within the loss threshold waiting time, Tmax). | packet (within the loss threshold waiting time, Tmax). | |||
Suggestions for what to report along with metric values appear in | Suggestions for what to report and metric values appear in | |||
Section 3.8 after a discussion of the metric, methodologies for | Section 3.8 after a discussion of the metric, methodologies for | |||
measuring the metric, and error analysis. | measuring the metric, and error analysis. | |||
3.5. Discussion: | 3.5. Discussion | |||
Type-P-One-way-Delay is a relatively simple analytic metric, and one | Type-P-One-way-Delay is a relatively simple analytic metric, and one | |||
that we believe will afford effective methods of measurement. | that we believe will afford effective methods of measurement. | |||
The following issues are likely to come up in practice: | The following issues are likely to come up in practice: | |||
+ Real delay values will be positive. Therefore, it does not make | o Real delay values will be positive. Therefore, it does not make | |||
sense to report a negative value as a real delay. However, an | sense to report a negative value as a real delay. However, an | |||
individual zero or negative delay value might be useful as part of a | individual zero or negative delay value might be useful as part of | |||
stream when trying to discover a distribution of a stream of delay | a stream when trying to discover a distribution of a stream of | |||
values. | delay values. | |||
+ Since delay values will often be as low as the 100 usec to 10 msec | o Since delay values will often be as low as the 100 usec to 10 msec | |||
range, it will be important for Src and Dst to synchronize very | range, it will be important for Src and Dst to synchronize very | |||
closely. GPS systems afford one way to achieve synchronization to | closely. Global Positioning System (GPS) systems afford one way | |||
within several 10s of usec. Ordinary application of NTP may allow | to achieve synchronization to within several tens of usec. | |||
synchronization to within several msec, but this depends on the | Ordinary application of NTP may allow synchronization to within | |||
stability and symmetry of delay properties among those NTP agents | several msec, but this depends on the stability and symmetry of | |||
used, and this delay is what we are trying to measure. A combination | delay properties among those NTP agents used, and this delay is | |||
of some GPS-based NTP servers and a conservatively designed and | what we are trying to measure. A combination of some GPS-based | |||
deployed set of other NTP servers should yield good results. This | NTP servers and a conservatively designed and deployed set of | |||
was tested in [RFC6808], where a GPS measurement system's results | other NTP servers should yield good results. This was tested in | |||
compared well with a GPS-based NTP synchronized system for the same | [RFC6808], where a GPS measurement system's results compared well | |||
intercontinental path. | with a GPS-based NTP synchronized system for the same | |||
intercontinental path. | ||||
+ A given methodology will have to include a way to determine whether | o A given methodology will have to include a way to determine | |||
a delay value is infinite or whether it is merely very large (and the | whether a delay value is infinite or whether it is merely very | |||
packet is yet to arrive at Dst). As noted by Mahdavi and Paxson | large (and the packet is yet to arrive at Dst). As noted by | |||
[RFC2678], simple upper bounds (such as the 255 seconds theoretical | Mahdavi and Paxson [RFC2678], simple upper bounds (such as the 255 | |||
upper bound on the lifetimes of IP packets [RFC0791]) could be used; | seconds theoretical upper bound on the lifetimes of IP packets | |||
but good engineering, including an understanding of packet lifetimes, | [RFC791]) could be used; but good engineering, including an | |||
will be needed in practice. {Comment: Note that, for many | understanding of packet lifetimes, will be needed in practice. | |||
applications of these metrics, the harm in treating a large delay as | {Comment: Note that, for many applications of these metrics, the | |||
infinite might be zero or very small. A TCP data packet, for | harm in treating a large delay as infinite might be zero or very | |||
example, that arrives only after several multiples of the RTT may as | small. A TCP data packet, for example, that arrives only after | |||
well have been lost. See section 4.1.1 of [RFC6703] for examination | several multiples of the RTT may as well have been lost. See | |||
of unusual packet delays and application performance estimation.} | Section 4.1.1 of [RFC6703] for examination of unusual packet | |||
delays and application performance estimation.} | ||||
+ If the packet is duplicated along the path (or paths) so that | o If the packet is duplicated along the path (or paths) so that | |||
multiple non-corrupt copies arrive at the destination, then the | multiple non-corrupt copies arrive at the destination, then the | |||
packet is counted as received, and the first copy to arrive | packet is counted as received, and the first copy to arrive | |||
determines the packet's one-way delay. | determines the packet's one-way delay. | |||
+ If the packet is fragmented and if, for whatever reason, reassembly | o If the packet is fragmented and if, for whatever reason, | |||
does not occur, then the packet will be deemed lost. | reassembly does not occur, then the packet will be deemed lost. | |||
+ The packet is standard-formed, the default criteria for all metric | o A given methodology will include a way to determine whether the | |||
definitions defined in Section 15 of [RFC2330], otherwise the packet | packet is standard-formed, the default criteria for all metric | |||
will be deemed lost. Note: At this time, the definition of standard- | definitions defined in Section 15 of [RFC2330], otherwise the | |||
formed packets only applies to IPv4, but also see | packet will be deemed lost. Note: At this time, the definition of | |||
[I-D.morton-ippm-2330-stdform-typep]. | standard-formed packets only applies to IPv4, but also see | |||
[IPPM-UPDATES]. | ||||
3.6. Methodologies: | 3.6. Methodologies | |||
As with other Type-P-* metrics, the detailed methodology will depend | As with other Type-P-* metrics, the detailed methodology will depend | |||
on the Type-P (e.g., protocol number, UDP/TCP port number, size, | on the Type-P (e.g., protocol number, UDP/TCP port number, size, | |||
Differentiated Services (DS) Field [RFC2780]). | Differentiated Services (DS) Field [RFC2780]). | |||
Generally, for a given Type-P, the methodology would proceed as | Generally, for a given Type-P, the methodology would proceed as | |||
follows: | follows: | |||
+ Arrange that Src and Dst are synchronized; that is, that they have | o Arrange that Src and Dst are synchronized; that is, that they have | |||
clocks that are very closely synchronized with each other and each | clocks that are very closely synchronized with each other and each | |||
fairly close to the actual time. | fairly close to the actual time. | |||
+ At the Src host, select Src and Dst IP addresses, and form a test | o At the Src host, select Src and Dst IP addresses, and form a test | |||
packet of Type-P with these addresses. Any 'padding' portion of the | packet of Type-P with these addresses. Any 'padding' portion of | |||
packet needed only to make the test packet a given size should be | the packet needed only to make the test packet a given size should | |||
filled with randomized bits to avoid a situation in which the | be filled with randomized bits to avoid a situation in which the | |||
measured delay is lower than it would otherwise be, due to | measured delay is lower than it would otherwise be, due to | |||
compression techniques along the path. Also see section 3.1.2 of | compression techniques along the path. Also, see Section 3.1.2 of | |||
[RFC7312]. | [RFC7312]. | |||
+ At the Dst host, arrange to receive the packet. | o At the Dst host, arrange to receive the packet. | |||
+ At the Src host, place a timestamp in the prepared Type-P packet, | o At the Src host, place a timestamp in the prepared Type-P packet, | |||
and send it towards Dst (ideally minimizing time before sending). | and send it towards Dst (ideally minimizing time before sending). | |||
+ If the packet arrives within a reasonable period of time, take a | o If the packet arrives within a reasonable period of time, take a | |||
timestamp as soon as possible upon the receipt of the packet. By | timestamp as soon as possible upon the receipt of the packet. By | |||
subtracting the two timestamps, an estimate of one-way delay can be | subtracting the two timestamps, an estimate of one-way delay can | |||
computed. Error analysis of a given implementation of the method | be computed. Error analysis of a given implementation of the | |||
must take into account the closeness of synchronization between Src | method must take into account the closeness of synchronization | |||
and Dst. If the delay between Src's timestamp and the actual sending | between Src and Dst. If the delay between Src's timestamp and the | |||
of the packet is known, then the estimate could be adjusted by | actual sending of the packet is known, then the estimate could be | |||
subtracting this amount; uncertainty in this value must be taken into | adjusted by subtracting this amount; uncertainty in this value | |||
account in error analysis. Similarly, if the delay between the | must be taken into account in error analysis. Similarly, if the | |||
actual receipt of the packet and Dst's timestamp is known, then the | delay between the actual receipt of the packet and Dst's timestamp | |||
estimate could be adjusted by subtracting this amount; uncertainty in | is known, then the estimate could be adjusted by subtracting this | |||
this value must be taken into account in error analysis. See the | amount; uncertainty in this value must be taken into account in | |||
next section, "Errors and Uncertainties", for a more detailed | error analysis. See "Errors and Uncertainties" (Section 3.7) for | |||
discussion. | a more detailed discussion. | |||
+ If the packet fails to arrive within a reasonable period of time, | o If the packet fails to arrive within a reasonable period of time, | |||
Tmax, the one-way delay is taken to be undefined (informally, | Tmax, the one-way delay is taken to be undefined (informally, | |||
infinite). Note that the threshold of 'reasonable' is a parameter of | infinite). Note that the threshold of "reasonable" is a parameter | |||
the metric. These points are examined in detail in [RFC6703], | of the metric. These points are examined in detail in [RFC6703], | |||
including analysis preferences to assign undefined delay to packets | including analysis preferences to assign undefined delay to | |||
that fail to arrive with the difficulties emerging from the informal | packets that fail to arrive with the difficulties emerging from | |||
"infinite delay" assignment, and an estimation of an upper bound on | the informal "infinite delay" assignment, and an estimation of an | |||
waiting time for packets in transit. Further, enforcing a specific | upper bound on waiting time for packets in transit. Further, | |||
constant waiting time on stored singletons of one-way delay is | enforcing a specific constant waiting time on stored singletons of | |||
compliant with this specification and may allow the results to serve | one-way delay is compliant with this specification and may allow | |||
more than one reporting audience. | the results to serve more than one reporting audience. | |||
Issues such as the packet format, the means by which Dst knows when | Issues such as the packet format, the means by which Dst knows when | |||
to expect the test packet, and the means by which Src and Dst are | to expect the test packet, and the means by which Src and Dst are | |||
synchronized are outside the scope of this document. {Comment: We | synchronized are outside the scope of this document. {Comment: We | |||
plan to document elsewhere our own work in describing such more | plan to document the implementation techniques of our work in much | |||
detailed implementation techniques and we encourage others to as | more detail elsewhere; we encourage others to do so as well.} | |||
well.} | ||||
3.7. Errors and Uncertainties: | 3.7. Errors and Uncertainties | |||
The description of any specific measurement method should include an | The description of any specific measurement method should include an | |||
accounting and analysis of various sources of error or uncertainty. | accounting and analysis of various sources of error or uncertainty. | |||
The Framework document provides general guidance on this point, but | The Framework document provides general guidance on this point, but | |||
we note here the following specifics related to delay metrics: | we note here the following specifics related to delay metrics: | |||
+ Errors or uncertainties due to uncertainties in the clocks of the | o Errors or uncertainties due to uncertainties in the clocks of the | |||
Src and Dst hosts. | Src and Dst hosts. | |||
+ Errors or uncertainties due to the difference between 'wire time' | o Errors or uncertainties due to the difference between 'wire time' | |||
and 'host time'. | and 'host time'. | |||
In addition, the loss threshold may affect the results. Each of | In addition, the loss threshold may affect the results. Each of | |||
these are discussed in more detail below, along with a section | these are discussed in more detail below, along with a section | |||
("Calibration") on accounting for these errors and uncertainties. | (Section 3.7.3) on accounting for these errors and uncertainties. | |||
3.7.1. Errors or uncertainties related to Clocks | 3.7.1. Errors or Uncertainties Related to Clocks | |||
The uncertainty in a measurement of one-way delay is related, in | The uncertainty in a measurement of one-way delay is related, in | |||
part, to uncertainties in the clocks of the Src and Dst hosts. In | part, to uncertainties in the clocks of the Src and Dst hosts. In | |||
the following, we refer to the clock used to measure when the packet | the following, we refer to the clock used to measure when the packet | |||
was sent from Src as the source clock, we refer to the clock used to | was sent from Src as the source clock, we refer to the clock used to | |||
measure when the packet was received by Dst as the destination clock, | measure when the packet was received by Dst as the destination clock, | |||
we refer to the observed time when the packet was sent by the source | we refer to the observed time when the packet was sent by the source | |||
clock as Tsource, and the observed time when the packet was received | clock as Tsource, and we refer to the observed time when the packet | |||
by the destination clock as Tdest. Alluding to the notions of | was received by the destination clock as Tdest. Alluding to the | |||
synchronization, accuracy, resolution, and skew mentioned in the | notions of synchronization, accuracy, resolution, and skew mentioned | |||
Introduction, we note the following: | in the Introduction, we note the following: | |||
+ Any error in the synchronization between the source clock and the | o Any error in the synchronization between the source clock and the | |||
destination clock will contribute to error in the delay measurement. | destination clock will contribute to error in the delay | |||
We say that the source clock and the destination clock have a | measurement. We say that the source clock and the destination | |||
synchronization error of Tsynch if the source clock is Tsynch ahead | clock have a synchronization error of Tsynch if the source clock | |||
of the destination clock. Thus, if we know the value of Tsynch | is Tsynch ahead of the destination clock. Thus, if we know the | |||
exactly, we could correct for clock synchronization by adding Tsynch | value of Tsynch exactly, we could correct for clock | |||
to the uncorrected value of Tdest-Tsource. | synchronization by adding Tsynch to the uncorrected value of | |||
Tdest-Tsource. | ||||
+ The accuracy of a clock is important only in identifying the time | o The accuracy of a clock is important only in identifying the time | |||
at which a given delay was measured. Accuracy, per se, has no | at which a given delay was measured. Accuracy, per se, has no | |||
importance to the accuracy of the measurement of delay. When | importance to the accuracy of the measurement of delay. When | |||
computing delays, we are interested only in the differences between | computing delays, we are interested only in the differences | |||
clock values, not the values themselves. | between clock values, not the values themselves. | |||
+ The resolution of a clock adds to uncertainty about any time | o The resolution of a clock adds to uncertainty about any time | |||
measured with it. Thus, if the source clock has a resolution of 10 | measured with it. Thus, if the source clock has a resolution of | |||
msec, then this adds 10 msec of uncertainty to any time value | 10 msec, then this adds 10 msec of uncertainty to any time value | |||
measured with it. We will denote the resolution of the source clock | measured with it. We will denote the resolution of the source | |||
and the destination clock as Rsource and Rdest, respectively. | clock and the destination clock as Rsource and Rdest, | |||
respectively. | ||||
+ The skew of a clock is not so much an additional issue as it is a | o The skew of a clock is not so much an additional issue as it is a | |||
realization of the fact that Tsynch is itself a function of time. | realization of the fact that Tsynch is itself a function of time. | |||
Thus, if we attempt to measure or to bound Tsynch, this needs to be | Thus, if we attempt to measure or to bound Tsynch, this needs to | |||
done periodically. Over some periods of time, this function can be | be done periodically. Over some periods of time, this function | |||
approximated as a linear function plus some higher order terms; in | can be approximated as a linear function plus some higher order | |||
these cases, one option is to use knowledge of the linear component | terms; in these cases, one option is to use knowledge of the | |||
to correct the clock. Using this correction, the residual Tsynch is | linear component to correct the clock. Using this correction, the | |||
made smaller, but remains a source of uncertainty that must be | residual Tsynch is made smaller but remains a source of | |||
accounted for. We use the function Esynch(t) to denote an upper | uncertainty that must be accounted for. We use the function | |||
bound on the uncertainty in synchronization. Thus, |Tsynch(t)| <= | Esynch(t) to denote an upper bound on the uncertainty in | |||
Esynch(t). | synchronization. Thus, |Tsynch(t)| <= Esynch(t). | |||
Taking these items together, we note that naive computation Tdest- | Taking these items together, we note that naive computation Tdest- | |||
Tsource will be off by Tsynch(t) +/- (Rsource + Rdest). Using the | Tsource will be off by Tsynch(t) +/- (Rsource + Rdest). Using the | |||
notion of Esynch(t), we note that these clock-related problems | notion of Esynch(t), we note that these clock-related problems | |||
introduce a total uncertainty of Esynch(t)+ Rsource + Rdest. This | introduce a total uncertainty of Esynch(t)+ Rsource + Rdest. This | |||
estimate of total clock-related uncertainty should be included in the | estimate of total clock-related uncertainty should be included in the | |||
error/uncertainty analysis of any measurement implementation. | error/uncertainty analysis of any measurement implementation. | |||
3.7.2. Errors or uncertainties related to Wire-time vs Host-time | 3.7.2. Errors or Uncertainties Related to Wire Time vs. Host Time | |||
As we have defined one-way delay, we would like to measure the time | As we have defined one-way delay, we would like to measure the time | |||
between when the test packet leaves the network interface of Src and | between when the test packet leaves the network interface of Src and | |||
when it (completely) arrives at the network interface of Dst, and we | when it (completely) arrives at the network interface of Dst: we | |||
refer to these as "wire times." If the timings are themselves | refer to these as "wire times." If the timings are themselves | |||
performed by software on Src and Dst, however, then this software can | performed by software on Src and Dst, however, then this software can | |||
only directly measure the time between when Src grabs a timestamp | only directly measure the time between when Src grabs a timestamp | |||
just prior to sending the test packet and when Dst grabs a timestamp | just prior to sending the test packet and when Dst grabs a timestamp | |||
just after having received the test packet, and we refer to these two | just after having received the test packet: we refer to these two | |||
points as "host times". | points as "host times". | |||
We note that some systems perform host time stamping on the network | We note that some systems perform host time stamping on the network- | |||
interface hardware, in an attempt to minimize the difference from | interface hardware, in an attempt to minimize the difference from | |||
wire times. | wire times. | |||
To the extent that the difference between wire time and host time is | To the extent that the difference between wire time and host time is | |||
accurately known, this knowledge can be used to correct for host time | accurately known, this knowledge can be used to correct for host time | |||
measurements, and the corrected value more accurately estimates the | measurements, and the corrected value more accurately estimates the | |||
desired (wire time) metric. | desired (wire-time) metric. | |||
To the extent, however, that the difference between wire time and | To the extent, however, that the difference between wire time and | |||
host time is uncertain, this uncertainty must be accounted for in an | host time is uncertain, this uncertainty must be accounted for in an | |||
analysis of a given measurement method. We denote by Hsource an | analysis of a given measurement method. We denote by Hsource an | |||
upper bound on the uncertainty in the difference between wire time | upper bound on the uncertainty in the difference between wire time | |||
and host time on the Src host, and similarly define Hdest for the Dst | and host time on the Src host, and similarly define Hdest for the Dst | |||
host. We then note that these problems introduce a total uncertainty | host. We then note that these problems introduce a total uncertainty | |||
of Hsource+Hdest. This estimate of total wire-vs-host uncertainty | of Hsource+Hdest. This estimate of total wire-vs-host uncertainty | |||
should be included in the error/uncertainty analysis of any | should be included in the error/uncertainty analysis of any | |||
measurement implementation. | measurement implementation. | |||
3.7.3. Calibration | 3.7.3. Calibration of Errors and Uncertainties | |||
Generally, the measured values can be decomposed as follows: | Generally, the measured values can be decomposed as follows: | |||
measured value = true value + systematic error + random error | measured value = true value + systematic error + random error | |||
If the systematic error (the constant bias in measured values) can be | If the systematic error (the constant bias in measured values) can be | |||
determined, it can be compensated for in the reported results. | determined, it can be compensated for in the reported results. | |||
reported value = measured value - systematic error | reported value = measured value - systematic error | |||
therefore | therefore: | |||
reported value = true value + random error | reported value = true value + random error | |||
The goal of calibration is to determine the systematic and random | The goal of calibration is to determine the systematic and random | |||
error generated by the hosts themselves in as much detail as | error generated by the hosts themselves in as much detail as | |||
possible. At a minimum, a bound ("e") should be found such that the | possible. At a minimum, a bound ("e") should be found such that the | |||
reported value is in the range (true value - e) to (true value + e) | reported value is in the range (true value - e) to (true value + e) | |||
at least 95 percent of the time. We call "e" the calibration error | at least 95% of the time. We call "e" the calibration error for the | |||
for the measurements. It represents the degree to which the values | measurements. It represents the degree to which the values produced | |||
produced by the measurement host are repeatable; that is, how closely | by the measurement host are repeatable; that is, how closely an | |||
an actual delay of 30 ms is reported as 30 ms. {Comment: 95 percent | actual delay of 30 ms is reported as 30 ms. {Comment: 95% was chosen | |||
was chosen because (1) some confidence level is desirable to be able | because (1) some confidence level is desirable to be able to remove | |||
to remove outliers, which will be found in measuring any physical | outliers, which will be found in measuring any physical property; (2) | |||
property; (2) a particular confidence level should be specified so | a particular confidence level should be specified so that the results | |||
that the results of independent implementations can be compared; and | of independent implementations can be compared; and (3) even with a | |||
(3) even with a prototype user-level implementation, 95% was loose | prototype user-level implementation, 95% was loose enough to exclude | |||
enough to exclude outliers.} | outliers.} | |||
From the discussion in the previous two sections, the error in | From the discussion in the previous two sections, the error in | |||
measurements could be bounded by determining all the individual | measurements could be bounded by determining all the individual | |||
uncertainties, and adding them together to form | uncertainties, and adding them together to form: | |||
Esynch(t) + Rsource + Rdest + Hsource + Hdest. | Esynch(t) + Rsource + Rdest + Hsource + Hdest. | |||
However, reasonable bounds on both the clock-related uncertainty | However, reasonable bounds on both the clock-related uncertainty | |||
captured by the first three terms and the host-related uncertainty | captured by the first three terms and the host-related uncertainty | |||
captured by the last two terms should be possible by careful design | captured by the last two terms should be possible by careful design | |||
techniques and calibrating the hosts using a known, isolated, network | techniques and calibrating the hosts using a known, isolated network | |||
in a lab. | in a lab. | |||
For example, the clock-related uncertainties are greatly reduced | For example, the clock-related uncertainties are greatly reduced | |||
through the use of a GPS time source. The sum of Esynch(t) + Rsource | through the use of a GPS time source. The sum of Esynch(t) + Rsource | |||
+ Rdest is small, and is also bounded for the duration of the | + Rdest is small and is also bounded for the duration of the | |||
measurement because of the global time source. | measurement because of the global time source. | |||
The host-related uncertainties, Hsource + Hdest, could be bounded by | The host-related uncertainties, Hsource + Hdest, could be bounded by | |||
connecting two hosts back-to-back with a high-speed serial link or | connecting two hosts back-to-back with a high-speed serial link or | |||
isolated LAN segment. In this case, repeated measurements are | isolated LAN segment. In this case, repeated measurements are | |||
measuring the same one-way delay. | measuring the same one-way delay. | |||
If the test packets are small, such a network connection has a | If the test packets are small, such a network connection has a | |||
minimal delay that may be approximated by zero. The measured delay | minimal delay that may be approximated by zero. The measured delay | |||
therefore contains only systematic and random error in the | therefore contains only systematic and random error in the | |||
measurement hosts. The "average value" of repeated measurements is | measurement hosts. The "average value" of repeated measurements is | |||
the systematic error, and the variation is the random error. | the systematic error, and the variation is the random error. | |||
One way to compute the systematic error, and the random error to a | One way to compute the systematic error, and the random error to a | |||
95% confidence is to repeat the experiment many times - at least | 95% confidence is to repeat the experiment many times -- at least | |||
hundreds of tests. The systematic error would then be the median. | hundreds of tests. The systematic error would then be the median. | |||
The random error could then be found by removing the systematic error | The random error could then be found by removing the systematic error | |||
from the measured values. The 95% confidence interval would be the | from the measured values. The 95% confidence interval would be the | |||
range from the 2.5th percentile to the 97.5th percentile of these | range from the 2.5th percentile to the 97.5th percentile of these | |||
deviations from the true value. The calibration error "e" could then | deviations from the true value. The calibration error "e" could then | |||
be taken to be the largest absolute value of these two numbers, plus | be taken to be the largest absolute value of these two numbers, plus | |||
the clock-related uncertainty. {Comment: as described, this bound is | the clock-related uncertainty. {Comment: as described, this bound is | |||
relatively loose since the uncertainties are added, and the absolute | relatively loose since the uncertainties are added, and the absolute | |||
value of the largest deviation is used. As long as the resulting | value of the largest deviation is used. As long as the resulting | |||
value is not a significant fraction of the measured values, it is a | value is not a significant fraction of the measured values, it is a | |||
skipping to change at page 15, line 32 | skipping to change at page 14, line 32 | |||
checks should be made to ensure that packets reported as losses were | checks should be made to ensure that packets reported as losses were | |||
really lost. First, the threshold for loss should be verified. In | really lost. First, the threshold for loss should be verified. In | |||
particular, ensure the "reasonable" threshold is reasonable: that it | particular, ensure the "reasonable" threshold is reasonable: that it | |||
is very unlikely a packet will arrive after the threshold value, and | is very unlikely a packet will arrive after the threshold value, and | |||
therefore the number of packets lost over an interval is not | therefore the number of packets lost over an interval is not | |||
sensitive to the error bound on measurements. Second, consider the | sensitive to the error bound on measurements. Second, consider the | |||
possibility that a packet arrives at the network interface, but is | possibility that a packet arrives at the network interface, but is | |||
lost due to congestion on that interface or to other resource | lost due to congestion on that interface or to other resource | |||
exhaustion (e.g. buffers) in the host. | exhaustion (e.g. buffers) in the host. | |||
3.8. Reporting the metric: | 3.8. Reporting the Metric | |||
The calibration and context in which the metric is measured MUST be | The calibration and context in which the metric is measured MUST be | |||
carefully considered, and SHOULD always be reported along with metric | carefully considered and SHOULD always be reported along with metric | |||
results. We now present four items to consider: the Type-P of test | results. We now present four items to consider: the Type-P of test | |||
packets, the threshold of infinite delay (if any), error calibration, | packets, the threshold of infinite delay (if any), error calibration, | |||
and the path traversed by the test packets. This list is not | and the path traversed by the test packets. This list is not | |||
exhaustive; any additional information that could be useful in | exhaustive; any additional information that could be useful in | |||
interpreting applications of the metrics should also be reported (see | interpreting applications of the metrics should also be reported (see | |||
[RFC6703] for extensive discussion of reporting considerations for | [RFC6703] for extensive discussion of reporting considerations for | |||
different audiences). | different audiences). | |||
3.8.1. Type-P | 3.8.1. Type-P | |||
As noted in the Framework document, section 13 of [RFC2330], the | As noted in Section 13 of the Framework document [RFC2330], the value | |||
value of the metric may depend on the type of IP packets used to make | of the metric may depend on the type of IP packets used to make the | |||
the measurement, or "Type-P". The value of Type-P-One-way-Delay | measurement, or "Type-P". The value of Type-P-One-way-Delay could | |||
could change if the protocol (UDP or TCP), port number, size, or | change if the protocol (UDP or TCP), port number, size, or | |||
arrangement for special treatment (e.g., IP DS Field [RFC2780], ECN | arrangement for special treatment (e.g., IP DS Field [RFC2780], | |||
[RFC3168], or RSVP) changes. Additional packet distinctions | Explicit Congestion Notification (ECN) [RFC3168], or RSVP) changes. | |||
identified in future extensions of the Type-P definition will apply. | ||||
The exact Type-P used to make the measurements MUST be accurately | Additional packet distinctions identified in future extensions of the | |||
reported. | Type-P definition will apply. The exact Type-P used to make the | |||
measurements MUST be accurately reported. | ||||
3.8.2. Loss Threshold | 3.8.2. Loss Threshold | |||
In addition, the threshold (or methodology to distinguish) between a | In addition, the threshold (or methodology to distinguish) between a | |||
large finite delay and loss MUST be reported. | large finite delay and loss MUST be reported. | |||
3.8.3. Calibration Results | 3.8.3. Calibration Results | |||
+ If the systematic error can be determined, it SHOULD be removed | o If the systematic error can be determined, it SHOULD be removed | |||
from the measured values. | from the measured values. | |||
+ You SHOULD also report the calibration error, e, such that the true | o You SHOULD also report the calibration error, e, such that the | |||
value is the reported value plus or minus e, with 95% confidence (see | true value is the reported value plus or minus e, with 95% | |||
the last section.) | confidence (see the last section.) | |||
+ If possible, the conditions under which a test packet with finite | o If possible, the conditions under which a test packet with finite | |||
delay is reported as lost due to resource exhaustion on the | delay is reported as lost due to resource exhaustion on the | |||
measurement host SHOULD be reported. | measurement host SHOULD be reported. | |||
3.8.4. Path | 3.8.4. Path | |||
Finally, the path traversed by the packet SHOULD be reported, if | Finally, the path traversed by the packet SHOULD be reported, if | |||
possible. In general it is impractical to know the precise path a | possible. In general, it is impractical to know the precise path a | |||
given packet takes through the network. The precise path may be | given packet takes through the network. The precise path may be | |||
known for certain Type-P on short or stable paths. If Type-P | known for certain Type-P on short or stable paths. If Type-P | |||
includes the record route (or loose-source route) option in the IP | includes the record route (or loose-source route) option in the IP | |||
header, and the path is short enough, and all routers* on the path | header, and the path is short enough, and all routers* on the path | |||
support record (or loose-source) route, then the path will be | support record (or loose-source) route, then the path will be | |||
precisely recorded. This is impractical because the route must be | precisely recorded. This is impractical because the route must be | |||
short enough, many routers do not support (or are not configured for) | short enough, many routers do not support (or are not configured for) | |||
record route, and use of this feature would often artificially worsen | record route, and use of this feature would often artificially worsen | |||
the performance observed by removing the packet from common-case | the performance observed by removing the packet from common-case | |||
processing. However, partial information is still valuable context. | processing. However, partial information is still valuable context. | |||
For example, if a host can choose between two links* (and hence two | For example, if a host can choose between two links* (and hence, two | |||
separate routes from Src to Dst), then the initial link used is | separate routes from Src to Dst), then the initial link used is | |||
valuable context. {Comment: For example, with Merit's NetNow setup, a | valuable context. {Comment: For example, with Merit's NetNow setup, a | |||
Src on one NAP can reach a Dst on another NAP by either of several | Src on one Network Access Point (NAP) can reach a Dst on another NAP | |||
different backbone networks.} | by either of several different backbone networks.} | |||
4. A Definition for Samples of One-way Delay | 4. A Definition for Samples of One-Way Delay | |||
Given the singleton metric Type-P-One-way-Delay, we now define one | Given the singleton metric Type-P-One-way-Delay, we now define one | |||
particular sample of such singletons. The idea of the sample is to | particular sample of such singletons. The idea of the sample is to | |||
select a particular binding of the parameters Src, Dst, and Type-P, | select a particular binding of the parameters Src, Dst, and Type-P, | |||
then define a sample of values of parameter T. The means for | then define a sample of values of parameter T. The means for | |||
defining the values of T is to select a beginning time T0, a final | defining the values of T is to select a beginning time T0, a final | |||
time Tf, and an average rate lambda, then define a pseudo-random | time Tf, and an average rate lambda, then define a pseudorandom | |||
Poisson process of rate lambda, whose values fall between T0 and Tf. | Poisson process of rate lambda, whose values fall between T0 and Tf. | |||
The time interval between successive values of T will then average 1/ | The time interval between successive values of T will then average 1/ | |||
lambda. | lambda. | |||
Note that Poisson sampling is only one way of defining a sample. | Note that Poisson sampling is only one way of defining a sample. | |||
Poisson has the advantage of limiting bias, but other methods of | Poisson has the advantage of limiting bias, but other methods of | |||
sampling will be appropriate for different situations. For example, | sampling will be appropriate for different situations. For example, | |||
a truncated Poisson distribution may be needed to avoid reactive | a truncated Poisson distribution may be needed to avoid reactive | |||
network state changes during intervals of inactivity, see section 4.6 | network state changes during intervals of inactivity, see Section 4.6 | |||
of [RFC7312]. Sometimes, the goal is sampling with a known bias, and | of [RFC7312]. Sometimes the goal is sampling with a known bias, and | |||
[RFC3432] describes a method for periodic sampling with random start | [RFC3432] describes a method for periodic sampling with random start | |||
times. | times. | |||
4.1. Metric Name: | 4.1. Metric Name | |||
Type-P-One-way-Delay-Poisson-Stream | Type-P-One-way-Delay-Poisson-Stream | |||
4.2. Metric Parameters: | 4.2. Metric Parameters | |||
+ Src, the IP address of a host | o Src, the IP address of a host | |||
+ Dst, the IP address of a host | o Dst, the IP address of a host | |||
+ T0, a time | o T0, a time | |||
+ Tf, a time | o Tf, a time | |||
+ Tmax, a loss threshold waiting time | o Tmax, a loss threshold waiting time | |||
+ lambda, a rate in reciprocal seconds (or parameters for another | o lambda, a rate in reciprocal seconds (or parameters for another | |||
distribution) | distribution) | |||
4.3. Metric Units: | 4.3. Metric Units | |||
A sequence of pairs; the elements of each pair are: | A sequence of pairs; the elements of each pair are: | |||
+ T, a time, and | o T, a time, and | |||
+ dT, either a real number or an undefined number of seconds. | o dT, either a real number or an undefined number of seconds. | |||
The values of T in the sequence are monotonic increasing. Note that | The values of T in the sequence are monotonic increasing. Note that | |||
T would be a valid parameter to Type-P-One-way-Delay, and that dT | T would be a valid parameter to Type-P-One-way-Delay and that dT | |||
would be a valid value of Type-P-One-way-Delay. | would be a valid value of Type-P-One-way-Delay. | |||
4.4. Definition: | 4.4. Definition | |||
Given T0, Tf, and lambda, we compute a pseudo-random Poisson process | Given T0, Tf, and lambda, we compute a pseudorandom Poisson process | |||
beginning at or before T0, with average arrival rate lambda, and | beginning at or before T0, with average arrival rate lambda, and | |||
ending at or after Tf. Those time values greater than or equal to T0 | ending at or after Tf. Those time values greater than or equal to T0 | |||
and less than or equal to Tf are then selected. At each of the times | and less than or equal to Tf are then selected. At each of the | |||
in this process, we obtain the value of Type-P-One-way-Delay at this | selected times in this process, we obtain one value of Type-P-One- | |||
time. The value of the sample is the sequence made up of the | way-Delay. The value of the sample is the sequence made up of the | |||
resulting <time, delay> pairs. If there are no such pairs, the | resulting <time, delay> pairs. If there are no such pairs, the | |||
sequence is of length zero and the sample is said to be empty. | sequence is of length zero and the sample is said to be empty. | |||
4.5. Discussion: | 4.5. Discussion | |||
The reader should be familiar with the in-depth discussion of Poisson | The reader should be familiar with the in-depth discussion of Poisson | |||
sampling in the Framework document [RFC2330], which includes methods | sampling in the Framework document [RFC2330], which includes methods | |||
to compute and verify the pseudo-random Poisson process. | to compute and verify the pseudorandom Poisson process. | |||
We specifically do not constrain the value of lambda, except to note | We specifically do not constrain the value of lambda except to note | |||
the extremes. If the rate is too large, then the measurement traffic | the extremes. If the rate is too large, then the measurement traffic | |||
will perturb the network, and itself cause congestion. If the rate | will perturb the network and itself cause congestion. If the rate is | |||
is too small, then you might not capture interesting network | too small, then you might not capture interesting network behavior. | |||
behavior. {Comment: We expect to document our experiences with, and | {Comment: We expect to document our experiences with, and suggestions | |||
suggestions for, lambda elsewhere, culminating in a "best current | for, lambda elsewhere, culminating in a "Best Current Practice" | |||
practices" document.} | document.} | |||
Since a pseudo-random number sequence is employed, the sequence of | Since a pseudorandom number sequence is employed, the sequence of | |||
times, and hence the value of the sample, is not fully specified. | times, and hence the value of the sample, is not fully specified. | |||
Pseudo-random number generators of good quality will be needed to | Pseudorandom number generators of good quality will be needed to | |||
achieve the desired qualities. | achieve the desired qualities. | |||
The sample is defined in terms of a Poisson process both to avoid the | The sample is defined in terms of a Poisson process both to avoid the | |||
effects of self-synchronization and also capture a sample that is | effects of self-synchronization and also capture a sample that is | |||
statistically as unbiased as possible. {Comment: there is, of course, | statistically as unbiased as possible. {Comment: there is, of course, | |||
no claim that real Internet traffic arrives according to a Poisson | no claim that real Internet traffic arrives according to a Poisson | |||
arrival process.} The Poisson process is used to schedule the delay | arrival process.} The Poisson process is used to schedule the delay | |||
measurements. The test packets will generally not arrive at Dst | measurements. The test packets will generally not arrive at Dst | |||
according to a Poisson distribution, since they are influenced by the | according to a Poisson distribution, since they are influenced by the | |||
network. | network. | |||
All the singleton Type-P-One-way-Delay metrics in the sequence will | All the singleton Type-P-One-way-Delay metrics in the sequence will | |||
have the same values of Src, Dst, and Type-P. | have the same values of Src, Dst, and Type-P. | |||
Note also that, given one sample that runs from T0 to Tf, and given | Note also that, given one sample that runs from T0 to Tf, and given | |||
new time values T0' and Tf' such that T0 <= T0' <= Tf' <= Tf, the | new time values T0' and Tf' such that T0 <= T0' <= Tf' <= Tf, the | |||
subsequence of the given sample whose time values fall between T0' | subsequence of the given sample whose time values fall between T0' | |||
and Tf' are also a valid Type-P-One-way-Delay-Poisson-Stream sample. | and Tf' are also a valid Type-P-One-way-Delay-Poisson-Stream sample. | |||
4.6. Methodologies: | 4.6. Methodologies | |||
The methodologies follow directly from: | The methodologies follow directly from: | |||
+ the selection of specific times, using the specified Poisson | o The selection of specific times using the specified Poisson | |||
arrival process, and | arrival process, and | |||
+ the methodologies discussion already given for the singleton Type- | o The methodologies discussion already given for the singleton Type- | |||
P-One-way-Delay metric. | P-One-way-Delay metric. | |||
Care must, of course, be given to correctly handle out-of-order | Care must be given to correctly handle out-of-order arrival of test | |||
arrival of test packets; it is possible that the Src could send one | packets; it is possible that the Src could send one test packet at | |||
test packet at TS[i], then send a second one (later) at TS[i+1], | TS[i], then send a second one (later) at TS[i+1] while the Dst could | |||
while the Dst could receive the second test packet at TR[i+1], and | receive the second test packet at TR[i+1], and then receive the first | |||
then receive the first one (later) at TR[i]. Metrics for reordering | one (later) at TR[i]. Metrics for reordering may be found in | |||
may be found in [RFC4737]. | [RFC4737]. | |||
4.7. Errors and Uncertainties: | 4.7. Errors and Uncertainties | |||
In addition to sources of errors and uncertainties associated with | In addition to sources of errors and uncertainties associated with | |||
methods employed to measure the singleton values that make up the | methods employed to measure the singleton values that make up the | |||
sample, care must be given to analyze the accuracy of the Poisson | sample, care must be given to analyze the accuracy of the Poisson | |||
process with respect to the wire-times of the sending of the test | process with respect to the wire times of the sending of the test | |||
packets. Problems with this process could be caused by several | packets. Problems with this process could be caused by several | |||
things, including problems with the pseudo-random number techniques | things, including problems with the pseudorandom number techniques | |||
used to generate the Poisson arrival process, or with jitter in the | used to generate the Poisson arrival process, or with jitter in the | |||
value of Hsource (mentioned above as uncertainty in the singleton | value of Hsource (mentioned above as uncertainty in the singleton | |||
delay metric). The Framework document shows how to use the Anderson- | delay metric). The Framework document shows how to use the Anderson- | |||
Darling test to verify the accuracy of a Poisson process over small | Darling test to verify the accuracy of a Poisson process over small | |||
time frames. {Comment: The goal is to ensure that test packets are | time frames. {Comment: The goal is to ensure that test packets are | |||
sent "close enough" to a Poisson schedule, and avoid periodic | sent "close enough" to a Poisson schedule and avoid periodic | |||
behavior.} | behavior.} | |||
4.8. Reporting the metric: | 4.8. Reporting the Metric | |||
You MUST report the calibration and context for the underlying | The calibration and context for the underlying singletons MUST be | |||
singletons along with the stream. (See "Reporting the metric" for | reported along with the stream. (See "Reporting the Metric" for | |||
Type-P-One-way-Delay.) | Type-P-One-way-Delay in Section 3.8.) | |||
5. Some Statistics Definitions for One-way Delay | 5. Some Statistics Definitions for One-Way Delay | |||
Given the sample metric Type-P-One-way-Delay-Poisson-Stream, we now | Given the sample metric Type-P-One-way-Delay-Poisson-Stream, we now | |||
offer several statistics of that sample. These statistics are | offer several statistics of that sample. These statistics are | |||
offered mostly to illustrate what could be done. See [RFC6703] for | offered mostly to illustrate what could be done. See [RFC6703] for | |||
additional discussion of statistics that are relevant to different | additional discussion of statistics that are relevant to different | |||
audiences. | audiences. | |||
5.1. Type-P-One-way-Delay-Percentile | 5.1. Type-P-One-way-Delay-Percentile | |||
Given a Type-P-One-way-Delay-Poisson-Stream and a percent X between | Given a Type-P-One-way-Delay-Poisson-Stream and a percent X between | |||
0% and 100%, the Xth percentile of all the dT values in the Stream. | 0% and 100%, the Xth percentile of all the dT values in the stream. | |||
In computing this percentile, undefined values are treated as | In computing this percentile, undefined values are treated as | |||
infinitely large. Note that this means that the percentile could | infinitely large. Note that this means that the percentile could | |||
thus be undefined (informally, infinite). In addition, the Type-P- | thus be undefined (informally, infinite). In addition, the Type-P- | |||
One-way-Delay-Percentile is undefined if the sample is empty. | One-way-Delay-Percentile is undefined if the sample is empty. | |||
Example: suppose we take a sample and the results are: | For example: suppose we take a sample and the results are as follows: | |||
Stream1 = < | Stream1 = < | |||
<T1, 100 msec> | <T1, 100 msec> | |||
<T2, 110 msec> | <T2, 110 msec> | |||
<T3, undefined> | <T3, undefined> | |||
<T4, 90 msec> | <T4, 90 msec> | |||
<T5, 500 msec> | <T5, 500 msec> | |||
> | > | |||
Then the 50th percentile would be 110 msec, since 90 msec and 100 | Then, the 50th percentile would be 110 msec, since 90 msec and 100 | |||
msec are smaller and 500 msec and 'undefined' are larger. See | msec are smaller and 500 msec and 'undefined' are larger. See | |||
Section 11.3 of [RFC2330] for computing percentiles. | Section 11.3 of [RFC2330] for computing percentiles. | |||
Note that if the possibility that a packet with finite delay is | Note that if the possibility that a packet with finite delay is | |||
reported as lost is significant, then a high percentile (90th or | reported as lost is significant, then a high percentile (90th or | |||
95th) might be reported as infinite instead of finite. | 95th) might be reported as infinite instead of finite. | |||
5.2. Type-P-One-way-Delay-Median | 5.2. Type-P-One-way-Delay-Median | |||
Given a Type-P-One-way-Delay-Poisson-Stream, the median of all the dT | Given a Type-P-One-way-Delay-Poisson-Stream, the median of all the dT | |||
values in the Stream. In computing the median, undefined values are | values in the stream. In computing the median, undefined values are | |||
treated as infinitely large. As with Type-P-One-way-Delay- | treated as infinitely large. As with Type-P-One-way-Delay- | |||
Percentile, Type-P-One-way-Delay-Median is undefined if the sample is | Percentile, Type-P-One-way-Delay-Median is undefined if the sample is | |||
empty. | empty. | |||
As noted in the Framework document, the median differs from the 50th | As noted in the Framework document, the median differs from the 50th | |||
percentile only when the sample contains an even number of values, in | percentile only when the sample contains an even number of values, in | |||
which case the mean of the two central values is used. | which case the mean of the two central values is used. | |||
Example: suppose we take a sample and the results are: | For example, suppose we take a sample and the results are as follows: | |||
Stream2 = < | Stream2 = < | |||
<T1, 100 msec> | <T1, 100 msec> | |||
<T2, 110 msec> | <T2, 110 msec> | |||
<T3, undefined> | <T3, undefined> | |||
<T4, 90 msec> | <T4, 90 msec> | |||
> | > | |||
skipping to change at page 21, line 14 | skipping to change at page 20, line 19 | |||
<T1, 100 msec> | <T1, 100 msec> | |||
<T2, 110 msec> | <T2, 110 msec> | |||
<T3, undefined> | <T3, undefined> | |||
<T4, 90 msec> | <T4, 90 msec> | |||
> | > | |||
Then the median would be 105 msec, the mean of 100 msec and 110 msec, | Then, the median would be 105 msec, the mean of 100 msec and 110 | |||
the two central values. | msec, the two central values. | |||
5.3. Type-P-One-way-Delay-Minimum | 5.3. Type-P-One-way-Delay-Minimum | |||
Given a Type-P-One-way-Delay-Poisson-Stream, the minimum of all the | Given a Type-P-One-way-Delay-Poisson-Stream, the minimum of all the | |||
dT values in the Stream. In computing this, undefined values are | dT values in the stream. In computing this, undefined values are | |||
treated as infinitely large. Note that this means that the minimum | treated as infinitely large. Note that this means that the minimum | |||
could thus be undefined (informally, infinite) if all the dT values | could thus be undefined (informally, infinite) if all the dT values | |||
are undefined. In addition, the Type-P-One-way-Delay-Minimum is | are undefined. In addition, the Type-P-One-way-Delay-Minimum is | |||
undefined if the sample is empty. | undefined if the sample is empty. | |||
In the above example, the minimum would be 90 msec. | In the above example, the minimum would be 90 msec. | |||
5.4. Type-P-One-way-Delay-Inverse-Percentile | 5.4. Type-P-One-way-Delay-Inverse-Percentile | |||
Note: This statistic is deprecated in this version of the memo | Note: This statistic is deprecated in this document because of lack | |||
because of lack of use. | of use. | |||
Given a Type-P-One-way-Delay-Poisson-Stream and a time duration | Given a Type-P-One-way-Delay-Poisson-Stream and a time duration | |||
threshold, the fraction of all the dT values in the Stream less than | threshold, the fraction of all the dT values in the stream less than | |||
or equal to the threshold. The result could be as low as 0% (if all | or equal to the threshold. The result could be as low as 0% (if all | |||
the dT values exceed threshold) or as high as 100%. Type-P-One-way- | the dT values exceed threshold) or as high as 100%. Type-P-One-way- | |||
Delay-Inverse-Percentile is undefined if the sample is empty. | Delay-Inverse-Percentile is undefined if the sample is empty. | |||
In the above example, the Inverse-Percentile of 103 msec would be | In the above example, the Inverse-Percentile of 103 msec would be | |||
50%. | 50%. | |||
6. Security Considerations | 6. Security Considerations | |||
Conducting Internet measurements raises both security and privacy | Conducting Internet measurements raises both security and privacy | |||
concerns. This memo does not specify an implementation of the | concerns. This memo does not specify an implementation of the | |||
metrics, so it does not directly affect the security of the Internet | metrics, so it does not directly affect the security of the Internet | |||
nor of applications which run on the Internet. However, | nor of applications that run on the Internet. However, | |||
implementations of these metrics must be mindful of security and | implementations of these metrics must be mindful of security and | |||
privacy concerns. | privacy concerns. | |||
There are two types of security concerns: potential harm caused by | There are two types of security concerns: potential harm caused by | |||
the measurements, and potential harm to the measurements. The | the measurements and potential harm to the measurements. The | |||
measurements could cause harm because they are active, and inject | measurements could cause harm because they are active and inject | |||
packets into the network. The measurement parameters MUST be | packets into the network. The measurement parameters MUST be | |||
carefully selected so that the measurements inject trivial amounts of | carefully selected so that the measurements inject trivial amounts of | |||
additional traffic into the networks they measure. If they inject | additional traffic into the networks they measure. If they inject | |||
"too much" traffic, they can skew the results of the measurement, and | "too much" traffic, they can skew the results of the measurement and | |||
in extreme cases cause congestion and denial of service. | in extreme cases cause congestion and denial of service. | |||
The measurements themselves could be harmed by routers giving | The measurements themselves could be harmed by routers giving | |||
measurement traffic a different priority than "normal" traffic, or by | measurement traffic a different priority than "normal" traffic or by | |||
an attacker injecting artificial measurement traffic. If routers can | an attacker injecting artificial measurement traffic. If routers can | |||
recognize measurement traffic and treat it separately, the | recognize measurement traffic and treat it separately, the | |||
measurements will not reflect actual user traffic. Therefore, the | measurements will not reflect actual user traffic. Therefore, the | |||
measurement methodologies SHOULD include appropriate techniques to | measurement methodologies SHOULD include appropriate techniques to | |||
reduce the probability measurement traffic can be distinguished from | reduce the probability that measurement traffic can be distinguished | |||
"normal" traffic. | from "normal" traffic. | |||
If an attacker injects packets emulating traffic that are accepted as | If an attacker injects packets emulating traffic that are accepted as | |||
legitimate, the loss ratio or other measured values could be | legitimate, the loss ratio or other measured values could be | |||
corrupted. Authentication techniques, such as digital signatures, | corrupted. Authentication techniques, such as digital signatures, | |||
may be used where appropriate to guard against injected traffic | may be used where appropriate to guard against injected traffic | |||
attacks. | attacks. | |||
When considering privacy of those involved in measurement or those | When considering privacy of those involved in measurement or those | |||
whose traffic is measured, the sensitive information available to | whose traffic is measured, the sensitive information available to | |||
potential observers is greatly reduced when using active techniques | potential observers is greatly reduced when using active techniques | |||
which are within this scope of work. Passive observations of user | that are within this scope of work. Passive observations of user | |||
traffic for measurement purposes raise many privacy issues. We refer | traffic for measurement purposes raise many privacy issues. We refer | |||
the reader to the privacy considerations described in the Large Scale | the reader to the privacy considerations described in the Large Scale | |||
Measurement of Broadband Performance (LMAP) Framework | Measurement of Broadband Performance (LMAP) Framework [RFC7594], | |||
[I-D.ietf-lmap-framework], which covers active and passive | which covers active and passive techniques. | |||
techniques. | ||||
Collecting measurements or using measurement results for | Collecting measurements or using measurement results for | |||
reconnaissance to assist in subsequent system attacks is quite | reconnaissance to assist in subsequent system attacks is quite | |||
common. Access to measurement results, or control of the measurement | common. Access to measurement results, or control of the measurement | |||
systems to perform reconnaissance should be guarded against. See | systems to perform reconnaissance should be guarded against. See | |||
Section 7 of [I-D.ietf-lmap-framework] (security considerations of | Section 7 of [RFC7594] (Security Considerations of the LMAP | |||
the LMAP Framework) for system requirements that help to avoid | Framework) for system requirements that help to avoid measurement | |||
measurement system compromise. | system compromise. | |||
7. IANA Considerations | 7. Changes from RFC 2679 | |||
This memo makes no requests of IANA. | The text above constitutes a revision to RFC 2769, which is now an | |||
Internet Standard. This section tracks the changes from [RFC2679]. | ||||
8. Acknowledgements | [RFC6808] provides the test plan and results supporting [RFC2679] | |||
advancement along the Standards Track, according to the process in | ||||
[RFC6576]. The conclusions of [RFC6808] list four minor | ||||
modifications: | ||||
For [RFC2679], special thanks are due to Vern Paxson of Lawrence | 1. Section 6.2.3 of [RFC6808] asserts that the assumption of post- | |||
Berkeley Labs for his helpful comments on issues of clock uncertainty | processing to enforce a constant waiting time threshold is | |||
and statistics. Thanks also to Garry Couch, Will Leland, Andy | compliant and that the text of the RFC should be revised slightly | |||
Scherrer, Sean Shapira, and Roland Wittig for several useful | to include this point. The applicability of post-processing was | |||
suggestions. | added in the last list item of Section 3.6. | |||
For RFC 2679 bis, thanks to Joachim Fabini, Ruediger Geib, Nalini | 2. Section 6.5 of [RFC6808] indicates that the Type-P-One-way-Delay- | |||
Elkins, and Barry Constantine for sharing their measurement | Inverse-Percentile statistic has been ignored in both | |||
experience as part of their careful reviews. Brian Carpenter and | implementations, so it was a candidate for removal or deprecation | |||
Scott Bradner provided useful feedback at IETF Last Call. | in this document (this small discrepancy does not affect | |||
candidacy for advancement). This statistic was deprecated in | ||||
Section 5.4. | ||||
9. References | 3. The IETF has reached consensus on guidance for reporting metrics | |||
in [RFC6703], and the memo is referenced in this document to | ||||
incorporate recent experience where appropriate. This reference | ||||
was added in the last list item of Section 3.6, Section 3.8, and | ||||
in Section 5. | ||||
9.1. Normative References | 4. There is currently one erratum with status "Held for Document | |||
Update" (EID 398) for [RFC2679], and this minor revision and | ||||
additional text was incorporated in this document in Section 5.1. | ||||
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | A number of updates to the [RFC2679] text have been implemented in | |||
the text above to reference key IPPM RFCs that were approved after | ||||
[RFC2679] and to address comments on the IPPM mailing list describing | ||||
current conditions and experience. | ||||
1. Near the end of Section 1.1, there is an update of a network | ||||
example using ATM, a clarification of TCP's affect on queue | ||||
occupation, and discussion of the importance of one-way delay | ||||
measurement. | ||||
2. Explicit inclusion of the maximum waiting time input parameter | ||||
in Sections 3.2 and 4.2, reflecting recognition of this | ||||
parameter in more recent RFCs and ITU-T Recommendation Y.1540. | ||||
3. Addition of a reference to RFC 6703 in the discussion of packet | ||||
lifetime and application timeouts in Section 3.5. | ||||
4. Addition of a reference to the default requirement (that packets | ||||
be standard-formed) from RFC 2330 as a new list item in | ||||
Section 3.5. | ||||
5. GPS-based NTP experience replaces "to be tested" in Section 3.5. | ||||
6. Replaced "precedence" with updated terminology (DS Field) in | ||||
Sections 3.6 and 3.8.1(with reference). | ||||
7. Added parenthetical guidance on minimizing the interval between | ||||
timestamp placement to send time in Section 3.6. | ||||
8. Section 3.7.2 notes that some current systems perform host time | ||||
stamping on the network-interface hardware. | ||||
9. "instrument" replaced by the defined term "host" in | ||||
Section 3.7.3 and Section 3.8.3. | ||||
10. Added reference to RFC 3432 regarding periodic sampling | ||||
alongside Poisson sampling in Section 4 and also noted that a | ||||
truncated Poisson distribution may be needed with modern | ||||
networks as described in the IPPM Framework update [RFC7312]. | ||||
11. Added a reference to RFC 4737 regarding reordering metrics in | ||||
the related discussion of "Methodologies (Section 4.6). | ||||
12. Modified the formatting of the example in Section 5.1 to match | ||||
the original (issue with conversion to XML in this version). | ||||
13. Clarified the conclusions on two related points on harm to | ||||
measurements (recognition of measurement traffic for unexpected | ||||
priority treatment and attacker traffic which emulates | ||||
measurement) in "Security Considerations (Section 6). | ||||
14. Expanded and updated the material on Privacy and added cautions | ||||
on the use of measurements for reconnaissance in "Security | ||||
Considerations" (Section 6). | ||||
Section 5.4.4 of [RFC6390] suggests a common template for performance | ||||
metrics partially derived from previous IPPM and Benchmarking | ||||
Methodology Working Group (BMWG) RFCs, but it also contains some new | ||||
items. All of the normative parts of [RFC6390] are covered, but not | ||||
quite in the same section names or orientation. Several of the | ||||
informative parts are covered. Maintaining the familiar outline of | ||||
IPPM literature has both value and minimizes unnecessary differences | ||||
between this revised RFC and current/future IPPM RFCs. | ||||
The publication of [RFC6921] suggested an area where this memo might | ||||
need updating. Packet transfer on Faster-Than-Light (FTL) networks | ||||
could result in negative delays and packet reordering; however, both | ||||
are covered as possibilities in the current text and no revisions are | ||||
deemed necessary (we also note that [RFC6921] is an April 1st RFC). | ||||
8. References | ||||
8.1. Normative References | ||||
[RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791, | ||||
DOI 10.17487/RFC0791, September 1981, | DOI 10.17487/RFC0791, September 1981, | |||
<http://www.rfc-editor.org/info/rfc791>. | <http://www.rfc-editor.org/info/rfc791>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
[RFC2330] Paxson, V., Almes, G., Mahdavi, J., and M. Mathis, | [RFC2330] Paxson, V., Almes, G., Mahdavi, J., and M. Mathis, | |||
"Framework for IP Performance Metrics", RFC 2330, | "Framework for IP Performance Metrics", RFC 2330, | |||
skipping to change at page 23, line 44 | skipping to change at page 24, line 42 | |||
<http://www.rfc-editor.org/info/rfc2330>. | <http://www.rfc-editor.org/info/rfc2330>. | |||
[RFC2678] Mahdavi, J. and V. Paxson, "IPPM Metrics for Measuring | [RFC2678] Mahdavi, J. and V. Paxson, "IPPM Metrics for Measuring | |||
Connectivity", RFC 2678, DOI 10.17487/RFC2678, September | Connectivity", RFC 2678, DOI 10.17487/RFC2678, September | |||
1999, <http://www.rfc-editor.org/info/rfc2678>. | 1999, <http://www.rfc-editor.org/info/rfc2678>. | |||
[RFC2679] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way | [RFC2679] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way | |||
Delay Metric for IPPM", RFC 2679, DOI 10.17487/RFC2679, | Delay Metric for IPPM", RFC 2679, DOI 10.17487/RFC2679, | |||
September 1999, <http://www.rfc-editor.org/info/rfc2679>. | September 1999, <http://www.rfc-editor.org/info/rfc2679>. | |||
[RFC2680] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way | ||||
Packet Loss Metric for IPPM", RFC 2680, | ||||
DOI 10.17487/RFC2680, September 1999, | ||||
<http://www.rfc-editor.org/info/rfc2680>. | ||||
[RFC2780] Bradner, S. and V. Paxson, "IANA Allocation Guidelines For | [RFC2780] Bradner, S. and V. Paxson, "IANA Allocation Guidelines For | |||
Values In the Internet Protocol and Related Headers", | Values In the Internet Protocol and Related Headers", | |||
BCP 37, RFC 2780, DOI 10.17487/RFC2780, March 2000, | BCP 37, RFC 2780, DOI 10.17487/RFC2780, March 2000, | |||
<http://www.rfc-editor.org/info/rfc2780>. | <http://www.rfc-editor.org/info/rfc2780>. | |||
[RFC3432] Raisanen, V., Grotefeld, G., and A. Morton, "Network | [RFC3432] Raisanen, V., Grotefeld, G., and A. Morton, "Network | |||
performance measurement with periodic streams", RFC 3432, | performance measurement with periodic streams", RFC 3432, | |||
DOI 10.17487/RFC3432, November 2002, | DOI 10.17487/RFC3432, November 2002, | |||
<http://www.rfc-editor.org/info/rfc3432>. | <http://www.rfc-editor.org/info/rfc3432>. | |||
[RFC6576] Geib, R., Ed., Morton, A., Fardid, R., and A. Steinmitz, | [RFC6576] Geib, R., Ed., Morton, A., Fardid, R., and A. Steinmitz, | |||
"IP Performance Metrics (IPPM) Standard Advancement | "IP Performance Metrics (IPPM) Standard Advancement | |||
Testing", BCP 176, RFC 6576, DOI 10.17487/RFC6576, March | Testing", BCP 176, RFC 6576, DOI 10.17487/RFC6576, March | |||
2012, <http://www.rfc-editor.org/info/rfc6576>. | 2012, <http://www.rfc-editor.org/info/rfc6576>. | |||
[RFC7312] Fabini, J. and A. Morton, "Advanced Stream and Sampling | [RFC7312] Fabini, J. and A. Morton, "Advanced Stream and Sampling | |||
Framework for IP Performance Metrics (IPPM)", RFC 7312, | Framework for IP Performance Metrics (IPPM)", RFC 7312, | |||
DOI 10.17487/RFC7312, August 2014, | DOI 10.17487/RFC7312, August 2014, | |||
<http://www.rfc-editor.org/info/rfc7312>. | <http://www.rfc-editor.org/info/rfc7312>. | |||
9.2. Informative References | [RFC7680] Almes, G., Kalidini, S., Zekauskas, M., and A. Morton, | |||
Ed., "A One-Way Loss Metric for IP Performance Metrics | ||||
(IPPM)", RFC 7680, DOI 10.17487/RFC7680, January 2016, | ||||
<http://www.rfc-editor.org/info/rfc7680>. | ||||
[I-D.ietf-lmap-framework] | 8.2. Informative References | |||
Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., | ||||
Aitken, P., and A. Akhter, "A framework for Large-Scale | ||||
Measurement of Broadband Performance (LMAP)", draft-ietf- | ||||
lmap-framework-14 (work in progress), April 2015. | ||||
[I-D.morton-ippm-2330-stdform-typep] | [IPPM-UPDATES] | |||
Morton, A., Fabini, J., Elkins, N., Ackermann, M., and V. | Morton, A., Fabini, J., Elkins, N., Ackermann, M., and V. | |||
Hegde, "Updates for IPPM's Active Metric Framework: | Hegde, "Updates for IPPM's Active Metric Framework: | |||
Packets of Type-P and Standard-Formed Packets", draft- | Packets of Type-P and Standard-Formed Packets", Work in | |||
morton-ippm-2330-stdform-typep-00 (work in progress), | Progress, draft-morton-ippm-2330-stdform-typep-02, | |||
August 2015. | December 2015. | |||
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | |||
of Explicit Congestion Notification (ECN) to IP", | of Explicit Congestion Notification (ECN) to IP", | |||
RFC 3168, DOI 10.17487/RFC3168, September 2001, | RFC 3168, DOI 10.17487/RFC3168, September 2001, | |||
<http://www.rfc-editor.org/info/rfc3168>. | <http://www.rfc-editor.org/info/rfc3168>. | |||
[RFC4737] Morton, A., Ciavattone, L., Ramachandran, G., Shalunov, | [RFC4737] Morton, A., Ciavattone, L., Ramachandran, G., Shalunov, | |||
S., and J. Perser, "Packet Reordering Metrics", RFC 4737, | S., and J. Perser, "Packet Reordering Metrics", RFC 4737, | |||
DOI 10.17487/RFC4737, November 2006, | DOI 10.17487/RFC4737, November 2006, | |||
<http://www.rfc-editor.org/info/rfc4737>. | <http://www.rfc-editor.org/info/rfc4737>. | |||
skipping to change at page 25, line 15 | skipping to change at page 26, line 5 | |||
[RFC6703] Morton, A., Ramachandran, G., and G. Maguluri, "Reporting | [RFC6703] Morton, A., Ramachandran, G., and G. Maguluri, "Reporting | |||
IP Network Performance Metrics: Different Points of View", | IP Network Performance Metrics: Different Points of View", | |||
RFC 6703, DOI 10.17487/RFC6703, August 2012, | RFC 6703, DOI 10.17487/RFC6703, August 2012, | |||
<http://www.rfc-editor.org/info/rfc6703>. | <http://www.rfc-editor.org/info/rfc6703>. | |||
[RFC6808] Ciavattone, L., Geib, R., Morton, A., and M. Wieser, "Test | [RFC6808] Ciavattone, L., Geib, R., Morton, A., and M. Wieser, "Test | |||
Plan and Results Supporting Advancement of RFC 2679 on the | Plan and Results Supporting Advancement of RFC 2679 on the | |||
Standards Track", RFC 6808, DOI 10.17487/RFC6808, December | Standards Track", RFC 6808, DOI 10.17487/RFC6808, December | |||
2012, <http://www.rfc-editor.org/info/rfc6808>. | 2012, <http://www.rfc-editor.org/info/rfc6808>. | |||
[RFC6921] Hinden, R., "Design Considerations for Faster-Than-Light | ||||
(FTL) Communication", RFC 6921, DOI 10.17487/RFC6921, | ||||
April 2013, <http://www.rfc-editor.org/info/rfc6921>. | ||||
[RFC7594] Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., | ||||
Aitken, P., and A. Akhter, "A Framework for Large-Scale | ||||
Measurement of Broadband Performance (LMAP)", RFC 7594, | ||||
DOI 10.17487/RFC7594, September 2015, | ||||
<http://www.rfc-editor.org/info/rfc7594>. | ||||
Acknowledgements | ||||
For [RFC2679], special thanks are due to Vern Paxson of Lawrence | ||||
Berkeley Labs for his helpful comments on issues of clock uncertainty | ||||
and statistics. Thanks also to Garry Couch, Will Leland, Andy | ||||
Scherrer, Sean Shapira, and Roland Wittig for several useful | ||||
suggestions. | ||||
For this document, thanks to Joachim Fabini, Ruediger Geib, Nalini | ||||
Elkins, and Barry Constantine for sharing their measurement | ||||
experience as part of their careful reviews. Brian Carpenter and | ||||
Scott Bradner provided useful feedback at IETF Last Call. | ||||
Authors' Addresses | Authors' Addresses | |||
Guy Almes | Guy Almes | |||
Texas A&M | Texas A&M | |||
Email: almes@acm.org | Email: almes@acm.org | |||
Sunil Kalidindi | Sunil Kalidindi | |||
Ixia | Ixia | |||
skipping to change at page 25, line 36 | skipping to change at page 27, line 26 | |||
Matt Zekauskas | Matt Zekauskas | |||
Internet2 | Internet2 | |||
Email: matt@internet2.edu | Email: matt@internet2.edu | |||
Al Morton (editor) | Al Morton (editor) | |||
AT&T Labs | AT&T Labs | |||
200 Laurel Avenue South | 200 Laurel Avenue South | |||
Middletown, NJ 07748 | Middletown, NJ 07748 | |||
USA | United States | |||
Phone: +1 732 420 1571 | Phone: +1 732 420 1571 | |||
Fax: +1 732 368 1192 | Fax: +1 732 368 1192 | |||
Email: acmorton@att.com | Email: acmorton@att.com | |||
URI: http://home.comcast.net/~acmacm/ | URI: http://home.comcast.net/~acmacm/ | |||
End of changes. 162 change blocks. | ||||
534 lines changed or deleted | 536 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |