Congestion of the network is a phenomenon which consists of deterioration of the quality of services caused by the overloading of network nodes, so the term is associated primarily with large networks, in which large amounts of data are being transmitted. Congestion has several causes: either the routers are not fast enough, their CPUs are too slow, and they do not manage to quit queuing queues in a timely manner. Even if the network is free enough or more streams are being transmitted which must then be sent on the same output line, or the buffers are not large enough and are lost from the packets. In the case of very high traffic, the situation may worsen so badly that no packages are delivered.
DCCP is a message-based transport level protocol. It implements the setting of a secure connection, its closure, ECN (Explicit Congestion Notification), congestion control, and negotiation of features. DCCP provides a way to access congestion control mechanisms without having to implement them at the application level.
Allows similar TCP feeds, but does not deliver delivery in the order of transmission. Sequential delivery of multiple streams (as in SCTP -Stream Control Transmission Protocol) is not available in DCCP.
DCCP is used in applications where time constraints are imposed on package delivery. This category includes multiplayer online games, internet telephony, streaming media (video, audio).
The essential feature of these applications is that old messages quickly become expired, lose their usefulness.
Higher priority is given to new messages, so it is not useful to attempt to resend the packets, it would consume time and unnecessary network resources. DCCP can also be used as a general congestion control mechanism for applications based on the UDP protocol. One can also add a safety mechanism and possibly one for packet delivery in the order of transmission. In this context, DCCP allows the use of various congestion control mechanisms, generally TCP-friendly. A DCCP connection contains both confirmation traffic and data traffic.
Confirmations announce the transmitter that his packages have arrived at the destination or have been marked by ECN. Confirmations are transmitted with the degree of safety demanded by the congestion control mechanism. It is possible to reach 100% safely.
DCCP Features:
1. An unreliable datagram stream, with the confirmation.
2. Secure negotiation of options, including negotiation of a suitable mechanism for congestion control.
3. Secure handshake protocol for initializing and closing the connection.
4. Discovery of the maximum transmitting unit on the chosen path (MTU = Maximum Transmission Unit).
5. Mechanisms that allow servers to avoid storing states for attempted unconnected, unconfirmed disconnections, or for already closed connections.
6. Congestion control, including ECN and ECN NONCE.
7. Confirmation mechanisms will communicate packet loss and ECN information.
8. Optional mechanisms that communicate to the emitting application with high security, which packets have reached the receiver and whether they have been marked by ECN, corrupted or removed in the receiver buffer.
9. Choosing modular congestion control mechanisms. Currently, two methods are specified: TCP-like Congestion Control and TCP-Friendly Congestion Control.
The full purpose of DCCP is to provide a standard way to implement simple congestion control and its negotiation for real-time applications.