# Datagram Congestion Control Protocol

Het Datagram Congestion Control Protocol (DCCP) is een protocol van de transportlaag. Het wordt gebruikt voor de overdracht van de datastromen in TCP/IP-netwerken, als een anti verstopping regelmechanisme (werkt door dynamische aanpassing van de verzendsnelheid aan de daadwerkelijke beschikbare bandbreedte). Het vergelijkbaar en meer gebruikte TCP-protocol kijkt naar de "gemiddelde data" en past daar verzendsnelheid op aan. Het vertrouwt erop dat de andere kant wel de pakketten weggooit die niet verwerkt kunnen worden en om de ontbrekende pakketten vraagt. Bij verstoppingen stopt DCCP met verzenden en TCP gaat gewoon door met zenden in de hoop dat de verstopping van tijdelijke duur is. Doordat Microsoft een eigen interpretatie heeft van het OSI-model wordt het protocol hoofdzakelijk gebruikt door de andere besturingssystemen. Het protocol werkt samen met de TCP/IP-protocollen en stuurt zijn pakketten ertussen door. Het werkt vooral goed voor spoedberichten die binnen een bepaalde periode en in een vaste volgorde verstuurd dienen te worden, omdat de bandbreedte optimaal gebruikt wordt. Nadeel is het gebrek aan foutdetectie.

## Datagram Congestion Control Protocol Header

DCCP Header met 48 Bit Sequentienummer :
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| bronport | bronport | bronport | bronport | bronport | bronport | bronport | bronport | bronport | bronport | bronport | bronport | bronport | bronport | bronport | bronport | doelport | doelport | doelport | doelport | doelport | doelport | doelport | doelport | doelport | doelport | doelport | doelport | doelport | doelport | doelport | doelport |
| Data Offset | Data Offset | Data Offset | Data Offset | Data Offset | Data Offset | Data Offset | Data Offset | CCVal | CCVal | CCVal | CCVal | CsCov | CsCov | CsCov | CsCov | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum |
| Res | Res | Res | Type | Type | Type | Type | 1 | gereserveerd | gereserveerd | gereserveerd | gereserveerd | gereserveerd | gereserveerd | gereserveerd | gereserveerd | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) | Sequentienummer (opwaartse Bits) |
| Sequentienummer (voorgaande stroom Bits) ||||||||||||||||||||||||||||||||
DCCP Header met 24 Bit Sequentienummer :
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Bron port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port | Doel port |
| Data Offset | Data Offset | Data Offset | Data Offset | Data Offset | Data Offset | Data Offset | Data Offset | CCVal | CCVal | CCVal | CCVal | CsCov | CsCov | CsCov | CsCov | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum |
| Res | Res | Res | Type | Type | Type | Type | 0 | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) | Sequentienummer (voorgaande Bits) |