rfc9097xml2.original.xml | rfc9097.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
<?rfc toc="yes"?> | <!-- [CS] updated by Chris 06/14/21 --> | |||
<?rfc tocompact="yes"?> | ||||
<?rfc tocdepth="3"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<?rfc tocindent="yes"?> | ||||
<?rfc symrefs="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-ippm-capacit | |||
<?rfc sortrefs="yes"?> | y-metric-method-12" | |||
<?rfc comments="yes"?> | number="9097" ipr="trust200902" updates="" obsoletes="" submissionType="IETF" c | |||
<?rfc inline="yes"?> | ategory="std" consensus="true" xml:lang="en" tocInclude="true" tocDepth="3" symR | |||
<?rfc compact="yes"?> | efs="true" sortRefs="true" version="3"> | |||
<?rfc subcompact="no"?> | ||||
<rfc category="std" docName="draft-ietf-ippm-capacity-metric-method-12" | <!-- xml2rfc v2v3 conversion 3.8.0 --> | |||
ipr="trust200902" updates=""> | ||||
<front> | <front> | |||
<title abbrev="IP Capacity Metrics/Methods">Metrics and Methods for | <title abbrev="IP Capacity Metrics/Methods">Metrics and Methods for | |||
One-way IP Capacity</title> | One-Way IP Capacity</title> | |||
<seriesInfo name="RFC" value="9097"/> | ||||
<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/> | ||||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="RĂ¼diger 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/> | ||||
<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/> | ||||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Len Ciavattone" initials="L." surname="Ciavattone"> | <author fullname="Len Ciavattone" initials="L." surname="Ciavattone"> | |||
<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 1239</phone> | ||||
<phone/> | ||||
<facsimile/> | ||||
<email>lencia@att.com</email> | <email>lencia@att.com</email> | |||
<uri/> | ||||
</address> | </address> | |||
</author> | </author> | |||
<date month="November" year="2021"/> | ||||
<date day="9" month="June" year="2021"/> | <keyword>IP Layer</keyword> | |||
<keyword>Performance</keyword> | ||||
<keyword>Speed</keyword> | ||||
<keyword>Access</keyword> | ||||
<abstract> | <abstract> | |||
<t>This memo revisits the problem of Network Capacity metrics first | <t>This memo revisits the problem of Network Capacity Metrics first | |||
examined in RFC 5136. The memo specifies a more practical Maximum | examined in RFC 5136. This memo specifies a more practical Maximum | |||
IP-Layer Capacity metric definition catering for measurement purposes, | IP-Layer Capacity Metric definition catering to measurement | |||
and outlines the corresponding methods of measurement.</t> | and outlines the corresponding Methods of Measurement.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section title="Introduction"> | <section numbered="true" toc="default"> | |||
<t>The IETF's efforts to define Network and Bulk Transport Capacity have | <name>Introduction</name> | |||
<t>The IETF's efforts to define Network Capacity and Bulk Transport Capaci | ||||
ty (BTC) have | ||||
been chartered and progressed for over twenty years. Over that time, the | been chartered and progressed for over twenty years. Over that time, the | |||
performance community has seen development of Informative definitions in | performance community has seen the development of Informative definitions | |||
<xref target="RFC3148"/> for Framework for Bulk Transport Capacity | in | |||
(BTC), RFC 5136 for Network Capacity and Maximum IP-Layer Capacity, and | <xref target="RFC3148" format="default"/> for the Framework for Bulk Trans | |||
the Experimental metric definitions and methods in <xref | port Capacity, <xref target="RFC5136"/> for Network Capacity and Maximum IP-Laye | |||
target="RFC8337"/>, Model-Based Metrics for BTC.</t> | r Capacity, and the Experimental metric definitions and methods in | |||
"<xref target="RFC8337" format="title"/>" <xref target="RFC8337" format="default | ||||
<t>This memo revisits the problem of Network Capacity metrics examined | "/>.</t> | |||
first in <xref target="RFC3148"/> and later in <xref target="RFC5136"/>. | <t>This memo revisits the problem of Network Capacity Metrics examined | |||
Maximum IP-Layer Capacity and <xref target="RFC3148"/> Bulk Transfer | first in <xref target="RFC3148" format="default"/> and later in <xref targ | |||
Capacity (goodput) are different metrics. Maximum IP-Layer Capacity is | et="RFC5136" format="default"/>. | |||
like the theoretical goal for goodput. There are many metrics in <xref | Maximum IP-Layer Capacity and Bulk Transfer Capacity <xref target="RFC3148 | |||
target="RFC5136"/>, such as Available Capacity. Measurements depend on | " format="default"/> (goodput) are different metrics. Maximum IP-Layer Capacity | |||
is | ||||
like the theoretical goal for goodput. There are many metrics in <xref tar | ||||
get="RFC5136" format="default"/>, such as Available Capacity. Measurements depen | ||||
d on | ||||
the network path under test and the use case. Here, the main use case is | the network path under test and the use case. Here, the main use case is | |||
to assess the maximum capacity of one or more networks where the | to assess the Maximum Capacity of one or more networks where the | |||
subscriber receives specific performance assurances, sometimes referred | subscriber receives specific performance assurances, sometimes referred | |||
to as the Internet access, or where a limit of the technology used on a | to as Internet access, or where a limit of the technology used on a | |||
path is being tested. For example, when a user subscribes to a 1 Gbps | path is being tested. For example, when a user subscribes to a 1 Gbps | |||
service, then the user, the service provider, and possibly other parties | service, then the user, the Service Provider, and possibly other parties | |||
want to assure that performance level is delivered. When a test confirms | want to assure that the specified performance level is delivered. When a t | |||
the subscribed performance level, then a tester can seek the location of | est confirms | |||
the subscribed performance level, a tester can seek the location of | ||||
a bottleneck elsewhere.</t> | a bottleneck elsewhere.</t> | |||
<t>This memo recognizes the importance of a definition of a Maximum | <t>This memo recognizes the importance of a definition of a Maximum | |||
IP-Layer Capacity Metric at a time when Internet subscription speeds | IP-Layer Capacity Metric at a time when Internet subscription speeds | |||
have increased dramatically; a definition that is both practical and | have increased dramatically -- a definition that is both practical and | |||
effective for the performance community's needs, including Internet | effective for the performance community's needs, including Internet | |||
users. The metric definition is intended to use Active Methods of | users. The metric definitions are intended to use Active Methods of | |||
Measurement <xref target="RFC7799"/>, and a method of measurement is | Measurement <xref target="RFC7799" format="default"/>, and a Method of Mea | |||
included.</t> | surement is | |||
included for each metric.</t> | ||||
<t>The most direct active measurement of IP-Layer Capacity would use IP | <t>The most direct Active Measurement of IP-Layer Capacity would use IP | |||
packets, but in practice a transport header is needed to traverse | packets, but in practice a transport header is needed to traverse | |||
address and port translators. UDP offers the most direct assessment | address and port translators. UDP offers the most direct assessment | |||
possibility, and in the <xref target="copycat"/> measurement study to | possibility, and in the measurement study to investigate whether UDP is vi | |||
investigate whether UDP is viable as a general Internet transport | able as a general Internet transport protocol <xref target="copycat" format="def | |||
protocol, the authors found that a high percentage of paths tested | ault"/>, the authors found that a high percentage of paths tested | |||
support UDP transport. A number of liaisons have been exchanged on this | support UDP transport. A number of liaison statements have been exchanged | |||
topic <xref target="LS-SG12-A"/> <xref target="LS-SG12-B"/>, discussing | on this | |||
topic <xref target="LS-SG12-A" format="default"/> <xref target="LS-SG12-B" | ||||
format="default"/>, discussing | ||||
the laboratory and field tests that support the UDP-based approach to | the laboratory and field tests that support the UDP-based approach to | |||
IP-Layer Capacity measurement.</t> | IP-Layer Capacity measurement.</t> | |||
<t>This memo also recognizes the updates to the IP Performance | ||||
<t>This memo also recognizes the many updates to the IP Performance | Metrics (IPPM) Framework <xref target="RFC2330" format="default"/> that ha | |||
Metrics Framework <xref target="RFC2330"/> published over twenty years, | ve been published since 1998. In particular, it makes use of <xref target="RFC73 | |||
and makes use of <xref target="RFC7312"/> for Advanced Stream and | 12" format="default"/> for the Advanced Stream and | |||
Sampling Framework, and <xref target="RFC8468"/> with IPv4, IPv6, and | Sampling Framework and <xref target="RFC8468" format="default"/> for its I | |||
Pv4, IPv6, and | ||||
IPv4-IPv6 Coexistence Updates.</t> | IPv4-IPv6 Coexistence Updates.</t> | |||
<t><xref target="app-a-load-rate-adj-pseudocode"/> describes the load rate | ||||
<t>Appendix A describes the load rate adjustment algorithm in | adjustment algorithm, using | |||
pseudo-code. Appendix B discusses the algorithm's compliance with <xref | pseudocode. <xref target="app-b-rfc8085-udp"/> discusses the algorithm's c | |||
target="RFC8085"/>.</t> | ompliance with <xref target="RFC8085" format="default"/>.</t> | |||
<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>", | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
14<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | "<bcp14>SHOULD NOT</bcp14>", | |||
when, they appear in all capitals, as shown here.</t> | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | ||||
are to be interpreted as described in BCP 14 | ||||
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | ||||
when, they appear in all capitals, as shown here.</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-2-scope" numbered="true" toc="default"> | ||||
<section title="Scope, Goals, and Applicability"> | <name>Scope, Goals, and Applicability</name> | |||
<t>The scope of this memo is to define Active Measurement metrics and | <t>The scope of this memo is to define Active Measurement metrics and | |||
corresponding methods to unambiguously determine Maximum IP-Layer | corresponding methods to unambiguously determine Maximum IP-Layer | |||
Capacity and useful secondary metrics.</t> | Capacity and useful secondary metrics.</t> | |||
<t>Another goal is to harmonize the specified Metric and Method across | ||||
<t>Another goal is to harmonize the specified metric and method across | ||||
the industry, and this memo is the vehicle that captures IETF consensus, | the industry, and this memo is the vehicle that captures IETF consensus, | |||
possibly resulting in changes to the specifications of other Standards | possibly resulting in changes to the specifications of other Standards | |||
Development Organizations (SDO) (through each SDO's normal contribution | Development Organizations (SDOs) (through each SDO's normal contribution | |||
process, or through liaison exchange).</t> | process or through liaison exchange).</t> | |||
<t>Secondary goals are to add considerations for test procedures and to | ||||
<t>Secondary goals are to add considerations for test procedures, and to | ||||
provide interpretation of the Maximum IP-Layer Capacity results (to | provide interpretation of the Maximum IP-Layer Capacity results (to | |||
identify cases where more testing is warranted, possibly with alternate | identify cases where more testing is warranted, possibly with alternate | |||
configurations). Fostering the development of protocol support for this | configurations). Fostering the development of protocol support for this | |||
metric and method of measurement is also a goal of this memo (all active | Metric and Method of Measurement is also a goal of this memo (all active | |||
testing protocols currently defined by the IPPM WG are UDP-based, | testing protocols currently defined by the IPPM WG are UDP based, | |||
meeting a key requirement of these methods). The supporting protocol | meeting a key requirement of these methods). The supporting protocol | |||
development to measure this metric according to the specified method is | development to measure this metric according to the specified method is | |||
a key future contribution to Internet measurement.</t> | a key future contribution to Internet measurement.</t> | |||
<t>The load rate adjustment algorithm's scope is limited to helping | <t>The load rate adjustment algorithm's scope is limited to helping | |||
determine the Maximum IP-Layer Capacity in the context of an infrequent, | determine the Maximum IP-Layer Capacity in the context of an infrequent, | |||
diagnostic, short term measurement. It is RECOMMENDED to discontinue | diagnostic, short-term measurement. It is <bcp14>RECOMMENDED</bcp14> to di scontinue | |||
non-measurement traffic that shares a subscriber's dedicated resources | non-measurement traffic that shares a subscriber's dedicated resources | |||
while testing: measurements may not be accurate and throughput of | while testing: measurements may not be accurate, and throughput of | |||
competing elastic traffic may be greatly reduced.</t> | competing elastic traffic may be greatly reduced.</t> | |||
<t>The primary application of the Metrics and Methods of Measurement | ||||
described here is the same as what is described in <xref target="RFC7497" | ||||
sectionFormat="of" section="2"/>, where:</t> | ||||
<t>The primary application of the metric and method of measurement | <blockquote>The access portion of the network is the focus of this probl | |||
described here is the same as in Section 2 of <xref target="RFC7497"/> | em | |||
where:<list style="symbols"> | ||||
<t>The access portion of the network is the focus of this problem | ||||
statement. The user typically subscribes to a service with | statement. The user typically subscribes to a service with | |||
bidirectional Internet access partly described by rates in bits per | bidirectional [Internet] access partly described by rates in bits per | |||
second.</t> | second.</blockquote> | |||
</list>In addition, the use of the load rate adjustment algorithm | <t>In addition, the use of the load rate adjustment algorithm | |||
described in section 8.1 has the following additional applicability | described in <xref target="load-rate-adj"/> has the following additional a | |||
pplicability | ||||
limitations:</t> | limitations:</t> | |||
<ul spacing="normal"> | ||||
<t>- MUST only be used in the application of diagnostic and operations | <li>It <bcp14>MUST</bcp14> only be used in the application of diagnostic a | |||
measurements as described in this memo</t> | nd operations | |||
measurements as described in this memo.</li> | ||||
<t>- MUST only be used in circumstances consistent with Section 10, | <li>It <bcp14>MUST</bcp14> only be used in circumstances consistent with | |||
Security Considerations</t> | <xref target="sec-cons"/> ("Security Considerations").</li> | |||
<li>If a network operator is certain of the IP-Layer Capacity to be | ||||
<t>- If a network operator is certain of the IP-layer capacity to be | validated, then testing <bcp14>MAY</bcp14> start with a fixed-rate test at | |||
validated, then testing MAY start with a fixed rate test at the IP-layer | the IP-Layer | |||
capacity and avoid activating the load adjustment algorithm. However, | Capacity and avoid activating the load adjustment algorithm. However, | |||
the stimulus for a diagnostic test (such as a subscriber request) | the stimulus for a diagnostic test (such as a subscriber request) | |||
strongly implies that there is no certainty and the load adjustment | strongly implies that there is no certainty, and the load adjustment | |||
algorithm is RECOMMENDED.</t> | algorithm is <bcp14>RECOMMENDED</bcp14>.</li> | |||
</ul> | ||||
<t>Further, the metric and method of measurement are intended for use | <t>Further, the Metrics and Methods of Measurement are intended for use | |||
where specific exact path information is unknown within a range of | where specific exact path information is unknown within a range of | |||
possible values:</t> | possible values:</t> | |||
<ul spacing="normal"> | ||||
<t>- the subscriber's exact Maximum IP-Layer Capacity is unknown (which | <li>The subscriber's exact Maximum IP-Layer Capacity is unknown (which | |||
is sometimes the case; service rates can be increased due to upgrades | is sometimes the case; service rates can be increased due to upgrades | |||
without a subscriber's request, or to provide a surplus to compensate | without a subscriber's request or increased to provide a surplus to compen | |||
for possible underestimates of TCP-based testing).</t> | sate | |||
for possible underestimates of TCP-based testing).</li> | ||||
<t>- the size of the bottleneck buffer is unknown.</t> | <li>The size of the bottleneck buffer is unknown.</li> | |||
</ul> | ||||
<t>Finally, the measurement system's load rate adjustment algorithm | <t>Finally, the measurement system's load rate adjustment algorithm | |||
SHALL NOT be provided with the exact capacity value to be validated a | <bcp14>SHALL NOT</bcp14> be provided with the exact capacity value to be v | |||
priori. This restriction fosters a fair result, and removes an | alidated a priori. This restriction fosters a fair result and removes an | |||
opportunity for bad actors to operate with knowledge of the "right | opportunity for nefarious operation enabled by knowledge of the correct an | |||
answer".</t> | swer.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Motivation"> | <name>Motivation</name> | |||
<t>As with any problem that has been worked for many years in various | <t>As with any problem that has been worked on for many years in various | |||
SDOs without any special attempts at coordination, various solutions for | SDOs without any special attempts at coordination, various solutions for | |||
metrics and methods have emerged.</t> | Metrics and Methods have emerged.</t> | |||
<t>There are five factors that have changed (or began to change) in the | ||||
<t>There are five factors that have changed (or begun to change) in the | ||||
2013-2019 time frame, and the presence of any one of them on the path | 2013-2019 time frame, and the presence of any one of them on the path | |||
requires features in the measurement design to account for the | requires features in the measurement design to account for the | |||
changes:</t> | changes: | |||
<t><list style="numbers"> | </t> | |||
<t>Internet access is no longer the bottleneck for many users (but | <ol spacing="normal" type="1"><li>Internet access is no longer the bottlen | |||
eck for many users (but | ||||
subscribers expect network providers to honor contracted | subscribers expect network providers to honor contracted | |||
performance).</t> | performance).</li> | |||
<li>Both transfer rate and latency are important to a user's | ||||
<t>Both transfer rate and latency are important to user's | satisfaction.</li> | |||
satisfaction.</t> | <li>UDP's role in transport is growing in areas where TCP once | |||
dominated.</li> | ||||
<t>UDP's growing role in Transport, in areas where TCP once | <li>Content and applications are moving physically closer to | |||
dominated.</t> | users.</li> | |||
<li>There is less emphasis on ISP gateway measurements, possibly due | ||||
<t>Content and applications are moving physically closer to | to less traffic crossing ISP gateways in the future.</li> | |||
users.</t> | </ol> | |||
<t>There is less emphasis on ISP gateway measurements, possibly due | ||||
to less traffic crossing ISP gateways in the future.</t> | ||||
</list></t> | ||||
</section> | </section> | |||
<section anchor="gen-params-defs" numbered="true" toc="default"> | ||||
<section title="General Parameters and Definitions"> | <name>General Parameters and Definitions</name> | |||
<t>This section lists the REQUIRED input factors to specify a Sender or | <t>This section lists the <bcp14>REQUIRED</bcp14> input factors to specify | |||
Receiver metric.<list style="symbols"> | a Sender or | |||
<t>Src, one of the addresses of a host (such as a globally routable | Receiver metric.</t> | |||
IP address).</t> | <dl spacing="normal"> | |||
<dt>Src:</dt><dd>One of the addresses of a host (such as a globally rout | ||||
<t>Dst, one of the addresses of a host (such as a globally routable | able | |||
IP address).</t> | IP address).</dd> | |||
<dt>Dst:</dt><dd>One of the addresses of a host (such as a globally rout | ||||
<t>MaxHops, the limit on the number of Hops a specific packet may | able | |||
IP address).</dd> | ||||
<dt>MaxHops:</dt><dd>The limit on the number of Hops a specific packet m | ||||
ay | ||||
visit as it traverses from the host at Src to the host at Dst | visit as it traverses from the host at Src to the host at Dst | |||
(implemented in the TTL or Hop Limit).</t> | (implemented in the TTL or Hop Limit).</dd> | |||
<dt>T0:</dt><dd>The time at the start of a measurement interval, when pa | ||||
<t>T0, the time at the start of measurement interval, when packets | ckets | |||
are first transmitted from the Source.</t> | are first transmitted from the Source.</dd> | |||
<dt>I:</dt><dd>The nominal duration of a measurement interval at the | ||||
<t>I, the nominal duration of a measurement interval at the | Destination (default 10 sec).</dd> | |||
destination (default 10 sec)</t> | <dt>dt:</dt><dd>The nominal duration of m equal sub-intervals in I at th | |||
e | ||||
<t>dt, the nominal duration of m equal sub-intervals in I at the | Destination (default 1 sec).</dd> | |||
destination (default 1 sec)</t> | <dt>dtn:</dt><dd>The beginning boundary of a specific sub-interval, n, o | |||
ne of | ||||
<t>dtn, the beginning boundary of a specific sub-interval, n, one of | m sub-intervals in I.</dd> | |||
m sub-intervals in I</t> | <dt>FT:</dt><dd>The feedback time interval between status feedback messa | |||
ges | ||||
<t>FT, the feedback time interval between status feedback messages | communicating measurement results, sent from the Receiver to control | |||
communicating measurement results, sent from the receiver to control | the Sender. The results are evaluated throughout the test to | |||
the sender. The results are evaluated throughout the test to | determine how to adjust the current offered load rate at the Sender | |||
determine how to adjust the current offered load rate at the sender | (default 50 msec).</dd> | |||
(default 50ms)</t> | <dt>Tmax:</dt><dd>A maximum waiting time for test packets to arrive at t | |||
he | ||||
<t>Tmax, a maximum waiting time for test packets to arrive at the | Destination, set sufficiently long to disambiguate packets with long | |||
destination, 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 one-way delay is not truncated.</t> | distribution of one-way delay is not truncated.</dd> | |||
<dt>F:</dt><dd>The number of different flows synthesized by the method | ||||
<t>F, the number of different flows synthesized by the method | (default one flow).</dd> | |||
(default 1 flow)</t> | <dt>Flow:</dt><dd>The stream of packets with the same n-tuple of designa | |||
ted | ||||
<t>flow, the stream of packets with the same n-tuple of designated | ||||
header fields that (when held constant) result in identical | header fields that (when held constant) result in identical | |||
treatment in a multi-path decision (such as the decision taken in | treatment in a multipath decision (such as the decision taken in | |||
load balancing). Note: The IPv6 flow label SHOULD be included in the | load balancing). Note: The IPv6 flow label <bcp14>SHOULD</bcp14> be in | |||
flow definition when routers have complied with <xref | cluded in the | |||
target="RFC6438"/> guidelines.</t> | flow definition when routers have complied with the guidelines provide | |||
d in <xref target="RFC6438" format="default"/>.</dd> | ||||
<t>Type-P, the complete description of the test packets for which | <dt>Type-P:</dt><dd>The complete description of the test packets for whi | |||
ch | ||||
this assessment applies (including the flow-defining fields). Note | this assessment applies (including the flow-defining fields). Note | |||
that the UDP transport layer is one requirement for test packets | that the UDP transport layer is one requirement for test packets | |||
specified below. Type-P is a parallel concept to "population of | specified below. Type-P is a concept parallel to "population of | |||
interest" defined in clause 6.1.1 of<xref target="Y.1540"/>.</t> | interest" as defined in Clause 6.1.1 of <xref target="Y.1540" format=" | |||
default"/>.</dd> | ||||
<t>Payload Content, this IPPM Framework-conforming metric and method | <dt>Payload Content:</dt><dd>An aspect of the Type-P Parameter that | |||
includes packet payload content as an aspect of the Type-P | can help to improve measurement determinism. Specifying packet payload content | |||
parameter, which can help to improve measurement determinism. If | helps to ensure IPPM Framework-conforming Metrics and Methods. If | |||
there is payload compression in the path and tests intend to | there is payload compression in the path and tests intend to | |||
characterize a possible advantage due to compression, then payload | characterize a possible advantage due to compression, then payload | |||
content SHOULD be supplied by a pseudo-random sequence generator, by | content <bcp14>SHOULD</bcp14> be supplied by a pseudorandom sequence g | |||
using part of a compressed file, or by other means. See Section | enerator, by | |||
3.1.2 of <xref target="RFC7312"/>.</t> | using part of a compressed file, or by other means. See | |||
<xref target="RFC7312" sectionFormat="of" section="3.1.2"/>.</dd> | ||||
<t>PM, a list of fundamental metrics, such as loss, delay, and | <dt>PM:</dt><dd>A list of fundamental metrics, such as loss, delay, and | |||
reordering, and corresponding target performance threshold. At least | reordering, and corresponding target performance threshold(s). At leas | |||
one fundamental metric and target performance threshold MUST be | t | |||
supplied (such as One-way IP Packet Loss <xref target="RFC7680"/> | one fundamental metric and target performance threshold <bcp14>MUST</b | |||
equal to zero).</t> | cp14> be | |||
</list>A non-Parameter which is required for several metrics is | supplied (such as one-way IP packet loss <xref target="RFC7680" format | |||
="default"/> | ||||
equal to zero).</dd> | ||||
</dl> | ||||
<t>A non-Parameter that is required for several metrics is | ||||
defined below:</t> | defined below:</t> | |||
<dl spacing="normal"> | ||||
<t><list style="symbols"> | <dt>T:</dt><dd>The host time of the <strong>first</strong> test packet's | |||
<t>T, the host time of the *first* test packet's *arrival* as | <strong>arrival</strong> as | |||
measured at the destination Measurement Point, or MP(Dst). There may | measured at the Destination Measurement Point, or MP(Dst). There may | |||
be other packets sent between Source and Destination hosts that are | be other packets sent between Source and Destination hosts that are | |||
excluded, so this is the time of arrival of the first packet used | excluded, so this is the time of arrival of the first packet used | |||
for measurement of the metric.</t> | for measurement of the metric.</dd> | |||
</list>Note that time stamp format and resolution, sequence numbers, | </dl> | |||
<t>Note that timestamp format and resolution, sequence numbers, | ||||
etc. will be established by the chosen test protocol standard or | etc. will be established by the chosen test protocol standard or | |||
implementation.</t> | implementation.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="IP-Layer Capacity Singleton Metric Definitions"> | <name>IP-Layer Capacity Singleton Metric Definitions</name> | |||
<t>This section sets requirements for the singleton metric that supports | <t>This section sets requirements for the Singleton metric that supports | |||
the Maximum IP-Layer Capacity Metric definition in Section 6.</t> | the Maximum IP-Layer Capacity Metric definitions in <xref target="max-ip-m | |||
etric-defs"/>.</t> | ||||
<section title="Formal Name"> | <section numbered="true" toc="default"> | |||
<t>Type-P-One-way-IP-Capacity, or informally called IP-Layer | <name>Formal Name</name> | |||
Capacity.</t> | <t>"Type-P-One-way-IP-Capacity" is the formal name; it is informally cal | |||
led "IP-Layer Capacity".</t> | ||||
<t>Note that Type-P depends on the chosen method.</t> | <t>Note that Type-P depends on the chosen method.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Parameters"> | <name>Parameters</name> | |||
<t>This section lists the REQUIRED input factors to specify the | <t>This section lists the <bcp14>REQUIRED</bcp14> input factors to speci | |||
metric, beyond those listed in Section 4.</t> | fy the | |||
metric, beyond those listed in <xref target="gen-params-defs"/>.</t> | ||||
<t>No additional Parameters are needed.</t> | <t>No additional Parameters are needed.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Metric Definitions"> | <name>Metric Definitions</name> | |||
<t>This section defines the REQUIRED aspects of the measurable | <t>This section defines the <bcp14>REQUIRED</bcp14> aspects of the measu | |||
IP-Layer Capacity metric (unless otherwise indicated) for measurements | rable | |||
IP-Layer Capacity Metric (unless otherwise indicated) for measurements | ||||
between specified Source and Destination hosts:</t> | between specified Source and Destination hosts:</t> | |||
<t>Define the IP-Layer Capacity, C(T,dt,PM), to be the number of | <t>Define the IP-Layer Capacity, C(T,dt,PM), to be the number of | |||
IP-Layer bits (including header and data fields) in packets that can | IP-Layer bits (including header and data fields) in packets that can | |||
be transmitted from the Src host and correctly received by the Dst | be transmitted from the Src host and correctly received by the Dst | |||
host during one contiguous sub-interval, dt in length. The IP-Layer | host during one contiguous sub-interval, dt in length. The IP-Layer | |||
Capacity depends on the Src and Dst hosts, the host addresses, and the | Capacity depends on the Src and Dst hosts, the host addresses, and the | |||
path between the hosts.</t> | path between the hosts.</t> | |||
<t>The number of these IP-Layer bits is designated n0[dtn,dtn+1] for a | <t>The number of these IP-Layer bits is designated n0[dtn,dtn+1] for a | |||
specific dt.</t> | specific dt.</t> | |||
<t>When the packet size is known and of fixed size, the packet count | <t>When the packet size is known and of fixed size, the packet count | |||
during a single sub-interval dt multiplied by the total bits in IP | during a single sub-interval dt multiplied by the total bits in IP | |||
header and data fields is equal to n0[dtn,dtn+1].</t> | header and data fields is equal to n0[dtn,dtn+1].</t> | |||
<t>Anticipating a Sample of Singletons, the number of sub-intervals | <t>Anticipating a Sample of Singletons, the number of sub-intervals | |||
with duration dt MUST be set to a natural number m, so that T+I = T + | with duration dt <bcp14>MUST</bcp14> be set to a natural number m, so th at T+I = T + | |||
m*dt with dtn+1 - dtn = dt for 1 <= n <= m.</t> | m*dt with dtn+1 - dtn = dt for 1 <= n <= m.</t> | |||
<t>Parameter PM represents other performance metrics (see <xref target=" | ||||
<t>Parameter PM represents other performance metrics [see section 5.4 | sec5-4-rt-delay"/> | |||
below]; their measurement results SHALL be collected during | below); their measurement results <bcp14>SHALL</bcp14> be collected duri | |||
ng | ||||
measurement of IP-Layer Capacity and associated with the corresponding | measurement of IP-Layer Capacity and associated with the corresponding | |||
dtn for further evaluation and reporting. Users SHALL specify the | dtn for further evaluation and reporting. Users <bcp14>SHALL</bcp14> spe | |||
parameter Tmax as required by each metric's reference definition.</t> | cify the | |||
Parameter Tmax as required by each metric's reference definition.</t> | ||||
<t>Mathematically, this definition is represented as (for each n):</t> | <t>Mathematically, this definition is represented as (for each n):</t> | |||
<figure> | ||||
<t><figure title="Equation for IP-Layer Capacity"> | <name>Equation for IP-Layer Capacity</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="ascii-art" alt=""><![CDATA[ | |||
( n0[dtn,dtn+1] ) | ( n0[dtn,dtn+1] ) | |||
C(T,dt,PM) = ------------------------- | C(T,dt,PM) = ------------------------- | |||
dt | dt | |||
]]></artwork> | ]]></artwork> | |||
</figure>and:<list style="symbols"> | </figure> | |||
<t>n0 is the total number of IP-Layer header and payload bits that | <t>and:</t> | |||
can be transmitted in standard-formed packets <xref | <ul spacing="normal"> | |||
target="RFC8468"/> from the Src host and correctly received by the | <li>n0 is the total number of IP-Layer header and payload bits that | |||
can be transmitted in standard-formed packets <xref target="RFC8468" | ||||
format="default"/> from the Src host and correctly received by the | ||||
Dst host during one contiguous sub-interval, dt in length, during | Dst host during one contiguous sub-interval, dt in length, during | |||
the interval [T, T+I],</t> | the interval [T,T+I].</li> | |||
<li>C(T,dt,PM), the IP-Layer Capacity, corresponds to the value of | ||||
<t>C(T,dt,PM) the IP-Layer Capacity, corresponds to the value of | ||||
n0 measured in any sub-interval beginning at dtn, divided by the | n0 measured in any sub-interval beginning at dtn, divided by the | |||
length of sub-interval, dt.</t> | length of the sub-interval, dt.</li> | |||
<li>PM represents other performance metrics (see <xref target="sec5-4- | ||||
<t>PM represents other performance metrics [see section 5.4 | rt-delay"/> | |||
below]; their measurement results SHALL be collected during | below); their measurement results <bcp14>SHALL</bcp14> be collected | |||
during | ||||
measurement of IP-Layer Capacity and associated with the | measurement of IP-Layer Capacity and associated with the | |||
corresponding dtn for further evaluation and reporting.</t> | corresponding dtn for further evaluation and reporting.</li> | |||
<li>All sub-intervals <bcp14>MUST</bcp14> be of equal duration. Choosi | ||||
<t>all sub-intervals MUST be of equal duration. Choosing dt as | ng dt as | |||
non-overlapping consecutive time intervals allows for a simple | non-overlapping consecutive time intervals allows for a simple | |||
implementation.</t> | implementation.</li> | |||
<li>The bit rate of the physical interface of the measurement | ||||
<t>The bit rate of the physical interface of the measurement | devices <bcp14>MUST</bcp14> be higher than the smallest of the links | |||
devices MUST be higher than the smallest of the links on the path | on the path | |||
whose C(T,I,PM) is to be measured (the bottleneck link).</t> | whose C(T,I,PM) is to be measured (the bottleneck link).</li> | |||
</list></t> | </ul> | |||
<t>Measurements according to this definition <bcp14>SHALL</bcp14> use th | ||||
<t>Measurements according to these definitions SHALL use the UDP | e UDP | |||
transport layer. Standard-formed packets are specified in Section 5 of | transport layer. Standard-formed packets are specified in <xref target=" | |||
<xref target="RFC8468"/>. The measurement SHOULD use a randomized | RFC8468" sectionFormat="of" section="5"/>. The measurement <bcp14>SHOULD</bcp14> | |||
Source port or equivalent technique, and SHOULD send responses from | use a randomized | |||
the Source address matching the test packet destination address.</t> | Source port or equivalent technique, and <bcp14>SHOULD</bcp14> send resp | |||
onses from | ||||
<t>Some compression affects on measurement are discussed in Section 6 | the Source address matching the test packet Destination address.</t> | |||
of <xref target="RFC8468"/>.</t> | <t>Some effects of compression on measurement are discussed in | |||
<xref target="RFC8468" sectionFormat="of" section="6"/>.</t> | ||||
</section> | </section> | |||
<section anchor="sec5-4-rt-delay" numbered="true" toc="default"> | ||||
<section title="Related Round-Trip Delay and One-way Loss Definitions"> | <name>Related Round-Trip Delay and One-Way Loss Definitions</name> | |||
<t>RTD[dtn,dtn+1] is defined as a Sample of the <xref | <t>RTD[dtn,dtn+1] is defined as a Sample of the Round-Trip Delay <xref t | |||
target="RFC2681"/> Round-trip Delay between the Src host and the Dst | arget="RFC2681" format="default"/> between the Src host and the Dst | |||
host over the interval [T,T+I] (that contains equal non-overlapping | host during the interval [T,T+I] (that contains equal non-overlapping | |||
intervals of dt). The "reasonable period of time" in <xref | intervals of dt). The "reasonable period of time" mentioned in <xref tar | |||
target="RFC2681"/> is the parameter Tmax in this memo. The statistics | get="RFC2681" format="default"/> is the Parameter Tmax in this memo. The statist | |||
used to summarize RTD[dtn,dtn+1] MAY include the minimum, maximum, | ics | |||
median, and mean, and the range = (maximum - minimum) is referred to | used to summarize RTD[dtn,dtn+1] <bcp14>MAY</bcp14> include the minimum, | |||
below in Section 8.1 for load adjustment purposes.</t> | maximum, | |||
median, mean, and the range = (maximum - minimum). Some of these statist | ||||
<t>OWL[dtn,dtn+1] is defined as a Sample of the <xref | ics are needed for load adjustment purposes (<xref target="load-rate-adj"/>), me | |||
target="RFC7680"/> One-way Loss between the Src host and the Dst host | asurement qualification (<xref target="meas-qual-verif"/>), and reporting (<xref | |||
over the interval [T,T+I] (that contains equal non-overlapping | target="rpt-formats"/>). | |||
intervals of dt). The statistics used to summarize OWL[dtn,dtn+1] MAY | </t> | |||
include the lost packet count and the lost packet ratio.</t> | <t>OWL[dtn,dtn+1] is defined as a Sample of the One-Way Loss <xref targe | |||
t="RFC7680" format="default"/> between the Src host and the Dst host | ||||
<t>Other metrics MAY be measured: one-way reordering, duplication, and | during the interval [T,T+I] (that contains equal non-overlapping | |||
intervals of dt). The statistics used to summarize OWL[dtn,dtn+1] <bcp14 | ||||
>MAY</bcp14> | ||||
include the count of lost packets and the ratio of lost packets.</t> | ||||
<t>Other metrics <bcp14>MAY</bcp14> be measured: one-way reordering, dup | ||||
lication, and | ||||
delay variation.</t> | delay variation.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Discussion"> | <name>Discussion</name> | |||
<t>See the corresponding section for Maximum IP-Layer Capacity.</t> | <t>See the corresponding section for Maximum IP-Layer Capacity (<xref ta | |||
rget="Maximum-IP-Layer-Capacity-Discussion" format="default"/>). | ||||
</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Reporting the Metric"> | <name>Reporting the Metric</name> | |||
<t>The IP-Layer Capacity SHOULD be reported with at least single | <t>The IP-Layer Capacity <bcp14>SHOULD</bcp14> be reported with at least | |||
Megabit resolution, in units of Megabits per second (Mbps), (which is | single-Megabit resolution, in units of Megabits per second (Mbps) (which | |||
1,000,000 bits per second to avoid any confusion).</t> | , | |||
to avoid any confusion, is 1,000,000 bits per second).</t> | ||||
<t>The related One-way Loss metric and Round Trip Delay measurements | <t>The related One-Way Loss metric and Round-Trip Delay measurements | |||
for the same Singleton SHALL be reported, also with meaningful | for the same Singleton <bcp14>SHALL</bcp14> be reported, also with meani | |||
ngful | ||||
resolution for the values measured.</t> | resolution for the values measured.</t> | |||
<t>Individual Capacity measurements <bcp14>MAY</bcp14> be reported in a | ||||
<t>Individual Capacity measurements MAY be reported in a manner | manner | |||
consistent with the Maximum IP-Layer Capacity, see Section 9.</t> | consistent with the Maximum IP-Layer Capacity; see <xref target="rpt-for | |||
mats"/>.</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="max-ip-metric-defs" numbered="true" toc="default"> | ||||
<section title="Maximum IP-Layer Capacity Metric Definitions (Statistic)"> | <name>Maximum IP-Layer Capacity Metric Definitions (Statistics)</name> | |||
<t>This section sets requirements for the following components to | <t>This section sets requirements for the following components to | |||
support the Maximum IP-Layer Capacity Metric.</t> | support the Maximum IP-Layer Capacity Metric.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Formal Name"> | <name>Formal Name</name> | |||
<t>Type-P-One-way-Max-IP-Capacity, or informally called Maximum | <t>"Type-P-One-way-Max-IP-Capacity" is the formal name; it is informally | |||
IP-Layer Capacity.</t> | called "Maximum IP-Layer Capacity".</t> | |||
<t>Note that Type-P depends on the chosen method.</t> | <t>Note that Type-P depends on the chosen method.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Parameters"> | <name>Parameters</name> | |||
<t>This section lists the REQUIRED input factors to specify the | <t>This section lists the <bcp14>REQUIRED</bcp14> input factors to speci | |||
metric, beyond those listed in Section 4.</t> | fy the | |||
metric, beyond those listed in <xref target="gen-params-defs"/>.</t> | ||||
<t>No additional Parameters or definitions are needed.</t> | <t>No additional Parameters or definitions are needed.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Metric Definitions"> | <name>Metric Definitions</name> | |||
<t>This section defines the REQUIRED aspects of the Maximum IP-Layer | <t>This section defines the <bcp14>REQUIRED</bcp14> aspects of the Maxim | |||
Capacity metric (unless otherwise indicated) for measurements between | um IP-Layer | |||
Capacity Metric (unless otherwise indicated) for measurements between | ||||
specified Source and Destination hosts:</t> | specified Source and Destination hosts:</t> | |||
<t>Define the Maximum IP-Layer Capacity, Maximum_C(T,I,PM), to be the | <t>Define the Maximum IP-Layer Capacity, Maximum_C(T,I,PM), to be the | |||
maximum number of IP-Layer bits n0[dtn,dtn+1] divided by dt that can | maximum number of IP-Layer bits n0[dtn,dtn+1] divided by dt that can | |||
be transmitted in packets from the Src host and correctly received by | be transmitted in packets from the Src host and correctly received by | |||
the Dst host, over all dt length intervals in [T, T+I], and meeting | the Dst host, over all dt-length intervals in [T,T+I] and meeting | |||
the PM criteria. Equivalently the Maximum of a Sample of size m of | the PM criteria. An equivalent definition would be the maximum of a Samp | |||
C(T,I,PM) collected during the interval [T, T+I] and meeting the PM | le of size m of Singletons | |||
C(T,I,PM) collected during the interval [T,T+I] and meeting the PM | ||||
criteria.</t> | criteria.</t> | |||
<t>The number of sub-intervals with duration dt <bcp14>MUST</bcp14> be s | ||||
<t>The number of sub-intervals with duration dt MUST be set to a | et to a | |||
natural number m, so that T+I = T + m*dt with dtn+1 - dtn = dt for 1 | natural number m, so that T+I = T + m*dt with dtn+1 - dtn = dt for 1 | |||
<= n <= m.</t> | <= n <= m.</t> | |||
<t>Parameter PM represents the other performance metrics (see | ||||
<t>Parameter PM represents the other performance metrics (see Section | <xref target="sec6-4-rt-delay"/> below) and their measurement results fo | |||
6.4 below) and their measurement results for the Maximum IP-Layer | r the Maximum IP-Layer | |||
Capacity. At least one target performance threshold (PM criterion) | Capacity. At least one target performance threshold (PM criterion) | |||
MUST be defined. If more than one metric and target performance | <bcp14>MUST</bcp14> be defined. If more than one metric and target perfo | |||
threshold are defined, then the sub-interval with maximum number of | rmance | |||
bits transmitted MUST meet all the target performance thresholds. | threshold is defined, then the sub-interval with the maximum number of | |||
Users SHALL specify the parameter Tmax as required by each metric's | bits transmitted <bcp14>MUST</bcp14> meet all the target performance thr | |||
esholds. | ||||
Users <bcp14>SHALL</bcp14> specify the Parameter Tmax as required by eac | ||||
h metric's | ||||
reference definition.</t> | reference definition.</t> | |||
<t>Mathematically, this definition can be represented as:</t> | <t>Mathematically, this definition can be represented as:</t> | |||
<figure> | ||||
<t><figure title="Equation for Maximum Capacity"> | <name>Equation for Maximum Capacity</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="ascii-art" alt=""><![CDATA[ | |||
max ( n0[dtn,dtn+1] ) | max ( n0[dtn,dtn+1] ) | |||
[T,T+I] | [T,T+I] | |||
Maximum_C(T,I,PM) = ------------------------- | Maximum_C(T,I,PM) = ------------------------- | |||
dt | dt | |||
where: | ||||
where: | ||||
T T+I | T T+I | |||
_________________________________________ | _________________________________________ | |||
| | | | | | | | | | | | | | | | | | | | | | | | |||
dtn=1 2 3 4 5 6 7 8 9 10 n+1 | dtn=1 2 3 4 5 6 7 8 9 10 n+1 | |||
n=m | n=m | |||
]]></artwork> | ]]></artwork> | |||
</figure>and:<list style="symbols"> | </figure> | |||
<t>n0 is the total number of IP-Layer header and payload bits that | <t>and:</t> | |||
<ul spacing="normal"> | ||||
<li>n0 is the total number of IP-Layer header and payload bits that | ||||
can be transmitted in standard-formed packets from the Src host | can be transmitted in standard-formed packets from the Src host | |||
and correctly received by the Dst host during one contiguous | and correctly received by the Dst host during one contiguous | |||
sub-interval, dt in length, during the interval [T, T+I],</t> | sub-interval, dt in length, during the interval [T,T+I].</li> | |||
<li>Maximum_C(T,I,PM), the Maximum IP-Layer Capacity, corresponds to | ||||
<t>Maximum_C(T,I,PM) the Maximum IP-Layer Capacity, corresponds to | ||||
the maximum value of n0 measured in any sub-interval beginning at | the maximum value of n0 measured in any sub-interval beginning at | |||
dtn, divided by the constant length of all sub-intervals, dt.</t> | dtn, divided by the constant length of all sub-intervals, dt.</li> | |||
<li>PM represents the other performance metrics (see <xref target="sec | ||||
<t>PM represents the other performance metrics (see Section 5.4) | 6-4-rt-delay"/>) | |||
and their measurement results for the Maximum IP-Layer Capacity. | and their measurement results for the Maximum IP-Layer Capacity. | |||
At least one target performance threshold (PM criterion) MUST be | At least one target performance threshold (PM criterion) <bcp14>MUST | |||
defined.</t> | </bcp14> be | |||
defined.</li> | ||||
<t>all sub-intervals MUST be of equal duration. Choosing dt as | <li>All sub-intervals <bcp14>MUST</bcp14> be of equal duration. Choosi | |||
ng dt as | ||||
non-overlapping consecutive time intervals allows for a simple | non-overlapping consecutive time intervals allows for a simple | |||
implementation.</t> | implementation.</li> | |||
<li>The bit rate of the physical interface of the measurement | ||||
<t>The bit rate of the physical interface of the measurement | systems <bcp14>MUST</bcp14> be higher than the smallest of the links | |||
systems MUST be higher than the smallest of the links on the path | on the path | |||
whose Maximum_C(T,I,PM) is to be measured (the bottleneck | whose Maximum_C(T,I,PM) is to be measured (the bottleneck | |||
link).</t> | link).</li> | |||
</list></t> | </ul> | |||
<t>In this definition, the m sub-intervals can be viewed as trials | <t>In this definition, the m sub-intervals can be viewed as trials | |||
when the Src host varies the transmitted packet rate, searching for | when the Src host varies the transmitted packet rate, searching for | |||
the maximum n0 that meets the PM criteria measured at the Dst host in | the maximum n0 that meets the PM criteria measured at the Dst host in | |||
a test of duration, I. When the transmitted packet rate is held | a test of duration I. When the transmitted packet rate is held | |||
constant at the Src host, the m sub-intervals may also be viewed as | constant at the Src host, the m sub-intervals may also be viewed as | |||
trials to evaluate the stability of n0 and metric(s) in the PM list | trials to evaluate the stability of n0 and metric(s) in the PM list | |||
over all dt-length intervals in I.</t> | over all dt-length intervals in I.</t> | |||
<t>Measurements according to these definitions <bcp14>SHALL</bcp14> use | ||||
<t>Measurements according to these definitions SHALL use the UDP | the UDP | |||
transport layer.</t> | transport layer.</t> | |||
</section> | </section> | |||
<section anchor="sec6-4-rt-delay" numbered="true" toc="default"> | ||||
<section title="Related Round-Trip Delay and One-way Loss Definitions"> | <name>Related Round-Trip Delay and One-Way Loss Definitions</name> | |||
<t>RTD[dtn,dtn+1] and OWL[dtn,dtn+1] are defined in Section 5.4. Here, | <t>RTD[dtn,dtn+1] and OWL[dtn,dtn+1] are defined in <xref target="sec5-4 | |||
-rt-delay"/>. Here, | ||||
the test intervals are increased to match the capacity Samples, | the test intervals are increased to match the capacity Samples, | |||
RTD[T,I] and OWL[T,I].</t> | RTD[T,I] and OWL[T,I].</t> | |||
<t>The interval dtn,dtn+1 where Maximum_C(T,I,PM) occurs is the | ||||
<t>The interval dtn,dtn+1 where Maximum_C[T,I,PM] occurs is the | reporting sub-interval for RTD[dtn,dtn+1] and OWL[dtn,dtn+1] within RTD[ | |||
reporting sub-interval within RTD[T,I] and OWL[T,I].</t> | T,I] and OWL[T,I].</t> | |||
<t>Other metrics <bcp14>MAY</bcp14> be measured: one-way reordering, dup | ||||
<t>Other metrics MAY be measured: one-way reordering, duplication, and | lication, and | |||
delay variation.</t> | delay variation.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default" anchor="Maximum-IP-Layer-Capacity-D | ||||
<section title="Discussion"> | iscussion"> | |||
<name>Discussion</name> | ||||
<t>If traffic conditioning (e.g., shaping, policing) applies along a | <t>If traffic conditioning (e.g., shaping, policing) applies along a | |||
path for which Maximum_C(T,I,PM) is to be determined, different values | path for which Maximum_C(T,I,PM) is to be determined, different values | |||
for dt SHOULD be picked and measurements be executed during multiple | for dt <bcp14>SHOULD</bcp14> be picked and measurements executed during | |||
intervals [T, T+I]. Each duration dt SHOULD be chosen so that it is an | multiple | |||
intervals [T,T+I]. Each duration dt <bcp14>SHOULD</bcp14> be chosen so t | ||||
hat it is an | ||||
integer multiple of increasing values k times serialization delay of a | integer multiple of increasing values k times serialization delay of a | |||
path MTU at the physical interface speed where traffic conditioning is | Path MTU (PMTU) at the physical interface speed where traffic conditioni ng is | |||
expected. This should avoid taking configured burst tolerance | expected. This should avoid taking configured burst tolerance | |||
singletons as a valid Maximum_C(T,I,PM) result.</t> | Singletons as a valid Maximum_C(T,I,PM) result.</t> | |||
<t>A Maximum_C(T,I,PM) without any indication of bottleneck | <t>A Maximum_C(T,I,PM) without any indication of bottleneck | |||
congestion, be that an increasing latency, packet loss or ECN marks | congestion, be that increased latency, packet loss, or Explicit Congesti | |||
during a measurement interval I, is likely to underestimate | on | |||
Maximum_C(T,I,PM).</t> | Notification (ECN) marks during a measurement interval, I, is likely an | |||
underestimate of Maximum_C(T,I,PM).</t> | ||||
</section> | </section> | |||
<section anchor="sec6-6-rpt-the-metric" numbered="true" toc="default"> | ||||
<section title="Reporting the Metric"> | <name>Reporting the Metric</name> | |||
<t>The IP-Layer Capacity SHOULD be reported with at least single | <t>The IP-Layer Capacity <bcp14>SHOULD</bcp14> be reported with at least | |||
Megabit resolution, in units of Megabits per second (Mbps) (which is | single-Megabit resolution, in units of Megabits per second (Mbps) (which | |||
1,000,000 bits per second to avoid any confusion).</t> | , | |||
to avoid any confusion, is 1,000,000 bits per second).</t> | ||||
<t>The related One-way Loss metric and Round Trip Delay measurements | <t>The related One-Way Loss metric and Round-Trip Delay measurements | |||
for the same Singleton SHALL be reported, also with meaningful | for the same Singleton <bcp14>SHALL</bcp14> be reported, also with meani | |||
ngful | ||||
resolution for the values measured.</t> | resolution for the values measured.</t> | |||
<t>When there are demonstrated and repeatable Capacity modes in the | <t>When there are demonstrated and repeatable Capacity modes in the | |||
Sample, then the Maximum IP-Layer Capacity SHALL be reported for each | Sample, the Maximum IP-Layer Capacity <bcp14>SHALL</bcp14> be reported f or each | |||
mode, along with the relative time from the beginning of the stream | mode, along with the relative time from the beginning of the stream | |||
that the mode was observed to be present. Bimodal Maximum IP-Layer | that the mode was observed to be present. Bimodal Maximum IP-Layer | |||
Capacities have been observed with some services, sometimes called a | Capacities have been observed with some services, sometimes called a | |||
"turbo mode" intending to deliver short transfers more quickly, or | "turbo mode" intending to deliver short transfers more quickly or | |||
reduce the initial buffering time for some video streams. Note that | reduce the initial buffering time for some video streams. Note that | |||
modes lasting less than dt duration will not be detected.</t> | modes lasting less than duration dt will not be detected.</t> | |||
<t>Some transmission technologies have multiple methods of operation | <t>Some transmission technologies have multiple methods of operation | |||
that may be activated when channel conditions degrade or improve, and | that may be activated when channel conditions degrade or improve, and | |||
these transmission methods may determine the Maximum IP-Layer | these transmission methods may determine the Maximum IP-Layer | |||
Capacity. Examples include line-of-sight microwave modulator | Capacity. Examples include line-of-sight microwave modulator | |||
constellations, or cellular modem technologies where the changes may | constellations, or cellular modem technologies where the changes may | |||
be initiated by a user moving from one coverage area to another. | be initiated by a user moving from one coverage area to another. | |||
Operation in the different transmission methods may be observed over | Operation in the different transmission methods may be observed over | |||
time, but the modes of Maximum IP-Layer Capacity will not be activated | time, but the modes of Maximum IP-Layer Capacity will not be activated | |||
deterministically as with the "turbo mode" described in the paragraph | deterministically as with the "turbo mode" described in the paragraph | |||
above.</t> | above.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="ip-layer-sender-br" numbered="true" toc="default"> | ||||
<section title="IP-Layer Sender Bit Rate Singleton Metric Definitions"> | <name>IP-Layer Sender Bit Rate Singleton Metric Definitions</name> | |||
<t>This section sets requirements for the following components to | <t>This section sets requirements for the following components to | |||
support the IP-Layer Sender Bitrate Metric. This metric helps to check | support the IP-Layer Sender Bit Rate Metric. This metric helps to check | |||
that the sender actually generated the desired rates during a test, and | that the Sender actually generated the desired rates during a test, and | |||
measurement takes place at the Src host to network path interface (or as | measurement takes place at the interface between the Src host and the netw | |||
ork path (or as | ||||
close as practical within the Src host). It is not a metric for path | close as practical within the Src host). It is not a metric for path | |||
performance.</t> | performance.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Formal Name"> | <name>Formal Name</name> | |||
<t>Type-P-IP-Sender-Bit-Rate, or informally called IP-Layer Sender | <t>"Type-P-IP-Sender-Bit-Rate" is the formal name; it is informally call | |||
Bitrate.</t> | ed the "IP-Layer Sender Bit Rate".</t> | |||
<t>Note that Type-P depends on the chosen method.</t> | <t>Note that Type-P depends on the chosen method.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Parameters"> | <name>Parameters</name> | |||
<t>This section lists the REQUIRED input factors to specify the | <t>This section lists the <bcp14>REQUIRED</bcp14> input factors to speci | |||
metric, beyond those listed in Section 4.</t> | fy the | |||
metric, beyond those listed in <xref target="gen-params-defs"/>.</t> | ||||
<t><list style="symbols"> | <dl spacing="normal"> | |||
<t>S, the duration of the measurement interval at the Source</t> | <dt>S:</dt><dd>The duration of the measurement interval at the Source. | |||
</dd> | ||||
<t>st, the nominal duration of N sub-intervals in S (default st = | <dt>st:</dt><dd>The nominal duration of N sub-intervals in S (default | |||
0.05 seconds)</t> | st = | |||
0.05 seconds).</dd> | ||||
<t>stn, the beginning boundary of a specific sub-interval, n, one | <dt>stn:</dt><dd>The beginning boundary of a specific sub-interval, n, | |||
of N sub-intervals in S</t> | one | |||
</list></t> | of N sub-intervals in S.</dd> | |||
</dl> | ||||
<t>S SHALL be longer than I, primarily to account for on-demand | <t>S <bcp14>SHALL</bcp14> be longer than I, primarily to account for on- | |||
demand | ||||
activation of the path, or any preamble to testing required, and the | activation of the path, or any preamble to testing required, and the | |||
delay of the path.</t> | delay of the path.</t> | |||
<t>st <bcp14>SHOULD</bcp14> be much smaller than the sub-interval dt and | ||||
<t>st SHOULD be much smaller than the sub-interval dt and on the same | on the same | |||
order as FT, otherwise the rate measurement will include many rate | order as FT; otherwise, the rate measurement will include many rate | |||
adjustments and include more time smoothing, thus missing the Maximum | adjustments and include more time smoothing, possibly smoothing the inte | |||
IP-Layer Capacity. The st parameter does not have relevance when the | rval that contains the Maximum | |||
IP-Layer Capacity (and therefore losing relevance). The st Parameter doe | ||||
s not have relevance when the | ||||
Source is transmitting at a fixed rate throughout S.</t> | Source is transmitting at a fixed rate throughout S.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Metric Definition"> | <name>Metric Definition</name> | |||
<t>This section defines the REQUIRED aspects of the IP-Layer Sender | <t>This section defines the <bcp14>REQUIRED</bcp14> aspects of the IP-La | |||
Bitrate metric (unless otherwise indicated) for measurements at the | yer Sender | |||
Bit Rate Metric (unless otherwise indicated) for measurements at the | ||||
specified Source on packets addressed for the intended Destination | specified Source on packets addressed for the intended Destination | |||
host and matching the required Type-P:</t> | host and matching the required Type-P:</t> | |||
<t>Define the IP-Layer Sender Bit Rate, B(S,st), to be the number of | <t>Define the IP-Layer Sender Bit Rate, B(S,st), to be the number of | |||
IP-Layer bits (including header and data fields) that are transmitted | IP-Layer bits (including header and data fields) that are transmitted | |||
from the Source with address pair Src and Dst during one contiguous | from the Source with address pair Src and Dst during one contiguous | |||
sub-interval, st, during the test interval S (where S SHALL be longer | sub-interval, st, during the test interval S (where S <bcp14>SHALL</bcp1 | |||
than I), and where the fixed-size packet count during that single | 4> be longer | |||
than I) and where the fixed-size packet count during that single | ||||
sub-interval st also provides the number of IP-Layer bits in any | sub-interval st also provides the number of IP-Layer bits in any | |||
interval, [stn,stn+1].</t> | interval, [stn,stn+1].</t> | |||
<t>Measurements according to this definition <bcp14>SHALL</bcp14> use th | ||||
<t>Measurements according to these definitions SHALL use the UDP | e UDP | |||
transport layer. Any feedback from Dst host to Src host received by | transport layer. Any feedback from the Dst host to the Src host received | |||
Src host during an interval [stn,stn+1] SHOULD NOT result in an | by the | |||
Src host during an interval [stn,stn+1] <bcp14>SHOULD NOT</bcp14> result | ||||
in an | ||||
adaptation of the Src host traffic conditioning during this interval | adaptation of the Src host traffic conditioning during this interval | |||
(rate adjustment occurs on st interval boundaries).</t> | (rate adjustment occurs on st interval boundaries).</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Discussion"> | <name>Discussion</name> | |||
<t>Both the Sender and Receiver or (Source and Destination) bit rates | <t>Both the Sender and Receiver (or Source and Destination) bit rates <b | |||
SHOULD be assessed as part of an IP-Layer Capacity measurement. | cp14>SHOULD</bcp14> be assessed as part of an IP-Layer Capacity measurement. | |||
Otherwise, an unexpected sending rate limitation could produce an | Otherwise, an unexpected sending rate limitation could produce an | |||
erroneous Maximum IP-Layer Capacity measurement.</t> | erroneous Maximum IP-Layer Capacity measurement.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Reporting the Metric"> | <name>Reporting the Metric</name> | |||
<t>The IP-Layer Sender Bit Rate SHALL be reported with meaningful | <t>The IP-Layer Sender Bit Rate <bcp14>SHALL</bcp14> be reported with me | |||
resolution, in units of Megabits per second (which is 1,000,000 bits | aningful | |||
per second to avoid any confusion).</t> | resolution, in units of Megabits per second (which, to avoid any confusi | |||
on, | ||||
is 1,000,000 bits per second).</t> | ||||
<t>Individual IP-Layer Sender Bit Rate measurements are discussed | <t>Individual IP-Layer Sender Bit Rate measurements are discussed | |||
further in Section 9.</t> | further in <xref target="rpt-formats"/>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Method of Measurement"> | <name>Method of Measurement</name> | |||
<t>The architecture of the method REQUIRES two cooperating hosts | <t>It is <bcp14>REQUIRED</bcp14> per the architecture of the method that t | |||
operating in the roles of Src (test packet sender) and Dst (receiver), | wo cooperating hosts operate in the roles of Src (test packet Sender) and Dst (R | |||
eceiver) | ||||
with a measured path and return path between them.</t> | with a measured path and return path between them.</t> | |||
<t>The duration of a test, Parameter I, <bcp14>MUST</bcp14> be constrained | ||||
<t>The duration of a test, parameter I, MUST be constrained in a | in a | |||
production network, since this is an active test method and it will | production network, since this is an active test method and it will | |||
likely cause congestion on the Src to Dst host path during a test.</t> | likely cause congestion on the path from the Src host to the Dst host duri | |||
ng a test.</t> | ||||
<section title="Load Rate Adjustment Algorithm"> | <section anchor="load-rate-adj" numbered="true" toc="default"> | |||
<t>The algorithm described in this section MUST NOT be used as a | <name>Load Rate Adjustment Algorithm</name> | |||
general Congestion Control Algorithm (CCA). As stated in the Scope | <t>The algorithm described in this section <bcp14>MUST NOT</bcp14> be us | |||
Section 2, the load rate adjustment algorithm's goal is to help | ed as a | |||
general Congestion Control Algorithm (CCA). As stated in | ||||
<xref target="sec-2-scope"/> ("Scope, Goals, and Applicability"), the lo | ||||
ad rate adjustment algorithm's goal is to help | ||||
determine the Maximum IP-Layer Capacity in the context of an | determine the Maximum IP-Layer Capacity in the context of an | |||
infrequent, diagnostic, short term measurement. There is a tradeoff | infrequent, diagnostic, short-term measurement. There is a trade-off | |||
between test duration (also the test data volume) and algorithm | between test duration (also the test data volume) and algorithm | |||
aggressiveness (speed of ramp-up and down to the Maximum IP-Layer | aggressiveness (speed of ramp-up and ramp-down to the Maximum IP-Layer | |||
Capacity). The parameter values chosen below strike a well-tested | Capacity). The Parameter values chosen below strike a well-tested | |||
balance among these factors.</t> | balance among these factors.</t> | |||
<t>A table <bcp14>SHALL</bcp14> be pre-built (by the test administrator) | ||||
<t>A table SHALL be pre-built (by the test initiator) defining all the | , defining all the | |||
offered load rates that will be supported (R1 through Rn, in ascending | offered load rates that will be supported (R1 through Rn, in ascending | |||
order, corresponding to indexed rows in the table). It is RECOMMENDED | order, corresponding to indexed rows in the table). It is <bcp14>RECOMME NDED</bcp14> | |||
that rates begin with 0.5 Mbps at index zero, use 1 Mbps at index one, | that rates begin with 0.5 Mbps at index zero, use 1 Mbps at index one, | |||
and then continue in 1 Mbps increments to 1 Gbps. Above 1 Gbps, and up | and then continue in 1 Mbps increments to 1 Gbps. Above 1 Gbps, and up | |||
to 10 Gbps, it is RECOMMENDED that 100 Mbps increments be used. Above | to 10 Gbps, it is <bcp14>RECOMMENDED</bcp14> that 100 Mbps increments be | |||
10 Gbps, increments of 1 Gbps are RECOMMENDED. A higher initial | used. Above | |||
IP-Layer Sender Bitrate might be configured when the test operator is | 10 Gbps, increments of 1 Gbps are <bcp14>RECOMMENDED</bcp14>. A higher i | |||
certain that the Maximum IP-Layer Capacity is well-above the initial | nitial | |||
IP-Layer Sender Bitrate and factors such as test duration and total | IP-Layer Sender Bit Rate might be configured when the test operator is | |||
test traffic play an important role. The sending rate table SHOULD | certain that the Maximum IP-Layer Capacity is well above the initial | |||
backet the maximum capacity where it will make measurements, including | IP-Layer Sender Bit Rate and factors such as test duration and total | |||
constrained rates less than 500kbps if applicable.</t> | test traffic play an important role. The sending rate table <bcp14>SHOUL | |||
D</bcp14> | ||||
bracket the Maximum Capacity where it will make measurements, including | ||||
constrained rates less than 500 kbps if applicable.</t> | ||||
<t>Each rate is defined as datagrams of size ss, sent as a burst of | <t>Each rate is defined as datagrams of size ss, sent as a burst of | |||
count cc, each time interval tt (default for tt is 1ms, a likely | count cc, each time interval tt (the default for tt is 100 microsec, a l | |||
system tick-interval). While it is advantageous to use datagrams of as | ikely | |||
system tick interval). While it is advantageous to use datagrams of as | ||||
large a size as possible, it may be prudent to use a slightly smaller | large a size as possible, it may be prudent to use a slightly smaller | |||
maximum that allows for secondary protocol headers and/or tunneling | maximum that allows for secondary protocol headers and/or tunneling | |||
without resulting in IP-Layer fragmentation. Selection of a new rate | without resulting in IP-Layer fragmentation. Selection of a new rate | |||
is indicated by a calculation on the current row, Rx. For example:</t> | is indicated by a calculation on the current row, Rx. For example:</t> | |||
<dl newline="false" spacing="normal"> | ||||
<t>"Rx+1": the sender uses the next higher rate in the table.</t> | <dt>"Rx+1":</dt><dd>The Sender uses the next-higher rate in the table.</ | |||
dd> | ||||
<t>"Rx-10": the sender uses the rate 10 rows lower in the table.</t> | <dt>"Rx-10":</dt><dd>The Sender uses the rate 10 rows lower in the table | |||
.</dd> | ||||
<t>At the beginning of a test, the sender begins sending at rate R1 | </dl> | |||
and the receiver starts a feedback timer of duration FT (while | <t>At the beginning of a test, the Sender begins sending at rate R1 | |||
awaiting inbound datagrams). As datagrams are received they are | and the Receiver starts a feedback timer of duration FT (while | |||
awaiting inbound datagrams). As datagrams are received, they are | ||||
checked for sequence number anomalies (loss, out-of-order, | checked for sequence number anomalies (loss, out-of-order, | |||
duplication, etc.) and the delay range is measured (one-way or | duplication, etc.) and the delay range is measured (one-way or | |||
round-trip). This information is accumulated until the feedback timer | round-trip). This information is accumulated until the feedback timer | |||
FT expires and a status feedback message is sent from the receiver | FT expires and a status feedback message is sent from the Receiver | |||
back to the sender, to communicate this information. The accumulated | back to the Sender, to communicate this information. The accumulated | |||
statistics are then reset by the receiver for the next feedback | statistics are then reset by the Receiver for the next feedback | |||
interval. As feedback messages are received back at the sender, they | interval. As feedback messages are received back at the Sender, they | |||
are evaluated to determine how to adjust the current offered load rate | are evaluated to determine how to adjust the current offered load rate | |||
(Rx).</t> | (Rx).</t> | |||
<t>If the feedback indicates that no sequence number anomalies were | <t>If the feedback indicates that no sequence number anomalies were | |||
detected AND the delay range was below the lower threshold, the | detected AND the delay range was below the lower threshold, the | |||
offered load rate is increased. If congestion has not been confirmed | offered load rate is increased. If congestion has not been confirmed | |||
up to this point (see below for the method to declare congestion), the | up to this point (see below for the method for declaring congestion), th | |||
offered load rate is increased by more than one rate (e.g., Rx+10). | e | |||
offered load rate is increased by more than one rate setting (e.g., Rx+1 | ||||
0). | ||||
This allows the offered load to quickly reach a near-maximum rate. | This allows the offered load to quickly reach a near-maximum rate. | |||
Conversely, if congestion has been previously confirmed, the offered | Conversely, if congestion has been previously confirmed, the offered | |||
load rate is only increased by one (Rx+1). However, if a rate | load rate is only increased by one (Rx+1). However, if a rate | |||
threshold between high and very high sending rates (such as 1 Gbps) is | threshold above a high sending rate (such as 1 Gbps) is | |||
exceeded, the offered load rate is only increased by one (Rx+1) above | exceeded, the offered load rate is only increased by one (Rx+1) | |||
the rate threshold in any congestion state.</t> | in any congestion state.</t> | |||
<t>If the feedback indicates that sequence number anomalies were | <t>If the feedback indicates that sequence number anomalies were | |||
detected OR the delay range was above the upper threshold, the offered | detected OR the delay range was above the upper threshold, the offered | |||
load rate is decreased. The RECOMMENDED threshold values are 0 for | load rate is decreased. The <bcp14>RECOMMENDED</bcp14> threshold values | |||
sequence number gaps and 30 ms for lower and 90 ms for upper delay | are 10 for | |||
sequence number gaps and 30 msec for lower and 90 msec for upper delay | ||||
thresholds, respectively. Also, if congestion is now confirmed for the | thresholds, respectively. Also, if congestion is now confirmed for the | |||
first time by the current feedback message being processed, then the | first time by the current feedback message being processed, then the | |||
offered load rate is decreased by more than one rate (e.g., Rx-30). | offered load rate is decreased by more than one rate setting (e.g., Rx-3 0). | |||
This one-time reduction is intended to compensate for the fast initial | This one-time reduction is intended to compensate for the fast initial | |||
ramp-up. In all other cases, the offered load rate is only decreased | ramp-up. In all other cases, the offered load rate is only decreased | |||
by one (Rx-1).</t> | by one (Rx-1).</t> | |||
<t>If the feedback indicates that there were no sequence number | <t>If the feedback indicates that there were no sequence number | |||
anomalies AND the delay range was above the lower threshold, but below | anomalies AND the delay range was above the lower threshold but below | |||
the upper threshold, the offered load rate is not changed. This allows | the upper threshold, the offered load rate is not changed. This allows | |||
time for recent changes in the offered load rate to stabilize, and the | time for recent changes in the offered load rate to stabilize and for th e | |||
feedback to represent current conditions more accurately.</t> | feedback to represent current conditions more accurately.</t> | |||
<t>Lastly, the method for inferring congestion is that there were | <t>Lastly, the method for inferring congestion is that there were | |||
sequence number anomalies AND/OR the delay range was above the upper | sequence number anomalies AND/OR the delay range was above the upper | |||
threshold for two consecutive feedback intervals. The algorithm | threshold for three consecutive feedback intervals. The algorithm | |||
described above is also illustrated in ITU-T Rec. Y.1540, 2020 | described above is also illustrated in Annex B of ITU-T Recommendation Y | |||
version<xref target="Y.1540"/>, in Annex B, and implemented in the | .1540, 2020 | |||
Appendix on Load Rate Adjustment Pseudo Code in this memo.</t> | version <xref target="Y.1540" format="default"/> and is implemented in < | |||
xref target="app-a-load-rate-adj-pseudocode"/> ("Load Rate Adjustment Pseudocode | ||||
<t>The load rate adjustment algorithm MUST include timers that stop | ") | |||
in this memo.</t> | ||||
<t>The load rate adjustment algorithm <bcp14>MUST</bcp14> include timers | ||||
that stop | ||||
the test when received packet streams cease unexpectedly. The timeout | the test when received packet streams cease unexpectedly. The timeout | |||
thresholds are provided in the table below, along with values for all | thresholds are provided in <xref target="load-rate-adj-params"/>, along | |||
other parameters and variables described in this section. Operation of | with values for all | |||
non-obvious parameters appear below:<list style="hanging"> | other Parameters and variables described in this section. Operations of | |||
<t hangText="load packet timeout">Operation: The load packet | non-obvious Parameters appear below:</t> | |||
timeout SHALL be reset to the configured value each time a load | <dl newline="true" spacing="normal"> | |||
packet received. If the timeout expires, the receiver SHALL be | <dt>load packet timeout:</dt> | |||
closed and no further feedback sent.</t> | <dd>The load packet | |||
timeout <bcp14>SHALL</bcp14> be reset to the configured value each t | ||||
<t hangText="feedback message timeout">Operation: The feedback | ime a load | |||
message timeout SHALL be reset to the configured value each time a | packet is received. If the timeout expires, the Receiver <bcp14>SHAL | |||
feedback message is received. If the timeout expires, the sender | L</bcp14> be | |||
SHALL be closed and no further load packets sent.</t> | closed and no further feedback sent.</dd> | |||
</list></t> | <dt>feedback message timeout:</dt> | |||
<dd>The feedback | ||||
<t/> | message timeout <bcp14>SHALL</bcp14> be reset to the configured valu | |||
e each time a | ||||
<texttable style="all" | feedback message is received. If the timeout expires, the Sender | |||
title="Parameters for Load Rate Adjustment Algorithm"> | <bcp14>SHALL</bcp14> be closed and no further load packets sent.</dd | |||
<ttcol>Parameter</ttcol> | > | |||
</dl> | ||||
<ttcol>Default</ttcol> | <table align="center" anchor="load-rate-adj-params"> | |||
<name>Parameters for Load Rate Adjustment Algorithm</name> | ||||
<ttcol>Tested Range or values</ttcol> | <thead> | |||
<tr> | ||||
<ttcol width="30">Expected Safe Range (not entirely tested, other | <th align="left">Parameter</th> | |||
values NOT RECOMMENDED)</ttcol> | <th align="left">Default</th> | |||
<th align="left">Tested Range or Values</th> | ||||
<c>FT, feedback time interval</c> | <th align="left">Expected Safe Range (not entirely tested, other | |||
values <bcp14>NOT RECOMMENDED</bcp14>)</th> | ||||
<c>50ms</c> | </tr> | |||
</thead> | ||||
<c>20ms, 50ms, 100ms</c> | <tbody> | |||
<tr> | ||||
<c>20ms <= FT <= 250ms Larger values may slow the rate | <td align="left">FT, feedback time interval</td> | |||
increase and fail to find the max</c> | <td align="left">50 msec</td> | |||
<td align="left">20 msec, 50 msec, 100 msec</td> | ||||
<c>Feedback message timeout (stop test)</c> | <td align="left">20 msec <= FT <= 250 msec; larger values ma | |||
y slow the rate | ||||
<c>L*FT, L=20 (1sec with FT=50ms)</c> | increase and fail to find the max</td> | |||
</tr> | ||||
<c>L=100 with FT=50ms (5sec)</c> | <tr> | |||
<td align="left">Feedback message timeout (stop test)</td> | ||||
<c>0.5sec <= L*FT <= 30sec Upper limit for very unreliable | <td align="left">L*FT, L=20 (1 sec with FT=50 msec)</td> | |||
test paths only</c> | <td align="left">L=100 with FT=50 msec (5 sec)</td> | |||
<td align="left">0.5 sec <= L*FT <= 30 sec; upper limit for | ||||
<c>load packet timeout (stop test)</c> | very unreliable | |||
test paths only</td> | ||||
<c>1sec</c> | </tr> | |||
<tr> | ||||
<c>5sec</c> | <td align="left">Load packet timeout (stop test)</td> | |||
<td align="left">1 sec</td> | ||||
<c>0.250sec - 30sec Upper limit for very unreliable test paths | <td align="left">5 sec</td> | |||
only</c> | <td align="left">0.250-30 sec; upper limit for very unreliable tes | |||
t paths | ||||
<c>table index 0</c> | only</td> | |||
</tr> | ||||
<c>0.5Mbps</c> | <tr> | |||
<td align="left">Table index 0</td> | ||||
<c>0.5Mbps</c> | <td align="left">0.5 Mbps</td> | |||
<td align="left">0.5 Mbps</td> | ||||
<c>when testing <=10Gbps</c> | <td align="left">When testing <= 10 Gbps</td> | |||
</tr> | ||||
<c>table index 1</c> | <tr> | |||
<td align="left">Table index 1</td> | ||||
<c>1Mbps</c> | <td align="left">1 Mbps</td> | |||
<td align="left">1 Mbps</td> | ||||
<c>1Mbps</c> | <td align="left">When testing <= 10 Gbps</td> | |||
</tr> | ||||
<c>when testing <=10Gbps</c> | <tr> | |||
<td align="left">Table index (step) size</td> | ||||
<c>table index (step) size</c> | <td align="left">1 Mbps</td> | |||
<td align="left">1 Mbps <= rate <= 1 Gbps</td> | ||||
<c>1Mbps</c> | <td align="left">Same as tested</td> | |||
</tr> | ||||
<c>1Mbps<=rate<= 1Gbps</c> | <tr> | |||
<td align="left">Table index (step) size, rate > 1 Gbps</td> | ||||
<c>same as tested</c> | <td align="left">100 Mbps</td> | |||
<td align="left">1 Gbps <= rate <= 10 Gbps</td> | ||||
<c>table index (step) size, rate>1Gbps</c> | <td align="left">Same as tested</td> | |||
</tr> | ||||
<c>100Mbps</c> | <tr> | |||
<td align="left">Table index (step) size, rate > 10 Gbps</td> | ||||
<c>1Gbps<=rate<= 10Gbps</c> | <td align="left">1 Gbps</td> | |||
<td align="left">Untested</td> | ||||
<c>same as tested</c> | <td align="left">>10 Gbps</td> | |||
</tr> | ||||
<c>table index (step) size, rate>10Gbps</c> | <tr> | |||
<td align="left">ss, UDP payload size, bytes</td> | ||||
<c>1Gbps</c> | <td align="left">None</td> | |||
<td align="left"><=1222</td> | ||||
<c>untested</c> | <td align="left">Recommend max at largest value that avoids fragme | |||
ntation; using a payload size that is too small might result in unexpected Sende | ||||
<c>>10Gbps</c> | r | |||
limitations</td> | ||||
<c>ss, UDP payload size, bytes</c> | </tr> | |||
<tr> | ||||
<c>none</c> | <td align="left">cc, burst count</td> | |||
<td align="left">None</td> | ||||
<c><=1222</c> | <td align="left">1 <= cc <= 100</td> | |||
<td align="left">Same as tested. Vary cc as needed to create the d | ||||
<c>Recommend max at largest value that avoids fragmentation; use of | esired maximum | |||
too-small payload size might result in unexpected sender | sending rate. Sender buffer size may limit cc in the implementation</t | |||
limitations.</c> | d> | |||
</tr> | ||||
<c>cc, burst count</c> | <tr> | |||
<td align="left">tt, burst interval</td> | ||||
<c>none</c> | <td align="left">100 microsec</td> | |||
<td align="left">100 microsec, 1 msec</td> | ||||
<c>1<=cc<= 100</c> | <td align="left">Available range of "tick" values (HZ param)</td> | |||
</tr> | ||||
<c>same as tested. Vary cc as needed to create the desired maximum | <tr> | |||
sending rate. Sender buffer size may limit cc in implementation.</c> | <td align="left">Low delay range threshold</td> | |||
<td align="left">30 msec</td> | ||||
<c>tt, burst interval</c> | <td align="left">5 msec, 30 msec</td> | |||
<td align="left">Same as tested</td> | ||||
<c>100microsec</c> | </tr> | |||
<tr> | ||||
<c>100microsec, 1msec</c> | <td align="left">High delay range threshold</td> | |||
<td align="left">90 msec</td> | ||||
<c>available range of "tick" values (HZ param)</c> | <td align="left">10 msec, 90 msec</td> | |||
<td align="left">Same as tested</td> | ||||
<c>low delay range threshold</c> | </tr> | |||
<tr> | ||||
<c>30ms</c> | <td align="left">Sequence error threshold</td> | |||
<td align="left">10</td> | ||||
<c>5ms, 30ms</c> | <td align="left">0, 1, 5, 10, 100</td> | |||
<td align="left">Same as tested</td> | ||||
<c>same as tested</c> | </tr> | |||
<tr> | ||||
<c>high delay range threshold</c> | <td align="left">Consecutive errored status report threshold</td> | |||
<td align="left">3</td> | ||||
<c>90ms</c> | <td align="left">2, 3, 4, 5</td> | |||
<td align="left">Use values >1 to avoid misinterpreting transie | ||||
<c>10ms, 90ms</c> | nt loss</td> | |||
</tr> | ||||
<c>same as tested</c> | <tr> | |||
<td align="left">Fast mode increase, in table index steps</td> | ||||
<c>sequence error threshold</c> | <td align="left">10</td> | |||
<td align="left">10</td> | ||||
<c>0</c> | <td align="left">2 <= steps <= 30</td> | |||
</tr> | ||||
<c>0, 100</c> | <tr> | |||
<td align="left">Fast mode decrease, in table index steps</td> | ||||
<c>same as tested</c> | <td align="left">3 * Fast mode increase</td> | |||
<td align="left">3 * Fast mode increase</td> | ||||
<c>consecutive errored status report threshold</c> | <td align="left">Same as tested</td> | |||
</tr> | ||||
<c>2</c> | </tbody> | |||
</table> | ||||
<c>2</c> | ||||
<c>Use values >1 to avoid misinterpreting transient loss</c> | ||||
<c>Fast mode increase, in table index steps</c> | ||||
<c>10</c> | ||||
<c>10</c> | ||||
<c>2 <= steps <= 30</c> | ||||
<c>Fast mode decrease, in table index steps</c> | ||||
<c>3 * Fast mode increase</c> | ||||
<c>3 * Fast mode increase</c> | ||||
<c>same as tested</c> | ||||
</texttable> | ||||
<t>As a consequence of default parameterization, the Number of table | <t>As a consequence of default parameterization, the Number of table | |||
steps in total for rates <10Gbps is 2000 (excluding index 0).</t> | steps in total for rates less than 10 Gbps is 1090 (excluding index 0).< | |||
/t> | ||||
<t>A related sender backoff response to network conditions occurs when | <t>A related Sender backoff response to network conditions occurs when | |||
one or more status feedback messages fail to arrive at the sender.</t> | one or more status feedback messages fail to arrive at the Sender.</t> | |||
<t>If no status feedback messages arrive at the Sender for the | ||||
<t>If no status feedback messages arrive at the sender for the | ||||
interval greater than the Lost Status Backoff timeout:</t> | interval greater than the Lost Status Backoff timeout:</t> | |||
<artwork name="" type="ascii-art" align="left" alt=""><![CDATA[ | ||||
<t><figure> | UDRT + (2+w)*FT = Lost Status Backoff timeout | |||
<artwork><![CDATA[ UDRT + (2+w)*FT = Lost Status Backoff t | ||||
imeout | ||||
where: | where: | |||
UDRT = upper delay range threshold (default 90ms) | ||||
FT = feedback time interval (default 50ms) | UDRT = upper delay range threshold (default 90 msec) | |||
FT = feedback time interval (default 50 msec) | ||||
w = number of repeated timeouts (w=0 initially, w++ on each | w = number of repeated timeouts (w=0 initially, w++ on each | |||
timeout, and reset to 0 when a message is received) | timeout, and reset to 0 when a message is received) | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | <t>Beginning when the last message (of any type) was successfully | |||
received at the Sender:</t> | ||||
<t>beginning when the last message (of any type) was successfully | <t>The offered load <bcp14>SHALL</bcp14> then be decreased, following th | |||
received at the sender:</t> | e same | |||
process as when the feedback indicates the presence of one or more | ||||
<t>Then the offered load SHALL be decreased, following the same | ||||
process as when the feedback indicates presence of one or more | ||||
sequence number anomalies OR the delay range was above the upper | sequence number anomalies OR the delay range was above the upper | |||
threshold (as described above), with the same load rate adjustment | threshold (as described above), with the same load rate adjustment | |||
algorithm variables in their current state. This means that rate | algorithm variables in their current state. This means that lost status | |||
reduction and congestion confirmation can result from a three-way OR | feedback messages OR sequence errors OR delay variation can result in rate reduc | |||
that includes lost status feedback messages, sequence errors, or delay | tion and congestion confirmation.</t> | |||
variation.</t> | <t>The <bcp14>RECOMMENDED</bcp14> initial value for w is 0, taking a Rou | |||
nd-Trip Time | ||||
<t>The RECOMMENDED initial value for w is 0, taking Round Trip Time | (RTT) of less than FT into account. A test with an RTT longer than FT is | |||
(RTT) less than FT into account. A test with RTT longer than FT is a | a | |||
valid reason to increase the initial value of w appropriately. | valid reason to increase the initial value of w appropriately. | |||
Variable w SHALL be incremented by 1 whenever the Lost Status Backoff | Variable w <bcp14>SHALL</bcp14> be incremented by one whenever the Lost | |||
timeout is exceeded. So with FT = 50ms and UDRT = 90ms, a status | Status Backoff | |||
feedback message loss would be declared at 190ms following a | timeout is exceeded. So, with FT = 50 msec and UDRT = 90 msec, a status | |||
successful message, again at 50ms after that (240ms total), and so | feedback message loss would be declared at 190 msec following a | |||
successful message, again at 50 msec after that (240 msec total), and so | ||||
on.</t> | on.</t> | |||
<t>Also, if congestion is now confirmed for the first time by a Lost | <t>Also, if congestion is now confirmed for the first time by a Lost | |||
Status Backoff timeout, then the offered load rate is decreased by | Status Backoff timeout, then the offered load rate is decreased by | |||
more than one rate (e.g., Rx-30). This one-time reduction is intended | more than one rate setting (e.g., Rx-30). This one-time reduction is int ended | |||
to compensate for the fast initial ramp-up. In all other cases, the | to compensate for the fast initial ramp-up. In all other cases, the | |||
offered load rate is only decreased by one (Rx-1).</t> | offered load rate is only decreased by one (Rx-1).</t> | |||
<t><xref target="app-b-rfc8085-udp"/> discusses compliance with the appl | ||||
<t>Appendix B discusses compliance with the applicable mandatory | icable mandatory | |||
requirements of <xref target="RFC8085"/>, consistent with the goals of | requirements of <xref target="RFC8085" format="default"/>, consistent wi | |||
th the goals of | ||||
the IP-Layer Capacity Metric and Method, including the load rate | the IP-Layer Capacity Metric and Method, including the load rate | |||
adjustment algorithm described in this section.</t> | adjustment algorithm described in this section.</t> | |||
</section> | </section> | |||
<section anchor="meas-qual-verif" numbered="true" toc="default"> | ||||
<section title="Measurement Qualification or Verification"> | <name>Measurement Qualification or Verification</name> | |||
<t>It is of course necessary to calibrate the equipment performing the | <t>It is of course necessary to calibrate the equipment performing the | |||
IP-Layer Capacity measurement, to ensure that the expected capacity | IP-Layer Capacity measurement, to ensure that the expected capacity | |||
can be measured accurately, and that equipment choices (processing | can be measured accurately and that equipment choices (processing | |||
speed, interface bandwidth, etc.) are suitably matched to the | speed, interface bandwidth, etc.) are suitably matched to the | |||
measurement range.</t> | measurement range.</t> | |||
<t>When assessing a maximum rate as the metric specifies, artificially | ||||
<t>When assessing a Maximum rate as the metric specifies, artificially | ||||
high (optimistic) values might be measured until some buffer on the | high (optimistic) values might be measured until some buffer on the | |||
path is filled. Other causes include bursts of back-to-back packets | path is filled. Other causes include bursts of back-to-back packets | |||
with idle intervals delivered by a path, while the measurement | with idle intervals delivered by a path, while the measurement | |||
interval (dt) is small and aligned with the bursts. The artificial | interval (dt) is small and aligned with the bursts. The artificial | |||
values might result in an un-sustainable Maximum Capacity observed | values might result in an unsustainable Maximum Capacity observed | |||
when the method of measurement is searching for the Maximum, and that | when the Method of Measurement is searching for the maximum, and that | |||
would not do. This situation is different from the bi-modal service | would not do. This situation is different from the bimodal service | |||
rates (discussed under Reporting), which are characterized by a | rates (discussed in "<xref target="sec6-6-rpt-the-metric" format="title" | |||
/>", <xref target="sec6-6-rpt-the-metric" format="default"/>), which are charact | ||||
erized by a | ||||
multi-second duration (much longer than the measured RTT) and | multi-second duration (much longer than the measured RTT) and | |||
repeatable behavior.</t> | repeatable behavior.</t> | |||
<t>There are many ways that the Method of Measurement could handle | <t>There are many ways that the Method of Measurement could handle | |||
this false-max issue. The default value for measurement of singletons | this false-max issue. The default value for measurement of Singletons | |||
(dt = 1 second) has proven to be of practical value during tests of | (dt = 1 second) has proven to be of practical value during tests of | |||
this method, allows the bimodal service rates to be characterized, and | this method, allows the bimodal service rates to be characterized, and | |||
it has an obvious alignment with the reporting units (Mbps).</t> | has an obvious alignment with the reporting units (Mbps).</t> | |||
<t>Another approach comes from <xref target="RFC2544" sectionFormat="of" | ||||
<t>Another approach comes from Section 24 of <xref target="RFC2544"/> | section="24"/> | |||
and its discussion of Trial duration, where relatively short trials | and its discussion of trial duration, where relatively short trials | |||
conducted as part of the search are followed by longer trials to make | conducted as part of the search are followed by longer trials to make | |||
the final determination. In the production network, measurements of | the final determination. In the production network, measurements of | |||
Singletons and Samples (the terms for trials and tests of Lab | Singletons and Samples (the terms for trials and tests of Lab | |||
Benchmarking) must be limited in duration because they may be | Benchmarking) must be limited in duration because they may affect | |||
service-affecting. But there is sufficient value in repeating a Sample | service. But there is sufficient value in repeating a Sample | |||
with a fixed sending rate determined by the previous search for the | with a fixed sending rate determined by the previous search for the | |||
Maximum IP-Layer Capacity, to qualify the result in terms of the other | Maximum IP-Layer Capacity, to qualify the result in terms of the other | |||
performance metrics measured at the same time.</t> | performance metrics measured at the same time.</t> | |||
<t>A Qualification measurement for the search result is a subsequent | ||||
<t>A qualification measurement for the search result is a subsequent | measurement, sending at a fixed 99.x percent of the Maximum IP-Layer | |||
measurement, sending at a fixed 99.x % of the Maximum IP-Layer | ||||
Capacity for I, or an indefinite period. The same Maximum Capacity | Capacity for I, or an indefinite period. The same Maximum Capacity | |||
Metric is applied, and the Qualification for the result is a Sample | Metric is applied, and the Qualification for the result is a Sample | |||
without packet loss or a growing minimum delay trend in subsequent | without supra-threshold packet losses or a growing minimum delay trend i | |||
singletons (or each dt of the measurement interval, I). Samples | n subsequent | |||
exhibiting losses or increasing queue occupation require a repeated | Singletons (or each dt of the measurement interval, I). Samples | |||
search and/or test at reduced fixed sender rate for qualification.</t> | exhibiting supra-threshold packet losses or increasing queue occupation | |||
require a repeated | ||||
search and/or test at a reduced fixed Sender rate for Qualification.</t> | ||||
<t>Here, as with any Active Capacity test, the test duration must be | <t>Here, as with any Active Capacity test, the test duration must be | |||
kept short. 10 second tests for each direction of transmission are | kept short. Ten-second tests for each direction of transmission are | |||
common today. The default measurement interval specified here is I = | common today. The default measurement interval specified here is I = | |||
10 seconds. The combination of a fast and congestion-aware search | 10 seconds. The combination of a fast and congestion-aware search | |||
method and user-network coordination make a unique contribution to | method and user-network coordination makes a unique contribution to | |||
production testing. The Maximum IP Capacity metric and method for | production testing. The Maximum IP Capacity Metric and Method for | |||
assessing performance is very different from classic <xref | assessing performance is very different from the classic Throughput Metr | |||
target="RFC2544"/> Throughput metric and methods : it uses | ic and Methods provided in <xref target="RFC2544" format="default"/>: it uses | |||
near-real-time load adjustments that are sensitive to loss and delay, | near-real-time load adjustments that are sensitive to loss and delay, | |||
similar to other congestion control algorithms used on the Internet | similar to other congestion control algorithms used on the Internet | |||
every day, along with limited duration. On the other hand, <xref | every day, along with limited duration. On the other hand, Throughput me | |||
target="RFC2544"/> Throughput measurements can produce sustained | asurements <xref target="RFC2544" format="default"/> can produce sustained | |||
overload conditions for extended periods of time. Individual trials in | overload conditions for extended periods of time. Individual trials in | |||
a test governed by a binary search can last 60 seconds for each step, | a test governed by a binary search can last 60 seconds for each step, | |||
and the final confirmation trial may be even longer. This is very | and the final confirmation trial may be even longer. This is very | |||
different from "normal" traffic levels, but overload conditions are | different from "normal" traffic levels, but overload conditions are | |||
not a concern in the isolated test environment. The concerns raised in | not a concern in the isolated test environment. The concerns raised in | |||
<xref target="RFC6815"/> were that <xref target="RFC2544"/> methods | <xref target="RFC6815" format="default"/> were that the methods discusse | |||
would be let loose on production networks, and instead the authors | d in <xref target="RFC2544" format="default"/> would be let loose on production | |||
challenged the standards community to develop metrics and methods like | networks, and instead the authors | |||
challenged the standards community to develop Metrics and Methods like | ||||
those described in this memo.</t> | those described in this memo.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Measurement Considerations"> | <name>Measurement Considerations</name> | |||
<t>In general, the wide-spread measurements that this memo encourages | <t>In general, the widespread measurements that this memo encourages | |||
will encounter wide-spread behaviors. The bimodal IP Capacity | will encounter widespread behaviors. The bimodal IP Capacity | |||
behaviors already discussed in Section 6.6 are good examples.</t> | behaviors already discussed in <xref target="sec6-6-rpt-the-metric"/> ar | |||
e good examples.</t> | ||||
<t>In general, it is RECOMMENDED to locate test endpoints as close to | <t>In general, it is <bcp14>RECOMMENDED</bcp14> to locate test endpoints | |||
the intended measured link(s) as practical (this is not always | as close to | |||
possible for reasons of scale; there is a limit on number of test | the intended measured link(s) as practical (for reasons of scale, this i | |||
endpoints coming from many perspectives, management and measurement | s not always possible; there is a limit on the number of test | |||
traffic for example). The testing operator MUST set a value for the | endpoints coming from many perspectives -- for example, management and m | |||
MaxHops parameter, based on the expected path length. This parameter | easurement traffic). The testing operator <bcp14>MUST</bcp14> set a value for th | |||
e | ||||
MaxHops Parameter, based on the expected path length. This Parameter | ||||
can keep measurement traffic from straying too far beyond the intended | can keep measurement traffic from straying too far beyond the intended | |||
path.</t> | path.</t> | |||
<t>The measured path may be stateful based on many factors, and the | ||||
<t>The path measured may be stateful based on many factors, and the | ||||
Parameter "Time of day" when a test starts may not be enough | Parameter "Time of day" when a test starts may not be enough | |||
information. Repeatable testing may require the time from the | information. Repeatable testing may require knowledge of the time from t | |||
beginning of a measured flow, and how the flow is constructed | he | |||
beginning of a measured flow -- and how the flow is constructed, | ||||
including how much traffic has already been sent on that flow when a | including how much traffic has already been sent on that flow when a | |||
state-change is observed, because the state-change may be based on | state change is observed -- because the state change may be based on | |||
time or bytes sent or both. Both load packets and status feedback | time, bytes sent, or both. Both load packets and status feedback | |||
messages MUST contain sequence numbers, which helps with measurements | messages <bcp14>MUST</bcp14> contain sequence numbers; this helps with m | |||
easurements | ||||
based on those packets.</t> | based on those packets.</t> | |||
<t>Many different types of traffic shapers and on-demand | <t>Many different types of traffic shapers and on-demand | |||
communications access technologies may be encountered, as anticipated | communications access technologies may be encountered, as anticipated | |||
in <xref target="RFC7312"/>, and play a key role in measurement | in <xref target="RFC7312" format="default"/>, and play a key role in mea | |||
results. Methods MUST be prepared to provide a short preamble | surement | |||
transmission to activate on-demand communications access, and to | results. Methods <bcp14>MUST</bcp14> be prepared to provide a short prea | |||
mble | ||||
transmission to activate on-demand communications access and to | ||||
discard the preamble from subsequent test results.</t> | discard the preamble from subsequent test results.</t> | |||
<t>The following conditions might be encountered during measurement, whe | ||||
<t>Conditions which might be encountered during measurement, where | re | |||
packet losses may occur independently of the measurement sending | packet losses may occur independently of the measurement sending | |||
rate:</t> | rate:</t> | |||
<ol spacing="normal" type="1"><li>Congestion of an interconnection or ba | ||||
<t><list style="numbers"> | ckbone interface may | |||
<t>Congestion of an interconnection or backbone interface may | ||||
appear as packet losses distributed over time in the test stream, | appear as packet losses distributed over time in the test stream, | |||
due to much higher rate interfaces in the backbone.</t> | due to much-higher-rate interfaces in the backbone.</li> | |||
<li>Packet loss due to the use of Random Early Detection (RED) or othe | ||||
<t>Packet loss due to use of Random Early Detection (RED) or other | r | |||
active queue management may or may not affect the measurement flow | active queue management may or may not affect the measurement flow | |||
if competing background traffic (other flows) are simultaneously | if competing background traffic (other flows) is simultaneously | |||
present.</t> | present.</li> | |||
<li>There may be only a small delay variation independent of the sendi | ||||
<t>There may be only small delay variation independent of sending | ng | |||
rate under these conditions, too.</t> | rate under these conditions as well.</li> | |||
<li>Persistent competing traffic on measurement paths that include | ||||
<t>Persistent competing traffic on measurement paths that include | ||||
shared transmission media may cause random packet losses in the | shared transmission media may cause random packet losses in the | |||
test stream.</t> | test stream.</li> | |||
</list>It is possible to mitigate these conditions using the | </ol> | |||
flexibility of the load-rate adjusting algorithm described in Section | <t>It is possible to mitigate these conditions using the | |||
8.1 above (tuning specific parameters).</t> | flexibility of the load rate adjustment algorithm described in | |||
<xref target="load-rate-adj"/> above (tuning specific Parameters).</t> | ||||
<t>If the measurement flow burst duration happens to be on the order | <t>If the measurement flow burst duration happens to be on the order | |||
of or smaller than the burst size of a shaper or a policer in the | of or smaller than the burst size of a shaper or a policer in the | |||
path, then the line rate might be measured rather than the bandwidth | path, then the line rate might be measured rather than the bandwidth | |||
limit imposed by the shaper or policer. If this condition is | limit imposed by the shaper or policer. If this condition is | |||
suspected, alternate configurations SHOULD be used.</t> | suspected, alternate configurations <bcp14>SHOULD</bcp14> be used.</t> | |||
<t>In general, results depend on the sending stream's characteristics; | ||||
<t>In general, results depend on the sending stream characteristics; | the measurement community has known this for a long time and needs to | |||
the measurement community has known this for a long time, and needs to | keep it foremost in mind. Although the default is a single flow (F=1) fo | |||
keep it front of mind. Although the default is a single flow (F=1) for | r | |||
testing, use of multiple flows may be advantageous for the following | testing, the use of multiple flows may be advantageous for the following | |||
reasons:</t> | reasons:</t> | |||
<ol spacing="normal" type="1"><li>The test hosts may be able to create a | ||||
<t><list style="numbers"> | higher load than with a | |||
<t>the test hosts may be able to create higher load than with a | single flow, or parallel test hosts may be used to generate one flow | |||
single flow, or parallel test hosts may be used to generate 1 flow | each.</li> | |||
each.</t> | <li>Link aggregation may be present (flow-based load balancing), and m | |||
ultiple flows are needed to occupy each member of | ||||
<t>there may be link aggregation present (flow-based load | the aggregate.</li> | |||
balancing) and multiple flows are needed to occupy each member of | <li>Internet access policies may limit the IP-Layer Capacity | |||
the aggregate.</t> | depending on the Type-P of the packets, possibly reserving capacity | |||
for various stream types.</li> | ||||
<t>Internet access policies may limit the IP-Layer Capacity | </ol> | |||
depending on the Type-P of packets, possibly reserving capacity | <t>Each flow would be controlled using its own implementation of | |||
for various stream types.</t> | ||||
</list>Each flow would be controlled using its own implementation of | ||||
the load rate adjustment (search) algorithm.</t> | the load rate adjustment (search) algorithm.</t> | |||
<t>It is obviously counterproductive to run more than one independent | ||||
<t>It is obviously counter-productive to run more than one independent | ||||
and concurrent test (regardless of the number of flows in the test | and concurrent test (regardless of the number of flows in the test | |||
stream) attempting to measure the *maximum* capacity on a single path. | stream) attempting to measure the <strong>maximum</strong> capacity on a | |||
The number of concurrent, independent tests of a path SHALL be limited | single path. | |||
The number of concurrent, independent tests of a path <bcp14>SHALL</bcp1 | ||||
4> be limited | ||||
to one.</t> | to one.</t> | |||
<t>Tests of a v4-v6 transition mechanism might well be the intended | <t>Tests of a v4-v6 transition mechanism might well be the intended | |||
subject of a capacity test. As long as the IPv4 and IPv6 packets | subject of a capacity test. As long as both IPv4 packets and IPv6 packet | |||
sent/received are both standard-formed, this should be allowed (and | s | |||
sent/received are standard-formed, this should be allowed (and | ||||
the change in header size easily accounted for on a per-packet | the change in header size easily accounted for on a per-packet | |||
basis).</t> | basis).</t> | |||
<t>As testing continues, implementers should expect the methods to evolv | ||||
<t>As testing continues, implementers should expect some evolution in | e. The ITU-T has published a supplement (Supplement 60) to the Y-series | |||
the methods. The ITU-T has published a Supplement (60) to the Y-series | of ITU-T Recommendations, "Interpreting ITU-T Y.1540 maximum IP-layer | |||
of Recommendations, "Interpreting ITU-T Y.1540 Maximum IP-Layer | capacity measurements" <xref target="Y.Sup60" format="default"/>, which | |||
Capacity measurements", <xref target="Y.Sup60"/>, which is the result | is the result | |||
of continued testing with the metric, and those results have improved | of continued testing with the metric. Those results have improved | |||
the method described here.</t> | the methods described here.</t> | |||
</section> | ||||
<section title="Running Code"> | ||||
<t>RFC Editor: This section is for the benefit of the Document | ||||
Shepherd's form, and will be deleted prior to publication.</t> | ||||
<t>Much of the development of the method and comparisons with existing | ||||
methods conducted at IETF Hackathons and elsewhere have been based on | ||||
the example udpst Linux measurement tool (which is a working reference | ||||
for further development) <xref target="udpst"/>. The current | ||||
project:<list style="symbols"> | ||||
<t>is a utility that can function as a client or server daemon</t> | ||||
<t>requires a successful client-initiated setup handshake between | ||||
cooperating hosts and allows firewalls to control inbound | ||||
unsolicited UDP which either go to a control port [expected and | ||||
w/authentication] or to ephemeral ports that are only created as | ||||
needed. Firewalls protecting each host can both continue to do | ||||
their job normally. This aspect is similar to many other test | ||||
utilities available.</t> | ||||
<t>is written in C, and built with gcc (release 9.3) and its | ||||
standard run-time libraries</t> | ||||
<t>allows configuration of most of the parameters described in | ||||
Sections 4 and 7.</t> | ||||
<t>supports IPv4 and IPv6 address families.</t> | ||||
<t>supports IP-Layer packet marking.</t> | ||||
</list></t> | ||||
<t/> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="rpt-formats" numbered="true" toc="default"> | ||||
<section title="Reporting Formats"> | <name>Reporting Formats</name> | |||
<t>The singleton IP-Layer Capacity results SHOULD be accompanied by the | <t>The Singleton IP-Layer Capacity results <bcp14>SHOULD</bcp14> be accomp | |||
context under which they were measured.<list style="symbols"> | anied by the | |||
<t>timestamp (especially the time when the maximum was observed in | context under which they were measured.</t> | |||
dtn)</t> | <ul spacing="normal"> | |||
<li>Timestamp (especially the time when the maximum was observed in | ||||
<t>Source and Destination (by IP or other meaningful ID)</t> | dtn).</li> | |||
<li>Source and Destination (by IP or other meaningful ID).</li> | ||||
<t>other inner parameters of the test case (Section 4)</t> | <li>Other inner Parameters of the test case (<xref target="gen-params-de | |||
fs"/>).</li> | ||||
<t>outer parameters, such as "test conducted in motion" or other | <li>Outer Parameters, such as "test conducted in motion" or other | |||
factors belonging to the context of the measurement</t> | factors belonging to the context of the measurement.</li> | |||
<li>Result validity (indicating cases where the process was somehow | ||||
<t>result validity (indicating cases where the process was somehow | interrupted or the attempt failed).</li> | |||
interrupted or the attempt failed)</t> | <li>A field where unusual circumstances could be documented, and | |||
another one for "ignore / mask out" purposes in further processing.</l | ||||
<t>a field where unusual circumstances could be documented, and | i> | |||
another one for "ignore/mask out" purposes in further processing</t> | </ul> | |||
</list></t> | <t>The Maximum IP-Layer Capacity results <bcp14>SHOULD</bcp14> be reported | |||
in tabular | ||||
<t>The Maximum IP-Layer Capacity results SHOULD be reported in the | format. There <bcp14>SHOULD</bcp14> be a column that identifies the test Phase | |||
format of a table with a row for each of the test Phases and Number of | . | |||
Flows. There SHOULD be columns for the phases with number of flows, and | There <bcp14>SHOULD</bcp14> be a column listing the number of flows used in th | |||
for the resultant Maximum IP-Layer Capacity results for the aggregate | at Phase. | |||
and each flow tested.</t> | The remaining columns <bcp14>SHOULD</bcp14> report the following results for t | |||
he aggregate | ||||
<t>As mentioned in Section 6.6, bi-modal (or multi-modal) maxima SHALL | of all flows, including the Maximum IP-Layer Capacity, the Loss Ratio, | |||
the RTT minimum, RTT maximum, and other metrics tested having similar | ||||
relevance.</t> | ||||
<t>As mentioned in <xref target="sec6-6-rpt-the-metric"/>, bimodal (or mul | ||||
ti-modal) maxima <bcp14>SHALL</bcp14> | ||||
be reported for each mode separately.</t> | be reported for each mode separately.</t> | |||
<table align="center"> | ||||
<texttable style="all" title="Maximum IP-layer Capacity Results"> | <name>Maximum IP-Layer Capacity Results</name> | |||
<ttcol>Phase, # Flows</ttcol> | <thead> | |||
<tr> | ||||
<ttcol>Maximum IP-Layer Capacity, Mbps</ttcol> | <th align="left">Phase</th> | |||
<th align="left">Number of Flows</th> | ||||
<ttcol>Loss Ratio</ttcol> | <th align="left">Maximum IP-Layer Capacity (Mbps)</th> | |||
<th align="left">Loss Ratio</th> | ||||
<ttcol>RTT min, max, msec</ttcol> | <th align="left">RTT min (msec)</th> | |||
<th align="left">RTT max (msec)</th> | ||||
<c>Search,1</c> | </tr> | |||
</thead> | ||||
<c>967.31</c> | <tbody> | |||
<tr> | ||||
<c>0.0002</c> | <td align="left">Search</td> | |||
<td align="left">1</td> | ||||
<c>30, 58</c> | <td align="left">967.31</td> | |||
<td align="left">0.0002</td> | ||||
<c>Verify,1</c> | <td align="left">30</td> | |||
<td align="left">58</td> | ||||
<c>966.00</c> | </tr> | |||
<tr> | ||||
<c>0.0000</c> | <td align="left">Verify</td> | |||
<td align="left">1</td> | ||||
<c>30, 38</c> | <td align="left">966.00</td> | |||
</texttable> | <td align="left">0.0000</td> | |||
<td align="left">30</td> | ||||
<t>Static and configuration parameters:</t> | <td align="left">38</td> | |||
</tr> | ||||
<t>The sub-interval time, dt, MUST accompany a report of Maximum | </tbody> | |||
IP-Layer Capacity results, and the remaining Parameters from Section 4, | </table> | |||
General Parameters.</t> | <t>Static and configuration Parameters:</t> | |||
<t>The sub-interval time, dt, <bcp14>MUST</bcp14> accompany a report of Ma | ||||
ximum | ||||
IP-Layer Capacity results, as well as the remaining Parameters from <xref | ||||
target="gen-params-defs"/> ("General Parameters and Definitions").</t> | ||||
<t>The PM list metrics corresponding to the sub-interval where the | <t>The PM list metrics corresponding to the sub-interval where the | |||
Maximum Capacity occurred MUST accompany a report of Maximum IP-Layer | Maximum Capacity occurred <bcp14>MUST</bcp14> accompany a report of Maximu | |||
Capacity results, for each test phase.</t> | m IP-Layer | |||
Capacity results, for each test Phase.</t> | ||||
<t>The IP-Layer Sender Bit rate results SHOULD be reported in the format | <t>The IP-Layer Sender Bit Rate results <bcp14>SHOULD</bcp14> be reported | |||
of a table with a row for each of the test phases, sub-intervals (st) | in tabular format. | |||
and number of flows. There SHOULD be columns for the phases with number | There <bcp14>SHOULD</bcp14> be a column that identifies the test Phase. | |||
of flows, and for the resultant IP-Layer Sender Bit rate results for the | There <bcp14>SHOULD</bcp14> be a column listing each individual (numbered) flo | |||
aggregate and each flow tested.</t> | w used | |||
in that Phase, or the aggregate of flows in that Phase. A corresponding column | ||||
<texttable style="all" title="IP-layer Sender Bit Rate Results"> | <bcp14>SHOULD</bcp14> identify the | |||
<ttcol>Phase, Flow or Aggregate</ttcol> | specific sending rate sub-interval, stn, for each flow and aggregate. A final | |||
column <bcp14>SHOULD</bcp14> report the | ||||
<ttcol>st, sec</ttcol> | IP-Layer Sender Bit Rate results for each flow used, or the aggregate of all f | |||
lows.</t> | ||||
<ttcol>Sender Bitrate, Mbps</ttcol> | <table align="center"> | |||
<name>IP-Layer Sender Bit Rate Results (Example with Two Flows and st = | ||||
<c>Search,1</c> | 0.05 (sec))</name> | |||
<thead> | ||||
<c>0.00 - 0.05</c> | <tr> | |||
<th align="left">Phase</th> | ||||
<c>345</c> | <th align="left">Flow Number or Aggregate</th> | |||
<th align="left">stn (sec)</th> | ||||
<c>Search,2</c> | <th align="left">Sender Bit Rate (Mbps)</th> | |||
</tr> | ||||
<c>0.00 - 0.05</c> | </thead> | |||
<tbody> | ||||
<c>289</c> | <tr> | |||
<td align="left">Search</td> | ||||
<c>Search,Agg</c> | <td align="left">1</td> | |||
<td align="left">0.00</td> | ||||
<c>0.00 - 0.05</c> | <td align="left">345</td> | |||
</tr> | ||||
<c>634</c> | <tr> | |||
</texttable> | <td align="left">Search</td> | |||
<td align="left">2</td> | ||||
<t>Static and configuration parameters:</t> | <td align="left">0.00</td> | |||
<td align="left">289</td> | ||||
<t>The subinterval time, st, MUST accompany a report of Sender IP-Layer | </tr> | |||
<tr> | ||||
<td align="left">Search</td> | ||||
<td align="left">Agg</td> | ||||
<td align="left">0.00</td> | ||||
<td align="left">634</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">Search</td> | ||||
<td align="left">1</td> | ||||
<td align="left">0.05</td> | ||||
<td align="left">499</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">Search</td> | ||||
<td align="left">...</td> | ||||
<td align="left">0.05</td> | ||||
<td align="left">...</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>Static and configuration Parameters:</t> | ||||
<t>The sub-interval duration, st, <bcp14>MUST</bcp14> accompany a report o | ||||
f Sender IP-Layer | ||||
Bit Rate results.</t> | Bit Rate results.</t> | |||
<t>Also, the values of the remaining Parameters from <xref target="gen-par | ||||
<t>Also, the values of the remaining Parameters from Section 4, General | ams-defs"/> ("General Parameters and Definitions") <bcp14>MUST</bcp14> be report | |||
Parameters, MUST be reported.</t> | ed.</t> | |||
<section numbered="true" toc="default"> | ||||
<t/> | <name>Configuration and Reporting Data Formats</name> | |||
<section title="Configuration and Reporting Data Formats"> | ||||
<t>As a part of the multi-Standards Development Organization (SDO) | <t>As a part of the multi-Standards Development Organization (SDO) | |||
harmonization of this metric and method of measurement, one of the | harmonization of this Metric and Method of Measurement, one of the | |||
areas where the Broadband Forum (BBF) contributed its expertise was in | areas where the Broadband Forum (BBF) contributed its expertise was in | |||
the definition of an information model and data model for | the definition of an information model and data model for | |||
configuration and reporting. These models are consistent with the | configuration and reporting. These models are consistent with the | |||
metric parameters and default values specified as lists is this memo. | metric Parameters and default values specified as lists in this memo. | |||
<xref target="TR-471"/> provides the Information model that was used | <xref target="TR-471" format="default"/> provides the information model | |||
that was used | ||||
to prepare a full data model in related BBF work. The BBF has also | to prepare a full data model in related BBF work. The BBF has also | |||
carefully considered topics within its purview, such as placement of | carefully considered topics within its purview, such as the placement of | |||
measurement systems within the Internet access architecture. For | measurement systems within the Internet access architecture. For | |||
example, timestamp resolution requirements that influence the choice | example, timestamp resolution requirements that influence the choice | |||
of the test protocol are provided in Table 2 of <xref | of the test protocol are provided in Table 2 of <xref target="TR-471" fo | |||
target="TR-471"/>.</t> | rmat="default"/>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-cons" numbered="true" toc="default"> | ||||
<section title="Security Considerations"> | <name>Security Considerations</name> | |||
<t>Active metrics and measurements have a long history of security | <t>Active Metrics and Active Measurements have a long history of security | |||
considerations. The security considerations that apply to any active | considerations. The security considerations that apply to any Active | |||
measurement of live paths are relevant here. See <xref | Measurement of live paths are relevant here. See <xref target="RFC4656" fo | |||
target="RFC4656"/> and <xref target="RFC5357"/>.</t> | rmat="default"/> and <xref target="RFC5357" format="default"/>.</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="RFC759 | |||
target="RFC7594"/>, which covers active and passive techniques.</t> | 4" format="default"/>, which covers active and passive techniques.</t> | |||
<t>There are some new considerations for Capacity measurement as | <t>There are some new considerations for Capacity measurement as | |||
described in this memo.</t> | described in this memo.</t> | |||
<ol spacing="normal" type="1"><li>Cooperating Source and Destination hosts | ||||
<t><list style="numbers"> | and agreements to test | |||
<t>Cooperating Source and Destination hosts and agreements to test | the path between the hosts are <bcp14>REQUIRED</bcp14>. Hosts perform | |||
the path between the hosts are REQUIRED. Hosts perform in either the | in either the | |||
Src or Dst roles.</t> | Src role or the Dst role.</li> | |||
<li>It is <bcp14>REQUIRED</bcp14> to have a user client-initiated setup | ||||
<t>It is REQUIRED to have a user client-initiated setup handshake | handshake | |||
between cooperating hosts that allows firewalls to control inbound | between cooperating hosts that allows firewalls to control inbound | |||
unsolicited UDP traffic which either goes to a control port | unsolicited UDP traffic that goes to either a control port | |||
[expected and w/authentication] or to ephemeral ports that are only | (expected and with authentication) or ephemeral ports that are only | |||
created as needed. Firewalls protecting each host can both continue | created as needed. Firewalls protecting each host can both continue | |||
to do their job normally.</t> | to do their job normally.</li> | |||
<li>Client-server authentication and integrity protection for | ||||
<t>Client-server authentication and integrity protection for | feedback messages conveying measurements are <bcp14>RECOMMENDED</bcp14 | |||
feedback messages conveying measurements is RECOMMENDED.</t> | >.</li> | |||
<li>Hosts <bcp14>MUST</bcp14> limit the number of simultaneous tests to | ||||
<t>Hosts MUST limit the number of simultaneous tests to avoid | avoid | |||
resource exhaustion and inaccurate results.</t> | resource exhaustion and inaccurate results.</li> | |||
<li>Senders <bcp14>MUST</bcp14> be rate limited. This can be accomplishe | ||||
<t>Senders MUST be rate-limited. This can be accomplished using a | d using a | |||
pre-built table defining all the offered load rates that will be | pre-built table defining all the offered load rates that will be | |||
supported (Section 8.1). The recommended load-control search | supported (<xref target="load-rate-adj"/>). The recommended load contr ol search | |||
algorithm results in "ramp-up" from the lowest rate in the | algorithm results in "ramp-up" from the lowest rate in the | |||
table.</t> | table.</li> | |||
<li>Service subscribers with limited data volumes who conduct | ||||
<t>Service subscribers with limited data volumes who conduct | ||||
extensive capacity testing might experience the effects of Service | extensive capacity testing might experience the effects of Service | |||
Provider controls on their service. Testing with the Service | Provider controls on their service. Testing with the Service | |||
Provider's measurement hosts SHOULD be limited in frequency and/or | Provider's measurement hosts <bcp14>SHOULD</bcp14> be limited in frequ ency and/or | |||
overall volume of test traffic (for example, the range of duration | overall volume of test traffic (for example, the range of duration | |||
values, I, SHOULD be limited).</t> | values, I, <bcp14>SHOULD</bcp14> be limited).</li> | |||
</list></t> | </ol> | |||
<t>The exact specification of these features is left for future | ||||
<t>The exact specification of these features is left for the future | ||||
protocol development.</t> | protocol development.</t> | |||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="default"> | ||||
<section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
<t>This memo makes no requests of IANA.</t> | <t>This document has no IANA actions.</t> | |||
</section> | </section> | |||
</middle> | ||||
<back> | ||||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2330.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7680.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8468.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6438.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4737.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4656.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2681.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.7497.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2544.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3148.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5136.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6815.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.7594.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7799.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8085.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8337.xml"/> | ||||
<section title="Acknowledgments"> | <reference anchor="copycat" target="https://irtf.org/anrw/2017/anrw17-fi | |||
<t>Thanks to Joachim Fabini, Matt Mathis, J.Ignacio Alvarez-Hamelin, | nal5.pdf"> | |||
Wolfgang Balzer, Frank Brockners, Greg Mirsky, Martin Duke, Murray | <front> | |||
Kucherawy, and Benjamin Kaduk for their extensive comments on the memo | <title>copycat: Testing Differential Treatment of New Transport | |||
and related topics. In a second round of reviews, we acknowledge Magnus | Protocols in the Wild</title> | |||
Westerlund, Lars Eggert, and Zahed Sarkar.</t> | <author fullname="Korian Edeline" initials="K." surname="Edeline"> | |||
</section> | <organization/> | |||
</author> | ||||
<author fullname="Mirja KĂ¼hlewind" initials="M." surname="KĂ¼hlewind" | ||||
> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="Brian Trammell" initials="B." surname="Trammell"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="Benoit Donnet" initials="B." surname="Donnet"> | ||||
<organization/> | ||||
</author> | ||||
<date month="July" year="2017"/> | ||||
</front> | ||||
<refcontent>ANRW '17</refcontent> | ||||
<seriesInfo name="DOI" value="10.1145/3106328.3106330"/> | ||||
</reference> | ||||
<section title="Appendix A - Load Rate Adjustment Pseudo Code"> | <reference anchor="Y.Sup60" target="https://www.itu.int/rec/T-REC-Y.Sup6 | |||
<t>The following is a pseudo-code implementation of the algorithm | 0/en"> | |||
described in Section 8.1.</t> | <front> | |||
<title>Interpreting ITU-T Y.1540 maximum IP-layer capacity measureme | ||||
nts</title> | ||||
<author> | ||||
<organization>ITU-T</organization> | ||||
</author> | ||||
<date month="October" year="2021"/> | ||||
</front> | ||||
<refcontent>ITU-T Recommendation Y.Sup60</refcontent> | ||||
</reference> | ||||
<reference anchor="TR-471" target="https://www.broadband-forum.org/techn | ||||
ical/download/TR-471.pdf"> | ||||
<front> | ||||
<title>Maximum IP-Layer Capacity Metric, Related Metrics, and Measur | ||||
ements</title> | ||||
<author fullname="Al Morton" initials="A." surname="Morton"> | ||||
<organization>AT&T Labs</organization> | ||||
</author> | ||||
<date month="July" year="2020"/> | ||||
</front> | ||||
<refcontent>Broadband Forum TR-471</refcontent> | ||||
</reference> | ||||
<reference anchor="Y.1540" target="https://www.itu.int/rec/T-REC-Y.1540- | ||||
201912-I/en"> | ||||
<front> | ||||
<title>Internet protocol data communication service - IP packet | ||||
transfer and availability performance parameters</title> | ||||
<author><organization>ITU-T</organization></author> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
<refcontent>ITU-T Recommendation Y.1540</refcontent> | ||||
</reference> | ||||
<reference anchor="LS-SG12-B" target="https://datatracker.ietf.org/liais | ||||
on/1645/"> | ||||
<front> | ||||
<title>Liaison statement: LS on harmonization of IP Capacity and Lat | ||||
ency Parameters: Consent of Draft Rec. Y.1540 on IP packet transfer performance | ||||
parameters and New Annex A with Lab & Field Evaluation Plans</title> | ||||
<author/> | ||||
<date month="May" year="2019"/> | ||||
</front> | ||||
<refcontent>From ITU-T-SG-12</refcontent> | ||||
</reference> | ||||
<reference anchor="LS-SG12-A" target="https://datatracker.ietf.org/liais | ||||
on/1632/"> | ||||
<front> | ||||
<title>Liaison statement: LS - Harmonization of IP Capacity and Late | ||||
ncy Parameters: Revision of Draft Rec. Y.1540 on IP packet transfer performance | ||||
parameters and New Annex A with Lab Evaluation Plan</title> | ||||
<author/> | ||||
<date month="March" year="2019"/> | ||||
</front> | ||||
<refcontent>From ITU-T SG 12</refcontent> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section anchor="app-a-load-rate-adj-pseudocode" numbered="true" toc="defaul | ||||
t"> | ||||
<name>Load Rate Adjustment Pseudocode</name> | ||||
<t>This appendix provides a pseudocode implementation of the algorithm | ||||
described in <xref target="load-rate-adj"/>.</t> | ||||
<sourcecode name="pseudocode-for-algorithm" type="pseudocode"><![CDATA[ | ||||
Rx = 0 # The current sending rate (equivalent to a row | ||||
# of the table) | ||||
seqErr = 0 # Measured count that includes Loss or Reordering | ||||
# or Duplication impairments (all appear | ||||
# initially as errors in the packet sequence | ||||
# numbering) | ||||
seqErrThresh = 10 # Threshold on seqErr count that includes Loss or | ||||
# Reordering or Duplication impairments (all | ||||
# appear initially as errors in the packet | ||||
# sequence numbering) | ||||
delay = 0 # Measured Range of Round Trip Delay (RTD), msec | ||||
lowThresh = 30 # Low threshold on the Range of RTD, msec | ||||
upperThresh = 90 # Upper threshold on the Range of RTD, msec | ||||
hSpeedThresh = 1 # Threshold for transition between sending rate | ||||
# step sizes (such as 1 Mbps and 100 Mbps), Gbps | ||||
slowAdjCount = 0 # Measured Number of consecutive status reports | ||||
# indicating loss and/or delay variation above | ||||
# upperThresh | ||||
slowAdjThresh = 3 # Threshold on slowAdjCount used to infer | ||||
# congestion. Use values > 1 to avoid | ||||
# misinterpreting transient loss. | ||||
highSpeedDelta = 10 # The number of rows to move in a single | ||||
# adjustment when initially increasing offered | ||||
# load (to ramp up quickly) | ||||
<t><figure> | ||||
<artwork><![CDATA[Rx = 0 # The current sending rate (equivalent to a | ||||
row of the table) | ||||
seqErr = 0 # Measured count of any of Loss or Reordering impairments | ||||
delay = 0 # Measured Range of Round Trip Delay, RTD, ms | ||||
lowThresh = 30 # Low threshold on the Range of RTD, ms | ||||
upperThresh = 90 # Upper threshold on the Range of RTD, ms | ||||
hSpeedTresh = 1 Gbps # Threshold for transition between sending rate step | ||||
sizes (such as 1 Mbps and 100 Mbps) | ||||
slowAdjCount = 0 # Measured Number of consecutive status reports | ||||
indicating loss and/or delay variation above upperThresh | ||||
slowAdjThresh = 2 # Threshold on slowAdjCount used to infer congestion. | ||||
Use values >1 to avoid misinterpreting transient loss | ||||
highSpeedDelta = 10 # The number of rows to move in a single adjustment | ||||
when initially increasing offered load (to ramp-up quickly) | ||||
maxLoadRates = 2000 # Maximum table index (rows) | maxLoadRates = 2000 # Maximum table index (rows) | |||
if ( seqErr == 0 && delay < lowThresh ) { | if ( seqErr <= seqErrThresh && delay < lowThresh ) { | |||
if ( Rx < hSpeedTresh && slowAdjCount < slowAdjThresh ) { | if ( Rx < hSpeedThresh && slowAdjCount < slowAdjThresh ) { | |||
Rx += highSpeedDelta; | Rx += highSpeedDelta; | |||
slowAdjCount = 0; | slowAdjCount = 0; | |||
} else { | } else { | |||
if ( Rx < maxLoadRates - 1 ) | if ( Rx < maxLoadRates - 1 ) | |||
Rx++; | Rx++; | |||
} | } | |||
} else if ( seqErr > 0 || delay > upperThresh ) { | } else if ( seqErr > seqErrThresh || delay > upperThresh ) { | |||
slowAdjCount++; | slowAdjCount++; | |||
if ( Rx < hSpeedTresh && slowAdjCount == slowAdjThresh ) { | if ( Rx < hSpeedThresh && slowAdjCount == slowAdjThresh ) { | |||
if ( Rx > highSpeedDelta * 3 ) | if ( Rx > highSpeedDelta * 3 ) | |||
Rx -= highSpeedDelta * 3; | Rx -= highSpeedDelta * 3; | |||
else | else | |||
Rx = 0; | Rx = 0; | |||
} else { | } else { | |||
if ( Rx > 0 ) | if ( Rx > 0 ) | |||
Rx--; | Rx--; | |||
} | } | |||
} | } | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | ||||
<t/> | ||||
</section> | </section> | |||
<section anchor="app-b-rfc8085-udp" numbered="true" toc="default"> | ||||
<section title="Appendix B - RFC 8085 UDP Guidelines Check"> | <name>RFC 8085 UDP Guidelines Check</name> | |||
<t>The BCP on UDP usage guidelines <xref target="RFC8085"/> focuses | <t><xref target="RFC8085" sectionFormat="of" section="3.1"/> | |||
primarily on congestion control in section 3.1. The Guidelines appear in | (BCP 145), which provides UDP usage guidelines, focuses | |||
mandatory (MUST) and recommendation (SHOULD) categories.</t> | primarily on congestion control. The guidelines appear in | |||
mandatory (<bcp14>MUST</bcp14>) and recommendation (<bcp14>SHOULD</bcp14>) | ||||
<section title="Assessment of Mandatory Requirements"> | categories.</t> | |||
<t>The mandatory requirements in Section 3 of <xref target="RFC8085"/> | <section numbered="true" toc="default"> | |||
include:<list style="hanging"> | <name>Assessment of Mandatory Requirements</name> | |||
<t>Internet paths can have widely varying characteristics, ... | <t>The mandatory requirements in <xref target="RFC8085" sectionFormat="o | |||
Consequently, applications that may be used on the Internet MUST | f" section="3"/> | |||
NOT make assumptions about specific path characteristics. They | include the following:</t> | |||
MUST instead use mechanisms that let them operate safely under | <blockquote>Internet paths can have widely varying characteristics, .. | |||
. | ||||
Consequently, applications that may be used on the Internet <bcp14>M | ||||
UST | ||||
NOT</bcp14> make assumptions about specific path characteristics. Th | ||||
ey | ||||
<bcp14>MUST</bcp14> instead use mechanisms that let them operate saf | ||||
ely under | ||||
very different path conditions. Typically, this requires | very different path conditions. Typically, this requires | |||
conservatively probing the current conditions of the Internet path | conservatively probing the current conditions of the Internet path | |||
they communicate over to establish a transmission behavior that it | they communicate over to establish a transmission behavior that it | |||
can sustain and that is reasonably fair to other traffic sharing | can sustain and that is reasonably fair to other traffic sharing | |||
the path.</t> | the path.</blockquote> | |||
</list></t> | <t>The purpose of the load rate adjustment algorithm described in <xref | |||
target="load-rate-adj"/> is | ||||
<t>The purpose of the load rate adjustment algorithm in Section 8.1 is | ||||
to probe the network and enable Maximum IP-Layer Capacity measurements | to probe the network and enable Maximum IP-Layer Capacity measurements | |||
with as few assumptions about the measured path as possible, and | with as few assumptions about the measured path as possible and | |||
within the range application described in Section 2. The degree of | within the range of applications described in <xref target="sec-2-scope" | |||
probing conservatism is in tension with the need to minimize both the | />. | |||
traffic dedicated to testing (especially with Gigabit rate | There is tension between the goals of probing conservatism and | |||
measurements) and the duration of the test (which is one contributing | minimization of both the traffic dedicated to testing (especially with | |||
Gigabit rate measurements) and the duration of the test (which is one co | ||||
ntributing | ||||
factor to the overall algorithm fairness).</t> | factor to the overall algorithm fairness).</t> | |||
<t>The text of <xref target="RFC8085" sectionFormat="of" section="3"/> | ||||
<t>The text of Section 3 of <xref target="RFC8085"/> goes on to | goes on to | |||
recommend alternatives to UDP to meet the mandatory requirements, but | recommend alternatives to UDP to meet the mandatory requirements, but | |||
none are suitable for the scope and purpose of the metrics and methods | none are suitable for the scope and purpose of the Metrics and Methods | |||
in this memo. In fact, ad hoc TCP-based methods fail to achieve the | in this memo. In fact, ad hoc TCP-based methods fail to achieve the | |||
measurement accuracy repeatedly proven in comparison measurements with | measurement accuracy repeatedly proven in comparison measurements with | |||
the running code <xref target="LS-SG12-A"/> <xref target="LS-SG12-B"/> | the running code <xref target="LS-SG12-A" format="default"/> <xref targe | |||
<xref target="Y.Sup60"/>. Also, the UDP aspect of these methods is | t="LS-SG12-B" format="default"/> | |||
<xref target="Y.Sup60" format="default"/>. Also, the UDP aspect of the | ||||
se methods is | ||||
present primarily to support modern Internet transmission where a | present primarily to support modern Internet transmission where a | |||
transport protocol is required <xref target="copycat"/>; the metric is | transport protocol is required <xref target="copycat" format="default"/> | |||
based on the IP-Layer and UDP allows simple correlation to the | ; the metric is | |||
IP-Layer.</t> | based on the IP Layer, and UDP allows simple correlation to the | |||
IP Layer.</t> | ||||
<t>Section 3.1.1 of <xref target="RFC8085"/> discusses protocol timer | <t><xref target="RFC8085" sectionFormat="of" section="3.1.1"/> discusses | |||
protocol timer | ||||
guidelines:</t> | guidelines:</t> | |||
<blockquote>Latency samples <bcp14>MUST NOT</bcp14> be derived from am | ||||
<t><list style="hanging"> | biguous | |||
<t>Latency samples MUST NOT be derived from ambiguous | ||||
transactions. The canonical example is in a protocol that | transactions. The canonical example is in a protocol that | |||
retransmits data, but subsequently cannot determine which copy is | retransmits data, but subsequently cannot determine which copy is | |||
being acknowledged.</t> | being acknowledged.</blockquote> | |||
</list>Both load packets and status feedback messages MUST contain | <t>Both load packets and status feedback messages <bcp14>MUST</bcp14> co | |||
sequence numbers, which helps with measurements based on those | ntain | |||
packets, and there are no retransmissions needed.<list style="hanging"> | sequence numbers; this helps with measurements based on those | |||
<t>When a latency estimate is used to arm a timer that provides | packets, and there are no retransmissions needed.</t> | |||
<blockquote>When a latency estimate is used to arm a timer that provid | ||||
es | ||||
loss detection -- with or without retransmission -- expiry of the | loss detection -- with or without retransmission -- expiry of the | |||
timer MUST be interpreted as an indication of congestion in the | timer <bcp14>MUST</bcp14> be interpreted as an indication of congest ion in the | |||
network, causing the sending rate to be adapted to a safe | network, causing the sending rate to be adapted to a safe | |||
conservative rate...</t> | conservative rate ...</blockquote> | |||
</list></t> | <t>The methods described in this memo use timers for sending rate | |||
<t>The method described in this memo uses timers for sending rate | ||||
backoff when status feedback messages are lost (Lost Status Backoff | backoff when status feedback messages are lost (Lost Status Backoff | |||
timeout), and for stopping a test when connectivity is lost for a | timeout) and for stopping a test when connectivity is lost for a | |||
longer interval (Feedback message or load packet timeouts).</t> | longer interval (feedback message or load packet timeouts).</t> | |||
<t>This memo does not foresee any specific benefit of using Explicit Con | ||||
<t>There is no specific benefit foreseen by using Explicit Congestion | gestion | |||
Notification (ECN) in this memo.</t> | Notification (ECN).</t> | |||
<t><xref target="RFC8085" sectionFormat="of" section="3.2"/> discusses m | ||||
<t>Section 3.2 of <xref target="RFC8085"/> discusses message size | essage size | |||
guidelines:<list style="hanging"> | guidelines:</t> | |||
<t>To determine an appropriate UDP payload size, applications MUST | <blockquote>To determine an appropriate UDP payload size, applications | |||
<bcp14>MUST</bcp14> | ||||
subtract the size of the IP header (which includes any IPv4 | subtract the size of the IP header (which includes any IPv4 | |||
optional headers or IPv6 extension headers) as well as the length | optional headers or IPv6 extension headers) as well as the length | |||
of the UDP header (8 bytes) from the PMTU size.</t> | of the UDP header (8 bytes) from the PMTU size.</blockquote> | |||
</list></t> | ||||
<t>The method uses a sending rate table with a maximum UDP payload | <t>The method uses a sending rate table with a maximum UDP payload | |||
size that anticipates significant header overhead and avoids | size that anticipates significant header overhead and avoids | |||
fragmentation.</t> | fragmentation.</t> | |||
<t><xref target="RFC8085" sectionFormat="of" section="3.3"/> provides re | ||||
<t>Section 3.3 of <xref target="RFC8085"/> provides reliability | liability | |||
guidelines:<list style="hanging"> | guidelines:</t> | |||
<t>Applications that do require reliable message delivery MUST | <blockquote>Applications that do require reliable message delivery <bc | |||
implement an appropriate mechanism themselves.</t> | p14>MUST</bcp14> | |||
</list></t> | implement an appropriate mechanism themselves.</blockquote> | |||
<t>The IP-Layer Capacity Metrics and Methods do not require reliable | ||||
<t>The IP-Layer Capacity Metric and Method do not require reliable | delivery.</t> | |||
delivery.<list style="hanging"> | <blockquote>Applications that require ordered delivery <bcp14>MUST</bc | |||
<t>Applications that require ordered delivery MUST reestablish | p14> reestablish | |||
datagram ordering themselves.</t> | datagram ordering themselves.</blockquote> | |||
</list></t> | <t>The IP-Layer Capacity Metrics and Methods do not need to | |||
reestablish packet order; it is preferable to measure packet reordering | ||||
<t>The IP-Layer Capacity Metric and Method does not need to | if it occurs <xref target="RFC4737" format="default"/>.</t> | |||
reestablish packet order; it is preferred to measure packet reordering | ||||
if it occurs <xref target="RFC4737"/>.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Assessment of Recommendations"> | <name>Assessment of Recommendations</name> | |||
<t>The load rate adjustment algorithm's goal is to determine the | <t>The load rate adjustment algorithm's goal is to determine the | |||
Maximum IP-Layer Capacity in the context of an infrequent, diagnostic, | Maximum IP-Layer Capacity in the context of an infrequent, diagnostic, | |||
short term measurement. This goal is a global exception to many <xref | short-term measurement. This goal is a global exception to many <bcp14>S | |||
target="RFC8085"/> SHOULD-level requirements, of which many are | HOULD</bcp14>-level requirements as listed in <xref target="RFC8085" format="def | |||
intended for long-lived flows that must coexist with other traffic in | ault"/>, of which many are | |||
more-or-less fair way. However, the algorithm (as specified in Section | intended for long-lived flows that must coexist with other traffic in a | |||
8.1 and Appendix A above) reacts to indications of congestion in | more or less fair way. However, the algorithm (as specified in | |||
<xref target="load-rate-adj"/> and <xref target="app-a-load-rate-adj-pse | ||||
udocode"/> above) reacts to indications of congestion in | ||||
clearly defined ways.</t> | clearly defined ways.</t> | |||
<t>A specific recommendation is provided as an example. <xref target="RF | ||||
<t>A specific recommendation is provided as an example. Section 3.1.5 | C8085" sectionFormat="of" section="3.1.5"/> (regarding the implications of RTT a | |||
of <xref target="RFC8085"/> on implications of RTT and Loss | nd loss measurements on congestion control) says:</t> | |||
Measurements on Congestion Control says:<list style="hanging"> | <blockquote>A congestion control [algorithm] designed for UDP <bcp14>S | |||
<t>A congestion control designed for UDP SHOULD respond as quickly | HOULD</bcp14> respond as quickly | |||
as possible when it experiences congestion, and it SHOULD take | as possible when it experiences congestion, and it <bcp14>SHOULD</bc | |||
p14> take | ||||
into account both the loss rate and the response time when | into account both the loss rate and the response time when | |||
choosing a new rate.</t> | choosing a new rate.</blockquote> | |||
</list></t> | ||||
<t>The load rate adjustment algorithm responds to loss and RTT | <t>The load rate adjustment algorithm responds to loss and RTT | |||
measurements with a clear and concise rate reduction when warranted, | measurements with a clear and concise rate reduction when warranted, | |||
and the response makes use of direct measurements (more exact than can | and the response makes use of direct measurements (more exact than can | |||
be inferred from TCP ACKs).</t> | be inferred from TCP ACKs).</t> | |||
<t><xref target="RFC8085" sectionFormat="of" section="3.1.5"/> goes on t | ||||
<t>Section 3.1.5 of <xref target="RFC8085"/> goes on to specify:<list | o specify the following:</t> | |||
style="hanging"> | <blockquote>The implemented congestion control scheme <bcp14>SHOULD</b | |||
<t>The implemented congestion control scheme SHOULD result in | cp14> result in | |||
bandwidth (capacity) use that is comparable to that of TCP within | bandwidth (capacity) use that is comparable to that of TCP within | |||
an order of magnitude, so that it does not starve other flows | an order of magnitude, so that it does not starve other flows | |||
sharing a common bottleneck.</t> | sharing a common bottleneck.</blockquote> | |||
</list></t> | ||||
<t>This is a requirement for coexistent streams, and not for | <t>This is a requirement for coexistent streams, and not for | |||
diagnostic and infrequent measurements using short durations. The rate | diagnostic and infrequent measurements using short durations. The rate | |||
oscillations during short tests allow other packets to pass, and | oscillations during short tests allow other packets to pass and | |||
don’t starve other flows.</t> | don't starve other flows.</t> | |||
<t>Ironically, ad hoc TCP-based measurements of "Internet Speed" are | <t>Ironically, ad hoc TCP-based measurements of "Internet Speed" are | |||
also designed to work around this SHOULD-level requirement, by | also designed to work around this <bcp14>SHOULD</bcp14>-level requiremen t, by | |||
launching many flows (9, for example) to increase the outstanding data | launching many flows (9, for example) to increase the outstanding data | |||
dedicated to testing.</t> | dedicated to testing.</t> | |||
<t>The load rate adjustment algorithm cannot become a TCP-like | <t>The load rate adjustment algorithm cannot become a TCP-like | |||
congestion control, or it will have the same weaknesses of TCP when | congestion control, or it will have the same weaknesses of TCP when | |||
trying to make a Maximum IP-Layer Capacity measurement, and will not | trying to make a Maximum IP-Layer Capacity measurement and will not | |||
achieve the goal. The results of the referenced testing <xref | achieve the goal. The results of the referenced testing <xref target="LS | |||
target="LS-SG12-A"/> <xref target="LS-SG12-B"/> <xref | -SG12-A" format="default"/> <xref target="LS-SG12-B" format="default"/> <xref ta | |||
target="Y.Sup60"/> supported this statement hundreds of times, with | rget="Y.Sup60" format="default"/> supported this statement hundreds of times, wi | |||
th | ||||
comparisons to multi-connection TCP-based measurements.</t> | comparisons to multi-connection TCP-based measurements.</t> | |||
<t>A brief review of requirements from <xref target="RFC8085"/> follows (marked "Yes" when this memo is compliant, or "NA" (Not Applicable)):</t> | ||||
<t>A brief review of some other SHOULD-level requirements follows (Yes | <table anchor="recs-rfc8085"> | |||
or Not applicable = NA) :<figure> | <name>Summary of Key Guidelines from RFC 8085</name> | |||
<artwork><![CDATA[+--+---------------------------------------------- | <thead> | |||
-----------+---------+ | <tr> | |||
|Y?| RFC 8085 Recommendation | Section | | <th>Yes?</th> | |||
+--+---------------------------------------------------------+---------+ | <th>Recommendation in RFC 8085</th> | |||
Yes| MUST tolerate a wide range of Internet path conditions | 3 | | <th>Section</th> | |||
NA | SHOULD use a full-featured transport (e.g., TCP) | | | </tr> | |||
| | | | </thead> | |||
Yes| SHOULD control rate of transmission | 3.1 | | <tbody> | |||
NA | SHOULD perform congestion control over all traffic | | | <tr> | |||
| | | | <td>Yes</td> | |||
| for bulk transfers, | 3.1.2 | | <td><bcp14>MUST</bcp14> tolerate a wide range of Internet path conditions< | |||
NA | SHOULD consider implementing TFRC | | | /td> | |||
NA | else, SHOULD in other ways use bandwidth similar to TCP | | | <td><xref target="RFC8085" section="3" sectionFormat="bare"/></td> | |||
| | | | </tr> | |||
| for non-bulk transfers, | 3.1.3 | | <tr> | |||
NA | SHOULD measure RTT and transmit max. 1 datagram/RTT | 3.1.1 | | <td>NA</td> | |||
NA | else, SHOULD send at most 1 datagram every 3 seconds | | | <td><bcp14>SHOULD</bcp14> use a full-featured transport (e.g., TCP)</td> | |||
NA | SHOULD back-off retransmission timers following loss | | | <td></td> | |||
| | | | </tr> | |||
Yes| SHOULD provide mechanisms to regulate the bursts of | 3.1.6 | | <tr> | |||
| transmission | | | <td colspan="3"></td> | |||
| | | | </tr> | |||
NA | MAY implement ECN; a specific set of application | 3.1.7 | | <tr> | |||
| mechanisms are REQUIRED if ECN is used. | | | <td>Yes</td> | |||
| | | | <td><bcp14>SHOULD</bcp14> control rate of transmission</td> | |||
Yes| for DiffServ, SHOULD NOT rely on implementation of PHBs | 3.1.8 | | <td><xref target="RFC8085" section="3.1" sectionFormat="bare"/></td> | |||
| | | | </tr> | |||
Yes| for QoS-enabled paths, MAY choose not to use CC | 3.1.9 | | <tr> | |||
| | | | <td>NA</td> | |||
Yes| SHOULD NOT rely solely on QoS for their capacity | 3.1.10 | | <td><bcp14>SHOULD</bcp14> perform congestion control over all traffic</td> | |||
| non-CC controlled flows SHOULD implement a transport | | | <td></td> | |||
| circuit breaker | | | </tr> | |||
| MAY implement a circuit breaker for other applications | | | <tr> | |||
| | | | <td colspan="3"></td> | |||
| for tunnels carrying IP traffic, | 3.1.11 | | </tr> | |||
NA | SHOULD NOT perform congestion control | | | <tr> | |||
NA | MUST correctly process the IP ECN field | | | <th></th> | |||
| | | | <th>For bulk transfers,</th> | |||
| for non-IP tunnels or rate not determined by traffic, | | | <th><xref target="RFC8085" section="3.1.2" sectionFormat="bare"/></th> | |||
NA | SHOULD perform CC or use circuit breaker | 3.1.11 | | </tr> | |||
NA | SHOULD restrict types of traffic transported by the | | | <tr> | |||
| tunnel | | | <td>NA</td> | |||
| | | | <td><bcp14>SHOULD</bcp14> consider implementing TFRC</td> | |||
Yes| SHOULD NOT send datagrams that exceed the PMTU, i.e., | 3.2 | | <td></td> | |||
Yes| SHOULD discover PMTU or send datagrams < minimum PMTU; | | | </tr> | |||
NA | Specific application mechanisms are REQUIRED if PLPMTUD | | | <tr> | |||
| is used. | | | <td>NA</td> | |||
| | | | <td>else, <bcp14>SHOULD</bcp14> in other ways use bandwidth similar to TCP | |||
Yes| SHOULD handle datagram loss, duplication, reordering | 3.3 | | </td> | |||
NA | SHOULD be robust to delivery delays up to 2 minutes | | | <td></td> | |||
| | | | </tr> | |||
Yes| SHOULD enable IPv4 UDP checksum | 3.4 | | <tr> | |||
Yes| SHOULD enable IPv6 UDP checksum; Specific application | 3.4.1 | | <td colspan="3"></td> | |||
| mechanisms are REQUIRED if a zero IPv6 UDP checksum is | | | </tr> | |||
| used. | | | <tr> | |||
| | | | <th></th> | |||
NA | SHOULD provide protection from off-path attacks | 5.1 | | <th>For non-bulk transfers,</th> | |||
| else, MAY use UDP-Lite with suitable checksum coverage | 3.4.2 | | <th><xref target="RFC8085" section="3.1.3" sectionFormat="bare"/></th> | |||
| | | | </tr> | |||
NA | SHOULD NOT always send middlebox keep-alive messages | 3.5 | | <tr> | |||
NA | MAY use keep-alives when needed (min. interval 15 sec) | | | <td>NA</td> | |||
| | | | <td><bcp14>SHOULD</bcp14> measure RTT and transmit max. 1 datagram/RTT</td | |||
Yes| Applications specified for use in limited use (or | 3.6 | | > | |||
| controlled environments) SHOULD identify equivalent | | | <td><xref target="RFC8085" section="3.1.1" sectionFormat="bare"/></td> | |||
| mechanisms and describe their use case. | | | </tr> | |||
| | | | <tr> | |||
NA | Bulk-multicast apps SHOULD implement congestion control | 4.1.1 | | <td>NA</td> | |||
| | | | <td>else, <bcp14>SHOULD</bcp14> send at most 1 datagram every 3 seconds</t | |||
NA | Low volume multicast apps SHOULD implement congestion | 4.1.2 | | d> | |||
| control | | | <td></td> | |||
| | | | </tr> | |||
NA | Multicast apps SHOULD use a safe PMTU | 4.2 | | <tr> | |||
| | | | <td>NA</td> | |||
Yes| SHOULD avoid using multiple ports | 5.1.2 | | <td><bcp14>SHOULD</bcp14> back-off retransmission timers following loss</t | |||
Yes| MUST check received IP source address | | | d> | |||
| | | | <td></td> | |||
NA | SHOULD validate payload in ICMP messages | 5.2 | | </tr> | |||
| | | | <tr> | |||
Yes| SHOULD use a randomized source port or equivalent | 6 | | <td colspan="3"></td> | |||
| technique, and, for client/server applications, SHOULD | | | </tr> | |||
| send responses from source address matching request | | | <tr> | |||
| 5.1 | | | <td>Yes</td> | |||
NA | SHOULD use standard IETF security protocols when needed | 6 | | <td><bcp14>SHOULD</bcp14> provide mechanisms to regulate the bursts of tra | |||
+---------------------------------------------------------+---------+]]></art | nsmission</td> | |||
work> | <td><xref target="RFC8085" section="3.1.6" sectionFormat="bare"/></td> | |||
</figure></t> | </tr> | |||
<tr> | ||||
<t/> | <td colspan="3"></td> | |||
</tr> | ||||
<t/> | <tr> | |||
<td>NA</td> | ||||
<td><bcp14>MAY</bcp14> implement ECN; a specific set of application mechan | ||||
isms are <bcp14>REQUIRED</bcp14> if ECN is used</td> | ||||
<td><xref target="RFC8085" section="3.1.7" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td>For DiffServ, <bcp14>SHOULD NOT</bcp14> rely on implementation of PHBs | ||||
</td> | ||||
<td><xref target="RFC8085" section="3.1.8" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td>For QoS-enabled paths, <bcp14>MAY</bcp14> choose not to use CC</td> | ||||
<td><xref target="RFC8085" section="3.1.9" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>SHOULD NOT</bcp14> rely solely on QoS for their capacity</td> | ||||
<td><xref target="RFC8085" section="3.1.10" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td>non-CC controlled flows <bcp14>SHOULD</bcp14> implement a transport ci | ||||
rcuit breaker</td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>MAY</bcp14> implement a circuit breaker for other applications< | ||||
/td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<th></th> | ||||
<th>For tunnels carrying IP traffic,</th> | ||||
<th><xref target="RFC8085" section="3.1.11" sectionFormat="bare"/></th> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>SHOULD NOT</bcp14> perform congestion control</td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>MUST</bcp14> correctly process the IP ECN field</td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<th></th> | ||||
<th>For non-IP tunnels or rate not determined by traffic,</th> | ||||
<th><xref target="RFC8085" section="3.1.11" sectionFormat="bare"/></th> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>SHOULD</bcp14> perform CC or use circuit breaker</td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>SHOULD</bcp14> restrict types of traffic transported by the tun | ||||
nel</td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>SHOULD NOT</bcp14> send datagrams that exceed the PMTU, i.e.,</ | ||||
td> | ||||
<td><xref target="RFC8085" section="3.2" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>SHOULD</bcp14> discover PMTU or send datagrams < minimum PMT | ||||
U</td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td>Specific application mechanisms are <bcp14>REQUIRED</bcp14> if PLPMTUD | ||||
is used</td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>SHOULD</bcp14> handle datagram loss, duplication, reordering</t | ||||
d> | ||||
<td><xref target="RFC8085" section="3.3" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>SHOULD</bcp14> be robust to delivery delays up to 2 minutes</td | ||||
> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>SHOULD</bcp14> enable IPv4 UDP checksum</td> | ||||
<td><xref target="RFC8085" section="3.4" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>SHOULD</bcp14> enable IPv6 UDP checksum; specific application m | ||||
echanisms are <bcp14>REQUIRED</bcp14> if a zero IPv6 UDP checksum is used</td> | ||||
<td><xref target="RFC8085" section="3.4.1" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>SHOULD</bcp14> provide protection from off-path attacks</td> | ||||
<td><xref target="RFC8085" section="5.1" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td></td> | ||||
<td>else, <bcp14>MAY</bcp14> use UDP-Lite with suitable checksum coverage< | ||||
/td> | ||||
<td><xref target="RFC8085" section="3.4.2" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>SHOULD NOT</bcp14> always send middlebox keep-alive messages</t | ||||
d> | ||||
<td><xref target="RFC8085" section="3.5" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>MAY</bcp14> use keep-alives when needed (min. interval 15 sec)< | ||||
/td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td>Applications specified for use in limited use (or controlled environme | ||||
nts) <bcp14>SHOULD</bcp14> identify equivalent mechanisms and describe their use | ||||
case</td> | ||||
<td><xref target="RFC8085" section="3.6" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td>Bulk-multicast apps <bcp14>SHOULD</bcp14> implement congestion control | ||||
</td> | ||||
<td><xref target="RFC8085" section="4.1.1" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td>Low volume multicast apps <bcp14>SHOULD</bcp14> implement congestion c | ||||
ontrol</td> | ||||
<td><xref target="RFC8085" section="4.1.2" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td>Multicast apps <bcp14>SHOULD</bcp14> use a safe PMTU</td> | ||||
<td><xref target="RFC8085" section="4.2" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>SHOULD</bcp14> avoid using multiple ports</td> | ||||
<td><xref target="RFC8085" section="5.1.2" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>MUST</bcp14> check received IP source address</td> | ||||
<td></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>SHOULD</bcp14> validate payload in ICMP messages</td> | ||||
<td><xref target="RFC8085" section="5.2" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td colspan="3"></td> | ||||
</tr> | ||||
<tr> | ||||
<td>Yes</td> | ||||
<td><bcp14>SHOULD</bcp14> use a randomized Source port or equivalent techn | ||||
ique, and, for client/server applications, <bcp14>SHOULD</bcp14> send responses | ||||
from source address matching request</td> | ||||
<td><xref target="RFC8085" section="6" sectionFormat="bare"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td>NA</td> | ||||
<td><bcp14>SHOULD</bcp14> use standard IETF security protocols when needed | ||||
</td> | ||||
<td><xref target="RFC8085" section="6" sectionFormat="bare"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
</section> | </section> | |||
</middle> | ||||
<back> | ||||
<references title="Normative References"> | ||||
<?rfc include='reference.RFC.2330'?> | ||||
<?rfc ?> | ||||
<?rfc ?> | ||||
<?rfc include="reference.RFC.2119"?> | ||||
<?rfc ?> | ||||
<?rfc ?> | ||||
<?rfc include='reference.RFC.7680'?> | ||||
<?rfc include='reference.RFC.8468'?> | ||||
<?rfc ?> | ||||
<?rfc ?> | ||||
<?rfc include='reference.RFC.8174'?> | ||||
<?rfc include='reference.RFC.6438'?> | ||||
<?rfc ?> | ||||
<?rfc include='reference.RFC.4737'?> | ||||
<?rfc include='reference.RFC.4656'?> | ||||
<?rfc include='reference.RFC.2681'?> | ||||
<?rfc include='reference.RFC.5357'?> | ||||
<?rfc ?> | ||||
<?rfc include='reference.RFC.7497'?> | ||||
<?rfc ?> | ||||
<?rfc ?> | ||||
</references> | ||||
<references title="Informative References"> | ||||
<?rfc include='reference.RFC.2544'?> | ||||
<?rfc include='reference.RFC.3148'?> | ||||
<?rfc include='reference.RFC.5136'?> | ||||
<?rfc include='reference.RFC.6815'?> | ||||
<?rfc include='reference.RFC.7312'?> | ||||
<?rfc include='reference.RFC.7594'?> | ||||
<?rfc include='reference.RFC.7799'?> | ||||
<?rfc include='reference.RFC.8085'?> | ||||
<?rfc include='reference.RFC.8337'?> | ||||
<reference anchor="copycat" | ||||
target="https://irtf.org/anrw/2017/anrw17-final5.pdf"> | ||||
<front> | ||||
<title>copycat: Testing Differential Treatment of New Transport | ||||
Protocols in the Wild (ANRW '17)</title> | ||||
<author fullname="Korian Edeline" initials="K." surname="Edleine"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="Mirja Kuhlewind" initials="K." surname="Kuhlewind"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="Brian Trammell" initials="B." surname="Trammell"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="Benoit Donnet" initials="B." surname="Donnet"> | ||||
<organization/> | ||||
</author> | ||||
<date day="15" month="July" year="2017"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="Y.Sup60" | ||||
target="https://www.itu.int/rec/T-REC-Y.Sup60/en"> | ||||
<front> | ||||
<title>Recommendation Y.Sup60, (09/20) Interpreting ITU-T Y.1540 | ||||
maximum IP-layer capacity measurements, and Errata</title> | ||||
<author fullname="Al Morton" initials="A., Rapporteur" | ||||
surname="Morton"> | ||||
<organization>AT&T</organization> | ||||
</author> | ||||
<date day="11" month="September" year="2020"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="TR-471" | ||||
target="https://www.broadband-forum.org/technical/download/TR-4 | ||||
71.pdf"> | ||||
<front> | ||||
<title>Broadband Forum TR-471: IP Layer Capacity Metrics and | ||||
Measurement</title> | ||||
<author fullname="Al Morton" initials="A." surname="Morton"> | ||||
<organization>AT&T Labs</organization> | ||||
</author> | ||||
<date day="10" month="July" year="2020"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="Y.1540" | ||||
target="https://www.itu.int/rec/T-REC-Y.1540-201912-I/en"> | ||||
<front> | ||||
<title>Internet protocol data communication service - IP packet | ||||
transfer and availability performance parameters</title> | ||||
<author fullname="ITU-T Recommendation Y.1540" surname=""> | ||||
<organization>ITU-T</organization> | ||||
</author> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="LS-SG12-B" | ||||
target="https://datatracker.ietf.org/liaison/1645/"> | ||||
<front> | ||||
<title>LS on harmonization of IP Capacity and Latency Parameters: | ||||
Consent of Draft Rec. Y.1540 on IP packet transfer performance | ||||
parameters and New Annex A with Lab & Field Evaluation | ||||
Plans</title> | ||||
<author fullname="ITU-T SG 12" surname=""> | ||||
<organization>ITU-T</organization> | ||||
</author> | ||||
<date month="March" year="2019"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="LS-SG12-A" | ||||
target="https://datatracker.ietf.org/liaison/1632/"> | ||||
<front> | ||||
<title>LS - Harmonization of IP Capacity and Latency Parameters: | ||||
Revision of Draft Rec. Y.1540 on IP packet transfer performance | ||||
parameters and New Annex A with Lab Evaluation Plan</title> | ||||
<author fullname="ITU-T SG 12" surname=""> | ||||
<organization>ITU-T</organization> | ||||
</author> | ||||
<date month="May" year="2019"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="udpst" | ||||
target="https://github.com/BroadbandForum/obudpst"> | ||||
<front> | ||||
<title>UDP Speed Test Open Broadband project</title> | ||||
<author fullname="" surname=""> | ||||
<organization>udpst Project Collaborators</organization> | ||||
</author> | ||||
<date month="December" year="2020"/> | ||||
</front> | ||||
</reference> | ||||
<?rfc ?> | ||||
<?rfc ?> | <section numbered="false" toc="default"> | |||
</references> | <name>Acknowledgments</name> | |||
<t>Thanks to <contact fullname="Joachim Fabini"/>, <contact fullname="Matt | ||||
Mathis"/>, <contact fullname="J. Ignacio Alvarez-Hamelin"/>, | ||||
<contact fullname="Wolfgang Balzer"/>, <contact fullname="Frank Brockners" | ||||
/>, <contact fullname="Greg Mirsky"/>, <contact fullname="Martin Duke"/>, <conta | ||||
ct fullname="Murray Kucherawy"/>, and <contact fullname="Benjamin Kaduk"/> for t | ||||
heir extensive comments on this memo | ||||
and related topics. In a second round of reviews, we acknowledge <contact | ||||
fullname="Magnus Westerlund"/>, <contact fullname="Lars Eggert"/>, and <contact | ||||
fullname="Zaheduzzaman Sarker"/>.</t> | ||||
</section> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 252 change blocks. | ||||
1477 lines changed or deleted | 1678 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/ |