draft-ietf-ippm-tcp-throughput-tm-07.txt | draft-ietf-ippm-tcp-throughput-tm-08.txt | |||
---|---|---|---|---|
Network Working Group B. Constantine | Network Working Group B. Constantine | |||
Internet-Draft JDSU | Internet-Draft JDSU | |||
Intended status: Informational G. Forget | Intended status: Informational G. Forget | |||
Expires: March 24, 2011 Bell Canada (Ext. Consultant) | Expires: May 14, 2011 Bell Canada (Ext. Consultant) | |||
Rudiger Geib | ||||
Deutsche Telekom | ||||
Reinhard Schrage | Reinhard Schrage | |||
Schrage Consulting | Schrage Consulting | |||
September 24, 2010 | ||||
November 14, 2010 | ||||
Framework for TCP Throughput Testing | Framework for TCP Throughput Testing | |||
draft-ietf-ippm-tcp-throughput-tm-07.txt | draft-ietf-ippm-tcp-throughput-tm-08.txt | |||
Abstract | Abstract | |||
This document describes a framework for measuring sustained TCP | This framework describes a methodology for measuring end-to-end TCP | |||
throughput performance in an end-to-end managed network environment. | throughput performance in a managed IP network. The intention is to | |||
This document is intended to provide a practical methodology to help | provide a practical methodology to validate TCP layer performance. | |||
users validate the TCP layer performance of a managed network, which | The goal is to provide a better indication of the user experience. | |||
should provide a better indication of end-user experience. In the | In this framework, various TCP and IP parameters are identified and | |||
framework, various TCP and network parameters are identified that | should be tested as part of a managed IP network verification. | |||
should be tested as part of the network verification at the TCP | ||||
layer. | ||||
Requirements Language | Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
Status of this Memo | Status of this Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
skipping to change at page 1, line 45 | skipping to change at page 1, line 46 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on March 24, 2011. | This Internet-Draft will expire on May 14, 2011. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2010 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 25 | skipping to change at page 2, line 25 | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1 Test Set-up and Terminology . . . . . . . . . . . . . . . 4 | 1.1 Test Set-up and Terminology . . . . . . . . . . . . . . . 4 | |||
2. Scope and Goals of this methodology. . . . . . . . . . . . . . 5 | 2. Scope and Goals of this methodology. . . . . . . . . . . . . . 5 | |||
2.1 TCP Equilibrium State Throughput . . . . . . . . . . . . . 6 | 2.1 TCP Equilibrium. . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.2 Metrics for TCP Throughput Tests . . . . . . . . . . . . . 7 | 3. TCP Throughput Testing Methodology . . . . . . . . . . . . . . 7 | |||
3. TCP Throughput Testing Methodology . . . . . . . . . . . . . . 9 | 3.1 Determine Network Path MTU . . . . . . . . . . . . . . . . 9 | |||
3.1 Determine Network Path MTU . . . . . . . . . . . . . . . . 11 | 3.2. Baseline Round Trip Time and Bandwidth . . . . . . . . . . 10 | |||
3.2. Baseline Round Trip Time and Bandwidth . . . . . . . . . . 13 | 3.2.1 Techniques to Measure Round Trip Time . . . . . . . . 10 | |||
3.2.1 Techniques to Measure Round Trip Time . . . . . . . . 13 | 3.2.2 Techniques to Measure end-to-end Bandwidth. . . . . . 11 | |||
3.2.2 Techniques to Measure End-end Bandwidth . . . . . . . 14 | 3.3. TCP Throughput Tests . . . . . . . . . . . . . . . . . . . 12 | |||
3.3. TCP Throughput Tests . . . . . . . . . . . . . . . . . . . 14 | 3.3.1 Calculate Ideal TCP Receive Window Size. . . . . . . . 12 | |||
3.3.1 Calculate Optimum TCP Window Size. . . . . . . . . . . 15 | 3.3.2 Metrics for TCP Throughput Tests . . . . . . . . . . . 15 | |||
3.3.2 Conducting the TCP Throughput Tests. . . . . . . . . . 17 | 3.3.3 Conducting the TCP Throughput Tests. . . . . . . . . . 18 | |||
3.3.3 Single vs. Multiple TCP Connection Testing . . . . . . 18 | 3.3.4 Single vs. Multiple TCP Connection Testing . . . . . . 19 | |||
3.3.4 Interpretation of the TCP Throughput Results . . . . . 19 | 3.3.5 Interpretation of the TCP Throughput Results . . . . . 20 | |||
3.4. Traffic Management Tests . . . . . . . . . . . . . . . . . 19 | 3.4. Traffic Management Tests . . . . . . . . . . . . . . . . . 20 | |||
3.4.1 Traffic Shaping Tests. . . . . . . . . . . . . . . . . 20 | 3.4.1 Traffic Shaping Tests. . . . . . . . . . . . . . . . . 21 | |||
3.4.1.1 Interpretation of Traffic Shaping Test Results. . . 20 | 3.4.1.1 Interpretation of Traffic Shaping Test Results. . . 21 | |||
3.4.2 RED Tests. . . . . . . . . . . . . . . . . . . . . . . 21 | 3.4.2 RED Tests. . . . . . . . . . . . . . . . . . . . . . . 22 | |||
3.4.2.1 Interpretation of RED Results . . . . . . . . . . . 21 | 3.4.2.1 Interpretation of RED Results . . . . . . . . . . . 23 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | |||
5.1. Registry Specification . . . . . . . . . . . . . . . . . . 22 | 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
5.2. Registry Contents . . . . . . . . . . . . . . . . . . . . 22 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22 | 7.1 Normative References . . . . . . . . . . . . . . . . . . . 24 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 7.2 Informative References . . . . . . . . . . . . . . . . . . 24 | |||
7.1 Normative References . . . . . . . . . . . . . . . . . . . 22 | ||||
7.2 Informative References . . . . . . . . . . . . . . . . . . 23 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 23 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
1. Introduction | 1. Introduction | |||
Network providers are coming to the realization that Layer 2/3 | Network providers are coming to the realization that Layer 2/3 | |||
testing and TCP layer testing are required to more adequately ensure | testing is not enough to adequately ensure end-user's satisfaction. | |||
end-user satisfaction. Testing an operational network prior to | An SLA (Service Level Agreement) is provided to business customers | |||
customer activation is referred to as "turn-up" testing and the SLA | and is generally based upon Layer 2/3 criteria such as access rate, | |||
(Service Level Agreement) is generally based upon Layer 2/3 | latency, packet loss and delay variations. On the other hand, | |||
information rate, packet delay, loss and delay variation. Therefore, | measuring TCP throughput provides meaningful results with respect to | |||
the network provider community desires to measure network throughput | user experience. Thus, the network provider community desires to | |||
performance at the TCP layer. Measuring TCP throughput provides a | measure IP network throughput performance at the TCP layer. | |||
meaningful measure with respect to the end user experience (and | ||||
ultimately reach some level of TCP testing interoperability which | ||||
does not exist today). | ||||
Additionally, end-users (business enterprises) seek to conduct | Additionally, business enterprise customers seek to conduct | |||
repeatable TCP throughput tests between enterprise locations. Since | repeatable TCP throughput tests between locations. Since these | |||
these enterprises rely on the networks of the providers, a common | enterprises rely on the networks of the providers, a common test | |||
test methodology (and metrics) would be equally beneficial to both | methodology with predefined metrics will benefit both parties. | |||
parties. | ||||
So the intent behind this TCP throughput methodology is to define | Note that the primary focus of this methodology is managed business | |||
a methodology for testing sustained TCP layer performance. In this | class IP networks; i.e. those Ethernet terminated services for which | |||
document, sustained TCP throughput is that amount of data per unit | businesses are provided an SLA from the network provider. End-users | |||
time that TCP transports during equilibrium (steady state), i.e. | with "best effort" access between locations can use this methodology, | |||
after the initial slow start phase. We refer to this state as TCP | but this framework and its metrics are intended to be used in a | |||
Equilibrium, and that the equilibrium throughput is the maximum | predictable managed IP service environment. | |||
achievable for the TCP connection(s). | ||||
There are many variables to consider when conducting a TCP throughput | So the intent behind this document is to define a methodology for | |||
test and this methodology focuses on some of the most common | testing sustained TCP layer performance. In this document, the | |||
parameters that MUST be considered such as: | maximum achievable TCP throughput is that amount of data per unit | |||
time that TCP transports when trying to reach Equilibrium, i.e. | ||||
after the initial slow start and congestion avoidance phases. We | ||||
refer to this as the maximum achievable TCP Throughput for the TCP | ||||
connection(s). | ||||
TCP uses a congestion window, (TCP CWND), to determine how many | ||||
packets it can send at one time. A larger TCP CWND permits a higher | ||||
throughput. TCP "slow start" and "congestion avoidance" algorithms | ||||
together determine the TCP CWND size. The Maximum TCP CWND size is | ||||
also tributary to the buffer space allocated by the kernel for each | ||||
socket. For each socket, there is a default buffer size that can be | ||||
changed by the program using a system library called just before | ||||
opening the socket. There is also a kernel enforced maximum buffer | ||||
size. This buffer size can be adjusted at both ends of the socket | ||||
(send and receive). In order to obtain the maximum throughput, it | ||||
is critical to use optimal TCP Send and Receive Socket Buffer sizes | ||||
as well as the optimal TCP Receive Window size. | ||||
There are many variables to consider when conducting a TCP throughput | ||||
test and this methodology focuses on the most common: | ||||
- Path MTU and Maximum Segment Size (MSS) | - Path MTU and Maximum Segment Size (MSS) | |||
- RTT and Bottleneck BW | - RTT and Bottleneck BW | |||
- Ideal TCP Window (Bandwidth Delay Product) | - Ideal TCP Receive Window (including Ideal Receive Socket Buffer) | |||
- Single Connection and Multiple Connection testing | - Ideal Send Socket Buffer | |||
- TCP Congestion Window (TCP CWND) | ||||
This methodology proposes a test which SHOULD be performed in | - Single Connection and Multiple Connections testing | |||
addition to traditional Layer 2/3 type tests, which are conducted to | This methodology proposes TCP testing that should be performed in | |||
verify the integrity of the network before conducting TCP tests. | addition to traditional Layer 2/3 type tests. Layer 2/3 tests are | |||
Examples include iperf (UDP mode) or manual packet layer test | required to verify the integrity of the network before conducting TCP | |||
test. Examples include iperf (UDP mode) or manual packet layer test | ||||
techniques where packet throughput, loss, and delay measurements are | techniques where packet throughput, loss, and delay measurements are | |||
conducted. When available, standardized testing similar to RFC 2544 | conducted. When available, standardized testing similar to RFC 2544 | |||
[RFC2544] but adapted for use on operational networks may be used | [RFC2544] but adapted for use in operational networks may be used. | |||
(because RFC 2544 methods are not intended for use outside the lab | Note: RFC 2544 was never meant to be used outside a lab environment. | |||
environment). | ||||
1.1 Test Set-up and Terminology | 1.1 Test Set-up and Terminology | |||
This section provides a general overview of the test configuration | This section provides a general overview of the test configuration | |||
for this methodology. The test is intended to be conducted on an | for this methodology. The test is intended to be conducted on an | |||
end-end operational network, so there are multitudes of network | end-to-end operational and managed IP network. A multitude of | |||
architectures and topologies that can be tested. This test set-up | network architectures and topologies can be tested. The following | |||
diagram is very general and the main intent is to illustrate the | set-up diagram is very general and it only illustrates the | |||
segmentation of the end user and network provider domains. | segmentation within end user and network provider domains. | |||
Common terminologies used in the test methodology are: | Common terminologies used in the test methodology are: | |||
- Bottleneck Bandwidth (BB), lowest bandwidth along the complete | ||||
path. Bottleneck Bandwidth and Bandwidth are used synonymously | ||||
in this document. Most of the time the Bottleneck Bandwidth is | ||||
in the access portion of the wide area network (CE - PE) | ||||
- Customer Provided Equipment (CPE), refers to customer owned | - Customer Provided Equipment (CPE), refers to customer owned | |||
- Customer Edge (CE), refers to provider owned demarcation device | equipment (routers, switches, computers, etc.) | |||
- Provider Edge (PE), refers to provider located distribution | - Customer Edge (CE), refers to provider owned demarcation device. | |||
equipment | - End-user: The business enterprise customer. For the purposes of | |||
- P (Provider), refers to provider core network equipment | conducting TCP throughput tests, this may be the IT department. | |||
- Bottleneck Bandwidth*, lowest bandwidth along the complete network | - Network Under Test (NUT), refers to the tested IP network path. | |||
path | - Provider Edge (PE), refers to provider's distribution equipment. | |||
- Round-Trip Time (RTT), refers to Layer 4 back and forth delay | - P (Provider), refers to provider core network equipment. | |||
- Round-Trip Delay (RTD), refers to Layer 1 back and forth delay | - Round-Trip Time (RTT), refers to Layer 4 back and forth delay. | |||
- Network Under Test (NUT), refers to the tested IP network path | - Round-Trip Delay (RTD), refers to Layer 1 back and forth delay. | |||
- TCP Throughput Test Device (TCP TTD), refers to compliant TCP | - TCP Throughput Test Device (TCP TTD), refers to compliant TCP | |||
host that generates traffic and measures metrics as defined in | host that generates traffic and measures metrics as defined in | |||
this methodology | this methodology. i.e. a dedicated communications test instrument. | |||
+----+ +----+ +----+ +----+ +---+ +---+ +----+ +----+ +----+ +----+ | +----+ +----+ +----+ +----+ +---+ +---+ +----+ +----+ +----+ +----+ | |||
| | | | | | | | | | | | | | | | | | | | | ||||
| TCP|-| CPE|-| CE |--| PE |-| P |--| P |-| PE |--| CE |-| CPE|-| TCP| | | TCP|-| CPE|-| CE |--| PE |-| P |--| P |-| PE |--| CE |-| CPE|-| TCP| | |||
| TD | | | | |BB| | | | | | | |BB| | | | | TD | | | TTD| | | | |BB| | | | | | | |BB| | | | | TTD| | |||
+----+ +----+ +----+**+----+ +---+ +---+ +----+**+----+ +----+ +----+ | +----+ +----+ +----+ +----+ +---+ +---+ +----+ +----+ +----+ +----+ | |||
<------------------------ NUT ------------------------> | ||||
<------------------------ NUT ------------------------> | R >-----------------------------------------------------------| | |||
T | | ||||
<-------------------------RTT ------------------------> | T <-----------------------------------------------------------| | |||
* Bottleneck Bandwidth and Bandwidth are used synonomously in this | ||||
document. | ||||
** Most of the time the Bottleneck Bandwidth is in the access portion | ||||
of the wide area network (CE - PE) | ||||
Note that the NUT may consist of a variety of devices including (and | Note that the NUT may consist of a variety of devices including but | |||
NOT limited to): load balancers, proxy servers, WAN acceleration | not limited to, load balancers, proxy servers or WAN acceleration | |||
devices. The detailed topology of the NUT MUST be considered when | devices. The detailed topology of the NUT should be well understood | |||
conducting the TCP throughput tests, but this methodology makes no | when conducting the TCP throughput tests, although this methodology | |||
attempt to characterize TCP performance related to specific network | makes no attempt to characterize specific network architectures. | |||
architectures. | ||||
2. Scope and Goals of this Methodology | 2. Scope and Goals of this Methodology | |||
Before defining the goals of this methodology, it is important to | Before defining the goals, it is important to clearly define the | |||
clearly define the areas that are out-of-scope for this | areas that are out-of-scope. | |||
methodology. | ||||
- The methodology is not intended to predict TCP throughput | - This methodology is not intended to predict the TCP throughput | |||
behavior during the transient stages of a TCP connection, such | during the transient stages of a TCP connection, such as the initial | |||
as initial slow start. | slow start. | |||
- The methodology is not intended to definitively benchmark TCP | - This methodology is not intended to definitively benchmark TCP | |||
implementations of one OS to another, although some users MAY find | implementations of one OS to another, although some users may find | |||
some value in conducting qualitative experiments. | some value in conducting qualitative experiments. | |||
- The methodology is not intended to provide detailed diagnosis | - This methodology is not intended to provide detailed diagnosis | |||
of problems within end-points or the network itself as related to | of problems within end-points or within the network itself as | |||
non-optimal TCP performance, although a results interpretation | related to non-optimal TCP performance, although a results | |||
section for each test step MAY provide insight into potential | interpretation section for each test step may provide insight in | |||
issues within the network. | regards with potential issues. | |||
- The methodology does not propose a method to operate permanently | - This methodology does not propose to operate permanently with high | |||
with high measurement loads. TCP performance and optimization data of | measurement loads. TCP performance and optimization within | |||
operational networks MAY be captured and evaluated by using data of | operational networks may be captured and evaluated by using data | |||
the "TCP Extended Statistics MIB" [RFC4898]. | from the "TCP Extended Statistics MIB" [RFC4898]. | |||
- The methodology is not intended to measure TCP throughput as part | - This methodology is not intended to measure TCP throughput as part | |||
of an SLA, or to compare the TCP performance between service | of an SLA, or to compare the TCP performance between service | |||
providers or to compare between implementations of this methodology | providers or to compare between implementations of this methodology | |||
(test equipment). | in dedicated communications test instruments. | |||
In contrast to the above exclusions, the goals of this methodology | In contrast to the above exclusions, a primary goal is to define a | |||
are to define a method to conduct a structured, end-to-end | method to conduct a practical, end-to-end assessment of sustained | |||
assessment of sustained TCP performance within a managed business | TCP performance within a managed business class IP network. Another | |||
class IP network. A key goal is to establish a set of "best | key goal is to establish a set of "best practices" that a non-TCP | |||
practices" that an engineer SHOULD apply when validating the | expert should apply when validating the ability of a managed network | |||
ability of a managed network to carry end-user TCP applications. | to carry end-user TCP applications. | |||
The specific goals are to: | Other specific goals are to : | |||
- Provide a practical test approach that specifies well understood, | - Provide a practical test approach that specifies IP hosts | |||
end-user configurable TCP parameters such as TCP Window size, MSS | configurable TCP parameters such as TCP Receive Window size, Socket | |||
(Maximum Segment Size), number of connections, and how these affect | Buffer size, MSS (Maximum Segment Size), number of connections, and | |||
the outcome of TCP performance over a network. | how these affect the outcome of TCP performance over a network. | |||
See section 3.3.3. | ||||
- Provide specific test conditions (link speed, RTT, TCP Window size, | - Provide specific test conditions like link speed, RTT, TCP Receive | |||
etc.) and maximum achievable TCP throughput under TCP Equilibrium | Window size, Socket Buffer size and maximum achievable TCP throughput | |||
conditions. For guideline purposes, provide examples of these test | when trying to reach TCP Equilibrium. For guideline purposes, | |||
conditions and the maximum achievable TCP throughput during the | provide examples of test conditions and their maximum achievable | |||
equilibrium state. Section 2.1 provides specific details concerning | TCP throughput. Section 2.1 provides specific details concerning the | |||
the definition of TCP Equilibrium within the context of this | definition of TCP Equilibrium within this methodology while section 3 | |||
methodology. | provides specific test conditions with examples. | |||
- Define three (3) basic metrics that can be used to compare the | - Define three (3) basic metrics to compare the performance of TCP | |||
performance of TCP connections under various network conditions. | connections under various network conditions. See section 3.3.2. | |||
- In test situations where the RECOMMENDED procedure does not yield | - In test situations where the recommended procedure does not yield | |||
the maximum achievable TCP throughput result, this methodology | the maximum achievable TCP throughput results, this methodology | |||
provides some possible areas within the end host or network that | provides some possible areas within the end host or network that | |||
SHOULD be considered for investigation (although again, this | should be considered for investigation. Although again, this | |||
methodology is not intended to provide a detailed diagnosis of these | methodology is not intended to provide a detailed diagnosis on these | |||
issues). | issues. See section 3.3.5. | |||
2.1 TCP Equilibrium State Throughput | 2.1 TCP Equilibrium | |||
TCP connections have three (3) fundamental congestion window phases | TCP connections have three (3) fundamental congestion window phases | |||
as documented in [RFC5681]. These phases are: | as documented in [RFC5681]. | |||
- Slow Start, which occurs during the beginning of a TCP transmission | These 3 phases are: | |||
or after a retransmission time out event. | 1 - The Slow Start phase, which occurs at the beginning of a TCP | |||
transmission or after a retransmission time out. | ||||
- Congestion avoidance, which is the phase during which TCP ramps up | 2 - The Congestion Avoidance phase, during which TCP ramps up to | |||
to establish the maximum attainable throughput on an end-end network | establish the maximum attainable throughput on an end-to-end network | |||
path. Retransmissions are a natural by-product of the TCP congestion | path. Retransmissions are a natural by-product of the TCP congestion | |||
avoidance algorithm as it seeks to achieve maximum throughput on | avoidance algorithm as it seeks to achieve maximum throughput. | |||
the network path. | ||||
- Retransmission phase, which include Fast Retransmit (Tahoe) and | ||||
Fast Recovery (Reno and New Reno). When a packet is lost, the | ||||
Congestion avoidance phase transitions to a Fast Retransmission or | ||||
Recovery Phase dependent upon the TCP implementation. | ||||
The following diagram depicts these phases. | ||||
| ssthresh | ||||
TCP | | | ||||
Through- | | Equilibrium | ||||
put | |\ /\/\/\/\/\ Retransmit /\/\ ... | ||||
| | \ / | Time-out / | ||||
| | \ / | _______ _/ | ||||
| Slow _/ |/ | / | Slow _/ | ||||
| Start _/ Congestion |/ |Start_/ Congestion | ||||
| _/ Avoidance Loss | _/ Avoidance | ||||
| _/ Event | _/ | ||||
| _/ |/ | ||||
|/__________________________________________________________ | ||||
Time | ||||
This TCP methodology provides guidelines to measure the equilibrium | ||||
throughput which refers to the maximum sustained rate obtained by | ||||
congestion avoidance before packet loss conditions occur (which MAY | ||||
cause the state change from congestion avoidance to a retransmission | ||||
phase). All maximum achievable throughputs specified in Section 3 are | ||||
with respect to this equilibrium state. | ||||
2.2 Metrics for TCP Throughput Tests | ||||
This framework focuses on a TCP throughput methodology and also | ||||
provides several basic metrics to compare results of various | ||||
throughput tests. It is recognized that the complexity and | ||||
unpredictability of TCP makes it impossible to develop a complete | ||||
set of metrics that account for the myriad of variables (i.e. RTT | ||||
variation, loss conditions, TCP implementation, etc.). However, | ||||
these basic metrics will facilitate TCP throughput comparisons | ||||
under varying network conditions and between network traffic | ||||
management techniques. | ||||
The first metric is the TCP Transfer Time, which is simply the | ||||
measured time it takes to transfer a block of data across | ||||
simultaneous TCP connections. The concept is useful when | ||||
benchmarking traffic management techniques, where multiple | ||||
connections MAY be REQUIRED. | ||||
The TCP Transfer time MAY also be used to provide a normalized ratio | ||||
of the actual TCP Transfer Time versus Ideal Transfer Time. This | ||||
ratio is called the TCP Transfer Index and is defined as: | ||||
Actual TCP Transfer Time | ||||
------------------------- | ||||
Ideal TCP Transfer Time | ||||
The Ideal TCP Transfer time is derived from the network path | ||||
bottleneck bandwidth and the various Layer 1/2/3 overheads associated | ||||
with the network path. Additionally, the TCP Window size must be | ||||
tuned to equal the bandwidth delay product (BDP) as described in | ||||
Section 3.3.1. | ||||
The following table illustrates a single connection TCP Transfer and | ||||
the Ideal TCP Transfer time for a 100 MB file with the ideal TCP | ||||
window size based on the BDP. | ||||
Table 2.2: Link Speed, RTT, TCP Throughput, Ideal TCP Transfer time | ||||
Link Maximum Achievable Ideal TCP Transfer time | ||||
Speed RTT (ms) TCP Throughput(Mbps) Time in seconds | ||||
-------------------------------------------------------------------- | ||||
T1 20 1.17 684.93 | ||||
T1 50 1.40 570.61 | ||||
T1 100 1.40 570.61 | ||||
T3 10 42.05 19.03 | ||||
T3 15 42.05 19.03 | ||||
T3 25 41.52 18.82 | ||||
T3(ATM) 10 36.50 21.92 | ||||
T3(ATM) 15 36.23 22.14 | ||||
T3(ATM) 25 36.27 22.05 | ||||
100M 1 91.98 8.70 | ||||
100M 2 93.44 8.56 | ||||
100M 5 93.44 8.56 | ||||
1Gig 0.1 919.82 0.87 | ||||
1Gig 0.5 934.47 0.86 | ||||
1Gig 1 934.47 0.86 | ||||
10Gig 0.05 9,344.67 0.09 | ||||
10Gig 0.3 9,344.67 0.09 | ||||
* Calculation is based on File Size in Bytes X 8 / TCP Throughput. | ||||
** TCP Throughput is derived from Table 3.3. | ||||
To illustrate the TCP Transfer Time Index, an example would be the | ||||
bulk transfer of 100 MB over 5 simultaneous TCP connections (each | ||||
connection uploading 100 MB). In this example, the Ethernet service | ||||
provides a Committed Access Rate (CAR) of 500 Mbit/s. Each | ||||
connection MAY achieve different throughputs during a test and the | ||||
overall throughput rate is not always easy to determine (especially | ||||
as the number of connections increases). | ||||
The ideal TCP Transfer Time would be ~8 seconds, but in this example, | ||||
the actual TCP Transfer Time was 12 seconds. The TCP Transfer Index | ||||
would be 12/8 = 1.5, which indicates that the transfer across all | ||||
connections took 1.5 times longer than the ideal. | ||||
The second metric is the TCP Efficiency metric which is the | ||||
percentage of bytes that were not retransmitted and is defined as: | ||||
Transmitted Bytes - Retransmitted Bytes | ||||
--------------------------------------- x 100 | ||||
Transmitted Bytes | ||||
Transmitted bytes are the total number of TCP payload bytes to be | ||||
transmitted which includes the original and retransmitted bytes. This | ||||
metric provides a comparative measure between various QoS mechanisms | ||||
such as traffic management, congestion avoidance, and also various | ||||
TCP implementations (i.e. Reno, Vegas, etc.). | ||||
As an example, if 100,000 bytes were sent and 2,000 had to be | ||||
retransmitted, the TCP Efficiency SHOULD be calculated as: | ||||
102,000 - 2,000 | ||||
---------------- x 100 = 98.03% | ||||
102,000 | ||||
Note that the retransmitted bytes MAY have occurred more than once, | ||||
and these multiple retransmissions are added to the Retransmitted | ||||
Bytes count (and the Transmitted Bytes count). | ||||
And the third metric is the Buffer Delay Percentage, which represents | 3 - The Retransmission Time-out phase, which could include Fast | |||
the increase in RTT during a TCP throughput test from the inherent | Retransmit (Tahoe) or Fast Recovery (Reno & New Reno). When multiple | |||
network RTT (baseline RTT). The baseline RTT is the round-trip time | packet lost occurs, Congestion Avoidance phase transitions to Fast | |||
inherent to the network path under non-congested conditions. | Retransmission or Fast Recovery depending upon TCP implementations. | |||
If a Time-Out occurs, TCP transitions back to the Slow Start phase. | ||||
The Buffer Delay Percentage is defined as: | The following diagram depicts these 3 phases. | |||
Average RTT during Transfer - Baseline RTT | | Trying to reach TCP Equilibrium >>>>>>>>>>>>> | |||
------------------------------------------ x 100 | /\ | High ssthresh TCP CWND 3 | |||
Baseline RTT | /\ | Loss Event * halving Retransmission | |||
/\ | * \ upon loss Time-Out Adjusted | ||||
/\ | * \ /\ _______ ssthresh | ||||
/\ | * \ / \ /M-Loss | * | ||||
TCP | * 2 \/ \ / Events |1 * | ||||
Through- | * Congestion\ / |Slow * | ||||
put | 1 * Avoidance \/ |Start * | ||||
| Slow * Half | * | ||||
| Start * TCP CWND * | ||||
|___*_______________________Minimum TCP CWND after Time-Out_ | ||||
Time >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | ||||
Note : ssthresh = Slow Start threshold. | ||||
As an example, the baseline RTT for the network path is 25 msec. | Through the above 3 phases, TCP is trying to reach Equilibrium, but | |||
During the course of a TCP transfer, the average RTT across the | since packet loss is currently its only available feedback indicator, | |||
entire transfer increased to 32 msec. In this example, the Buffer | TCP will never reach that goal. Although, a well tuned (and managed) | |||
Delay Percentage WOULD be calculated as: | IP network with well tuned IP hosts and applications should perform | |||
very close to TCP Equilibrium and to the BB (Bottleneck Bandwidth). | ||||
32 - 25 | This TCP methodology provides guidelines to measure the maximum | |||
------- x 100 = 28% | achievable TCP throughput or maximum TCP sustained rate obtained | |||
25 | after TCP CWND has stabilized to an optimal value. All maximum | |||
achievable TCP throughputs specified in section 3 are with respect to | ||||
this condition. | ||||
Note that the TCP Transfer Time, TCP Efficiency, and Buffer Delay | It is important to clarify the interaction between the sender's Send | |||
metrics MUST be measured during each throughput test. | Socket Buffer and the receiver's advertised TCP Receive Window. TCP | |||
Poor TCP Transfer Time Indexes (TCP Transfer Time greater than Ideal | test programs such as iperf, ttcp, etc. allow the sender to control | |||
TCP Transfer Times) MAY be diagnosed by correlating with sub-optimal | the quantity of TCP Bytes transmitted and unacknowledged (in-flight), | |||
TCP Efficiency and/or Buffer Delay Percentage metrics. | commonly referred to as the Send Socket Buffer. This is done | |||
independently of the TCP Receive Window size advertised by the | ||||
receiver. Implications to the capabilities of the Throughput Test | ||||
Device (TTD) are covered at the end of section 3. | ||||
3. TCP Throughput Testing Methodology | 3. TCP Throughput Testing Methodology | |||
As stated in Section 1, it is considered best practice to verify | As stated earlier in section 1, it is considered best practice to | |||
the integrity of the network by conducting Layer2/3 stress tests | verify the integrity of the network by conducting Layer2/3 tests such | |||
such as [RFC2544] or other methods of network stress tests. If the | as [RFC2544] or other methods of network stress tests. Although, it | |||
network is not performing properly in terms of packet loss, jitter, | is important to mention here that RFC 2544 was never meant to be used | |||
etc. then the TCP layer testing will not be meaningful since the | outside a lab environment. | |||
equilibrium throughput MAY be very difficult to achieve (in a | ||||
"dysfunctional" network). | ||||
TCP Throughput testing MAY require cooperation between the end user | If the network is not performing properly in terms of packet loss, | |||
jitter, etc. then the TCP layer testing will not be meaningful. A | ||||
dysfunctional network will not reach close enough to TCP Equilibrium | ||||
to provide optimal TCP throughputs with the available bandwidth. | ||||
TCP Throughput testing may require cooperation between the end user | ||||
customer and the network provider. In a Layer 2/3 VPN architecture, | customer and the network provider. In a Layer 2/3 VPN architecture, | |||
the testing SHOULD be conducted on the Customer Edge (CE) router and | the testing should be conducted either on the CPE or on the CE device | |||
not the Provider Edge (PE) router. | and not on the PE (Provider Edge) router. | |||
The following represents the sequential order of steps to conduct the | The following represents the sequential order of steps for this | |||
TCP throughput testing methodology: | testing methodology: | |||
1. Identify the Path MTU. Packetization Layer Path MTU Discovery | 1. Identify the Path MTU. Packetization Layer Path MTU Discovery | |||
or PLPMTUD, [RFC4821], MUST be conducted to verify the maximum | or PLPMTUD, [RFC4821], MUST be conducted to verify the network path | |||
network path MTU. Conducting PLPMTUD establishes the upper limit for | MTU. Conducting PLPMTUD establishes the upper limit for the MSS to | |||
the MSS to be used in subsequent steps. | be used in subsequent steps. | |||
2. Baseline Round Trip Time and Bandwidth. This step establishes the | 2. Baseline Round Trip Time and Bandwidth. This step establishes the | |||
inherent, non-congested Round Trip Time (RTT) and the bottleneck | inherent, non-congested Round Trip Time (RTT) and the bottleneck | |||
bandwidth of the end-end network path. These measurements are used | bandwidth of the end-to-end network path. These measurements are | |||
to provide estimates of the ideal TCP window size, which SHOULD be | used to provide estimates of the ideal TCP Receive Window and Send | |||
used in subsequent test steps. These measurements reference | Socket Buffer sizes that SHOULD be used in subsequent test steps. | |||
[RFC2681] and [RFC4898] to measure RTD (and the associated RTT). | These measurements reference [RFC2681] and [RFC4898] to measure RTD | |||
Also, [RFC5136] is referenced to measure network capacity. | and the associated RTT. | |||
3. TCP Connection Throughput Tests. With baseline measurements | 3. TCP Connection Throughput Tests. With baseline measurements | |||
of Round Trip Time and bottleneck bandwidth, a series of single and | of Round Trip Time and bottleneck bandwidth, single and multiple TCP | |||
multiple TCP connection throughput tests SHOULD be conducted to | connection throughput tests SHOULD be conducted to baseline network | |||
baseline the network performance expectations. | performance expectations. | |||
4. Traffic Management Tests. Various traffic management and queuing | 4. Traffic Management Tests. Various traffic management and queuing | |||
techniques SHOULD be tested in this step, using multiple TCP | techniques can be tested in this step, using multiple TCP | |||
connections. Multiple connection testing SHOULD verify that the | connections. Multiple connections testing should verify that the | |||
network is configured properly for traffic shaping versus policing, | network is configured properly for traffic shaping versus policing, | |||
various queuing implementations, and RED. | various queuing implementations and RED. | |||
Important to note are some of the key characteristics and | Important to note are some of the key characteristics and | |||
considerations for the TCP test instrument. The test host MAY be a | considerations for the TCP test instrument. The test host may be a | |||
standard computer or dedicated communications test instrument | standard computer or a dedicated communications test instrument. | |||
and these TCP test hosts be capable of emulating both a client and a | In both cases, they must be capable of emulating both client and | |||
server. | server. | |||
Whether the TCP test host is a standard computer or a compliant TCP | The following criteria should be considered when selecting whether | |||
TTD, the following areas SHOULD be considered when selecting | the TCP test host can be a standard computer or has to be a dedicated | |||
a test host: | communications test instrument: | |||
- TCP implementation used by the test host OS version, i.e. Linux OS | - TCP implementation used by the test host, OS version, i.e. Linux OS | |||
kernel using TCP Reno, TCP options supported, etc. This will | kernel using TCP Reno, TCP options supported, etc. These will | |||
obviously be more important when using custom test equipment where | obviously be more important when using dedicated communications test | |||
the TCP implementation MAY be customized or tuned to run in higher | instruments where the TCP implementation may be customized or tuned | |||
performance hardware. When a compliant TCP TTD is used, the TCP | to run in higher performance hardware. When a compliant TCP TTD is | |||
implementation SHOULD be identified in the test results. The | used, the TCP implementation MUST be identified in the test results. | |||
compliant TCP TTD SHOULD be usable for complete end-to-end testing | The compliant TCP TTD should be usable for complete end-to-end | |||
through network security elements and SHOULD also be usable for | testing through network security elements and should also be usable | |||
testing network sections. | for testing network sections. | |||
- Most importantly, the TCP test host must be capable of generating | - More important, the TCP test host MUST be capable to generate | |||
and receiving stateful TCP test traffic at the full link speed of the | and receive stateful TCP test traffic at the full link speed of the | |||
network under test. As a general rule of thumb, testing TCP | network under test. Stateful TCP test traffic means that the test | |||
throughput at rates greater than 100 Mbit/sec MAY require high | host MUST fully implement a TCP stack; this is generally a comment | |||
aimed at dedicated communications test equipments which sometimes | ||||
"blast" packets with TCP headers. As a general rule of thumb, testing | ||||
TCP throughput at rates greater than 100 Mbit/sec MAY require high | ||||
performance server hardware or dedicated hardware based test tools. | performance server hardware or dedicated hardware based test tools. | |||
Thus, other devices cannot realize higher TCP throughput, and user | ||||
expectations SHOULD be set accordingly with user manual or notes on | ||||
the results report. | ||||
- Measuring RTT and TCP Efficiency per connection will generally | - A compliant TCP Throughput Test Device MUST allow adjusting both | |||
require dedicated hardware based test tools. In the absence of | Send Socket Buffer and TCP Receive Window sizes. The Receive Socket | |||
dedicated hardware based test tools, these measurements MAY need to | Buffer MUST be large enough to accommodate the TCP Receive Window. | |||
be conducted with packet capture tools (conduct TCP throughput tests | ||||
and analyze RTT and retransmission results with packet captures). | - Measuring RTT and retransmissions per connection will generally | |||
Another option MAY be to use "TCP Extended Statistics MIB" per | require a dedicated communications test instrument. In the absence of | |||
dedicated hardware based test tools, these measurements may need to | ||||
be conducted with packet capture tools, i.e. conduct TCP throughput | ||||
tests and analyze RTT and retransmission results in packet captures. | ||||
Another option may be to use "TCP Extended Statistics MIB" per | ||||
[RFC4898]. | [RFC4898]. | |||
- The compliant TCP TTD and its access to the network under test MUST | - The RFC4821 PLPMTUD test SHOULD be conducted with a dedicated | |||
NOT introduce a performance bottleneck of any kind. | tester which exposes the ability to run the PLPMTUD algorithm | |||
independent from the OS stack. | ||||
3.1. Determine Network Path MTU | 3.1. Determine Network Path MTU | |||
TCP implementations SHOULD use Path MTU Discovery techniques (PMTUD). | TCP implementations should use Path MTU Discovery techniques (PMTUD). | |||
PMTUD relies on ICMP 'need to frag' messages to learn the path MTU. | PMTUD relies on ICMP 'need to frag' messages to learn the path MTU. | |||
When a device has a packet to send which has the Don't Fragment (DF) | When a device has a packet to send which has the Don't Fragment (DF) | |||
bit in the IP header set and the packet is larger than the Maximum | bit in the IP header set and the packet is larger than the Maximum | |||
Transmission Unit (MTU) of the next hop link, the packet is dropped | Transmission Unit (MTU) of the next hop, the packet is dropped and | |||
and the device sends an ICMP 'need to frag' message back to the host | the device sends an ICMP 'need to frag' message back to the host that | |||
that originated the packet. The ICMP 'need to frag' message includes | originated the packet. The ICMP 'need to frag' message includes | |||
the next hop MTU which PMTUD uses to tune the TCP Maximum Segment | the next hop MTU which PMTUD uses to tune the TCP Maximum Segment | |||
Size (MSS). Unfortunately, because many network managers completely | Size (MSS). Unfortunately, because many network managers completely | |||
disable ICMP, this technique does not always prove reliable in real | disable ICMP, this technique does not always prove reliable. | |||
world situations. | ||||
Packetization Layer Path MTU Discovery or PLPMTUD [RFC4821] MUST | Packetization Layer Path MTU Discovery or PLPMTUD [RFC4821] MUST then | |||
be conducted to verify the minimum network path MTU. PLPMTUD can | be conducted to verify the network path MTU. PLPMTUD can be used | |||
be used with or without ICMP. The following sections provide a | with or without ICMP. The following sections provide a summary of the | |||
summary of the PLPMTUD approach and an example using the TCP | PLPMTUD approach and an example using TCP. [RFC4821] specifies a | |||
protocol. [RFC4821] specifies a search_high and a search_low | search_high and a search_low parameter for the MTU. As specified in | |||
parameter for the MTU. As specified in [RFC4821], a value of 1024 is | [RFC4821], 1024 Bytes is a safe value for search_low in modern | |||
a generally safe value to choose for search_low in modern networks. | networks. | |||
It is important to determine the overhead of the links in the path, | It is important to determine the links overhead along the IP path, | |||
and then to select a TCP MSS size corresponding to the Layer 3 MTU. | and then to select a TCP MSS size corresponding to the Layer 3 MTU. | |||
For example, if the MTU is 1024 bytes and the TCP/IP headers are 40 | For example, if the MTU is 1024 Bytes and the TCP/IP headers are 40 | |||
bytes, then the MSS would be set to 984 bytes. | Bytes, then the MSS would be set to 984 Bytes. | |||
An example scenario is a network where the actual path MTU is 1240 | An example scenario is a network where the actual path MTU is 1240 | |||
bytes. The TCP client probe MUST be capable of setting the MSS for | Bytes. The TCP client probe MUST be capable of setting the MSS for | |||
the probe packets and could start at MSS = 984 (which corresponds | the probe packets and could start at MSS = 984 (which corresponds | |||
to an MTU size of 1024 bytes). | to an MTU size of 1024 Bytes). | |||
The TCP client probe would open a TCP connection and advertise the | The TCP client probe would open a TCP connection and advertise the | |||
MSS as 984. Note that the client probe MUST generate these packets | MSS as 984. Note that the client probe MUST generate these packets | |||
with the DF bit set. The TCP client probe then sends test traffic | with the DF bit set. The TCP client probe then sends test traffic | |||
per a nominal window size (8KB, etc.). The window size SHOULD be | per a small default Send Socket Buffer size of ~8KBytes. It should | |||
kept small to minimize the possibility of congesting the network, | be kept small to minimize the possibility of congesting the network, | |||
which MAY induce congestive loss. The duration of the test should | which may induce packet loss. The duration of the test should also | |||
also be short (10-30 seconds), again to minimize congestive effects | be short (10-30 seconds), again to minimize congestive effects | |||
during the test. | during the test. | |||
In the example of a 1240 byte path MTU, probing with an MSS equal to | In the example of a 1240 Bytes path MTU, probing with an MSS equal to | |||
984 would yield a successful probe and the test client packets would | 984 would yield a successful probe and the test client packets would | |||
be successfully transferred to the test server. | be successfully transferred to the test server. | |||
Also note that the test client MUST verify that the MSS advertised | Also note that the test client MUST verify that the MSS advertised | |||
is indeed negotiated. Network devices with built-in Layer 4 | is indeed negotiated. Network devices with built-in Layer 4 | |||
capabilities can intercede during the connection establishment | capabilities can intercede during the connection establishment and | |||
process and reduce the advertised MSS to avoid fragmentation. This | reduce the advertised MSS to avoid fragmentation. This is certainly | |||
is certainly a desirable feature from a network perspective, but | a desirable feature from a network perspective, but it can yield | |||
can yield erroneous test results if the client test probe does not | erroneous test results if the client test probe does not confirm the | |||
confirm the negotiated MSS. | negotiated MSS. | |||
The next test probe would use the search_high value and this would | The next test probe would use the search_high value and this would | |||
be set to MSS = 1460 to correspond to a 1500 byte MTU. In this | be set to MSS = 1460 to correspond to a 1500 Bytes MTU. In this | |||
example, the test client MUST retransmit based upon time-outs (since | example, the test client will retransmit based upon time-outs, since | |||
no ACKs will be received from the test server). This test probe is | no ACKs will be received from the test server. This test probe is | |||
marked as a conclusive failure if none of the test packets are | marked as a conclusive failure if none of the test packets are | |||
ACK'ed. If any of the test packets are ACK'ed, congestive network | ACK'ed. If any of the test packets are ACK'ed, congestive network | |||
MAY be the cause and the test probe is not conclusive. Re-testing | may be the cause and the test probe is not conclusive. Re-testing | |||
at other times of the day is RECOMMENDED to further isolate. | at other times of the day is recommended to further isolate. | |||
The test is repeated until the desired granularity of the MTU is | The test is repeated until the desired granularity of the MTU is | |||
discovered. The method can yield precise results at the expense of | discovered. The method can yield precise results at the expense of | |||
probing time. One approach MAY be to reduce the probe size to | probing time. One approach may be to reduce the probe size to | |||
half between the unsuccessful search_high and successful search_low | half between the unsuccessful search_high and successful search_low | |||
value, and increase by increments of 1/2 when seeking the upper | value and raise it by half also when seeking the upper limit. | |||
limit. | ||||
3.2. Baseline Round Trip Time and Bandwidth | 3.2. Baseline Round Trip Time and Bandwidth | |||
Before stateful TCP testing can begin, it is important to determine | Before stateful TCP testing can begin, it is important to determine | |||
the baseline Round Trip Time (non-congested inherent delay) and | the baseline Round Trip Time (non-congested inherent delay) and | |||
bottleneck bandwidth of the end-end network to be tested. These | bottleneck bandwidth of the end-to-end network to be tested. These | |||
measurements are used to provide estimates of the ideal TCP window | measurements are used to provide estimates of the ideal TCP Receive | |||
size, which SHOULD be used in subsequent test steps. These latency | Window and Send Socket Buffer sizes that SHOULD be used in subsequent | |||
and bandwidth tests SHOULD be run during the time of day for which | test steps. | |||
the TCP throughput tests will occur. | ||||
3.2.1 Techniques to Measure Round Trip Time | 3.2.1 Techniques to Measure Round Trip Time | |||
Following the definitions used in the section 1.1; Round Trip Time | Following the definitions used in section 1.1, Round Trip Time (RTT) | |||
(RTT) is the time elapsed between the clocking in of the first bit | is the elapsed time between the clocking in of the first bit of a | |||
of a payload packet to the receipt of the last bit of the | payload sent packet to the receipt of the last bit of the | |||
corresponding Acknowledgment. Round Trip Delay (RTD) is used | corresponding Acknowledgment. Round Trip Delay (RTD) is used | |||
synonymously to twice the Link Latency. RTT measurements SHOULD use | synonymously to twice the Link Latency. RTT measurements SHOULD use | |||
techniques defined in [RFC2681] or statistics available from MIBs | techniques defined in [RFC2681] or statistics available from MIBs | |||
defined in [RFC4898]. | defined in [RFC4898]. | |||
The RTT SHOULD be baselined during "off-peak" hours to obtain a | The RTT SHOULD be baselined during "off-peak" hours to obtain a | |||
reliable figure for inherent network latency versus additional delay | reliable figure for inherent network latency versus additional delay | |||
caused by network buffering delays. | caused by network buffering. When sampling values of RTT over a test | |||
interval, the minimum value measured SHOULD be used as the baseline | ||||
During the actual sustained TCP throughput tests, RTT MUST be | RTT since this will most closely estimate the inherent network | |||
measured along with TCP throughput. Buffer delay effects can be | latency. This inherent RTT is also used to determine the Buffer | |||
isolated if RTT is concurrently measured. | Delay Percentage metric which is defined in Section 3.3.2 | |||
The following list is not meant to be exhaustive, although it | ||||
summarizes some of the most common ways to determine round trip time. | ||||
The desired resolution of the measurement (i.e. msec versus usec) may | ||||
dictate whether the RTT measurement can be achieved with ICMP pings | ||||
or by a dedicated communications test instrument with precision | ||||
timers. | ||||
This is not meant to provide an exhaustive list, but summarizes some | The objective in this section is to list several techniques | |||
of the more common ways to determine round trip time (RTT) through | ||||
the network. The desired resolution of the measurement (i.e. msec | ||||
versus usec) may dictate whether the RTT measurement can be achieved | ||||
with standard tools such as ICMP ping techniques or whether | ||||
specialized test equipment would be required with high precision | ||||
timers. The objective in this section is to list several techniques | ||||
in order of decreasing accuracy. | in order of decreasing accuracy. | |||
- Use test equipment on each end of the network, "looping" the | - Use test equipment on each end of the network, "looping" the | |||
far-end tester so that a packet stream can be measured end-end. This | far-end tester so that a packet stream can be measured back and forth | |||
test equipment RTT measurement MAY be compatible with delay | from end-to-end. This RTT measurement may be compatible with delay | |||
measurement protocols specified in [RFC5357]. | measurement protocols specified in [RFC5357]. | |||
- Conduct packet captures of TCP test applications using for example | - Conduct packet captures of TCP test sessions using "iperf" or FTP, | |||
"iperf" or FTP, etc. By running multiple experiments, the packet | or other TCP test applications. By running multiple experiments, | |||
captures can be studied to estimate RTT based upon the SYN -> SYN-ACK | packet captures can then be analyzed to estimate RTT based upon the | |||
handshakes within the TCP connection set-up. | SYN -> SYN-ACK from the 3 way handshake at the beginning of the TCP | |||
sessions. Although, note that Firewalls might slow down 3 way | ||||
handshakes, so it might be useful to compare with measured RTT later | ||||
on in the same capture. | ||||
- ICMP Pings MAY also be adequate to provide round trip time | - ICMP Pings may also be adequate to provide round trip time | |||
estimations. Some limitations of ICMP Ping MAY include msec | estimations. Some limitations with ICMP Ping may include msec | |||
resolution and whether the network elements respond to pings (or | resolution and whether the network elements are responding to pings | |||
block them). | or not. Also, ICMP is often rate-limited and segregated into | |||
different buffer queues, so it is not as reliable and accurate as | ||||
in-band measurements. | ||||
3.2.2 Techniques to Measure End-end Bandwidth | 3.2.2 Techniques to Measure end-to-end Bandwidth | |||
There are many well established techniques available to provide | There are many well established techniques available to provide | |||
estimated measures of bandwidth over a network. This measurement | estimated measures of bandwidth over a network. These measurements | |||
SHOULD be conducted in both directions of the network, especially for | SHOULD be conducted in both directions of the network, especially for | |||
access networks which MAY be asymmetrical. Measurements SHOULD use | access networks, which may be asymmetrical. Measurements SHOULD use | |||
network capacity techniques defined in [RFC5136]. | network capacity techniques defined in [RFC5136]. | |||
The bandwidth measurement test MUST be run with stateless IP streams | Before any TCP Throughput test can be done, a bandwidth measurement | |||
(not stateful TCP) in order to determine the available bandwidth in | test MUST be run with stateless IP streams(not stateful TCP) in order | |||
each direction. And this test SHOULD obviously be performed at | to determine the available bandwidths in each direction. This test | |||
various intervals throughout a business day (or even across a week). | should obviously be performed at various intervals throughout a | |||
Ideally, the bandwidth test SHOULD produce a log output of the | business day or even across a week. Ideally, the bandwidth test | |||
bandwidth achieved across the test interval. | should produce logged outputs of the achieved bandwidths across the | |||
test interval. | ||||
3.3. TCP Throughput Tests | 3.3. TCP Throughput Tests | |||
This methodology specifically defines TCP throughput techniques to | This methodology specifically defines TCP throughput techniques to | |||
verify sustained TCP performance in a managed business network. | verify sustained TCP performance in a managed business IP network, as | |||
Defined in section 2.1, the equilibrium throughput reflects the | defined in section 2.1. This section and others will define the | |||
maximum rate achieved by a TCP connection within the congestion | method to conduct these sustained TCP throughput tests and guidelines | |||
avoidance phase on an end-end network path. This section and others | for the predicted results. | |||
will define the method to conduct these sustained throughput tests | ||||
and guidelines of the predicted results. | ||||
With baseline measurements of round trip time and bandwidth | With baseline measurements of round trip time and bandwidth | |||
from section 3.2, a series of single and multiple TCP connection | from section 3.2, a series of single and multiple TCP connection | |||
throughput tests can be conducted to baseline network performance | throughput tests SHOULD be conducted to baseline network performance | |||
against expectations. | against expectations. The number of trials and the type of testing | |||
(single versus multiple connections) will vary according to the | ||||
intention of the test. One example would be a single connection test | ||||
in which the throughput achieved by large Send Socket Buffer and TCP | ||||
Receive Window sizes (i.e. 256KB) is to be measured. It would be | ||||
advisable to test performance at various times of the business day. | ||||
It is RECOMMENDED to run the tests in each direction independently | It is RECOMMENDED to run the tests in each direction independently | |||
first, then run both directions simultaneously. In each case, the | first, then run both directions simultaneously. In each case, | |||
TCP Transfer Time, TCP Efficiency, and Buffer Delay metrics MUST be | TCP Transfer Time, TCP Efficiency, and Buffer Delay Percentage MUST | |||
measured in each direction. | be measured in each direction. These metrics are defined in 3.3.2. | |||
3.3.1 Calculate Ideal TCP Window Size | 3.3.1 Calculate Ideal TCP Receive Window Size | |||
The ideal TCP window size can be calculated from the bandwidth | The ideal TCP Receive Window size can be calculated from the | |||
delay product (BDP), which is: | bandwidth delay product (BDP), which is: | |||
BDP (bits) = RTT (sec) x Bandwidth (bps) | BDP (bits) = RTT (sec) x Bandwidth (bps) | |||
By dividing the BDP by 8, the "ideal" TCP window size is calculated. | Note that the RTT is being used as the "Delay" variable in the | |||
An example would be a T3 link with 25 msec RTT. The BDP would equal | BDP calculations. | |||
~1,105,000 bits and the ideal TCP window would equal ~138,000 bytes. | ||||
The following table provides some representative network link speeds, | Then, by dividing the BDP by 8, we obtain the "ideal" TCP Receive | |||
latency, BDP, and associated ideal TCP window size. Sustained | Window size in Bytes. For optimal results, the Send Socket Buffer | |||
TCP transfers SHOULD reach nearly 100% throughput, minus the overhead | size must be adjusted to the same value at the opposite end of the | |||
of Layers 1-3 and the divisor of the MSS into the TCP Window. | network path. | |||
For this single connection baseline test, the MSS size will effect | Ideal TCP RWIN = BDP / 8 | |||
the achieved throughput (especially for smaller TCP Window sizes). | ||||
Table 3.2 provides the achievable, equilibrium TCP throughput (at | ||||
Layer 4) using 1460 byte MSS. Also in this table, the 58 byte L1-L4 | ||||
overhead including the Ethernet CRC32 is used for simplicity. | ||||
Table 3.3: Link Speed, RTT and calculated BDP, TCP Throughput | An example would be a T3 link with 25 msec RTT. The BDP would equal | |||
~1,105,000 bits and the ideal TCP Receive Window would be ~138 | ||||
KBytes. | ||||
Link Ideal TCP Maximum Achievable | The following table provides some representative network Link Speeds, | |||
Speed* RTT (ms) BDP (bits) Window (kBytes) TCP Throughput(Mbps) | RTT, BDP, and their associated Ideal TCP Receive Window sizes. | |||
Table 3.3.1: Link Speed, RTT and calculated BDP & TCP Receive Window | ||||
Link Ideal TCP | ||||
Speed* RTT BDP Receive Window | ||||
(Mbps) (ms) (bits) (KBytes) | ||||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
T1 20 30,720 3.84 1.17 | 1.536 20 30,720 3.84 | |||
T1 50 76,800 9.60 1.40 | 1.536 50 76,800 9.60 | |||
T1 100 153,600 19.20 1.40 | 1.536 100 153,600 19.20 | |||
T3 10 442,100 55.26 42.05 | 44.21 10 442,100 55.26 | |||
T3 15 663,150 82.89 42.05 | 44.21 15 663,150 82.89 | |||
T3 25 1,105,250 138.16 41.52 | 44.21 25 1,105,250 138.16 | |||
T3(ATM) 10 407,040 50.88 36.50 | 100 1 100,000 12.50 | |||
T3(ATM) 15 610,560 76.32 36.23 | 100 2 200,000 25.00 | |||
T3(ATM) 25 1,017,600 127.20 36.27 | 100 5 500,000 62.50 | |||
100M 1 100,000 12.50 91.98 | 1,000 0.1 100,000 12.50 | |||
100M 2 200,000 25.00 93.44 | 1,000 0.5 500,000 62.50 | |||
100M 5 500,000 62.50 93.44 | 1,000 1 1,000,000 125.00 | |||
1Gig 0.1 100,000 12.50 919.82 | 10,000 0.05 500,000 62.50 | |||
1Gig 0.5 500,000 62.50 934.47 | 10,000 0.3 3,000,000 375.00 | |||
1Gig 1 1,000,000 125.00 934.47 | ||||
10Gig 0.05 500,000 62.50 9,344.67 | ||||
10Gig 0.3 3,000,000 375.00 9,344.67 | ||||
* Note that link speed is the bottleneck bandwidth for the NUT | * Note that link speed is the bottleneck bandwidth for the NUT | |||
Also, the following link speeds (available payload bandwidth) were | ||||
used for the WAN entries: | ||||
- T1 = 1.536 Mbits/sec (B8ZS line encoding facility) | The following serial link speeds are used: | |||
- T3 = 44.21 Mbits/sec (C-Bit Framing) | - T1 = 1.536 Mbits/sec (for a B8ZS line encoding facility) | |||
- T3(ATM) = 36.86 Mbits/sec (C-Bit Framing & PLCP, 96000 Cells per | - T3 = 44.21 Mbits/sec (for a C-Bit Framing facility) | |||
second) | ||||
The calculation method used in this document is a 3 step process : | The above table illustrates the ideal TCP Receive Window size. | |||
If a smaller TCP Receive Window is used, then the TCP Throughput | ||||
is not optimal. To calculate the Ideal TCP Throughput, the following | ||||
formula is used: TCP Throughput = TCP RWIN X 8 / RTT | ||||
1 - Determine what SHOULD be the optimal TCP Window size value | An example could be a 100 Mbps IP path with 5 ms RTT and a TCP | |||
based on the optimal quantity of "in-flight" octets discovered by | Receive Window size of 16KB, then: | |||
the BDP calculation. We take into consideration that the TCP | ||||
Window size has to be an exact multiple value of the MSS. | ||||
2 - Calculate the achievable layer 2 throughput by multiplying the | ||||
value determined in step 1 with the MSS & (MSS + L2 + L3 + L4 | ||||
Overheads) divided by the RTT. | ||||
3 - Finally, multiply the calculated value of step 2 by the MSS | ||||
versus (MSS + L2 + L3 + L4 Overheads) ratio. | ||||
This provides the achievable TCP Throughput value. Sometimes, the | TCP Throughput = 16 KBytes X 8 bits / 5 ms. | |||
maximum achievable throughput is limited by the maximum achievable | TCP Throughput = 128,000 bits / 0.005 sec. | |||
quantity of Ethernet Frames per second on the physical media. Then | TCP Throughput = 25.6 Mbps. | |||
this value is used in step 2 instead of the calculated one. | ||||
The following diagram compares achievable TCP throughputs on a T3 link | Another example for a T3 using the same calculation formula is | |||
with Windows 2000/XP TCP window sizes of 16KB versus 64KB. | illustrated on the next page: | |||
TCP Throughput = TCP RWIN X 8 / RTT. | ||||
TCP Throughput = 16 KBytes X 8 bits / 10 ms. | ||||
TCP Throughput = 128,000 bits / 0.01 sec. | ||||
TCP Throughput = 12.8 Mbps. | ||||
When the TCP Receive Window size exceeds the BDP (i.e. T3 link, | ||||
64 KBytes TCP Receive Window on a 10 ms RTT path), the maximum frames | ||||
per second limit of 3664 is reached and the calculation formula is: | ||||
TCP Throughput = Max FPS X MSS X 8. | ||||
TCP Throughput = 3664 FPS X 1460 Bytes X 8 bits. | ||||
TCP Throughput = 42.8 Mbps | ||||
The following diagram compares achievable TCP throughputs on a T3 | ||||
with Send Socket Buffer & TCP Receive Window sizes of 16KB vs. 64KB. | ||||
45| | 45| | |||
| _____42.1M | | _______42.8M | |||
40| |64K| | 40| |64KB | | |||
TCP | | | | TCP | | | | |||
Throughput 35| | | _____34.3M | Throughput 35| | | | |||
in Mbps | | | |64K| | in Mbps | | | +-----+34.1M | |||
30| | | | | | 30| | | |64KB | | |||
| | | | | | | | | | | | |||
25| | | | | | 25| | | | | | |||
| | | | | | | | | | | | |||
20| | | | | _____20.5M | 20| | | | | _______20.5M | |||
| | | | | |64K| | | | | | | |64KB | | |||
15| 14.5M____| | | | | | | 15| | | | | | | | |||
| |16K| | | | | | | |12.8M+-----| | | | | | | |||
10| | | | 9.6M+---+ | | | | 10| |16KB | | | | | | | |||
| | | | |16K| | 5.8M____+ | | | | | |8.5M+-----| | | | | |||
5| | | | | | | |16K| | | 5| | | | |16KB | |5.1M+-----| | | |||
|______+___+___+_______+___+___+_______+__ +___+_______ | |_____|_____|_____|____|_____|_____|____|16KB |_____|_____ | |||
10 15 25 | 10 15 25 | |||
RTT in milliseconds | RTT in milliseconds | |||
The following diagram shows the achievable TCP throughput on a 25ms | The following diagram shows the achievable TCP throughput on a 25ms | |||
T3 when the TCP Window size is increased and with the [RFC1323] TCP | T3 when Send Socket Buffer & TCP Receive Window sizes are increased. | |||
Window scaling option. | ||||
45| | 45| | |||
| +-----+42.47M | | | |||
40| | | | 40| +-----+40.9M | |||
TCP | | | | TCP | | | | |||
Throughput 35| | | | Throughput 35| | | | |||
in Mbps | | | | in Mbps | | | | |||
30| | | | 30| | | | |||
| | | | | | | | |||
25| | | | 25| | | | |||
| ______ 21.23M | | | | | | | |||
20| | | | | | 20| +-----+20.5M | | | |||
| | | | | | | | | | | | |||
15| | | | | | 15| | | | | | |||
| | | | | | | | | | | | |||
10| +----+10.62M | | | | | 10| +-----+10.2M | | | | | |||
| _______5.31M | | | | | | | | | | | | | | | |||
5| | | | | | | | | | 5| +-----+5.1M | | | | | | | |||
|__+_____+______+____+__________+____+________+_____+___ | |_____|_____|______|_____|______|_____|_______|_____|_____ | |||
16 32 64 128 | 16 32 64 128* | |||
TCP Window size in KBytes | TCP Receive Window size in KBytes | |||
3.3.2 Conducting the TCP Throughput Tests | * Note that 128KB requires [RFC1323] TCP Window scaling option. | |||
There are several TCP tools that are commonly used in the network | 3.3.2 Metrics for TCP Throughput Tests | |||
world and one of the most common is the "iperf" tool. With this tool, | ||||
hosts are installed at each end of the network segment; one as client | ||||
and the other as server. The TCP Window size of both the client and | ||||
the server can be manually set and the achieved throughput is | ||||
measured, either uni-directionally or bi-directionally. For higher | ||||
BDP situations in lossy networks (long fat networks or satellite | ||||
links, etc.), TCP options such as Selective Acknowledgment SHOULD be | ||||
considered and also become part of the window size / throughput | ||||
characterization. | ||||
Host hardware performance MUST be well understood before conducting | This framework focuses on a TCP throughput methodology and also | |||
the TCP throughput tests and other tests in the following sections. | provides several basic metrics to compare results of various | |||
Dedicated test equipment will generally be REQUIRED, especially for | throughput tests. It is recognized that the complexity and | |||
line rates of GigE and 10 GigE. A compliant TCP TTD SHOULD provide a | unpredictability of TCP makes it impossible to develop a complete | |||
warning message when the expected test throughput will exceed 10% of | set of metrics that accounts for the myriad of variables (i.e. RTT | |||
the network bandwidth capacity. If the throughput test is expected | variation, loss conditions, TCP implementation, etc.). However, | |||
to exceed 10% of the provider bandwidth, then the test SHOULD be | these basic metrics will facilitate TCP throughput comparisons | |||
coordinated with the network provider. This does not include the | under varying network conditions and between network traffic | |||
customer premise bandwidth, the 10% refers directly to the provider's | management techniques. | |||
bandwidth (Provider Edge to Provider router). | ||||
The TCP throughput test SHOULD be run over a long enough duration | The first metric is the TCP Transfer Time, which is simply the | |||
to properly exercise network buffers and also characterize | measured time it takes to transfer a block of data across | |||
performance during different time periods of the day. | simultaneous TCP connections. This concept is useful when | |||
benchmarking traffic management techniques and where multiple | ||||
TCP connections are required. | ||||
Note that both the TCP Transfer Time, TCP Efficiency, and Buffer | TCP Transfer time may also be used to provide a normalized ratio of | |||
Delay metrics MUST be measured during each throughput test. | the actual TCP Transfer Time versus the Ideal Transfer Time. This | |||
Poor TCP Transfer Time Indexes (TCP Transfer Time greater than Ideal | ratio is called the TCP Transfer Index and is defined as: | |||
TCP Transfer Times) MAY be diagnosed by correlating with sub-optimal | ||||
TCP Efficiency and/or Buffer Delay Percentage metrics. | ||||
3.3.3 Single vs. Multiple TCP Connection Testing | Actual TCP Transfer Time | |||
------------------------- | ||||
Ideal TCP Transfer Time | ||||
The Ideal TCP Transfer time is derived from the network path | ||||
bottleneck bandwidth and various Layer 1/2/3/4 overheads associated | ||||
with the network path. Additionally, both the TCP Receive Window and | ||||
the Send Socket Buffer sizes must be tuned to equal the bandwidth | ||||
delay product (BDP) as described in section 3.3.1. | ||||
The following table illustrates the Ideal TCP Transfer time of a | ||||
single TCP connection when its TCP Receive Window and Send Socket | ||||
Buffer sizes are equal to the BDP. | ||||
Table 3.3.2: Link Speed, RTT, BDP, TCP Throughput, and | ||||
Ideal TCP Transfer time for a 100 MB File | ||||
Link Maximum Ideal TCP | ||||
Speed BDP Achievable TCP Transfer time | ||||
(Mbps) RTT (ms) (KBytes) Throughput(Mbps) (seconds) | ||||
-------------------------------------------------------------------- | ||||
1.536 50 9.6 1.4 571 | ||||
44.21 25 138.2 42.8 18 | ||||
100 2 25.0 94.9 9 | ||||
1,000 1 125.0 949.2 1 | ||||
10,000 0.05 62.5 9,492 0.1 | ||||
Transfer times are rounded for simplicity. | ||||
For a 100MB file(100 x 8 = 800 Mbits), the Ideal TCP Transfer Time | ||||
is derived as follows: | ||||
800 Mbits | ||||
Ideal TCP Transfer Time = ----------------------------------- | ||||
Maximum Achievable TCP Throughput | ||||
The maximum achievable layer 2 throughput on T1 and T3 Interfaces | ||||
is based on the maximum frames per second (FPS) permitted by the | ||||
actual layer 1 speed when the MTU is 1500 Bytes. | ||||
The maximum FPS for a T1 is 127 and the calculation formula is: | ||||
FPS = T1 Link Speed / ((MTU + PPP + Flags + CRC16) X 8) | ||||
FPS = (1.536M /((1500 Bytes + 4 Bytes + 2 Bytes + 2 Bytes) X 8 ))) | ||||
FPS = (1.536M / (1508 Bytes X 8)) | ||||
FPS = 1.536 Mbps / 12064 bits | ||||
FPS = 127 | ||||
The maximum FPS for a T3 is 3664 and the calculation formula is: | ||||
FPS = T3 Link Speed / ((MTU + PPP + Flags + CRC16) X 8) | ||||
FPS = (44.21M /((1500 Bytes + 4 Bytes + 2 Bytes + 2 Bytes) X 8 ))) | ||||
FPS = (44.21M / (1508 Bytes X 8)) | ||||
FPS = 44.21 Mbps / 12064 bits | ||||
FPS = 3664 | ||||
The 1508 equates to: | ||||
MTU + PPP + Flags + CRC16 | ||||
Where MTU is 1500 Bytes, PPP is 4 Bytes, Flags are 2 Bytes and CRC16 | ||||
is 2 Bytes. | ||||
Then, to obtain the Maximum Achievable TCP Throughput (layer 4), we | ||||
simply use: MSS in Bytes X 8 bits X max FPS. | ||||
For a T3, the maximum TCP Throughput = 1460 Bytes X 8 bits X 3664 FPS | ||||
Maximum TCP Throughput = 11680 bits X 3664 FPS | ||||
Maximum TCP Throughput = 42.8 Mbps. | ||||
The maximum achievable layer 2 throughput on Ethernet Interfaces is | ||||
based on the maximum frames per second permitted by the IEEE802.3 | ||||
standard when the MTU is 1500 Bytes. | ||||
The maximum FPS for 100M Ethernet is 8127 and the calculation is: | ||||
FPS = (100Mbps /(1538 Bytes X 8 bits)) | ||||
The maximum FPS for GigE is 81274 and the calculation formula is: | ||||
FPS = (1Gbps /(1538 Bytes X 8 bits)) | ||||
The maximum FPS for 10GigE is 812743 and the calculation formula is: | ||||
FPS = (10Gbps /(1538 Bytes X 8 bits)) | ||||
The 1538 equates to: | ||||
MTU + Eth + CRC32 + IFG + Preamble + SFD | ||||
Where MTU is 1500 Bytes, Ethernet is 14 Bytes, CRC32 is 4 Bytes, | ||||
IFG is 12 Bytes, Preamble is 7 Bytes and SFD is 1 Byte. | ||||
Note that better results could be obtained with jumbo frames on | ||||
GigE and 10 GigE. | ||||
Then, to obtain the Maximum Achievable TCP Throughput (layer 4), we | ||||
simply use: MSS in Bytes X 8 bits X max FPS. | ||||
For a 100M, the maximum TCP Throughput = 1460 B X 8 bits X 8127 FPS | ||||
Maximum TCP Throughput = 11680 bits X 8127 FPS | ||||
Maximum TCP Throughput = 94.9 Mbps. | ||||
To illustrate the TCP Transfer Time Index, an example would be the | ||||
bulk transfer of 100 MB over 5 simultaneous TCP connections (each | ||||
connection uploading 100 MB). In this example, the Ethernet service | ||||
provides a Committed Access Rate (CAR) of 500 Mbit/s. Each | ||||
connection may achieve different throughputs during a test and the | ||||
overall throughput rate is not always easy to determine (especially | ||||
as the number of connections increases). | ||||
The ideal TCP Transfer Time would be ~8 seconds, but in this example, | ||||
the actual TCP Transfer Time was 12 seconds. The TCP Transfer Index | ||||
would then be 12/8 = 1.5, which indicates that the transfer across | ||||
all connections took 1.5 times longer than the ideal. | ||||
The second metric is TCP Efficiency, which is the percentage of Bytes | ||||
that were not retransmitted and is defined as: | ||||
Transmitted Bytes - Retransmitted Bytes | ||||
--------------------------------------- x 100 | ||||
Transmitted Bytes | ||||
Transmitted Bytes are the total number of TCP payload Bytes to be | ||||
transmitted which includes the original and retransmitted Bytes. This | ||||
metric provides a comparative measure between various QoS mechanisms | ||||
like traffic management or congestion avoidance. Various TCP | ||||
implementations like Reno, Vegas, etc. could also be compared. | ||||
As an example, if 100,000 Bytes were sent and 2,000 had to be | ||||
retransmitted, the TCP Efficiency should be calculated as: | ||||
102,000 - 2,000 | ||||
---------------- x 100 = 98.03% | ||||
102,000 | ||||
Note that the retransmitted Bytes may have occurred more than once, | ||||
and these multiple retransmissions are added to the Retransmitted | ||||
Bytes count (and the Transmitted Bytes count). | ||||
The third metric is the Buffer Delay Percentage, which represents the | ||||
increase in RTT during a TCP throughput test with respect to | ||||
inherent or baseline network RTT. The baseline RTT is the round-trip | ||||
time inherent to the network path under non-congested conditions. | ||||
(See 3.2.1 for details concerning the baseline RTT measurements). | ||||
The Buffer Delay Percentage is defined as: | ||||
Average RTT during Transfer - Baseline RTT | ||||
------------------------------------------ x 100 | ||||
Baseline RTT | ||||
As an example, the baseline RTT for the network path is 25 msec. | ||||
During the course of a TCP transfer, the average RTT across the | ||||
entire transfer increased to 32 msec. In this example, the Buffer | ||||
Delay Percentage would be calculated as: | ||||
32 - 25 | ||||
------- x 100 = 28% | ||||
25 | ||||
Note that the TCP Transfer Time, TCP Efficiency, and Buffer Delay | ||||
Percentage MUST be measured during each throughput test. Poor TCP | ||||
Transfer Time Indexes (TCP Transfer Time greater than Ideal TCP | ||||
Transfer Times) may be diagnosed by correlating with sub-optimal TCP | ||||
Efficiency and/or Buffer Delay Percentage metrics. | ||||
3.3.3 Conducting the TCP Throughput Tests | ||||
Several TCP tools are currently used in the network world and one of | ||||
the most common is "iperf". With this tool, hosts are installed at | ||||
each end of the network path; one acts as client and the other as | ||||
a server. The Send Socket Buffer and the TCP Receive Window sizes | ||||
of both client and server can be manually set. The achieved | ||||
throughput can then be measured, either uni-directionally or | ||||
bi-directionally. For higher BDP situations in lossy networks | ||||
(long fat networks or satellite links, etc.), TCP options such as | ||||
Selective Acknowledgment SHOULD be considered and become part of | ||||
the window size / throughput characterization. | ||||
Host hardware performance must be well understood before conducting | ||||
the tests described in the following sections. A dedicated | ||||
communications test instrument will generally be required, especially | ||||
for line rates of GigE and 10 GigE. A compliant TCP TTD SHOULD | ||||
provide a warning message when the expected test throughput will | ||||
exceed 10% of the network bandwidth capacity. If the throughput test | ||||
is expected to exceed 10% of the provider bandwidth, then the test | ||||
should be coordinated with the network provider. This does not | ||||
include the customer premise bandwidth, the 10% refers directly to | ||||
the provider's bandwidth (Provider Edge to Provider router). | ||||
The TCP throughput test should be run over a long enough duration | ||||
to properly exercise network buffers (greater than 30 seconds) and | ||||
also characterize performance at different time periods of the day. | ||||
3.3.4 Single vs. Multiple TCP Connection Testing | ||||
The decision whether to conduct single or multiple TCP connection | The decision whether to conduct single or multiple TCP connection | |||
tests depends upon the size of the BDP in relation to the window | tests depends upon the size of the BDP in relation to the configured | |||
sizes configured in the end-user environment. For example, if the | TCP Receive Window sizes configured in the end-user environment. | |||
BDP for a long-fat pipe turns out to be 2MB, then it is probably more | For example, if the BDP for a long fat network turns out to be 2MB, | |||
realistic to test this pipe with multiple connections. Assuming | then it is probably more realistic to test this network path with | |||
typical host computer window settings of 64 KB, using 32 connections | multiple connections. Assuming typical host computer TCP Receive | |||
would realistically test this pipe. | Window Sizes of 64 KB, using 32 TCP connections would realistically | |||
test this path. | ||||
The following table is provided to illustrate the relationship of the | The following table is provided to illustrate the relationship | |||
BDP, window size, and the number of connections required to utilize | between the TCP Receive Window size and the number of TCP connections | |||
the available capacity. For this example, the network bandwidth is | required to utilize the available capacity of a given BDP. For this | |||
500 Mbps, RTT is equal to 5 ms, and the BDP equates to 312 KBytes. | example, the network bandwidth is 500 Mbps and the RTT is 5 ms, then | |||
the BDP equates to 312.5 KBytes. | ||||
#Connections | TCP Number of TCP Connections | |||
Window to Fill Link | Window to fill available bandwidth | |||
------------------------ | ------------------------------------- | |||
16KB 20 | 16KB 20 | |||
32KB 10 | 32KB 10 | |||
64KB 5 | 64KB 5 | |||
128KB 3 | 128KB 3 | |||
The TCP Transfer Time metric is useful for conducting multiple | The TCP Transfer Time metric is useful for conducting multiple | |||
connection tests. Each connection SHOULD be configured to transfer | connection tests. Each connection should be configured to transfer | |||
payloads of the same size (i.e. 100 MB), and the TCP Transfer time | payloads of the same size (i.e. 100 MB), and the TCP Transfer time | |||
SHOULD provide a simple metric to verify the actual versus expected | should provide a simple metric to verify the actual versus expected | |||
results. | results. | |||
Note that the TCP transfer time is the time for all connections to | Note that the TCP transfer time is the time for all connections to | |||
complete the transfer of the configured payload size. From the | complete the transfer of the configured payload size. From the | |||
example table listed above, the 64KB window is considered. Each of | previous table, the 64KB window is considered. Each of the 5 | |||
the 5 connections would be configured to transfer 100MB, and each | TCP connections would be configured to transfer 100MB, and each one | |||
TCP should obtain a maximum of 100 Mb/sec per connection. So for | should obtain a maximum of 100 Mb/sec. So for this example, the | |||
this example, the 100MB payload should be transferred across the | 100MB payload should be transferred across the connections in | |||
connections in approximately 8 seconds (which would be the ideal TCP | approximately 8 seconds (which would be the ideal TCP transfer time | |||
transfer time for these conditions). | under these conditions). | |||
Additionally, the TCP Efficiency metric SHOULD be computed for each | Additionally, the TCP Efficiency metric MUST be computed for each | |||
connection tested (defined in section 2.2). | connection tested as defined in section 3.3.2. | |||
3.3.4 Interpretation of the TCP Throughput Results | 3.3.5 Interpretation of the TCP Throughput Results | |||
At the end of this step, the user will document the theoretical BDP | At the end of this step, the user will document the theoretical BDP | |||
and a set of Window size experiments with measured TCP throughput for | and a set of Window size experiments with measured TCP throughput for | |||
each TCP window size setting. For cases where the sustained TCP | each TCP window size. For cases where the sustained TCP throughput | |||
throughput does not equal the ideal value, some possible causes | does not equal the ideal value, some possible causes are: | |||
are listed: | ||||
- Network congestion causing packet loss which MAY be inferred from | - Network congestion causing packet loss which MAY be inferred from | |||
a poor TCP Efficiency metric (100% = no loss) | a poor TCP Efficiency % (higher TCP Efficiency % = less packet | |||
loss) | ||||
- Network congestion causing an increase in RTT which MAY be inferred | - Network congestion causing an increase in RTT which MAY be inferred | |||
from the Buffer Delay metric (0% = no increase in RTT over baseline) | from the Buffer Delay Percentage (i.e., 0% = no increase in RTT | |||
over baseline) | ||||
- Intermediate network devices which actively regenerate the TCP | - Intermediate network devices which actively regenerate the TCP | |||
connection and can alter window size, MSS, etc. | connection and can alter TCP Receive Window size, MSS, etc. | |||
- Rate limiting (policing). More discussion of traffic management | - Rate limiting (policing). More details on traffic management | |||
tests follows in section 3.4 | tests follows in section 3.4 | |||
3.4. Traffic Management Tests | 3.4. Traffic Management Tests | |||
In most cases, the network connection between two geographic | In most cases, the network connection between two geographic | |||
locations (branch offices, etc.) is lower than the network connection | locations (branch offices, etc.) is lower than the network connection | |||
of the host computers. An example would be LAN connectivity of GigE | to host computers. An example would be LAN connectivity of GigE | |||
and WAN connectivity of 100 Mbps. The WAN connectivity may be | and WAN connectivity of 100 Mbps. The WAN connectivity may be | |||
physically 100 Mbps or logically 100 Mbps (over a GigE WAN | physically 100 Mbps or logically 100 Mbps (over a GigE WAN | |||
connection). In the later case, rate limiting is used to provide the | connection). In the later case, rate limiting is used to provide the | |||
WAN bandwidth per the SLA. | WAN bandwidth per the SLA. | |||
Traffic management techniques are employed to provide various forms | Traffic management techniques are employed to provide various forms | |||
of QoS, the more common include: | of QoS, the more common include: | |||
- Traffic Shaping | - Traffic Shaping | |||
- Priority queuing | - Priority queuing | |||
- Random Early Discard (RED, etc.) | - Random Early Discard (RED) | |||
Configuring the end-end network with these various traffic management | Configuring the end-to-end network with these various traffic | |||
mechanisms is a complex under-taking. For traffic shaping and RED | management mechanisms is a complex under-taking. For traffic shaping | |||
techniques, the end goal is to provide better performance for bursty | and RED techniques, the end goal is to provide better performance to | |||
traffic such as TCP (RED is specifically intended for TCP). | bursty traffic such as TCP,(RED is specifically intended for TCP). | |||
This section of the methodology provides guidelines to test traffic | This section of the methodology provides guidelines to test traffic | |||
shaping and RED implementations. As in section 3.3, host hardware | shaping and RED implementations. As in section 3.3, host hardware | |||
performance MUST be well understood before conducting the traffic | performance must be well understood before conducting the traffic | |||
shaping and RED tests. Dedicated test equipment will generally be | shaping and RED tests. Dedicated communications test instrument will | |||
REQUIRED for line rates of GigE and 10 GigE. If the throughput test | generally be REQUIRED for line rates of GigE and 10 GigE. If the | |||
is expected to exceed 10% of the provider bandwidth, then the test | throughput test is expected to exceed 10% of the provider bandwidth, | |||
SHOULD be coordinated with the network provider. This does not | then the test should be coordinated with the network provider. This | |||
include the customer premise bandwidth, the 10% refers directly to | does not include the customer premises bandwidth, the 10% refers to | |||
the provider's bandwidth (Provider Edge to Provider router). | the provider's bandwidth (Provider Edge to Provider router). Note | |||
that GigE and 10 GigE interfaces might benefit from hold-queue | ||||
adjustments in order to prevent the saw-tooth TCP traffic pattern. | ||||
3.4.1 Traffic Shaping Tests | 3.4.1 Traffic Shaping Tests | |||
For services where the available bandwidth is rate limited, there are | For services where the available bandwidth is rate limited, two (2) | |||
two (2) techniques used to implement rate limiting: traffic policing | techniques can be used: traffic policing or traffic shaping. | |||
and traffic shaping. | ||||
Simply stated, traffic policing marks and/or drops packets which | Simply stated, traffic policing marks and/or drops packets which | |||
exceed the SLA bandwidth (in most cases, excess traffic is dropped). | exceed the SLA bandwidth (in most cases, excess traffic is dropped). | |||
Traffic shaping employs the use of queues to smooth the bursty | Traffic shaping employs the use of queues to smooth the bursty | |||
traffic and then send out within the SLA bandwidth limit (without | traffic and then send out within the SLA bandwidth limit (without | |||
dropping packets unless the traffic shaping queue is exceeded). | dropping packets unless the traffic shaping queue is exhausted). | |||
Traffic shaping is generally configured for TCP data services and | Traffic shaping is generally configured for TCP data services and | |||
can provide improved TCP performance since the retransmissions are | can provide improved TCP performance since the retransmissions are | |||
reduced, which in turn optimizes TCP throughput for the given | reduced, which in turn optimizes TCP throughput for the available | |||
available bandwidth. Through this section, the available | bandwidth. Through this section, the rate-limited bandwidth shall | |||
rate-limited bandwidth shall be referred to as the | be referred to as the "bottleneck bandwidth". | |||
"bottleneck bandwidth". | ||||
The ability to detect proper traffic shaping is more easily diagnosed | The ability to detect proper traffic shaping is more easily diagnosed | |||
when conducting a multiple TCP connection test. Proper shaping will | when conducting a multiple TCP connections test. Proper shaping will | |||
provide a fair distribution of the available bottleneck bandwidth, | provide a fair distribution of the available bottleneck bandwidth, | |||
while traffic policing will not. | while traffic policing will not. | |||
The traffic shaping tests are built upon the concepts of multiple | The traffic shaping tests are built upon the concepts of multiple | |||
connection testing as defined in section 3.3.3. Calculating the BDP | connections testing as defined in section 3.3.3. Calculating the BDP | |||
for the bottleneck bandwidth is first REQUIRED before selecting the | for the bottleneck bandwidth is first required before selecting the | |||
number of connections and TCP Window size per connection. | number of connections and Send Buffer and TCP Receive Window sizes | |||
per connection. | ||||
Similar to the example in section 3.3, a typical test scenario might | Similar to the example in section 3.3, a typical test scenario might | |||
be: GigE LAN with a 100Mbps bottleneck bandwidth (rate limited | be: GigE LAN with a 100Mbps bottleneck bandwidth (rate limited | |||
logical interface), and 5 msec RTT. This would require five (5) TCP | logical interface), and 5 msec RTT. This would require five (5) TCP | |||
connections of 64 KB window size evenly fill the bottleneck bandwidth | connections of 64 KB Send Socket Buffer and TCP Receive Window sizes | |||
(about 100 Mbps per connection). | to evenly fill the bottleneck bandwidth (~100 Mbps per connection). | |||
The traffic shaping test SHOULD be run over a long enough duration to | The traffic shaping test should be run over a long enough duration to | |||
properly exercise network buffers (greater than 30 seconds) and also | properly exercise network buffers (greater than 30 seconds) and also | |||
characterize performance during different time periods of the day. | characterize performance during different time periods of the day. | |||
The throughput of each connection MUST be logged during the entire | The throughput of each connection MUST be logged during the entire | |||
test, along with the TCP Transfer Time, TCP Efficiency, and | test, along with the TCP Transfer Time, TCP Efficiency, and | |||
Buffer Delay metrics. | Buffer Delay Percentage. | |||
3.4.1.1 Interpretation of Traffic Shaping Test Results | 3.4.1.1 Interpretation of Traffic Shaping Test Results | |||
By plotting the throughput achieved by each TCP connection, the fair | By plotting the throughput achieved by each TCP connection, the fair | |||
sharing of the bandwidth is generally very obvious when traffic | sharing of the bandwidth is generally very obvious when traffic | |||
shaping is properly configured for the bottleneck interface. For the | shaping is properly configured for the bottleneck interface. For the | |||
previous example of 5 connections sharing 500 Mbps, each connection | previous example of 5 connections sharing 500 Mbps, each connection | |||
would consume ~100 Mbps with a smooth variation. If traffic policing | would consume ~100 Mbps with a smooth variation. | |||
was present on the bottleneck interface, the bandwidth sharing MAY | ||||
not be fair and the resulting throughput plot MAY reveal "spikey" | If traffic policing was present on the bottleneck interface, the | |||
throughput consumption of the competing TCP connections (due to the | bandwidth sharing may not be fair and the resulting throughput plot | |||
retransmissions). | may reveal "spikey" throughput consumption of the competing TCP | |||
connections (due to the TCP retransmissions). | ||||
3.4.2 RED Tests | 3.4.2 RED Tests | |||
Random Early Discard techniques are specifically targeted to provide | Random Early Discard techniques are specifically targeted to provide | |||
congestion avoidance for TCP traffic. Before the network element | congestion avoidance for TCP traffic. Before the network element | |||
queue "fills" and enters the tail drop state, RED drops packets at | queue "fills" and enters the tail drop state, RED drops packets at | |||
configurable queue depth thresholds. This action causes TCP | configurable queue depth thresholds. This action causes TCP | |||
connections to back-off which helps to prevent tail drop, which in | connections to back-off which helps to prevent tail drop, which in | |||
turn helps to prevent global TCP synchronization. | turn helps to prevent global TCP synchronization. | |||
Again, rate limited interfaces can benefit greatly from RED based | Again, rate limited interfaces may benefit greatly from RED based | |||
techniques. Without RED, TCP is generally not able to achieve the | techniques. Without RED, TCP may not be able to achieve the full | |||
full bandwidth of the bottleneck interface. With RED enabled, TCP | bottleneck bandwidth. With RED enabled, TCP congestion avoidance | |||
congestion avoidance throttles the connections on the higher speed | throttles the connections on the higher speed interface (i.e. LAN) | |||
interface (i.e. LAN) and can reach equilibrium with the bottleneck | and can help achieve the full bottleneck bandwidth. The burstiness | |||
bandwidth (achieving closer to full throughput). | of TCP traffic is a key factor in the overall effectiveness of RED | |||
techniques; steady state bulk transfer flows will generally not | ||||
benefit from RED. With bulk transfer flows, network device queues | ||||
gracefully throttle the effective throughput rates due to increased | ||||
delays. | ||||
The ability to detect proper RED configuration is more easily | The ability to detect proper RED configuration is more easily | |||
diagnosed when conducting a multiple TCP connection test. Multiple | diagnosed when conducting a multiple TCP connections test. Multiple | |||
TCP connections provide the multiple bursty sources that emulate the | TCP connections provide the bursty sources that emulate the | |||
real-world conditions for which RED was intended. | real-world conditions for which RED was intended. | |||
The RED tests also build upon the concepts of multiple connection | The RED tests also builds upon the concepts of multiple connections | |||
testing as defined in section 3.3.3. Calculating the BDP for the | testing as defined in section 3.3.3. Calculating the BDP for the | |||
bottleneck bandwidth is first REQUIRED before selecting the number | bottleneck bandwidth is first required before selecting the number | |||
of connections and TCP Window size per connection. | of connections, the Send Socket Buffer size and the TCP Receive | |||
Window size per connection. | ||||
For RED testing, the desired effect is to cause the TCP connections | For RED testing, the desired effect is to cause the TCP connections | |||
to burst beyond the bottleneck bandwidth so that queue drops will | to burst beyond the bottleneck bandwidth so that queue drops will | |||
occur. Using the same example from section 3.4.1 (traffic shaping), | occur. Using the same example from section 3.4.1 (traffic shaping), | |||
the 500 Mbps bottleneck bandwidth requires 5 TCP connections (with | the 500 Mbps bottleneck bandwidth requires 5 TCP connections (with | |||
window size of 64Kb) to fill the capacity. Some experimentation is | window size of 64KB) to fill the capacity. Some experimentation is | |||
REQUIRED, but it is RECOMMENDED to start with double the number of | required, but it is recommended to start with double the number of | |||
connections to stress the network element buffers / queues. In this | connections to stress the network element buffers / queues (10 | |||
example, 10 connections SHOULD produce TCP bursts of 64KB for each | connections for this example). | |||
connection. If the timing of the TCP tester permits, these TCP | ||||
bursts SHOULD stress queue sizes in the 512KB range. Again | The TCP TTD must be configured to generate these connections as | |||
experimentation will be REQUIRED and the proper number of TCP | shorter (bursty) flows versus bulk transfer type flows. These TCP | |||
connections and TCP window size will be dictated by the size the | bursts should stress queue sizes in the 512KB range. Again | |||
network element queue. | experimentation will be required; the proper number of TCP | |||
connections, the Send Socket Buffer and TCP Receive Window sizes will | ||||
be dictated by the size of the network element queue. | ||||
3.4.2.1 Interpretation of RED Results | 3.4.2.1 Interpretation of RED Results | |||
The default queuing technique for most network devices is FIFO based. | The default queuing technique for most network devices is FIFO based. | |||
Without RED, the FIFO based queue will cause excessive loss to all of | Without RED, the FIFO based queue may cause excessive loss to all of | |||
the TCP connections and in the worst case global TCP synchronization. | the TCP connections and in the worst case global TCP synchronization. | |||
By plotting the aggregate throughput achieved on the bottleneck | By plotting the aggregate throughput achieved on the bottleneck | |||
interface, proper RED operation MAY be determined if the bottleneck | interface, proper RED operation may be determined if the bottleneck | |||
bandwidth is fully utilized. For the previous example of 10 | bandwidth is fully utilized. For the previous example of 10 | |||
connections (window = 64 KB) sharing 500 Mbps, each connection SHOULD | connections (window = 64 KB) sharing 500 Mbps, each connection should | |||
consume ~50 Mbps. If RED was not properly enabled on the interface, | consume ~50 Mbps. If RED was not properly enabled on the interface, | |||
then the TCP connections will retransmit at a higher rate and the | then the TCP connections will retransmit at a higher rate and the | |||
net effect is that the bottleneck bandwidth is not fully utilized. | net effect is that the bottleneck bandwidth is not fully utilized. | |||
Another means to study non-RED versus RED implementation is to use | Another means to study non-RED versus RED implementation is to use | |||
the TCP Transfer Time metric for all of the connections. In this | the TCP Transfer Time metric for all of the connections. In this | |||
example, a 100 MB payload transfer SHOULD take ideally 16 seconds | example, a 100 MB payload transfer should take ideally 16 seconds | |||
across all 10 connections (with RED enabled). With RED not enabled, | across all 10 connections (with RED enabled). With RED not enabled, | |||
the throughput across the bottleneck bandwidth MAY be greatly | the throughput across the bottleneck bandwidth may be greatly | |||
reduced (generally 20-40%) and the actual TCP Transfer time MAY be | reduced (generally 10-20%) and the actual TCP Transfer time may be | |||
proportionally longer then the Ideal TCP Transfer time. | proportionally longer then the Ideal TCP Transfer time. | |||
Additionally, the TCP Transfer Efficiency metric is useful, since | Additionally, non-RED implementations may exhibit a lower TCP | |||
non-RED implementations MAY exhibit a lower TCP Transfer Efficiency. | Transfer Efficiency. | |||
4. Security Considerations | 4. Security Considerations | |||
The security considerations that apply to any active measurement of | The security considerations that apply to any active measurement of | |||
live networks are relevant here as well. See [RFC4656] and | live networks are relevant here as well. See [RFC4656] and | |||
[RFC5357]. | [RFC5357]. | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document does not REQUIRE an IANA registration for ports | This document does not REQUIRE an IANA registration for ports | |||
dedicated to the TCP testing described in this document. | dedicated to the TCP testing described in this document. | |||
6. Acknowledgments | 6. Acknowledgments | |||
Thanks to Matt Mathis, Matt Zekauskas, Al Morton, Rudi Geib, and | Thanks to Lars Eggert, Al Morton, Matt Mathis, Matt Zekauskas, | |||
Yaakov Stein, Loki Jorgenson for many good comments and for pointing | Yaakov Stein, and Loki Jorgenson for many good comments and for | |||
us to great sources of information pertaining to past works in the | pointing us to great sources of information pertaining to past works | |||
TCP capacity area. | in the TCP capacity area. | |||
7. References | 7. References | |||
7.1 Normative References | 7.1 Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. | [RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. | |||
Zekauskas, "A One-way Active Measurement Protocol | Zekauskas, "A One-way Active Measurement Protocol | |||
(OWAMP)", RFC 4656, September 2006. | (OWAMP)", RFC 4656, September 2006. | |||
skipping to change at page 23, line 28 | skipping to change at page 24, line 45 | |||
[RFC4898] Mathis, M., Heffner, J., Raghunarayan, R., "TCP Extended | [RFC4898] Mathis, M., Heffner, J., Raghunarayan, R., "TCP Extended | |||
Statistics MIB", May 2007 | Statistics MIB", May 2007 | |||
[RFC5136] Chimento P., Ishac, J., "Defining Network Capacity", | [RFC5136] Chimento P., Ishac, J., "Defining Network Capacity", | |||
February 2008 | February 2008 | |||
[RFC1323] Jacobson, V., Braden, R., Borman D., "TCP Extensions for | [RFC1323] Jacobson, V., Braden, R., Borman D., "TCP Extensions for | |||
High Performance", May 1992 | High Performance", May 1992 | |||
7.2. Informative References | 7.2. Informative References | |||
Authors' Addresses | Authors' Addresses | |||
Barry Constantine | Barry Constantine | |||
JDSU, Test and Measurement Division | JDSU, Test and Measurement Division | |||
One Milesone Center Court | One Milesone Center Court | |||
Germantown, MD 20876-7100 | Germantown, MD 20876-7100 | |||
USA | USA | |||
Phone: +1 240 404 2227 | Phone: +1 240 404 2227 | |||
barry.constantine@jdsu.com | barry.constantine@jdsu.com | |||
Gilles Forget | Gilles Forget | |||
Independent Consultant to Bell Canada. | Independent Consultant to Bell Canada. | |||
308, rue de Monaco, St-Eustache | 308, rue de Monaco, St-Eustache | |||
Qc. CANADA, Postal Code : J7P-4T5 | Qc. CANADA, Postal Code : J7P-4T5 | |||
Phone: (514) 895-8212 | Phone: (514) 895-8212 | |||
gilles.forget@sympatico.ca | gilles.forget@sympatico.ca | |||
Rudiger Geib | ||||
Heinrich-Hertz-Strasse (Number: 3-7) | ||||
Darmstadt, Germany, 64295 | ||||
Phone: +49 6151 6282747 | ||||
Ruediger.Geib@telekom.de | ||||
Reinhard Schrage | Reinhard Schrage | |||
Schrage Consulting | Schrage Consulting | |||
Phone: +49 (0) 5137 909540 | Phone: +49 (0) 5137 909540 | |||
reinhard@schrageconsult.com | reinhard@schrageconsult.com | |||
End of changes. 160 change blocks. | ||||
676 lines changed or deleted | 791 lines changed or added | |||
This html diff was produced by rfcdiff 1.40. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |