| 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/ | ||||