Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Aptitude
  • Engineering Mathematics
  • Discrete Mathematics
  • Operating System
  • DBMS
  • Computer Networks
  • Digital Logic and Design
  • C Programming
  • Data Structures
  • Algorithms
  • Theory of Computation
  • Compiler Design
  • Computer Org and Architecture
Open In App
Next Article:
What is DCCP (Datagram Congestion Control Protocol)?
Next article icon

What is DCCP (Datagram Congestion Control Protocol)?

Last Updated : 18 Apr, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

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
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
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
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 

  • Congestion control: Unlike UDP, which has no built-in mechanism for controlling congestion, DCCP includes congestion control algorithms that help to prevent network overload and ensure reliable delivery of data.
  • Quality of Service (QoS) support: DCCP provides support for QoS, which allows network administrators to prioritize different types of traffic based on their importance. This can be useful for applications such as video streaming or voice over IP, where low latency and high reliability are essential.
  • Flexibility: DCCP is designed to be a flexible protocol, allowing network administrators to choose from a variety of congestion control algorithms based on the specific requirements of their network and applications.
  • Compatibility: DCCP is designed to work with existing IP networks and is compatible with traditional IP protocols like TCP and UDP.

Real-World Applications

  • Streaming media: DCCP is often used in streaming media applications, such as video conferencing, where low latency and high reliability are important. The congestion control algorithms built into DCCP help to ensure that these applications can run smoothly and effectively, even in networks with high levels of congestion.
  • Gaming: Some online gaming applications also make use of DCCP, as its congestion control algorithms can help to prevent network slowdowns and ensure that game data is delivered quickly and reliably.
  • Telemetry: DCCP is also used in telemetry applications, where large amounts of data need to be transmitted from remote devices back to a central control center. The congestion control algorithms built into DCCP help to ensure that this data is delivered reliably and efficiently, even in congested networks.
  • Remote Access: DCCP can be used for remote access applications, as it provides a reliable and secure connection for remote access to servers and other resources.

Next Article
What is DCCP (Datagram Congestion Control Protocol)?

V

vipul1501
Improve
Article Tags :
  • Computer Networks
  • Geeks Premier League
  • Geeks-Premier-League-2022

Similar Reads

    Congestion Control in Datagram Subnets
    In this article, we will discuss different approaches to Congestion control in the data-gram subnet. Also, we will discuss the drawback and will explain each approach in detail. Let's discuss them one by one. Pre-requisite -Congestion control Congestion control in data-gram and sub-nets :Some conges
    4 min read
    What is Signaling Connection Control Part (SCCP)?
    The Signaling Connection Control Part (SCCP) is an improvement to the MTP Level 3 which is known to provide connection-oriented and connectionless services, and the SCCP also provides an enhancement to address translation capabilities. Given Diagram provides a clear view of the improvements that SCC
    3 min read
    TCP Congestion Control
    TCP congestion control is a method used by the TCP protocol to manage data flow over a network and prevent congestion. TCP uses a congestion window and congestion policy that avoids congestion. Previously, we assumed that only the receiver could dictate the sender’s window size. We ignored another e
    4 min read
    Logical Link Control (LLC) Protocol Data Unit
    Logical Link Control (LLC) is a sublayer that generally provides the logic for the data link as it controls the synchronization, multiplexing, flow control, and even error-checking functions of DLL (Data Link Layer). DLL is divided into two sublayers i.e. LLC sublayer and MAC (Medium Access Control)
    3 min read
    Dynamic Host Configuration Protocol (DHCP)
    Dynamic Host Configuration Protocol is a network protocol used to automate the process of assigning IP addresses and other network configuration parameters to devices (such as computers, smartphones, and printers) on a network. Instead of manually configuring each device with an IP address, DHCP all
    14 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences