< draft-ietf-ippm-twamp-06.txt   draft-ietf-ippm-twamp-07.txt >
Network Working Group K. Hedayat
Internet Draft Brix Networks
Expires: Nov 2008 R. Krzanowski
Intended Status:Standards Track Verizon
A. Morton
AT&T Labs
K. Yum
Juniper Networks
J. Babiarz
Nortel Networks
May 13, 2008
K. Hedayat A Two-way Active Measurement Protocol (TWAMP)
Internet Draft Brix Networks draft-ietf-ippm-twamp-07
Expires: June 2008 R. Krzanowski
Verizon
K. Yum
Juniper Networks
A. Morton
AT&T Labs
J. Babiarz
Nortel Networks
December 2007
A Two-way Active Measurement Protocol (TWAMP)
draft-ietf-ippm-twamp-06
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as other groups may also distribute working documents as
Internet-Drafts. Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-Drafts documents at any time. It is inappropriate to use Internet-Drafts
as reference material or to cite them other than as "work in as reference material or to cite them other than as "work in
progress." progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2008).
Abstract Abstract
The IP Performance Metrics (IPPM) working group's One-way Active The One-way Active Measurement Protocol [RFC4656] (OWAMP) provides
Measurement Protocol [RFC4656] (OWAMP) provides a common protocol a common protocol for measuring one-way metrics between network
for measuring one-way metrics between network devices. OWAMP can devices. OWAMP can be used bi-directionally to measure one-way
be used bi-directionally to measure one-way metrics in both metrics in both directions between two network elements. However,
directions between two network elements. However, it does not it does not accommodate round-trip or two-way measurements. This
accommodate round-trip or two-way measurements. This memo memo specifies a Two-way Active Measurement Protocol (TWAMP), based
specifies a Two-way Active Measurement Protocol (TWAMP), based on on the OWAMP, that adds two-way or round-trip measurement
the OWAMP, that adds two-way or round-trip measurement capabilities. The TWAMP measurement architecture is usually
capabilities. The TWAMP measurement architecture is usually comprised of two hosts with specific roles, and this allows for
comprised of two hosts with specific roles, and this allows for some protocol simplifications, making it an attractive alternative
some protocol simplifications, making it an attractive alternative in some circumstances.
in some circumstances.
Table of Contents Table of Contents
1. Introduction..................................................3 1. Introduction..................................................3
1.1 Relationship of Test and Control Protocols................3 1.1 Relationship of Test and Control Protocols................3
1.2 Logical Model.............................................3 1.2 Logical Model.............................................3
2. Protocol Overview.............................................5 1.3 Pronunciation Guide.......................................5
3. TWAMP Control.................................................5 2. Protocol Overview.............................................5
3.1 Connection Setup..........................................6 3. TWAMP Control.................................................6
3.2 Integrity Protection......................................6 3.1 Connection Setup..........................................6
3.3 Value of the Accept Fields................................6 3.2 Integrity Protection......................................7
3.4 TWAMP Control Commands....................................6 3.3 Value of the Accept Fields................................7
3.5 Creating Test Sessions....................................6 3.4 TWAMP Control Commands....................................7
3.6 Send Schedules............................................9 3.5 Creating Test Sessions....................................8
3.7 Starting Test Sessions....................................9 3.6 Send Schedules...........................................10
3.8 Stop-Sessions.............................................9 3.7 Starting Test Sessions...................................10
3.9 Fetch-Session.............................................9 3.8 Stop-Sessions............................................10
4. TWAMP Test....................................................9 3.9 Fetch-Session............................................11
4.1 Sender Behavior..........................................10 4. TWAMP Test...................................................11
4.2 Reflector Behavior.......................................10 4.1 Sender Behavior..........................................12
5. Implementers Guide...........................................16 4.2 Reflector Behavior.......................................12
5.1 Complete TWAMP...........................................17 5. Implementers Guide...........................................19
5.2 TWAMP Light..............................................17 6. Security Considerations......................................19
6. Security Considerations......................................18 7. Acknowledgements.............................................20
7. Acknowledgements.............................................18 8. IANA Considerations..........................................20
8. IANA Considerations..........................................19 8.1 Registry Specification...................................20
8.1 Registry Specification...................................19 8.2 Registry Management......................................21
8.2 Registry Management......................................19 8.3 Experimental Numbers.....................................21
8.3 Experimental Numbers.....................................20 8.4 Initial Registry Contents................................21
8.4 Initial Registry Contents................................20 9. Internationalization Considerations..........................21
9. Internationalization Considerations..........................20 10. APPENDIX I - TWAMP Light (Informative)......................22
10. References..................................................21 11. References..................................................23
10.1 Normative References....................................21 11.1 Normative References....................................23
10.2 Informative References..................................21 11.2 Informative References..................................23
1. Introduction 1. Introduction
The IETF IP Performance Metrics (IPPM) working group has completed The Internet Engineering Task Force (IETF) has completed a Proposed
a draft standard for the round-trip delay [RFC2681] metric. IPPM standard for the round-trip delay [RFC2681] metric. IETF has also
has also completed a protocol for the control and collection of completed a protocol for the control and collection of one-way
one-way measurements, the One-way Active Measurement Protocol measurements, the One-way Active Measurement Protocol (OWAMP)
(OWAMP) [RFC4656]. However, OWAMP does not accommodate round-trip [RFC4656]. However, OWAMP does not accommodate round-trip or two-
or two-way measurements. way measurements.
Two-way measurements are common in IP networks, primarily because Two-way measurements are common in IP networks, primarily because
time accuracy is less demanding for round-trip delay, and synchronization between local and remote clocks is unnecessary for
measurement support at the remote end may be limited to a simple round-trip delay, and measurement support at the remote end may be
echo function. This memo specifies the Two-way Active Measurement limited to a simple echo function. This memo specifies the Two-way
Protocol, or TWAMP. TWAMP uses the methodology and architecture of Active Measurement Protocol, or TWAMP. TWAMP uses the methodology
OWAMP [RFC4656] to define an open protocol for measurement of and architecture of OWAMP [RFC4656] to define an open protocol for
two-way or round-trip metrics (henceforth in this document the term measurement of two-way or round-trip metrics (henceforth in this
two-way also signifies round-trip). The TWAMP measurement document the term two-way also signifies round-trip). The TWAMP
architecture is usually comprised of only two hosts with specific measurement architecture is usually comprised of only two hosts
roles, and this allows for some protocol simplifications, making it with specific roles, and this allows for some protocol
an attractive alternative to OWAMP in some circumstances. simplifications, making it an attractive alternative to OWAMP in
some circumstances.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
RFC 2119 [RFC2119]. RFC 2119 [RFC2119].
1.1 Relationship of Test and Control Protocols 1.1 Relationship of Test and Control Protocols
Similar to OWAMP [RFC4656], TWAMP consists of two inter-related Similar to OWAMP [RFC4656], TWAMP consists of two inter-related
protocols: TWAMP-Control and TWAMP-Test. The relationship of these protocols: TWAMP-Control and TWAMP-Test. The relationship of these
protocols is as defined in section 1.1 of OWAMP [RFC4656]. protocols is as defined in section 1.1 of OWAMP [RFC4656].
TWAMP-Control is used to initiate, start, and stop test sessions, TWAMP-Control is used to initiate, start, and stop test sessions,
whereas TWAMP-Test is used to exchange test packets between two whereas TWAMP-Test is used to exchange test packets between two
TWAMP entities. TWAMP entities.
1.2 Logical Model 1.2 Logical Model
The role and definition of the logical entities are as defined in The role and definition of the logical entities are as defined in
section 1.2 of OWAMP [RFC4656] with the following exceptions: section 1.2 of OWAMP [RFC4656] with the following exceptions:
- The Session-Receiver is called the Session-Reflector in the - The Session-Receiver is called the Session-Reflector in the
TWAMP architecture. The Session-Reflector has the capability TWAMP architecture. The Session-Reflector has the capability
to create and send a measurement packet when it receives a to create and send a measurement packet when it receives a
measurement packet. Unlike the Session-Receiver, the measurement packet. Unlike the Session-Receiver, the
Session-Reflector does not collect any packet information. Session-Reflector does not collect any packet information.
- The Server is an end system that manages one or more TWAMP - The Server is an end system that manages one or more TWAMP
sessions, and is capable of configuring per-session state in sessions, and is capable of configuring per-session state in
the end-points. However, a Server associated with a the end-points. However, a Server associated with a
Session-Reflector would not have the capability to return the Session-Reflector would not have the capability to return the
results of a test session, and this is a difference from OWAMP. results of a test session, and this is a difference from OWAMP.
- The Fetch-Client entity does not exist in the TWAMP - The Fetch-Client entity does not exist in the TWAMP
architecture, as the Session-Reflector does not collect any architecture, as the Session-Reflector does not collect any
packet information to be fetched. Consequently there is no packet information to be fetched. Consequently there is no
need for the Fetch-Client. need for the Fetch-Client.
An example of possible relationship scenarios between these roles An example of possible relationship scenarios between these roles
are presented below. In this example different logical roles are are presented below. In this example different logical roles are
played on different hosts. Unlabeled links in the figure are played on different hosts. Unlabeled links in the figure are
unspecified by this document and may be proprietary protocols. unspecified by this document and may be proprietary protocols.
+----------------+ +-------------------+ +----------------+ +-------------------+
| Session-Sender |<-TWAMP-Test-->| Session-Reflector | | Session-Sender |<-TWAMP-Test-->| Session-Reflector |
+----------------+ +-------------------+ +----------------+ +-------------------+
^ ^ ^ ^
| | | |
| | | |
| | | |
| +----------------+<----------------+ | +----------------+<----------------+
| | Server | | | Server |
| +----------------+ | +----------------+
| ^ | ^
| | | |
| TWAMP-Control | TWAMP-Control
| | | |
v v v v
+----------------+ +----------------+
| Control-Client | | Control-Client |
+----------------+ +----------------+
As in OWAMP [RFC4656], different logical roles can be played by the As in OWAMP [RFC4656], different logical roles can be played by the
same host. For example, in the figure above, there could be same host. For example, in the figure above, there could be
actually two hosts: one playing the roles of Control-Client and actually two hosts: one playing the roles of Control-Client and
Session-Sender, and the other playing the roles of Server and Session-Sender, and the other playing the roles of Server and
Session-Reflector. This example is shown below. Session-Reflector. This example is shown below.
+-----------------+ +-------------------+ +-----------------+ +-------------------+
| Control-Client |<--TWAMP Control-->| Server | | Control-Client |<--TWAMP Control-->| Server |
| | | | | | | |
| Session-Sender |<--TWAMP-Test----->| Session-Reflector | | Session-Sender |<--TWAMP-Test----->| Session-Reflector |
+-----------------+ +-------------------+ +-----------------+ +-------------------+
Additionally, following the guidelines of OWAMP [RFC4656], TWAMP Additionally, following the guidelines of OWAMP [RFC4656], TWAMP
has been defined to allow for small test packets that would fit has been defined to allow for small test packets that would fit
inside the payload of a single ATM cell (only in unauthenticated inside the payload of a single ATM cell (only in unauthenticated
mode). mode).
2. Protocol Overview 1.3 Pronunciation Guide
The Two-way Active Measurement Protocol is an open protocol for The acronym OWAMP is usually pronounced in two syllables, Oh-wamp.
measurement of two-way metrics. It is based on OWAMP [RFC4656] and
adheres to its overall architecture and design. The protocol
defined in this document extends and changes OWAMP [RFC4656] as
follows:
- Define a new logical entity, Session-Reflector, in place of the The acronym TWAMP is also pronounced in two syllables, Tee-wamp.
Session-Receiver.
- Define the Session-Reflector behavior in place of the 2. Protocol Overview
Session-Receiver behavior of OWAMP [RFC4656].
- Define a new test packet format for packets transmitted from the The Two-way Active Measurement Protocol is an open protocol for
Session-Reflector to Session-Sender. measurement of two-way metrics. It is based on OWAMP [RFC4656] and
adheres to its overall architecture and design. The TWAMP-control
and TWAMP-Test protocols accomplish their testing tasks as outlined
below:
- Fetch client does not exist in the TWAMP architecture. - 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.
All multi-octet quantities defined in this document are represented - The Control-Client responds with the chosen mode of
as unsigned integers in network byte order unless specified communication and information supporting integrity protection
otherwise. and encryption, if the mode requires them. The Server responds
to accept the mode and start time. This completes the control
connection setup.
3. TWAMP Control - The Control-Client requests (and describes) a test session with
a unique TWAMP-Control message. The Server repsponds with its
acceptance and supporting information. More than one test
session may be requested with additional messages.
TWAMP-Control is a derivative of the OWAMP-Control for two-way - The Control-Client initiates all requested testing with a start
measurements. All TWAMP Control messages are similar in format and sessions message, and the Server acknowleges.
follow similar guidelines to those defined in section 3 of OWAMP
[RFC4656] with the exceptions outlined in the following sections.
All OWAMP [RFC4656] Control messages except for the Fetch-Session - The Session-Sender and the Session-Reflector exchange test
command apply to TWAMP. packets according to the TWAMP-Test protocol for each active
session.
3.1 Connection Setup - When appropriate, the Control-Client sends a message to stop all
test sessions.
Connection establishment of TWAMP follows the same procedure There are two recognized extension mechanisms in the TWAMP
defined in section 3.1 of OWAMP [RFC4656]. The mode values are Protocol. The Modes field is used to establish the communication
identical to OWAMP. The only exception is the well-known port options during TWAMP-Control Connection Setup. The TWAMP-Control
number for TWAMP-control. A client opens a TCP connection to the Command Number is another intended extension mechanism, allowing
server on well-known port N (Refer to the IANA Considerations additional commands to be defined in the future. TWAMP-Control
section below for the TWAMP-control port number assignment). The protocol addresses different levels of support between Control-
host that initiates the TCP connection takes the roles of Client and Server.
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.
3.2 Integrity Protection All multi-octet quantities defined in this document are represented
as unsigned integers in network byte order unless specified
otherwise.
Integrity protection of TWAMP follows the same procedure defined in 3. TWAMP Control
section 3.2 of OWAMP [RFC4656].
3.3 Value of the Accept Fields 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.
Accept values used in TWAMP are the same as the values defined in 3.1 Connection Setup
section 3.3 of OWAMP [RFC4656].
3.4 TWAMP Control Commands 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 N (Refer to the IANA
Considerations section below for the TWAMP-control port number
assignment). 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.
TWAMP control commands are as defined in section 3.4 of OWAMP The possibility exists for Control-Client failure after TWAMP-
[RFC4656] except that the Fetch-Session command does not apply to Control connection establishment, or the path between the Control-
TWAMP. 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, AND no packet associated
with any test sessions started by that control connection have been
received for SERVWAIT seconds. The default value of SERVWAIT SHALL
be 900 seconds, and this waiting time MAY be configurable. This
time-out allows a Server to free-up resources in case of failure.
3.5 Creating Test Sessions 3.2 Integrity Protection
Test sessions creation follows the same procedure as defined in Integrity protection of TWAMP follows the same procedure defined in
section 3.5 of OWAMP [RFC4656]. section 3.2 of OWAMP [RFC4656]. As in OWAMP, each HMAC sent covers
everything sent in a given direction between the previous HMAC (but
not including it) and up to the beginning 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.
In order to distinguish the session as a two-way versus a one-way Note that the Server-Start message (sent by a Server during the
measurement session the first octet of the Request-Session command initial control connection exchanges) does not terminate with an
MUST be set to 5. Value of 5 indicates that this is a HMAC field. Therefore, the HMAC in the first Accept-Session message
Request-Session for a two-way metrics measurement session. also covers the Server-Start message and includes the Start-Time
field in the HMAC calculation.
In TWAMP, the first octet is referred to as the Command Number, and 3.3 Value of the Accept Fields
the Command Number is a recognized extension mechanism. Readers are
encouraged to consult the TWAMP Command Number Registry to
determine if there have been additional values assigned.
If a TWAMP server receives an unexpected command number, it SHOULD Accept values used in TWAMP are the same as the values defined in
respond with the Accept field set to 3 (meaning "Some aspect of section 3.3 of OWAMP [RFC4656].
request is not supported") in the Server-Start message.
In OWAMP, the Conf-Sender field is set to 1 when the 3.4 TWAMP Control Commands
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
perform in these roles, with the Session-Sender first sending and
then receiving test packets. The Session-Reflector first receives
the test packets, and returns each test packet to the
Session-Sender as fast as possible.
Both Conf-Sender field and Conf-Receiver field MUST be set to 0 TWAMP control commands conform to the rules defined in section 3.4
since the Session-Reflector will both receive and send packets, and of OWAMP [RFC4656]
the roles are established according to which host initiates the TCP
connection for control. The server MUST interpret any non-zero
value as zero.
The Session-Reflector in TWAMP does not process incoming test The following commands are available for the Control-client:
packets for performance metrics and consequently does not need to Request-TW-Session, Start-Sessions, and Stop-Sessions. The Server
know the number of incoming packets and their timing schedule. can send specific messages in response to the commands it receives
Consequently the Number of Scheduled Slots and Number of Packets (as described in the sections that follow).
MUST be set to 0.
The Sender Port is the UDP port from which TWAMP-Test packets will Note that the OWAMP Request-Session command is replaced by the
be sent and the port to which TWAMP-Test packets will be sent by TWAMP Request-TW-Session command, and the Fetch-Session command
the Session-Reflector (Session-Sender will use the same UDP port to does not appear in TWAMP.
send and receive packets). 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).
Receiver Port is also the UDP port from which TWAMP test packets
will be sent by the Session-Reflector (Session-Reflector will use
the same UDP port to send and receive packets).
The Sender Address and Receiver Address fields contain, 3.5 Creating Test Sessions
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 Test sessions creation follows the same procedure as defined in
Session-Sender to Session-Reflector Control Message exchange MUST section 3.5 of OWAMP [RFC4656].
be used in the test packets.
The Session Identifier (SID) is as defined in OWAMP [RFC4656]. In TWAMP, the first octet is referred to as the Command Number, and
Since the SID is always generated by the receiving side, the the Command Number is a recognized extension mechanism. Readers are
Session-Reflector determines the SID, and the SID in the encouraged to consult the TWAMP-Control Command Number Registry to
Request-Session message MUST be set to 0. determine if there have been additional values assigned.
The Start Time is as as defined in OWAMP [RFC4656]. 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.
The Timeout is interpreted differently from the definition in OWAMP If a TWAMP Server receives an unexpected command number, it MUST
[RFC4656]. In TWAMP, Timeout is the interval that the respond with the Accept field set to 3 (meaning "Some aspect of
Session-Reflector MUST wait after receiving a Stop-Sessions request is not supported") in the Accept-Session message. Command
message. In case there are test packets still in transit, the numbers that are Forbidden (and possibly numbers that are Reserved)
Session Reflector MUST reflect them if they arrive within the are unexpected.
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 In OWAMP, the Conf-Sender field is set to 1 when the
capability of this field is to set the Differentiated Services Code Request-Session message describes a task where the Server will
Point (DSCP) as defined in [RFC2474]. The same value of DCSP MUST configure a one-way test packet sender. Likewise, the
be used in test packets reflected by the Session-Reflector. Conf-Receiver field is set to 1 when the message describes the
configuration for a Session-Receiver. In TWAMP, both endpoints
perform in these roles, with the Session-Sender first sending and
then receiving test packets. The Session-Reflector first receives
the test packets, and returns each test packet to the
Session-Sender as fast as possible.
Since there are no Schedule Slot Descriptions, the Request-Session Both Conf-Sender field and Conf-Receiver field MUST be set to 0
Message is completed by MBZ (Must Be Zero) and HMAC (Hash Message since the Session-Reflector will both receive and send packets, and
Authentication Code) fields. This completes one logical message, the roles are established according to which host initiates the TCP
referred to as the Request-Session Command. 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 MUST respond to each Request-Session Command The Session-Reflector in TWAMP does not process incoming test
with an Accept-Message as defined in OWAMP [RFC4656]. When the packets for performance metrics and consequently does not need to
Accept Field = 0, the Port field confirms (repeats) the port to know the number of incoming packets and their timing schedule.
which TWAMP test packets are sent by the Session-Sender toward the Consequently the Number of Scheduled Slots and Number of Packets
Session-Reflector. In other words, the Port field indicates the MUST be set to 0.
port number where the Session-Reflector expects to receive packets
from the Session-Sender.
When the requested Receiver Port is not available (e.g., port in The Sender Port is the UDP port from which TWAMP-Test packets will
use), the Server at the Session-Reflector MAY suggest an alternate be sent and the port to which TWAMP-Test packets will be sent by
and available port for this session in the Port Field. The the Session-Reflector (Session-Sender will use the same UDP port to
Session-Sender either accepts the alternate port, or composes a new send and receive packets). Receiver Port is the desired UDP port
Session-Request message with suitable parameters. Otherwise, the to which TWAMP test packets will be sent by the Session-Sender (the
Server at the Session-Reflector uses the Accept Field to convey port where the Session-Reflector is asked to receive test packets).
other forms of session rejection or failure and MUST NOT suggest an Receiver Port is also the UDP port from which TWAMP test packets
alternate port. In this case the Port Field MUST be set to zero. will be sent by the Session-Reflector (Session-Reflector will use
the same UDP port to send and receive packets).
3.6 Send Schedules 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 Send Schedule for test packets defined in section 3.6 of OWAMP The Session Identifier (SID) is as defined in OWAMP [RFC4656].
[RFC4656] is not used in TWAMP. The Control-Client and Since the SID is always generated by the receiving side, the Server
Session-Sender MAY autonomously decide the Send Schedule. The determines the SID, and the SID in the Request-TW-Session message
Session-Reflector SHOULD return each test packet to the MUST be set to 0.
Session-Sender as quickly as possible.
3.7 Starting Test Sessions The Start Time is as as defined in OWAMP [RFC4656].
The procedure and guidelines for Starting test sessions is the same The Timeout is interpreted differently from the definition in OWAMP
as defined in section 3.7 of OWAMP [RFC4656]. [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.
3.8 Stop-Sessions 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.
The procedure and guidelines for Stopping test sessions is the same Since there are no Schedule Slot Descriptions, the Request-TW-
as defined in section 3.8 of OWAMP [RFC4656]. The Stop-Session Session Message is completed by MBZ (Must Be Zero) and HMAC (Hash
command can only be issued by the Session-Sender. The Next SeqNo Message Authentication Code) fields. This completes one logical
and Number of Skip Ranges MUST be set to 0 and the message MUST NOT message, referred to as the Request-TW-Session Command.
contain any session description records or skip ranges. The
message is terminated with a single block HMAC, to complete the
Stop-Sessions Command.
3.9 Fetch-Session The Session-Reflector MUST respond to each Request-TW-Session
Command with an Accept-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.
The purpose of TWAMP is measurement of two-way metrics. Two-way When the requested Receiver Port is not available (e.g., port in
measurements do not rely on packet level data collected by the use), the Server at the Session-Reflector MAY suggest an alternate
Session-Reflector such as sequence number, timestamp, and TTL. As and available port for this session in the Port Field. The
such the protocol does not require the retrieval of packet level Session-Sender either accepts the alternate port, or composes a new
data from the Server and the Fetch-Session command is not defined Session-Request message with suitable parameters. Otherwise, the
in TWAMP. Server at the Session-Reflector 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.
4. TWAMP Test 3.6 Send Schedules
The TWAMP test protocol is similar to the OWAMP [RFC4656] test The Send Schedule for test packets defined in section 3.6 of OWAMP
protocol with the exception that the Session-Reflector transmits [RFC4656] is not used in TWAMP. The Control-Client and
test packets to the Session-Sender in response to each test packet Session-Sender MAY autonomously decide the Send Schedule. The
it receives. TWAMP defines two different test packet formats, one Session-Reflector SHOULD return each test packet to the
for packets transmitted by the Session-Sender and one for packets Session-Sender as quickly as possible.
transmitted by the Session-Reflector. As with OWAMP [RFC4656] test
protocol there are three modes: unauthenticated, authenticated, and
encrypted.
4.1 Sender Behavior 3.7 Starting Test Sessions
The sender behavior is determined by the configuration of the The procedure and guidelines for Starting test sessions is the same
Session-Sender and is not defined in this standard. Further, the as defined in section 3.7 of OWAMP [RFC4656].
Session-Reflector does not need to know the Session-Sender
behaviour to the degree of detail as needed in OWAMP [RFC4656]. 3.8 Stop-Sessions
Additionally the Session-Sender collects and records the necessary
information provided from the packets transmitted by the The procedure and guidelines for Stopping test sessions is the same
Session-Reflector for measuring two-way metrics. The information as defined in section 3.8 of OWAMP [RFC4656]. The Stop-Sessions
recording based on the received packet by the Session-Sender is command can only be issued by the Control-Client. The message MUST
implementation dependent. 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.
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) |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3.9 Fetch-Session
The 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 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 [RFC4656] test
protocol 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 [RFC4656] test
protocol 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
behaviour 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 received packet by the Session-Sender is
implementation dependent.
4.1.1 Packet Timings 4.1.1 Packet Timings
Since the Send Schedule is not communicated to the Since the Send Schedule is not communicated to the
Session-Reflector, there is no need for a standardized computation Session-Reflector, there is no need for a standardized computation
of packet timing. of packet timing.
Regardless of any scheduling delays, each packet that is actually Regardless of any scheduling delays, each packet that is actually
sent MUST have the best possible approximation of its real time of sent MUST have the best possible approximation of its real time of
departure as its timestamp (in the packet). departure as its timestamp (in the packet).
4.1.2 Packet Format and Content 4.1.2 Packet Format and Content
The Session-Sender packet format and content follow the same The Session-Sender packet format and content follow the same
procedure and guidelines as defined in section 4.1.2 of OWAMP procedure and guidelines as defined in section 4.1.2 of OWAMP
[RFC4656] (with the exception of the reference to the Send [RFC4656] (with the exception of the reference to the Send
Schedule). Schedule).
4.2 Reflector Behavior 4.2 Reflector Behavior
TWAMP requires the Session-Reflector to transmit a packet to the TWAMP requires the Session-Reflector to transmit a packet to the
Session-Sender in response to each packet it receives. Session-Sender in response to each packet it receives.
As packets are received the Session-Reflector will, As packets are received the Session-Reflector will,
- 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 timestamp (in the packet).
- In authenticated or encrypted mode, decrypt the first block (16 - Timestamp the received packet. Each packet that is actually
octets) of the packet body. received MUST have the best possible approximation of its real
time of arrival entered as its timestamp (in the packet).
- Copy the packet sequence number into the corresponding reflected - In authenticated or encrypted mode, decrypt the appropriate
packet to the Session-Sender. 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.
- Sender TTL value is extracted from the TTL/Hop Limit value of - Copy the packet sequence number into the corresponding reflected
received packets. Session-Reflector Implementations SHOULD packet to the Session-Sender.
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.
- Transmit a test packet to the Session-Sender in response to - Sender TTL value is extracted from the TTL/Hop Limit value of
every received packet. The response MUST be generated as received packets. Session-Reflector Implementations SHOULD
immediately as possible. The format and content of the test fetch the TTL/Hop Limit value from the IP header of the packet,
packet is defined in section 5.2.1. Prior to the transmission replacing the value of 255 set by the Session-Sender. If an
of the test packet, the Session-Reflector MUST enter the best implementation does not fetch the actual TTL value (the only
possible approximation of its actual sending time of as its good reason not to do so is an inability to access the TTL
Timestamp (in the packet). This permits the determination of field of arriving packets), it MUST set the Sender TTL value as
the elapsed time between the reception of the packet and its 255.
transmission.
- Packets not received within the Timeout are ignored by the - In authenticated and encrypted modes, the HMAC MUST be
Reflector. The Session-Reflector MUST NOT generate a test calculated first, then the appropriate portion of the packet
packet to the Session-Sender for packets that are ignored. body is encrypted.
4.2.1 TWAMP-Test Packet Format and Content - 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 of as its
Timestamp (in the packet). This permits the determination of
the elapsed time between the reception of the packet and its
transmission.
The Session-Reflector MUST transmit a packet to the Session-Sender - Packets not received within the Timeout (following the Stop-
in response to each packet received. The Session-Reflector SHOULD Session command) MUST be ignored by the
transmit the packets as immediately as possible. The Reflector. The Session-Reflector MUST NOT generate a test
Session-Reflector SHOULD set the TTL in IPV4 (or Hop Limit in IPv6) packet to the Session-Sender for packets that are ignored.
in the UDP packet to 255.
The test packet will have the necessary information for calculating The possibility exists for Session-Sender failure during a session,
two-way metrics by the Session-Sender. The format of the test or the path between the Session-Sender and Session-Reflector may
packet depends on the mode being used. The various formats of the fail while a test session is in-progress. The Session-Reflector MAY
packet are presented below. discontinue any session which 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 time-out allows a Session-Reflector
to free-up resources in case of failure.
For unauthenticated mode: 4.2.1 TWAMP-Test Packet Format and Content
0 1 2 3 The Session-Reflector MUST transmit a packet to the Session-Sender
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 in response to each packet received. The Session-Reflector SHOULD
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ transmit the packets as immediately as possible. The
| Sequence Number | Session-Reflector SHOULD set the TTL in IPV4 (or Hop Limit in IPv6)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ in the UDP packet to 255.
| Timestamp |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Estimate | MBZ |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receive Timestamp |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender Timestamp |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender Error Estimate | MBZ |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender TTL | |
+++++++++++++++++ |
| |
. .
. Packet Padding .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
For authenticated and encrypted modes:
0 1 2 3 The test packet will have the necessary information for calculating
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 two-way metrics by the Session-Sender. The format of the test
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ packet depends on the mode being used. The various formats of the
| Sequence Number | packet are presented below.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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) |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
| |
. .
. Packet Padding .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Sequence Number is the sequence number of the test packet according For unauthenticated mode:
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 0 1 2 3
timestamp and error estimate for the reflected test packet, 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
respectively. The format of all timestamp and error estimate +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
fields follow the definition and formats defined by OWAMP[RFC4656]. | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Timestamp |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Estimate | MBZ |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receive Timestamp |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender Timestamp |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender Error Estimate | MBZ |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender TTL | |
+-+-+-+-+-+-+-+-+ +
| |
. .
. Packet Padding .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
For authenticated and encrypted modes:
Sender Timestamp and Sender Error Estimate are exact copies of the 0 1 2 3
timestamp and error estimate from the Session-Sender test packet 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
that corresponds to this test packet. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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) |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
| |
. .
. Packet Padding .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Sender TTL is 255 when transmitted by the Session Sender. Sender Note that all Timestamps have the same format as OWAMP [RFC4656] as
TTL is set to the Time To Live (or Hop Count) value of the received follows:
packet from the IP packet header when transmitted by the Session
Reflector.
Receive Timestamp is the time the test packet was received by the 0 1 2 3
reflector. The difference between Timestamp and Receive Timestamp 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
is the amount of time the packet was in transition in the +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Session-Reflector. The Error Estimate associated with the | Integer part of seconds |
Timestamp field also applies to the Receive Timestamp. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Fractional part of seconds |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Sender Sequence Number is a copy of the Sequence Number of the Sequence Number is the sequence number of the test packet according
packet transmitted by the Session-Sender that caused the to its transmit order. It starts with zero and is incremented by
Session-Reflector to generate and send this test packet. one for each subsequent packet. The Sequence Number generated by
the Session-Reflector is independent from the sequence number of
the arriving packets.
Similar to OWAMP [RFC4656] the TWAMP packet layout is the same in Timestamp and Error Estimate are the Session-Reflector's transmit
authenticated and encrypted modes. The encryption operation of timestamp and error estimate for the reflected test packet,
Session-Sender packet follow the same rules of Session-Sender respectively. The format of all timestamp and error estimate
packets as defined in OWAMP [RFC4656]. fields follow the definition and formats defined by OWAMP[RFC4656].
The minimum data segment length is, therefore, 41 octets in Sender Timestamp and Sender Error Estimate are exact copies of the
unauthenticated mode, and 104 octets in both authenticated mode and timestamp and error estimate from the Session-Sender test packet
encrypted modes (with the implication that the later two modes will that corresponds to this test packet.
not fit in a single ATM cell).
The Session-Reflector TWAMP-Test packet layout is the same in Sender TTL is 255 when transmitted by the Session Sender. Sender
authenticated and encrypted modes. The encryption operations are, TTL is set to the Time To Live (or Hop Count) value of the received
however, different. The difference is that in encrypted mode both packet from the IP packet header when transmitted by the Session
the sequence numbers and timestamps are encrypted to provide Reflector.
maximum data integrity protection while in authenticated mode the
sequence numbers are encrypted and the timestamps are sent in clear
text. Sending the timestamp in clear text in authenticated mode
allows one to reduce the time between when a timestamp is obtained
by a reflector and when the packet is reflected out. In encrypted
mode, both the sender and reflector have to fetch the timestamp,
encrypt it, and send it; in authenticated mode, the middle step is
removed, potentially improving accuracy (the sequence number can be
encrypted before the timestamp is fetched).
In authenticated mode, the first block (16 octets) of each packet Receive Timestamp is the time the test packet was received by the
is encrypted using AES Electronic Cookbook (ECB) mode. 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.
Obtaining the key, encryption method, and packet padding follows Sender Sequence Number is a copy of the Sequence Number of the
the same procedure as OWAMP as described below. packet transmitted by the Session-Sender that caused the
Similarly to each TWAMP-Control session, each TWAMP-Test session Session-Reflector to generate and send this test packet.
has two keys: an AES Session-key and an HMAC Session-key. However,
there is a difference in how the keys are obtained: in the case of
TWAMP-Control, the keys are generated by the client and
communicated (as part of the Token) during connection setup as part
of Set-Up-Response message; in the case of TWAMP-Test, described
here, the keys are derived from the TWAMP-Control keys and the SID.
The TWAMP-Test AES Session-key is obtained as follows: the Similar to OWAMP [RFC4656] the TWAMP packet layout is the same in
TWAMP-Control AES Session-key (the same AES Session-key as is used authenticated and encrypted modes. The encryption operation of
for the corresponding TWAMP-Control session, where it is used in a Session-Sender packet follow the same rules of Session-Sender
different chaining mode) is encrypted, using AES, with the 16-octet packets as defined in OWAMP [RFC4656].
session identifier (SID) as the key; this is a single-block ECB
encryption; its result is the TWAMP-Test AES Session-key to use in
encrypting (and decrypting) the packets of the particular
TWAMP-Test session. Note that all of TWAMP-Test AES Session-key,
TWAMP-Control AES Session-key, and the SID are comprised of 16
octets.
The TWAMP-Test HMAC Session-key is obtained as follows: the The minimum data segment length is, therefore, 41 octets in
TWAMP-Control HMAC Session-key (the same HMAC Session-key as is unauthenticated mode, and 104 octets in both authenticated mode and
used for the corresponding TWAMP-Control session) is encrypted, encrypted modes (with the implication that the later two modes will
using AES, with the 16-octet session identifier (SID) as the key; not fit in a single ATM cell).
this is a two-block CBC encryption, always performed with IV=0; its
result is the TWAMP-Test HMAC Session-key to use in authenticating
the packets of the particular TWAMP-Test session. Note that all of
TWAMP-Test HMAC Session-key and TWAMP-Control HMAC Session-key are
comprised of 32 octets, while the SID is 16 octets.
ECB mode used for encrypting the first block of TWAMP-Test packets The Session-Reflector TWAMP-Test packet layout is the same in
in authenticated mode does not involve any actual chaining; this authenticated and encrypted modes. The encryption operations are,
way, lost, duplicated, or reordered packets do not cause problems however, different. The difference is that in encrypted mode both
with deciphering any packet in an TWAMP-Test session. the sequence numbers and timestamps are encrypted to provide
maximum data integrity protection while in authenticated mode the
sequence numbers are encrypted and the timestamps are sent in clear
text. Sending the timestamp in clear text in authenticated mode
allows one to reduce the time between when a timestamp is obtained
by a reflector and when the packet is reflected out. In encrypted
mode, both the sender and reflector have to fetch the timestamp,
encrypt it, and send it; in authenticated mode, the middle step is
removed, potentially improving accuracy (the sequence number can be
encrypted before the timestamp is fetched). Authenticated mode
permits the timestamp to be fetched after a portion of the packet
is encrypted. Thus, the main differences between authenticated mode
and encrypted mode are the portions of the test packets that are
covered by HMAC and encrypted.
In encrypted mode, the first six blocks (96octets) are encrypted In authenticated mode, the first block (16 octets) of each packet
using AES CBC mode. The AES Session-key to use is obtained in the is encrypted using AES Electronic Cookbook (ECB) mode.
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 Obtaining the key, encryption method, and packet padding follows
TWAMP-Test session MAY be set up only once per session, not once the same procedure as OWAMP as described below.
per packet. Similarly to each TWAMP-Control session, each TWAMP-Test session
has two keys: an AES Session-key and an HMAC Session-key. However,
there is a difference in how the keys are obtained: in the case of
TWAMP-Control, the keys are generated by the client and
communicated (as part of the Token) during connection setup as part
of Set-Up-Response message; in the case of TWAMP-Test, described
here, the keys are derived from the TWAMP-Control keys and the SID.
HMAC in TWAMP-Test only covers the part of the packet that is also The TWAMP-Test AES Session-key is obtained as follows: the
encrypted. So, in authenticated mode, HMAC covers the first block TWAMP-Control AES Session-key (the same AES Session-key as is used
(16 octets); in encrypted mode, HMAC covers two first blocks (32 for the corresponding TWAMP-Control session, where it is used in a
octets). In TWAMP-Test HMAC is not encrypted (note that this is different chaining mode) is encrypted, using AES, with the 16-octet
different from TWAMP-Control, where encryption in stream mode is session identifier (SID) as the key; this is a single-block ECB
used, so everything including the HMAC blocks ends up being encryption; its result is the TWAMP-Test AES Session-key to use in
encrypted). encrypting (and decrypting) the packets of the particular
TWAMP-Test session. Note that all of TWAMP-Test AES Session-key,
TWAMP-Control AES Session-key, and the SID are comprised of 16
octets.
In unauthenticated mode, no encryption or authentication is The TWAMP-Test HMAC Session-key is obtained as follows: the
applied. TWAMP-Control HMAC Session-key (the same HMAC Session-key as is
used for the corresponding TWAMP-Control session) is encrypted,
using AES, with the 16-octet session identifier (SID) as the key;
this is a two-block CBC encryption, always performed with IV=0; its
result is the TWAMP-Test HMAC Session-key to use in authenticating
the packets of the particular TWAMP-Test session. Note that all of
TWAMP-Test HMAC Session-key and TWAMP-Control HMAC Session-key are
comprised of 32 octets, while the SID is 16 octets.
Packet Padding in TWAMP-Test SHOULD be pseudo-random (it MUST be ECB mode used for encrypting the first block of TWAMP-Test packets
generated independently of any other pseudo-random numbers in authenticated mode does not involve any actual chaining; this
mentioned in this document). However, implementations MUST provide way, lost, duplicated, or reordered packets do not cause problems
a configuration parameter, an option, or a different means of with deciphering any packet in an TWAMP-Test session.
making Packet Padding consist of all zeros.
5. Implementers Guide In encrypted mode, the first six blocks (96octets) 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.
This section serves as guidance to implementers of TWAMP. Two Implementation note: Naturally, the key schedule for each
architectures are presented in this section for implementations TWAMP-Test session MUST be set up at most once per session, not
where two hosts play the subsystem roles of TWAMP. Although only once per packet.
two architectures are presented here the protocol does not require
their use. Similar to OWAMP [RFC4656] TWAMP is designed with
complete flexibility to allow different architectures that suite
multiple system requirements.
5.1 Complete TWAMP HMAC in TWAMP-Test only covers the part of the packet that is also
encrypted. So, in authenticated mode, HMAC covers the first block
(16 octets); in encrypted mode, HMAC covers the first six blocks
(96 octets). In TWAMP-Test HMAC is not encrypted (note that this
is different from TWAMP-Control, where encryption in stream mode is
used, so everything including the HMAC blocks ends up being
encrypted).
In this example the roles of Control-Client and Session-Sender are In unauthenticated mode, no encryption or authentication is
implemented in one host referred to as the controller and the roles applied.
of Server and Session-Reflector are implemented in another host
referred to as the responder.
controller responder Packet Padding in TWAMP-Test SHOULD be pseudo-random (it MUST be
+-----------------+ +-------------------+ generated independently of any other pseudo-random numbers
| Control-Client |<--TWAMP-Control-->| Server | mentioned in this document). However, implementations MUST provide
| | | | a configuration parameter, an option, or a different means of
| Session-Sender |<--TWAMP-Test----->| Session-Reflector | making Packet Padding consist of all zeros.
+-----------------+ +-------------------+
This example provides an architecture that supports the full TWAMP 5. Implementers Guide
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-Reflctor behavior of TWAMP as
described in section 4.2.
5.2 TWAMP Light 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, Server, and In this example the roles of Control-Client and Session-Sender are
Session-Sender are implemented in one host referred to as the implemented in one host referred to as the controller and the roles
controller and the role of Session-Reflector is implemented in of Server and Session-Reflector are implemented in another host
another host referred to as the responder. referred to as the responder.
controller responder controller responder
+-----------------+ +-------------------+ +-----------------+ +-------------------+
| Server |<----------------->| | | Control-Client |<--TWAMP-Control-->| Server |
| Control-Client | | Session-Reflector | | | | |
| Session-Sender |<--TWAMP-Test----->| | | Session-Sender |<--TWAMP-Test----->| Session-Reflector |
+-----------------+ +-------------------+ +-----------------+ +-------------------+
This example provides a simple architecture for responders where This example provides an architecture that supports the full TWAMP
their role will be to simply act as light test points in the standard. The controller establishes the test session with the
network. The controller establishes the test session with the responder through the TWAMP-Control protocol. After the session is
Server through non-standard means. After the session is established the controller transmits test packets to the responder.
established the controller transmits test packets to the responder. The responder follows the Session-Reflector behavior of TWAMP as
The responder follows the Session-Reflector behavior of TWAMP as described in section 4.2.
described in section 4.2 with the following exceptions.
In the case of TWAMP Light, the Session-Reflector does not Appendix I provides an example for purely informational purposes.
necessarily have knowledge of the session state. IF the It suggests an incremental path to adopting TWAMP, by implementing
Session-Reflector does not have knowledge of the session state, the TWAMP-Test protocol first.
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 6. Security Considerations
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.
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.
Fundamentally TWAMP and OWAMP use the same protocol for 7. Acknowledgements
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 only area where TWAMP may introduce new security considerations We would like to thank Nagarjuna Venna, Sharee McNab, Nick Kinraid,
is the TWAMP Light version described above. The non-standard means Stanislav Shalunov, Matt Zekauskas, Walt Steverson, Jeff Boote, and
to control the responder and establish test sessions SHOULD offer Murtaza Chiba for their comments, suggestions, reviews, helpful
the features listed below. discussion and proof-reading.
The non-standard responder control protocol SHOULD have an 8. IANA Considerations
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 IANA has allocated a well-known TCP port number (861) for the
activate the authenticated and encrypted modes of the TWAMP-Test OWAMP-Control part of the OWAMP [RFC4656] protocol.
protocol. ...
owamp-control 861/tcp OWAMP-Control
owamp-control 861/udp OWAMP-Control
# [RFC4656]
# 862-872 Unassigned
7. Acknowledgements IANA is requested to allocate a well-known TCP/UDP port number for
the TWAMP-Control protocol. It would be ideal if the port number
assignment was adjacent to the OWAMP assignment. The recommended
Keyword for this entry is "twamp-control" and the Description is
"Two-way Active Measurement Protocol (TWAMP) Control".
We would like to thank Nagarjuna Venna, Sharee McNab, Nick Kinraid, During final editing, port N in section 3.1 should be replaced with
Stanislav Shalunov, Matt Zekauskas, Walt Steverson and Jeff Boote the assigned port number.
for their comments, suggestions, reviews, helpful discussion and
proof-reading.
8. IANA Considerations Since TWAMP adds an additional Control command to the OWAMP-Control
specification, and describes behavior when this control command is
used, this memo requests creation an IANA 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.
IANA has allocated a well-known TCP port number (861) for the 8.1 Registry Specification
OWAMP-Control part of the OWAMP [RFC4656] protocol.
...
owamp-control 861/tcp OWAMP-Control
owamp-control 861/udp OWAMP-Control
# [RFC4656]
# 862-872 Unassigned
IANA is requested to allocate a well-known TCP/UDP port number for IANA will create an TWAMP-Control Command Number registry. TWAMP-
the TWAMP-Control protocol. It would be ideal if the port number Control commands are specified by the first octet in OWAMP-Control
assignment was adjacent to the OWAMP assignment. The recommended messages as shown in section 3.5 of [RFC4656], and modified by this
Keyword for this entry is "twamp-control" and the Description is document. Thus this registry may contain sixteen possible values.
"Two-way Active Measurement Protocol (TWAMP) Control".
During final editing, port N in section 3.1 should be replaced with 8.2 Registry Management
the assigned port number.
Since TWAMP adds an additional Control command to the OWAMP-Control Because the registry may only contain sixteen values, and because
specification, and describes behavior when this control command is OWAMP and TWAMP are IETF protocols, this registry must only be
used, this memo requests creation an IANA registry for the TWAMP updated by "IETF Consensus" as specified in [RFC2434] -- an RFC
Command Number field. The field is not explicitly named in documenting the use that is approved by the IESG. We expect that
[RFC4656] but is called out for each command. This field is a new values will be assigned as monotonically increasing integers in
recognized extension mechanism for TWAMP. the range [0-15], unless there is a good reason to do otherwise.
8.1 Registry Specification 8.3 Experimental Numbers
IANA will create an TWAMP-Control Command registry. TWAMP-Control [RFC3692] recommends allocating an appropriate number of values for
commands are specified by the first octet in OWAMP-Control messages experimentation and testing. It is not clear to the authors
as shown in section 3.4 of [RFC4656], and modified by this exactly how many numbers might be useful in this space, nor if it
document. Thus this registry may contain sixteen possible values. 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 will allocate one number, the next sequential
number 6, as designated for experimentation and testing.
8.2 Registry Management 8.4 Initial Registry Contents
Because the registry may only contain sixteen values, and because TWAMP-Control Command Number Registry
OWAMP and TWAMP are IETF protocols, this registry must only be
updated by "IETF Consensus" as specified in [RFC2434] -- 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 Value Description Semantics Definition
0 Reserved
1 Forbidden
2 Start-Sessions RFC4656, Section 3.7
3 Stop-Sessions RFC4656, Section 3.8
4 Reserved
5 Request-TW-Session this document, Section 3.5
6 Experimentation undefined, see Section 8.3.
[RFC3692] recommends allocating an appropriate number of values for 9. Internationalization Considerations
experimentation and testing. It is not clear to the authors
exactly how many might be useful in this space, nor 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
will allocate one number, the next sequential number 6, as
designated for experimentation and testing.
8.4 Initial Registry Contents 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.
TWAMP-Control Command Registry 10. APPENDIX I - TWAMP Light (Informative)
Value Description Semantics Definition In this example the roles of Control-Client, Server, and
0 Reserved Session-Sender are implemented in one host referred to as the
1 Forbidden controller and the role of Session-Reflector is implemented in
2 Start-Sessions RFC4656, Section 3.7 another host referred to as the responder.
3 Stop-Sessions RFC4656, Section 3.8
4 Fetch-Session RFC4656, Section 3.9
5 Request-TW-Session this document, Section 3.5
6 Experimentation undefined, see Section 8.3.
9. Internationalization Considerations controller responder
+-----------------+ +-------------------+
| Server |<----------------->| |
| Control-Client | | Session-Reflector |
| Session-Sender |<--TWAMP-Test----->| |
+-----------------+ +-------------------+
The protocol does not carry any information in a natural language, This example provides a simple architecture for responders where
with the possible exception of the KeyID in TWAMP-Control, which is their role will be to simply act as light test points in the
encoded in UTF-8. 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.
10. References 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.
10.1 Normative References 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.
[RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., The non-standard responder control protocol SHOULD have an
Zekauskas, M., "A One-way Active Measurement Protocol authenticated mode of operation. The responder SHOULD be
(OWAMP)", draft-ietf-ippm-owdp-11.txt, October 2004. configurable to accept only authenticated control sessions.
[RFC2681] Almes, G., Kalidindi, S., Zekauskas, M., "A The non-standard responder control protocol SHOULD have a means to
Round-Trip Delay Metric for IPPM". RFC 2681, STD 1, activate the authenticated and encrypted modes of the TWAMP-Test
September 1999. protocol.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 11. References
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, 11.1 Normative References
Definition of the Differentiated Services Field (DS
Field) in the IPv4 and IPv6 Headers", RFC 2474,
December 1998.
[RFC2434] Narten, T., Alvestrand, H., Guidelines for Writing [RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J.,
an IANA Considerations Section in RFCs, RFC 2474, Zekauskas, M., "A One-way Active Measurement Protocol
October 1998. (OWAMP)", RFC 4656, October 2004.
10.2 Informative References [RFC2681] Almes, G., Kalidindi, S., Zekauskas, M., "A
Round-Trip Delay Metric for IPPM". RFC 2681, STD 1,
September 1999.
[RFC3692] Narten, T., Assigning Experimental and Testing Numbers [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Considered Useful, RFC 3692, January 2004. Requirement Levels", BCP 14, RFC 2119, March 1997.
Authors' Addresses [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.
Kaynam Hedayat [RFC2434] Narten, T., Alvestrand, H., Guidelines for Writing
Brix Networks an IANA Considerations Section in RFCs, RFC 2434,
285 Mill Road October 1998.
Chelmsford, MA 01824
USA
EMail: khedayat@brixnet.com 11.2 Informative References
URI: http://www.brixnet.com/
Roman M. Krzanowski, Ph.D.
Verizon
500 Westchester Ave.
White Plains, NY
USA
EMail: roman.krzanowski@verizon.com [RFC3692] Narten, T., Assigning Experimental and Testing Numbers
URI: http://www.verizon.com/ Considered Useful, RFC 3692, January 2004.
Al Morton Authors' Addresses
AT&T Labs
Room D3 - 3C06
200 Laurel Ave. South
Middletown, NJ 07748
USA
Phone +1 732 420 1571 Kaynam Hedayat
EMail: acmorton@att.com Brix Networks
URI: http://home.comcast.net/~acmacm/ 285 Mill Road
Chelmsford, MA 01824
USA
EMail: khedayat@brixnet.com
URI: http://www.brixnet.com/
Kiho Yum Roman M. Krzanowski, Ph.D.
Juniper Networks Verizon
1194 Mathilda Ave. 500 Westchester Ave.
Sunnyvale, CA White Plains, NY
USA USA
EMail: roman.krzanowski@verizon.com
URI: http://www.verizon.com/
EMail: kyum@juniper.net Al Morton
URI: http://www.juniper.com/ 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/
Jozef Z. Babiarz Kiho Yum
Nortel Networks Juniper Networks
3500 Carling Avenue 1194 Mathilda Ave.
Ottawa, Ont K2H 8E9 Sunnyvale, CA
Canada USA
EMail: kyum@juniper.net
URI: http://www.juniper.com/
Email: babiarz@nortel.com Jozef Z. Babiarz
URI: http://www.nortel.com/ Nortel Networks
3500 Carling Avenue
Ottawa, Ont K2H 8E9
Canada
Email: babiarz@nortel.com
URI: http://www.nortel.com/
Full Copyright Statement Full Copyright Statement
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors contained in BCP 78, and except as set forth therein, the authors
retain all their rights. retain all their rights.
This document and the information contained herein are provided on This document and the information contained herein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE
IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE
ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE. FOR A PARTICULAR PURPOSE.
Intellectual Property Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed Intellectual Property Rights or other rights that might be claimed
to pertain to the implementation or use of the technology described to pertain to the implementation or use of the technology described
in this document or the extent to which any license under such in this document or the extent to which any license under such
rights might or might not be available; nor does it represent that rights might or might not be available; nor does it represent that
it has made any independent effort to identify any such rights. it has made any independent effort to identify any such rights.
Information on the procedures with respect to rights in RFC Information on the procedures with respect to rights in RFC
documents can be found in BCP 78 and BCP 79. documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use attempt made to obtain a general license or permission for the use
of such proprietary rights by implementers or users of this of such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository specification can be obtained from the IETF on-line IPR repository
at http://www.ietf.org/ipr. at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at this standard. Please address the information to the IETF at
ietf-ipr@ietf.org. ietf-ipr@ietf.org.
Acknowledgement Acknowledgement
Funding for the RFC Editor function is provided by the IETF Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA). Administrative Support Activity (IASA).
 End of changes. 170 change blocks. 
795 lines changed or deleted 899 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/