Network Working Group S. Floyd
Request for Comments: 4341 ICIR
Category: Standards Track E. Kohler
UCLA
March 2006
Profile for Datagram Congestion Control Protocol (DCCP)
Congestion Control ID 2: TCP-like Congestion Control
Status of This Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2006).
Abstract
This document contains the profile for Congestion Control Identifier
2 (CCID 2), TCP-like Congestion Control, in the Datagram Congestion
Control Protocol (DCCP). CCID 2 should be used by senders who would
like to take advantage of the available bandwidth in an environment
with rapidly changing conditions, and who are able to adapt to the
abrupt changes in the congestion window typical of TCP's Additive
Increase Multiplicative Decrease (AIMD) congestion control.
Table of Contents
1. Introduction ....................................................2
2. Conventions and Notation ........................................2
3. Usage ...........................................................3
3.1. Relationship with TCP ......................................3
3.2. Half-Connection Example ....................................4
4. Connection Establishment ........................................5
5. Congestion Control on Data Packets ..............................5
5.1. Response to Idle and Application-Limited Periods ...........8
5.2. Response to Data Dropped and Slow Receiver .................8
5.3. Packet Size ................................................8
6. Acknowledgements ................................................9
6.1. Congestion Control on Acknowledgements .....................9
6.1.1. Detecting Lost and Marked Acknowledgements .........10
Floyd & Kohler Standards Track [Page 1]
RFC 4341 DCCP CCID2 March 2006
6.1.2. Changing Ack Ratio .................................10
6.2. Acknowledgements of Acknowledgements ......................11
6.2.1. Determining Quiescence .............................12
7. Explicit Congestion Notification ...............................12
8. Options and Features ...........................................12
9. Security Considerations ........................................13
10. IANA Considerations ...........................................13
10.1. Reset Codes ..............................................13
10.2. Option Types .............................................13
10.3. Feature Numbers ..........................................14
11. Thanks ........................................................14
A. Appendix: Derivation of Ack Ratio Decrease ....................15
B. Appendix: Cost of Loss Inference Mistakes to Ack Ratio ........15
Normative References ..............................................17
Informative References ............................................18
1. Introduction
This document contains the profile for Congestion Control Identifier
2 (CCID 2), TCP-like Congestion Control, in the Datagram Congestion
Control Protocol (DCCP) [RFC4340]. DCCP uses Congestion Control
Identifiers, or CCIDs, to specify the congestion control mechanism in
use on a half-connection.
The TCP-like Congestion Control CCID sends data using a close variant
of TCP's congestion control mechanisms, incorporating a variant of
selective acknowledgements (SACK) [RFC2018, RFC3517]. CCID 2 is
suitable for senders who can adapt to the abrupt changes in
congestion window typical of TCP's Additive Increase Multiplicative
Decrease (AIMD) congestion control, and particularly useful for
senders who would like to take advantage of the available bandwidth
in an environment with rapidly changing conditions. See Section 3
for more on application requirements.
2. Conventions and Notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this