Fast-growing Internet applications like streaming media and telephony prefer timeliness to reliability, making TCP a poor fit. Unfortunately, UDP, the natural alternative, lacks congestion control. High-bandwidth UDP applications must implement congestion control themselves a difficult task or risk rendering congested networks unusable. We set out to ease the safe deployment of these applications by designing a congestion-controlled unreliable transport protocol. The out- come, the Datagram Congestion Control Protocol or DCCP, adds to a UDP-like foundation he minimum mechanisms necessary to support congestion control.We thought those mech- anisms would resemble TCPs,but without reliability and ,especially, cumulative acknowledgements, we had to reconsider almost every aspect of TCPs design. The resulting protocol sheds light on how congestion control interacts with unreliable transport, how modern network constraints impact protocol design, and how TCPs reliable bytestream semantics intertwine with its other mechanisms, including ongestion control..