Open In App

What is DCCP (Datagram Congestion Control Protocol)?

Congestion in a network means deterioration of network or services which are caused due to overloading of network nodes, basically, this problem is primarily associated with large networks, in which a large amount of data and information is being transmitted. Congestion can be caused by several reasons: either the routers which are being used are not fast enough, the CPUs which are being used are not fast enough and they do not manage to quit queues in OS in a timely manner, buffers are not large enough as our requirements or they are lost from the packets. Also in the case of very high traffic, the situation can be worse enough that no packages are delivered at all.

DCCP is basically a message-based transport-level protocol. The setting of a secure connection is easily maintained using it, its closure i.e. ECN (Explicit Congestion Notification), congestion control, and negotiation of features. DCCP is a great technique to access congestion control mechanisms, also we don’t need to implement them at the application level also.



DCCP basically allows similar Transfer Control Protocol feeds also, but delivery in the order of transmission cannot be done. Sequential delivery of multiple streams (as in SCTP- Stream Control Transmission Protocol) is not available in DCCP.

DCCP is widely used in applications package delivery is composed of time constraints. The examples that come under this category include multiplayer online games, internet telephony, streaming media (video, audio), etc. The most important feature of these applications is that old messages quickly become expired automatically, lose their usefulness by default.



DCCP connection setup can be explained through the below image, it is basically similar to TCP connection setup :

DCCP Connection setup

On the other hand, the higher priority is given to new messages, so to resend the packets is not very much useful here, it would eventually consume time and unnecessary network resources as well. Datagram Congestion Control Protocol can also be used as a general congestion control technique for those types of applications that are based on the UDP protocol as well. A safety mechanism can also be added and possibly one for packet delivery in the order of transmission. In other cases, DCCP helps to use various congestion control mechanisms, generally Transmission Control Protocol-friendly. Confirmation traffic and data traffic are both contained in a DCCP connection.

The transmitter gets to know with the help of confirmations that his packages have arrived at the destination or have been marked by ECN. Confirmations are used with the purpose of safety demanded by the congestion control mechanism. Its primary aim is to reach 100% safely.

DCCP Packet structure:

The DCCP generic header has various forms according to the value given to X i.e. the Extended Sequence Numbers bit. 

Let X = 1, 

the Sequence Number field is 48 bits long, and the generic header takes 16 bytes, which is clearly explained in the below image.

DCCP generic header when X=1

If we change the value of X = 0, only the low 24 bits of the Sequence Number are transmitted, and the generic header is 12 bytes long which is shown in the below image :

DCCP generic header when X=0

Features of DCCP:

  1. DCCP is a non-reliable datagram stream, with a good feature of confirmation.
  2. DCCP helps to secure negotiation of options, including negotiation of the most suitable mechanism for congestion control.
  3. It provides a secure handshake protocol with the purpose of initializing and closing the connection of DCCP.
  4. It plays a vital role in the discovery of the maximum transmitting unit on the chosen path by the user.
  5. It provides techniques that allow servers to avoid storing states for attempted unconnected, unconfirmed disconnections, or for already closed connections as well.
  6. Confirmation mechanisms are a very good feature of DCCP which helps to communicate packet loss and ECN information.
  7. Optional mechanisms are also some good techniques that communicate to the emitting application with high security, which packets have reached the receiver and which are not, also whether they have been marked by ECN or not, or they are corrupted or removed in the receiver buffer.
  8. DCCP can support multiple concurrent streams within a single connection, which enables applications to transmit multiple data flows over the same connection.
  9. It provides a mechanism for applications to prioritize their data flows, which helps in achieving better Quality of Service (QoS).
  10. DCCP supports both connection-oriented and connectionless communication modes.
  11. It offers a congestion control mechanism that is more flexible than the TCP congestion control mechanism.
  12. DCCP can be used over both IP version 4 and IP version 6 networks.

Advantages 

Real-World Applications

Article Tags :