One document matched: draft-karagiannis-conex-congestion-calculation-00.txt
ConEx G. Karagiannis
Internet-Draft University of Twente
Intended status: Informational April 5, 2011
Expires: October 5, 2011
Calculating Exposed Congestion by using TCP Throughput
Changes
draft-karagiannis-conex-congestion-calculation-00
Abstract
This document describes a possible implementation complexity problem
associated with the current Conex concept defined by the ConEx WG
and it proposes a solution to this. This problem occurs due
to the fact that it is complex to measure the congestion rate
at the sender side.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 29, 2011.
Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Karagiannis, Expires October 04, 2011 [Page 1]
Internet-Draft Calculating Exposed Congestion April 2011
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Implementation Complexity Problem on Congestion Rate Calculation
at the Sender . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Solution on Calculating Congestion Rate by using
Throughput Changes Calculated at the Sender . . . . . . . . . . 6
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
5. Security Considerations . . . . . . . . . . . . . . . . . . . 7
6. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 7
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8
8. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 8
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
9.1. Normative References . . . . . . . . . . . . . . . . . . . . 8
9.2. Informative References . . . . . . . . . . . . . . . . . . . 8
Karagiannis, Expires October 04, 2011 [Page 2]
Internet-Draft Calculating Exposed Congestion April 2011
1. Introduction
This document describes a possible implementation complexity problem
associated with the current Conex concept defined by the ConEx WG
and it proposes a solution to this. This problem occurs due to the
fact that it is complex to measure the congestion rate, at the sender
side. Moreover, this document provides a solution to this problem, by
calculating the congestion rate at the sender side by using the TCP
throughput changes calculated at the sender side.
1.1 Terminology
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].
In addition to the terminology specified in [draft-ietf-conex-
abstract-mech-01] and [draft-ietf-conex-concepts-uses-01] the
following terms are used and defined in this document.
O transport path throughput calculated at the sender: The per flow
transport sending rate as a function of the congestion rate, round-
trip time, and segment size. The transport path throughput
calculated at the sender using the TCP throughput equation
specified in [RFC5348]. Note that in [RFC5348] the term congestion
rate is denoted as loss event rate. According to [RFC5348] a loss
event is defined as one or more lost or marked packets from a
window of data, where a marked packet refers to a congestion
indication (CE) from Explicit Congestion Notification (ECN)
[RFC3168];
2. Implementation Complexity Problem on Congestion Rate Calculation at
the Sender
The mentioned problem is related to the fact that in the context of
Conex it is complex to measure the congestion rate, at the sender
side, see Figure 1. A possible solution is given in [draft-briscoe-
tsvwg-re-ecn-tcp-09]:
"6.1.1. RECN mode: Full Re-ECN capable transport
In full RECN mode, for each half connection, both the sender and the
receiver each maintain an unsigned integer counter we will call ECC
(echo congestion counter). The receiver maintains a count of how
many times a CE marked packet has arrived during the half-connection.
Once a RECN connection is established, the three TCP option flags
(ECE, CWR & NS) used for ECN-related functions in other versions of
ECN are used as a 3-bit field for the receiver to repeatedly tell the
sender the current value of ECC, modulo 8, whenever it sends a TCP
ACK. We will call this the echo congestion increment (ECI) field.
Karagiannis, Expires October 04, 2011 [Page 3]
Internet-Draft Calculating Exposed Congestion April 2011
This overloaded use of these 3 option flags as one 3-bit ECI field is
shown in Figure 7. The actual definition of the TCP header,
including the addition of support for the ECN nonce, is shown for
comparison in Figure 6. This specification does not redefine the
names of these three TCP option flags, it merely overloads them with
another definition once a flow is established.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| | | N | C | E | U | A | P | R | S | F |
| Header Length | Reserved | S | W | C | R | C | S | S | Y | I |
| | | | R | E | G | K | H | T | N | N |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
Figure 6: The (post-ECN Nonce) definition of bytes 13 and 14 of the
TCP Header
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| | | | U | A | P | R | S | F |
| Header Length | Reserved | ECI | R | C | S | S | Y | I |
| | | | G | K | H | T | N | N |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
Figure 7: Definition of the ECI field within bytes 13 and 14 of the
TCP Header, overloading the current definitions above for established
RECN flows.
Receiver Action in RECN Mode
Every time a CE marked packet arrives at a receiver in RECN mode,
the receiver transport increments its local value of ECC and MUST
echo its value, modulo 8, to the sender in the ECI field of the
next ACK. It MUST repeat the same value of ECI in every
subsequent ACK until the next CE event, when it increments ECI
again.
The increment of the local ECC values is modulo 8 so the field
value simply wraps round back to zero when it overflows. The
least significant bit is to the right (labelled bit 9).
A receiver in RECN mode MAY delay the echo of a CE to the next
delayed-ACK, which would be necessary if ACK-withholding were
implemented.
Karagiannis, Expires October 04, 2011 [Page 4]
Internet-Draft Calculating Exposed Congestion April 2011
Sender Action in RECN Mode
On the arrival of every ACK, the sender compares the ECI field
with its own ECC value, then replaces its local value with that
from the ACK. The difference D (D = (ECI + 8 - ECC mod 8) mod 8)
is assumed to be the number of CE marked packets that arrived at
the receiver since it sent the previously received ACK (but see
below for the sender's safety strategy). Whenever the ECI field
increments by D (and/or d drops are detected), the sender MUST
clear the RE flag to "0" in the IP header of the next D' data
packets it sends (where D' = D + d), effectively re-echoing each
single increment of ECI. Otherwise the data sender MUST send all
data packets with RE set to "1".
As a general rule, once a flow is established, as well as setting
or clearing the RE flag as above, a data sender in RECN mode MUST
always set the ECN field to ECT(1). However, the settings of the
extended ECN field during flow start are defined in Section 6.1.4.
As we have already emphasised, the re-ECN protocol makes no
changes and has no effect on the TCP congestion control algorithm.
So, the first increment of ECI (or detection of a drop) in a RTT
triggers the standard TCP congestion response, no more than one
congestion response per round trip, as usual. However, the sender
re-echoes every increment of ECI irrespective of RTTs.
A TCP sender also acts as the receiver for the other half-
connection. The host will maintain two ECC values S.ECC and R.ECC
as sender and receiver respectively. Every TCP header sent by a
host in RECN mode will also repeat the prevailing value of R.ECC
in its ECI field. If a sender in RECN mode has to retransmit a
packet due to a suspected loss, the re-transmitted packet MUST
carry the latest prevailing value of R.ECC when it is re-
transmitted, which will not necessarily be the one it carried
originally.", copied from [draft-briscoe-tsvwg-re-ecn-tcp-09].
This solution seems to be quite complex to be implemented, since
protocol changes need to be accomplished in order to modify the
semantics of the TCP header, i.e., the semantics of the flags:
NS, CWR and ECE.
Karagiannis, Expires October 04, 2011 [Page 5]
Internet-Draft Calculating Exposed Congestion April 2011
+---------+ +---------+
|Transport| +-----------+ |Transport|
| Sender |>=Data=Path=>|(Congested)|>=====Data=Path=====>| Receiver|
| | | Network |>-Congestion-Signal->|---. |
| | | Device | | | |
| | +-----------+ | | |
| | | | |
| |<==Feedback=Path==============================<| | |
| ,---|<--Transport Layer returned Congestion Signal-<|<--' |
| V | | |
||-------|| | |
||Congest|| | |
||rate || +-----------+ |Transport|
||calcul.||>=Data=Path=>|(Congested)|>=====Data=Path=====>| Receiver|
|| |->(new)Conex->| Network |-(new)Conex signal)->| |
|+-------+| | Device | (carried in data | |
| | +-----------+ packet headers) | |
+---------+ +---------+
Figure 1: Overview ConEx architecture, based on
[draft-ietf-conex-abstract-mech-01]
3. Solution on Calculating Congestion Rate by using
Throughput Changes Calculated at the Sender
This document provides a solution to this problem as follows, see
Figure 2.
+---------+ +---------+
|Transport| +-----------+ |Transport|
| Sender |>=Data=Path=>|(Congested)|>=====Data=Path=====>| Receiver|
| | | Network |>-Congestion-Signal->|---. |
| | | Device | | | |
| | +-----------+ | | |
| | | | |
| |<==Feedback=Path==============================<| | |
| ---- <--Transport Layer returned Congestion Signal- <|<--' |
| | | | |
||-------|| | |
||Throug.|| | |
||calc. || | |
||-------|| | |
| | | | |
| V | | |
||-------|| | |
||Conges.|| | |
|| rate || +-----------+ |Transport|
||calcul.||>=Data=Path=>|(Congested)|>=====Data=Path=====>| Receiver|
|| |->(new)Conex->| Network |-(new(Conex) signal->| |
|+-------+| | Device | carried in data | |
| | +-----------+ packet headers) | |
+---------+ +---------+
Figure 2: Overview ConEx architecture, when calculating exposed
congestion rate by using TCP throughput changes
Karagiannis, Expires October 04, 2011 [Page 6]
Internet-Draft Calculating Exposed Congestion April 2011
When the sender needs to reduce its sending rate, then the sender can
calculate the exposed congestion rate by subtracting the TCP
throughput calculated during a a Round Trip Time (RTT), i.e., (RTTi)
from the TCP throughput calculated at the same sender side during the
previous RTT, i.e., (RTTi-1), where i is an integer equal or higher
than 1.
The TCP throughput at the sender side can be calculated using, e.g.,
the following equation specified in [RFC5348]:
"The throughput equation for X_Bps, TCP's average sending rate in
bytes per second, is:
s
X_Bps = ----------------------------------------------------------
R*sqrt(2*b*p/3) + (t_RTO * (3*sqrt(3*b*p/8)*p*(1+32*p^2)))
Where:
X_Bps is TCP's average transmit rate in bytes per second. (X_Bps
is the same as X_calc in RFC 3448.)
s is the segment size in bytes (excluding IP and transport
protocol headers).
R is the round-trip time in seconds.
p is the loss event rate, between 0 and 1.0, of the number of loss
events as a fraction of the number of packets transmitted.
t_RTO is the TCP retransmission timeout value in seconds.
b is the maximum number of packets acknowledged by a single TCP
acknowledgement.", copied from [RFC5368].
{More details will be included in a next version of this draft.}
4. IANA Considerations
This memo includes no request to IANA.
5. Security Considerations
The security considerations described in
[draft-ietf-conex-abstract-mech-01] apply also for this document.
6. Conclusions
{to be done}
Karagiannis, Expires October 04, 2011 [Page 7]
Internet-Draft Calculating Exposed Congestion April 2011
7. Acknowledgements
{to be done}
8. Comments Solicited
Comments and questions are encouraged and very welcome. They can be
addressed to the IETF Congestion Exposure (ConEx) working group
mailing list <conex@ietf.org>, and/or to the authors.
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in
RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119,
March 1997.
[draft-ietf-conex-abstract-mech-01] Mathis. M., Briscoe, B.,
"Congestion Exposure (ConEx)
Concepts and Abstract Mechanism",
draft-ietf-conex-abstract-mech-01
(work in progress), March 2011.
9.2. Informative References
[draft-briscoe-tsvwg-re-ecn-tcp-09] Briscoe, B., Jacquet, A.,
Moncaster, T., and A. Smith, "Re-
ECN: Adding Accountability for
Causing Congestion to TCP/IP",
draft-briscoe-tsvwg-re-ecn-tcp-09
(work in progress), October 2010.
[RFC5348] S. Floyd, M. Handley, J. Padhye,
J. Widmer, "TCP Friendly Rate
Control (TFRC): Protocol
Specification", RFC 5348, September
2008.
Authors' Addresses
Georgios Karagiannis
University of Twente
P.O. Box 217
7500 AE Enschede,
The Netherlands
EMail: g.karagiannis@ewi.utwente.nl
Karagiannis, Expires October 04, 2011 [Page 8]
| PAFTECH AB 2003-2026 | 2026-04-24 05:54:00 |