Simple Two-way Active Measurement ProtocolZTE Corp.gregimirsky@gmail.comZTE Corporation68# Zijinghua RoadNanjingJiangsu210012P.R.China+86 18105183663guo.jun2@zte.com.cnAccedian Networkshnydell@accedian.comNokiafooter.foote@nokia.com
Transport
Network Working GroupInternet-DraftIPPMPerformance Measurement
This document describes a Simple Two-way Active Measurement Protocol which enables
measurement of both one-way and round-trip performance metrics like delay, delay variation and packet loss.
Development and deployment of Two-Way Active Measurement Protocol (TWAMP) and its extensions, e.g.
that defined features such as Reflect Octets and Symmetrical Size for TWAMP,
provided invaluable experience. Several independent implementations exist, have been deployed and provide
important operational performance measurements. At the same time there has been noticeable interest in using a simpler
mechanism for active performance monitoring that can provide deterministic behaviour and inherit separation of control
(vendor-specific configuration or orchestration) and test functions. One of such is Performance Measurement from
IP Edge to Customer Equipment using TWAMP Light from Broadband Forum ().
This document defines active performance measurement test protocol, Simple Two-way Active Measurement Protocol (STAMP),
that enables measurement of both one-way and round-trip performance metrics like delay, delay variation and packet loss.
STAMP - Simple Two-way Active Measurement ProtocolNTP - Network Time ProtocolPTP - Precision Time ProtocolHMAC Hashed Message Authentication CodeOWAMP One-Way Active Measurement ProtocolTWAMP Two-Way Active Measurement Protocol
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
when, and only when, they appear in all capitals, as shown here.
presents Simple Two-way Active Measurement Protocol (STAMP) Session-Sender and Session-Reflector with a measurement session.
The configuration and management of the STAMP Session-Sender, Session-Reflector and management of the STAMP sessions can be achieved through various means.
Command Line Interface, OSS/BSS using SNMP or SDN using Netconf/YANG are but a few examples.
STAMP Session-Sender transmits test packets toward STAMP Session-Reflector. STAMP Session-Reflector
receives Session-Sender's packet and acts according to the configuration and optional control information
communicated in the Session-Sender's test packet. STAMP defines two different test packet formats, one for
packets transmitted by the STAMP-Session-Sender and one for packets
transmitted by the STAMP-Session-Reflector. STAMP supports three modes:
unauthenticated, authenticated, and encrypted. Unauthenticated STAMP test packets
are compatible on the wire with unauthenticated TWAMP-Test
packet formats.
By default STAMP uses symmetrical packets, i.e. size of the packet transmitted by Session-Reflector equals to the size of
the packet received by the Session-Reflector.
Because STAMP supports symmetrical test packets, STAMP Session-Sender packet has minimum
size of 44 octets in unauthenticated mode, see ,
and 48 octets in authenticated or encrypted modes , see .
For unauthenticated mode:
where fields are defined as the following:
Sequence Number is four octets long field. For each new session its value starts at zero and is incremented with each transmitted packet.
Timestamp is eight octets long field. STAMP node MUST support Network Time Protocol (NTP) version 4 64-bit timestamp format .
STAMP node MAY support IEEE 1588v2 Precision Time Protocol truncated 64-bit timestamp format .
Error Estimate is two octets long field with format displayed in
where S, Scale and Multiplier fields are interpreted as they have been defined in section 4.1.2 ;
and Z field - as has been defined in section 2.3 :
0 - NTP 64 bit format of a timestamp;1 - PTPv2 truncated format of a timestamp.
The STAMP Session-Sender and Session-Reflector MAY use, not use, or set value of the Z field
in accordance with the timestamp format in use. This optional field is to enhance operations
but local configuration or defaults could be used in its place.
Must-be-Zero (MBZ) field in the session-sender unauthenticated packet is 27 octets long. It MUST be all zeroed on transmission and ignored on receipt.
Server Octets field is two octets long field. It MUST follow the 27 octets long MBZ field. The Reflect Octets capability
defined in .
The value in the Server Octets field equals to the number of octets the Session-Reflector is expected to copy
back to the Session-Sender starting with the Server Octets field. Thus the minimal non-zero value for the Server Octets field is two and value of one is invalid.
If none of Payload to be copied the value of the Server Octets field MUST be set to zero on transmit.
Remaining Packet Padding is optional field of variable length. The number of octets in the Remaining Packet Padding field is the value of the Server Octets field
less the length of the Server Octets field.
Comp.MBZ is variable length field used to achieve alignment on word boundary. Thus the length of Comp.MBZ field may be only 0, 1, 2 or 3 octets.
The value of the field MUST be zeroed on transmission and ignored on receipt.
The unauthenticated STAMP Session-Sender packet MAY include Type-Length-Value encodings that immediately follow the Comp. MBZ field.
Type field is two octets long. The value of the Type field is the codepoint allocated by IANA
that identifies data in the Value field.
Length is two octets long field and its value is the length of the Value field in octets.
Value field contains the application specific information. The length of the Value field MUST be four octets aligned.
For authenticated and encrypted modes:
The field definitions are the same as the unauthenticated mode, listed in .
In addition, Commp.MBZ field is variable length filed to align the packet on 16 octets boundary.
Also, the packet includes a key-hashed message authentication code (HMAC) () hash at the end of the PDU.
The STAMP Session-Sender-packet format () is the same in authenticated and
encrypted modes. The encryption and authentication operations are,
however, different and protect the data as following:
in authenticated mode the Sequence Number is protected while the
Timestamp and the Error Estimate are sent in clear text;
in encrypted mode all fields, including the timestamp and Error Estimate,
are protected to provide maximum data confidentiality and integrity protection.
Sending the Timestamp in clear text
in authenticated mode allows more consistent reading of time by a Session-Sender
on the transmission of the test packet.
Reading of the time in encrypted mode must be followed by its encryption which introduces
variable delay thus affecting calculated timing metrics.
The Session-Reflector receives the STAMP test packet, verifies it, prepares and transmits
the reflected test packet.
Two modes of STAMP Session-Reflector characterize expected behavior and, consequently, performance metrics that can be measured:
Stateless - STAMP Session-Reflector does not maintain test state and will reflect back the received sequence number without modification.
As a result, only round-trip packet loss can be calculated while the reflector is operating in stateless mode.
Stateful - STAMP Session-Reflector maintains test state determining forward loss, gaps recognized in the received sequence number.
This means both near-end (forward) and far-end (backward) packet loss can be computed. This implies that the STAMP Session-Reflector MUST
keep a state for each accepted STAMP-test session, uniquely identifying STAMP-test packets to one such session instance, and enabling
adding a sequence number in the test reply that is individually incremented on a per-session basis.
For unauthenticated mode:
where fields are defined as the following:
Sequence Number is four octets long field. The value of the Sequence Number field is set according to the mode of the STAMP Session-Reflector:
in the stateless mode the Session-Reflector copies the value from the received STAMP test packet's Sequence Number field;in the stateful mode the Session-Reflector counts the received STAMP test packets in each test session and uses that counter to set value of the Sequence Number field.
Timestamp and Receiver Timestamp fields are each 8 octets long. The format of these fields, NTP or PTPv2,
indicated by the Z flag of the Error Estimate field as described in .
Error Estimate has the same size and interpretation as described in .
Session-Sender Sequence Number, Session-Sender Timestamp, and Session-Sender Error Estimate are copies of the corresponding fields in the STAMP test packet send by the Session-Sender.
Ses(sion)-Sender TTL is one octet long field and its value is the copy of the TTL field from the received STAMP test packet.
Packet Padding (reflected) is optional variable length field. The length of the Packet Padding (reflected) field MUST be equal to the value
of the Server Octets field (). If the value is non-zero, the Session-Reflector copies octets starting with
the Server Octets field.
Comp.MBZ is variable length field used to achieve alignment on word boundary. Thus the length of Comp.MBZ field may be only 0, 1, 2 or 3 octets.
The value of the field MUST be zeroed on transmission and ignored on receipt.
For authenticated and encrypted modes:
The field definitions are the same as the unauthenticated mode, listed in ,
and includes a key-hashed message authentication code (HMAC) () hash at the end of the PDU.
One of important requirements to STAMP is ability to interwork with TWAMP Light device. There are two possible
combinations for such use case:
STAMP Session-Sender with TWAMP Light Session-Reflector;TWAMP Light Session-Sender with STAMP Session-Reflector.
In the former case, Session-Sender MAY not be aware that its Session-Reflector does not support STAMP. For example,
TWAMP Light Session-Reflector may not support use of UDP port 862 as defined in .
But because STAMP Session-Sender MUST be able to send
test packets to destination UDP port number from the Dynamic and/or Private Ports range 49152-65535, test management
system should find port number that both devices can use. And if any of TLV-based STAMP extensions are used, the TWAMP Light
Session-Reflector will view them as Packet Padding field. The Session-Sender SHOULD use the default format for its timestamps - NTP. And
it MAY use PTPv2 timestamp format.
In the latter scenario, test management system should set STAMP Session-Reflector to use UDP port number from the Dynamic and/or Private Ports range.
As for Packet Padding field that the TWAMP Light Session-Sender includes in its transmitted packet, the STAMP Session-Reflector
will process it according to and return reflected packet of the symmetrical size. The Session-Reflector MUST use the default
format for its timestamps - NTP.
This document doesn't have any IANA action. This section may be removed before the publication.
Use of HMAC in authenticated and encrypted modes may be used to simultaneously verify both the data integrity and the authentication
of the STAMP test packets.
TBD
Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control SystemsPerformance Measurement from IP Edge to Customer Equipment using TWAMP Light