rfc9198xml2.original.xml | rfc9198.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | <!DOCTYPE rfc [ | |||
<?rfc toc="yes"?> | <!ENTITY nbsp " "> | |||
<?rfc tocompact="yes"?> | <!ENTITY zwsp "​"> | |||
<?rfc tocdepth="3"?> | <!ENTITY nbhy "‑"> | |||
<?rfc tocindent="yes"?> | <!ENTITY wj "⁠"> | |||
<?rfc symrefs="yes"?> | ]> | |||
<?rfc sortrefs="yes"?> | ||||
<?rfc comments="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
<?rfc inline="yes"?> | docName="draft-ietf-ippm-route-10" number="9198" ipr="trust200902" | |||
<?rfc compact="yes"?> | updates="2330" obsoletes="" submissionType="IETF" category="std" | |||
<?rfc subcompact="no"?> | consensus="true" xml:lang="en" tocInclude="true" tocDepth="3" | |||
<rfc category="std" docName="draft-ietf-ippm-route-10" ipr="trust200902" | symRefs="true" sortRefs="true" version="3"> | |||
updates="2330"> | ||||
<!-- xml2rfc v2v3 conversion 3.1.1 --> | ||||
<front> | <front> | |||
<title abbrev="AURA Metrics & Methods">Advanced Unidirectional Route | <title abbrev="AURA Metrics & Methods">Advanced Unidirectional Route | |||
Assessment (AURA)</title> | Assessment (AURA)</title> | |||
<seriesInfo name="RFC" value="9198"/> | ||||
<author fullname="J. Ignacio Alvarez-Hamelin" initials="J.I." | <author fullname="J. Ignacio Alvarez-Hamelin" initials="J" surname="Alvarez- | |||
surname="Alvarez-Hamelin"> | Hamelin"> | |||
<organization>Universidad de Buenos Aires</organization> | <organization>Universidad de Buenos Aires</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Av. Paseo Colón 850</street> | <street>Av. Paseo Colón 850</street> | |||
<city>Buenos Aires</city> | <city>Buenos Aires</city> | |||
<code>C1063ACV</code> | <code>C1063ACV</code> | |||
<country>Argentina</country> | <country>Argentina</country> | |||
</postal> | </postal> | |||
<phone>+54 11 5285-0716</phone> | <phone>+54 11 5285-0716</phone> | |||
<email>ihameli@cnet.fi.uba.ar</email> | <email>ihameli@cnet.fi.uba.ar</email> | |||
<uri>http://cnet.fi.uba.ar/ignacio.alvarez-hamelin/</uri> | <uri>http://cnet.fi.uba.ar/ignacio.alvarez-hamelin/</uri> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Al Morton" initials="A." surname="Morton"> | <author fullname="Al Morton" initials="A." surname="Morton"> | |||
<organization>AT&T Labs</organization> | <organization>AT&T Labs</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>200 Laurel Avenue South</street> | <street>200 Laurel Avenue South</street> | |||
<city>Middletown</city> | <city>Middletown</city> | |||
<region>NJ</region> | <region>NJ</region> | |||
<code>07748</code> | <code>07748</code> | |||
<country>United States of America</country> | ||||
<country>USA</country> | ||||
</postal> | </postal> | |||
<phone>+1 732 420 1571</phone> | <phone>+1 732 420 1571</phone> | |||
<facsimile>+1 732 368 1192</facsimile> | ||||
<email>acm@research.att.com</email> | <email>acm@research.att.com</email> | |||
<uri/> | <uri/> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Joachim Fabini" initials="J." surname="Fabini"> | <author fullname="Joachim Fabini" initials="J." surname="Fabini"> | |||
<organization>TU Wien</organization> | <organization>TU Wien</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Gusshausstrasse 25/E389</street> | <street>Gusshausstrasse 25/E389</street> | |||
<city>Vienna</city> | <city>Vienna</city> | |||
<region/> | <region/> | |||
<code>1040</code> | <code>1040</code> | |||
<country>Austria</country> | <country>Austria</country> | |||
</postal> | </postal> | |||
<phone>+43 1 58801 38813</phone> | <phone>+43 1 58801 38813</phone> | |||
<facsimile>+43 1 58801 38898</facsimile> | ||||
<email>Joachim.Fabini@tuwien.ac.at</email> | <email>Joachim.Fabini@tuwien.ac.at</email> | |||
<uri>http://www.tc.tuwien.ac.at/about-us/staff/joachim-fabini/</uri> | <uri>http://www.tc.tuwien.ac.at/about-us/staff/joachim-fabini/</uri> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Carlos Pignataro" initials="C." surname="Pignataro"> | <author fullname="Carlos Pignataro" initials="C." surname="Pignataro"> | |||
<organization>Cisco Systems, Inc.</organization> | <organization>Cisco Systems, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>7200-11 Kit Creek Road</street> | <street>7200-11 Kit Creek Road</street> | |||
<city>Research Triangle Park</city> | <city>Research Triangle Park</city> | |||
<region>NC</region> | <region>NC</region> | |||
<code>27709</code> | <code>27709</code> | |||
<country>United States of America</country> | ||||
<country>USA</country> | ||||
</postal> | </postal> | |||
<phone/> | <phone/> | |||
<facsimile/> | ||||
<email>cpignata@cisco.com</email> | <email>cpignata@cisco.com</email> | |||
<uri/> | <uri/> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Ruediger Geib" initials="R." surname="Geib"> | <author fullname="Ruediger Geib" initials="R." surname="Geib"> | |||
<organization>Deutsche Telekom</organization> | <organization>Deutsche Telekom</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Heinrich Hertz Str. 3-7</street> | <street>Heinrich Hertz Str. 3-7</street> | |||
<city>Darmstadt</city> | <city>Darmstadt</city> | |||
<region/> | <region/> | |||
<code>64295</code> | <code>64295</code> | |||
<country>Germany</country> | <country>Germany</country> | |||
</postal> | </postal> | |||
<phone>+49 6151 5812747</phone> | <phone>+49 6151 5812747</phone> | |||
<facsimile/> | ||||
<email>Ruediger.Geib@telekom.de</email> | <email>Ruediger.Geib@telekom.de</email> | |||
<uri/> | <uri/> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="May" year="2022"/> | ||||
<date day="13" month="August" year="2020"/> | <keyword>Performance</keyword> | |||
<keyword>Metrics</keyword> | ||||
<keyword>IPPM</keyword> | ||||
<keyword>path</keyword> | ||||
<keyword>parallel paths</keyword> | ||||
<abstract> | <abstract> | |||
<t>This memo introduces an advanced unidirectional route assessment | <t>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 RFC | |||
2330 in the areas of path-related terminology and path description, | 2330 in the areas of path-related terminology and path description, | |||
primarily to include the possibility of parallel subpaths between a | primarily to include the possibility of parallel subpaths between a | |||
given Source and Destination pair, owing to the presence of multi-path | given Source and Destination pair, owing to the presence of multipath | |||
technologies.</t> | technologies.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section title="Introduction"> | <section numbered="true" toc="default"> | |||
<t>The IETF IP Performance Metrics (IPPM) working group first created a | <name>Introduction</name> | |||
framework for metric development in <xref target="RFC2330"/>. This | <t>The IETF IP Performance Metrics (IPPM) Working Group first created a | |||
framework for metric development in <xref target="RFC2330" format="default | ||||
"/>. This | ||||
framework has stood the test of time and enabled development of many | framework has stood the test of time and enabled development of many | |||
fundamental metrics. It has been updated in the area of metric | fundamental metrics. It has been updated in the area of metric | |||
composition <xref target="RFC5835"/>, and in several areas related to | composition <xref target="RFC5835" format="default"/> and in several areas related to | |||
active stream measurement of modern networks with reactive properties | active stream measurement of modern networks with reactive properties | |||
<xref target="RFC7312"/>.</t> | <xref target="RFC7312" format="default"/>.</t> | |||
<t>The framework in <xref target="RFC2330" format="default"/> motivated th | ||||
<t>The <xref target="RFC2330"/> framework motivated the development of | e development of | |||
"performance and reliability metrics for paths through the Internet," | "performance and reliability metrics for paths through the Internet"; | |||
and Section 5 of <xref target="RFC2330"/> defines terms that support | <xref target="RFC2330" section="5" sectionFormat="of"/> defines terms that | |||
support | ||||
description of a path under test. However, metrics for assessment of | description of a path under test. However, metrics for assessment of | |||
paths and related performance aspects had not been attempted in IPPM | paths and related performance aspects had not been attempted in IPPM | |||
when the <xref target="RFC2330"/> framework was written.</t> | when the framework in <xref target="RFC2330" format="default"/> was writte | |||
n.</t> | ||||
<t>This memo takes up the route measurement challenge and specifies a | <t>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 <xref | (using either active or hybrid active-passive methods <xref | |||
target="RFC7799"/>), and Round-Trip Delay and link information discovery | target="RFC7799" format="default"/>), and Round-Trip Delay and link | |||
using the results of measurements. All route measurements are limited by | information discovery | |||
the willingness of hosts along the path to be discovered, to cooperate | using the results of measurements. All Route measurements are limited by | |||
the willingness of Hosts along the path to be discovered, to cooperate | ||||
with the methods used, or to recognize that the measurement operation is | with the methods used, or to recognize that the measurement operation is | |||
taking place (such as when tunnels are present).</t> | taking place (such as when tunnels are present).</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Issues with Earlier Work to Define a Route Metric"> | <name>Issues with Earlier Work to Define a Route Metric</name> | |||
<t>Section 7 of <xref target="RFC2330"/> presented a simple example of | <t><xref target="RFC2330" section="7" sectionFormat="of"/> presents a si | |||
a "route" metric along with several other examples. The example is | mple example of | |||
reproduced below (where the reference is to Section 5 of <xref | a "Route" metric along with several other examples. The example is | |||
target="RFC2330"/>):</t> | reproduced below (where the reference is to <xref | |||
target="RFC2330" section="5" sectionFormat="of"/>):</t> | ||||
<t>"route: The path, as defined in Section 5, from A to B at a given | <blockquote> | |||
time."</t> | <dl newline="false" spacing="normal"> | |||
<dt>route:</dt> | ||||
<dd>The path, as defined in Section <xref target="RFC2330" section="5" | ||||
sectionFormat="bare"/>, from A to B at a given time.</dd> | ||||
</dl> | ||||
</blockquote> | ||||
<t>This example provides a starting point to develop a more complete | <t>This example provides a starting point to develop a more complete | |||
definition of route. Areas needing clarification include:</t> | definition of Route. Areas needing clarification include:</t> | |||
<dl newline="false" spacing="normal"> | ||||
<t><list style="hanging"> | <dt>Time:</dt> | |||
<t hangText="Time:">In practice, the route will be assessed over a | <dd>In practice, the Route will be assessed over a | |||
time interval, because active path detection methods like Paris | time interval because active path detection methods like Paris-trace | |||
Traceroute <xref target="PT"/> rely on hop limits for their | route <xref target="PT" format="default"/> rely on Hop Limits for their | |||
operation and cannot accomplish discovery of all hosts using a | operation and cannot accomplish discovery of all Hosts using a | |||
single packet.</t> | single packet.</dd> | |||
<dt>Type-P:</dt> | ||||
<t hangText="Type-P:">The legacy route definition lacks the option | <dd>The legacy Route definition lacks the option | |||
to cater for packet-dependent routing. In this memo, we assess the | to cater for packet-dependent routing. In this memo, we assess the | |||
route for a specific packet of Type-P, and reflect this in the | Route for a specific packet of Type-P and reflect this in the | |||
metric definition. The methods of measurement determine the | metric definition. The methods of measurement determine the | |||
specific Type-P used.</t> | specific Type-P used.</dd> | |||
<dt>Parallel Paths:</dt> | ||||
<t hangText="Parallel Paths:">Parallel paths are a reality of the | <dd>Parallel paths are a reality of the | |||
Internet and a strength of advanced route assessment methods, so | Internet and a strength of advanced Route assessment methods, so | |||
the metric must acknowledge this possibility. Use of Equal Cost | the metric must acknowledge this possibility. Use of Equal-Cost | |||
Multi-Path (ECMP) and Unequal Cost Multi-Path (UCMP) technologies | Multipath (ECMP) and Unequal-Cost Multipath (UCMP) technologies | |||
are common sources of parallel subpaths.</t> | are common sources of parallel subpaths.</dd> | |||
<dt>Cloud Subpath:</dt> | ||||
<t hangText="Cloud Subpath:">May contain hosts that do not | <dd>Cloud subpaths may contain Hosts that do not | |||
decrement hop limit, but may have two or more exchange links | decrement the Hop Limit but may have two or more exchange links | |||
connecting "discoverable" hosts or routers. Parallel subpaths | connecting "discoverable" Hosts or routers. Parallel subpaths | |||
contained within clouds cannot be discovered. The assessment | contained within clouds cannot be discovered. The assessment | |||
methods only discover hosts or routers on the path that decrement | methods only discover Hosts or routers on the path that decrement | |||
hop limit, or cooperate with interrogation protocols. The presence | Hop Limit or cooperate with interrogation protocols. The presence | |||
of tunnels and nested tunnels further complicate assessment by | of tunnels and nested tunnels further complicate assessment by | |||
hiding hops.</t> | hiding Hops.</dd> | |||
<dt>Hop:</dt> | ||||
<t hangText="Hop:">Although the <xref target="RFC2330"/> | <dd>The definition of Hop in <xref target="RFC2330" | |||
definition of a hop was a link-host pair, only hosts that are | format="default"/> was a link-Host pair. However, only Hosts | |||
discoverable or have the capability to cooperate with | that were discoverable and cooperated with | |||
interrogation protocols where link information may be exposed.</t> | interrogation protocols (where link information may be exposed) prov | |||
</list>The refined definition of Route metrics begins in the | ided both link and Host information.</dd> | |||
sections that follow.</t> | </dl> | |||
<t>Note that the actual definitions appear in <xref target="terms"/>.</t | ||||
> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Requirements Language"> | <name>Requirements Language</name> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | NOT</bcp14>", | |||
14<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and | ||||
"<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as desc | ||||
ribed in BCP | ||||
14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" | ||||
format="default"/> when, and only | ||||
when, they appear in all capitals, as shown here.</t> | when, they appear in all capitals, as shown here.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="Scope" numbered="true" toc="default"> | ||||
<section anchor="Scope" title="Scope"> | <name>Scope</name> | |||
<t>The purpose of this memo is to add new route metrics and methods of | <t>The purpose of this memo is to add new Route metrics and methods of | |||
measurement to the existing set of IPPM metrics.</t> | measurement to the existing set of IPPM metrics.</t> | |||
<t>The scope is to define Route metrics that can identify the path taken | ||||
<t>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, the | |||
Although primarily intended for hosts communicating on the Internet, the | ||||
definitions and metrics are constructed to be applicable to other | definitions and metrics are constructed to be applicable to other | |||
network domains, if desired. The methods of measurement to assess the | network domains, if desired. The methods of measurement to assess the | |||
path may not be able to discover all hosts comprising the path, but such | path may not be able to discover all Hosts comprising the path, but such | |||
omissions are often deterministic and explainable sources of error.</t> | omissions are often deterministic and explainable sources of error.</t> | |||
<t>This memo also specifies a framework for active methods of | <t>This memo also specifies a framework for active methods of | |||
measurement which uses the techniques described in <xref target="PT"/>, | measurement that uses the techniques described in <xref target="PT" format | |||
as well as a framework for hybrid active-passive methods of measurement | ="default"/> | |||
such as the Hybrid Type I method <xref target="RFC7799"/> described in | as well as a framework for hybrid active-passive methods of measurement, | |||
<xref target="I-D.ietf-ippm-ioam-data"/>. Methods using <xref | such as the Hybrid Type I method <xref target="RFC7799" format="default"/> | |||
target="I-D.ietf-ippm-ioam-data"/> are intended only for single | described in | |||
<xref target="RFC9197" format="default"/>. Methods using <xref target="RFC | ||||
9197" format="default"/> are intended only for single | ||||
administrative domains that provide a protocol for explicit | administrative domains that provide a protocol for explicit | |||
interrogation of nodes on a path. Combinations of active methods and | interrogation of Nodes on a path. Combinations of active methods and | |||
hybrid active-passive methods are also in-scope.</t> | hybrid active-passive methods are also in scope.</t> | |||
<t>Further, this memo provides additional analysis of the Round-Trip | ||||
<t>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.</t> | use.</t> | |||
<t>This memo updates <xref target="RFC2330" section="5" sectionFormat="of" | ||||
<t>This memo updates Section 5 of <xref target="RFC2330"/> in the areas | /> in the areas | |||
of path-related terminology and path description, primarily to include | of path-related terminology and path description, primarily to include | |||
the possibility of parallel subpaths between a given Source and | the possibility of parallel subpaths between a given Source and | |||
Destination address pair (possibly resulting from Equal Cost Multi-Path | Destination address pair (possibly resulting from ECMP and UCMP technologi | |||
(ECMP) and Unequal Cost Multi-Path (UCMP) technologies).</t> | es).</t> | |||
<t>There are several simple non-goals of this memo. There is no attempt | <t>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 delay | attempting the path measurement. The reverse path contribution to delay | |||
will be that experienced by ICMP packets (in active methods), and may be | will be that experienced by ICMP packets (in active methods) and may be | |||
different from delays experienced by UDP or TCP packets. Also, the round | different from delays experienced by UDP or TCP packets. Also, the | |||
trip delay will include an unknown contribution of processing time at | Round-Trip Delay will include an unknown contribution of processing time | |||
the host that generates the ICMP response. Therefore, the ICMP-based | at | |||
the Host that generates the ICMP response. Therefore, the ICMP-based | ||||
active methods are not supposed to yield accurate, reproducible | active methods are not supposed to yield accurate, reproducible | |||
estimations of the Round-Trip Delay that UDP or TCP packets will | estimations of the Round-Trip Delay that UDP or TCP packets will | |||
experience.</t> | experience.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Route Metric Specifications"> | <name>Route Metric Specifications</name> | |||
<t>This section sets requirements for the components of the Route | <t>This section sets requirements for the components of the route | |||
Metric.</t> | metric.</t> | |||
<section numbered="true" toc="default" anchor="terms"> | ||||
<section title="Terms and Definitions"> | <name>Terms and Definitions</name> | |||
<t/> | <t/> | |||
<dl newline="true" spacing="normal"> | ||||
<dt>Host</dt> | ||||
<t><list style="hanging"> | <dd>A Host (as defined in <xref target="RFC2330" format="default"/>) i | |||
<t hangText="Host">A Host as defined in <xref target="RFC2330"/> | s | |||
(a computer capable of IP communication, includes routers), a.k.a. | a computer capable of IP communication, including routers (aka an | |||
RFC 2330 Host.</t> | RFC 2330 Host).</dd> | |||
<dt>Node </dt> | ||||
<t hangText="Node ">A Node is any network function on the path | <dd>A Node is any network function on the path | |||
capable of IP-layer Communication, includes RFC 2330 Hosts.</t> | capable of IP-layer Communication, including RFC 2330 Hosts.</dd> | |||
<dt>Node Identity</dt> | ||||
<t hangText="Node Identity">The unique address for Nodes | <dd>The Node identity is the unique address for Nodes | |||
communicating within the network domain. For Nodes communicating | communicating within the network domain. For Nodes communicating | |||
on the Internet with IP, it is the globally routable IP address | on the Internet with IP, it is the globally routable IP address | |||
which the Node uses when communicating with other Nodes under | that the Node uses when communicating with other Nodes under | |||
normal or error conditions. The Node Identity revealed (and its | normal or error conditions. The Node identity revealed (and its | |||
connection to a Node Name through reverse DNS) determines whether | connection to a Node name through reverse DNS) determines whether | |||
interfaces to parallel links can be associated with a single Node, | interfaces to parallel links can be associated with a single Node | |||
or appear to identify unique Nodes.</t> | or appear to identify unique Nodes.</dd> | |||
<dt>Discoverable Node</dt> | ||||
<t hangText="Discoverable Node">Nodes that convey their Node | <dd>Discoverable Nodes are Nodes that convey their Node | |||
Identity according to the requirements of their network domain, | identity according to the requirements of their network domain, | |||
such as when error conditions are detected by that Node. For Nodes | such as when error conditions are detected by that Node. For Nodes | |||
communicating with IP packets, compliance with Section 3.2.2.4 of | communicating with IP packets, compliance with | |||
<xref target="RFC1122"/> when discarding a packet due to TTL or | <xref target="RFC1122" section="3.2.2.4" sectionFormat="of"/>, when | |||
Hop Limit Exceeded condition, MUST result in sending the | discarding a packet due to TTL or | |||
Hop Limit Exceeded condition, <bcp14>MUST</bcp14> result in sending | ||||
the | ||||
corresponding Time Exceeded message (containing a form of Node | corresponding Time Exceeded message (containing a form of Node | |||
identity) to the source. This requirement is also consistent with | identity) to the source. This requirement is also consistent with | |||
section 5.3.1 of <xref target="RFC1812"/> for routers.</t> | <xref target="RFC1812" sectionFormat="of" section="5.3.1"/> for rout | |||
ers.</dd> | ||||
<t hangText="Cooperating Node">Nodes that respond to direct | <dt>Cooperating Node</dt> | |||
queries for their Node identity as part of a previously agreed and | <dd>Cooperating Nodes are Nodes that respond to direct | |||
established interrogation protocol. Nodes SHOULD also provide | queries for their Node identity as part of a previously established | |||
and | ||||
agreed upon interrogation protocol. Nodes <bcp14>SHOULD</bcp14> also | ||||
provide | ||||
information such as arrival/departure interface identification, | information such as arrival/departure interface identification, | |||
arrival timestamp, and any relevant information about the Node or | arrival timestamp, and any relevant information about the Node or | |||
specific link which delivered the query to the Node.</t> | specific link that delivered the query to the Node.</dd> | |||
<dt>Hop specification</dt> | ||||
<t hangText="Hop specification">A Hop specification MUST contain a | <dd>A Hop specification <bcp14>MUST</bcp14> contain a | |||
Node Identity, and MAY contain arrival and/or departure interface | Node identity and <bcp14>MAY</bcp14> contain arrival and/or departur | |||
identification, round trip delay, and an arrival timestamp.</t> | e interface | |||
identification, Round-Trip Delay, and an arrival timestamp.</dd> | ||||
<t hangText="Routing Class">A route that treats equally a class of | <dt>Routing Class</dt> | |||
<dd>Routing Class is a Route that treats a class of | ||||
different types of packets, designated "C" (unrelated to address | different types of packets, designated "C" (unrelated to address | |||
classes of the past) <xref target="RFC2330"/> <xref | classes of the past) equally (<xref target="RFC2330" format="default | |||
target="RFC8468"/>. Knowledge of such a class allows any one of | "/> <xref target="RFC8468" format="default"/>). Knowledge of such a class allows | |||
any one of | ||||
the types of packets within that class to be used for subsequent | the types of packets within that class to be used for subsequent | |||
measurement of the route. The designator "class C" is used for | measurement of the Route. The designator "class C" is used for | |||
historical reasons, see <xref target="RFC2330"/>.</t> | historical reasons; see <xref target="RFC2330" format="default"/>.</ | |||
</list></t> | dd> | |||
</dl> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Formal Name"> | <name>Formal Name</name> | |||
<t>The formal name of the metric is:</t> | <t>The formal name of the metric is:</t> | |||
<t> Type-P-Route-Ensemble-Method-Variant </t> | <t> Type-P-Route-Ensemble-Method-Variant </t> | |||
<t>abbreviated as Route Ensemble.</t> | <t>abbreviated as Route Ensemble.</t> | |||
<t>Note that Type-P depends heavily on the chosen method and | <t>Note that Type-P depends heavily on the chosen method and | |||
variant.</t> | variant.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Parameters"> | <name>Parameters</name> | |||
<t>This section lists the REQUIRED input factors to define and measure | <t>This section lists the <bcp14>REQUIRED</bcp14> input factors to defin | |||
a Route metric, as specified in this memo.<list style="symbols"> | e and measure | |||
<t>Src, the address of a Node (such as the globally routable IP | a Route metric, as specified in this memo.</t> | |||
address).</t> | <dl spacing="normal"> | |||
<dt>Src:</dt> | ||||
<t>Dst, the address of a Node (such as the globally routable IP | <dd> the address of a Node (such as the globally routable IP | |||
address).</t> | address).</dd> | |||
<dt>Dst:</dt> | ||||
<t>i, the limit on the number of Hops a specific packet may visit | <dd> the address of a Node (such as the globally routable IP | |||
address).</dd> | ||||
<dt>i:</dt> | ||||
<dd> the limit on the number of Hops a specific packet may visit | ||||
as it traverses from the Node at Src to the Node at Dst (such as | as it traverses from the Node at Src to the Node at Dst (such as | |||
the TTL or Hop Limit).</t> | the TTL or Hop Limit).</dd> | |||
<dt>MaxHops:</dt> | ||||
<t>MaxHops, the maximum value of i used, (i=1,2,3,...MaxHops).</t> | <dd> the maximum value of i used (i=1,2,3,...MaxHops).</dd> | |||
<dt>T0:</dt> | ||||
<t>T0, a time (start of measurement interval)</t> | <dd>a time (start of measurement interval).</dd> | |||
<dt>Tf:</dt> | ||||
<t>Tf, a time (end of measurement interval)</t> | <dd>a time (end of measurement interval).</dd> | |||
<dt>MP(address):</dt> | ||||
<t>MP(address), Measurement Point at address, such as Src or Dst, | <dd>the Measurement Point at address, such as Src or Dst, | |||
usually at the same node stack layer as "address".</t> | usually at the same Node stack layer as "address".</dd> | |||
<dt>T:</dt> | ||||
<t>T, the Node time of a packet as measured at MP(Src), meaning | <dd> the Node time of a packet as measured at MP(Src), meaning | |||
Measurement Point at the Source.</t> | Measurement Point at the Source.</dd> | |||
<dt>Ta:</dt> | ||||
<t>Ta, the Node time of a reply packet's *arrival* as measured at | <dd> the Node time of a reply packet's <strong>arrival</strong> as meas | |||
ured 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).</t> | time (see parameter below).</dd> | |||
<dt>Tmax:</dt> | ||||
<t>Tmax, a maximum waiting time for reply packets to return to the | <dd> 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.</t> | distribution of Round-Trip Delay is not truncated.</dd> | |||
<dt>F:</dt> | ||||
<t>F, the number of different flows simulated by the method and | <dd> the number of different flows simulated by the method and | |||
variant.</t> | variant.</dd> | |||
<dt>flow:</dt> | ||||
<t>flow, the stream of packets with the same n-tuple of designated | <dd> 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 <bcp14>MAY</bcp14> be inc | |||
flow definition if the MP(Src) is a Tunnel End Point (TEP) | luded in the | |||
complying with <xref target="RFC6438"/> guidelines.</t> | flow definition if the MP(Src) is a Tunnel Endpoint (TEP) | |||
complying with the guidelines in <xref target="RFC6438" format="defa | ||||
<t>Type-P, the complete description of the packets for which this | ult"/>.</dd> | |||
assessment applies (including the flow-defining fields).</t> | <dt>Type-P:</dt> | |||
</list></t> | <dd> the complete description of the packets for which this | |||
assessment applies (including the flow-defining fields).</dd> | ||||
</dl> | ||||
</section> | </section> | |||
<section numbered="true" toc="default" anchor="Metric"> | ||||
<section title="Metric Definitions"> | <name>Metric Definitions</name> | |||
<t>This section defines the REQUIRED measurement components of the | <t>This section defines the <bcp14>REQUIRED</bcp14> measurement componen | |||
ts of the | ||||
Route metrics (unless otherwise indicated):</t> | Route metrics (unless otherwise indicated):</t> | |||
<dl spacing="normal"> | ||||
<t>M, the total number of packets sent between T0 and Tf.</t> | <dt>M:</dt> | |||
<dd> the total number of packets sent between T0 and Tf.</dd> | ||||
<t>N, the smallest value of i needed for a packet to be received at | <dt>N:</dt> | |||
Dst (sent between T0 and Tf).</t> | <dd> the smallest value of i needed for a packet to be received at | |||
Dst (sent between T0 and Tf).</dd> | ||||
<t>Nmax, the largest value of i needed for a packet to be received at | <dt>Nmax:</dt> | |||
Dst (sent between T0 and Tf). Nmax may be equal to N.</t> | <dd> 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.</dd> | ||||
<t>Next define a *singleton* definition for a Node on the path, with | </dl> | |||
<t>Next, define a <strong>singleton</strong> for a Node on the path with | ||||
sufficient indexes to identify all Nodes identified in a measurement | sufficient indexes to identify all Nodes identified in a measurement | |||
interval (where *singleton* is part of the IPPM Framework <xref | interval (where <strong>singleton</strong> is part of the IPPM Framework | |||
target="RFC2330"/>).</t> | <xref | |||
target="RFC2330" format="default"/>).</t> | ||||
<t>A Hop Specification, designated h(i,j), the IP address and/or | <dl spacing="normal"> | |||
identity of Discoverable Nodes (or Cooperating Nodes) that are i hops | <dt>singleton:</dt> | |||
<dd>A Hop specification, designated h(i,j), the IP address and/or | ||||
identity of Discoverable Nodes (or Cooperating Nodes) that are i Hops | ||||
away from the Node with address = Src and part of Route j during the | away from the Node with address = Src and part of Route j during the | |||
measurement interval, T0 to Tf. As defined here, a Hop singleton | measurement interval T0 to Tf. As defined here, a Hop singleton | |||
measurement MUST contain a Node Identity, hid(i,j), and MAY contain | measurement <bcp14>MUST</bcp14> contain a Node identity, hid(i,j), and < | |||
one or more of the following attributes:<list style="symbols"> | bcp14>MAY</bcp14> contain | |||
<t>a(i,j) Arrival Interface ID (e.g., when <xref | one or more of the following attributes:</dd> | |||
target="RFC5837"/> is supported)</t> | </dl> | |||
<ul spacing="normal"> | ||||
<t>d(i,j) Departure Interface ID (e.g., when <xref | <li>a(i,j) Arrival Interface ID (e.g., when <xref target="RFC5837" | |||
target="RFC5837"/> is supported)</t> | format="default"/> is supported)</li> | |||
<li>d(i,j) Departure Interface ID (e.g., when <xref target="RFC5837" | ||||
<t>t(i,j) Arrival Timestamp, where t(i,j) is ideally supplied by | format="default"/> is supported)</li> | |||
the Hop. (Note that t(i,j) might be approximated from the sending | <li>t(i,j) arrival timestamp, where t(i,j) is ideally supplied by | |||
time of the packet that revealed the Hop, e.g., when the round | the Hop (note that t(i,j) might be approximated from the sending | |||
trip response time is available and divided by 2.)</t> | time of the packet that revealed the Hop, e.g., when the | |||
round-trip response time is available and divided by 2)</li> | ||||
<t>Measurements of Round-Trip Delay (for each packet that reveals | <li>Measurements of Round-Trip Delay (for each packet that reveals | |||
the same Node Identity and flow attributes, then this attribute is | the same Node identity and flow attributes, then this attribute is | |||
computed, see next section)</t> | computed; see next section)</li> | |||
</list></t> | </ul> | |||
<t>Node identities and related information can be ordered by their | ||||
<t>Node Identities and related information can be ordered by their | ||||
distance from the Node with address Src in Hops h(i,j). Based on this, | distance from the Node with address Src in Hops h(i,j). Based on this, | |||
two forms of Routes are distinguished:</t> | two forms of Routes are distinguished:</t> | |||
<t>A Route Ensemble is defined as the combination of all Routes | ||||
<t>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 (determined | at Dst address. A single Route traversed by a single flow (determined | |||
by an unambiguous tuple of addresses Src and Dst, and other identical | by an unambiguous tuple of addresses Src and Dst and other identical | |||
flow criteria) is a member of the Route Ensemble and called a Member | flow criteria) is a member of the Route Ensemble and called a Member | |||
Route.</t> | Route.</t> | |||
<t>Using h(i,j) and components and parameters further define:</t> | ||||
<t>Using h(i,j) and components and parameters, further define:</t> | ||||
<t>When considering the set of Hops in the context of a single flow, a | <t>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, that | |||
are part of the same Route Ensemble differ either in terms of minimum | are part of the same Route Ensemble differ either in terms of minimum | |||
hop count Nj and Nk to reach the destination Dst, or, in the case of | Hop count Nj and Nk to reach the destination Dst or, in the case of | |||
identical hop count Nj=Nk, they have at least one distinct Hop: h(i,j) | identical Hop count Nj=Nk, they have at least one distinct Hop: h(i,j) | |||
!= h(i,k) for at least one i (i=1..Nj).</t> | != h(i,k) for at least one i (i=1..Nj).</t> | |||
<t>All the optional information collected to describe a Member Route, | <t>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.</t> | details were measured.</t> | |||
<t>The Route Ensemble from Src to Dst, during the measurement interval | <t>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, with | between the two Nodes with Src and Dst addresses. More formally, with | |||
the Node having address Src omitted:</t> | the Node having address Src omitted:</t> | |||
<sourcecode name=""><![CDATA[ | ||||
<t><figure> | Route Ensemble = { | |||
<artwork><![CDATA[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} | |||
} | } | |||
]]></sourcecode> | ||||
]]></artwork> | <t>where the following conditions apply: i <= Nj <= Nmax | |||
</figure>where the following conditions apply: i <= Nj <= Nmax | ||||
(j=1..m)</t> | (j=1..m)</t> | |||
<t>Note that some h(i,j) may be empty (null) in the case that systems | <t>Note that some h(i,j) may be empty (null) in the case that systems | |||
do not reply (not discoverable, or not cooperating).</t> | do not reply (not discoverable or not cooperating).</t> | |||
<t>h(i-1,j) and h(i,j) are the Hops on the same Member Route one Hop | ||||
<t>h(i-1,j) and h(i,j) are the Hops on the same Member Route one hop | ||||
away from each other.</t> | away from each other.</t> | |||
<t>Hop h(i,j) may be identical with h(k,l) for i!=k and j!=l, which | ||||
<t>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).</t> | (parts of Member Routes may overlap).</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Related Round-Trip Delay and Loss Definitions"> | <name>Related Round-Trip Delay and Loss Definitions</name> | |||
<t>RTD(i,j,T) is defined as a singleton of the <xref | <t>RTD(i,j,T) is defined as a singleton of the <xref target="RFC2681" | |||
target="RFC2681"/> Round-Trip Delay between the Node with address = | format="default"/> Round-Trip Delay between the Node with address = | |||
Src and the Node at Hop h(i,j) at time T.</t> | Src and the Node at Hop h(i,j) at time T.</t> | |||
<t>RTL(i,j,T) is defined as a singleton of the <xref target="RFC6673" | ||||
<t>RTL(i,j,T) is defined as a singleton of the <xref | format="default"/> Round-Trip Loss between the Node with address = Src | |||
target="RFC6673"/> Round-trip Loss between the Node with address = Src | ||||
and the Node at Hop h(i,j) at time T.</t> | and the Node at Hop h(i,j) at time T.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Discussion"> | <name>Discussion</name> | |||
<t>Depending on the way that Node Identity is revealed, it may be | <t>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 parallel | Nodes (i.e., multiple parallel links). It is easier to detect parallel | |||
subpaths involving different Nodes.<list style="symbols"> | subpaths involving different Nodes.</t> | |||
<t>If a pair of discovered Nodes identify two different addresses | <ul spacing="normal"> | |||
<li>If a pair of discovered Nodes identify two different addresses | ||||
(IP or not), then they will appear to be different Nodes. See item | (IP or not), then they will appear to be different Nodes. See item | |||
below.</t> | below.</li> | |||
<li>If a pair of discovered Nodes identify two different IP | ||||
<t>If a pair of discovered Nodes identify two different IP | addresses and the IP addresses resolve to the same Node name (in | |||
addresses, and the IP addresses resolve to the same Node name (in | the DNS), then they will appear to be the same Node.</li> | |||
the DNS), then they will appear to be the same Nodes.</t> | <li>If a discovered Node always replies using the same network | |||
<t>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 <xref | Administration, and Maintenance (IOAM). For example, if the ICMP ext | |||
target="RFC5837"/> ICMP extension mechanism is implemented, then | ension mechanism described in <xref | |||
target="RFC5837" format="default"/> is | ||||
implemented, then | ||||
parallel links can be detected with the discovery traceroute-style | parallel links can be detected with the discovery traceroute-style | |||
methods. </t> | methods. </li> | |||
<li>If parallel links between routers are aggregated below the IP | ||||
<t>If parallel links between routers are aggregated below the IP | layer, then, from the Node's point of view, all these links share th | |||
layer, then from Node point of view, all these links share the | e | |||
same pair of IP addresses. The existence of these parallel links | same pair of IP addresses. The existence of these parallel links | |||
can't be detected at the IP layer. This applies to other network | can't be detected at the IP layer. This applies to other network | |||
domains with layers below them, as well. This condition may apply | domains with layers below them as well. This condition may apply | |||
to traceroute-style methods, but may not apply to other hybrid | to traceroute-style methods but may not apply to other hybrid | |||
methods based on IOAM.</t> | methods based on IOAM.</li> | |||
</list></t> | </ul> | |||
<t>When a Route assessment employs IP packets (for example), the | ||||
<t>When a route assessment employs IP packets (for example), the | ||||
reality of flow assignment to parallel subpaths involves layers above | reality of flow assignment to parallel subpaths involves layers above | |||
IP. Thus, the measured Route Ensemble is applicable to IP and higher | IP. 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).</t> | parameters).</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Reporting the Metric"> | <name>Reporting the Metric</name> | |||
<t>An Information Model and an XML Data Model for Storing Traceroute | <t>An Information Model and an XML Data Model for Storing Traceroute | |||
Measurements is available in <xref target="RFC5388"/>. The measured | Measurements is available in <xref target="RFC5388" format="default"/>. | |||
information at each hop includes four pieces of information: a | The measured | |||
one-dimensional hop index, Node symbolic address, Node IP address, and | information at each Hop includes four pieces of information: a | |||
one-dimensional Hop index, Node symbolic address, Node IP address, and | ||||
RTD for each response.</t> | RTD for each response.</t> | |||
<t>The description of Hop information that may be collected according | <t>The description of Hop information that may be collected according | |||
to this memo covers more dimensions, as defined in Section 3.4 above. | to this memo covers more dimensions, as defined in <xref target="Metric" />. | |||
For example, the Hop index is two-dimensional to capture the | For example, the Hop index is two-dimensional to capture the | |||
complexity of a Route Ensemble, and it contains corresponding Node | complexity of a Route Ensemble, and it contains corresponding Node | |||
identities at a minimum. The models need to be expanded to include | identities at a minimum. The models need to be expanded to include | |||
these features, as well as Arrival Interface ID, Departure Interface | these features as well as Arrival Interface ID, Departure Interface | |||
ID, and Arrival Timestamp, when available. The original sending | ID, and arrival timestamp, when available. The original sending | |||
Timestamp from the Src Node anchors a particular measurement in | Timestamp from the Src Node anchors a particular measurement in | |||
time.</t> | time.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="Methodologies" numbered="true" toc="default"> | ||||
<section anchor="Methodologies" title="Route Assessment Methodologies"> | <name>Route Assessment Methodologies</name> | |||
<t>There are two classes of methods described in this section, active | <t>There are two classes of methods described in this section, active | |||
methods relying on the reaction to TTL or Hop Limit Exceeded condition | methods relying on the reaction to TTL or Hop Limit Exceeded condition | |||
to discover Nodes on a path, and Hybrid active-passive methods that | to discover Nodes on a path and hybrid active-passive methods that | |||
involve direct interrogation of cooperating Nodes (usually within a | involve direct interrogation of Cooperating Nodes (usually within a | |||
single domain). Description of these methods follow.</t> | single domain). Description of these methods follow.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Active Methodologies"> | <name>Active Methodologies</name> | |||
<t>This section describes the method employed by current open source | <t>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.</t> | applicable for use across multiple administrative domains.</t> | |||
<t>Internet routing is complex because it depends on the policies of | <t>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. | |||
<xref target="RFC2991"/> describes a number of flow-based or hashed | <xref target="RFC2991" format="default"/> describes a number of flow-bas | |||
approaches (e.g., Modulo-N Hash, Hash-Threshold, Highest Random Weight | ed or hashed | |||
(HRW)), and makes some good suggestions. Flow-based ECMP avoids | approaches (e.g., Modulo-N Hash, Hash-Threshold, and Highest Random Weig | |||
increased packet delay variation and possibly overwhelming levels of | ht | |||
(HRW)) and makes some good suggestions. Flow-based ECMP avoids | ||||
increased packet Delay Variation and possibly overwhelming levels of | ||||
packet reordering in flows.</t> | packet reordering in flows.</t> | |||
<t>A few routers still divide the workload through packet-based | <t>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 <xref | outgoing packet to multiple links, as explained in <xref | |||
target="RFC2991"/>. The methods described in this section assume | target="RFC2991" format="default"/>. The methods described in this | |||
flow-based ECMP.</t> | section assume flow-based ECMP.</t> | |||
<t>Taking into account that Internet protocol was designed under the | <t>Taking into account that Internet protocol was designed under the | |||
“end-to-end” principle, the IP payload and its header do | "end-to-end" principle, the IP payload and its header do | |||
not provide any information about the routes or path necessary to | not provide any information about the Routes or path necessary to | |||
reach some destination. For this reason, the popular tool traceroute | reach some destination. For this reason, the popular tool, traceroute, | |||
was developed to gather the IP addresses of each hop along a path | was developed to gather the IP addresses of each Hop along a path | |||
using the ICMP protocol <xref target="RFC0792"/>. Traceroute also | using ICMP <xref target="RFC0792" format="default"/>. Traceroute also | |||
measures RTD from each hop. However, the growing complexity of the | measures RTD from each Hop. However, the growing complexity of the | |||
Internet makes it more challenging to develop an accurate traceroute | Internet makes it more challenging to develop an accurate traceroute | |||
implementation. For instance, the early traceroute tools would be | implementation. For instance, the early traceroute tools would be | |||
inaccurate in the current network, mainly because they were not | inaccurate in the current network, mainly because they were not | |||
designed to retain a flow state. However, evolved traceroute tools, | designed to retain a flow state. However, evolved traceroute tools, | |||
such as Paris-traceroute <xref target="PT"/> <xref target="MLB"/> and | such as Paris-traceroute (<xref target="PT" format="default"/> <xref | |||
Scamper <xref target="SCAMPER"/>, expect to encounter ECMP and achieve | target="MLB" format="default"/>) and | |||
Scamper (<xref target="SCAMPER" format="default"/>), expect to encounter | ||||
ECMP and achieve | ||||
more accurate results when they do, where Scamper ensures traceroute | more accurate results when they do, where Scamper ensures traceroute | |||
packets will follow the same path in 98% of cases<xref | packets will follow the same path in 98% of cases (<xref target="SCAMPER | |||
target="SCAMPER"/>.</t> | " format="default"/>).</t> | |||
<t>Today's traceroute tools send Type-P of packets, which are either ICM | ||||
<t>Today's traceroute tools send Type-P of packets, either ICMP, UDP, | P, UDP, | |||
or TCP. UDP and TCP are used when a particular characteristic needs to | or TCP. UDP and TCP are used when a particular characteristic needs to | |||
be verified, such as filtering or traffic shaping on specific ports | be verified, such as filtering or traffic shaping on specific ports | |||
(i.e., services). UDP and TCP traceroute are also used when ICMP | (i.e., services). UDP and TCP traceroute are also used when ICMP | |||
responses are not received. <xref target="SCAMPER"/> supports IPv6 | responses are not received. <xref target="SCAMPER" format="default"/> su | |||
traceroute measurements, keeping the FlowLabel constant in all | pports IPv6 | |||
traceroute measurements, keeping the Flow Label constant in all | ||||
packets.</t> | packets.</t> | |||
<t>Paris-traceroute allows its users to measure the RTD to every Node | <t>Paris-traceroute allows its users to measure the RTD to every Node | |||
of the path for a particular flow. Furthermore, either | of the path for a particular flow. Furthermore, either | |||
Paris-traceroute or Scamper is capable of unveiling the many available | Paris-traceroute or Scamper is capable of unveiling the many available | |||
paths between a source and destination (which are visible to active | paths between a source and destination (which are visible to active | |||
methods). This task is accomplished by repeating complete traceroute | methods). This task is accomplished by repeating complete traceroute | |||
measurements with different flow parameters for each measurement; | measurements with different flow parameters for each measurement; | |||
Paris-traceroute provides “exhaustive” mode while scamper | Paris-traceroute provides an "exhaustive" mode, while Scamper | |||
provides “tracelb” (stands for traceroute load balance). | provides "tracelb" (which stands for "traceroute load balance"). | |||
The Framework for IP Performance Metrics (IPPM) (<xref | <xref | |||
target="RFC2330"/> updated by<xref target="RFC7312"> </xref>) has the | target="RFC2330" format="default">"Framework for IP Performance Metrics"< | |||
/xref>, updated by <xref target="RFC7312" | ||||
format="default"> </xref>, has the | ||||
flexibility to require that the Round-Trip Delay measurement <xref | flexibility to require that the Round-Trip Delay measurement <xref | |||
target="RFC2681"/> uses packets with the constraints to assure that | target="RFC2681" format="default"/> uses packets with the constraints | |||
to assure that | ||||
all packets in a single measurement appear as the same flow. This | all packets in a single measurement appear as the same flow. This | |||
flexibility covers ICMP, UDP, and TCP. The accompanying methodology of | flexibility covers ICMP, UDP, and TCP. The accompanying methodology of | |||
<xref target="RFC2681"/> needs to be expanded to report the sequential | <xref target="RFC2681" format="default"/> needs to be expanded to report | |||
hop identifiers along with RTD measurements, but no new metric | the sequential | |||
Hop identifiers along with RTD measurements, but no new metric | ||||
definition is needed.</t> | definition is needed.</t> | |||
<t>The advanced Route assessment methods used in Paris-traceroute | ||||
<t>The advanced route assessment methods used in Paris-traceroute | <xref target="PT" format="default"/> keep the critical fields constant f | |||
<xref target="PT"/> keep the critical fields constant for every packet | or every packet | |||
to maintain the appearance of the same flow. When considering IPv6 | to maintain the appearance of the same flow. When considering IPv6 | |||
headers, it is necessary to ensure that the IP source and destination | headers, it is necessary to ensure that the IP Source and Destination | |||
addresses and the FlowLabel are constant (but note that many routers | addresses and Flow Label are constant (but note that many routers | |||
ignore the FlowLabel field at this time), see <xref | ignore the Flow Label field at this time); see <xref target="RFC6437" | |||
target="RFC6437"/>. Use of IPv6 Extension Headers may add critical | format="default"/>. Use of IPv6 Extension Headers may add critical | |||
fields, and SHOULD be avoided. In IPv4, certain fields of the IP | fields and <bcp14>SHOULD</bcp14> be avoided. In IPv4, certain fields of | |||
header and the first four bytes of the IP payload should remain | the IP | |||
constant in a flow. In the IPv4 header, the IP source and destination | header and the first 4 bytes of the IP payload should remain | |||
constant in a flow. In the IPv4 header, the IP Source and Destination | ||||
addresses, protocol number, and Diffserv fields identify flows. The | addresses, protocol number, and Diffserv fields identify flows. The | |||
first four payload bytes include the UDP and TCP ports, and the ICMP | first 4 payload bytes include the UDP and TCP ports and the ICMP | |||
type, code, and checksum fields.</t> | type, code, and checksum fields.</t> | |||
<t>Maintaining a constant ICMP checksum in IPv4 is most challenging, | <t>Maintaining a constant ICMP checksum in IPv4 is most challenging, | |||
as the ICMP sequence number or identifier fields will usually change | as the ICMP sequence number or identifier fields will usually change | |||
for different probes of the same path. Probes should use arbitrary | for different probes of the same path. Probes should use arbitrary | |||
bytes in the ICMP data field to offset changes to sequence number and | bytes in the ICMP data field to offset changes to the sequence number an d | |||
identifier, thus keeping the checksum constant.</t> | identifier, thus keeping the checksum constant.</t> | |||
<t>Finally, it is also essential to Route the resulting ICMP Time | ||||
<t>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. | |||
the IP header and the first eight bytes of the IP payload, which | In IPv4, the ICMP Time Exceeded message will contain | |||
affects its ICMP checksum. The TCP sequence number, UDP Length, and | the IP header and the first 8 bytes of the IP payload, both of which | |||
UDP checksum will affect this value, and should remain constant.</t> | affect its ICMP checksum calculation. The TCP sequence number, UDP lengt | |||
h, and | ||||
UDP checksum will affect this value and should remain constant.</t> | ||||
<t>Formally, to maintain the same flow in the measurements to a | <t>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<xref target="PT"/>:</t> | should have the following attributes (see <xref target="PT" format="defa | |||
ult"/>):</t> | ||||
<t><list style="symbols"> | ||||
<t>TCP case: For IPv4, the fields Src, Dst, port-Src, port_Dst, | ||||
sequence number, and Diffserv Field SHOULD be the same. For IPv6, | ||||
the field FlowLabel, Src and Dst SHOULD be the same.</t> | ||||
<t>UDP case: For IPv4, the fields Src, Dst, port-Src, port-Dst, | <dl spacing="normal"> | |||
Diffserv should be the same, and the UDP-checksum SHOULD change to | <dt>TCP case:</dt> | |||
keep the IP checksum of the ICMP time exceeded reply constant. | <dd> For IPv4, the fields Src, Dst, port-Src, port_Dst, | |||
sequence number, and Diffserv <bcp14>SHOULD</bcp14> be the same. For | ||||
IPv6, | ||||
the fields Flow Label, Src, and Dst <bcp14>SHOULD</bcp14> be the sam | ||||
e.</dd> | ||||
<dt>UDP case:</dt> | ||||
<dd> For IPv4, the fields Src, Dst, port-Src, port-Dst, and | ||||
Diffserv should be the same, and the UDP checksum <bcp14>SHOULD</bcp | ||||
14> change to | ||||
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.</t> | addresses <bcp14>SHOULD</bcp14> be the same.</dd> | |||
<dt>ICMP case:</dt> | ||||
<t>ICMP case: For IPv4, the Data field SHOULD compensate | <dd> For IPv4, the data field <bcp14>SHOULD</bcp14> compensate | |||
variations on TTL or Hop Limit, IP identification, and IP checksum | variations on TTL or Hop Limit, IP identification, and IP checksum | |||
for every packet. There is no need to consider ICMPv6 because only | for every packet. There is no need to consider ICMPv6 because only | |||
FlowLabel of IPv6 and Source and Destination addresses are used, | Flow Label of IPv6 and Source and Destination addresses are used, | |||
and all of them SHOULD be constant.</t> | and all of them <bcp14>SHOULD</bcp14> be constant.</dd> | |||
</list></t> | </dl> | |||
<t>Then, the way to identify different Hops and attempts of the same | ||||
<t>Then, the way to identify different hops and attempts of the same | ||||
IPv4 flow is:</t> | IPv4 flow is:</t> | |||
<dl spacing="normal"> | ||||
<dt>TCP case:</dt> | ||||
<dd> The IP identification field.</dd> | ||||
<dt>UDP case:</dt> | ||||
<dd> The IP identification field.</dd> | ||||
<dt>ICMP case:</dt> | ||||
<dd> The IP identification field and ICMP sequence | ||||
number.</dd> | ||||
</dl> | ||||
<t><list style="symbols"> | <section numbered="true" toc="default"> | |||
<t>TCP case: The IP identification field.</t> | <name>Temporal Composition for Route Metrics</name> | |||
<t>The active Route assessment methods described above have the | ||||
<t>UDP case: The IP identification field.</t> | ||||
<t>ICMP case: The IP identification field, and ICMP Sequence | ||||
number.</t> | ||||
</list></t> | ||||
<section title="Temporal Composition for Route Metrics"> | ||||
<t>The Active Route Assessment Methods described above have the | ||||
ability to discover portions of a path where ECMP load balancing is | ability to discover portions of a path where ECMP load balancing is | |||
present, observed as two or more unique Member Routes having one or | present, observed as two or more unique Member Routes having one or | |||
more distinct Hops which are part of the Route Ensemble. Likewise, | more 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 | all Member Routes will reveal portions of the path that are | |||
flow-invariant.</t> | flow invariant.</t> | |||
<t><xref target="RFC2330" section="9.2" sectionFormat="of"/> describes | ||||
<t>Section 9.2 of <xref target="RFC2330"/> describes Temporal | the Temporal | |||
Composition of metrics, and introduces the possibility of a | Composition of metrics and introduces the possibility of a | |||
relationship between earlier measurement results and the results for | relationship between earlier measurement results and the results for | |||
measurement at the current time (for a given metric). There is value | measurement at the current time (for a given metric). There is value | |||
in establishing a Temporal Composition relationship for Route | in establishing a Temporal Composition relationship for Route | |||
Metrics. However, this relationship does not represent a forecast of | metrics; however, this relationship does not represent a forecast of | |||
future route conditions in any way.</t> | future Route conditions in any way.</t> | |||
<t>For Route-metric measurements, the value of Temporal Composition | ||||
<t>For Route Metric measurements, the value of Temporal Composition | ||||
is to reduce the measurement iterations required with repeated | is 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:<list style="symbols"> | characteristics:</t> | |||
<t>will have many common hops with previous measurements.</t> | <ul spacing="normal"> | |||
<li>will have many common Hops with previous measurements.</li> | ||||
<t>will have relatively time-stable results at the ingress and | <li>will have relatively time-stable results at the ingress and | |||
egress portions of the path when measured from user locations, | egress portions of the path when measured from user locations, | |||
as opposed to measurements of backbone networks and across | as opposed to measurements of backbone networks and across | |||
inter-domain gateways.</t> | inter-domain gateways.</li> | |||
<li>may have greater potential for time variation in path | ||||
<t>may have greater potential for time-variation in path | ||||
portions where ECMP load balancing is observed (because | portions where ECMP load balancing is observed (because | |||
increasing or decreasing the pool of links changes the hash | increasing or decreasing the pool of links changes the hash | |||
calculations).</t> | calculations).</li> | |||
</list></t> | </ul> | |||
<t>Optionally, measurement systems may take advantage of the | <t>Optionally, measurement systems may take advantage of the | |||
inferences above when seeking to reduce measurement iterations, | inferences above when seeking to reduce measurement iterations | |||
after exhaustive measurements indicate that the time-stable | after exhaustive measurements indicate that the time-stable | |||
properties are present. Repetitive Active Route measurement | properties are present. Repetitive active Route measurement | |||
systems:<list style="numbers"> | systems:</t> | |||
<t>SHOULD occasionally check path portions which have exhibited | <ol spacing="normal" type="1"> | |||
<li><bcp14>SHOULD</bcp14> 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).</t> | during a day).</li> | |||
<li><bcp14>SHOULD</bcp14> continue testing portions of the path that | ||||
<t>SHOULD continue testing portions of the path that have | have | |||
previously exhibited ECMP load balancing.</t> | previously exhibited ECMP load balancing.</li> | |||
<li><bcp14>SHALL</bcp14> trigger reassessment of the complete path a | ||||
<t>SHALL trigger re-assessment of the complete path and Route | nd 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.</t> | previously tested) flow.</li> | |||
</list></t> | </ol> | |||
<t/> | <t/> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Routing Class Identification"> | <name>Routing Class Identification</name> | |||
<t>There is an opportunity to apply the <xref target="RFC2330"/> | <t>There is an opportunity to apply the notion from <xref target="RFC2 | |||
notion of equal treatment for a class of packets, "...very useful to | 330" format="default"/> | |||
of equal treatment for a class of packets, "...very useful to | ||||
know if a given Internet component treats equally a class C of | know if a given Internet component treats equally a class C of | |||
different types of packets", as it applies to Route measurements. | different types of packets", as it applies to Route measurements. | |||
The notion of class C was examined further in <xref | The notion of class C was examined further in <xref target="RFC8468" | |||
target="RFC8468"/> as it applied to load-balancing flows over | format="default"/> as it applied to load-balancing flows over | |||
parallel paths, which is the case we develop here. Knowledge of | parallel paths, which is the case we develop here. Knowledge of | |||
class C parameters (unrelated to address classes of the past) on a | class C parameters (unrelated to address classes of the past) on a | |||
path potentially reduces the number of flows required for a given | path potentially reduces the number of flows required for a given | |||
method to assess a Route Ensemble over time.</t> | method to assess a Route Ensemble over time.</t> | |||
<t>First, recognize that each Member Route of a Route Ensemble will | <t>First, recognize that each Member Route of a Route Ensemble will | |||
have a corresponding class C. Class C can be discovered by testing | have a corresponding class C. Class C can be discovered by testing | |||
with multiple flows, all of which traverse the unique set of hops | with multiple flows, all of which traverse the unique set of Hops | |||
that comprise a specific Member Route.</t> | that comprise a specific Member Route.</t> | |||
<t>Second, recognize that the different classes depend primarily on | <t>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.</t> | the path.</t> | |||
<t>Third, recognize the synergy with Temporal Composition methods | <t>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 | portions of each Member Route so that more emphasis can be placed | |||
on ECMP portions that also determine class C.</t> | on ECMP portions that also determine class C.</t> | |||
<t>The methods to assess the various class C characteristics benefit | <t>The methods to assess the various class C characteristics benefit | |||
from the following measurement capabilities:<list style="symbols"> | from the following measurement capabilities:</t> | |||
<t>flows designed to determine which n-tuple header fields are | <ul spacing="normal"> | |||
considered by a given hash function and ECMP hop on the path, | <li>flows designed to determine which n-tuple header fields are | |||
considered by a given hash function and ECMP Hop on the path | ||||
and which are not. This operation immediately narrows the search | and which are not. This operation immediately narrows the search | |||
space, where possible, and partially defines a class C.</t> | space, where possible, and partially defines a class C.</li> | |||
<li>a priori knowledge of the possible types of hash functions in | ||||
<t>a priori knowledge of the possible types of hash functions in | ||||
use also helps to design the flows for testing (major router | use also helps to design the flows for testing (major router | |||
vendors publish information about these hash functions, examples | vendors publish information about these hash functions; examples | |||
are here <xref target="LOAD_BALANCE"/>.</t> | are in <xref target="LOAD_BALANCE" format="default"/>).</li> | |||
<li>ability to direct the emphasis of current measurements on | ||||
<t>ability to direct the emphasis of current measurements on | ||||
ECMP portions of the path, based on recent past measurement | ECMP portions of the path, based on recent past measurement | |||
results (the Routing Class of some portions of the path is | results (the Routing Class of some portions of the path is | |||
essentially "all packets").</t> | essentially "all packets").</li> | |||
</list></t> | </ul> | |||
<t/> | <t/> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Intermediate Observation Point Route Measurement"> | <name>Intermediate Observation Point Route Measurement</name> | |||
<t>There are many examples where passive monitoring of a flow at an | <t>There are many examples where passive monitoring of a flow at an | |||
Observation Point within the network can detect unexpected Round | Observation Point within the network can detect unexpected | |||
Trip Delay or Delay Variation. But how can the cause of the | Round-Trip Delay or Delay Variation. But how can the cause of the | |||
anomalous delay be investigated further *from the Observation Point* | anomalous delay be investigated further <strong>from the Observation P | |||
oint</strong> | ||||
possibly located at an intermediate point on the path?</t> | possibly located at an intermediate point on the path?</t> | |||
<t>In this case, knowledge that the flow of interest belongs to a | <t>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.</t> | variable delay on a specific link and Hop combination.</t> | |||
<t>The determination of a Routing Class C that includes the flow of | ||||
<t>The determination of a Routing Class C which 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.</t> | of the relevant hash function output as the target.</t> | |||
<t/> | <t/> | |||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>Hybrid Methodologies</name> | ||||
<t>The Hybrid Type I methods provide an alternative for Route | ||||
assessment. | ||||
The "Scope, Applicability, and Assumptions" section of <xref | ||||
target="RFC9197" format="default"/> provides one possible set of data | ||||
fields that would support Route identification.</t> | ||||
<t>In general, Nodes in the measured domain would be equipped with | ||||
specific abilities:</t> | ||||
<ul spacing="normal"> | ||||
<li>Store the identity of Nodes that a packet has visited in header | ||||
data fields in the order the packet visited the Nodes.</li> | ||||
<li>Support of a "Loopback" capability where a copy of the packet | ||||
is returned to the encapsulating Node and the packet is processed | ||||
like any other IOAM packet on the return transfer.</li> | ||||
</ul> | ||||
<section title="Hybrid Methodologies"> | <t>In addition to Node identity, Nodes may also identify the ingress | |||
<t>The Hybrid Type I methods provide an alternative method for Route | ||||
Member assessment. As mentioned in the Scope section, <xref | ||||
target="I-D.ietf-ippm-ioam-data"/> provides a possible set of data | ||||
fields that would support route identification.</t> | ||||
<t>In general, nodes in the measured domain would be equipped with | ||||
specific abilities:<list style="symbols"> | ||||
<t>Store the identity of nodes that a packet has visited in header | ||||
data fields, in the order the packet visited the nodes.</t> | ||||
<t>Support of a "Loopback" capability, where a copy of the packet | ||||
is returned to the encapsulating node, and the packet is processed | ||||
like any other IOAM packet on the return transfer.</t> | ||||
</list></t> | ||||
<t>In addition to node identity, nodes may also identify the ingress | ||||
and egress interfaces utilized by the tracing packet, the absolute | and egress interfaces utilized by the tracing packet, the absolute | |||
time when the packet was processed, and other generic data (as | time when the packet was processed, and other generic data (as | |||
described in section 4 of <xref target="I-D.ietf-ippm-ioam-data"/>). | described in <xref target="RFC9197" sectionFormat="of" section="3"/>). | |||
Interface identification isn't necessarily limited to IP, i.e. | Interface identification isn't necessarily limited to IP, i.e., | |||
different links in a bundle (LACP) could be identified. Equally well, | different links in a bundle (Link Aggregation Control Protocol (LACP)) | |||
could be identified. Equally well, | ||||
links without explicit IP addresses can be identified (like with | links without explicit IP addresses can be identified (like with | |||
unnumbered interfaces in an IGP deployment).</t> | unnumbered interfaces in an IGP deployment).</t> | |||
<t>Note that the Type-P packet specification for this method will | <t>Note that the Type-P packet specification for this method will | |||
likely be a partial specification, because most of the packet fields | likely be a partial specification because most of the packet fields | |||
are determined by the user traffic. The packet (encapsulation) | are determined by the user traffic. The packet encapsulation | |||
header(s) added by the Hybrid method can certainly be specified in | header or headers added by the hybrid method can certainly be specified | |||
in | ||||
Type-P, in unpopulated form.</t> | Type-P, in unpopulated form.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Combining Different Methods"> | <name>Combining Different Methods</name> | |||
<t>In principle, there are advantages if the entity conducting Route | <t>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.</t> | across all other domains.</t> | |||
<t>In order to combine the results of active and hybrid/interrogation | <t>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: <list | interrogation protocol have the following attributes: </t> | |||
style="numbers"> | <ol spacing="normal" type="1"> | |||
<t>Nodes at the ingress to the domain SHOULD be both Discoverable | <li>Nodes at the ingress to the domain <bcp14>SHOULD</bcp14> be both Di | |||
and Cooperating.</t> | scoverable | |||
and Cooperating.</li> | ||||
<t>Any Nodes within the domain that are both Discoverable and | <li>Any Nodes within the domain that are both Discoverable and | |||
Cooperating SHOULD reveal the same Node Identity in response to | Cooperating <bcp14>SHOULD</bcp14> reveal the same Node identity in r | |||
both active and hybrid methods.</t> | esponse to | |||
both active and hybrid methods.</li> | ||||
<t>Nodes at the egress to the domain SHOULD be both Discoverable | <li>Nodes at the egress to the domain <bcp14>SHOULD</bcp14> be both Di | |||
and Cooperating, and SHOULD reveal the same Node Identity in | scoverable | |||
response to both active and hybrid methods.</t> | and Cooperating and <bcp14>SHOULD</bcp14> reveal the same Node ident | |||
</list></t> | ity in | |||
response to both active and hybrid methods.</li> | ||||
</ol> | ||||
<t>When Nodes follow these requirements, it becomes a simple matter to | <t>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.</t> | multidomain measurement.</t> | |||
<t>In practice, Internet users do not typically have the ability to | <t>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) | |||
capabilities of networks that their packets traverse, | ||||
so the results from a remote domain supporting an interrogation | so the results from a remote domain supporting an interrogation | |||
protocol would not normally be accessible. However, a network operator | protocol would not normally be accessible. However, a network operator | |||
could combine interrogation results from their access domain with | could combine interrogation results from their access domain with | |||
other measurements revealing the path outside their domain.</t> | other measurements revealing the path outside their domain.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="Cases" numbered="true" toc="default"> | ||||
<section anchor="Cases" | <name>Background on Round-Trip Delay Measurement Goals</name> | |||
title="Background on Round-Trip Delay Measurement Goals"> | ||||
<t>The aim of this method is to use packet probes to unveil the paths | <t>The aim of this method is to use packet probes to unveil the paths | |||
between any two end-Nodes of the network. Moreover, information derived | between any two End-Nodes of the network. Moreover, information derived | |||
from RTD measurements might be meaningful to identify:</t> | from RTD measurements might be meaningful to identify:</t> | |||
<ol spacing="normal" type="1"> | ||||
<t><list style="numbers"> | <li>Intercontinental submarine links</li> | |||
<t>Intercontinental submarine links</t> | <li>Satellite communications</li> | |||
<li>Congestion</li> | ||||
<t>Satellite communications</t> | <li>Inter-domain paths</li> | |||
</ol> | ||||
<t>Congestion</t> | ||||
<t>Inter-domain paths</t> | ||||
</list></t> | ||||
<t>This categorization is widely accepted in the literature and among | <t>This categorization is widely accepted in the literature and among | |||
operators alike, and it can be trusted with empirical data and several | operators alike, and it can be trusted with empirical data and several | |||
sources as ground of truth (e.g., <xref target="RTTSub"/> ) but it is an | sources as ground of truth (e.g., <xref target="RTTSub" format="default"/> | |||
inference measurement nonetheless <xref target="bdrmap"/><xref | ), but it is an | |||
target="IDCong"/>.</t> | inference measurement nonetheless <xref target="bdrmap" | |||
format="default"/><xref target="IDCong" format="default"/>.</t> | ||||
<t>The first two categories correspond to the physical distance | <t>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 routers, and the last one helps to identify different | queuing delay on routers, and the last one helps to identify different | |||
ASes using traceroutes. Due to the significant contribution of | ASes using traceroutes. Due to the significant contribution of | |||
propagation delay in long-distance hops, RTD will be on the order of | propagation delay in long-distance Hops, RTD will be on the order of | |||
100ms on transatlantic hops, depending on the geolocation of the vantage | 100 ms on transatlantic Hops, depending on the geolocation of the vantage | |||
points. Moreover, RTD is typically higher than 480ms when two hops are | points. Moreover, RTD is typically higher than 480 ms when two Hops are | |||
connected using geostationary satellite technology (i.e., their orbit is | connected using geostationary satellite technology (i.e., their orbit is | |||
at 36000km). Detecting congestion with latency implies deeper | at 36000 km). Detecting congestion with latency implies deeper | |||
mathematical understanding since network traffic load is not stationary. | mathematical understanding, since network traffic load is not stationary. | |||
Nonetheless, as the first approach, a link seems to be congested if | Nonetheless, as the first approach, a link seems to be congested if | |||
observing different/varying statistical results after sending several | observing different/varying statistical results after sending several | |||
traceroute probes (e.g., see <xref target="IDCong"/>). Finally, to | traceroute probes (e.g., see <xref target="IDCong" format="default"/>). Fi | |||
recognize distinctive ASes in the same traceroute path is challenging, | nally, to | |||
because more data is needed, like AS relationships and RIR delegations | recognize distinctive ASes in the same traceroute path is challenging | |||
among other (for more detail, please consult <xref | because more data is needed, like AS relationships and Regional Internet | |||
target="bdrmap"/>).</t> | Registry (RIR) delegations | |||
among others (for more details, please consult <xref target="bdrmap" forma | ||||
t="default"/>).</t> | ||||
</section> | </section> | |||
<section anchor="Statistics" numbered="true" toc="default"> | ||||
<section anchor="Statistics" title="RTD Measurements Statistics"> | <name>RTD Measurements Statistics</name> | |||
<t>Several articles have shown that network traffic presents a | <t>Several articles have shown that network traffic presents a | |||
self-similar nature <xref target="SSNT"/> <xref target="MLRM"/> which is | self-similar nature <xref target="SSNT" format="default"/> <xref | |||
target="MLRM" format="default"/> that is | ||||
accountable for filling the queues of the routers. Moreover, router | accountable for filling the queues of the routers. Moreover, router | |||
queues are designed to handle traffic bursts, which is one of the most | queues are designed to handle traffic bursts, which is one of the most | |||
remarkable features of self-similarity. Naturally, while queue length | remarkable features of self-similarity. Naturally, while queue length | |||
increases, the delay to traverse the queue increases as well and leads | increases, the delay to traverse the queue increases as well and leads | |||
to an increase on RTD. Due to traffic bursts generating short-term | to an 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.</t> | accounted for in the methodology.</t> | |||
skipping to change at line 956 ¶ | skipping to change at line 865 ¶ | |||
accountable for filling the queues of the routers. Moreover, router | accountable for filling the queues of the routers. Moreover, router | |||
queues are designed to handle traffic bursts, which is one of the most | queues are designed to handle traffic bursts, which is one of the most | |||
remarkable features of self-similarity. Naturally, while queue length | remarkable features of self-similarity. Naturally, while queue length | |||
increases, the delay to traverse the queue increases as well and leads | increases, the delay to traverse the queue increases as well and leads | |||
to an increase on RTD. Due to traffic bursts generating short-term | to an 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.</t> | accounted for in the methodology.</t> | |||
<t>To understand the ongoing process, examining the quartiles provides a | <t>To understand the ongoing process, examining the quartiles provides a | |||
non-parametric way of analysis. Quartiles are defined by five values: | nonparametric way of analysis. Quartiles are defined by five values: | |||
minimum RTD (m), RTD value of the 25% of the Empirical Cumulative | minimum RTD (m), RTD value of the 25% of the Empirical Cumulative | |||
Distribution Function (ECDF) (Q1), the median value (Q2), the RTD value | Distribution Function (ECDF) (Q1), the median value (Q2), the RTD value | |||
of the 75% of the ECDF (Q3) and the maximum RTD (M). Congestion can be | of the 75% of the ECDF (Q3), and the maximum RTD (M). Congestion can be | |||
inferred when RTD measurements are spread apart, and consequently, the | inferred when RTD measurements are spread apart; consequently, the | |||
Inter-Quartile Range (IQR), the distance between Q3 and Q1, increases | Interquartile Range (IQR), i.e., the distance between Q3 and Q1, increases | |||
its value.</t> | its value.</t> | |||
<t>This procedure requires the algorithm presented in <xref target="P2" | ||||
<t>This procedure requires the algorithm presented in <xref | format="default"/> to compute quartile values "on the fly".</t> | |||
target="P2"/> to compute quartile values "on the fly”.</t> | <t>This procedure allows us to update the quartile values whenever a new | |||
<t>This procedure allows us to update the quartiles value whenever a new | ||||
measurement arrives, which is radically different from classic methods | measurement arrives, which is radically different from classic methods | |||
of computing quartiles because they need to use the whole dataset to | of computing quartiles, because they need to use the whole dataset to | |||
compute the values. This way of calculus provides savings in memory and | compute the values. This way of calculus provides savings in memory and | |||
computing time.</t> | computing time.</t> | |||
<t>To sum up, the proposed measurement procedure consists of performing | <t>To sum up, the proposed measurement procedure consists of performing | |||
traceroutes several times to obtain samples of the RTD in every hop from | 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 every | a path during a time window (W) and compute the quartiles for every | |||
hop. This procedure could be done for a single Member Route flow, a | Hop. This procedure could be done for a single Member Route flow, for a | |||
non-exhaustive search with parameter E (defined below) set as False, or | non-exhaustive search with parameter E (defined below) set to False, or | |||
for every detected Route Ensemble flow (E=True).</t> | for every detected Route Ensemble flow (E=True).</t> | |||
<t>The identification of a specific Hop in a traceroute is based on the IP | ||||
<t>The identification of a specific Hop in traceroute is based on the IP | origin address of the returned ICMP Time Exceeded packet and on the | |||
origin address of the returned ICMP Time Exceeded packet, and on the | ||||
distance identified by the value set in the TTL (or Hop Limit) field | distance identified by the value set in the TTL (or Hop Limit) field | |||
inserted by traceroute. As this specific Hop can be reached by different | inserted by traceroute. As this specific Hop can be reached by different | |||
paths, also the IP source and destination addresses of the traceroute | paths, the IP Source and Destination addresses of the traceroute | |||
packet need to be recorded. Finally, different return paths are | packet also need to be recorded. Finally, different return paths are | |||
distinguished by evaluating the ICMP Time Exceeded TTL (or Hop Limit) of | distinguished by evaluating the ICMP Time Exceeded TTL (or Hop Limit) of | |||
the reply message: if this TTL (or Hop Limit) is constant for different | the reply message; if this TTL (or Hop Limit) is constant for different | |||
paths containing the same Hop, the return paths have the same distance. | paths containing the same Hop, the return paths have the same distance. | |||
Moreover, this distance can be estimated considering that the TTL (or | Moreover, this distance can be estimated considering that the TTL (or | |||
Hop Limit) value is normally initialized with values 64, 128, or 255. | Hop Limit) value is normally initialized with values 64, 128, or 255. | |||
The 5-tuple (origin IP, destination IP, reply IP, distance, response TTL | The 5-tuple (origin IP, destination IP, reply IP, distance, and response T TL | |||
or Hop Limit) unequivocally identifies every measurement.</t> | or Hop Limit) unequivocally identifies every measurement.</t> | |||
<t>This algorithm below runs in the origin of the traceroute. It returns | <t>This algorithm below runs in the origin of the traceroute. It returns | |||
the Qs quartiles for every Hop and Alt (alternative paths because of | the Qs quartiles for every Hop and Alt (alternative paths because of | |||
balancing). Notice that the "Alt" parameter condenses the parameters of | balancing). Notice that the "Alt" parameter condenses the parameters of | |||
the 5-tuple (origin IP, destination IP, reply IP, distance, response | the 5-tuple (origin IP, destination IP, reply IP, distance, and response | |||
TTL), i.e., one for each possible combination.</t> | TTL), i.e., one for each possible combination.</t> | |||
<sourcecode name="" type="pseudocode"><![CDATA[ | ||||
<t><figure> | ================================================================ | |||
<artwork><![CDATA[==================================================== | ||||
============ | ||||
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) | |||
7 while T is not finished do: | 7 while T is not finished do: | |||
8 | start_timer(i_t) | 8 | start_timer(i_t) | |||
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) | |||
================================================================]]></artwork> | ================================================================ | |||
</figure></t> | ]]> | |||
</sourcecode> | ||||
<t>During the time W, lines 6 and 7 assure that the measurement loop is | <t>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 cycle | made. | |||
Lines 8 and 13 set a timer for each cycle of measurements. A cycle | ||||
comprises the traceroutes packets, considering every possible Hop and | comprises the traceroutes packets, considering every possible Hop and | |||
the alternatives paths in the Alt variable (ensured in lines 9-12). In | the alternatives paths in the Alt variable (ensured in lines 9-12). In | |||
line 9, the advance-traceroute could be either Paris-traceroute or | line 9, the advanced-traceroute could be either Paris-traceroute or | |||
Scamper, which will use the “exhaustive” mode or | Scamper, which will use the "exhaustive" mode or | |||
“tracelb” option if E is set True, respectively. The | "tracelb" option if E is set to True, respectively. The | |||
procedure returns a list of tuples (m,Q1,Q2,Q3,M) for each intermediate | procedure returns a list of tuples (m, Q1, Q2, Q3, and M) for each interme | |||
hop, or "Alt" in as a function of the 5-tuple, in the path towards the | diate | |||
Dst. Finally, lines 10 through 12 stores each measurement into the | Hop, or "Alt" in as a function of the 5-tuple, in the path towards the | |||
Dst. Finally, lines 10 through 12 store each measurement into the | ||||
real-time quartiles computation.</t> | real-time quartiles computation.</t> | |||
<t>Notice there are cases where even having a unique Hop at distance | ||||
<t>Notice there are cases where the even having a unique hop at distance | ||||
h from the Src to Dst, the returning path could have several | h from the Src to Dst, the returning path could have several | |||
possibilities, yielding in different total paths. In this situation, the | possibilities, yielding different total paths. In this situation, the | |||
algorithm will return more "Alt" for this particular hop.</t> | algorithm will return another "Alt" for this particular Hop.</t> | |||
</section> | </section> | |||
<section anchor="Security" numbered="true" toc="default"> | ||||
<section anchor="Security" title="Security Considerations"> | <name>Security Considerations</name> | |||
<t>The security considerations that apply to any active measurement of | <t>The security considerations that apply to any active measurement of | |||
live paths are relevant here as well. See <xref target="RFC4656"/> and | live paths are relevant here as well. See <xref target="RFC4656" format="d | |||
<xref target="RFC5357"/>.</t> | efault"/> and | |||
<xref target="RFC5357" format="default"/>.</t> | ||||
<t>The active measurement process of "changing several fields to keep | <t>The active measurement process of changing several fields to keep | |||
the checksum of different packets identical" does not require special | the 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).</t> | processing (to process the packets for ECMP).</t> | |||
<t>Some of the protocols used (e.g., ICMP) do not provide cryptographic | <t>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 the | processing untrusted data in general, but these are limitations of the | |||
existing protocols where we are applying new methods.</t> | existing protocols where we are applying new methods.</t> | |||
<t>For applicable hybrid methods, the security considerations in <xref | ||||
<t>For applicable Hybrid methods, the security considerations in<xref | target="RFC9197" format="default"/> apply.</t> | |||
target="I-D.ietf-ippm-ioam-data"/> apply.</t> | <t>When considering the privacy of those involved in measurement or those | |||
<t>When considering privacy of those involved in measurement or those | ||||
whose traffic is measured, the sensitive information available to | whose traffic is measured, the sensitive information available to | |||
potential observers is greatly reduced when using active techniques | potential observers is greatly reduced when using active techniques | |||
which are within this scope of work. Passive observations of user | that are within this scope of work. Passive observations of user | |||
traffic for measurement purposes raise many privacy issues. We refer the | traffic for measurement purposes raise many privacy issues. We refer the | |||
reader to the privacy considerations described in the Large Scale | reader to the privacy considerations described in the Large-scale | |||
Measurement of Broadband Performance (LMAP) Framework <xref | Measurement of Broadband Performance (LMAP) Framework <xref | |||
target="RFC7594"/>, which covers active and passive techniques.</t> | target="RFC7594" format="default"/>, which covers active and passive | |||
</section> | techniques.</t> | |||
<section anchor="IANA" title="IANA Considerations"> | ||||
<t>This memo makes no requests of IANA. We thank the good folks at IANA | ||||
for having checked this section anyway.</t> | ||||
</section> | ||||
<section anchor="Acknowledgements" title="Acknowledgements"> | ||||
<t>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!</t> | ||||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="default"> | ||||
<section title="Appendix I MPLS Methods for Route Assessment"> | <name>IANA Considerations</name> | |||
<t>A Node assessing an MPLS path must be part of the MPLS domain where | <t>This document has no IANA actions.</t> | |||
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” <xref target="RFC8029"/>.</t> | ||||
<t>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 <xref | ||||
target="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.</t> | ||||
<t>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.</t> | ||||
<t><xref target="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.</t> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | <references> | |||
<?rfc include='reference.RFC.0792'?> | <name>References</name> | |||
<references> | ||||
<?rfc include='reference.RFC.1122'?> | <name>Normative References</name> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.1812'?> | FC.0792.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.2119'?> | FC.1122.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.2330'?> | FC.1812.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.2681'?> | FC.2119.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc ?> | FC.2330.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.4656'?> | FC.2681.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.5388'?> | FC.4656.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.6438'?> | FC.5388.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.6673'?> | FC.6438.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.7799'?> | FC.6673.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.8029'?> | FC.7799.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.8174'?> | FC.8029.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.RFC.8468'?> | FC.8174.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<?rfc include='reference.I-D.ietf-ippm-ioam-data'?> | FC.8468.xml"/> | |||
</references> | ||||
<references title="Informative References"> | ||||
<?rfc include='reference.RFC.2991'?> | ||||
<?rfc include='reference.RFC.5357'?> | ||||
<?rfc include='reference.RFC.5835'?> | ||||
<?rfc include='reference.RFC.5837'?> | ||||
<?rfc include='reference.RFC.6437'?> | ||||
<?rfc include='reference.RFC.7312'?> | ||||
<?rfc include='reference.RFC.7325'?> | ||||
<?rfc include='reference.RFC.7594'?> | ||||
<?rfc include='reference.RFC.8403'?> | ||||
<reference anchor="PT"> | ||||
<front> | ||||
<title>Avoiding traceroute anomalies with Paris traceroute</title> | ||||
<author fullname="Brice Augustin" initials="B.A" surname="Augustin"> | <reference anchor='RFC9197' target='https://www.rfc-editor.org/info/rfc9197'> | |||
<!-- fullname="B. Augustin"--> | <front> | |||
<title>Data Fields for In Situ Operations, Administration, and Maintenance (IOAM | ||||
)</title> | ||||
<author initials='F' surname='Brockners' fullname='Frank Brockners' role="editor | ||||
"> | ||||
</author> | ||||
<author initials='S' surname='Bhandari' fullname='Shwetha Bhandari' role="editor | ||||
"> | ||||
</author> | ||||
<author initials='T' surname='Mizrahi' fullname='Tal Mizrahi' role="editor"> | ||||
</author> | ||||
<date month='May' year='2022' /> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9197"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9197"/> | ||||
</reference> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2991.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5357.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5835.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5837.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6437.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7312.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7325.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7594.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8403.xml"/> | ||||
<reference anchor="PT"> | ||||
<front> | ||||
<title>Avoiding traceroute anomalies with Paris traceroute</title> | ||||
<author fullname="Brice Augustin" initials="B" surname="Augustin"> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Xavier Cuvellier" initials="X" surname="Cuvellier" | ||||
<author fullname="Xavier Cuvellier" initials="X.C." | > | |||
surname="Cuvellier"> | ||||
<!-- fullname="X. Cuvellier" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Benjamin Orgogozo" initials="B" surname="Orgogozo" | ||||
<author fullname="Benjamin Orgogozo" initials="B.O." | > | |||
surname="Orgogozo"> | ||||
<!-- fullname="B. Orgogozo" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Fabien Viger" initials="F" surname="Viger"> | ||||
<author fullname="Fabien Viger" initials="F.V." surname="Viger"> | ||||
<!-- fullname="F. Viger" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Timur Friedman" initials="T" surname="Friedman"> | ||||
<author fullname="Timur Friedman" initials="T.F." surname="Friedman"> | ||||
<!-- fullname="T. Friedman" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Matthieu Latapy" initials="M" surname="Latapy"> | ||||
<author fullname="Matthieu Latapy" initials="M.L." surname="Latapy"> | ||||
<!-- fullname="M. Latapy" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Clmence Magnien" initials="C" surname="Magnien"> | ||||
<author fullname="Clmence Magnien" initials="C.M." surname="Magnien"> | ||||
<!-- fullname="C. Magnien" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Renata Teixeira" initials="R" surname="Teixeira"> | ||||
<author fullname="Renata Teixeira" initials="R.T." | ||||
surname="Teixeira"> | ||||
<!-- fullname="R. Teixeira" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="October" year="2006"/> | ||||
<date day="" month="" year="2006"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.1145/1177080.1177100"/> | |||
<refcontent>Proceedings of the 6th ACM SIGCOMM conference on | ||||
<seriesInfo name="" | Internet measurement, pp. 153-158</refcontent> | |||
value=" Proceedings of the 6th ACM SIGCOMM conference on Int | </reference> | |||
ernet measurement, pp. 153-158. ACM, 2006."/> | ||||
</reference> | ||||
<reference anchor="LOAD_BALANCE"> | <reference anchor="LOAD_BALANCE"> | |||
<front> | <front> | |||
<title>COMPARISON OF HASH STRATEGIES FOR FLOW-BASED LOAD | <title>COMPARISON OF HASH STRATEGIES FOR FLOW-BASED LOAD | |||
BALANCING</title> | BALANCING</title> | |||
<author fullname="Surasak Sanguanpong" initials="S." surname="Sangua | ||||
<author fullname="Surasak Sanguanpong" initials="S." | npong"> | |||
surname="Sanguanpong"> | ||||
<!-- fullname="Surasak Sanguanpong"--> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Witsarut Pittayapitak" initials="W." surname="Pitt | ||||
<author fullname="Witsarut Pittayapitak" initials="W." | ayapitak"> | |||
surname="Pittayapitak"> | ||||
<!-- fullname="Witsarut Pittayapitak"--> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Kasom Koht-Arsa" initials="K." surname="Kasom Koht | ||||
<author fullname="Kasom Koht-Arsa" initials="K." | -Arsa"> | |||
surname="Kasom Koht-Arsa"> | ||||
<!-- fullname="Kasom Koht-Arsa"--> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="December" year="2015"/> | ||||
<date day="" month="" year="2015"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.7903/ijecs.1346"/> | |||
<refcontent>International Journal of Electronic | ||||
<seriesInfo name="" | Commerce Studies, Vol.6, No.2, pp.259-268</refcontent> | |||
value="International Journal of Electronic Commerce Studies, | </reference> | |||
Vol.6, No.2, pp.259-268. http://dx.doi.org/10.7903/ijecs.1346"/> | ||||
</reference> | ||||
<reference anchor="MLB"> | ||||
<front> | ||||
<title>Measuring load-balanced paths in the Internet</title> | ||||
<author fullname="Brice Augustin" initials="B.A" surname="Augustin"> | ||||
<!-- fullname="B. Augustin"--> | ||||
<reference anchor="MLB"> | ||||
<front> | ||||
<title>Measuring load-balanced paths in the internet</title> | ||||
<author fullname="Brice Augustin" initials="B" surname="Augustin"> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Timur Friedman" initials="T" surname="Friedman"> | ||||
<author fullname="Timur Friedman" initials="T.F." surname="Friedman"> | ||||
<!-- fullname="T. Friedman" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Renata Teixeira" initials="R" surname="Teixeira"> | ||||
<author fullname="Renata Teixeira" initials="R.T." | ||||
surname="Teixeira"> | ||||
<!-- fullname="R. Teixeira" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="October" year="2007"/> | ||||
<date day="" month="" year="2007"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.1145/1298306.1298329"/> | |||
<refcontent>Proceedings of the 7th ACM SIGCOMM conference on | ||||
<seriesInfo name="" | Internet measurement, pp. 149-160</refcontent> | |||
value=" Proceedings of the 7th ACM SIGCOMM conference on Int | </reference> | |||
ernet measurement, pp. 149-160. ACM, 2007."/> | ||||
</reference> | ||||
<reference anchor="SCAMPER"> | ||||
<front> | ||||
<title>Scamper: a scalable and extensible packet prober for active | ||||
measurement of the Internet</title> | ||||
<author fullname="Matthew Luckie" initials="M.L." | ||||
surname="Matthew Luckie"> | ||||
<!-- fullname="M. Luckie"--> | ||||
<reference anchor="SCAMPER"> | ||||
<front> | ||||
<title>Scamper: a scalable and extensible packet prober for active | ||||
measurement of the internet</title> | ||||
<author fullname="Matthew Luckie" initials="M" surname="Matthew Luck | ||||
ie"> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="November" year="2010"/> | ||||
<date day="" month="" year="2010"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.1145/1879141.1879171"/> | |||
<refcontent>Proceedings of the 10th ACM SIGCOMM conference on | ||||
<seriesInfo name="" | Internet measurement, pp. 239-245</refcontent> | |||
value="Proceedings of the 10th ACM SIGCOMM conference on Int | </reference> | |||
ernet measurement, pp. 239-245. ACM, 2010."/> | ||||
</reference> | ||||
<reference anchor="SSNT"> | <reference anchor="SSNT"> | |||
<front> | <front> | |||
<title>Self-Similar Network Traffic and Performance Evaluation (1st | <title>Self-Similar Network Traffic and Performance Evaluation (1st | |||
ed.)</title> | ed.)</title> | |||
<author fullname="Kihong Park" initials="K" surname="Park"> | ||||
<author fullname="Kihong Park" initials="K.P." surname="Park"> | ||||
<!-- fullname="K. Park"--> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Walter Willinger" initials="W" surname="Willinger" | ||||
<author fullname="Walter Willinger" initials="W.W." | > | |||
surname="Willinger"> | ||||
<!-- fullname="W. Willinger"--> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="August" year="2000"/> | ||||
<date day="" month="" year="2000"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.1002/047120644X"/> | |||
<seriesInfo name="" value="John Wiley & Sons, Inc., New York, NY, | ||||
<seriesInfo name="" | USA"/> | |||
value="John Wiley & Sons, Inc., New York, NY, USA"/> | </reference> | |||
</reference> | ||||
<reference anchor="MLRM"> | <reference anchor="MLRM"> | |||
<front> | <front> | |||
<title>An empirical mixture model for large-scale RTT | <title>An empirical mixture model for large-scale RTT | |||
measurements</title> | measurements</title> | |||
<author fullname="Romain Fontugne" initials="R" surname="Fontugne"> | ||||
<author fullname="Romain Fontugne" initials="R.F." | ||||
surname="Fontugne"> | ||||
<!-- fullname="R. Fontugne"--> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Johan Mazel" initials="J" surname="Mazel"> | ||||
<author fullname="Johan Mazel" initials="J.M." surname="Mazel"> | ||||
<!-- fullname="J. Mazel" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Kensuke Fukuda" initials="K" surname="Fukuda"> | ||||
<author fullname="Kensuke Fukuda" initials="K.F." surname="Fukuda"> | ||||
<!-- fullname="K. Fukuda" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="April" year="2015"/> | ||||
<date day="" month="" year="2015"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.1109/INFOCOM.2015.7218636"/> | |||
<refcontent>2015 IEEE Conference on Computer Communications | ||||
<seriesInfo name="" | (INFOCOM), pp. 2470-2478</refcontent> | |||
value="2015 IEEE Conference on Computer Communications (INFO | </reference> | |||
COM), pp. 2470-2478. IEEE, 2015."/> | ||||
</reference> | ||||
<reference anchor="P2"> | <reference anchor="P2"> | |||
<front> | <front> | |||
<title>The P 2 algorithm for dynamic calculation of quartiles and | <title>The P 2 algorithm for dynamic calculation of quartiles and | |||
histograms without storing observations</title> | histograms without storing observations</title> | |||
<author fullname="Raj Jain" initials="R" surname="Jain"> | ||||
<author fullname="Raj Jain" initials="R.J." surname="Jain"> | ||||
<!-- fullname="R. Jain"--> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Imrich Chlamtac" initials="I" surname="Chlamtac"> | ||||
<author fullname="Imrich Chlamtac" initials="I.C." | ||||
surname="Chlamtac"> | ||||
<!-- fullname="I. Chlamtac" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="October" year="1985"/> | ||||
<date day="" month="" year="2015"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.1145/4372.4378"/> | |||
<refcontent>Communications of the ACM 28.10 (1985): 1076-1085</refcont | ||||
<seriesInfo name="" | ent> | |||
value="Communications of the ACM 28.10 (1985): 1076-1085"/> | </reference> | |||
</reference> | ||||
<reference anchor="IDCong"> | ||||
<front> | ||||
<title>Challenges in inferring Internet interdomain | ||||
congestion</title> | ||||
<author fullname="Matthew Luckie" initials="M." surname="Luckie"> | ||||
<!-- fullname="M. Luckie"--> | ||||
<reference anchor="IDCong"> | ||||
<front> | ||||
<title>Challenges in Inferring Internet Interdomain | ||||
Congestion</title> | ||||
<author fullname="Matthew Luckie" initials="M." surname="Luckie"> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Amogh Dhamdhere" initials="A." surname="Dhamdhere" | ||||
<author fullname="Amogh Dhamdhere" initials="A." surname="Dhamdhere"> | > | |||
<!-- fullname="A. Dhamdhere" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="David Clark" initials="D." surname="Clark"> | ||||
<author fullname="David Clark" initials="D." surname="Clark"> | ||||
<!-- fullname="D. Clark" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Bradley Huffaker" initials="B." surname="Huffaker" | ||||
<author fullname="Bradley Huffaker" initials="B." surname="Huffaker"> | > | |||
<!-- fullname="B. Huffaker" --> | ||||
<organization>bdrmap: Inference of Borders Between IP | <organization>bdrmap: Inference of Borders Between IP | |||
Networks</organization> | Networks</organization> | |||
</author> | </author> | |||
<date month="November" year="2014"/> | ||||
<date day="" month="" year="2014"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.1145/2663716.2663741"/> | |||
<refcontent>Proceedings of the 2014 Conference on Internet | ||||
<seriesInfo name="" | Measurement Conference, pp. 15-22</refcontent> | |||
value="In Proceedings of the 2014 Conference on Internet Mea | </reference> | |||
surement Conference, pp. 15-22. ACM"/> | ||||
</reference> | ||||
<reference anchor="bdrmap"> | ||||
<front> | ||||
<title>bdrmap: Inference of Borders Between IP Networks</title> | ||||
<author fullname="Matthew Luckie" initials="M." surname="Luckie"> | ||||
<!-- fullname="M. Luckie"--> | ||||
<reference anchor="bdrmap"> | ||||
<front> | ||||
<title>bdrmap: Inference of Borders Between IP Networks</title> | ||||
<author fullname="Matthew Luckie" initials="M." surname="Luckie"> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Amogh Dhamdhere" initials="A." surname="Dhamdhere" | ||||
<author fullname="Amogh Dhamdhere" initials="A." surname="Dhamdhere"> | > | |||
<!-- fullname="A. Dhamdhere" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Bradley Huffaker" initials="B." surname="Huffaker" | ||||
<author fullname="Bradley Huffaker" initials="B." surname="Huffaker"> | > | |||
<!-- fullname="B. Huffaker" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="David Clark" initials="D." surname="Clark"> | ||||
<author fullname="David Clark" initials="D." surname="Clark"> | ||||
<!-- fullname="D. Clark" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="KC" initials="KC." surname="Claffy"> | ||||
<author fullname="KC" initials="KC." surname="Claffy"> | ||||
<!-- fullname="D. Clark" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="November" year="2016"/> | ||||
<date day="" month="" year="2016"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.1145/2987443.2987467"/> | |||
<refcontent>Proceedings of the 2016 ACM on Internet Measurement Confer | ||||
<seriesInfo name="" | ence, pp. 381-396</refcontent> | |||
value="In Proceedings of the 2016 ACM on Internet Measuremen | </reference> | |||
t Conference, pp. 381-396. ACM"/> | ||||
</reference> | ||||
<reference anchor="RTTSub"> | ||||
<front> | ||||
<title>In and out of Cuba: Characterizing Cuba's | ||||
connectivity</title> | ||||
<author fullname="Zachary S. Bischof" initials="Z.S." | ||||
surname="Bischof"> | ||||
<!-- fullname="M. Luckie"--> | ||||
<reference anchor="RTTSub"> | ||||
<front> | ||||
<title>In and out of Cuba: Characterizing Cuba's | ||||
Connectivity</title> | ||||
<author fullname="Zachary S. Bischof" initials="Z" surname="Bischof" | ||||
> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="John P. Rula" initials="J" surname="Rula"> | ||||
<author fullname="John P. Rula" initials="J.P." surname="Rula"> | ||||
<!-- fullname="A. Dhamdhere" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Fabian E. Bustamante" initials="F" surname="Bustam | ||||
<author fullname="Fabian E. Bustamante" initials="F.E." | ante"> | |||
surname="Bustamante"> | ||||
<!-- fullname="D. Clark" --> | ||||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="October" year="2015"/> | ||||
<date day="" month="" year="2015"/> | </front> | |||
</front> | <seriesInfo name="DOI" value="10.1145/2815675.2815718"/> | |||
<refcontent>Proceedings of the 2015 ACM Conference on Internet | ||||
<seriesInfo name="" | Measurement Conference, pp. 487-493</refcontent> | |||
value="In Proceedings of the 2015 ACM Conference on Internet | </reference> | |||
Measurement Conference, pp. 487-493. ACM"/> | </references> | |||
</reference> | ||||
</references> | </references> | |||
<section numbered="true" toc="default"> | ||||
<name>MPLS Methods for Route Assessment</name> | ||||
<t>A Node assessing an MPLS path must be part of the MPLS domain where | ||||
the path is implemented. When this condition is met, <xref | ||||
target="RFC8029" format="default"/> 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".</t> | ||||
<t>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 <xref | ||||
target="RFC7325" section="2.4" sectionFormat="of"/>). 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.</t> | ||||
<t>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.</t> | ||||
<t><xref target="RFC8403" format="default"/> explains how a central Path M | ||||
onitoring | ||||
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.</t> | ||||
</section> | ||||
<section anchor="Acknowledgements" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t>The original three authors (Ignacio, Al, Joachim) acknowledge <contact | ||||
fullname="Ruediger | ||||
Geib"/> for his penetrating comments on the initial document and his initi | ||||
al | ||||
text for the appendix on MPLS. <contact fullname="Carlos Pignataro"/> chal | ||||
lenged the authors | ||||
to consider a wider scope and applied his substantial expertise with | ||||
many technologies and their measurement features in his extensive | ||||
comments. <contact fullname="Frank Brockners"/> also shared useful | ||||
comments and so did <contact fullname="Footer | ||||
Foote"/>. We thank them all!</t> | ||||
</section> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 278 change blocks. | ||||
1068 lines changed or deleted | 935 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/ |