Internet DRAFT - draft-wagner-conex-credit
draft-wagner-conex-credit
ConEx Working Group D. Wagner
Internet-Draft M. Kuehlewind
Intended status: Informational University of Stuttgart
Expires: January 13, 2014 July 12, 2013
ConEx Crediting and Auditing
draft-wagner-conex-credit-00
Abstract
Congestion Exposure (ConEx) is a mechanism by which senders inform
the network about the congestion encountered by previous packets on
the same flow. In order to make ConEx information useful, reliable
auditing is necessary to provide a strong incentive to declare ConEx
information honestly. However, there is always a delay between
congestion events and the respective ConEx signal at the audit. To
avoid state and complex Round-Trip Time estimations at the audit, in
[draft-ietf-conex-abstract-mech] it is proposed to use credit signals
sent in advance to cover potential congestion in the next feedback
delay duration. Unfortunately, introducing credit does not provide
incentives to honestly report congestion. This document lists
potential issues regarding the proposed crediting and discusses
potential solutions approaches to interpret and handle credits at the
audit.
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 January 13, 2014.
Wagner & Kuehlewind Expires January 13, 2014 [Page 1]
Internet-Draft ConEx Credits July 2013
Copyright Notice
Copyright (c) 2013 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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 3
2. Open issues . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. No incentives to conceal congestion by sending credits . 3
2.2. Handling Loss of ConEx-marked Packets . . . . . . . . . . 4
2.3. Independence from Audit State . . . . . . . . . . . . . . 4
2.4. Assumption on Distance between Congestion Events . . . . 4
3. Potential Credit Definition and Auditing Approaches . . . . . 4
3.1. Basic Audit Reference Implementation . . . . . . . . . . 5
3.2. Credit As Congestion Substitute . . . . . . . . . . . . . 6
3.3. Credit As Congestion Surcharge . . . . . . . . . . . . . 6
3.3.1. BDP-Scaled Surcharge . . . . . . . . . . . . . . . . 7
3.4. Credit As Short-Lived Congestion Risk Compensation . . . 8
4. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 8
5. Security Considerations . . . . . . . . . . . . . . . . . . . 10
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.1. Normative References . . . . . . . . . . . . . . . . . . 10
7.2. Informative References . . . . . . . . . . . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10
1. Introduction
In order to make ConEx information useful, reliable auditing is
necessary to provide a strong incentive to declare ConEx information
honestly. However, there is always a delay between congestion events
and the respective ConEx signal at the audit. To avoid state and
complex Round-Trip Time (RTT) estimations at the audit, in
[draft-ietf-conex-abstract-mech] it is proposed to use credit signals
sent in advance to cover potential congestion in the next feedback
delay duration.
Wagner & Kuehlewind Expires January 13, 2014 [Page 2]
Internet-Draft ConEx Credits July 2013
The ConEx signal is based on loss or Explicit Congestion Notification
(ECN) marks [RFC3168] as a congestion indication. Following
[draft-ietf-conex-abstract-mech] (Section 4.4), ConEx signaling has
to encode ConEx capability, Re-Echo-Loss (L), Re-Echo-ECN (E) and
credit (C). The C (credit) signal is used to build up credits at the
audit in advance of congestion.
[draft-ietf-conex-abstract-mech] (currently) only states that the
"transport signals sufficient credit in advance to cover congestion
expected during its feedback delay". Unfortunately, introducing
crediting can also provide incentives to not report congestion but
send credits instead. While ConEx feedback should be provided timely
and reflect the actual congestion on a path, credits should be send
at any time before the congestion event and need to cover at least
the congestion 'costs'. Thus crediting might motivate to send
credits instead of ConEx congestion marks (L or E). Besides this
central issue, the exact meaning of these credits and their handling
at the audit and therefore their usage at the sender is also left
open up to now. This documents presents and discusses potential
concepts for crediting and auditing.
1.1. Definitions
Congestion occurrence
The occurrence of a signal congestion signal, which today corresponds
to a packet loss or ECN-CE mark.
Congestion event
One or more congestion occurrences that happen within one RTT and
therefore are perceived as one congestion event by today's congestion
control algorithms.
2. Open issues
A solid concept how to interpret and handle credit needs to address
the issues listed in the following.
2.1. No incentives to conceal congestion by sending credits
The goal of ConEx is to reveal path congestion honestly by sending
the right amount of L or E marks timely after an congestion
occurrence. The use of credit marks should not motivate to endanger
this goal. If credits are treated equally by an audit device, there
is no incentive to send additional ConEx (L or E) marks if already a
sufficient large number of credits have been sent in advance of the
congestion event. This is a major and fundamental issue of the
credit concept in general.
Wagner & Kuehlewind Expires January 13, 2014 [Page 3]
Internet-Draft ConEx Credits July 2013
2.2. Handling Loss of ConEx-marked Packets
Due to the complexity of detecting loss of ConEx information and the
time dependency of this information, ConEx marks should not be
retransmitted. Thus ConEx marks of lost packets will never be seen
at an audit. Generally, two entities could be responsible to care
for this issue: the sender or the audit. To keep the audit simple,
it would be preferable having this task performed by the ConEx
sender. As retransmitting is not an option, the sender can only send
credits as a substitute instead. It is not clear if false positives
by the audit due to lost markings can be avoided by this. As,
without any knowledge about lost markings and depending on the
definition of credits, it is hard for the sender to determine the
current number of valid credits perceived by the audit. The other
option is having the audit estimating loss of ConEx marks without
requiring the sender to replace them by credit.
2.3. Independence from Audit State
An audit may be started with zero state information on existing
flows. As credits will have been sent in advance of congestion
events, it is possible that no valid credit state is available at the
audit when a congestion event occurs. The credit definition and the
respective implications for the audit should also consider handling
this situation.
The concept of crediting should consider that existing flows may be
rerouted, so that a flow may pass through different audits over time.
If rerouting and thus a change of the audit happens, it is not
required to have no impact at all, but starvation and finally
shutting down of the connection should be avoided.
2.4. Assumption on Distance between Congestion Events
Today's congestion control algorithms are designed for loss-based
congestion feedback and therefore aim to get congestion feedback
rather rarely, i.e. for typical BDPs there are losses only every some
RTTs. Thus it could be assumed that ConEx marks will be received at
the audit before the next congestion event occurs.
Nevertheless, if the congestion feedback is not based on loss, but
e.g. on ECN, a more frequent signal could provide more precise
information on the current congestion level and therefore allow a
finer reaction of the congestion control. Since this would be a
desirable situation, we should not base the definition of ConEx
credit on assumptions about the distance between congestion events.
3. Potential Credit Definition and Auditing Approaches
Wagner & Kuehlewind Expires January 13, 2014 [Page 4]
Internet-Draft ConEx Credits July 2013
3.1. Basic Audit Reference Implementation
The objective of an audit is to verify correct usage of ConEx signals
and to penalize cheaters. To verify, that the congestion reported
using the ConEx mechanism matches the congestion actually observed by
the receiver, it has to monitor incoming and outgoing traffic close
to the receiver (beyond any point of congestion). For ConEx-capable
connections there are 5 types of events of interest:
o ECN-CE (ECN codepoint set)
o Loss (to be detected by the audit)
o Re-Echo-ECN (ConEx signal E)
o Re-Echo-Loss (ConEx signal L)
o Credit (ConEx signal C)
A simple implementation could keep one counter per type of event.
For a well-behaving sender, for each loss or ECN-CE signal the
respective ConEx signal will follow just one RTT later, balancing
both counters. Therefore, often only the balance of the counters for
loss or ECN and the respective ConEx signal matter, e.g. Re-Echo-Loss
- Loss. For a well behaving sender and disregarding loss of ConEx
marks, at least one balance counter will be negative right after the
congestion event but will recover to zero (balanced state) after one
RTT (for connections with typical BDPs and today's congestion
controls). Even if congestion occurs more frequently due to a fine
grained congestion notification scheme, the balance counters would be
negative (at about the average number of congestion occurrences per
RTT) but not decline over time. Nevertheless, since ConEx marked
packets can get lost and will not be re-sent, these balance counters
may decline over time. Thus the balance counters can get negative or
zero, but should never get positive (even when more ConEx marks are
received than congestion signals are observed).
An audit could also target to estimate loss of ConEx marked packets
based on an estimate of the connection's packet loss rate. It then
could decide how negative the balance counters are allowed to get: if
the audit additionally counts all packets of a connection, it can
easily estimate the packet loss rate. It can compare the relations
Lost_Packets/All_Packets and (Lost_Packets - Re-Echo-Loss)/
Lost_Packets and (ECN-CE - Re-Echo-ECN)/ECN-CE respectively. Over
time, these relations should converge, assuming that ConEx marked
packets are hit with the same probability as other packets(!).
Therefore, the audit may decide to penalize a flow if less ConEx
marks are received than expected on that estimation.
Wagner & Kuehlewind Expires January 13, 2014 [Page 5]
Internet-Draft ConEx Credits July 2013
If the audit detects misbehavior or cheating e.g. due to permanent
negative counters, the audit shall penalize the connection. The only
actually possible penalty would be dropping packets (with a certain
probability). The actual drop rate should provide a tangible
disadvantage to the sender but should not render the connection
unusable. E.g. it could depend on how negative the counter is. This
could motivate the sender to just open a new connection as
replacement. Moreover, false positives probably can't be avoided
completely. The actual definition of penalties requires further
research.
In the following different proposals for crediting are presented and
the handling in the audit based on this general principle is
discussed.
3.2. Credit As Congestion Substitute
Credit marks may be understood by the audit function as an equal
substitute for congestion marks. This means, that an audit device
will count and keep credit marks the same way as congestion marks.
Usually, as credits should cover the risk of causing congestion, a
large number of credits will be sent during Slow Start phase of TCP
congestion control (as the sending rate is increased quite
aggressively), e.g. at the start-up of a new TCP flow. Later the
sending rate is adjusted more slowly, thus usually no further credits
are needed, if the initially send credits remain valid for the
lifetime of a flow. During the connection the number of lost or
ECN-(CE)-marked packets indicating congestion should be balanced by
ConEx L or E marks. So at to the end of a flow's lifetime, there is
an amount of credits "sitting in the network" that is finally
discarded.
Audit implementation:
An audit maintains three counters per flow: one for credit, one for
loss balance and one for ECN balance (see Section 3.1). Whenever a
marked packet is seen, the respective counter is increased. When a
loss or ECN-(CE)-marked packet is observed, the respective counter is
decreased.
If the sum of the counters is negative, the flow is penalized.
3.3. Credit As Congestion Surcharge
Wagner & Kuehlewind Expires January 13, 2014 [Page 6]
Internet-Draft ConEx Credits July 2013
Another option is to interpret credit as compensation for late
arrival of congestion marks, or surcharge on (following) congestion
marks. This would basically mean that the sender pays twice for
congestion: first in advance by sending credit marks, and one RTT
after the congestion event by sending the respective number of ConEx
L or E marked packets.
Audit implementation:
An audit maintains three counters per flow, one for credit, one for
loss events and one for ECN events. Whenever a marked packet is
seen, the respective counter is increased. When a loss or
ECN-(CE)-marked packet is observed, the respective counter and also
the credit counter is decreased.
If the credit counter is negative, the flow is penalized.
3.3.1. BDP-Scaled Surcharge
For the sake of completeness and mainly motivated by the audit
implementation below we introduce a variation of the Congestion
Surcharge definition. In this approach the charge that needs to be
provided by credits per congestion event scales with the BDP (as the
maximum congestion risk) and additionally the longest delay between
two congestion occurrences within the congestion event. More
precisely, the proposed auditing scheme requires the sender to react
on a congestion event by sending credits until there was one RTT
without congestion events. This means that the sender pays for a
single congestion occurrence at least one RTT of credit marks.. If
several congestion signals occur within one RTT, the sender sends
credit marks until one RTT after the last signal. Thus the credit
cost of two congestion occurrences within one RTT varies from BDP to
2*BDP-1.
Audit implementation:
An audit maintains three counters per flow, one for credit, one
balance counter for loss events and one for ECN events. Whenever a
L- or C-marked packet is seen, the respective balance is increased.
When a loss or ECN-(CE)-marked packet is observed, the respective
counter and also the credit counter is decreased. For any packet
seen while the balance is negative, the credit counter is decreased.
If the credit counter is negative, the flow is penalized.
Wagner & Kuehlewind Expires January 13, 2014 [Page 7]
Internet-Draft ConEx Credits July 2013
3.4. Credit As Short-Lived Congestion Risk Compensation
This approach tries to provide an incentive for the sender to send
correct congestion feedback and not sending credits instead. One
basic property of the approaches presented above is the infinite
validity of credit. The expiry of credits could depend on the RTT or
other channel characteristics, but we deem the reasoning in
[draft-ietf-conex-abstract-mech] valid, so the audit should not need
to estimate channel characteristics per flow. However, credits could
also expire after a fixed time, e.g. 300 seconds. This expiration
time must be fixed and known to all senders so that they can replace
vanishing credit in time.
This timeout must at least be large enough to cover the length of a
feedback cycle of TCP congestion control. A feedback cycle is the
time between to congestion events. Today's congestion control
algorithms result in quite low loss rate and thus feedback rate for
large BDPs and therefore rather long feedback cycles. Nevertheless,
even for NewReno [RFC5681] being used for a single connection on a
1GBps link with 100ms RTT and 1500Byte segment size, a feedback cycle
is about ( (RTT * BDP)/2 = ) 41.6 seconds. Since even occasional
packet errors also discourage from using congestion controls with
that low probing frequency, we deem 300 seconds a safe proposal for
the expiration timeout.
Audit implementation:
An audit maintains three counters per flow, one for credit, one for
loss events and one for ECN events. Whenever a marked packet is
seen, the respective counter is increased. When a loss or CE-event
is detected, the respective counter is decreased and the credit
counter is decreased additionally. Incoming credits set a timer upon
which's timeout the credit counter is decreased.
Note: Since credit expiring a little later than expected does not
harm the overall function of the audit, it might aggregate expiration
timeouts, e.g. for 10 seconds so for each flow only 31 bin counters
would be needed.
If the credit counter is negative, the flow is penalized.
4. Discussion
This section shall provide an initial list of arguments as the basis
for further discussions.
For all proposals, honest congestion marks can be replaced with
credit marks without limitation. Moreover, for the Substitute
approach the sender has to the end of an connection no motivation to
provide any ConEx signals because he can assume that the balance at
Wagner & Kuehlewind Expires January 13, 2014 [Page 8]
Internet-Draft ConEx Credits July 2013
the audit is far in his favor. This aspect may concern a significant
time, depending on which congestion rate the used congestion control
algorithm implements.
Introducing a limitation for sending credit could limit the impact of
this fact but first a good definition of credit limits is not obvious
and second it would not work for short flows.
Any sender-based approach to handle loss of ConEx-marked packets
requires to allow replacing ConEx L and E signals by credit to a some
extend. This is basically contradicting to hindering concealing of
congestion by using credits. Note: the same calculation as proposed
for loss handling at the audit (see Section 3.1) can also be
performed by the sender, allowing him to send compensational credit
in advance. Another advantage of sender-based loss handling is that
the sender may use that mechanism to compensate false positives of
the audit. Of course this a drawback at the same time, as it opens
for abuse.
A main advantage of handling loss at the audit is that no
compensation by credit is necessary, so issue#1 can be avoided. The
main disadvantage is that the outlined mechanism only works for
longer flows since the statistical deviation of the observed loss
rate needs be acceptable small. It must also be noted, that the loss
probability changes over time during a flow's life time. For today's
congestion control algorithms, ConEx marked packets will be sent one
RTT after the congestion event when the sender reduced its sending
rate, thus the loss rate of ConEx marked packets should be smaller
than the total average loss rate. So more complex estimators might
be necessary, further increasing the audit complexity.
If ConEx loss is handled by the sender, re-routing or restarting
audits can be expected to be handled in a similar but this definitely
requires further research.
The BDP-Scaled Surcharge-approach has several properties which we
deem undesirable: although the RTT is out of control of the end user,
for this definition he has to pay more for connections with longer
RTTs. Moreover, the distribution of congestion occurrences affects
the credit cost of one congestion event significantly.
Approach Section 3.4 with limited life time of credit at least solves
the issue of large amounts of credits being available at the audit to
the end of a connection. Yet the issue of cheating by sending credit
instead of congestion marks remains unsolved. Maybe the proposed
credit definition could be used with a modified audit algorithm
limiting the decrease of the balance counters.
Wagner & Kuehlewind Expires January 13, 2014 [Page 9]
Internet-Draft ConEx Credits July 2013
5. Security Considerations
This document has no security considerations.
6. IANA Considerations
This document has no IANA considerations.
7. References
7.1. Normative References
[draft-ietf-conex-abstract-mech]
Mathis, M. and B. Briscoe, "Congestion Exposure (ConEx)
Concepts and Abstract Mechanism", draft-ietf-conex-
abstract-mech-06 (work in progress), October 2012.
[draft-ietf-conex-destopt]
Krishnan, S., Kuehlewind, M., and C. Ucendo, "IPv6
Destination Option for ConEx", draft-ietf-conex-destopt-04
(work in progress), March 2013.
7.2. Informative References
[RFC5681] Allman, M., Paxson, V., and E. Blanton, "TCP Congestion
Control", RFC 5681, September 2009.
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
of Explicit Congestion Notification (ECN) to IP", RFC
3168, September 2001.
Authors' Addresses
David Wagner
University of Stuttgart
Pfaffenwaldring 47
70569 Stuttgart
Germany
Email: david.wagner@ikr.uni-stuttgart.de
Wagner & Kuehlewind Expires January 13, 2014 [Page 10]
Internet-Draft ConEx Credits July 2013
Mirja Kuehlewind
University of Stuttgart
Pfaffenwaldring 47
70569 Stuttgart
Germany
Email: mirja.kuehlewind@ikr.uni-stuttgart.de
Wagner & Kuehlewind Expires January 13, 2014 [Page 11]