Previous

Content

Next 


1.0.- Introduction about DCCP  

Datagram Congestion Control Protocol (DCCP) is a new transport protocol designed by the Internet Engineering Task Force. The draft draft-ietf-dccp-spec-03.txt written by Eddie Kohler, Mark Handley, Sally Floyd and Jitendra Padhye in May 2003 specifies the protocol. Here I'm trying to make a brief summary of this document:

The framework (by me)
DCCP is a new transport protocol being designed by IETF to replace UDP as the protocol to be used to transport real-time traffic, but not limited to this type of traffic. The IETF working group in charge of the DCCP specifications is being led by Sally Floyd, a person who has dedicated her entire all life to study the congestion control problem in networks, to give her unvaluable support to the design of the congestion avoidance algorithm implemented in TCP, and that is one of the person in the all world that better known the intrinsic behavior of transport protocols, and their relationship with the necessity to avoid congestion problems in interest of the health of Internet. We are then, in the best hands.
As long as everyday, more and more real-time applications are running over Internet, then the problem of approaching a good congestion avoidance control in the net has been in increase. Due to their intrisic nature, real-time applications require a very fast and low overhead transport protocol. Because, again, the intrinsic nature of TCP, it can't be used, and all these application designers has dumped to UDP as their mean to transports their application packets throughout the Internet.  

But UDP has a big problem that attempt against the health of Internet. It does not implement any kind of congestion avoidance control algorithm and for this, its flows are very aggressive, it does not respond lowering its throughput when packet dropping indicate the presence of congestion, and it starves other TCP and TCP-like flows, that being more friendly or good citizen protocols, adjust themselve their throughput in presence of congestion to alleviate the situation and allowing Internet to recover its health state.
Then, the more frequently use of UDP is really a truly "troyan horse" that we have in Internet. Fortunately, up to now at least, UDP presence in Internet is small enough when it is compared with TCP presence, being the problem yet under control. Nevertheless, because real-time applications are being requested everyday more and more, time has arrived to look for a prompt solution to this problem. That's the reason why IETF decided to design a new trasport protocol to replace UDP in the, we hope, near future.
The new protocol is called Datagram Congestion Control Protocol (DCCP) and is in the designing and testing phase at this moment.
Introduction
DCCP will provide the following features:
  • An unreliable flow of datagrams, with acknowledgements.
  • A reliable handshake for connection setup and teardown.
  • Reliable negotiation of options, including negotiation of a suitable congestion control mechanism.
  • Mechanisms allowing a server to avoid holding any state for unacknowledged connection attempts or already-finished connections.
  • Optional mechanisms that tell the sender, with high reliability, which packets reached the receiver, and whether those packets were ECN marked, corrupted, or dropped in the receive buffer.
  • Congestion control incorporating Explicit Congestion Notification (ECN) and the ECN Nonce, as per [RFC 3168] and [ECN NONCE].
  • Path MTU discovery, as per [RFC 1191].
The purpose of DCCP is to provide a standard way to implement congestion control and congestion control negotiation for real-time applications. One of the motivations for DCCP is to enable the use of ECN, along with conformant end-to-end congestion control, for applications that would otherwise be using UDP. In addition, DCCP implements reliable connection setup, teardown, and feature negotiation.
A DCCP connection contains acknowledgement traffic as well as data traffic. Acknowledgements inform a sender whether its packets arrived, and whether they were ECN marked. Acks are transmitted as reliably as the congestion control mechanism in use requires, possibly completely reliably.
DCCP is intended to be used by applications that currently use UDP without end-to-end congestion control. The desire is for many applications to have little reason not to use DCCP instead of UDP, once DCCP is deployed. Thus, DCCP was designed to have as little overhead as possible, in terms both of the size of the packet header and in terms of the state and CPU overhead required at the end hosts.
A second motivation behind the design of DCCP is to allow applications to choose an alternative to the current TCP-style congestion control that halves the congestion window in response to a congestion indication. DCCP lets applications choose between several forms of congestion control. One choice, TCP-like congestion control, halves the congestion window in response to a packet drop or mark, as in TCP. A second alternative, TFRC (TCP-Friendly Rate Control, a form of equation-based congestion control), minimizes abrupt changes in the sending rate while maintaining longer-term fairness with TCP.

Previous

Content

Next