draft-ietf-tcpm-tcp-dcr-05.txt   draft-ietf-tcpm-tcp-dcr-06.txt 
Internet Engineering Task Force Sumitha Bhandarkar Internet Engineering Task Force Sumitha Bhandarkar
INTERNET DRAFT A. L. Narasimha Reddy INTERNET DRAFT A. L. Narasimha Reddy
draft-ietf-tcpm-tcp-dcr-05.txt Texas A&M University draft-ietf-tcpm-tcp-dcr-06.txt Texas A&M University
Expires: April 2005 Mark Allman Expires: May 2006 Mark Allman
ICIR/ICSI ICIR/ICSI
Ethan Blanton Ethan Blanton
Purdue University Purdue University
September 2005 November 2005
Improving the Robustness of TCP to Non-Congestion Events Improving the Robustness of TCP to Non-Congestion Events
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
skipping to change at page 2, line 17 skipping to change at page 2, line 17
from segment reordering. This document specifies the changes to TCP, from segment reordering. This document specifies the changes to TCP,
as well as the costs and benefits of these modifications. as well as the costs and benefits of these modifications.
Terminology Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described "OPTIONAL" in this document are to be interpreted as described
in [RFC2119]. in [RFC2119].
Readers should be familiar with the TCP terminology given in Readers should be familiar with the TCP terminology (e.g.,
[RFC2581] and [RFC3517]. FlightSize, Pipe, etc.) given in [RFC2581] and [RFC3517].
1. Introduction 1. Introduction
One strength of TCP [RFC793] lies in its ability to adjust its One strength of TCP [RFC793] lies in its ability to adjust its
sending rate according to the perceived congestion in the network sending rate according to the perceived congestion in the network
[Jac88,RFC2581]. In the absence of explicit notification of [Jac88,RFC2581]. In the absence of explicit notification of
congestion from the network, TCP uses segment loss as an indication congestion from the network, TCP uses segment loss as an indication
of congestion (i.e., assuming queue overflow). TCP receivers send of congestion (i.e., assuming queue overflow). TCP receivers send
cumulative acknowledgments (ACKs) indicating the next sequence number cumulative acknowledgments (ACKs) indicating the next sequence number
expected from the sender for arriving segments [RFC793]. When expected from the sender for arriving segments [RFC793]. When
skipping to change at page 9, line 49 skipping to change at page 9, line 49
3.3. Extended Limited Transmit 3.3. Extended Limited Transmit
On each ACK containing SACK information that arrives after TCP-NCR On each ACK containing SACK information that arrives after TCP-NCR
has entered the Extended Limited Transmit phase (as outlined in has entered the Extended Limited Transmit phase (as outlined in
section 3.1) and before Extended Limited Transmit terminates, the section 3.1) and before Extended Limited Transmit terminates, the
sender MUST use the following procedure. sender MUST use the following procedure.
(E.1) Use the SetPipe () procedure from [RFC3517] to set the "pipe" (E.1) Use the SetPipe () procedure from [RFC3517] to set the "pipe"
variable (which represents the number of bytes still considered variable (which represents the number of bytes still considered
"in the network"). "in the network"). Note: the current value of DupThresh MUST
be used by SetPipe () to produce an accurate assessment of the
amount of data still considered in the network.
(E.2) If the comparison in equation (1) below holds and there are (E.2) If the comparison in equation (1) below holds and there are
SMSS bytes of previously unsent data available for SMSS bytes of previously unsent data available for
transmission then transmit one segment of SMSS bytes. transmission then transmit one segment of SMSS bytes.
(pipe + Skipped) <= (FlightSizePrev - SMSS) (1) (pipe + Skipped) <= (FlightSizePrev - SMSS) (1)
If the comparison in equation (1) does not hold or no new data If the comparison in equation (1) does not hold or no new data
can be transmitted (due to lack of data from the application can be transmitted (due to lack of data from the application
or the advertised window limit), skip to step (E.6). or the advertised window limit), skip to step (E.6).
skipping to change at page 10, line 48 skipping to change at page 10, line 50
algoritms in [RFC3517] to govern TCP's behavior. One slight algoritms in [RFC3517] to govern TCP's behavior. One slight
change to [RFC3517] MUST be made, however. In section 5, step change to [RFC3517] MUST be made, however. In section 5, step
(2) of [RFC3517] MUST be changed to: (2) of [RFC3517] MUST be changed to:
(2) ssthresh = cwnd = (FlightSizePrev / 2) (2) ssthresh = cwnd = (FlightSizePrev / 2)
This ensures that the congestion control modifications are made This ensures that the congestion control modifications are made
with respect to the amount of data in the network before with respect to the amount of data in the network before
FlightSize was increased by Extended Limited Transmit. FlightSize was increased by Extended Limited Transmit.
Note: Once the algorithm in [RFC3517] takes over from Extended
Limited Transmit the DupThresh value MUST be held constant until
the loss recovery phase is terminated.
4. Advantages 4. Advantages
The major advantages of TCP-NCR are two-fold. As discussed in The major advantages of TCP-NCR are two-fold. As discussed in
section 1, TCP-NCR will open up the design space for network section 1, TCP-NCR will open up the design space for network
applications and components that are currently constrained by TCP's applications and components that are currently constrained by TCP's
lack of robustness to packet reordering. The second advantage is in lack of robustness to packet reordering. The second advantage is in
terms of an increase in TCP performance. terms of an increase in TCP performance.
[BR04] presents ns-2 [NS-2] simulations of a pre-cursor to the TCP- [BR04] presents ns-2 [NS-2] simulations of a pre-cursor to the TCP-
NCR algorithm specified in this document, called TCP-DCR (Delayed NCR algorithm specified in this document, called TCP-DCR (Delayed
skipping to change at page 13, line 4 skipping to change at page 13, line 8
spurious retransmits and mitigate the changes these events made to spurious retransmits and mitigate the changes these events made to
the congestion control state. TCP-NCR could be used in conjunction the congestion control state. TCP-NCR could be used in conjunction
with these algorithms, with TCP-NCR attempting to prevent spurious with these algorithms, with TCP-NCR attempting to prevent spurious
retransmits and some other scheme kicking in if the prevention retransmits and some other scheme kicking in if the prevention
failed. In addition, we note that TCP-NCR is concentrated on failed. In addition, we note that TCP-NCR is concentrated on
preventing spurious fast retransmits and some of the above algorithms preventing spurious fast retransmits and some of the above algorithms
also attempt to detect and mitigate spurious timeout-based also attempt to detect and mitigate spurious timeout-based
retransmits. retransmits.
7. Security Considerations 7. Security Considerations
We do not believe there are security implications involved with TCP- We do not believe there are security implications involved with TCP-
NCR over and above those for general TCP congestion control NCR over and above those for general TCP congestion control
[RFC2581]. In particular, the Extended Limited Transmit algorithms [RFC2581]. In particular, the Extended Limited Transmit algorithms
specified in this document have been specifically designed not to be specified in this document have been specifically designed not to be
susceptible to the sorts of ACK splitting attacks TCP's general TCP susceptible to the sorts of ACK splitting attacks TCP's general TCP
congestion control is vulnerable to (as discussed in [RFC3465]). congestion control is vulnerable to (as discussed in [RFC3465]).
8. Acknowledgements 8. Acknowledgements
Ted Faber, Wesley Eddy, Gorry Fairhurst, Sally Floyd, Nauzad Sadry, Ted Faber, Wesley Eddy, Gorry Fairhurst, Sally Floyd, Sara Landstrom,
Pasi Sarolahti, Joe Touch and Nitin Vaidya as well as feedback from Nauzad Sadry, Pasi Sarolahti, Joe Touch and Nitin Vaidya as well as
the TCPM working group have contributed significantly to this feedback from the TCPM working group have contributed significantly
document. Our thanks to all! to this document. Our thanks to all!
9. Normative References 9. Normative References
[RFC793] J. Postel, "Transmission Control Protocol", RFC 793, [RFC793] J. Postel, "Transmission Control Protocol", RFC 793,
September 1981. September 1981.
[RFC2018] M. Mathis, J. Mahdavi, S. Floyd and A. Romanow, "TCP [RFC2018] M. Mathis, J. Mahdavi, S. Floyd and A. Romanow, "TCP
selective acknowledgment options," Internet RFC 2018. selective acknowledgment options," Internet RFC 2018.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
 End of changes. 7 change blocks. 
10 lines changed or deleted 17 lines changed or added

This html diff was produced by rfcdiff 1.27, available from http://www.levkowetz.com/ietf/tools/rfcdiff/