draft-ietf-ippm-tcp-throughput-tm-05.txt | draft-ietf-ippm-tcp-throughput-tm-06.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: February 12, 2011 Bell Canada (Ext. Consultant) | Expires: February 27, 2011 Bell Canada (Ext. Consultant) | |||
L. Jorgenson | L. Jorgenson | |||
nooCore | nooCore | |||
Reinhard Schrage | Reinhard Schrage | |||
Schrage Consulting | Schrage Consulting | |||
August 12, 2010 | August 27, 2010 | |||
TCP Throughput Testing Methodology | TCP Throughput Testing Methodology | |||
draft-ietf-ippm-tcp-throughput-tm-05.txt | draft-ietf-ippm-tcp-throughput-tm-06.txt | |||
Abstract | Abstract | |||
This memo describes a methodology for measuring sustained TCP | This memo describes a methodology for measuring sustained TCP | |||
throughput performance in an end-to-end managed network environment. | throughput performance in an end-to-end managed network environment. | |||
This memo is intended to provide a practical approach to help users | This memo is intended to provide a practical approach to help users | |||
validate the TCP layer performance of a managed network, which should | validate the TCP layer performance of a managed network, which should | |||
provide a better indication of end-user application level experience. | provide a better indication of end-user application level experience. | |||
In the methodology, various TCP and network parameters are identified | In the methodology, various TCP and network parameters are identified | |||
that should be tested as part of the network verification at the TCP | that should be tested as part of the network verification at the TCP | |||
layer. | layer. | |||
Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
document are to be interpreted as described in RFC 2119 [RFC2119]. | ||||
Status of this Memo | Status of this Memo | |||
This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF). Note that other groups may also distribute | |||
other groups may also distribute working documents as Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts. Creation date August 12, 2010. | 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." | |||
The list of current Internet-Drafts can be accessed at | This Internet-Draft will expire on February 27, 2011. | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | ||||
The list of Internet-Draft Shadow Directories can be accessed at | ||||
http://www.ietf.org/shadow.html. | ||||
This Internet-Draft will expire on February 12, 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
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 BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Goals of this Methodology. . . . . . . . . . . . . . . . . . . 4 | 2. Goals of this Methodology. . . . . . . . . . . . . . . . . . . 4 | |||
2.1 TCP Equilibrium State Throughput . . . . . . . . . . . . . 5 | 2.1 TCP Equilibrium State Throughput . . . . . . . . . . . . . 5 | |||
2.2 Metrics for TCP Throughput Tests . . . . . . . . . . . . . 6 | 2.2 Metrics for TCP Throughput Tests . . . . . . . . . . . . . 6 | |||
3. TCP Throughput Testing Methodology . . . . . . . . . . . . . . 7 | 3. TCP Throughput Testing Methodology . . . . . . . . . . . . . . 7 | |||
3.1 Determine Network Path MTU . . . . . . . . . . . . . . . . 8 | 3.1 Determine Network Path MTU . . . . . . . . . . . . . . . . 8 | |||
3.2. Baseline Round-trip Delay and Bandwidth. . . . . . . . . . 10 | 3.2. Baseline Round-trip Delay and Bandwidth. . . . . . . . . . 10 | |||
skipping to change at page 2, line 41 | skipping to change at page 2, line 41 | |||
3.3. TCP Throughput Tests . . . . . . . . . . . . . . . . . . . 11 | 3.3. TCP Throughput Tests . . . . . . . . . . . . . . . . . . . 11 | |||
3.3.1 Calculate Optimum TCP Window Size. . . . . . . . . . . 12 | 3.3.1 Calculate Optimum TCP Window Size. . . . . . . . . . . 12 | |||
3.3.2 Conducting the TCP Throughput Tests. . . . . . . . . . 14 | 3.3.2 Conducting the TCP Throughput Tests. . . . . . . . . . 14 | |||
3.3.3 Single vs. Multiple TCP Connection Testing . . . . . . 15 | 3.3.3 Single vs. Multiple TCP Connection Testing . . . . . . 15 | |||
3.3.4 Interpretation of the TCP Throughput Results . . . . . 16 | 3.3.4 Interpretation of the TCP Throughput Results . . . . . 16 | |||
3.4. Traffic Management Tests . . . . . . . . . . . . . . . . . 16 | 3.4. Traffic Management Tests . . . . . . . . . . . . . . . . . 16 | |||
3.4.1 Traffic Shaping Tests. . . . . . . . . . . . . . . . . 16 | 3.4.1 Traffic Shaping Tests. . . . . . . . . . . . . . . . . 16 | |||
3.4.1.1 Interpretation of Traffic Shaping Test Results. . . 17 | 3.4.1.1 Interpretation of Traffic Shaping Test Results. . . 17 | |||
3.4.2 RED Tests. . . . . . . . . . . . . . . . . . . . . . . 18 | 3.4.2 RED Tests. . . . . . . . . . . . . . . . . . . . . . . 18 | |||
3.4.2.1 Interpretation of RED Results . . . . . . . . . . . 18 | 3.4.2.1 Interpretation of RED Results . . . . . . . . . . . 18 | |||
4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 19 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
5.1. Registry Specification . . . . . . . . . . . . . . . . . . 19 | ||||
5.2. Registry Contents . . . . . . . . . . . . . . . . . . . . 19 | ||||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
7.1 Normative References . . . . . . . . . . . . . . . . . . . 19 | ||||
7.2 Informative References . . . . . . . . . . . . . . . . . . 20 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
1. Introduction | 1. Introduction | |||
Testing an operational network prior to customer activation is referred | Testing an operational network prior to customer activation is | |||
to as "turn-up" testing and the SLA is generally Layer 2/3 packet | referred to as "turn-up" testing and the SLA (Service Level | |||
throughput, delay, loss and jitter. | Agreement) is generally based upon Layer 2/3 packet throughput, | |||
delay, loss and jitter. | ||||
Network providers are coming to the realization that Layer 2/3 testing | Network providers are coming to the realization that Layer 2/3 | |||
and TCP layer testing are required to more adequately ensure end-user | testing and TCP layer testing are required to more adequately ensure | |||
satisfaction. Therefore, the network provider community desires to | end-user satisfaction. Therefore, the network provider community | |||
measure network throughput performance at the TCP layer. Measuring | desires to measure network throughput performance at the TCP layer. | |||
TCP throughput provides a meaningful measure with respect to the end | Measuring TCP throughput provides a meaningful measure with respect | |||
user's application SLA (and ultimately reach some level of TCP | to the end user experience (and ultimately reach some level of | |||
testing interoperability which does not exist today). | TCP testing interoperability which does not exist today). | |||
Additionally, end-users (business enterprises) seek to conduct | Additionally, end-users (business enterprises) seek to conduct | |||
repeatable TCP throughput tests between enterprise locations. Since | repeatable TCP throughput tests between enterprise locations. Since | |||
these enterprises rely on the networks of the providers, a common test | these enterprises rely on the networks of the providers, a common | |||
methodology (and metrics) would be equally beneficial to both parties. | test methodology (and metrics) would be equally beneficial to both | |||
parties. | ||||
So the intent behind this TCP throughput draft is to define | So the intent behind this TCP throughput draft is to define | |||
a methodology for testing sustained TCP layer performance. In this | a methodology for testing sustained TCP layer performance. In this | |||
document, sustained TCP throughput is that amount of data per unit | document, sustained TCP throughput is that amount of data per unit | |||
time that TCP transports during equilibrium (steady state), i.e. | time that TCP transports during equilibrium (steady state), i.e. | |||
after the initial slow start phase. We refer to this state as TCP | after the initial slow start phase. We refer to this state as TCP | |||
Equilibrium, and that the equalibrium throughput is the maximum | Equilibrium, and that the equilibrium throughput is the maximum | |||
achievable for the TCP connection(s). | achievable for the TCP connection(s). | |||
There are many variables to consider when conducting a TCP throughput | There are many variables to consider when conducting a TCP throughput | |||
test and this methodology focuses on some of the most common | test and this methodology focuses on some of the most common | |||
parameters that should be considered such as: | parameters that should be considered such as: | |||
- 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 Window (Bandwidth Delay Product) | |||
- Single Connection and Multiple Connection testing | - Single Connection and Multiple Connection testing | |||
One other important note, it is highly recommended that traditional | One other important note, it is highly recommended that traditional | |||
Layer 2/3 type tests are conducted to verify the integrity of the | Layer 2/3 type tests are conducted to verify the integrity of the | |||
network before conducting TCP tests. Examples include RFC2544, iperf | network before conducting TCP tests. Examples include RFC 2544 | |||
(UDP mode), or manual packet layer test techniques where packet | [RFC2544], iperf (UDP mode), or manual packet layer test techniques | |||
throughput, loss, and delay measurements are conducted. | where packet throughput, loss, and delay measurements are conducted. | |||
2. Goals of this Methodology | 2. Goals of this Methodology | |||
Before defining the goals of this methodology, it is important to | Before defining the goals of this methodology, it is important to | |||
clearly define the areas that are not intended to be measured or | clearly define the areas that are not intended to be measured or | |||
analyzed by such a methodology. | analyzed by such a methodology. | |||
- The methodology is not intended to predict TCP throughput | - The methodology is not intended to predict TCP throughput | |||
behavior during the transient stages of a TCP connection, such | behavior during the transient stages of a TCP connection, such | |||
as initial slow start. | as initial slow start. | |||
skipping to change at page 4, line 43 | skipping to change at page 4, line 43 | |||
- Provide a practical test approach that specifies the more well | - Provide a practical test approach that specifies the more well | |||
understood (and end-user configurable) TCP parameters such as Window | understood (and end-user configurable) TCP parameters such as Window | |||
size, MSS (Maximum Segment Size), # connections, and how these affect | size, MSS (Maximum Segment Size), # connections, and how these affect | |||
the outcome of TCP performance over a network. | the outcome of TCP performance over a network. | |||
- Provide specific test conditions (link speed, RTT, window size, | - Provide specific test conditions (link speed, RTT, window size, | |||
etc.) and maximum achievable TCP throughput under TCP Equilbrium | etc.) and maximum achievable TCP throughput under TCP Equilbrium | |||
conditions. For guideline purposes, provide examples of these test | conditions. For guideline purposes, provide examples of these test | |||
conditions and the maximum achievable TCP throughput during the | conditions and the maximum achievable TCP throughput during the | |||
equilbrium state. Section 2.1 provides specific details concerning | equilibrium state. Section 2.1 provides specific details concerning | |||
the definition of TCP Equilibrium within the context of this draft. | the definition of TCP Equilibrium within the context of this draft. | |||
- Define two (2) basic metrics that can be used to compare the | - Define two (2) basic metrics that can be used to compare the | |||
performance of TCP connections under various network conditions | performance of TCP connections under various network conditions | |||
- 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 draft provides some | the maximum achievable TCP throughput result, this draft provides | |||
possible areas within the end host or network that should be | some possible areas within the end host or network that should be | |||
considered for investigation (although again, this draft is not | considered for investigation (although again, this draft is not | |||
intended to provide a detailed diagnosis of these issues) | intended to provide a detailed diagnosis of these issues) | |||
2.1 TCP Equilibrium State Throughput | 2.1 TCP Equilibrium State Throughput | |||
TCP connections have three (3) fundamental congestion window phases | TCP connections have three (3) fundamental congestion window phases | |||
as documented in RFC2581. These states are: | as documented in RFC 5681 [RFC5681]. These states are: | |||
- Slow Start, which occurs during the beginning of a TCP transmission | - Slow Start, which occurs during the beginning of a TCP transmission | |||
or after a retransmission time out event | or after a retransmission time out event | |||
- Congestion avoidance, which is the phase during which TCP ramps up | - Congestion avoidance, which is the phase during which TCP ramps up | |||
to establish the maximum attainable throughput on an end-end network | to establish the maximum attainable throughput on an end-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 on | |||
the network path. | the network path. | |||
- Retransmission phase, which include Fast Retransmit (Tahoe) and Fast | - Retransmission phase, which include Fast Retransmit (Tahoe) and | |||
Recovery (Reno and New Reno). When a packet is lost, the Congestion | Fast Recovery (Reno and New Reno). When a packet is lost, the | |||
avoidance phase transitions to a Fast Retransmission or Recovery | Congestion avoidance phase transitions to a Fast Retransmission or | |||
Phase dependent upon the TCP implementation. | Recovery Phase dependent upon the TCP implementation. | |||
The following diagram depicts these states. | The following diagram depicts these states. | |||
| ssthresh | | ssthresh | |||
TCP | | | TCP | | | |||
Through- | | Equilibrium | Through- | | Equilibrium | |||
put | |\ /\/\/\/\/\ Retransmit /\/\ ... | put | |\ /\/\/\/\/\ Retransmit /\/\ ... | |||
| | \ / | Time-out / | | | \ / | Time-out / | |||
| | \ / | _______ _/ | | | \ / | _______ _/ | |||
| Slow _/ |/ | / | Slow _/ | | Slow _/ |/ | / | Slow _/ | |||
| Start _/ Congestion |/ |Start_/ Congestion | | Start _/ Congestion |/ |Start_/ Congestion | |||
| _/ Avoidance Loss | _/ Avoidance | | _/ Avoidance Loss | _/ Avoidance | |||
| _/ Event | _/ | | _/ Event | _/ | |||
| _/ |/ | | _/ |/ | |||
|/___________________________________________________________ | |/__________________________________________________________ | |||
Time | Time | |||
This TCP methodology provides guidelines to measure the equilibrium | This TCP methodology provides guidelines to measure the equilibrium | |||
throughput which refers to the maximum sustained rate obtained by | throughput which refers to the maximum sustained rate obtained by | |||
congestion avoidance before packet loss conditions occur (which would | congestion avoidance before packet loss conditions occur (which would | |||
cause the state change from congestion avoidance to a retransmission | cause the state change from congestion avoidance to a retransmission | |||
phase). All maximum achievable throughputs specified in Section 3 are | phase). All maximum achievable throughputs specified in Section 3 are | |||
with respect to this Equilibrium state. | with respect to this equilibrium state. | |||
2.2 Metrics for TCP Throughput Tests | 2.2 Metrics for TCP Throughput Tests | |||
This draft focuses on a TCP throughtput methodology and also | This draft focuses on a TCP throughput methodology and also | |||
provides two basic metrics to compare results of various throughput | provides two basic metrics to compare results of various throughput | |||
tests. It is recognized that the complexity and unpredictability of | tests. It is recognized that the complexity and unpredictability of | |||
TCP makes it impossible to develop a complete set of metrics that | TCP makes it impossible to develop a complete set of metrics that | |||
account for the myriad of variables (i.e. RTT variation, loss | account for the myriad of variables (i.e. RTT variation, loss | |||
conditions, TCP implementation, etc.). However, these two basic | conditions, TCP implementation, etc.). However, these two basic | |||
metrics faciliate TCP throughput comparisons under varying network | metrics will faciliate TCP throughput comparisons under varying | |||
conditions and between network traffic management techniques. | network conditions and between network traffic management techniques. | |||
The TCP Efficiency metric is the percentage of bytes that were not | The TCP Efficiency metric is the percentage of bytes that were not | |||
retransmitted and is defined as: | retransmitted and is defined as: | |||
Transmitted Bytes - Retransmitted Bytes | Transmitted Bytes - Retransmitted Bytes | |||
--------------------------------------- x 100 | --------------------------------------- x 100 | |||
Transmitted Bytes | Transmitted Bytes | |||
This metric provides a comparative measure between various QoS | This metric provides a comparative measure between various QoS | |||
mechanisms such as traffic management, congestion avoidance, and also | mechanisms such as traffic management, congestion avoidance, and also | |||
various TCP implementations (i.e. Reno, Vegas, etc.). | various TCP implementations (i.e. Reno, Vegas, etc.). | |||
As an example, if 100,000 bytes were sent and 2,000 had to be | As an example, if 100,000 bytes were sent and 2,000 had to be | |||
retransmitted, the TCP Efficiency would be calculated as: | retransmitted, the TCP Efficiency would be calculated as: | |||
100,000 - 2,000 | 100,000 - 2,000 | |||
---------------- x 100 = 98% | ---------------- x 100 = 98% | |||
100,000 | 100,000 | |||
Note that the retranmitted bytes may have occurred more than once, | Note that the retransmitted bytes may have occurred more than once, | |||
and these multiple retransmissions are added to the bytes retransmitted | and these multiple retransmissions are added to the bytes | |||
count. | retransmitted count. | |||
The second metric is the TCP Transfer Time, which is simply the time | The second metric is the TCP Transfer Time, which is simply the time | |||
it takes to transfer a block of data across simultaneous TCP | it takes to transfer a block of data across simultaneous TCP | |||
connections. The concept is useful when benchmarking traffic | connections. The concept is useful when benchmarking traffic | |||
management techniques, where multiple connections are generally | management techniques, where multiple connections are generally | |||
required. | required. | |||
The TCP Transfer time can also be used to provide a normalized ratio of | The TCP Transfer time can also be used to provide a normalized ratio | |||
the actual TCP Transfer Time versus ideal Transfer Time. This ratio | of the actual TCP Transfer Time versus ideal Transfer Time. This | |||
is called the TCP Transfer Index and is defined as: | ratio is called the TCP Transfer Index and is defined as: | |||
Actual TCP Transfer Time | Actual TCP Transfer Time | |||
------------------------- | ------------------------- | |||
Ideal TCP Transfer Time | Ideal TCP Transfer Time | |||
An example would be the bulk transfer of 100 MB upon 5 simultaneous TCP | An example would be the bulk transfer of 100 MB upon 5 simultaneous | |||
connections over a 500 Mbit/s Ethernet service (each connection | TCP connections over a 500 Mbit/s Ethernet service (each connection | |||
uploading 100 MB). Each connection may achieve different throughputs | uploading 100 MB). Each connection may achieve different throughputs | |||
during a test and the overall throughput rate is not always easy to | during a test and the overall throughput rate is not always easy to | |||
determine (especially as the number of connections increases). | determine (especially as the number of connections increases). | |||
The ideal TCP Transfer Time would be ~8 seconds, but in this example, | 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 | 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 | would be 12/8 = 1.5, which indicates that the transfer across all | |||
connections took 1.5 times longer than the ideal. | connections took 1.5 times longer than the ideal. | |||
Note that both the TCP Efficiency and TCP Transfer Time metrics must be | Note that both the TCP Efficiency and TCP Transfer Time metrics must | |||
measured during each throughput test. The correlation of TCP Transfer | be measured during each throughput test. The correlation of TCP | |||
Time with TCP Efficiency can help to diagnose whether the TCP Transfer | Transfer Time with TCP Efficiency can help to diagnose whether the | |||
Time was negatively impacted by retransmissions (poor TCP Efficiency). | TCP Transfer Time was negatively impacted by retransmissions (poor | |||
TCP Efficiency). | ||||
3. TCP Throughput Testing Methodology | 3. TCP Throughput Testing Methodology | |||
As stated in Section 1, it is considered best practice to verify | As stated in Section 1, it is considered best practice to verify | |||
the integrity of the network by conducting Layer2/3 stress tests | the integrity of the network by conducting Layer2/3 stress tests | |||
such as RFC2544 (or other methods of network stress tests). If the | such as RFC2544 (or other methods of network stress tests). If the | |||
network is not performing properly in terms of packet loss, jitter, | network is not performing properly in terms of packet loss, jitter, | |||
etc. then the TCP layer testing will not be meaningful since the | etc. then the TCP layer testing will not be meaningful since the | |||
equalibrium throughput would be very difficult to achieve (in a | equilibrium throughput would be very difficult to achieve (in a | |||
"dysfunctional" network). | "dysfunctional" network). | |||
The following represents the sequential order of steps to conduct the | The following represents the sequential order of steps to conduct the | |||
TCP throughput testing methodology: | TCP throughput 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) should be conducted to verify the minimum network | or PLPMTUD, [RFC4821], should be conducted to verify the maximum | |||
path MTU. Conducting PLPMTUD establishes the upper limit for the MSS | network path MTU. Conducting PLPMTUD establishes the upper limit for | |||
to be used in subsequent steps. | the MSS to be used in subsequent steps. | |||
2. Baseline Round-trip Delay and Bandwidth. These measurements provide | 2. Baseline Round-trip Delay and Bandwidth. These measurements | |||
estimates of the ideal TCP window size, which will be used in | provide estimates of the ideal TCP window size, which will be used in | |||
subsequent test steps. | subsequent test steps. | |||
3. TCP Connection Throughput Tests. With baseline measurements | 3. TCP Connection Throughput Tests. With baseline measurements | |||
of round trip delay and bandwidth, a series of single and multiple TCP | of round trip delay and bandwidth, a series of single and multiple | |||
connection throughput tests can be conducted to baseline the network | TCP connection throughput tests can be conducted to baseline the | |||
performance expectations. | network performance expectations. | |||
4. Traffic Management Tests. Various traffic management and queuing | 4. Traffic Management Tests. Various traffic management and queueing | |||
techniques are tested in this step, using multiple TCP connections. | techniques are tested in this step, using multiple TCP connections. | |||
Multiple connection testing can verify that the network is configured | Multiple connection testing can verify that the network is configured | |||
properly for traffic shaping versus policing, various queuing | properly for traffic shaping versus policing, various queueing | |||
implementations, and RED. | 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 dedicated communications test instrument | |||
and these TCP test hosts be capable of emulating both a client and a | and these TCP test hosts be capable of emulating both a client and a | |||
server. | server. | |||
Whether the TCP test host is a standard computer or dedicated test | Whether the TCP test host is a standard computer or dedicated test | |||
instrument, the following areas should be considered when selecting | instrument, the following areas should be considered when selecting | |||
a test host: | a test host: | |||
- TCP implementation used by the test host OS, i.e. Linux OS kernel | - TCP implementation used by the test host OS, i.e. Linux OS kernel | |||
using TCP Reno, TCP options supported, etc. This will obviously be | using TCP Reno, TCP options supported, etc. This will obviously be | |||
more important when using custom test equipment where the TCP | more important when using custom test equipment where the TCP | |||
implementation may be customized or tuned to run in higher | implementation may be customized or tuned to run in higher | |||
performance hardware | performance hardware | |||
- Most importantly, the TCP test host must be capable of generating | - Most importantly, the TCP test host must be capable of generating | |||
and receiving stateful TCP test traffic at the full link speed of the | and receiving stateful TCP test traffic at the full link speed of the | |||
network under test. As a general rule of thumb, testing TCP throughput | network under test. As a general rule of thumb, testing TCP | |||
at rates greater than 100 Mbit/sec generally requires high | throughput at rates greater than 100 Mbit/sec generally requires high | |||
performance server hardware or dedicated hardware based test tools. | performance server hardware or dedicated hardware based test tools. | |||
- To measure RTT and TCP Efficiency per connection, this will generally | - To measure RTT and TCP Efficiency per connection, this will | |||
require dedicated hardware based test tools. In the absence of | generally require dedicated hardware based test tools. In the absence | |||
dedciated hardware based test tools, these measurements may need to be | of dedicated hardware based test tools, these measurements may need | |||
conducted with packet capture tools (conduct TCP throughput tests and | to be conducted with packet capture tools (conduct TCP throughput | |||
analyze RTT and retransmission results with packet captures). | tests and analyze RTT and retransmission results with packet | |||
captures). | ||||
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 link, the packet is dropped | |||
and the device sends an ICMP 'need to frag' message back to the host | and the device sends an ICMP 'need to frag' message back to the host | |||
that originated the packet. The ICMP 'need to frag' message includes | that originated the packet. The ICMP 'need to frag' message includes | |||
skipping to change at page 10, line 16 | skipping to change at page 10, line 16 | |||
Before stateful TCP testing can begin, it is important to baseline | Before stateful TCP testing can begin, it is important to baseline | |||
the round trip delay and bandwidth of the network to be tested. | the round trip delay and bandwidth of the network to be tested. | |||
These measurements provide estimates of the ideal TCP window size, | These measurements provide estimates of the ideal TCP window size, | |||
which will be used in subsequent test steps. These latency and | which will be used in subsequent test steps. These latency and | |||
bandwidth tests should be run during the time of day for which | bandwidth tests should be run during the time of day for which | |||
the TCP throughput tests will occur. | the TCP throughput tests will occur. | |||
The baseline RTT is used to predict the bandwidth delay product and | The baseline RTT is used to predict the bandwidth delay product and | |||
the TCP Transfer Time for the subsequent throughput tests. Since this | the TCP Transfer Time for the subsequent throughput tests. Since this | |||
methodology requires that RTT be measured during the entire throughput | methodology requires that RTT be measured during the entire | |||
test, the extent by which the RTT varied during the throughput test can | throughput test, the extent by which the RTT varied during the | |||
be quantified. | throughput test can be quantified. | |||
3.2.1 Techniques to Measure Round Trip Time | 3.2.1 Techniques to Measure Round Trip Time | |||
Following the definitions used in the references of the appendix; | Following the definitions used in the references of the appendix; | |||
Round Trip Time (RTT) is the time elapsed between the clocking in of | Round Trip Time (RTT) is the time elapsed between the clocking in of | |||
the first bit of a payload packet to the receipt of the last bit of the | the first bit of a payload packet to the receipt of the last bit of | |||
corresponding acknowledgement. Round Trip Delay (RTD) is used | the corresponding acknowledgement. Round Trip Delay (RTD) is used | |||
synonymously to twice the Link Latency. | synonymously to twice the Link Latency. | |||
In any method used to baseline round trip delay between network | In any method used to baseline round trip delay between network | |||
end-points, it is important to realize that network latency is the | end-points, it is important to realize that network latency is the | |||
sum of inherent network delay and congestion. The RTT should be | sum of inherent network delay and congestion. The RTT should be | |||
baselined during "off-peak" hours to obtain a reliable figure for | baselined during "off-peak" hours to obtain a reliable figure for | |||
network latency (versus additional delay caused by congestion). | network latency (versus additional delay caused by congestion). | |||
During the actual sustained TCP throughput tests, it is critical | During the actual sustained TCP throughput tests, it is critical | |||
to measure RTT along with measured TCP throughput. Congestive | to measure RTT along with measured TCP throughput. Congestive | |||
skipping to change at page 10, line 48 | skipping to change at page 10, line 48 | |||
This is not meant to provide an exhaustive list, but summarizes some | This is not meant to provide an exhaustive list, but summarizes some | |||
of the more common ways to determine round trip time (RTT) through | of the more common ways to determine round trip time (RTT) through | |||
the network. The desired resolution of the measurement (i.e. msec | the network. The desired resolution of the measurement (i.e. msec | |||
versus usec) may dictate whether the RTT measurement can be achieved | versus usec) may dictate whether the RTT measurement can be achieved | |||
with standard tools such as ICMP ping techniques or whether | with standard tools such as ICMP ping techniques or whether | |||
specialized test equipment would be required with high precision | specialized test equipment would be required with high precision | |||
timers. The objective in this section is to list several techniques | 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 end-end. This | |||
test equipment RTT measurement may be compatible with delay | test equipment 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 applications using for example | |||
"iperf" or FTP, etc. By running multiple experiments, the packet | "iperf" or FTP, etc. By running multiple experiments, the packet | |||
captures can be studied to estimate RTT based upon the SYN -> SYN-ACK | captures can be studied to estimate RTT based upon the SYN -> SYN-ACK | |||
handshakes within the TCP connection set-up. | handshakes within the TCP connection set-up. | |||
- 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 are the msec resolution | estimations. Some limitations of ICMP Ping are the msec resolution | |||
and whether the network elements respond to pings (or block them). | and whether the network elements respond to pings (or block them). | |||
3.2.2 Techniques to Measure End-end Bandwidth | 3.2.2 Techniques to Measure End-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. This measurement | |||
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 are inherently asymmetrical. Some of the | access networks which are inherently asymmetrical. Some of the | |||
asymmetric implications to TCP performance are documented in RFC-3449 | asymmetric implications to TCP performance are documented in RFC 3449 | |||
and the results of this work will be further studied to determine | [RFC3449]. | |||
relevance to this draft. | ||||
The bandwidth measurement test must be run with stateless IP streams | The bandwidth measurement test must be run with stateless IP streams | |||
(not stateful TCP) in order to determine the available bandwidth in | (not stateful TCP) in order to determine the available bandwidth in | |||
each direction. And this test should obviously be performed at | each direction. And this test should obviously be performed at | |||
various intervals throughout a business day (or even across a week). | various intervals throughout a business day (or even across a week). | |||
Ideally, the bandwidth test should produce a log output of the | Ideally, the bandwidth test should produce a log output of the | |||
bandwidth achieved across the test interval AND the round trip delay. | bandwidth achieved across the test interval AND the round trip delay. | |||
And during the actual TCP level performance measurements (Sections | And during the actual TCP level performance measurements (Sections | |||
3.3 - 3.5), the test tool must be able to track round trip time | 3.3 - 3.5), the test tool must be able to track round trip time | |||
of the TCP connection(s) during the test. Measuring round trip time | of the TCP connection(s) during the test. Measuring round trip time | |||
variation (aka "jitter") provides insight into effects of congestive | variation (aka "jitter") provides insight into effects of congestive | |||
delay on the sustained throughput achieved for the TCP layer test. | delay on the sustained throughput achieved for the TCP layer test. | |||
3.3. TCP Throughput Tests | 3.3. TCP Throughput Tests | |||
This draft specifically defines TCP throughput techniques to verify | This draft specifically defines TCP throughput techniques to verify | |||
sustained TCP performance in a managed business network. Defined | sustained TCP performance in a managed business network. Defined | |||
in section 2.1, the equalibrium throughput reflects the maximum | in section 2.1, the equilibrium throughput reflects the maximum | |||
rate achieved by a TCP connection within the congestion avoidance | rate achieved by a TCP connection within the congestion avoidance | |||
phase on a end-end network path. This section and others will define | phase on a end-end network path. This section and others will define | |||
the method to conduct these sustained throughput tests and guidelines | the method to conduct these sustained throughput tests and guidelines | |||
of the predicted results. | 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 can be conducted to baseline network performance | |||
against expectations. | against expectations. | |||
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 TCP | first, then run both directions simultaneously. In each case, the | |||
Efficiency and TCP Transfer Time metrics must be measured in each | TCP Efficiency and TCP Transfer Time metrics must be measured in each | |||
direction. | direction. | |||
3.3.1 Calculate Optimum TCP Window Size | 3.3.1 Calculate Optimum TCP Window Size | |||
The optimum TCP window size can be calculated from the bandwidth delay | The optimum TCP window size can be calculated from the bandwidth | |||
product (BDP), which is: | 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. | By dividing the BDP by 8, the "ideal" TCP window size is calculated. | |||
An example would be a T3 link with 25 msec RTT. The BDP would equal | An example would be a T3 link with 25 msec RTT. The BDP would equal | |||
~1,105,000 bits and the ideal TCP window would equal ~138,000 bytes. | ~1,105,000 bits and the ideal TCP window would equal ~138,000 bytes. | |||
The following table provides some representative network link speeds, | The following table provides some representative network link speeds, | |||
latency, BDP, and associated "optimum" TCP window size. Sustained | latency, BDP, and associated "optimum" TCP window size. Sustained | |||
TCP transfers should reach nearly 100% throughput, minus the overhead | TCP transfers should reach nearly 100% throughput, minus the overhead | |||
of Layers 1-3 and the divisor of the MSS into the window. | of Layers 1-3 and the divisor of the MSS into the window. | |||
For this single connection baseline test, the MSS size will effect | For this single connection baseline test, the MSS size will effect | |||
the achieved throughput (especially for smaller TCP window sizes). | the achieved throughput (especially for smaller TCP window sizes). | |||
Table 3.2 provides the achievable, equalibrium TCP throughput (at | Table 3.2 provides the achievable, equilibrium TCP throughput (at | |||
Layer 4) using 1460 byte MSS. Also in this table, the case of 58 byte | Layer 4) using 1460 byte MSS. Also in this table, the 58 byte L1-L4 | |||
L1-L4 overhead including the Ethernet CRC32 is used for simplicity. | overhead including the Ethernet CRC32 is used for simplicity. | |||
Table 3.2: Link Speed, RTT and calculated BDP, TCP Throughput | Table 3.2: Link Speed, RTT and calculated BDP, TCP Throughput | |||
Link Ideal TCP Maximum Achievable | Link Ideal TCP Maximum Achievable | |||
Speed* RTT (ms) BDP (bits) Window (kbytes) TCP Throughput(Mbps) | Speed* RTT (ms) BDP (bits) Window (kbytes) TCP Throughput(Mbps) | |||
---------------------------------------------------------------------- | --------------------------------------------------------------------- | |||
T1 20 30,720 3.84 1.17 | T1 20 30,720 3.84 1.17 | |||
T1 50 76,800 9.60 1.40 | T1 50 76,800 9.60 1.40 | |||
T1 100 153,600 19.20 1.40 | T1 100 153,600 19.20 1.40 | |||
T3 10 442,100 55.26 42.05 | T3 10 442,100 55.26 42.05 | |||
T3 15 663,150 82.89 42.05 | T3 15 663,150 82.89 42.05 | |||
T3 25 1,105,250 138.16 41.52 | T3 25 1,105,250 138.16 41.52 | |||
T3(ATM) 10 407,040 50.88 36.50 | T3(ATM) 10 407,040 50.88 36.50 | |||
T3(ATM) 15 610,560 76.32 36.23 | T3(ATM) 15 610,560 76.32 36.23 | |||
T3(ATM) 25 1,017,600 127.20 36.27 | T3(ATM) 25 1,017,600 127.20 36.27 | |||
100M 1 100,000 12.50 91.98 | 100M 1 100,000 12.50 91.98 | |||
100M 2 200,000 25.00 93.44 | 100M 2 200,000 25.00 93.44 | |||
100M 5 500,000 62.50 93.44 | 100M 5 500,000 62.50 93.44 | |||
1Gig 0.1 100,000 12.50 919.82 | 1Gig 0.1 100,000 12.50 919.82 | |||
1Gig 0.5 500,000 62.50 934.47 | 1Gig 0.5 500,000 62.50 934.47 | |||
1Gig 1 1,000,000 125.00 934.47 | 1Gig 1 1,000,000 125.00 934.47 | |||
10Gig 0.05 500,000 62.50 9,344.67 | 10Gig 0.05 500,000 62.50 9,344.67 | |||
10Gig 0.3 3,000,000 375.00 9,344.67 | 10Gig 0.3 3,000,000 375.00 9,344.67 | |||
* Note that link speed is the minimum link speed throughput a network; | * Note that link speed is the minimum link speed throughput a | |||
i.e. WAN with T1 link, etc. | network; i.e. WAN with T1 link, etc. | |||
Also, the following link speeds (available payload bandwidth) were | Also, the following link speeds (available payload bandwidth) were | |||
used for the WAN entries: | used for the WAN entries: | |||
- T1 = 1.536 Mbits/sec (B8ZS line encoding facility) | - T1 = 1.536 Mbits/sec (B8ZS line encoding facility) | |||
- T3 = 44.21 Mbits/sec (C-Bit Framing) | - T3 = 44.21 Mbits/sec (C-Bit Framing) | |||
- T3(ATM) = 36.86 Mbits/sec (C-Bit Framing & PLCP, 96000 Cells per | - T3(ATM) = 36.86 Mbits/sec (C-Bit Framing & PLCP, 96000 Cells per | |||
second) | second) | |||
The calculation method used in this document is a 3 step process : | The calculation method used in this document is a 3 step process : | |||
1 - We determine what should be the optimal TCP Window size value | 1 - We determine what should be the optimal TCP Window size value | |||
based on the optimal quantity of "in-flight" octets discovered by | based on the optimal quantity of "in-flight" octets discovered by | |||
the BDP calculation. We take into consideration that the TCP | the BDP calculation. We take into consideration that the TCP | |||
Window size has to be an exact multiple value of the MSS. | Window size has to be an exact multiple value of the MSS. | |||
2 - Then we calculate the achievable layer 2 throughput by multiplying | 2 - Then we calculate the achievable layer 2 throughput by | |||
the value determined in step 1 with the MSS & (MSS + L2 + L3 + L4 | multiplying the value determined in step 1 with the | |||
Overheads) divided by the RTT. | MSS & (MSS + L2 + L3 + L4 Overheads) divided by the RTT. | |||
3 - Finally, we multiply the calculated value of step 2 by the MSS | 3 - Finally, we multiply the calculated value of step 2 by the MSS | |||
versus (MSS + L2 + L3 + L4 Overheads) ratio. | versus (MSS + L2 + L3 + L4 Overheads) ratio. | |||
This gives us the achievable TCP Throughput value. Sometimes, the | This gives us the achievable TCP Throughput value. Sometimes, the | |||
maximum achievable throughput is limited by the maximum achievable | maximum achievable throughput is limited by the maximum achievable | |||
quantity of Ethernet Frames per second on the physical media. Then | quantity of Ethernet Frames per second on the physical media. Then | |||
this value is used in step 2 instead of the calculated one. | this value is used in step 2 instead of the calculated one. | |||
The following diagram compares achievable TCP throughputs on a T3 link | The following diagram compares achievable TCP throughputs on a T3 link | |||
with Windows 2000/XP TCP window sizes of 16KB versus 64KB. | with Windows 2000/XP TCP window sizes of 16KB versus 64KB. | |||
skipping to change at page 14, line 5 | skipping to change at page 14, line 5 | |||
| | | | | |64K| | | | | | | |64K| | |||
15| 14.5M____| | | | | | | 15| 14.5M____| | | | | | | |||
| |16K| | | | | | | | |16K| | | | | | | |||
10| | | | 9.6M+---+ | | | | 10| | | | 9.6M+---+ | | | | |||
| | | | |16K| | 5.8M____+ | | | | | | |16K| | 5.8M____+ | | |||
5| | | | | | | |16K| | | 5| | | | | | | |16K| | | |||
|______+___+___+_______+___+___+_______+__ +___+_______ | |______+___+___+_______+___+___+_______+__ +___+_______ | |||
10 15 25 | 10 15 25 | |||
RTT in milliseconds | RTT in milliseconds | |||
The following diagram shows the achievable TCP throughput on a 25ms T3 | The following diagram shows the achievable TCP throughput on a 25ms | |||
when the TCP Window size is increased and with the RFC1323 TCP Window | T3 when the TCP Window size is increased and with the RFC1323 TCP | |||
scaling option. | Window scaling option. | |||
45| | 45| | |||
| +-----+42.47M | | +-----+42.47M | |||
40| | | | 40| | | | |||
TCP | | | | TCP | | | | |||
Throughput 35| | | | Throughput 35| | | | |||
in Mbps | | | | in Mbps | | | | |||
30| | | | 30| | | | |||
| | | | | | | | |||
25| | | | 25| | | | |||
| ______ 21.23M | | | | ______ 21.23M | | | |||
20| | | | | | 20| | | | | | |||
| | | | | | | | | | | | |||
15| | | | | | 15| | | | | | |||
| | | | | | | | | | | | |||
10| +----+10.62M | | | | | 10| +----+10.62M | | | | | |||
| _______5.31M | | | | | | | | _______5.31M | | | | | | | |||
5| | | | | | | | | | 5| | | | | | | | | | |||
|__+_____+______+____+___________+____+________+_____+___ | |__+_____+______+____+__________+____+________+_____+___ | |||
16 32 64 128 | 16 32 64 128 | |||
TCP Window size in KBytes | TCP Window size in KBytes | |||
3.3.2 Conducting the TCP Throughput Tests | 3.3.2 Conducting the TCP Throughput Tests | |||
There are several TCP tools that are commonly used in the network | There are several TCP tools that are commonly used in the network | |||
world and one of the most common is the "iperf" tool. With this tool, | 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 | 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 | and the other as server. The TCP Window size of both the client and | |||
the server can be maunally set and the achieved throughput is measured, | the server can be manually set and the achieved throughput is | |||
either uni-directionally or bi-directionally. For higher BDP | measured, either uni-directionally or bi-directionally. For higher | |||
situations in lossy networks (long fat networks or satellite links, | BDP situations in lossy networks (long fat networks or satellite | |||
etc.), TCP options such as Selective Acknowledgment should be | links, etc.), TCP options such as Selective Acknowledgment should be | |||
considered and also become part of the window size / throughput | considered and also become part of the window size / throughput | |||
characterization. | characterization. | |||
Host hardware performance must be well understood before conducting | Host hardware performance must be well understood before conducting | |||
the TCP throughput tests and other tests in the following sections. | the TCP throughput tests and other tests in the following sections. | |||
Dedicated test equipment will generally be required, especially for | Dedicated test equipment will generally be required, especially for | |||
line rates of GigE and 10 GigE. | line rates of GigE and 10 GigE. | |||
The TCP throughput test should be run over a a long enough duration | The TCP throughput test should be run over a a long enough duration | |||
to properly exercise network buffers and also characterize performance | to properly exercise network buffers and also characterize | |||
during different time periods of the day. The results must be logged | performance during different time periods of the day. The results | |||
at the desired interval and the test must record RTT and TCP | must be logged at the desired interval and the test must record RTT | |||
retransmissions at each interval. | and TCP retransmissions at each interval. | |||
This correlation of retransmissions and RTT over the course of the | This correlation of retransmissions and RTT over the course of the | |||
test will clearly identify which portions of the transfer reached | test will clearly identify which portions of the transfer reached | |||
TCP Equilbrium state and to what effect increased RTT (congestive | TCP Equilbrium state and to what effect increased RTT (congestive | |||
effects) may have been the cause of reduced equilibrium performance. | effects) may have been the cause of reduced equilibrium performance. | |||
Additionally, the TCP Efficiency and TCP Transfer time metrics should | Additionally, the TCP Efficiency and TCP Transfer time metrics should | |||
be logged in order to further characterize the window size tests. | be logged in order to further characterize the window size tests. | |||
3.3.3 Single vs. Multiple TCP Connection Testing | 3.3.3 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 sizes | tests depends upon the size of the BDP in relation to the window | |||
configured in the end-user environment. For example, if the BDP for a | sizes configured in the end-user environment. For example, if the | |||
long-fat pipe turns out to be 2MB, then it is probably more realistic | BDP for a long-fat pipe turns out to be 2MB, then it is probably more | |||
to test this pipe with multiple connections. Assuming typical host | realistic to test this pipe with multiple connections. Assuming | |||
computer window settings of 64 KB, using 32 connections would | typical host computer window settings of 64 KB, using 32 connections | |||
realistically test this pipe. | would realistically test this pipe. | |||
The following table is provided to illustrate the relationship of the | The following table is provided to illustrate the relationship of the | |||
BDP, window size, and the number of connections required to utilize the | BDP, window size, and the number of connections required to utilize | |||
the available capacity. For this example, the network bandwidth is | the available capacity. For this example, the network bandwidth is | |||
500 Mbps, RTT is equal to 5 ms, and the BDP equates to 312 KBytes. | 500 Mbps, RTT is equal to 5 ms, and the BDP equates to 312 KBytes. | |||
#Connections | #Connections | |||
Window to Fill Link | Window to Fill Link | |||
------------------------ | ------------------------ | |||
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 | |||
a certain payload (i.e. 100 MB), and the TCP Transfer time provides | a certain payload (i.e. 100 MB), and the TCP Transfer time provides | |||
a simple metric to verify the actual versus expected results. | a simple metric to verify the actual versus expected 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 | example table listed above, the 64KB window is considered. Each of | |||
the 5 connections would be configured to transfer 100MB, and each | the 5 connections would be configured to transfer 100MB, and each | |||
TCP should obtain a maximum of 100 Mb/sec per connection. So for this | TCP should obtain a maximum of 100 Mb/sec per connection. So for | |||
example, the 100MB payload should be transferred across the connections | this example, the 100MB payload should be transferred across the | |||
in approximately 8 seconds (which would be the ideal TCP transfer time | connections in approximately 8 seconds (which would be the ideal TCP | |||
for these conditions). | transfer time for these conditions). | |||
Additionally, the TCP Efficiency metric should be computed for each | Additionally, the TCP Efficiency metric should be computed for each | |||
connection tested (defined in section 2.2). | connection tested (defined in section 2.2). | |||
3.3.4 Interpretation of the TCP Throughput Results | 3.3.4 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 setting. For cases where the sustained TCP | |||
throughput does not equal the predicted value, some possible causes | throughput does not equal the predicted value, some possible causes | |||
are listed: | are listed: | |||
- Network congestion causing packet loss; the TCP Efficiency metric | - Network congestion causing packet loss; the TCP Efficiency metric | |||
is a useful gauge to compare network performance | is a useful gauge to compare network performance | |||
- Network congestion not causing packet loss but increasing RTT | - Network congestion not causing packet loss but increasing RTT | |||
- 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 window size, MSS, etc. | |||
- Over utilization of available link or rate limiting (policing). More | - Over utilization of available link or rate limiting (policing). | |||
discussion of traffic management tests follows in section 3.4 | More discussion of traffic management 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 locations | In most cases, the network connection between two geographic | |||
(branch offices, etc.) is lower than the network connection of the | locations (branch offices, etc.) is lower than the network connection | |||
host computers. An example would be LAN connectivity of GigE and | of the host computers. An example would be LAN connectivity of GigE | |||
WAN connectivity of 100 Mbps. The WAN connectivity may be physically | and WAN connectivity of 100 Mbps. The WAN connectivity may be | |||
100 Mbps or logically 100 Mbps (over a GigE WAN connection). In the | physically 100 Mbps or logically 100 Mbps (over a GigE WAN | |||
later case, rate limiting is used to provide the WAN bandwidth per the | connection). In the later case, rate limiting is used to provide the | |||
SLA. | WAN bandwidth per the SLA. | |||
Traffic management techniques are employed to provide various forms of | Traffic management techniques are employed to provide various forms | |||
QoS, the more common include: | of QoS, the more common include: | |||
- Traffic Shaping | - Traffic Shaping | |||
- Priority Queuing | - Priority Queueing | |||
- Random Early Discard (RED, etc.) | - Random Early Discard (RED, etc.) | |||
Configuring the end-end network with these various traffic management | Configuring the end-end network with these various traffic management | |||
mechanisms is a complex under-taking. For traffic shaping and RED | mechanisms is a complex under-taking. For traffic shaping and RED | |||
techniques, the end goal is to provide better performance for bursty | techniques, the end goal is to provide better performance for bursty | |||
traffic such as TCP (RED is specifically intended for TCP). | 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 | |||
skipping to change at page 17, line 14 | skipping to change at page 17, line 14 | |||
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 exceeded). | |||
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 given | |||
available bandwidth. Through this section, the available rate-limited | available bandwidth. Through this section, the available | |||
bandwidth shall be referred to as the "bottleneck bandwidth". | rate-limited bandwidth shall be referred to as the | |||
"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 connection 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 build upon the concepts of multiple | The traffic shaping tests build upon the concepts of multiple | |||
connection testing as defined in section 3.3.3. Calculating the BDP | connection testing as defined in section 3.3.3. Calculating the BDP | |||
for the bottleneck bandwidth is first required and then selecting | for the bottleneck bandwidth is first required and then selecting | |||
the number of connections / window size per connection. | the number of connections / window size 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 logical | be: GigE LAN with a 100Mbps bottleneck bandwidth (rate limited | |||
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 window size evenly fill the bottleneck bandwidth | |||
(about 100 Mbps per connection). | (about 100 Mbps per connection). | |||
The traffic shaping should be run over a long enough duration to | The traffic shaping should be run over a long enough duration to | |||
properly exercise network buffers and also characterize performance | properly exercise network buffers and also characterize performance | |||
during different time periods of the day. The throughput of each | during different time periods of the day. The throughput of each | |||
connection must be logged during the entire test, along with the TCP | connection must be logged during the entire test, along with the TCP | |||
Efficiency and TCP Transfer time metric. Additionally, it is | Efficiency and TCP Transfer time metric. Additionally, it is | |||
recommended to log RTT and retransmissions per connection over the test | recommended to log RTT and retransmissions per connection over the | |||
interval. | test interval. | |||
3.4.1.1 Interpretation of Traffic Shaping Test Restults | 3.4.1.1 Interpretation of Traffic Shaping Test Restults | |||
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 shaping | sharing of the bandwidth is generally very obvious when traffic | |||
is properly configured for the bottleneck interface. For the previous | shaping is properly configured for the bottleneck interface. For the | |||
example of 5 connections sharing 500 Mbps, each connection would | previous example of 5 connections sharing 500 Mbps, each connection | |||
consume ~100 Mbps with a smooth variation. If traffic policing was | would consume ~100 Mbps with a smooth variation. If traffic policing | |||
present on the bottleneck interface, the bandwidth sharing would not | was present on the bottleneck interface, the bandwidth sharing would | |||
be fair and the resulting throughput plot would reveal "spikey" | not be fair and the resulting throughput plot would reveal "spikey" | |||
connection throughput consumption of the competing TCP connections | throughput consumption of the competing TCP connections (due to the | |||
(due to the retransmissions). | 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 queue | congestion avoidance for TCP traffic. Before the network element | |||
"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 can benefit greatly from RED based | |||
techniques. Without RED, TCP is generally not able to achieve the full | techniques. Without RED, TCP is generally not able to achieve the | |||
bandwidth of the bottleneck interface. With RED enabled, TCP | full bandwidth of the bottleneck interface. With RED enabled, TCP | |||
congestion avoidance throttles the connections on the higher speed | congestion avoidance throttles the connections on the higher speed | |||
interface (i.e. LAN) and can reach equalibrium with the bottleneck | interface (i.e. LAN) and can reach equalibrium with the bottleneck | |||
bandwidth (achieving closer to full throughput). | bandwidth (achieving closer to full throughput). | |||
The ability to detect proper RED configuration is more easily diagnosed | The ability to detect proper RED configuration is more easily | |||
when conducting a multiple TCP connection test. Multiple TCP | diagnosed when conducting a multiple TCP connection test. Multiple | |||
connections provide the multiple bursty sources that emulate the | TCP connections provide the multiple 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 build upon the concepts of multiple connection | |||
testing as defined in secion 3.3.3. Calculating the BDP for the | testing as defined in secion 3.3.3. Calculating the BDP for the | |||
bottleneck bandwidth is first required and then selecting the number of | bottleneck bandwidth is first required and then selecting the number | |||
connections / window size per connection. | of connections / window size per connection. | |||
For RED testing, the desired effect is to cause the TCP connections to | For RED testing, the desired effect is to cause the TCP connections | |||
burst beyond the bottleneck bandwidth so that queue drops will occur. | to burst beyond the bottleneck bandwidth so that queue drops will | |||
Using the same example from section 3.4.1 (traffic shaping), the | occur. Using the same example from section 3.4.1 (traffic shaping), | |||
500 Mbps bottleneck bandwidth requires 5 TCP connections (with window | the 500 Mbps bottleneck bandwidth requires 5 TCP connections (with | |||
size of 64Kb) to fill the capacity. Some experimentation is required, | window size of 64Kb) to fill the capacity. Some experimentation is | |||
but it is recommended to start with double the number of connections | required,but it is recommended to start with double the number of | |||
to stress the network element buffers / queues. In this example, 10 | connections to stress the network element buffers / queues. In this | |||
connections would produce TCP bursts of 64KB for each connection. | example, 10 connections would produce TCP bursts of 64KB for each | |||
If the timing of the TCP tester permits, these TCP bursts could stress | connection. If the timing of the TCP tester permits, these TCP | |||
queue sizes in the 512KB range. Again experimentation will be required | bursts could stress queue sizes in the 512KB range. Again | |||
and the proper number of TCP connections / window size will be dictated | experimentation will be required and the proper number of TCP | |||
by the size the network element queue. | connections / window size will be dictated by the size 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 will 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 can be determined if the bottleneck | interface, proper RED operation can 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 net | then the TCP connections will retransmit at a higher rate and the net | |||
effect is that the bottleneck bandwidth is not fully utilized. | 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 would be greatly reduced | the throughput across the bottleneck bandwidth would be greatly | |||
(generally 20-40%) and the TCP Transfer time would be proportionally | reduced (generally 20-40%) and the TCP Transfer time would be | |||
longer then the ideal transfer time. | proportionally longer then the ideal transfer time. | |||
Additionally, the TCP Transfer Efficiency metric is useful, since | Additionally, the TCP Transfer Efficiency metric is useful, since | |||
non-RED implementations will exhibit a lower TCP Tranfer Efficiency | non-RED implementations will exhibit a lower TCP Tranfer Efficiency | |||
than RED implementations. | than RED implementations. | |||
4. Acknowledgements | 4. Security Considerations | |||
The security considerations that apply to any active measurement of | ||||
live networks are relevant here as well. See [RFC4656] and | ||||
[RFC5357]. | ||||
5. IANA Considerations | ||||
This memo does not require and IANA registration for ports dedicated | ||||
to the TCP testing described in this memo. | ||||
6. Acknowledgements | ||||
The author would like to thank Gilles Forget, Loki Jorgenson, | The author would like to thank Gilles Forget, Loki Jorgenson, | |||
and Reinhard Schrage for technical review and original contributions | and Reinhard Schrage for technical review and original contributions | |||
to this draft-03. | to this draft-06. | |||
Also thanks to Matt Mathis and Matt Zekauskas for many good comments | Also thanks to Matt Mathis, Matt Zekauskas, Al Morton, and Yaakov | |||
through email exchange and for pointing us to great sources of | Stein for many good comments and for pointing us to great sources of | |||
information pertaining to past works in the TCP capacity area. | information pertaining to past works in the TCP capacity area. | |||
5. References | 7. References | |||
[RFC2581] Allman, M., Paxson, V., Stevens W., "TCP Congestion | 7.1 Normative References | |||
Control", RFC 2581, June 1999. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
Requirement Levels", BCP 14, RFC 2119, March 1997. | ||||
[RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. | ||||
Zekauskas, "A One-way Active Measurement Protocol | ||||
(OWAMP)", RFC 4656, September 2006. | ||||
[RFC5681] Allman, M., Paxson, V., Stevens W., "TCP Congestion | ||||
Control", RFC 5681, September 2009. | ||||
[RFC3148] Mathis M., Allman, M., "A Framework for Defining | ||||
Empirical Bulk Transfer Capacity Metrics", RFC 3148, July | ||||
2001. | ||||
[RFC2544] Bradner, S., McQuaid, J., "Benchmarking Methodology for | [RFC2544] Bradner, S., McQuaid, J., "Benchmarking Methodology for | |||
Network Interconnect Devices", RFC 2544, June 1999 | Network Interconnect Devices", RFC 2544, June 1999 | |||
[RFC3449] Balakrishnan, H., Padmanabhan, V. N., Fairhurst, G., | [RFC3449] Balakrishnan, H., Padmanabhan, V. N., Fairhurst, G., | |||
Sooriyabandara, M., "TCP Performance Implications of | Sooriyabandara, M., "TCP Performance Implications of | |||
Network Path Asymmetry", RFC 3449, December 2002 | Network Path Asymmetry", RFC 3449, December 2002 | |||
[RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., Babiarz, | [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., Babiarz, | |||
J., "A Two-Way Active Measurement Protocol (TWAMP)", | J., "A Two-Way Active Measurement Protocol (TWAMP)", | |||
RFC 5357, October 2008 | RFC 5357, October 2008 | |||
skipping to change at page 20, line 4 | skipping to change at page 20, line 21 | |||
[RFC3449] Balakrishnan, H., Padmanabhan, V. N., Fairhurst, G., | [RFC3449] Balakrishnan, H., Padmanabhan, V. N., Fairhurst, G., | |||
Sooriyabandara, M., "TCP Performance Implications of | Sooriyabandara, M., "TCP Performance Implications of | |||
Network Path Asymmetry", RFC 3449, December 2002 | Network Path Asymmetry", RFC 3449, December 2002 | |||
[RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., Babiarz, | [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., Babiarz, | |||
J., "A Two-Way Active Measurement Protocol (TWAMP)", | J., "A Two-Way Active Measurement Protocol (TWAMP)", | |||
RFC 5357, October 2008 | RFC 5357, October 2008 | |||
[RFC4821] Mathis, M., Heffner, J., "Packetization Layer Path MTU | [RFC4821] Mathis, M., Heffner, J., "Packetization Layer Path MTU | |||
Discovery", RFC 4821, June 2007 | Discovery", RFC 4821, June 2007 | |||
draft-ietf-ippm-btc-cap-00.txt Allman, M., "A Bulk | draft-ietf-ippm-btc-cap-00.txt Allman, M., "A Bulk | |||
Transfer Capacity Methodology for Cooperating Hosts", | Transfer Capacity Methodology for Cooperating Hosts", | |||
August 2001 | August 2001 | |||
[MSMO] The Macroscopic Behavior of the TCP Congestion Avoidance | 7.2. Informative References | |||
Algorithm Mathis, M.,Semke, J, Mahdavi, J, Ott, T | ||||
July 1997 SIGCOMM Computer Communication Review, | ||||
Volume 27 Issue 3 | ||||
[Stevens Vol1] TCP/IP Illustrated, Vol1, The Protocols | ||||
Addison-Wesley | ||||
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 | |||
End of changes. 75 change blocks. | ||||
214 lines changed or deleted | 238 lines changed or added | |||
This html diff was produced by rfcdiff 1.38. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |