Summary: Designing DCCP

From: Andrew Miklas <agmiklas_at_cs.toronto.edu>
Date: Tue, 10 Oct 2006 02:40:47 -0400

This paper describes the Datagram Congestion Control Protocol (DCCP). The
purpose of this protocol seems to be to provide something with similar
semantics to UDP (ie. datagram, no reliable delivery) but with a congestion
control system compatible with the one used by TCP. Although designing this
protocol might seem easy (ie. just take the congestion control stuff out of
TCP), it appears that it was not nearly so easy. The problem is that many of
the properties of TCP, such as bytestream semantics, reliable messaging,
consice acknowledgements, connection setup, flow control, and congestion
control are all intertwined.

A good chunk of the paper is spent describing sequence numbers and
acknowledgements. Although these might seem more relevant to reliable
messaging, they are also necessary for congestion control in the absence of
application-level loss notification.

Unlike TCP, DCCP acknowledgements indicate the last packet received, rather
than the earliest not received. This makes sense given the purpose of the
acknowledgements is to allow the sender to gauge loss, where as in TCP the
main purpose of acknowledgements is to implicitly tell the sender what must
be retransmitted. DCCP acknowledgements also merely indicate that a packet
was received, not that the data was passed on to the application (which might
happen if a packet gets dropped from the receive queue due to new data being
received prior to the packet being delivered to the receiving application)
Received on Tue Oct 10 2006 - 02:40:45 EDT

This archive was generated by hypermail 2.2.0 : Tue Oct 10 2006 - 08:00:48 EDT