- Home
- RFC 10052
RFC 10052: Performance Measurement with Asymmetrical Traffic Using the Simple Two-Way Active Measurement Protocol (STAMP)
- G. Mirsky,
- E. Ruffini,
- H. Nydell,
- R. Foote,
- W. Hawkins
avg. 5 (1 rating)
Abstract
This document defines an optional extension to the Simple Two-way Active Measurement Protocol (STAMP)
that enables a Session-
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
The Simple Two-way Active Measurement Protocol (STAMP) [RFC8762] defines the base STAMP functionalities.
STAMP Optional Extensions [RFC8972] introduces a TLV structure that allows
a Session-Sender to include optional instructions for Session-
By default, a STAMP Session-Sender and a Session-
Measurement of performance metrics in a multicast network using an active measurement method (Section 3.4 of [RFC7799]) has specific challenges compared to what operators experience monitoring in a unicast network. This document analyzes these challenges and specifies procedures and STAMP extensions to achieve more efficient measurements with a lesser impact on a network.¶
2. Conventions Used in This Document
2.1. Terminology
This document uses terms defined in [RFC8762], specifically Session-
This document uses terms defined in [RFC8972], specifically STAMP Session Identifier (SSID), STAMP TLV Flags, and Sub-TLVs.¶
This document uses terms defined in [RFC7497], specifically In-Service and Out-
In this document, "asymmetrical packets" has two meanings, depending on the context.
The first aspect is asymmetry in packet size between a packet sent by a Session-
In this document, a multicast network means a communication network model where a sender transmits a single packet addressed to a multicast group, and the network delivers copies of that packet to multiple receivers that have joined the group.¶
2.3. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
3. Reflected Test Packet Control TLV
This section defines an additional optional STAMP extension, the Reflected Test Packet Control TLV, and an additional bit flag in the STAMP TLV Flags field. The format of this TLV is presented in Figure 1.¶
The descriptions of the fields are as follows:¶
- STAMP TLV Flags:
- A one-octet field [RFC8972].¶
- Type:
- A one-octet field that identifies the Reflected Test Packet Control TLV. This field is set to 12 (Section 6.1).¶
- Length:
- A two-octet field. The value is variable and MUST NOT be smaller than 12 octets.¶
- Length of the Reflected Packet:
- A two-octet field. The value is an unsigned integer that is the requested length of a reflected test packet in octets.¶
- Number of the Reflected Packets:
- A two-octet field. The value is an unsigned integer that is the number of reflected test packets that
the Session-
Reflector is requested to transmit in response to receiving a STAMP-Test packet with the Reflected Test Packet Control TLV.¶ - Interval Between the Reflected Packets:
- A four-octet field. The value is an unsigned integer set to the interval in nanoseconds between the transmission of the consecutive reflected test packets in response to receiving a STAMP-Test packet with the Reflected Test Packet Control TLV.¶
- Sub-TLVs:
- An optional field that includes additional information communicated by a Session-
Sender.¶
Also, an additional STAMP TLV flag [RFC8972], the Conformant Reflected Packet, has been allocated
by IANA in the "STAMP TLV Flags" registry (Section 6.2): the one-bit C flag (3). A Session-Sender MUST zero
this flag on transmission, and the Session-
A Session-Sender MAY include the Reflected Test Packet Control TLV in a STAMP
test packet. If the received STAMP-Test packet includes the Reflected Test Packet Control TLV,
the Session-
-
The length of the reflected test packet MUST be the largest of:¶
-
The length of a base Session-
Reflector packet in the mode (unauthenticated or authenticated) of the received STAMP-Test packet, as defined in Section 4.3 of [RFC8762], including all STAMP extension TLVs [RFC8972] present in the received STAMP-Test packet but excluding any Extra Padding TLVs. The rationale to exclude any Extra Padding TLVs present in combination with the Reflected Test Packet Control TLV is to support a scenario in which a Session- Reflector is requested to transmit a sequence of packets shorter than the received STAMP packet.¶ - The value in the Length of the Reflected Packet field of the Reflected Test Packet Control TLV aligned at a four-octet boundary.¶
-
The length of a base Session-
In a case where the length of the reflected packet
calculated by this rule is longer than the length of the reflected
packet calculated by the rules in Section 4 of [RFC8972], the Session-
The number of reflected test packets in the sequence MUST equal the value of the Number of the Reflected Packets field.¶
If the value of the Number of the Reflected Packets field is greater than 1,
the interval between the transmission of two consecutive reflected packets in the sequence MUST be equal to the value
in the Interval Between the Reflected Packets field in nanoseconds.
To prevent excessive congestion caused by reflected packets, a Session-
If the Number of the Reflected Packets field is set to 0, the Session-
Each reflected test packet in the sequence is formed according to Section 4.3 of [RFC8762].¶
As defined above, there are two cases when a Session-
- If the length of the received reflected STAMP packet is less than
the value of the Length of the Reflected Packet field, the requested
length exceeds the MTU of the egress interface of the
Session-
Reflector.¶ - If the length of the received reflected STAMP packet equals the
value of the Length of the Reflected Packet field, the requested data
rate and/or the data volume exceed the limits set at the
Session-
Reflector.¶
3.1. Address Group Sub-TLVs
A multicast network that uses an active performance measurement method for In-Service rate estimation MUST include a rate control mechanism that bounds and regulates the generation of measurement packets. Because multicast replication can amplify probe traffic across the distribution tree, uncontrolled probe emission risks introducing congestion, altering traffic asymmetry, or otherwise perturbing the conditions being measured. The rate control mechanism MUST ensure that probe traffic remains non-intrusive, predictable, and consistent with the operational characteristics of the multicast topology. Aligning probe generation behavior with the timing and packet selection semantics of the asymmetric packet measurement method makes it possible for observations collected at receivers to remain valid and comparable. To allow for deployment on networks with different characteristics (i.e., latency, throughput, etc.), implementations SHOULD provide operators with the ability to configure rate limits and pacing parameters that prevent excessive or uneven probe replication while still enabling statistically meaningful measurement samples.¶
3.1.1. Layer 2 Address Group Sub-TLV
An optional Layer 2 Address Group sub-TLV is a variable-
Where:¶
- Sub-TLV Flags:
- An eight-bit field. The format, values, and interpretation of flags are as defined for STAMP TLV Flags [RFC8972]. Flag values are taken from the "STAMP TLV Flags" registry [IANA-STAMP].¶
- Sub-TLV Type:
- A one-octet field. IANA has assigned value 10 (Section 6.3).¶
- Sub-TLV Length:
- A two-octet field whose value equals the length of the Value field of the Layer 2 Address Group sub-TLV in octets.
Because the lengths of the Layer 2 Address Group Mask and Layer 2 Address Group fields MUST be equal, valid values for the Sub-TLV Length
are 4, 12, and 16. Any other value MUST be considered by the Session-
Reflector as a malformed sub-TLV.¶
The Value field of the Layer 2 Address Group sub-TLV consists of the following fields:¶
- Layer 2 Address Group Mask:
- A field that represents the bitmask to be applied to all MAC addresses associated with the Session-
Reflector. The length of the field is 1/2 the value of the sub-TLV Length field.¶ - Layer 2 Address Group:
- A field that represents the group to which this TLV is addressed. The length of the field is 1/2 the value of the sub-TLV Length field.¶
If the Session-
3.1.2. Layer 3 Address Group Sub-TLV
An optional Layer 3 Address Group sub-TLV is a variable-
Where:¶
- Sub-TLV Flags:
- An eight-bit field. The format, values, and interpretation of flags are as defined for STAMP TLV Flags [RFC8972]. Flag values are taken from the "STAMP TLV Flags" registry [IANA-STAMP].¶
- Sub-TLV Type:
- A one-octet field. IANA has assigned value 11 (Section 6.3).¶
- Sub-TLV Length:
- A two-octet field whose value equals either 8 (if the IP Prefix is the prefix for an IPv4 address)
or 20 (if the IP Prefix is the prefix for an IPv6 address).
Any other value MUST be considered by the Session-
Reflector as a malformed sub-TLV.¶
The Value field of the Layer 3 Address Group sub-TLV consists of the following fields:¶
- Prefix Length:
- A one-octet unsigned integer field that contains the length, in bits, of the prefix of the value in the IP Prefix field.¶
- Reserved:
- A three-octet field. The field MUST be zeroed on transmission and ignored on receipt.¶
- IP Prefix:
- A variable-
length field. The length of the field is four octets if the IP Prefix is the prefix for an IPv4 address or 16 if the IP Prefix is the prefix for an IPv6 address.¶
When processing this sub-TLV, the Session-
4. Operational Considerations
4.1. Rate Measurement
[RFC7497] defines the problem of access rate measurement in access networks. One of the essential requirements identified for a test protocol is the ability to control packet characteristics on the tested path, such as asymmetric rate and asymmetric packet size. The Reflected Test Packet Control TLV, defined in Section 3, conforms to the requirements for measuring access rate by providing optional controls of the number of reflected test packets, the size of the reflected packet(s), and the time interval, i.e., rate, in transmitting the sequence of the reflected test packets. The access rate metric and method of access rate measurement are out of the scope of this document. The UDP Speed Test (see [RFC9097] and [RFC9946]) also allows for the measurement of access bandwidth.¶
4.1.1. Operational Considerations for Performing Rate Measurement
General considerations for using a testing protocol for rate measurement are documented in Section 7 of [RFC7497]. These considerations are specific for In-Service and Out-of-Service rate measurement. In the Out-of-Service testing, an operator may use a very high traffic rate and/or volume (i.e., high values for the Length of the Reflected Packet and/or Number of the Reflected Packets fields, and/or low values for the Interval Between the Reflected Packets field of the Reflected Test Packet Control TLV) to create congestion in the bottleneck. However, when performing In-Service rate testing, an operator may start with a low rate and/or volume and gradually increase them with each transmitted Reflected Test Packet Control TLV.¶
A service subscriber performing extensive rate measurements on the operational network SHOULD consider bullet item 6 in Section 11 of [RFC9946] and be mindful of limits placed on their service by the Service Provider. In particular, active measurement can lead to the generation of data volumes that may cause those performing the test to violate service-level agreements with their Service Provider.¶
4.2. Active Performance Measurement in a Multicast Environment
For performance measurements using STAMP in a multicast environment, a Session-Sender
is expected to be the root and Session-
According to [RFC8972], a STAMP Session is demultiplexed by a Session-
The multicast environment itself could be configured to help alleviate the possibility that network congestion may occur if a single test packet generates a large number of concurrent replies, all directed to the same endpoint. Depending on the multicast implementation, adding the Reflected Test Packet Control TLV could allow the multicast environment to limit the number of replies by modifying the Reflected Test Packet Control TLV sub-TLV values of any STAMP packets it sees, allowing replies only from reflectors that are:¶
- Randomly selected, by specifying a Layer 2 Address Group sub-TLV: for example, setting the EUI-48 Address Group Mask to 0xF and the EUI-48 Address Group to 0x1. As a result, only 1 out of 16 reflectors will reply;¶
- Hosted on a specific vendor Network Interface Card, by specifying a Layer 2 Address Group sub-TLV
with the EUI-48 Address Group Mask set to 0xFFFFFF0
00000; and¶ - Belonging to specific IP networks, for example, a subnet dedicated to IPv6-over-IPv4 encapsulation, by specifying the appropriate Layer 3 Address Group sub-TLV.¶
Multicast traffic is also intrinsically asymmetrical. The upstream (source-
4.3. Using Reflected Test Packet Control TLV in Combination with Other TLVs
[RFC9503] defines the Return Path TLV that, when used in combination with the Return Address Sub-TLV, allows a Session-Sender to request the reflected packet be sent to a different address from the Session-Sender one. These STAMP extensions could be used in combination with the Reflected Test Packet Control TLV, defined in this document, to direct the reflected STAMP-Test packets to a collector of measurement data (according to [RFC7594]) for further processing and network analytics. An example of the use case is a multicast scenario when, for example, the Session-Sender is close to the actual multicast source (such as a camera transmitting live video) so that the test packets follow the same path as the video stream packets in one direction but the reflected test packets follow another to a destination where the data would be analyzed.¶
For compatibility with [RFC9503], a Session-Sender MUST NOT include a Return Path Control Code sub-TLV
with the Control Code Flags set to No Reply Requested in a test packet that also contains a Reflected Test Packet Control TLV with a non-zero value.
A Session-
The Reflected Test Packet Control TLV can be combined with the Class of Service TLV [RFC8972] to augment rate testing or testing in a multicast network that monitors the consistency of Differentiated Services Code Point and ECN values in forward and reverse directions of the particular STAMP-Test session.¶
5. Security Considerations
Security considerations discussed in [RFC7497],
[RFC8762], [RFC8972], and [RFC9503]
apply to this document. Furthermore,
spoofed STAMP-Test packets with the Reflected Test Packet Control TLV
can be exploited to conduct a Denial-
Furthermore, a DoS attack using the Reflected Test Packet Control TLV might target the STAMP Session-
Considering the potential number of reflected packets generated by a single test packet sent to a multicast address,
parameters in the first STAMP-Test packet with the Reflected Test Packet Control TLV MUST be selected conservatively.
Consider the Number of the Reflected Packets field value set to one. As a result, a Session-
A Session-Sender SHOULD NOT send the next STAMP-Test packet with the Reflected Test Packet Control TLV
before the Session-
When planning In-Service capacity measurement, operators SHOULD follow recommendations formulated in Sections 3 and 7 of [RFC7497].
If the underlay network is ECN-capable, a Session-
Furthermore, Section 3.1.5 of [RFC8085] determines that a UDP congestion control SHOULD respond quickly to experienced congestion and account for loss rate and response time when choosing a new rate. And Section 8.1 of [RFC9097] specifies the load rate adjustment algorithm with its sample pseudocode offered in Appendix A of [RFC9097].¶
6. IANA Considerations
6.1. Reflected Test Packet Control TLV Type
IANA has assigned a new value for the Reflected Test Packet Control TLV in the "STAMP TLV Types" registry under the "Simple Two-way Active Measurement Protocol (STAMP) TLV Types" registry group as follows:¶
| Value | Description | Reference |
|---|---|---|
| 12 | Reflected Test Packet Control | RFC 10052 |
6.2. Conformant Reflected Packet STAMP TLV Flag
IANA has allocated a bit position for the Conformant Reflected Packet STAMP TLV flag in the "STAMP TLV Flags" registry under the "Simple Two-way Active Measurement Protocol (STAMP) TLV Types" registry group as follows:¶
| Bit position | Symbol | Description | Reference |
|---|---|---|---|
| 3 | C | Conformant | RFC 10052 |
6.3. Layer 2 and Layer 3 Address Group Sub-TLV Types
IANA has assigned values for the Layer 2 Address Group and Layer 3 Address Group sub-TLV Types in the "STAMP Sub-TLV Types" registry under the "Simple Two-way Active Measurement Protocol (STAMP) TLV Types" registry group as follows:¶
| Value | Description | TLV Used | Reference |
|---|---|---|---|
| 10 | Layer 2 Address Group | Reflected Test Packet Control | RFC 10052 |
| 11 | Layer 3 Address Group | Reflected Test Packet Control | RFC 10052 |
7. References
7.1. Normative References
- [IANA-STAMP]
-
IANA, "STAMP Sub-TLV Types", <https://
www >..iana .org /assignments /stamp- tlv- types - [RFC1982]
-
Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, DOI 10.17487
/RFC1982 , , <https://www >..rfc- editor .org /info /rfc1982 - [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487
/RFC2119 , , <https://www >..rfc- editor .org /info /rfc2119 - [RFC7497]
-
Morton, A., "Rate Measurement Test Protocol Problem Statement and Requirements", RFC 7497, DOI 10.17487
/RFC7497 , , <https://www >..rfc- editor .org /info /rfc7497 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487
/RFC8174 , , <https://www >..rfc- editor .org /info /rfc8174 - [RFC8762]
-
Mirsky, G., Jun, G., Nydell, H., and R. Foote, "Simple Two-Way Active Measurement Protocol", RFC 8762, DOI 10.17487
/RFC8762 , , <https://www >..rfc- editor .org /info /rfc8762 - [RFC8972]
-
Mirsky, G., Min, X., Nydell, H., Foote, R., Masputra, A., and E. Ruffini, "Simple Two-Way Active Measurement Protocol Optional Extensions", RFC 8972, DOI 10.17487
/RFC8972 , , <https://www >..rfc- editor .org /info /rfc8972 - [RFC9503]
-
Gandhi, R., Ed., Filsfils, C., Chen, M., Janssens, B., and R. Foote, "Simple Two-Way Active Measurement Protocol (STAMP) Extensions for Segment Routing Networks", RFC 9503, DOI 10.17487
/RFC9503 , , <https://www >..rfc- editor .org /info /rfc9503 - [RFC9946]
-
Morton, A., Ciavattone, L., and R. Geib, Ed., "The UDP Speed Test Protocol (UDPSTP) for One-Way IP Capacity Metric Measurement", RFC 9946, DOI 10.17487
/RFC9946 , , <https://www >..rfc- editor .org /info /rfc9946
7.2. Informative References
- [IEEE-
802 .3- 2022] -
IEEE, "IEEE Standard for Ethernet", IEEE Std 802.3-2022, DOI 10.1109
/IEEESTD , , <https://.2022 .9844436 doi >..org /10 .1109 /IEEESTD .2022 .9844436 - [IEEE-
802 .15 .4- 2024] -
IEEE, "IEEE Standard for Low-Rate Wireless Networks", IEEE Std 802.15.4-2024, DOI 10.1109
/IEEESTD , , <https://.2024 .10794632 doi >..org /10 .1109 /IEEESTD .2024 .10794632 - [RFC7594]
-
Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., Aitken, P., and A. Akhter, "A Framework for Large-Scale Measurement of Broadband Performance (LMAP)", RFC 7594, DOI 10.17487
/RFC7594 , , <https://www >..rfc- editor .org /info /rfc7594 - [RFC7799]
-
Morton, A., "Active and Passive Metrics and Methods (with Hybrid Types In-Between)", RFC 7799, DOI 10.17487
/RFC7799 , , <https://www >..rfc- editor .org /info /rfc7799 - [RFC8085]
-
Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage Guidelines", BCP 145, RFC 8085, DOI 10.17487
/RFC8085 , , <https://www >..rfc- editor .org /info /rfc8085 - [RFC9097]
-
Morton, A., Geib, R., and L. Ciavattone, "Metrics and Methods for One-Way IP Capacity", RFC 9097, DOI 10.17487
/RFC9097 , , <https://www >..rfc- editor .org /info /rfc9097
Acknowledgments
The authors thank Zhang Li, Ruediger Geib, Rakesh Gandhi, Giuseppe Fioccola, Xiao Min, Greg White, and Rohan Bhosle for their thorough reviews and helpful suggestions, which improved the document.¶