Datagram Congestion Control Protocol
From Wikipedia, the free encyclopedia
The five-layer TCP/IP model |
5. Application layer |
DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTSP · TLS · SDP · SOAP · GTP · STUN · NTP · (more) |
4. Transport layer |
TCP · UDP · DCCP · SCTP · RTP · RSVP · IGMP · (more) |
3. Network/Internet layer |
IP (IPv4 · IPv6) · OSPF · IS-IS · BGP · IPsec · ARP · RARP · RIP · ICMP · ICMPv6 · (more) |
2. Data link layer |
802.11 (WLAN) · 802.16 · Wi-Fi · WiMAX · ATM · DTM · Token ring · Ethernet · FDDI · Frame Relay · GPRS · EVDO · HSPA · HDLC · PPP · PPTP · L2TP · ISDN · ARCnet · (more) |
1. Physical layer |
Ethernet physical layer · Modems · PLC · SONET/SDH · G.709 · Optical fiber · Coaxial cable · Twisted pair · (more) |
The Datagram Congestion Control Protocol (DCCP) is a message-oriented transport layer protocol. DCCP implements reliable connection setup, teardown, ECN, congestion control, and feature negotiation. DCCP was published as RFC 4340, a proposed standard, by the IETF in March, 2006. Linux had an implementation of DCCP first released in Linux kernel version 2.6.14 and this continues to improve with each release.
DCCP provides a way to gain access to congestion control mechanisms without having to implement them at the application layer. It allows for flow-based semantics like in TCP, but does not require reliable in-order delivery. DCCP also does not require features of SCTP such as sequenced delivery within multiple streams.
DCCP is useful for applications with timing constraints on the delivery of data that may become useless to the receiver if reliable in-order delivery combined with congestion avoidance is used. Such applications might include streaming media and Internet telephony. Such applications have either settled for TCP or used UDP and implemented their own congestion control mechanisms (or no congestion control at all).
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 has the option to have very long (48 bit) sequence numbers corresponding to a packet ID (rather than a byte ID as in TCP). The long length of the sequence numbers is intended to guard against "some blind attacks, such as the injection of DCCP-Resets into the connection." [1]
[edit] See also
[edit] External links
- RFC 4340 - Datagram Congestion Control Protocol
- DCCP page from one of DCCP authors
- DCCP support in Linux