summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc5357.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc5357.txt')
-rw-r--r--doc/rfc/rfc5357.txt1459
1 files changed, 1459 insertions, 0 deletions
diff --git a/doc/rfc/rfc5357.txt b/doc/rfc/rfc5357.txt
new file mode 100644
index 0000000..0bf8036
--- /dev/null
+++ b/doc/rfc/rfc5357.txt
@@ -0,0 +1,1459 @@
+
+
+
+
+
+
+Network Working Group K. Hedayat
+Request for Comments: 5357 Brix Networks
+Category: Standards Track R. Krzanowski
+ Verizon
+ A. Morton
+ AT&T Labs
+ K. Yum
+ Juniper Networks
+ J. Babiarz
+ Nortel Networks
+ October 2008
+
+
+ A Two-Way Active Measurement Protocol (TWAMP)
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Abstract
+
+ The One-way Active Measurement Protocol (OWAMP), specified in RFC
+ 4656, provides a common protocol for measuring one-way metrics
+ between network devices. OWAMP can be used bi-directionally to
+ measure one-way metrics in both directions between two network
+ elements. However, it does not accommodate round-trip or two-way
+ measurements. This memo specifies a Two-Way Active Measurement
+ Protocol (TWAMP), based on the OWAMP, that adds two-way or round-trip
+ measurement capabilities. The TWAMP measurement architecture is
+ usually comprised of two hosts with specific roles, and this allows
+ for some protocol simplifications, making it an attractive
+ alternative in some circumstances.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 1]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+Table of Contents
+
+ 1. Introduction ....................................................2
+ 1.1. Relationship of Test and Control Protocols .................3
+ 1.2. Logical Model ..............................................3
+ 1.3. Pronunciation Guide ........................................4
+ 2. Protocol Overview ...............................................5
+ 3. TWAMP-Control ...................................................6
+ 3.1. Connection Setup ...........................................6
+ 3.2. Integrity Protection .......................................7
+ 3.3. Values of the Accept Field .................................7
+ 3.4. TWAMP-Control Commands .....................................7
+ 3.5. Creating Test Sessions .....................................8
+ 3.6. Send Schedules ............................................10
+ 3.7. Starting Test Sessions ....................................10
+ 3.8. Stop-Sessions .............................................10
+ 3.9. Fetch-Session .............................................12
+ 4. TWAMP-Test .....................................................12
+ 4.1. Sender Behavior ...........................................12
+ 4.1.1. Packet Timings .....................................12
+ 4.1.2. Packet Format and Content ..........................12
+ 4.2. Reflector Behavior ........................................13
+ 4.2.1. TWAMP-Test Packet Format and Content ...............14
+ 5. Implementers' Guide ............................................20
+ 6. Security Considerations ........................................20
+ 7. Acknowledgements ...............................................21
+ 8. IANA Considerations ............................................21
+ 8.1. Registry Specification ....................................22
+ 8.2. Registry Management .......................................22
+ 8.3. Experimental Numbers ......................................22
+ 8.4. Initial Registry Contents .................................22
+ 9. Internationalization Considerations ............................22
+ Appendix I - TWAMP Light (Informative) ............................23
+ Normative References ..............................................24
+ Informative References ............................................24
+
+1. Introduction
+
+ The Internet Engineering Task Force (IETF) has completed a Proposed
+ Standard for the round-trip delay [RFC2681] metric. The IETF has
+ also completed a protocol for the control and collection of one-way
+ measurements, the One-way Active Measurement Protocol (OWAMP)
+ [RFC4656]. However, OWAMP does not accommodate round-trip or two-way
+ measurements.
+
+ Two-way measurements are common in IP networks, primarily because
+ synchronization between local and remote clocks is unnecessary for
+ round-trip delay, and measurement support at the remote end may be
+
+
+
+Hedayat, et al. Standards Track [Page 2]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ limited to a simple echo function. However, the most common facility
+ for round-trip measurements is the ICMP Echo Request/Reply (used by
+ the ping tool), and issues with this method are documented in Section
+ 2.6 of [RFC2681]. This memo specifies the Two-Way Active Measurement
+ Protocol, or TWAMP. TWAMP uses the methodology and architecture of
+ OWAMP [RFC4656] to define an open protocol for measurement of two-way
+ or round-trip metrics (henceforth in this document the term two-way
+ also signifies round-trip), in addition to the one-way metrics of
+ OWAMP. TWAMP employs time stamps applied at the echo destination
+ (reflector) to enable greater accuracy (processing delays can be
+ accounted for). The TWAMP measurement architecture is usually
+ comprised of only two hosts with specific roles, and this allows for
+ some protocol simplifications, making it an attractive alternative to
+ OWAMP in some circumstances.
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in RFC 2119 [RFC2119].
+
+1.1. Relationship of Test and Control Protocols
+
+ Similar to OWAMP [RFC4656], TWAMP consists of two inter-related
+ protocols: TWAMP-Control and TWAMP-Test. The relationship of these
+ protocols is as defined in Section 1.1 of OWAMP [RFC4656]. TWAMP-
+ Control is used to initiate, start, and stop test sessions, whereas
+ TWAMP-Test is used to exchange test packets between two TWAMP
+ entities.
+
+1.2. Logical Model
+
+ The role and definition of the logical entities are as defined in
+ Section 1.2 of OWAMP [RFC4656] with the following exceptions:
+
+ - The Session-Receiver is called the Session-Reflector in the TWAMP
+ architecture. The Session-Reflector has the capability to create
+ and send a measurement packet when it receives a measurement
+ packet. Unlike the Session-Receiver, the Session-Reflector does
+ not collect any packet information.
+
+ - The Server is an end system that manages one or more TWAMP
+ sessions, and is capable of configuring per-session state in the
+ endpoints. However, a Server associated with a Session-Reflector
+ would not have the capability to return the results of a test
+ session, and this is a difference from OWAMP.
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 3]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ - The Fetch-Client entity does not exist in the TWAMP architecture,
+ as the Session-Reflector does not collect any packet information
+ to be fetched. Consequently, there is no need for the Fetch-
+ Client.
+
+ An example of possible relationship scenarios between these roles is
+ presented below. In this example, different logical roles are played
+ on different hosts. Unlabeled links in the figure are unspecified by
+ this document and may be proprietary protocols.
+
+ +----------------+ +-------------------+
+ | Session-Sender |<-TWAMP-Test-->| Session-Reflector |
+ +----------------+ +-------------------+
+ ^ ^
+ | |
+ | |
+ | |
+ | +----------------+<----------------+
+ | | Server |
+ | +----------------+
+ | ^
+ | |
+ | TWAMP-Control
+ | |
+ v v
+ +----------------+
+ | Control-Client |
+ +----------------+
+
+ As in OWAMP [RFC4656], different logical roles can be played by the
+ same host. For example, in the figure above, there could actually be
+ two hosts: one playing the roles of Control-Client and Session-
+ Sender, and the other playing the roles of Server and Session-
+ Reflector. This example is shown below.
+
+ +-----------------+ +-------------------+
+ | Control-Client |<--TWAMP-Control-->| Server |
+ | | | |
+ | Session-Sender |<--TWAMP-Test----->| Session-Reflector |
+ +-----------------+ +-------------------+
+
+1.3. Pronunciation Guide
+
+ The acronym OWAMP is usually pronounced in two syllables, Oh-wamp.
+
+ The acronym TWAMP is also pronounced in two syllables, Tee-wamp.
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 4]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+2. Protocol Overview
+
+ The Two-Way Active Measurement Protocol is an open protocol for
+ measurement of two-way metrics. It is based on OWAMP [RFC4656] and
+ adheres to OWAMP's overall architecture and design. The TWAMP-
+ Control and TWAMP-Test protocols accomplish their testing tasks as
+ outlined below:
+
+ - The Control-Client initiates a TCP connection on TWAMP's well-
+ known port, and the Server (its role now established) responds
+ with its Greeting message, indicating the security/integrity
+ mode(s) it is willing to support.
+
+ - The Control-Client responds with the chosen mode of communication
+ and information supporting integrity protection and encryption, if
+ the mode requires them. The Server responds to accept the mode
+ and give its start time. This completes the control-connection
+ setup.
+
+ - The Control-Client requests (and describes) a test session with a
+ unique TWAMP-Control message. The Server responds with its
+ acceptance and supporting information. More than one test session
+ may be requested with additional messages.
+
+ - The Control-Client initiates all requested testing with a Start-
+ Sessions message, and the Server acknowledges.
+
+ - The Session-Sender and the Session-Reflector exchange test packets
+ according to the TWAMP-Test protocol for each active session.
+
+ - When appropriate, the Control-Client sends a message to stop all
+ test sessions.
+
+ There are two recognized extension mechanisms in the TWAMP Protocol.
+
+ 1) The Modes field is used to establish the communication options
+ during TWAMP-Control Connection Setup.
+
+ 2) The TWAMP-Control Command Number is another intended extension
+ mechanism, allowing additional commands to be defined in the
+ future.
+
+ The TWAMP-Control protocol resolves different capability levels
+ between the Control-Client and Server.
+
+ All multi-octet quantities defined in this document are represented
+ as unsigned integers in network byte order, unless specified
+ otherwise.
+
+
+
+Hedayat, et al. Standards Track [Page 5]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ Throughout this memo, the bits marked MBZ (Must Be Zero) MUST be set
+ to zero by senders and MUST be ignored by receivers.
+
+3. TWAMP-Control
+
+ TWAMP-Control is a derivative of the OWAMP-Control for two-way
+ measurements. All TWAMP-Control messages are similar in format and
+ follow similar guidelines to those defined in Section 3 of OWAMP
+ [RFC4656] with the exceptions outlined in the following sections.
+ One such exception is the Fetch-Session command, which is not used in
+ TWAMP.
+
+3.1. Connection Setup
+
+ Connection establishment of TWAMP follows the same procedure defined
+ in Section 3.1 of OWAMP [RFC4656]. The Modes field is a recognized
+ extension mechanism in TWAMP, and the current mode values are
+ identical to those used in OWAMP. The only exception is the well-
+ known port number for TWAMP-Control. A Client opens a TCP connection
+ to the Server on well-known port 862. The host that initiates the
+ TCP connection takes the roles of Control-Client and (in the two-host
+ implementation) the Session-Sender. The host that acknowledges the
+ TCP connection accepts the roles of Server and (in the two-host
+ implementation) the Session-Reflector.
+
+ The Control-Client MAY set a desired code point in the Diffserv Code
+ Point (DSCP) field in the IP header for ALL packets of a specific
+ control connection. The Server SHOULD use the DSCP of the Control-
+ Client's TCP SYN in ALL subsequent packets on that connection
+ (avoiding any ambiguity in case of re-marking).
+
+ The possibility exists for Control-Client failure after TWAMP-
+ Control connection establishment, or the path between the Control-
+ Client and Server may fail while a connection is in progress. The
+ Server MAY discontinue any established control connection when no
+ packet associated with that connection has been received within
+ SERVWAIT seconds. The Server SHALL suspend monitoring control
+ connection activity after receiving a Start-Sessions command, and
+ SHALL resume after receiving a Stop-Sessions command (IF the SERVWAIT
+ option is supported). Note that the REFWAIT timeout (described
+ below) covers failures during test sessions, and if REFWAIT expires
+ on ALL test sessions initiated by a TWAMP-Control connection, then
+ the SERVWAIT monitoring SHALL resume (as though a Stop-Sessions
+ command had been received). An implementation that supports the
+ SERVWAIT timeout SHOULD also implement the REFWAIT timeout. The
+ default value of SERVWAIT SHALL be 900 seconds, and this waiting time
+ MAY be configurable. This timeout allows the Server to free up
+ resources in case of failure.
+
+
+
+Hedayat, et al. Standards Track [Page 6]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ Both the Server and the Client use the same mappings from KeyIDs to
+ shared secrets. The Server, being prepared to conduct sessions with
+ more than one Client, uses KeyIDs to choose the appropriate secret
+ key; a Client would typically have different secret keys for
+ different Servers. The shared secret is a passphrase. To maximize
+ passphrase interoperability, the passphrase character set MUST be
+ encoded using Appendix B of [RFC5198] (the ASCII Network Virtual
+ Terminal Definition). It MUST not contain newlines (any combination
+ of Carriage-Return (CR) and/or Line-Feed (LF) characters), and
+ control characters SHOULD be avoided.
+
+3.2. Integrity Protection
+
+ Integrity protection of TWAMP follows the same procedure defined in
+ Section 3.2 of OWAMP [RFC4656]. As in OWAMP, each HMAC (Hashed
+ Message Authentication Code) sent covers everything sent in a given
+ direction between the previous HMAC (but not including it) and the
+ start of the new HMAC. This way, once encryption is set up, each bit
+ of the TWAMP-Control connection is authenticated by an HMAC exactly
+ once.
+
+ Note that the Server-Start message (sent by a Server during the
+ initial control-connection exchanges) does not terminate with an HMAC
+ field. Therefore, the HMAC in the first Accept-Session message also
+ covers the Server-Start message and includes the Start-Time field in
+ the HMAC calculation.
+
+ Also, in authenticated and encrypted modes, the HMAC in TWAMP-Control
+ packets is encrypted.
+
+3.3. Values of the Accept Field
+
+ Accept values used in TWAMP are the same as the values defined in
+ Section 3.3 of OWAMP [RFC4656].
+
+3.4. TWAMP-Control Commands
+
+ TWAMP-Control commands conform to the rules defined in Section 3.4 of
+ OWAMP [RFC4656].
+
+ The following commands are available for the Control-Client:
+ Request-TW-Session, Start-Sessions, and Stop-Sessions. The Server
+ can send specific messages in response to the commands it receives
+ (as described in the sections that follow).
+
+ Note that the OWAMP Request-Session command is replaced by the TWAMP
+ Request-TW-Session command, and the Fetch-Session command does not
+ appear in TWAMP.
+
+
+
+Hedayat, et al. Standards Track [Page 7]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+3.5. Creating Test Sessions
+
+ Test session creation follows the same procedure as defined in
+ Section 3.5 of OWAMP [RFC4656]. The Request-TW-Session command is
+ based on the OWAMP Request-Session command, and uses the message
+ format as described in Section 3.5 of OWAMP, but without the Schedule
+ Slot Descriptions field(s) and uses only one HMAC. The description
+ of the Request-TW-Session format follows.
+
+ In TWAMP, the first octet is referred to as the Command Number, and
+ the Command Number is a recognized extension mechanism. Readers are
+ encouraged to consult the TWAMP-Control Command Number registry to
+ determine if there have been additional values assigned.
+
+ The Command Number value of 5 indicates a Request-TW-Session command,
+ and the Server MUST interpret this command as a request for a two-way
+ test session using the TWAMP-Test protocol.
+
+ If a TWAMP Server receives an unexpected Command Number, it MUST
+ respond with the Accept field set to 3 (meaning "Some aspect of
+ request is not supported") in the Accept-Session message. Command
+ Numbers that are Forbidden (and possibly numbers that are Reserved)
+ are unexpected.
+
+ In OWAMP, the Conf-Sender field is set to 1 when the Request-Session
+ message describes a task where the Server will configure a one-way
+ test packet sender. Likewise, the Conf-Receiver field is set to 1
+ when the message describes the configuration for a Session-Receiver.
+ In TWAMP, both endpoints send and receive test packets, with the
+ Session-Sender first sending and then receiving test packets,
+ complimented by the Session-Reflector first receiving and then
+ sending.
+
+ Both the Conf-Sender field and Conf-Receiver field MUST be set to 0
+ since the Session-Reflector will both receive and send packets, and
+ the roles are established according to which host initiates the TCP
+ connection for control. The Server MUST interpret any non-zero value
+ as an improperly formatted command, and MUST respond with the Accept
+ field set to 3 (meaning "Some aspect of request is not supported") in
+ the Accept-Session message.
+
+ The Session-Reflector in TWAMP does not process incoming test packets
+ for performance metrics and consequently does not need to know the
+ number of incoming packets and their timing schedule. Consequently
+ the Number of Scheduled Slots and Number of Packets MUST be set to 0.
+
+ The Sender Port is the UDP port from which TWAMP-Test packets will be
+ sent and the port to which TWAMP-Test packets will be sent by the
+
+
+
+Hedayat, et al. Standards Track [Page 8]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ Session-Reflector (the Session-Sender will use the same UDP port to
+ send and receive packets). The Receiver Port is the desired UDP port
+ to which TWAMP-Test packets will be sent by the Session-Sender (the
+ port where the Session-Reflector is asked to receive test packets).
+ The Receiver Port is also the UDP port from which TWAMP-Test packets
+ will be sent by the Session-Reflector (the Session-Reflector will use
+ the same UDP port to send and receive packets).
+
+ The Sender Address and Receiver Address fields contain, respectively,
+ the sender and receiver addresses of the endpoints of the Internet
+ path over which a TWAMP-Test session is requested. They MAY be set
+ to 0, in which case the IP addresses used for the Control-Client to
+ Server TWAMP-Control message exchange MUST be used in the test
+ packets.
+
+ The Session Identifier (SID) is as defined in OWAMP [RFC4656]. Since
+ the SID is always generated by the receiving side, the Server
+ determines the SID, and the SID in the Request-TW-Session message
+ MUST be set to 0.
+
+ The Start Time is as defined in OWAMP [RFC4656].
+
+ The Timeout is interpreted differently from the definition in OWAMP
+ [RFC4656]. In TWAMP, Timeout is the interval that the Session-
+ Reflector MUST wait after receiving a Stop-Sessions message. In case
+ there are test packets still in transit, the Session-Reflector MUST
+ reflect them if they arrive within the Timeout interval following the
+ reception of the Stop-Sessions message. The Session-Reflector MUST
+ NOT reflect packets that are received beyond the timeout.
+
+ Type-P descriptor is as defined in OWAMP [RFC4656]. The only
+ capability of this field is to set the Differentiated Services Code
+ Point (DSCP) as defined in [RFC2474]. The same value of DSCP MUST be
+ used in test packets reflected by the Session-Reflector.
+
+ Since there are no Schedule Slot Descriptions, the Request-TW-Session
+ message is completed by MBZ (Must Be Zero) and HMAC fields. This
+ completes one logical message, referred to as the Request-TW-Session
+ command.
+
+ The Session-Reflector MUST respond to each Request-TW-Session command
+ with an Accept-Session message as defined in OWAMP [RFC4656]. When
+ the Accept field = 0, the Port field confirms (repeats) the port to
+ which TWAMP-Test packets are sent by the Session-Sender toward the
+ Session-Reflector. In other words, the Port field indicates the port
+ number where the Session-Reflector expects to receive packets from
+ the Session-Sender.
+
+
+
+
+Hedayat, et al. Standards Track [Page 9]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ When the requested Receiver Port is not available (e.g., port in
+ use), the Server at the Session-Reflector MAY suggest an alternate
+ and available port for this session in the Port field. The Session-
+ Sender either accepts the alternate port, or composes a new Session-
+ Request message with suitable parameters. Otherwise, the Server at
+ the Control-Client uses the Accept field to convey other forms of
+ session rejection or failure and MUST NOT suggest an alternate port;
+ in this case, the Port field MUST be set to zero.
+
+3.6. Send Schedules
+
+ The send schedule for test packets defined in Section 3.6 of OWAMP
+ [RFC4656] is not used in TWAMP. The Control-Client and Session-
+ Sender MAY autonomously decide the send schedule. The Session-
+ Reflector SHOULD return each test packet to the Session-Sender as
+ quickly as possible.
+
+3.7. Starting Test Sessions
+
+ The procedure and guidelines for starting test sessions is the same
+ as defined in Section 3.7 of OWAMP [RFC4656].
+
+3.8. Stop-Sessions
+
+ The procedure and guidelines for stopping test sessions is similar to
+ that defined in Section 3.8 of OWAMP [RFC4656]. The Stop-Sessions
+ command can only be issued by the Control-Client. The message MUST
+ NOT contain any session description records or skip ranges. The
+ message is terminated with a single block HMAC to complete the Stop-
+ Sessions command. Since the TWAMP Stop-Sessions command does not
+ convey SIDs, it applies to all sessions previously requested and
+ started with a Start-Sessions command.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 10]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ Thus, the TWAMP Stop-Sessions command is constructed as follows:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 3 | Accept | MBZ |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Number of Sessions |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | MBZ (8 octets) |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ | HMAC (16 octets) |
+ | |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Above, the Command Number in the first octet (3) indicates that this
+ is the Stop-Sessions command.
+
+ Non-zero Accept values indicate a failure of some sort. Zero values
+ indicate normal (but possibly premature) completion. The full list
+ of available Accept values is described in Section 3.3 of [RFC4656],
+ "Values of the Accept Field".
+
+ If Accept has a non-zero value, results of all TWAMP-Test sessions
+ spawned by this TWAMP-Control session SHOULD be considered invalid.
+ If the Accept-Session message was not transmitted at all (for
+ whatever reason, including failure of the TCP connection used for
+ TWAMP-Control), the results of all TWAMP-Test sessions spawned by
+ this TWAMP-Control session MAY be considered invalid.
+
+ Number of Sessions indicates the number of sessions that the
+ Control-Client intends to stop.
+
+ Number of Sessions MUST contain the number of send sessions started
+ by the Control-Client that have not been previously terminated by a
+ Stop-Sessions command (i.e., the Control-Client MUST account for each
+ accepted Request-Session). If the Stop-Sessions message does not
+ account for exactly the number of sessions in progress, then it is to
+ be considered invalid, the TWAMP-Control connection SHOULD be closed,
+ and any results obtained considered invalid.
+
+ Upon receipt of a TWAMP-Control Stop-Sessions command, the Session-
+ Reflector MUST discard any TWAMP-Test packets that arrive at the
+ current time plus the Timeout (in the Request-TW-Session command).
+
+
+
+
+Hedayat, et al. Standards Track [Page 11]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+3.9. Fetch-Session
+
+ One purpose of TWAMP is measurement of two-way metrics. Two-way
+ measurement methods do not require packet-level data to be collected
+ by the Session-Reflector (such as sequence number, timestamp, and
+ Time to Live (TTL)) because this data is communicated in the
+ "reflected" test packets. As such, the protocol does not require the
+ retrieval of packet-level data from the Server and the OWAMP Fetch-
+ Session command is not used in TWAMP.
+
+4. TWAMP-Test
+
+ The TWAMP-Test protocol is similar to the OWAMP-test protocol
+ [RFC4656] with the exception that the Session-Reflector transmits
+ test packets to the Session-Sender in response to each test packet it
+ receives. TWAMP defines two different test packet formats, one for
+ packets transmitted by the Session-Sender and one for packets
+ transmitted by the Session-Reflector. As with OWAMP-test protocol
+ [RFC4656], there are three modes: unauthenticated, authenticated, and
+ encrypted.
+
+4.1. Sender Behavior
+
+ The sender behavior is determined by the configuration of the
+ Session-Sender and is not defined in this standard. Further, the
+ Session-Reflector does not need to know the Session-Sender behavior
+ to the degree of detail as needed in OWAMP [RFC4656]. Additionally,
+ the Session-Sender collects and records the necessary information
+ provided from the packets transmitted by the Session-Reflector for
+ measuring two-way metrics. The information recording based on the
+ packet(s) received by the Session-Sender is implementation dependent.
+
+4.1.1. Packet Timings
+
+ Since the send schedule is not communicated to the Session-Reflector,
+ there is no need for a standardized computation of packet timing.
+
+ Regardless of any scheduling delays, each packet that is actually
+ sent MUST have the best possible approximation of its real time of
+ departure as its timestamp (in the packet).
+
+4.1.2. Packet Format and Content
+
+ The Session-Sender packet format and content follow the same
+ procedure and guidelines as defined in Section 4.1.2 of OWAMP
+ [RFC4656] (with the exception of the reference to the send schedule).
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 12]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ Note that the Reflector test packet formats are larger than the
+ Sender's formats. The Session-Sender MAY append sufficient Packet
+ Padding to allow the same IP packet payload lengths to be used in
+ each direction of transmission (this is usually desirable). To
+ compensate for the Reflector's larger test packet format, the Sender
+ appends at least 27 octets of padding in unauthenticated mode, and at
+ least 56 octets in authenticated and encrypted modes.
+
+4.2. Reflector Behavior
+
+ TWAMP requires the Session-Reflector to transmit a packet to the
+ Session-Sender in response to each packet it receives.
+
+ As packets are received, the Session-Reflector will do the following:
+
+ - Timestamp the received packet. Each packet that is actually
+ received MUST have the best possible approximation of its real
+ time of arrival entered as its Received Timestamp (in the packet).
+
+ - In authenticated or encrypted mode, decrypt the appropriate
+ sections of the packet body (first block (16 octets) for
+ authenticated, 96 octets for encrypted), and then check integrity
+ of sections covered by the HMAC.
+
+ - Copy the packet sequence number into the corresponding reflected
+ packet to the Session-Sender.
+
+ - Extract the Sender TTL value from the TTL/Hop Limit value of
+ received packets. Session-Reflector implementations SHOULD fetch
+ the TTL/Hop Limit value from the IP header of the packet,
+ replacing the value of 255 set by the Session-Sender. If an
+ implementation does not fetch the actual TTL value (the only good
+ reason not to do so is an inability to access the TTL field of
+ arriving packets), it MUST set the Sender TTL value as 255.
+
+ - In authenticated and encrypted modes, the HMAC MUST be calculated
+ first, then the appropriate portion of the packet body is
+ encrypted.
+
+ - Transmit a test packet to the Session-Sender in response to every
+ received packet. The response MUST be generated as immediately as
+ possible. The format and content of the test packet is defined in
+ Section 4.2.1. Prior to the transmission of the test packet, the
+ Session-Reflector MUST enter the best possible approximation of
+ its actual sending time as its Timestamp (in the packet). This
+ permits the determination of the elapsed time between the
+ reception of the packet and its transmission.
+
+
+
+
+Hedayat, et al. Standards Track [Page 13]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ - Packets not received within the Timeout (following the Stop-
+ Sessions command) MUST be ignored by the Reflector. The Session-
+ Reflector MUST NOT generate a test packet to the Session-Sender
+ for packets that are ignored.
+
+ The possibility exists for Session-Sender failure during a session,
+ or the path between the Session-Sender and Session-Reflector may fail
+ while a test session is in progress. The Session-Reflector MAY
+ discontinue any session that has been started when no packet
+ associated with that session has been received for REFWAIT seconds.
+ The default value of REFWAIT SHALL be 900 seconds, and this waiting
+ time MAY be configurable. This timeout allows a Session-Reflector to
+ free up resources in case of failure.
+
+4.2.1. TWAMP-Test Packet Format and Content
+
+ The Session-Reflector MUST transmit a packet to the Session-Sender in
+ response to each packet received. The Session-Reflector SHOULD
+ transmit the packets as immediately as possible. The Session-
+ Reflector SHOULD set the TTL in IPv4 (or Hop Limit in IPv6) in the
+ UDP packet to 255.
+
+ The test packet will have the necessary information for calculating
+ two-way metrics by the Session-Sender. The format of the test packet
+ depends on the mode being used. The two formats are presented below.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 14]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ For unauthenticated mode:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sequence Number |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Timestamp |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Error Estimate | MBZ |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Receive Timestamp |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sender Sequence Number |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sender Timestamp |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sender Error Estimate | MBZ |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sender TTL | |
+ +-+-+-+-+-+-+-+-+ +
+ | |
+ . .
+ . Packet Padding .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 15]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ For authenticated and encrypted modes:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sequence Number |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | MBZ (12 octets) |
+ | |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Timestamp |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Error Estimate | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+ | MBZ (6 octets) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Receive Timestamp |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | MBZ (8 octets) |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sender Sequence Number |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | MBZ (12 octets) |
+ | |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sender Timestamp |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sender Error Estimate | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+ | MBZ (6 octets) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sender TTL | |
+ +-+-+-+-+-+-+-+-+ +
+ | |
+ | |
+ | MBZ (15 octets) |
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ | HMAC (16 octets) |
+ | |
+ | |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
+
+
+
+Hedayat, et al. Standards Track [Page 16]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ | |
+ . .
+ . Packet Padding .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Note that all timestamps have the same format as OWAMP [RFC4656] as
+ follows:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Integer part of seconds |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Fractional part of seconds |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Sequence Number is the sequence number of the test packet according
+ to its transmit order. It starts with zero and is incremented by one
+ for each subsequent packet. The Sequence Number generated by the
+ Session-Reflector is independent from the sequence number of the
+ arriving packets.
+
+ Timestamp and Error Estimate are the Session-Reflector's transmit
+ timestamp and error estimate for the reflected test packet,
+ respectively. The format of all timestamp and error estimate fields
+ follow the definition and formats defined by OWAMP, Section 4.1.2 in
+ [RFC4656].
+
+ Sender Timestamp and Sender Error Estimate are exact copies of the
+ timestamp and error estimate from the Session-Sender test packet that
+ corresponds to this test packet.
+
+ Sender TTL is 255 when transmitted by the Session-Sender. Sender TTL
+ is set to the Time To Live (or Hop Count) value of the received
+ packet from the IP packet header when transmitted by the Session-
+ Reflector.
+
+ Receive Timestamp is the time the test packet was received by the
+ reflector. The difference between Timestamp and Receive Timestamp is
+ the amount of time the packet was in transition in the Session-
+ Reflector. The Error Estimate associated with the Timestamp field
+ also applies to the Receive Timestamp.
+
+ Sender Sequence Number is a copy of the Sequence Number of the packet
+ transmitted by the Session-Sender that caused the Session-Reflector
+ to generate and send this test packet.
+
+
+
+Hedayat, et al. Standards Track [Page 17]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ The HMAC field in TWAMP-Test packets covers the same fields as the
+ Advanced Encryption Standard (AES) encryption. Thus, in
+ authenticated mode, HMAC covers the first block (16 octets); in
+ encrypted mode, HMAC covers the first six blocks (96 octets). In
+ TWAMP-Test, the HMAC field MUST NOT be encrypted.
+
+ Packet Padding in TWAMP-Test SHOULD be pseudo-random (it MUST be
+ generated independently of any other pseudo-random numbers mentioned
+ in this document). However, implementations MUST provide a
+ configuration parameter, an option, or a different means of making
+ Packet Padding consist of all zeros. Packet Padding MUST NOT be
+ covered by the HMAC and MUST NOT be encrypted.
+
+ The minimum data segment length of TWAMP-Test packets in
+ unauthenticated mode is 41 octets, and 104 octets in both
+ authenticated mode and encrypted modes.
+
+ Note that the Session-Reflector Test packet formats are larger than
+ the Sender's formats. The Session-Reflector SHOULD reduce the length
+ of the Sender's Packet Padding to achieve equal IP packet payload
+ lengths in each direction of transmission, when sufficient padding is
+ present. The Session-Reflector MAY re-use the Sender's Packet
+ Padding (since the requirements for padding generation are the same
+ for each), and in this case the Session-Reflector SHOULD truncate the
+ padding such that the highest-number octets are discarded.
+
+ In unauthenticated mode, encryption or authentication MUST NOT be
+ applied.
+
+ The TWAMP-Test packet layout is identical in authenticated and
+ encrypted modes. The encryption operation for a Session-Sender
+ packet follows the same rules of Session-Sender packets as defined in
+ OWAMP section 4.1.2 of [RFC4656].
+
+ The main difference between authenticated mode and encrypted mode is
+ the portion of the test packets that are covered by HMAC and
+ encrypted. Authenticated mode permits the timestamp to be fetched
+ after a portion of the packet is encrypted, but in encrypted mode all
+ the sequence numbers and timestamps are fetched before encryption to
+ provide maximum data-integrity protection.
+
+ In authenticated mode, only the sequence number in the first block is
+ encrypted, and the subsequent timestamps and sequence numbers are
+ sent in clear text. Sending the timestamp in clear text allows one
+ to reduce the time between when a timestamp is obtained by a
+ Session-Reflector and when that packet is sent out. This potentially
+ improves the timestamp accuracy, because the sequence number can be
+ encrypted before the timestamp is fetched.
+
+
+
+Hedayat, et al. Standards Track [Page 18]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ In encrypted mode, the reflector MUST fetch the timestamps, generate
+ the HMAC, and encrypt the packet, then send it.
+
+ Obtaining the keys and encryption methods follows the same procedure
+ as OWAMP as described below. Each TWAMP-Test session has two keys,
+ an AES Session-key and an HMAC Session-key, and the keys are derived
+ from the TWAMP-Control keys and the SID.
+
+ The TWAMP-Test AES Session-key is obtained as follows: the TWAMP-
+ Control AES Session-key (the same AES Session-key as used for the
+ corresponding TWAMP-Control session) is encrypted with the 16-octet
+ session identifier (SID) as the key, using a single-block AES-ECB
+ encryption. The result is the TWAMP-Test AES Session-key to be used
+ in encrypting (and decrypting) the packets of the particular TWAMP-
+ Test session. Note that the TWAMP-Test AES Session-key, TWAMP-
+ Control AES Session-key, and the SID are all comprised of 16 octets.
+
+ The TWAMP-Test HMAC Session-key is obtained as follows: the TWAMP-
+ Control HMAC Session-key (the same HMAC Session-key as used for the
+ corresponding TWAMP-Control session) is encrypted using AES-CBC
+ (Cipher Block Chaining) with the 16-octet session identifier (SID) as
+ the key. This is a two-block CBC encryption that is always performed
+ with IV=0. Note that the TWAMP-Test HMAC Session-key and TWAMP-
+ Control HMAC Session-key are comprised of 32 octets, while the SID is
+ 16 octets.
+
+ In authenticated mode, the first block (16 octets) of each TWAMP-Test
+ packet is encrypted using the AES Electronic Codebook (ECB) mode.
+ This mode does not involve any chaining, and lost, duplicated, or
+ reordered packets do not cause problems with deciphering any packet
+ in a TWAMP-Test session.
+
+ In encrypted mode, the first six blocks (96 octets) are encrypted
+ using AES-CBC mode. The AES Session-key to use is obtained in the
+ same way as the key for authenticated mode. Each TWAMP-Test packet
+ is encrypted as a separate stream, with just one chaining operation;
+ chaining does not span multiple packets so that lost, duplicated, or
+ reordered packets do not cause problems. The initialization vector
+ for the CBC encryption is a value with all bits equal to zero.
+
+ Implementation Note: Naturally, the key schedule for each TWAMP-Test
+ session MUST be set up at most once per session, not once per packet.
+
+
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 19]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+5. Implementers' Guide
+
+ This section serves as guidance to implementers of TWAMP. The
+ example architecture presented here is not a requirement. Similar to
+ OWAMP [RFC4656], TWAMP is designed with enough flexibility to allow
+ different architectures that suit multiple system requirements.
+
+ In this example, the roles of Control-Client and Session-Sender are
+ implemented in one host referred to as the controller, and the roles
+ of Server and Session-Reflector are implemented in another host
+ referred to as the responder.
+
+ controller responder
+ +-----------------+ +-------------------+
+ | Control-Client |<--TWAMP-Control-->| Server |
+ | | | |
+ | Session-Sender |<--TWAMP-Test----->| Session-Reflector |
+ +-----------------+ +-------------------+
+
+ This example provides an architecture that supports the full TWAMP
+ standard. The controller establishes the test session with the
+ responder through the TWAMP-Control protocol. After the session is
+ established, the controller transmits test packets to the responder.
+ The responder follows the Session-Reflector behavior of TWAMP as
+ described in Section 4.2.
+
+ Appendix I provides an example for purely informational purposes. It
+ suggests an incremental path to adopting TWAMP, by implementing the
+ TWAMP-Test protocol first.
+
+6. Security Considerations
+
+ Fundamentally, TWAMP and OWAMP use the same protocol for
+ establishment of Control and Test procedures. The main difference
+ between TWAMP and OWAMP is the Session-Reflector behavior in TWAMP
+ vs. the Session-Receiver behavior in OWAMP. This difference in
+ behavior does not introduce any known security vulnerabilities that
+ are not already addressed by the security features of OWAMP. The
+ entire security considerations of OWAMP [RFC4656] applies to TWAMP.
+
+ The Server-Greeting message (defined in OWAMP, Section 3.1 of
+ [RFC4656]) includes a Count field to specify the iteration counter
+ used in PKCS #5 to generate keys from shared secrets. OWAMP
+ recommends a lower limit of 1024 iterations, but no upper limit. The
+ Count field provides an opportunity for a denial-of-service (DOS)
+ attack because it is 32 bits long. If an attacking system set the
+ maximum value in Count (2**32), then the system under attack would
+ stall for a significant period of time while it attempts to generate
+
+
+
+Hedayat, et al. Standards Track [Page 20]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ keys. Therefore, TWAMP-compliant systems SHOULD have a configuration
+ control to limit the maximum Count value. The default maximum Count
+ value SHOULD be 32768. As suggested in OWAMP, this value MAY be
+ increased when greater computing power becomes common. If a
+ Control-Client receives a Server-Greeting message with Count greater
+ that its maximum configured value, it SHOULD close the control
+ connection.
+
+7. Acknowledgements
+
+ We would like to thank Nagarjuna Venna, Sharee McNab, Nick Kinraid,
+ Stanislav Shalunov, Matt Zekauskas, Walt Steverson, Jeff Boote,
+ Murtaza Chiba, and Kevin Earnst for their comments, suggestions,
+ reviews, helpful discussion, and proof-reading. Lars Eggert, Sam
+ Hartman, and Tim Polk contributed very useful AD-level reviews, and
+ the authors thank them for their contributions to the memo.
+
+8. IANA Considerations
+
+ IANA has allocated a well-known TCP port number (861) for the OWAMP-
+ Control part of the OWAMP [RFC4656] protocol.
+
+ ...
+ owamp-control 861/tcp OWAMP-Control
+ owamp-control 861/udp OWAMP-Control
+ # [RFC4656]
+
+ IANA has also allocated a well-known TCP/UDP port number for the
+ TWAMP-Control protocol.
+
+ ...
+ twamp-control 862/tcp Two-way Active Measurement Protocol
+ (TWAMP) Control
+ twamp-control 862/udp Two-way Active Measurement Protocol
+ (TWAMP) Control
+ # [RFC5357]
+ # 863-872 Unassigned
+
+ Since TWAMP adds an additional Control command beyond the OWAMP-
+ Control specification and describes behavior when this control
+ command is used, IANA has created a registry for the TWAMP Command
+ Number field. The field is not explicitly named in [RFC4656] but is
+ called out for each command. This field is a recognized extension
+ mechanism for TWAMP.
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 21]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+8.1. Registry Specification
+
+ IANA has created a TWAMP-Control Command Number registry. TWAMP-
+ Control commands are specified by the first octet in OWAMP-Control
+ messages as shown in Section 3.5 of [RFC4656], and modified by this
+ document. Thus, this registry may contain sixteen possible values.
+
+8.2. Registry Management
+
+ Because the registry may only contain sixteen values, and because
+ OWAMP and TWAMP are IETF protocols, this registry must only be
+ updated by "IETF Consensus" as specified in [RFC5226] -- an RFC
+ documenting the use that is approved by the IESG. We expect that new
+ values will be assigned as monotonically increasing integers in the
+ range [0-15], unless there is a good reason to do otherwise.
+
+8.3. Experimental Numbers
+
+ [RFC3692] recommends allocating an appropriate number of values for
+ experimentation and testing. It is not clear to the authors exactly
+ how many numbers might be useful in this space, or if it would be
+ useful that they were easily distinguishable or at the "high end" of
+ the number range. Two might be useful, say one for session control,
+ and one for session fetch. On the other hand, a single number would
+ allow for unlimited extension, because the format of the rest of the
+ message could be tailored, with allocation of other numbers done once
+ usefulness has been proven. Thus, this document allocates one number
+ (6) as designated for experimentation and testing.
+
+8.4. Initial Registry Contents
+
+ TWAMP-Control Command Number Registry
+
+ Value Description Semantics Definition
+ 0 Reserved
+ 1 Forbidden
+ 2 Start-Sessions RFC 4656, Section 3.7
+ 3 Stop-Sessions RFC 4656, Section 3.8
+ 4 Reserved
+ 5 Request-TW-Session this document, Section 3.5
+ 6 Experimentation undefined, see Section 8.3.
+
+9. Internationalization Considerations
+
+ The protocol does not carry any information in a natural language,
+ with the possible exception of the KeyID in TWAMP-Control, which is
+ encoded in UTF-8 [RFC3629, RFC5198].
+
+
+
+
+Hedayat, et al. Standards Track [Page 22]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+Appendix I - TWAMP Light (Informative)
+
+ In this example, the roles of Control-Client, Server, and Session-
+ Sender are implemented in one host referred to as the controller, and
+ the role of Session-Reflector is implemented in another host referred
+ to as the responder.
+
+ controller responder
+ +-----------------+ +-------------------+
+ | Server |<----------------->| |
+ | Control-Client | | Session-Reflector |
+ | Session-Sender |<--TWAMP-Test----->| |
+ +-----------------+ +-------------------+
+
+ This example provides a simple architecture for responders where
+ their role will be to simply act as light test points in the network.
+ The controller establishes the test session with the Server through
+ non-standard means. After the session is established, the controller
+ transmits test packets to the responder. The responder follows the
+ Session-Reflector behavior of TWAMP as described in section 4.2 with
+ the following exceptions.
+
+ In the case of TWAMP Light, the Session-Reflector does not
+ necessarily have knowledge of the session state. IF the Session-
+ Reflector does not have knowledge of the session state, THEN the
+ Session-Reflector MUST copy the Sequence Number of the received
+ packet to the Sequence Number field of the reflected packet. The
+ controller receives the reflected test packets and collects two-way
+ metrics. This architecture allows for collection of two-way metrics.
+
+ This example eliminates the need for the TWAMP-Control protocol, and
+ assumes that the Session-Reflector is configured and communicates its
+ configuration with the Server through non-standard means. The
+ Session-Reflector simply reflects the incoming packets back to the
+ controller while copying the necessary information and generating
+ sequence number and timestamp values per Section 4.2.1. TWAMP Light
+ introduces some additional security considerations. The non-standard
+ means to control the responder and establish test sessions SHOULD
+ offer the features listed below.
+
+ The non-standard responder control protocol SHOULD have an
+ authenticated mode of operation. The responder SHOULD be
+ configurable to accept only authenticated control sessions.
+
+ The non-standard responder control protocol SHOULD have a means to
+ activate the authenticated and encrypted modes of the TWAMP-Test
+ protocol.
+
+
+
+
+Hedayat, et al. Standards Track [Page 23]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+ When the TWAMP Light test sessions operate in authenticated or
+ encrypted mode, the Session-Reflector MUST have some mechanism for
+ generating keys (because the TWAMP-Control protocol normally plays a
+ role in this process, but is not present here). The specification of
+ the key generation mechanism is beyond the scope of this memo.
+
+Normative References
+
+ [RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M.
+ Zekauskas, "A One-way Active Measurement Protocol (OWAMP)",
+ RFC 4656, September 2006.
+
+ [RFC2681] Almes, G., Kalidindi, S., and M. Zekauskas, "A Round-trip
+ Delay Metric for IPPM", RFC 2681, September 1999.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black,
+ "Definition of the Differentiated Services Field (DS Field)
+ in the IPv4 and IPv6 Headers", RFC 2474, December 1998.
+
+ [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
+ IANA Considerations Section in RFCs", BCP 26, RFC 5226, May
+ 2008.
+
+ [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646",
+ STD 63, RFC 3629, November 2003.
+
+ [RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network
+ Interchange", RFC 5198, March 2008.
+
+Informative References
+
+ [RFC3692] Narten, T., "Assigning Experimental and Testing Numbers
+ Considered Useful", BCP 82, RFC 3692, January 2004.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 24]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+Authors' Addresses
+
+ Kaynam Hedayat
+ Brix Networks
+ 285 Mill Road
+ Chelmsford, MA 01824
+ USA
+ EMail: khedayat@brixnet.com
+ URI: http://www.brixnet.com/
+
+ Roman M. Krzanowski, Ph.D.
+ Verizon
+ 500 Westchester Ave.
+ White Plains, NY
+ USA
+ EMail: roman.krzanowski@verizon.com
+ URI: http://www.verizon.com/
+
+ Al Morton
+ AT&T Labs
+ Room D3 - 3C06
+ 200 Laurel Ave. South
+ Middletown, NJ 07748
+ USA
+ Phone +1 732 420 1571
+ EMail: acmorton@att.com
+ URI: http://home.comcast.net/~acmacm/
+
+ Kiho Yum
+ Juniper Networks
+ 1194 Mathilda Ave.
+ Sunnyvale, CA
+ USA
+ EMail: kyum@juniper.net
+ URI: http://www.juniper.com/
+
+ Jozef Z. Babiarz
+ Nortel Networks
+ 3500 Carling Avenue
+ Ottawa, Ont K2H 8E9
+ Canada
+ Email: babiarz@nortel.com
+ URI: http://www.nortel.com/
+
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 25]
+
+RFC 5357 Two-Way Active Measurement Protocol October 2008
+
+
+Full Copyright Statement
+
+ Copyright (C) The IETF Trust (2008).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
+ THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
+ THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+
+
+
+
+
+
+
+
+
+
+
+Hedayat, et al. Standards Track [Page 26]
+