| rfc9198.original | rfc9198.txt | |||
|---|---|---|---|---|
| Network Working Group J. Alvarez-Hamelin | Internet Engineering Task Force (IETF) J. Alvarez-Hamelin | |||
| Internet-Draft Universidad de Buenos Aires | Request for Comments: 9198 Universidad de Buenos Aires | |||
| Updates: 2330 (if approved) A. Morton | Updates: 2330 A. Morton | |||
| Intended status: Standards Track AT&T Labs | Category: Standards Track AT&T Labs | |||
| Expires: February 14, 2021 J. Fabini | ISSN: 2070-1721 J. Fabini | |||
| TU Wien | TU Wien | |||
| C. Pignataro | C. Pignataro | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| R. Geib | R. Geib | |||
| Deutsche Telekom | Deutsche Telekom | |||
| August 13, 2020 | May 2022 | |||
| Advanced Unidirectional Route Assessment (AURA) | Advanced Unidirectional Route Assessment (AURA) | |||
| draft-ietf-ippm-route-10 | ||||
| Abstract | Abstract | |||
| This memo introduces an advanced unidirectional route assessment | This memo introduces an advanced unidirectional route assessment | |||
| (AURA) metric and associated measurement methodology, based on the IP | (AURA) metric and associated measurement methodology based on the IP | |||
| Performance Metrics (IPPM) Framework RFC 2330. This memo updates RFC | Performance Metrics (IPPM) framework (RFC 2330). This memo updates | |||
| 2330 in the areas of path-related terminology and path description, | RFC 2330 in the areas of path-related terminology and path | |||
| primarily to include the possibility of parallel subpaths between a | description, primarily to include the possibility of parallel | |||
| given Source and Destination pair, owing to the presence of multi- | subpaths between a given Source and Destination pair, owing to the | |||
| path technologies. | presence of multipath technologies. | |||
| 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 https://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 7841. | ||||
| This Internet-Draft will expire on February 14, 2021. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9198. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2022 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 Revised BSD License text as described in Section 4.e of the | |||
| the Trust Legal Provisions and are provided without warranty as | Trust Legal Provisions and are provided without warranty as described | |||
| described in the Simplified BSD License. | in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Issues with Earlier Work to Define a Route Metric . . . . 3 | 1.1. Issues with Earlier Work to Define a Route Metric | |||
| 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 1.2. Requirements Language | |||
| 2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Scope | |||
| 3. Route Metric Specifications . . . . . . . . . . . . . . . . . 5 | 3. Route Metric Specifications | |||
| 3.1. Terms and Definitions . . . . . . . . . . . . . . . . . . 5 | 3.1. Terms and Definitions | |||
| 3.2. Formal Name . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Formal Name | |||
| 3.3. Parameters . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.3. Parameters | |||
| 3.4. Metric Definitions . . . . . . . . . . . . . . . . . . . 7 | 3.4. Metric Definitions | |||
| 3.5. Related Round-Trip Delay and Loss Definitions . . . . . . 9 | 3.5. Related Round-Trip Delay and Loss Definitions | |||
| 3.6. Discussion . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.6. Discussion | |||
| 3.7. Reporting the Metric . . . . . . . . . . . . . . . . . . 10 | 3.7. Reporting the Metric | |||
| 4. Route Assessment Methodologies . . . . . . . . . . . . . . . 11 | 4. Route Assessment Methodologies | |||
| 4.1. Active Methodologies . . . . . . . . . . . . . . . . . . 11 | 4.1. Active Methodologies | |||
| 4.1.1. Temporal Composition for Route Metrics . . . . . . . 13 | 4.1.1. Temporal Composition for Route Metrics | |||
| 4.1.2. Routing Class Identification . . . . . . . . . . . . 15 | 4.1.2. Routing Class Identification | |||
| 4.1.3. Intermediate Observation Point Route Measurement . . 16 | 4.1.3. Intermediate Observation Point Route Measurement | |||
| 4.2. Hybrid Methodologies . . . . . . . . . . . . . . . . . . 16 | 4.2. Hybrid Methodologies | |||
| 4.3. Combining Different Methods . . . . . . . . . . . . . . . 17 | 4.3. Combining Different Methods | |||
| 5. Background on Round-Trip Delay Measurement Goals . . . . . . 17 | 5. Background on Round-Trip Delay Measurement Goals | |||
| 6. RTD Measurements Statistics . . . . . . . . . . . . . . . . . 18 | 6. RTD Measurements Statistics | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | 7. Security Considerations | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 | 8. IANA Considerations | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 | 9. References | |||
| 10. Appendix I MPLS Methods for Route Assessment . . . . . . . . 21 | 9.1. Normative References | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 9.2. Informative References | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 22 | Appendix A. MPLS Methods for Route Assessment | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 24 | Acknowledgements | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| The IETF IP Performance Metrics (IPPM) working group first created a | The IETF IP Performance Metrics (IPPM) Working Group first created a | |||
| framework for metric development in [RFC2330]. This framework has | framework for metric development in [RFC2330]. This framework has | |||
| stood the test of time and enabled development of many fundamental | stood the test of time and enabled development of many fundamental | |||
| metrics. It has been updated in the area of metric composition | metrics. It has been updated in the area of metric composition | |||
| [RFC5835] and in several areas related to active stream measurement | ||||
| [RFC5835], and in several areas related to active stream measurement | ||||
| of modern networks with reactive properties [RFC7312]. | of modern networks with reactive properties [RFC7312]. | |||
| The [RFC2330] framework motivated the development of "performance and | The framework in [RFC2330] motivated the development of "performance | |||
| reliability metrics for paths through the Internet," and Section 5 of | and reliability metrics for paths through the Internet"; Section 5 of | |||
| [RFC2330] defines terms that support description of a path under | [RFC2330] defines terms that support description of a path under | |||
| test. However, metrics for assessment of paths and related | test. However, metrics for assessment of paths and related | |||
| performance aspects had not been attempted in IPPM when the [RFC2330] | performance aspects had not been attempted in IPPM when the framework | |||
| framework was written. | in [RFC2330] was written. | |||
| This memo takes up the route measurement challenge and specifies a | This memo takes up the Route measurement challenge and specifies a | |||
| new route metric, two practical frameworks for methods of measurement | new Route metric, two practical frameworks for methods of measurement | |||
| (using either active or hybrid active-passive methods [RFC7799]), and | (using either active or hybrid active-passive methods [RFC7799]), and | |||
| Round-Trip Delay and link information discovery using the results of | Round-Trip Delay and link information discovery using the results of | |||
| measurements. All route measurements are limited by the willingness | measurements. All Route measurements are limited by the willingness | |||
| of hosts along the path to be discovered, to cooperate with the | of Hosts along the path to be discovered, to cooperate with the | |||
| methods used, or to recognize that the measurement operation is | methods used, or to recognize that the measurement operation is | |||
| taking place (such as when tunnels are present). | taking place (such as when tunnels are present). | |||
| 1.1. Issues with Earlier Work to Define a Route Metric | 1.1. Issues with Earlier Work to Define a Route Metric | |||
| Section 7 of [RFC2330] presented a simple example of a "route" metric | Section 7 of [RFC2330] presents a simple example of a "Route" metric | |||
| along with several other examples. The example is reproduced below | along with several other examples. The example is reproduced below | |||
| (where the reference is to Section 5 of [RFC2330]): | (where the reference is to Section 5 of [RFC2330]): | |||
| "route: The path, as defined in Section 5, from A to B at a given | | route: The path, as defined in Section 5, from A to B at a given | |||
| time." | | time. | |||
| This example provides a starting point to develop a more complete | This example provides a starting point to develop a more complete | |||
| definition of route. Areas needing clarification include: | definition of Route. Areas needing clarification include: | |||
| Time: In practice, the route will be assessed over a time interval, | Time: In practice, the Route will be assessed over a time interval | |||
| because active path detection methods like Paris Traceroute [PT] | because active path detection methods like Paris-traceroute [PT] | |||
| rely on hop limits for their operation and cannot accomplish | rely on Hop Limits for their operation and cannot accomplish | |||
| discovery of all hosts using a single packet. | discovery of all Hosts using a single packet. | |||
| Type-P: The legacy route definition lacks the option to cater for | Type-P: The legacy Route definition lacks the option to cater for | |||
| packet-dependent routing. In this memo, we assess the route for a | packet-dependent routing. In this memo, we assess the Route for a | |||
| specific packet of Type-P, and reflect this in the metric | specific packet of Type-P and reflect this in the metric | |||
| definition. The methods of measurement determine the specific | definition. The methods of measurement determine the specific | |||
| Type-P used. | Type-P used. | |||
| Parallel Paths: Parallel paths are a reality of the Internet and a | Parallel Paths: Parallel paths are a reality of the Internet and a | |||
| strength of advanced route assessment methods, so the metric must | strength of advanced Route assessment methods, so the metric must | |||
| acknowledge this possibility. Use of Equal Cost Multi-Path (ECMP) | acknowledge this possibility. Use of Equal-Cost Multipath (ECMP) | |||
| and Unequal Cost Multi-Path (UCMP) technologies are common sources | and Unequal-Cost Multipath (UCMP) technologies are common sources | |||
| of parallel subpaths. | of parallel subpaths. | |||
| Cloud Subpath: May contain hosts that do not decrement hop limit, | Cloud Subpath: Cloud subpaths may contain Hosts that do not | |||
| but may have two or more exchange links connecting "discoverable" | decrement the Hop Limit but may have two or more exchange links | |||
| hosts or routers. Parallel subpaths contained within clouds | connecting "discoverable" Hosts or routers. Parallel subpaths | |||
| cannot be discovered. The assessment methods only discover hosts | contained within clouds cannot be discovered. The assessment | |||
| or routers on the path that decrement hop limit, or cooperate with | methods only discover Hosts or routers on the path that decrement | |||
| interrogation protocols. The presence of tunnels and nested | Hop Limit or cooperate with interrogation protocols. The presence | |||
| tunnels further complicate assessment by hiding hops. | of tunnels and nested tunnels further complicate assessment by | |||
| hiding Hops. | ||||
| Hop: Although the [RFC2330] definition of a hop was a link-host | Hop: The definition of Hop in [RFC2330] was a link-Host pair. | |||
| pair, only hosts that are discoverable or have the capability to | However, only Hosts that were discoverable and cooperated with | |||
| cooperate with interrogation protocols where link information may | interrogation protocols (where link information may be exposed) | |||
| be exposed. | provided both link and Host information. | |||
| The refined definition of Route metrics begins in the sections that | Note that the actual definitions appear in Section 3.1. | |||
| follow. | ||||
| 1.2. Requirements Language | 1.2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14[RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Scope | 2. Scope | |||
| The purpose of this memo is to add new route metrics and methods of | The purpose of this memo is to add new Route metrics and methods of | |||
| measurement to the existing set of IPPM metrics. | measurement to the existing set of IPPM metrics. | |||
| The scope is to define route metrics that can identify the path taken | The scope is to define Route metrics that can identify the path taken | |||
| by a packet or a flow traversing the Internet between two hosts. | by a packet or a flow traversing the Internet between two Hosts. | |||
| Although primarily intended for hosts communicating on the Internet, | Although primarily intended for Hosts communicating on the Internet, | |||
| the definitions and metrics are constructed to be applicable to other | the definitions and metrics are constructed to be applicable to other | |||
| network domains, if desired. The methods of measurement to assess | network domains, if desired. The methods of measurement to assess | |||
| the path may not be able to discover all hosts comprising the path, | the path may not be able to discover all Hosts comprising the path, | |||
| but such omissions are often deterministic and explainable sources of | but such omissions are often deterministic and explainable sources of | |||
| error. | error. | |||
| This memo also specifies a framework for active methods of | This memo also specifies a framework for active methods of | |||
| measurement which uses the techniques described in [PT], as well as a | measurement that uses the techniques described in [PT] as well as a | |||
| framework for hybrid active-passive methods of measurement such as | framework for hybrid active-passive methods of measurement, such as | |||
| the Hybrid Type I method [RFC7799] described in | the Hybrid Type I method [RFC7799] described in [RFC9197]. Methods | |||
| [I-D.ietf-ippm-ioam-data]. Methods using [I-D.ietf-ippm-ioam-data] | using [RFC9197] are intended only for single administrative domains | |||
| are intended only for single administrative domains that provide a | that provide a protocol for explicit interrogation of Nodes on a | |||
| protocol for explicit interrogation of nodes on a path. Combinations | path. Combinations of active methods and hybrid active-passive | |||
| of active methods and hybrid active-passive methods are also in- | methods are also in scope. | |||
| scope. | ||||
| Further, this memo provides additional analysis of the round-trip | Further, this memo provides additional analysis of the Round-Trip | |||
| delay measurements made possible by the methods, in an effort to | Delay measurements made possible by the methods in an effort to | |||
| discover more details about the path, such as the link technology in | discover more details about the path, such as the link technology in | |||
| use. | use. | |||
| This memo updates Section 5 of [RFC2330] in the areas of path-related | This memo updates Section 5 of [RFC2330] in the areas of path-related | |||
| terminology and path description, primarily to include the | terminology and path description, primarily to include the | |||
| possibility of parallel subpaths between a given Source and | possibility of parallel subpaths between a given Source and | |||
| Destination address pair (possibly resulting from Equal Cost Multi- | Destination address pair (possibly resulting from ECMP and UCMP | |||
| Path (ECMP) and Unequal Cost Multi-Path (UCMP) technologies). | technologies). | |||
| There are several simple non-goals of this memo. There is no attempt | There are several simple non-goals of this memo. There is no attempt | |||
| to assess the reverse path from any host on the path to the host | to assess the reverse path from any Host on the path to the Host | |||
| attempting the path measurement. The reverse path contribution to | attempting the path measurement. The reverse path contribution to | |||
| delay will be that experienced by ICMP packets (in active methods), | delay will be that experienced by ICMP packets (in active methods) | |||
| and may be different from delays experienced by UDP or TCP packets. | and may be different from delays experienced by UDP or TCP packets. | |||
| Also, the round trip delay will include an unknown contribution of | Also, the Round-Trip Delay will include an unknown contribution of | |||
| processing time at the host that generates the ICMP response. | processing time at the Host that generates the ICMP response. | |||
| Therefore, the ICMP-based active methods are not supposed to yield | Therefore, the ICMP-based active methods are not supposed to yield | |||
| accurate, reproducible estimations of the Round-Trip Delay that UDP | accurate, reproducible estimations of the Round-Trip Delay that UDP | |||
| or TCP packets will experience. | or TCP packets will experience. | |||
| 3. Route Metric Specifications | 3. Route Metric Specifications | |||
| This section sets requirements for the components of the Route | This section sets requirements for the components of the route | |||
| Metric. | metric. | |||
| 3.1. Terms and Definitions | 3.1. Terms and Definitions | |||
| Host A Host as defined in [RFC2330] (a computer capable of IP | Host | |||
| communication, includes routers), a.k.a. RFC 2330 Host. | A Host (as defined in [RFC2330]) is a computer capable of IP | |||
| communication, including routers (aka an RFC 2330 Host). | ||||
| Node A Node is any network function on the path capable of IP-layer | Node | |||
| Communication, includes RFC 2330 Hosts. | A Node is any network function on the path capable of IP-layer | |||
| Communication, including RFC 2330 Hosts. | ||||
| Node Identity The unique address for Nodes communicating within the | Node Identity | |||
| network domain. For Nodes communicating on the Internet with IP, | The Node identity is the unique address for Nodes communicating | |||
| it is the globally routable IP address which the Node uses when | within the network domain. For Nodes communicating on the | |||
| communicating with other Nodes under normal or error conditions. | Internet with IP, it is the globally routable IP address that the | |||
| The Node Identity revealed (and its connection to a Node Name | Node uses when communicating with other Nodes under normal or | |||
| through reverse DNS) determines whether interfaces to parallel | error conditions. The Node identity revealed (and its connection | |||
| links can be associated with a single Node, or appear to identify | to a Node name through reverse DNS) determines whether interfaces | |||
| unique Nodes. | to parallel links can be associated with a single Node or appear | |||
| to identify unique Nodes. | ||||
| Discoverable Node Nodes that convey their Node Identity according to | Discoverable Node | |||
| the requirements of their network domain, such as when error | Discoverable Nodes are Nodes that convey their Node identity | |||
| conditions are detected by that Node. For Nodes communicating | according to the requirements of their network domain, such as | |||
| with IP packets, compliance with Section 3.2.2.4 of [RFC1122] when | when error conditions are detected by that Node. For Nodes | |||
| discarding a packet due to TTL or Hop Limit Exceeded condition, | communicating with IP packets, compliance with Section 3.2.2.4 of | |||
| MUST result in sending the corresponding Time Exceeded message | [RFC1122], when discarding a packet due to TTL or Hop Limit | |||
| (containing a form of Node identity) to the source. This | Exceeded condition, MUST result in sending the corresponding Time | |||
| requirement is also consistent with section 5.3.1 of [RFC1812] for | Exceeded message (containing a form of Node identity) to the | |||
| routers. | source. This requirement is also consistent with Section 5.3.1 of | |||
| [RFC1812] for routers. | ||||
| Cooperating Node Nodes that respond to direct queries for their Node | Cooperating Node | |||
| identity as part of a previously agreed and established | Cooperating Nodes are Nodes that respond to direct queries for | |||
| interrogation protocol. Nodes SHOULD also provide information | their Node identity as part of a previously established and agreed | |||
| such as arrival/departure interface identification, arrival | upon interrogation protocol. Nodes SHOULD also provide | |||
| timestamp, and any relevant information about the Node or specific | information such as arrival/departure interface identification, | |||
| link which delivered the query to the Node. | arrival timestamp, and any relevant information about the Node or | |||
| specific link that delivered the query to the Node. | ||||
| Hop specification A Hop specification MUST contain a Node Identity, | Hop specification | |||
| and MAY contain arrival and/or departure interface identification, | A Hop specification MUST contain a Node identity and MAY contain | |||
| round trip delay, and an arrival timestamp. | arrival and/or departure interface identification, Round-Trip | |||
| Delay, and an arrival timestamp. | ||||
| Routing Class A route that treats equally a class of different types | Routing Class | |||
| of packets, designated "C" (unrelated to address classes of the | Routing Class is a Route that treats a class of different types of | |||
| past) [RFC2330] [RFC8468]. Knowledge of such a class allows any | packets, designated "C" (unrelated to address classes of the past) | |||
| one of the types of packets within that class to be used for | equally ([RFC2330] [RFC8468]). Knowledge of such a class allows | |||
| subsequent measurement of the route. The designator "class C" is | any one of the types of packets within that class to be used for | |||
| used for historical reasons, see [RFC2330]. | subsequent measurement of the Route. The designator "class C" is | |||
| used for historical reasons; see [RFC2330]. | ||||
| 3.2. Formal Name | 3.2. Formal Name | |||
| The formal name of the metric is: | The formal name of the metric is: | |||
| Type-P-Route-Ensemble-Method-Variant | Type-P-Route-Ensemble-Method-Variant | |||
| abbreviated as Route Ensemble. | abbreviated as Route Ensemble. | |||
| Note that Type-P depends heavily on the chosen method and variant. | Note that Type-P depends heavily on the chosen method and variant. | |||
| 3.3. Parameters | 3.3. Parameters | |||
| This section lists the REQUIRED input factors to define and measure a | This section lists the REQUIRED input factors to define and measure a | |||
| Route metric, as specified in this memo. | Route metric, as specified in this memo. | |||
| o Src, the address of a Node (such as the globally routable IP | Src: the address of a Node (such as the globally routable IP | |||
| address). | address). | |||
| o Dst, the address of a Node (such as the globally routable IP | Dst: the address of a Node (such as the globally routable IP | |||
| address). | address). | |||
| o i, the limit on the number of Hops a specific packet may visit as | i: the limit on the number of Hops a specific packet may visit as it | |||
| it traverses from the Node at Src to the Node at Dst (such as the | traverses from the Node at Src to the Node at Dst (such as the TTL | |||
| TTL or Hop Limit). | or Hop Limit). | |||
| o MaxHops, the maximum value of i used, (i=1,2,3,...MaxHops). | MaxHops: the maximum value of i used (i=1,2,3,...MaxHops). | |||
| o T0, a time (start of measurement interval) | T0: a time (start of measurement interval). | |||
| o Tf, a time (end of measurement interval) | Tf: a time (end of measurement interval). | |||
| o MP(address), Measurement Point at address, such as Src or Dst, | MP(address): the Measurement Point at address, such as Src or Dst, | |||
| usually at the same node stack layer as "address". | usually at the same Node stack layer as "address". | |||
| o T, the Node time of a packet as measured at MP(Src), meaning | T: the Node time of a packet as measured at MP(Src), meaning | |||
| Measurement Point at the Source. | Measurement Point at the Source. | |||
| o Ta, the Node time of a reply packet's *arrival* as measured at | Ta: the Node time of a reply packet's *arrival* as measured at | |||
| MP(Src), assigned to packets that arrive within a "reasonable" | MP(Src), assigned to packets that arrive within a "reasonable" | |||
| time (see parameter below). | time (see parameter below). | |||
| o Tmax, a maximum waiting time for reply packets to return to the | Tmax: a maximum waiting time for reply packets to return to the | |||
| source, set sufficiently long to disambiguate packets with long | source, set sufficiently long to disambiguate packets with long | |||
| delays from packets that are discarded (lost), such that the | delays from packets that are discarded (lost), such that the | |||
| distribution of Round-Trip Delay is not truncated. | distribution of Round-Trip Delay is not truncated. | |||
| o F, the number of different flows simulated by the method and | F: the number of different flows simulated by the method and | |||
| variant. | variant. | |||
| o flow, the stream of packets with the same n-tuple of designated | flow: the stream of packets with the same n-tuple of designated | |||
| header fields that (when held constant) result in identical | header fields that (when held constant) result in identical | |||
| treatment in a multi-path decision (such as the decision taken in | treatment in a multipath decision (such as the decision taken in | |||
| load balancing). Note: The IPv6 flow label MAY be included in the | load balancing). Note: The IPv6 flow label MAY be included in the | |||
| flow definition if the MP(Src) is a Tunnel End Point (TEP) | flow definition if the MP(Src) is a Tunnel Endpoint (TEP) | |||
| complying with [RFC6438] guidelines. | complying with the guidelines in [RFC6438]. | |||
| o Type-P, the complete description of the packets for which this | Type-P: the complete description of the packets for which this | |||
| assessment applies (including the flow-defining fields). | assessment applies (including the flow-defining fields). | |||
| 3.4. Metric Definitions | 3.4. Metric Definitions | |||
| This section defines the REQUIRED measurement components of the Route | This section defines the REQUIRED measurement components of the Route | |||
| metrics (unless otherwise indicated): | metrics (unless otherwise indicated): | |||
| M, the total number of packets sent between T0 and Tf. | M: the total number of packets sent between T0 and Tf. | |||
| N, the smallest value of i needed for a packet to be received at Dst | N: the smallest value of i needed for a packet to be received at Dst | |||
| (sent between T0 and Tf). | (sent between T0 and Tf). | |||
| Nmax, the largest value of i needed for a packet to be received at | Nmax: the largest value of i needed for a packet to be received at | |||
| Dst (sent between T0 and Tf). Nmax may be equal to N. | Dst (sent between T0 and Tf). Nmax may be equal to N. | |||
| Next define a *singleton* definition for a Node on the path, with | Next, define a *singleton* for a Node on the path with sufficient | |||
| sufficient indexes to identify all Nodes identified in a measurement | indexes to identify all Nodes identified in a measurement interval | |||
| interval (where *singleton* is part of the IPPM Framework [RFC2330]). | (where *singleton* is part of the IPPM Framework [RFC2330]). | |||
| A Hop Specification, designated h(i,j), the IP address and/or | singleton: A Hop specification, designated h(i,j), the IP address | |||
| identity of Discoverable Nodes (or Cooperating Nodes) that are i hops | and/or identity of Discoverable Nodes (or Cooperating Nodes) that | |||
| away from the Node with address = Src and part of Route j during the | are i Hops away from the Node with address = Src and part of Route | |||
| measurement interval, T0 to Tf. As defined here, a Hop singleton | j during the measurement interval T0 to Tf. As defined here, a | |||
| measurement MUST contain a Node Identity, hid(i,j), and MAY contain | Hop singleton measurement MUST contain a Node identity, hid(i,j), | |||
| one or more of the following attributes: | and MAY contain one or more of the following attributes: | |||
| o a(i,j) Arrival Interface ID (e.g., when [RFC5837] is supported) | * a(i,j) Arrival Interface ID (e.g., when [RFC5837] is supported) | |||
| o d(i,j) Departure Interface ID (e.g., when [RFC5837] is supported) | * d(i,j) Departure Interface ID (e.g., when [RFC5837] is supported) | |||
| o t(i,j) Arrival Timestamp, where t(i,j) is ideally supplied by the | * t(i,j) arrival timestamp, where t(i,j) is ideally supplied by the | |||
| Hop. (Note that t(i,j) might be approximated from the sending time | Hop (note that t(i,j) might be approximated from the sending time | |||
| of the packet that revealed the Hop, e.g., when the round trip | of the packet that revealed the Hop, e.g., when the round-trip | |||
| response time is available and divided by 2.) | response time is available and divided by 2) | |||
| o Measurements of Round-Trip Delay (for each packet that reveals the | * Measurements of Round-Trip Delay (for each packet that reveals the | |||
| same Node Identity and flow attributes, then this attribute is | same Node identity and flow attributes, then this attribute is | |||
| computed, see next section) | computed; see next section) | |||
| Node Identities and related information can be ordered by their | Node identities and related information can be ordered by their | |||
| distance from the Node with address Src in Hops h(i,j). Based on | distance from the Node with address Src in Hops h(i,j). Based on | |||
| this, two forms of Routes are distinguished: | this, two forms of Routes are distinguished: | |||
| A Route Ensemble is defined as the combination of all routes | A Route Ensemble is defined as the combination of all Routes | |||
| traversed by different flows from the Node at Src address to the Node | traversed by different flows from the Node at Src address to the Node | |||
| at Dst address. A single Route traversed by a single flow | at Dst address. A single Route traversed by a single flow | |||
| (determined by an unambiguous tuple of addresses Src and Dst, and | (determined by an unambiguous tuple of addresses Src and Dst and | |||
| other identical flow criteria) is a member of the Route Ensemble and | other identical flow criteria) is a member of the Route Ensemble and | |||
| called a Member Route. | called a Member Route. | |||
| Using h(i,j) and components and parameters, further define: | Using h(i,j) and components and parameters further define: | |||
| When considering the set of Hops in the context of a single flow, a | When considering the set of Hops in the context of a single flow, a | |||
| Member Route j is an ordered list {h(1,j), ... h(Nj, j)} where h(i-1, | Member Route j is an ordered list {h(1,j), ... h(Nj, j)} where h(i-1, | |||
| j) and h(i, j) are 1 hop away from each other and Nj satisfying | j) and h(i, j) are one Hop away from each other and Nj satisfying | |||
| h(Nj,j)=Dst is the minimum count of Hops needed by the packet on | h(Nj,j)=Dst is the minimum count of Hops needed by the packet on | |||
| Member Route j to reach Dst. Member Routes must be unique. The | member Route j to reach Dst. Member Routes must be unique. The | |||
| uniqueness property requires that any two Member routes j and k that | uniqueness property requires that any two Member Routes, j and k, | |||
| are part of the same Route Ensemble differ either in terms of minimum | that are part of the same Route Ensemble differ either in terms of | |||
| hop count Nj and Nk to reach the destination Dst, or, in the case of | minimum Hop count Nj and Nk to reach the destination Dst or, in the | |||
| identical hop count Nj=Nk, they have at least one distinct Hop: | case of identical Hop count Nj=Nk, they have at least one distinct | |||
| h(i,j) != h(i,k) for at least one i (i=1..Nj). | Hop: h(i,j) != h(i,k) for at least one i (i=1..Nj). | |||
| All the optional information collected to describe a Member Route, | All the optional information collected to describe a Member Route, | |||
| such as the arrival interface, departure interface, and Round Trip | such as the arrival interface, departure interface, and Round-Trip | |||
| Delay at each Hop, turns each list item into a rich structure. There | Delay at each Hop, turns each list item into a rich structure. There | |||
| may be information on the links between Hops, possibly information on | may be information on the links between Hops, possible information on | |||
| the routing (arrival interface and departure interface), an estimate | the routing (arrival interface and departure interface), an estimate | |||
| of distance between Hops based on Round-Trip Delay measurements and | of distance between Hops based on Round-Trip Delay measurements and | |||
| calculations, and a time stamp indicating when all these additional | calculations, and a timestamp indicating when all these additional | |||
| details were valid. | details were measured. | |||
| The Route Ensemble from Src to Dst, during the measurement interval | The Route Ensemble from Src to Dst, during the measurement interval | |||
| T0 to Tf, is the aggregate of all m distinct Member Routes discovered | T0 to Tf, is the aggregate of all m distinct Member Routes discovered | |||
| between the two Nodes with Src and Dst addresses. More formally, | between the two Nodes with Src and Dst addresses. More formally, | |||
| with the Node having address Src omitted: | with the Node having address Src omitted: | |||
| Route Ensemble = { | Route Ensemble = { | |||
| {h(1,1), h(2,1), h(3,1), ... h(N1,1)=Dst}, | {h(1,1), h(2,1), h(3,1), ... h(N1,1)=Dst}, | |||
| {h(1,2), h(2,2), h(3,2),..., h(N2,2)=Dst}, | {h(1,2), h(2,2), h(3,2),..., h(N2,2)=Dst}, | |||
| ... | ... | |||
| {h(1,m), h(2,m), h(3,m), ....h(Nm,m)=Dst} | {h(1,m), h(2,m), h(3,m), ....h(Nm,m)=Dst} | |||
| } | } | |||
| where the following conditions apply: i <= Nj <= Nmax (j=1..m) | where the following conditions apply: i <= Nj <= Nmax (j=1..m) | |||
| Note that some h(i,j) may be empty (null) in the case that systems do | Note that some h(i,j) may be empty (null) in the case that systems do | |||
| not reply (not discoverable, or not cooperating). | not reply (not discoverable or not cooperating). | |||
| h(i-1,j) and h(i,j) are the Hops on the same Member Route one hop | h(i-1,j) and h(i,j) are the Hops on the same Member Route one Hop | |||
| away from each other. | away from each other. | |||
| Hop h(i,j) may be identical with h(k,l) for i!=k and j!=l ; which | Hop h(i,j) may be identical with h(k,l) for i!=k and j!=l, which | |||
| means there may be portions shared among different Member Routes | means there may be portions shared among different Member Routes | |||
| (parts of Member Routes may overlap). | (parts of Member Routes may overlap). | |||
| 3.5. Related Round-Trip Delay and Loss Definitions | 3.5. Related Round-Trip Delay and Loss Definitions | |||
| RTD(i,j,T) is defined as a singleton of the [RFC2681] Round-Trip | RTD(i,j,T) is defined as a singleton of the [RFC2681] Round-Trip | |||
| Delay between the Node with address = Src and the Node at Hop h(i,j) | Delay between the Node with address = Src and the Node at Hop h(i,j) | |||
| at time T. | at time T. | |||
| RTL(i,j,T) is defined as a singleton of the [RFC6673] Round-trip Loss | RTL(i,j,T) is defined as a singleton of the [RFC6673] Round-Trip Loss | |||
| between the Node with address = Src and the Node at Hop h(i,j) at | between the Node with address = Src and the Node at Hop h(i,j) at | |||
| time T. | time T. | |||
| 3.6. Discussion | 3.6. Discussion | |||
| Depending on the way that Node Identity is revealed, it may be | Depending on the way that the Node identity is revealed, it may be | |||
| difficult to determine parallel subpaths between the same pair of | difficult to determine parallel subpaths between the same pair of | |||
| Nodes (i.e. multiple parallel links). It is easier to detect | Nodes (i.e., multiple parallel links). It is easier to detect | |||
| parallel subpaths involving different Nodes. | parallel subpaths involving different Nodes. | |||
| o If a pair of discovered Nodes identify two different addresses (IP | * If a pair of discovered Nodes identify two different addresses (IP | |||
| or not), then they will appear to be different Nodes. See item | or not), then they will appear to be different Nodes. See item | |||
| below. | below. | |||
| o If a pair of discovered Nodes identify two different IP addresses, | * If a pair of discovered Nodes identify two different IP addresses | |||
| and the IP addresses resolve to the same Node name (in the DNS), | and the IP addresses resolve to the same Node name (in the DNS), | |||
| then they will appear to be the same Nodes. | then they will appear to be the same Node. | |||
| o If a discovered Node always replies using the same network | * If a discovered Node always replies using the same network | |||
| address, regardless of the interface a packet arrives on, then | address, regardless of the interface a packet arrives on, then | |||
| multiple parallel links cannot be detected in that network domain. | multiple parallel links cannot be detected in that network domain. | |||
| This condition may apply to traceroute-style methods, but may not | This condition may apply to traceroute-style methods but may not | |||
| apply to other hybrid methods based on In-situ Operations, | apply to other hybrid methods based on In situ Operations, | |||
| Administration, and Maintenance (IOAM). For example, if the | Administration, and Maintenance (IOAM). For example, if the ICMP | |||
| [RFC5837] ICMP extension mechanism is implemented, then parallel | extension mechanism described in [RFC5837] is implemented, then | |||
| links can be detected with the discovery traceroute-style methods. | parallel links can be detected with the discovery traceroute-style | |||
| methods. | ||||
| o If parallel links between routers are aggregated below the IP | * If parallel links between routers are aggregated below the IP | |||
| layer, then from Node point of view, all these links share the | layer, then, from the Node's point of view, all these links share | |||
| same pair of IP addresses. The existence of these parallel links | the same pair of IP addresses. The existence of these parallel | |||
| can't be detected at the IP layer. This applies to other network | links can't be detected at the IP layer. This applies to other | |||
| domains with layers below them, as well. This condition may apply | network domains with layers below them as well. This condition | |||
| to traceroute-style methods, but may not apply to other hybrid | may apply to traceroute-style methods but may not apply to other | |||
| methods based on IOAM. | hybrid methods based on IOAM. | |||
| When a route assessment employs IP packets (for example), the reality | When a Route assessment employs IP packets (for example), the reality | |||
| of flow assignment to parallel subpaths involves layers above IP. | of flow assignment to parallel subpaths involves layers above IP. | |||
| Thus, the measured Route Ensemble is applicable to IP and higher | Thus, the measured Route Ensemble is applicable to IP and higher | |||
| layers (as described in the methodology's packet of Type-P and flow | layers (as described in the methodology's packet of Type-P and flow | |||
| parameters). | parameters). | |||
| 3.7. Reporting the Metric | 3.7. Reporting the Metric | |||
| An Information Model and an XML Data Model for Storing Traceroute | An Information Model and an XML Data Model for Storing Traceroute | |||
| Measurements is available in [RFC5388]. The measured information at | Measurements is available in [RFC5388]. The measured information at | |||
| each hop includes four pieces of information: a one-dimensional hop | each Hop includes four pieces of information: a one-dimensional Hop | |||
| index, Node symbolic address, Node IP address, and RTD for each | index, Node symbolic address, Node IP address, and RTD for each | |||
| response. | response. | |||
| The description of Hop information that may be collected according to | The description of Hop information that may be collected according to | |||
| this memo covers more dimensions, as defined in Section 3.4 above. | this memo covers more dimensions, as defined in Section 3.4. For | |||
| example, the Hop index is two-dimensional to capture the complexity | ||||
| For example, the Hop index is two-dimensional to capture the | of a Route Ensemble, and it contains corresponding Node identities at | |||
| complexity of a Route Ensemble, and it contains corresponding Node | a minimum. The models need to be expanded to include these features | |||
| identities at a minimum. The models need to be expanded to include | as well as Arrival Interface ID, Departure Interface ID, and arrival | |||
| these features, as well as Arrival Interface ID, Departure Interface | timestamp, when available. The original sending Timestamp from the | |||
| ID, and Arrival Timestamp, when available. The original sending | Src Node anchors a particular measurement in time. | |||
| Timestamp from the Src Node anchors a particular measurement in time. | ||||
| 4. Route Assessment Methodologies | 4. Route Assessment Methodologies | |||
| There are two classes of methods described in this section, active | There are two classes of methods described in this section, active | |||
| methods relying on the reaction to TTL or Hop Limit Exceeded | methods relying on the reaction to TTL or Hop Limit Exceeded | |||
| condition to discover Nodes on a path, and Hybrid active-passive | condition to discover Nodes on a path and hybrid active-passive | |||
| methods that involve direct interrogation of cooperating Nodes | methods that involve direct interrogation of Cooperating Nodes | |||
| (usually within a single domain). Description of these methods | (usually within a single domain). Description of these methods | |||
| follow. | follow. | |||
| 4.1. Active Methodologies | 4.1. Active Methodologies | |||
| This section describes the method employed by current open source | This section describes the method employed by current open-source | |||
| tools, thereby providing a practical framework for further advanced | tools, thereby providing a practical framework for further advanced | |||
| techniques to be included as method variants. This method is | techniques to be included as method variants. This method is | |||
| applicable for use across multiple administrative domains. | applicable for use across multiple administrative domains. | |||
| Internet routing is complex because it depends on the policies of | Internet routing is complex because it depends on the policies of | |||
| thousands of Autonomous Systems (AS). Most routers perform load | thousands of Autonomous Systems (ASes). Most routers perform load | |||
| balancing on flows using a form of Equal Cost Multiple Path (ECMP). | balancing on flows using a form of ECMP. [RFC2991] describes a | |||
| [RFC2991] describes a number of flow-based or hashed approaches | number of flow-based or hashed approaches (e.g., Modulo-N Hash, Hash- | |||
| (e.g., Modulo-N Hash, Hash-Threshold, Highest Random Weight (HRW)), | Threshold, and Highest Random Weight (HRW)) and makes some good | |||
| and makes some good suggestions. Flow-based ECMP avoids increased | suggestions. Flow-based ECMP avoids increased packet Delay Variation | |||
| packet delay variation and possibly overwhelming levels of packet | and possibly overwhelming levels of packet reordering in flows. | |||
| reordering in flows. | ||||
| A few routers still divide the workload through packet-based | A few routers still divide the workload through packet-based | |||
| techniques, such as a round-robin scheme to distribute every new | techniques, such as a round-robin scheme to distribute every new | |||
| outgoing packet to multiple links, as explained in [RFC2991]. The | outgoing packet to multiple links, as explained in [RFC2991]. The | |||
| methods described in this section assume flow-based ECMP. | methods described in this section assume flow-based ECMP. | |||
| Taking into account that Internet protocol was designed under the | Taking into account that Internet protocol was designed under the | |||
| "end-to-end" principle, the IP payload and its header do not provide | "end-to-end" principle, the IP payload and its header do not provide | |||
| any information about the routes or path necessary to reach some | any information about the Routes or path necessary to reach some | |||
| destination. For this reason, the popular tool traceroute was | destination. For this reason, the popular tool, traceroute, was | |||
| developed to gather the IP addresses of each hop along a path using | developed to gather the IP addresses of each Hop along a path using | |||
| the ICMP protocol [RFC0792]. Traceroute also measures RTD from each | ICMP [RFC0792]. Traceroute also measures RTD from each Hop. However, | |||
| hop. However, the growing complexity of the Internet makes it more | the growing complexity of the Internet makes it more challenging to | |||
| challenging to develop an accurate traceroute implementation. For | develop an accurate traceroute implementation. For instance, the | |||
| instance, the early traceroute tools would be inaccurate in the | early traceroute tools would be inaccurate in the current network, | |||
| current network, mainly because they were not designed to retain a | mainly because they were not designed to retain a flow state. | |||
| flow state. However, evolved traceroute tools, such as Paris- | However, evolved traceroute tools, such as Paris-traceroute ([PT] | |||
| traceroute [PT] [MLB] and Scamper [SCAMPER], expect to encounter ECMP | [MLB]) and Scamper ([SCAMPER]), expect to encounter ECMP and achieve | |||
| and achieve more accurate results when they do, where Scamper ensures | more accurate results when they do, where Scamper ensures traceroute | |||
| traceroute packets will follow the same path in 98% of | packets will follow the same path in 98% of cases ([SCAMPER]). | |||
| cases[SCAMPER]. | ||||
| Today's traceroute tools send Type-P of packets, either ICMP, UDP, or | Today's traceroute tools send Type-P of packets, which are either | |||
| TCP. UDP and TCP are used when a particular characteristic needs to | ICMP, UDP, or TCP. UDP and TCP are used when a particular | |||
| be verified, such as filtering or traffic shaping on specific ports | characteristic needs to be verified, such as filtering or traffic | |||
| (i.e., services). UDP and TCP traceroute are also used when ICMP | shaping on specific ports (i.e., services). UDP and TCP traceroute | |||
| responses are not received. [SCAMPER] supports IPv6 traceroute | are also used when ICMP responses are not received. [SCAMPER] | |||
| measurements, keeping the FlowLabel constant in all packets. | supports IPv6 traceroute measurements, keeping the Flow Label | |||
| constant in all packets. | ||||
| Paris-traceroute allows its users to measure the RTD to every Node of | Paris-traceroute allows its users to measure the RTD to every Node of | |||
| the path for a particular flow. Furthermore, either Paris-traceroute | the path for a particular flow. Furthermore, either Paris-traceroute | |||
| or Scamper is capable of unveiling the many available paths between a | or Scamper is capable of unveiling the many available paths between a | |||
| source and destination (which are visible to active methods). This | source and destination (which are visible to active methods). This | |||
| task is accomplished by repeating complete traceroute measurements | task is accomplished by repeating complete traceroute measurements | |||
| with different flow parameters for each measurement; Paris-traceroute | with different flow parameters for each measurement; Paris-traceroute | |||
| provides "exhaustive" mode while scamper provides "tracelb" (stands | provides an "exhaustive" mode, while Scamper provides "tracelb" | |||
| for traceroute load balance). The Framework for IP Performance | (which stands for "traceroute load balance"). "Framework for IP | |||
| Metrics (IPPM) ([RFC2330] updated by[RFC7312]) has the flexibility to | Performance Metrics" [RFC2330], updated by [RFC7312], has the | |||
| require that the Round-Trip Delay measurement [RFC2681] uses packets | flexibility to require that the Round-Trip Delay measurement | |||
| with the constraints to assure that all packets in a single | [RFC2681] uses packets with the constraints to assure that all | |||
| measurement appear as the same flow. This flexibility covers ICMP, | packets in a single measurement appear as the same flow. This | |||
| UDP, and TCP. The accompanying methodology of [RFC2681] needs to be | flexibility covers ICMP, UDP, and TCP. The accompanying methodology | |||
| expanded to report the sequential hop identifiers along with RTD | of [RFC2681] needs to be expanded to report the sequential Hop | |||
| measurements, but no new metric definition is needed. | identifiers along with RTD measurements, but no new metric definition | |||
| is needed. | ||||
| The advanced route assessment methods used in Paris-traceroute [PT] | The advanced Route assessment methods used in Paris-traceroute [PT] | |||
| keep the critical fields constant for every packet to maintain the | keep the critical fields constant for every packet to maintain the | |||
| appearance of the same flow. When considering IPv6 headers, it is | appearance of the same flow. When considering IPv6 headers, it is | |||
| necessary to ensure that the IP source and destination addresses and | necessary to ensure that the IP Source and Destination addresses and | |||
| the FlowLabel are constant (but note that many routers ignore the | Flow Label are constant (but note that many routers ignore the Flow | |||
| FlowLabel field at this time), see [RFC6437]. Use of IPv6 Extension | Label field at this time); see [RFC6437]. Use of IPv6 Extension | |||
| Headers may add critical fields, and SHOULD be avoided. In IPv4, | Headers may add critical fields and SHOULD be avoided. In IPv4, | |||
| certain fields of the IP header and the first four bytes of the IP | certain fields of the IP header and the first 4 bytes of the IP | |||
| payload should remain constant in a flow. In the IPv4 header, the IP | payload should remain constant in a flow. In the IPv4 header, the IP | |||
| source and destination addresses, protocol number, and Diffserv | Source and Destination addresses, protocol number, and Diffserv | |||
| fields identify flows. The first four payload bytes include the UDP | fields identify flows. The first 4 payload bytes include the UDP and | |||
| and TCP ports, and the ICMP type, code, and checksum fields. | TCP ports and the ICMP type, code, and checksum fields. | |||
| Maintaining a constant ICMP checksum in IPv4 is most challenging, as | Maintaining a constant ICMP checksum in IPv4 is most challenging, as | |||
| the ICMP sequence number or identifier fields will usually change for | the ICMP sequence number or identifier fields will usually change for | |||
| different probes of the same path. Probes should use arbitrary bytes | different probes of the same path. Probes should use arbitrary bytes | |||
| in the ICMP data field to offset changes to sequence number and | in the ICMP data field to offset changes to the sequence number and | |||
| identifier, thus keeping the checksum constant. | identifier, thus keeping the checksum constant. | |||
| Finally, it is also essential to route the resulting ICMP Time | Finally, it is also essential to Route the resulting ICMP Time | |||
| Exceeded messages along a consistent path. In IPv6, the fields above | Exceeded messages along a consistent path. In IPv6, the fields above | |||
| are sufficient. In IPv4, the ICMP Time Exceeded message will contain | are sufficient. In IPv4, the ICMP Time Exceeded message will contain | |||
| the IP header and the first eight bytes of the IP payload, which | the IP header and the first 8 bytes of the IP payload, both of which | |||
| affects its ICMP checksum. The TCP sequence number, UDP Length, and | affect its ICMP checksum calculation. The TCP sequence number, UDP | |||
| UDP checksum will affect this value, and should remain constant. | length, and UDP checksum will affect this value and should remain | |||
| constant. | ||||
| Formally, to maintain the same flow in the measurements to a | Formally, to maintain the same flow in the measurements to a | |||
| particular hop, the Type-P-Route-Ensemble-Method-Variant packets | particular Hop, the Type-P-Route-Ensemble-Method-Variant packets | |||
| should be[PT]: | should have the following attributes (see [PT]): | |||
| o TCP case: For IPv4, the fields Src, Dst, port-Src, port_Dst, | TCP case: For IPv4, the fields Src, Dst, port-Src, port_Dst, | |||
| sequence number, and Diffserv Field SHOULD be the same. For IPv6, | sequence number, and Diffserv SHOULD be the same. For IPv6, the | |||
| the field FlowLabel, Src and Dst SHOULD be the same. | fields Flow Label, Src, and Dst SHOULD be the same. | |||
| o UDP case: For IPv4, the fields Src, Dst, port-Src, port-Dst, | UDP case: For IPv4, the fields Src, Dst, port-Src, port-Dst, and | |||
| Diffserv should be the same, and the UDP-checksum SHOULD change to | Diffserv should be the same, and the UDP checksum SHOULD change to | |||
| keep the IP checksum of the ICMP time exceeded reply constant. | keep the IP checksum of the ICMP Time Exceeded reply constant. | |||
| Then, the data length should be fixed, and the data field is used | Then, the data length should be fixed, and the data field is used | |||
| to make it so (consider that ICMP checksum uses its data field, | to make it so (consider that ICMP checksum uses its data field, | |||
| which contains the original IP header plus 8 bytes of UDP, where | which contains the original IP header plus 8 bytes of UDP, where | |||
| TTL, IP identification, IP checksum, and UDP checksum changes). | TTL, IP identification, IP checksum, and UDP checksum changes). | |||
| For IPv6, the field FlowLabel, and Source and Destination | For IPv6, the field Flow Label and Source and Destination | |||
| addresses SHOULD be the same. | addresses SHOULD be the same. | |||
| o ICMP case: For IPv4, the Data field SHOULD compensate variations | ICMP case: For IPv4, the data field SHOULD compensate variations on | |||
| on TTL or Hop Limit, IP identification, and IP checksum for every | TTL or Hop Limit, IP identification, and IP checksum for every | |||
| packet. There is no need to consider ICMPv6 because only | packet. There is no need to consider ICMPv6 because only Flow | |||
| FlowLabel of IPv6 and Source and Destination addresses are used, | Label of IPv6 and Source and Destination addresses are used, and | |||
| and all of them SHOULD be constant. | all of them SHOULD be constant. | |||
| Then, the way to identify different hops and attempts of the same | Then, the way to identify different Hops and attempts of the same | |||
| IPv4 flow is: | IPv4 flow is: | |||
| o TCP case: The IP identification field. | TCP case: The IP identification field. | |||
| o UDP case: The IP identification field. | UDP case: The IP identification field. | |||
| o ICMP case: The IP identification field, and ICMP Sequence number. | ICMP case: The IP identification field and ICMP sequence number. | |||
| 4.1.1. Temporal Composition for Route Metrics | 4.1.1. Temporal Composition for Route Metrics | |||
| The Active Route Assessment Methods described above have the ability | The active Route assessment methods described above have the ability | |||
| to discover portions of a path where ECMP load balancing is present, | to discover portions of a path where ECMP load balancing is present, | |||
| observed as two or more unique Member Routes having one or more | observed as two or more unique Member Routes having one or more | |||
| distinct Hops which are part of the Route Ensemble. Likewise, | distinct Hops that are part of the Route Ensemble. Likewise, | |||
| attempts to deliberately vary the flow characteristics to discover | attempts to deliberately vary the flow characteristics to discover | |||
| all Member Routes will reveal portions of the path which are flow- | all Member Routes will reveal portions of the path that are flow | |||
| invariant. | invariant. | |||
| Section 9.2 of [RFC2330] describes Temporal Composition of metrics, | Section 9.2 of [RFC2330] describes the Temporal Composition of | |||
| and introduces the possibility of a relationship between earlier | metrics and introduces the possibility of a relationship between | |||
| measurement results and the results for measurement at the current | earlier measurement results and the results for measurement at the | |||
| time (for a given metric). There is value in establishing a Temporal | current time (for a given metric). There is value in establishing a | |||
| Composition relationship for Route Metrics. However, this | Temporal Composition relationship for Route metrics; however, this | |||
| relationship does not represent a forecast of future route conditions | relationship does not represent a forecast of future Route conditions | |||
| in any way. | in any way. | |||
| For Route Metric measurements, the value of Temporal Composition is | For Route-metric measurements, the value of Temporal Composition is | |||
| to reduce the measurement iterations required with repeated | to reduce the measurement iterations required with repeated | |||
| measurements. Reduced iterations are possible by inferring that | measurements. Reduced iterations are possible by inferring that | |||
| current measurements using fixed and previously measured flow | current measurements using fixed and previously measured flow | |||
| characteristics: | characteristics: | |||
| o will have many common hops with previous measurements. | * will have many common Hops with previous measurements. | |||
| o will have relatively time-stable results at the ingress and egress | * will have relatively time-stable results at the ingress and egress | |||
| portions of the path when measured from user locations, as opposed | portions of the path when measured from user locations, as opposed | |||
| to measurements of backbone networks and across inter-domain | to measurements of backbone networks and across inter-domain | |||
| gateways. | gateways. | |||
| o may have greater potential for time-variation in path portions | * may have greater potential for time variation in path portions | |||
| where ECMP load balancing is observed (because increasing or | where ECMP load balancing is observed (because increasing or | |||
| decreasing the pool of links changes the hash calculations). | decreasing the pool of links changes the hash calculations). | |||
| Optionally, measurement systems may take advantage of the inferences | Optionally, measurement systems may take advantage of the inferences | |||
| above when seeking to reduce measurement iterations, after exhaustive | above when seeking to reduce measurement iterations after exhaustive | |||
| measurements indicate that the time-stable properties are present. | measurements indicate that the time-stable properties are present. | |||
| Repetitive Active Route measurement systems: | Repetitive active Route measurement systems: | |||
| 1. SHOULD occasionally check path portions which have exhibited | 1. SHOULD occasionally check path portions that have exhibited | |||
| stable results over time, particularly ingress and egress | stable results over time, particularly ingress and egress | |||
| portions of the path (e.g., daily checks if measuring many times | portions of the path (e.g., daily checks if measuring many times | |||
| during a day). | during a day). | |||
| 2. SHOULD continue testing portions of the path that have previously | 2. SHOULD continue testing portions of the path that have previously | |||
| exhibited ECMP load balancing. | exhibited ECMP load balancing. | |||
| 3. SHALL trigger re-assessment of the complete path and Route | 3. SHALL trigger reassessment of the complete path and Route | |||
| Ensemble, if any change in hops is observed for a specific (and | Ensemble if any change in Hops is observed for a specific (and | |||
| previously tested) flow. | previously tested) flow. | |||
| 4.1.2. Routing Class Identification | 4.1.2. Routing Class Identification | |||
| There is an opportunity to apply the [RFC2330] notion of equal | There is an opportunity to apply the notion from [RFC2330] of equal | |||
| treatment for a class of packets, "...very useful to know if a given | treatment for a class of packets, "...very useful to know if a given | |||
| Internet component treats equally a class C of different types of | Internet component treats equally a class C of different types of | |||
| packets", as it applies to Route measurements. The notion of class C | packets", as it applies to Route measurements. The notion of class C | |||
| was examined further in [RFC8468] as it applied to load-balancing | was examined further in [RFC8468] as it applied to load-balancing | |||
| flows over parallel paths, which is the case we develop here. | flows over parallel paths, which is the case we develop here. | |||
| Knowledge of class C parameters (unrelated to address classes of the | Knowledge of class C parameters (unrelated to address classes of the | |||
| past) on a path potentially reduces the number of flows required for | past) on a path potentially reduces the number of flows required for | |||
| a given method to assess a Route Ensemble over time. | a given method to assess a Route Ensemble over time. | |||
| First, recognize that each Member Route of a Route Ensemble will have | First, recognize that each Member Route of a Route Ensemble will have | |||
| a corresponding class C. Class C can be discovered by testing with | a corresponding class C. Class C can be discovered by testing with | |||
| multiple flows, all of which traverse the unique set of hops that | multiple flows, all of which traverse the unique set of Hops that | |||
| comprise a specific Member Route. | comprise a specific Member Route. | |||
| Second, recognize that the different classes depend primarily on the | Second, recognize that the different classes depend primarily on the | |||
| hash functions used at each instance of ECMP load balancing on the | hash functions used at each instance of ECMP load balancing on the | |||
| path. | path. | |||
| Third, recognize the synergy with Temporal Composition methods | Third, recognize the synergy with Temporal Composition methods | |||
| (described above), where evaluation intends to discover time-stable | (described above), where evaluation intends to discover time-stable | |||
| portions of each Member Route, so that more emphasis can be placed on | portions of each Member Route so that more emphasis can be placed on | |||
| ECMP portions that also determine class C. | ECMP portions that also determine class C. | |||
| The methods to assess the various class C characteristics benefit | The methods to assess the various class C characteristics benefit | |||
| from the following measurement capabilities: | from the following measurement capabilities: | |||
| o flows designed to determine which n-tuple header fields are | * flows designed to determine which n-tuple header fields are | |||
| considered by a given hash function and ECMP hop on the path, and | considered by a given hash function and ECMP Hop on the path and | |||
| which are not. This operation immediately narrows the search | which are not. This operation immediately narrows the search | |||
| space, where possible, and partially defines a class C. | space, where possible, and partially defines a class C. | |||
| o a priori knowledge of the possible types of hash functions in use | * a priori knowledge of the possible types of hash functions in use | |||
| also helps to design the flows for testing (major router vendors | also helps to design the flows for testing (major router vendors | |||
| publish information about these hash functions, examples are here | publish information about these hash functions; examples are in | |||
| [LOAD_BALANCE]. | [LOAD_BALANCE]). | |||
| o ability to direct the emphasis of current measurements on ECMP | * ability to direct the emphasis of current measurements on ECMP | |||
| portions of the path, based on recent past measurement results | portions of the path, based on recent past measurement results | |||
| (the Routing Class of some portions of the path is essentially | (the Routing Class of some portions of the path is essentially | |||
| "all packets"). | "all packets"). | |||
| 4.1.3. Intermediate Observation Point Route Measurement | 4.1.3. Intermediate Observation Point Route Measurement | |||
| There are many examples where passive monitoring of a flow at an | There are many examples where passive monitoring of a flow at an | |||
| Observation Point within the network can detect unexpected Round Trip | Observation Point within the network can detect unexpected Round-Trip | |||
| Delay or Delay Variation. But how can the cause of the anomalous | Delay or Delay Variation. But how can the cause of the anomalous | |||
| delay be investigated further *from the Observation Point* possibly | delay be investigated further *from the Observation Point* possibly | |||
| located at an intermediate point on the path? | located at an intermediate point on the path? | |||
| In this case, knowledge that the flow of interest belongs to a | In this case, knowledge that the flow of interest belongs to a | |||
| specific Routing Class C will enable measurement of the route where | specific Routing Class C will enable measurement of the Route where | |||
| anomalous delay has been observed. Specifically, Round-Trip Delay | anomalous delay has been observed. Specifically, Round-Trip Delay | |||
| assessment to each Hop on the path between the Observation Point and | assessment to each Hop on the path between the Observation Point and | |||
| the Destination for the flow of interest may discover high or | the Destination for the flow of interest may discover high or | |||
| variable delay on a specific link and Hop combination. | variable delay on a specific link and Hop combination. | |||
| The determination of a Routing Class C which includes the flow of | The determination of a Routing Class C that includes the flow of | |||
| interest is as described in the section above, aided by computation | interest is as described in the section above, aided by computation | |||
| of the relevant hash function output as the target. | of the relevant hash function output as the target. | |||
| 4.2. Hybrid Methodologies | 4.2. Hybrid Methodologies | |||
| The Hybrid Type I methods provide an alternative method for Route | The Hybrid Type I methods provide an alternative for Route | |||
| Member assessment. As mentioned in the Scope section, | assessment. The "Scope, Applicability, and Assumptions" section of | |||
| [I-D.ietf-ippm-ioam-data] provides a possible set of data fields that | [RFC9197] provides one possible set of data fields that would support | |||
| would support route identification. | Route identification. | |||
| In general, nodes in the measured domain would be equipped with | In general, Nodes in the measured domain would be equipped with | |||
| specific abilities: | specific abilities: | |||
| o Store the identity of nodes that a packet has visited in header | * Store the identity of Nodes that a packet has visited in header | |||
| data fields, in the order the packet visited the nodes. | data fields in the order the packet visited the Nodes. | |||
| o Support of a "Loopback" capability, where a copy of the packet is | * Support of a "Loopback" capability where a copy of the packet is | |||
| returned to the encapsulating node, and the packet is processed | returned to the encapsulating Node and the packet is processed | |||
| like any other IOAM packet on the return transfer. | like any other IOAM packet on the return transfer. | |||
| In addition to node identity, nodes may also identify the ingress and | In addition to Node identity, Nodes may also identify the ingress and | |||
| egress interfaces utilized by the tracing packet, the absolute time | egress interfaces utilized by the tracing packet, the absolute time | |||
| when the packet was processed, and other generic data (as described | when the packet was processed, and other generic data (as described | |||
| in section 4 of [I-D.ietf-ippm-ioam-data]). Interface identification | in Section 3 of [RFC9197]). Interface identification isn't | |||
| isn't necessarily limited to IP, i.e. different links in a bundle | necessarily limited to IP, i.e., different links in a bundle (Link | |||
| (LACP) could be identified. Equally well, links without explicit IP | Aggregation Control Protocol (LACP)) could be identified. Equally | |||
| addresses can be identified (like with unnumbered interfaces in an | well, links without explicit IP addresses can be identified (like | |||
| IGP deployment). | with unnumbered interfaces in an IGP deployment). | |||
| Note that the Type-P packet specification for this method will likely | Note that the Type-P packet specification for this method will likely | |||
| be a partial specification, because most of the packet fields are | be a partial specification because most of the packet fields are | |||
| determined by the user traffic. The packet (encapsulation) header(s) | determined by the user traffic. The packet encapsulation header or | |||
| added by the Hybrid method can certainly be specified in Type-P, in | headers added by the hybrid method can certainly be specified in | |||
| unpopulated form. | Type-P, in unpopulated form. | |||
| 4.3. Combining Different Methods | 4.3. Combining Different Methods | |||
| In principle, there are advantages if the entity conducting Route | In principle, there are advantages if the entity conducting Route | |||
| measurements can utilize both forms of advanced methods (active and | measurements can utilize both forms of advanced methods (active and | |||
| hybrid), and combine the results. For example, if there are Nodes | hybrid) and combine the results. For example, if there are Nodes | |||
| involved in the path that qualify as Cooperating Nodes, but not as | involved in the path that qualify as Cooperating Nodes but not as | |||
| Discoverable Nodes, then a more complete view of Hops on the path is | Discoverable Nodes, then a more complete view of Hops on the path is | |||
| possible when a hybrid method (or interrogation protocol) is applied | possible when a hybrid method (or interrogation protocol) is applied | |||
| and the results are combined with the active method results collected | and the results are combined with the active method results collected | |||
| across all other domains. | across all other domains. | |||
| In order to combine the results of active and hybrid/interrogation | In order to combine the results of active and hybrid/interrogation | |||
| methods, the network Nodes that are part of a domain supporting an | methods, the network Nodes that are part of a domain supporting an | |||
| interrogation protocol have the following attributes: | interrogation protocol have the following attributes: | |||
| 1. Nodes at the ingress to the domain SHOULD be both Discoverable | 1. Nodes at the ingress to the domain SHOULD be both Discoverable | |||
| and Cooperating. | and Cooperating. | |||
| 2. Any Nodes within the domain that are both Discoverable and | 2. Any Nodes within the domain that are both Discoverable and | |||
| Cooperating SHOULD reveal the same Node Identity in response to | Cooperating SHOULD reveal the same Node identity in response to | |||
| both active and hybrid methods. | both active and hybrid methods. | |||
| 3. Nodes at the egress to the domain SHOULD be both Discoverable and | 3. Nodes at the egress to the domain SHOULD be both Discoverable and | |||
| Cooperating, and SHOULD reveal the same Node Identity in response | Cooperating and SHOULD reveal the same Node identity in response | |||
| to both active and hybrid methods. | to both active and hybrid methods. | |||
| When Nodes follow these requirements, it becomes a simple matter to | When Nodes follow these requirements, it becomes a simple matter to | |||
| match single domain measurements with the overlapping results from a | match single-domain measurements with the overlapping results from a | |||
| multidomain measurement. | multidomain measurement. | |||
| In practice, Internet users do not typically have the ability to | In practice, Internet users do not typically have the ability to | |||
| utilize the OAM capabilities of networks that their packets traverse, | utilize the Operations, Administrations, and Maintenance (OAM) | |||
| so the results from a remote domain supporting an interrogation | capabilities of networks that their packets traverse, so the results | |||
| protocol would not normally be accessible. However, a network | from a remote domain supporting an interrogation protocol would not | |||
| operator could combine interrogation results from their access domain | normally be accessible. However, a network operator could combine | |||
| with other measurements revealing the path outside their domain. | interrogation results from their access domain with other | |||
| measurements revealing the path outside their domain. | ||||
| 5. Background on Round-Trip Delay Measurement Goals | 5. Background on Round-Trip Delay Measurement Goals | |||
| The aim of this method is to use packet probes to unveil the paths | The aim of this method is to use packet probes to unveil the paths | |||
| between any two end-Nodes of the network. Moreover, information | between any two End-Nodes of the network. Moreover, information | |||
| derived from RTD measurements might be meaningful to identify: | derived from RTD measurements might be meaningful to identify: | |||
| 1. Intercontinental submarine links | 1. Intercontinental submarine links | |||
| 2. Satellite communications | 2. Satellite communications | |||
| 3. Congestion | 3. Congestion | |||
| 4. Inter-domain paths | 4. Inter-domain paths | |||
| This categorization is widely accepted in the literature and among | This categorization is widely accepted in the literature and among | |||
| operators alike, and it can be trusted with empirical data and | operators alike, and it can be trusted with empirical data and | |||
| several sources as ground of truth (e.g., [RTTSub] ) but it is an | several sources as ground of truth (e.g., [RTTSub]), but it is an | |||
| inference measurement nonetheless [bdrmap][IDCong]. | inference measurement nonetheless [bdrmap][IDCong]. | |||
| The first two categories correspond to the physical distance | The first two categories correspond to the physical distance | |||
| dependency on Round-Trip Delay (RTD), the next one binds RTD with | dependency on RTD, the next one binds RTD with queuing delay on | |||
| queuing delay on routers, and the last one helps to identify | routers, and the last one helps to identify different ASes using | |||
| different ASes using traceroutes. Due to the significant | traceroutes. Due to the significant contribution of propagation | |||
| contribution of propagation delay in long-distance hops, RTD will be | delay in long-distance Hops, RTD will be on the order of 100 ms on | |||
| on the order of 100ms on transatlantic hops, depending on the | transatlantic Hops, depending on the geolocation of the vantage | |||
| geolocation of the vantage points. Moreover, RTD is typically higher | points. Moreover, RTD is typically higher than 480 ms when two Hops | |||
| than 480ms when two hops are connected using geostationary satellite | are connected using geostationary satellite technology (i.e., their | |||
| technology (i.e., their orbit is at 36000km). Detecting congestion | orbit is at 36000 km). Detecting congestion with latency implies | |||
| with latency implies deeper mathematical understanding since network | deeper mathematical understanding, since network traffic load is not | |||
| traffic load is not stationary. Nonetheless, as the first approach, | stationary. Nonetheless, as the first approach, a link seems to be | |||
| a link seems to be congested if observing different/varying | congested if observing different/varying statistical results after | |||
| statistical results after sending several traceroute probes (e.g., | sending several traceroute probes (e.g., see [IDCong]). Finally, to | |||
| see [IDCong]). Finally, to recognize distinctive ASes in the same | recognize distinctive ASes in the same traceroute path is challenging | |||
| traceroute path is challenging, because more data is needed, like AS | because more data is needed, like AS relationships and Regional | |||
| relationships and RIR delegations among other (for more detail, | Internet Registry (RIR) delegations among others (for more details, | |||
| please consult [bdrmap]). | please consult [bdrmap]). | |||
| 6. RTD Measurements Statistics | 6. RTD Measurements Statistics | |||
| Several articles have shown that network traffic presents a self- | Several articles have shown that network traffic presents a self- | |||
| similar nature [SSNT] [MLRM] which is accountable for filling the | similar nature [SSNT] [MLRM] that is accountable for filling the | |||
| queues of the routers. Moreover, router queues are designed to | queues of the routers. Moreover, router queues are designed to | |||
| handle traffic bursts, which is one of the most remarkable features | handle traffic bursts, which is one of the most remarkable features | |||
| of self-similarity. Naturally, while queue length increases, the | of self-similarity. Naturally, while queue length increases, the | |||
| delay to traverse the queue increases as well and leads to an | delay to traverse the queue increases as well and leads to an | |||
| increase on RTD. Due to traffic bursts generating short-term | increase on RTD. Due to traffic bursts generating short-term | |||
| overflow on buffers (spiky patterns), every RTD only depicts the | overflow on buffers (spiky patterns), every RTD only depicts the | |||
| queueing status on the instant when that packet probe was in transit. | queueing status on the instant when that packet probe was in transit. | |||
| For this reason, several RTD measurements during a time window could | For this reason, several RTD measurements during a time window could | |||
| begin to describe the random behavior of latency. Loss must also be | begin to describe the random behavior of latency. Loss must also be | |||
| accounted for in the methodology. | accounted for in the methodology. | |||
| To understand the ongoing process, examining the quartiles provides a | To understand the ongoing process, examining the quartiles provides a | |||
| non-parametric way of analysis. Quartiles are defined by five | nonparametric way of analysis. Quartiles are defined by five values: | |||
| values: minimum RTD (m), RTD value of the 25% of the Empirical | minimum RTD (m), RTD value of the 25% of the Empirical Cumulative | |||
| Cumulative Distribution Function (ECDF) (Q1), the median value (Q2), | Distribution Function (ECDF) (Q1), the median value (Q2), the RTD | |||
| the RTD value of the 75% of the ECDF (Q3) and the maximum RTD (M). | value of the 75% of the ECDF (Q3), and the maximum RTD (M). | |||
| Congestion can be inferred when RTD measurements are spread apart, | Congestion can be inferred when RTD measurements are spread apart; | |||
| and consequently, the Inter-Quartile Range (IQR), the distance | consequently, the Interquartile Range (IQR), i.e., the distance | |||
| between Q3 and Q1, increases its value. | between Q3 and Q1, increases its value. | |||
| This procedure requires the algorithm presented in [P2] to compute | This procedure requires the algorithm presented in [P2] to compute | |||
| quartile values "on the fly". | quartile values "on the fly". | |||
| This procedure allows us to update the quartiles value whenever a new | This procedure allows us to update the quartile values whenever a new | |||
| measurement arrives, which is radically different from classic | measurement arrives, which is radically different from classic | |||
| methods of computing quartiles because they need to use the whole | methods of computing quartiles, because they need to use the whole | |||
| dataset to compute the values. This way of calculus provides savings | dataset to compute the values. This way of calculus provides savings | |||
| in memory and computing time. | in memory and computing time. | |||
| To sum up, the proposed measurement procedure consists of performing | To sum up, the proposed measurement procedure consists of performing | |||
| traceroutes several times to obtain samples of the RTD in every hop | traceroutes several times to obtain samples of the RTD in every Hop | |||
| from a path, during a time window (W), and compute the quartiles for | from a path during a time window (W) and compute the quartiles for | |||
| every hop. This procedure could be done for a single Member Route | every Hop. This procedure could be done for a single Member Route | |||
| flow, a non-exhaustive search with parameter E (defined below) set as | flow, for a non-exhaustive search with parameter E (defined below) | |||
| False, or for every detected Route Ensemble flow (E=True). | set to False, or for every detected Route Ensemble flow (E=True). | |||
| The identification of a specific Hop in traceroute is based on the IP | The identification of a specific Hop in a traceroute is based on the | |||
| origin address of the returned ICMP Time Exceeded packet, and on the | IP origin address of the returned ICMP Time Exceeded packet and on | |||
| distance identified by the value set in the TTL (or Hop Limit) field | the distance identified by the value set in the TTL (or Hop Limit) | |||
| inserted by traceroute. As this specific Hop can be reached by | field inserted by traceroute. As this specific Hop can be reached by | |||
| different paths, also the IP source and destination addresses of the | different paths, the IP Source and Destination addresses of the | |||
| traceroute packet need to be recorded. Finally, different return | traceroute packet also need to be recorded. Finally, different | |||
| paths are distinguished by evaluating the ICMP Time Exceeded TTL (or | return paths are distinguished by evaluating the ICMP Time Exceeded | |||
| Hop Limit) of the reply message: if this TTL (or Hop Limit) is | TTL (or Hop Limit) of the reply message; if this TTL (or Hop Limit) | |||
| constant for different paths containing the same Hop, the return | is constant for different paths containing the same Hop, the return | |||
| paths have the same distance. Moreover, this distance can be | paths have the same distance. Moreover, this distance can be | |||
| estimated considering that the TTL (or Hop Limit) value is normally | estimated considering that the TTL (or Hop Limit) value is normally | |||
| initialized with values 64, 128, or 255. The 5-tuple (origin IP, | initialized with values 64, 128, or 255. The 5-tuple (origin IP, | |||
| destination IP, reply IP, distance, response TTL or Hop Limit) | destination IP, reply IP, distance, and response TTL or Hop Limit) | |||
| unequivocally identifies every measurement. | unequivocally identifies every measurement. | |||
| This algorithm below runs in the origin of the traceroute. It | This algorithm below runs in the origin of the traceroute. It | |||
| returns the Qs quartiles for every Hop and Alt (alternative paths | returns the Qs quartiles for every Hop and Alt (alternative paths | |||
| because of balancing). Notice that the "Alt" parameter condenses the | because of balancing). Notice that the "Alt" parameter condenses the | |||
| parameters of the 5-tuple (origin IP, destination IP, reply IP, | parameters of the 5-tuple (origin IP, destination IP, reply IP, | |||
| distance, response TTL), i.e., one for each possible combination. | distance, and response TTL), i.e., one for each possible combination. | |||
| ================================================================ | ================================================================ | |||
| 0 input: W (window time of the measurement) | 0 input: W (window time of the measurement) | |||
| 1 i_t (time between two measurements, set the i_t time | 1 i_t (time between two measurements, set the i_t time | |||
| 2 long enough to avoid incomplete results) | 2 long enough to avoid incomplete results) | |||
| 3 E (True: exhaustive, False: a single path) | 3 E (True: exhaustive, False: a single path) | |||
| 4 Dst (destination IP address) | 4 Dst (destination IP address) | |||
| 5 output: Qs (quartiles for every Hop and Alt) | 5 output: Qs (quartiles for every Hop and Alt) | |||
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | |||
| 6 T := start_timer(W) | 6 T := start_timer(W) | |||
| skipping to change at page 20, line 26 ¶ | skipping to change at line 919 ¶ | |||
| 9 | RTD(Hop,Alt) = advanced-traceroute(Dst,E) | 9 | RTD(Hop,Alt) = advanced-traceroute(Dst,E) | |||
| 10 | for each Hop and Alt in RTD do: | 10 | for each Hop and Alt in RTD do: | |||
| 11 | | Qs[Dst,Hop,Alt] := ComputeQs(RTD(Hop,Alt)) | 11 | | Qs[Dst,Hop,Alt] := ComputeQs(RTD(Hop,Alt)) | |||
| 12 | done | 12 | done | |||
| 13 | wait until i_t timer is expired | 13 | wait until i_t timer is expired | |||
| 14 done | 14 done | |||
| 15 return (Qs) | 15 return (Qs) | |||
| ================================================================ | ================================================================ | |||
| During the time W, lines 6 and 7 assure that the measurement loop is | During the time W, lines 6 and 7 assure that the measurement loop is | |||
| made. Line 8 and 13 set a timer for each cycle of measurements. A | made. Lines 8 and 13 set a timer for each cycle of measurements. A | |||
| cycle comprises the traceroutes packets, considering every possible | cycle comprises the traceroutes packets, considering every possible | |||
| Hop and the alternatives paths in the Alt variable (ensured in lines | Hop and the alternatives paths in the Alt variable (ensured in lines | |||
| 9-12). In line 9, the advance-traceroute could be either Paris- | 9-12). In line 9, the advanced-traceroute could be either Paris- | |||
| traceroute or Scamper, which will use the "exhaustive" mode or | traceroute or Scamper, which will use the "exhaustive" mode or | |||
| "tracelb" option if E is set True, respectively. The procedure | "tracelb" option if E is set to True, respectively. The procedure | |||
| returns a list of tuples (m,Q1,Q2,Q3,M) for each intermediate hop, or | returns a list of tuples (m, Q1, Q2, Q3, and M) for each intermediate | |||
| "Alt" in as a function of the 5-tuple, in the path towards the Dst. | Hop, or "Alt" in as a function of the 5-tuple, in the path towards | |||
| Finally, lines 10 through 12 stores each measurement into the real- | the Dst. Finally, lines 10 through 12 store each measurement into the | |||
| time quartiles computation. | real-time quartiles computation. | |||
| Notice there are cases where the even having a unique hop at distance | Notice there are cases where even having a unique Hop at distance h | |||
| h from the Src to Dst, the returning path could have several | from the Src to Dst, the returning path could have several | |||
| possibilities, yielding in different total paths. In this situation, | possibilities, yielding different total paths. In this situation, | |||
| the algorithm will return more "Alt" for this particular hop. | the algorithm will return another "Alt" for this particular Hop. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| The security considerations that apply to any active measurement of | The security considerations that apply to any active measurement of | |||
| live paths are relevant here as well. See [RFC4656] and [RFC5357]. | live paths are relevant here as well. See [RFC4656] and [RFC5357]. | |||
| The active measurement process of "changing several fields to keep | The active measurement process of changing several fields to keep the | |||
| the checksum of different packets identical" does not require special | checksum of different packets identical does not require special | |||
| security considerations because it is part of synthetic traffic | security considerations because it is part of synthetic traffic | |||
| generation, and is designed to have minimal to zero impact on network | generation and is designed to have minimal to zero impact on network | |||
| processing (to process the packets for ECMP). | processing (to process the packets for ECMP). | |||
| Some of the protocols used (e.g., ICMP) do not provide cryptographic | Some of the protocols used (e.g., ICMP) do not provide cryptographic | |||
| protection for the requested/returned data, and there are risks of | protection for the requested/returned data, and there are risks of | |||
| processing untrusted data in general, but these are limitations of | processing untrusted data in general, but these are limitations of | |||
| the existing protocols where we are applying new methods. | the existing protocols where we are applying new methods. | |||
| For applicable Hybrid methods, the security considerations | For applicable hybrid methods, the security considerations in | |||
| in[I-D.ietf-ippm-ioam-data] apply. | [RFC9197] apply. | |||
| When considering privacy of those involved in measurement or those | When considering the privacy of those involved in measurement or | |||
| whose traffic is measured, the sensitive information available to | those whose traffic is measured, the sensitive information available | |||
| potential observers is greatly reduced when using active techniques | to potential observers is greatly reduced when using active | |||
| which are within this scope of work. Passive observations of user | techniques that are within this scope of work. Passive observations | |||
| traffic for measurement purposes raise many privacy issues. We refer | of user traffic for measurement purposes raise many privacy issues. | |||
| the reader to the privacy considerations described in the Large Scale | We refer the reader to the privacy considerations described in the | |||
| Measurement of Broadband Performance (LMAP) Framework [RFC7594], | Large-scale Measurement of Broadband Performance (LMAP) Framework | |||
| which covers active and passive techniques. | [RFC7594], which covers active and passive techniques. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This memo makes no requests of IANA. We thank the good folks at IANA | This document has no IANA actions. | |||
| for having checked this section anyway. | ||||
| 9. Acknowledgements | ||||
| The original 3 authors (Ignacio, Al, Joachim) acknowledge Ruediger | ||||
| Geib, for his penetrating comments on the initial draft, and his | ||||
| initial text for the Appendix on MPLS. Carlos Pignataro challenged | ||||
| the authors to consider a wider scope, and applied his substantial | ||||
| expertise with many technologies and their measurement features in | ||||
| his extensive comments. Frank Brockners also shared useful comments, | ||||
| so did Footer Foote. We thank them all! | ||||
| 10. Appendix I MPLS Methods for Route Assessment | ||||
| A Node assessing an MPLS path must be part of the MPLS domain where | ||||
| the path is implemented. When this condition is met, RFC 8029 | ||||
| provides a powerful set of mechanisms to detect "correct operation of | ||||
| the data plane, as well as a mechanism to verify the data plane | ||||
| against the control plane" [RFC8029]. | ||||
| MPLS routing is based on the presence of a Forwarding Equivalence | ||||
| Class (FEC) Stack in all visited Nodes. Selecting one of several | ||||
| Equal Cost Multi Path (ECMP) is however based on information hidden | ||||
| deeper in the stack. Late deployments may support a so called | ||||
| "Entropy label" for this purpose. State of the art deployments base | ||||
| their choice of an ECMP member interface on the complete MPLS label | ||||
| stack and on IP addresses up to the complete 5 tuple IP header | ||||
| information (see Section 2.4 of [RFC7325]). Load Sharing based on IP | ||||
| information decouples this function from the actual MPLS routing | ||||
| information. Thus, an MPLS traceroute is able to check how packets | ||||
| with a contiguous number of ECMP relevant IP addresses (and an | ||||
| identical MPLS label stack) are forwarded by a particular router. | ||||
| The minimum number of equivalent MPLS paths traceable at a router | ||||
| should be 32. Implementations supporting more paths are available. | ||||
| The MPLS echo request and reply messages offering this feature must | ||||
| support the Downstream Detailed Mapping TLV (was Downstream Mapping | ||||
| initially, but the latter has been deprecated). The MPLS echo | ||||
| response includes the incoming interface where a router received the | ||||
| MPLS Echo request. The MPLS Echo reply further informs which of the | ||||
| n addresses relevant for the load sharing decision results in a | ||||
| particular next hop interface and contains the next hop's interface | ||||
| address (if available). This ensures that the next hop will receive | ||||
| a properly coded MPLS Echo request in the next step route of | ||||
| assessment. | ||||
| [RFC8403] explains how a central Path Monitoring System could be used | ||||
| to detect arbitrary MPLS paths between any routers within a single | ||||
| MPLS domain. The combination of MPLS forwarding, Segment Routing and | ||||
| MPLS traceroute offers a simple architecture and a powerful mechanism | ||||
| to detect and validate (segment routed) MPLS paths. | ||||
| 11. References | ||||
| 11.1. Normative References | 9. References | |||
| [I-D.ietf-ippm-ioam-data] | 9.1. Normative References | |||
| Brockners, F., Bhandari, S., and T. Mizrahi, "Data Fields | ||||
| for In-situ OAM", draft-ietf-ippm-ioam-data-10 (work in | ||||
| progress), July 2020. | ||||
| [RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, | [RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, | |||
| RFC 792, DOI 10.17487/RFC0792, September 1981, | RFC 792, DOI 10.17487/RFC0792, September 1981, | |||
| <https://www.rfc-editor.org/info/rfc792>. | <https://www.rfc-editor.org/info/rfc792>. | |||
| [RFC1122] Braden, R., Ed., "Requirements for Internet Hosts - | [RFC1122] Braden, R., Ed., "Requirements for Internet Hosts - | |||
| Communication Layers", STD 3, RFC 1122, | Communication Layers", STD 3, RFC 1122, | |||
| DOI 10.17487/RFC1122, October 1989, | DOI 10.17487/RFC1122, October 1989, | |||
| <https://www.rfc-editor.org/info/rfc1122>. | <https://www.rfc-editor.org/info/rfc1122>. | |||
| skipping to change at page 24, line 11 ¶ | skipping to change at line 1037 ¶ | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8468] Morton, A., Fabini, J., Elkins, N., Ackermann, M., and V. | [RFC8468] Morton, A., Fabini, J., Elkins, N., Ackermann, M., and V. | |||
| Hegde, "IPv4, IPv6, and IPv4-IPv6 Coexistence: Updates for | Hegde, "IPv4, IPv6, and IPv4-IPv6 Coexistence: Updates for | |||
| the IP Performance Metrics (IPPM) Framework", RFC 8468, | the IP Performance Metrics (IPPM) Framework", RFC 8468, | |||
| DOI 10.17487/RFC8468, November 2018, | DOI 10.17487/RFC8468, November 2018, | |||
| <https://www.rfc-editor.org/info/rfc8468>. | <https://www.rfc-editor.org/info/rfc8468>. | |||
| 11.2. Informative References | [RFC9197] Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi, | |||
| Ed., "Data Fields for In Situ Operations, Administration, | ||||
| and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197, | ||||
| May 2022, <https://www.rfc-editor.org/info/rfc9197>. | ||||
| 9.2. Informative References | ||||
| [bdrmap] Luckie, M., Dhamdhere, A., Huffaker, B., Clark, D., and | [bdrmap] Luckie, M., Dhamdhere, A., Huffaker, B., Clark, D., and | |||
| KC. Claffy, "bdrmap: Inference of Borders Between IP | KC. Claffy, "bdrmap: Inference of Borders Between IP | |||
| Networks", In Proceedings of the 2016 ACM on Internet | Networks", Proceedings of the 2016 ACM on Internet | |||
| Measurement Conference, pp. 381-396. ACM, 2016. | Measurement Conference, pp. 381-396, | |||
| DOI 10.1145/2987443.2987467, November 2016, | ||||
| <https://doi.org/10.1145/2987443.2987467>. | ||||
| [IDCong] Luckie, M., Dhamdhere, A., Clark, D., and B. Huffaker, | [IDCong] Luckie, M., Dhamdhere, A., Clark, D., and B. Huffaker, | |||
| "Challenges in inferring Internet interdomain | "Challenges in Inferring Internet Interdomain Congestion", | |||
| congestion", In Proceedings of the 2014 Conference on | Proceedings of the 2014 Conference on Internet Measurement | |||
| Internet Measurement Conference, pp. 15-22. ACM, 2014. | Conference, pp. 15-22, DOI 10.1145/2663716.2663741, | |||
| November 2014, <https://doi.org/10.1145/2663716.2663741>. | ||||
| [LOAD_BALANCE] | [LOAD_BALANCE] | |||
| Sanguanpong, S., Pittayapitak, W., and K. Kasom Koht-Arsa, | Sanguanpong, S., Pittayapitak, W., and K. Kasom Koht-Arsa, | |||
| "COMPARISON OF HASH STRATEGIES FOR FLOW-BASED LOAD | "COMPARISON OF HASH STRATEGIES FOR FLOW-BASED LOAD | |||
| BALANCING", International Journal of Electronic Commerce | BALANCING", International Journal of Electronic Commerce | |||
| Studies, Vol.6, No.2, pp.259-268. | Studies, Vol.6, No.2, pp.259-268, DOI 10.7903/ijecs.1346, | |||
| http://dx.doi.org/10.7903/ijecs.1346, 2015. | December 2015, <https://doi.org/10.7903/ijecs.1346>. | |||
| [MLB] Augustin, B., Friedman, T., and R. Teixeira, "Measuring | [MLB] Augustin, B., Friedman, T., and R. Teixeira, "Measuring | |||
| load-balanced paths in the Internet", Proceedings of the | load-balanced paths in the internet", Proceedings of the | |||
| 7th ACM SIGCOMM conference on Internet measurement, pp. | 7th ACM SIGCOMM conference on Internet measurement, pp. | |||
| 149-160. ACM, 2007., 2007. | 149-160, DOI 10.1145/1298306.1298329, October 2007, | |||
| <https://doi.org/10.1145/1298306.1298329>. | ||||
| [MLRM] Fontugne, R., Mazel, J., and K. Fukuda, "An empirical | [MLRM] Fontugne, R., Mazel, J., and K. Fukuda, "An empirical | |||
| mixture model for large-scale RTT measurements", 2015 | mixture model for large-scale RTT measurements", 2015 IEEE | |||
| IEEE Conference on Computer Communications (INFOCOM), pp. | Conference on Computer Communications (INFOCOM), pp. | |||
| 2470-2478. IEEE, 2015., 2015. | 2470-2478, DOI 10.1109/INFOCOM.2015.7218636, April 2015, | |||
| <https://doi.org/10.1109/INFOCOM.2015.7218636>. | ||||
| [P2] Jain, R. and I. Chlamtac, "The P 2 algorithm for dynamic | [P2] Jain, R. and I. Chlamtac, "The P 2 algorithm for dynamic | |||
| calculation of quartiles and histograms without storing | calculation of quartiles and histograms without storing | |||
| observations", Communications of the ACM 28.10 (1985): | observations", Communications of the ACM 28.10 (1985): | |||
| 1076-1085, 2015. | 1076-1085, DOI 10.1145/4372.4378, October 1985, | |||
| <https://doi.org/10.1145/4372.4378>. | ||||
| [PT] Augustin, B., Cuvellier, X., Orgogozo, B., Viger, F., | [PT] Augustin, B., Cuvellier, X., Orgogozo, B., Viger, F., | |||
| Friedman, T., Latapy, M., Magnien, C., and R. Teixeira, | Friedman, T., Latapy, M., Magnien, C., and R. Teixeira, | |||
| "Avoiding traceroute anomalies with Paris traceroute", | "Avoiding traceroute anomalies with Paris traceroute", | |||
| Proceedings of the 6th ACM SIGCOMM conference on Internet | Proceedings of the 6th ACM SIGCOMM conference on Internet | |||
| measurement, pp. 153-158. ACM, 2006., 2006. | measurement, pp. 153-158, DOI 10.1145/1177080.1177100, | |||
| October 2006, <https://doi.org/10.1145/1177080.1177100>. | ||||
| [RFC2991] Thaler, D. and C. Hopps, "Multipath Issues in Unicast and | [RFC2991] Thaler, D. and C. Hopps, "Multipath Issues in Unicast and | |||
| Multicast Next-Hop Selection", RFC 2991, | Multicast Next-Hop Selection", RFC 2991, | |||
| DOI 10.17487/RFC2991, November 2000, | DOI 10.17487/RFC2991, November 2000, | |||
| <https://www.rfc-editor.org/info/rfc2991>. | <https://www.rfc-editor.org/info/rfc2991>. | |||
| [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. | [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. | |||
| Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", | Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", | |||
| RFC 5357, DOI 10.17487/RFC5357, October 2008, | RFC 5357, DOI 10.17487/RFC5357, October 2008, | |||
| <https://www.rfc-editor.org/info/rfc5357>. | <https://www.rfc-editor.org/info/rfc5357>. | |||
| skipping to change at page 26, line 6 ¶ | skipping to change at line 1135 ¶ | |||
| Measurement of Broadband Performance (LMAP)", RFC 7594, | Measurement of Broadband Performance (LMAP)", RFC 7594, | |||
| DOI 10.17487/RFC7594, September 2015, | DOI 10.17487/RFC7594, September 2015, | |||
| <https://www.rfc-editor.org/info/rfc7594>. | <https://www.rfc-editor.org/info/rfc7594>. | |||
| [RFC8403] Geib, R., Ed., Filsfils, C., Pignataro, C., Ed., and N. | [RFC8403] Geib, R., Ed., Filsfils, C., Pignataro, C., Ed., and N. | |||
| Kumar, "A Scalable and Topology-Aware MPLS Data-Plane | Kumar, "A Scalable and Topology-Aware MPLS Data-Plane | |||
| Monitoring System", RFC 8403, DOI 10.17487/RFC8403, July | Monitoring System", RFC 8403, DOI 10.17487/RFC8403, July | |||
| 2018, <https://www.rfc-editor.org/info/rfc8403>. | 2018, <https://www.rfc-editor.org/info/rfc8403>. | |||
| [RTTSub] Bischof, Z., Rula, J., and F. Bustamante, "In and out of | [RTTSub] Bischof, Z., Rula, J., and F. Bustamante, "In and out of | |||
| Cuba: Characterizing Cuba's connectivity", In Proceedings | Cuba: Characterizing Cuba's Connectivity", Proceedings of | |||
| of the 2015 ACM Conference on Internet Measurement | the 2015 ACM Conference on Internet Measurement | |||
| Conference, pp. 487-493. ACM, 2015. | Conference, pp. 487-493, DOI 10.1145/2815675.2815718, | |||
| October 2015, <https://doi.org/10.1145/2815675.2815718>. | ||||
| [SCAMPER] Matthew Luckie, M., "Scamper: a scalable and extensible | [SCAMPER] Matthew Luckie, M., "Scamper: a scalable and extensible | |||
| packet prober for active measurement of the | packet prober for active measurement of the internet", | |||
| Internet", Proceedings of the 10th ACM SIGCOMM conference | Proceedings of the 10th ACM SIGCOMM conference on Internet | |||
| on Internet measurement, pp. 239-245. ACM, 2010., 2010. | measurement, pp. 239-245, DOI 10.1145/1879141.1879171, | |||
| November 2010, <https://doi.org/10.1145/1879141.1879171>. | ||||
| [SSNT] Park, K. and W. Willinger, "Self-Similar Network Traffic | [SSNT] Park, K. and W. Willinger, "Self-Similar Network Traffic | |||
| and Performance Evaluation (1st ed.)", John Wiley & Sons, | and Performance Evaluation (1st ed.)", | |||
| Inc., New York, NY, USA, 2000. | DOI 10.1002/047120644X, John Wiley & Sons, Inc., New | |||
| York, NY, USA, August 2000, | ||||
| <https://doi.org/10.1002/047120644X>. | ||||
| Appendix A. MPLS Methods for Route Assessment | ||||
| A Node assessing an MPLS path must be part of the MPLS domain where | ||||
| the path is implemented. When this condition is met, [RFC8029] | ||||
| provides a powerful set of mechanisms to detect "correct operation of | ||||
| the data plane, as well as a mechanism to verify the data plane | ||||
| against the control plane". | ||||
| MPLS routing is based on the presence of a Forwarding Equivalence | ||||
| Class (FEC) Stack in all visited Nodes. Selecting one of several | ||||
| Equal-Cost Multipaths (ECMPs) is, however, based on information | ||||
| hidden deeper in the stack. Late deployments may support a so-called | ||||
| "Entropy label" for this purpose. State-of-the-art deployments base | ||||
| their choice of an ECMP member interface on the complete MPLS label | ||||
| stack and on IP addresses up to the complete 5-tuple IP header | ||||
| information (see Section 2.4 of [RFC7325]). Load sharing based on IP | ||||
| information decouples this function from the actual MPLS routing | ||||
| information. Thus, an MPLS traceroute is able to check how packets | ||||
| with a contiguous number of ECMP-relevant IP addresses (and an | ||||
| identical MPLS label stack) are forwarded by a particular router. | ||||
| The minimum number of equivalent MPLS paths traceable at a router | ||||
| should be 32. Implementations supporting more paths are available. | ||||
| The MPLS echo request and reply messages offering this feature must | ||||
| support the Downstream Detailed Mapping TLV (was Downstream Mapping | ||||
| initially, but the latter has been deprecated). The MPLS echo | ||||
| response includes the incoming interface where a router received the | ||||
| MPLS echo request. The MPLS echo reply further informs which of the | ||||
| n addresses relevant for the load-sharing decision results in a | ||||
| particular next-hop interface and contains the next Hop's interface | ||||
| address (if available). This ensures that the next Hop will receive | ||||
| a properly coded MPLS echo request in the next step Route of | ||||
| assessment. | ||||
| [RFC8403] explains how a central Path Monitoring System could be used | ||||
| to detect arbitrary MPLS paths between any routers within a single | ||||
| MPLS domain. The combination of MPLS forwarding, Segment Routing, | ||||
| and MPLS traceroute offers a simple architecture and a powerful | ||||
| mechanism to detect and validate (segment-routed) MPLS paths. | ||||
| Acknowledgements | ||||
| The original three authors (Ignacio, Al, Joachim) acknowledge | ||||
| Ruediger Geib for his penetrating comments on the initial document | ||||
| and his initial text for the appendix on MPLS. Carlos Pignataro | ||||
| challenged the authors to consider a wider scope and applied his | ||||
| substantial expertise with many technologies and their measurement | ||||
| features in his extensive comments. Frank Brockners also shared | ||||
| useful comments and so did Footer Foote. We thank them all! | ||||
| Authors' Addresses | Authors' Addresses | |||
| J. Ignacio Alvarez-Hamelin | J. Ignacio Alvarez-Hamelin | |||
| Universidad de Buenos Aires | Universidad de Buenos Aires | |||
| Av. Paseo Colon 850 | Av. Paseo Colón 850 | |||
| Buenos Aires C1063ACV | C1063ACV Buenos Aires | |||
| Argentina | Argentina | |||
| Phone: +54 11 5285-0716 | Phone: +54 11 5285-0716 | |||
| Email: ihameli@cnet.fi.uba.ar | Email: ihameli@cnet.fi.uba.ar | |||
| URI: http://cnet.fi.uba.ar/ignacio.alvarez-hamelin/ | URI: http://cnet.fi.uba.ar/ignacio.alvarez-hamelin/ | |||
| Al Morton | Al Morton | |||
| AT&T Labs | AT&T Labs | |||
| 200 Laurel Avenue South | 200 Laurel Avenue South | |||
| Middletown, NJ 07748 | Middletown, NJ 07748 | |||
| USA | United States of America | |||
| Phone: +1 732 420 1571 | Phone: +1 732 420 1571 | |||
| Fax: +1 732 368 1192 | ||||
| Email: acm@research.att.com | Email: acm@research.att.com | |||
| Joachim Fabini | Joachim Fabini | |||
| TU Wien | TU Wien | |||
| Gusshausstrasse 25/E389 | Gusshausstrasse 25/E389 | |||
| Vienna 1040 | 1040 Vienna | |||
| Austria | Austria | |||
| Phone: +43 1 58801 38813 | Phone: +43 1 58801 38813 | |||
| Fax: +43 1 58801 38898 | ||||
| Email: Joachim.Fabini@tuwien.ac.at | Email: Joachim.Fabini@tuwien.ac.at | |||
| URI: http://www.tc.tuwien.ac.at/about-us/staff/joachim-fabini/ | URI: http://www.tc.tuwien.ac.at/about-us/staff/joachim-fabini/ | |||
| Carlos Pignataro | Carlos Pignataro | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| 7200-11 Kit Creek Road | 7200-11 Kit Creek Road | |||
| Research Triangle Park, NC 27709 | Research Triangle Park, NC 27709 | |||
| USA | United States of America | |||
| Email: cpignata@cisco.com | Email: cpignata@cisco.com | |||
| Ruediger Geib | Ruediger Geib | |||
| Deutsche Telekom | Deutsche Telekom | |||
| Heinrich Hertz Str. 3-7 | Heinrich Hertz Str. 3-7 | |||
| Darmstadt 64295 | 64295 Darmstadt | |||
| Germany | Germany | |||
| Phone: +49 6151 5812747 | Phone: +49 6151 5812747 | |||
| Email: Ruediger.Geib@telekom.de | Email: Ruediger.Geib@telekom.de | |||
| End of changes. 192 change blocks. | ||||
| 539 lines changed or deleted | 547 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||