|DCCP, Datagram Congestion Control Protocol|
|Protocol type:||Transport layer protocol.|
|Working groups:||dccp, Datagram Congestion Control Protocol.|
IANA: DCCP parameters.|
The DCCP protocol provides bidirectional unicast connections of congestion-controlled unreliable datagrams. DCCP is suitable for applications that transfer fairly large amounts of data and that can benefit from control over the tradeoff between timeliness and reliability.
|MAC header||IP header||DCCP header||Data :::|
|Source port||Destination port|
|0||Type||X||0||Sequence number :::|
Identifies the sender of this packet.
Identifies the receiver of this packet.
The offset from the start of the packet's DCCP header to the start of the application data area in 32-bit words. The receiver MUST ignore packets whose offset is smaller than the minimum-sized header for the given Type or larger than the DCCP packet itself.
Used by the HC-Sender CCID. For example, the A-to-B CCID's sender, which is active at DCCP A, MAY send 4 bits of information per packet to its receiver by encoding that information in this field. The sender MUST clear this field to zero unless its HC-Sender CCID specifies otherwise, and the receiver MUST ignore the CCVal field unless its HC-Receiver CCID specifies otherwise.
CsCov, checksum coverage.
This field specifies the parts of the packet that are covered by the Checksum field. This always includes the DCCP header and options, but some or all of the application data may be excluded. This can improve performance on noisy links for applications that can tolerate corruption.
The Internet checksum of the packet's DCCP header (including options), a network-layer pseudoheader, and, depending on Checksum Coverage, all, some, or none of the application data.
Type. 4 bits.
|0||DCCP-Request.||RFC 4340, RFC 5595|
|14||Experimental and testing use.||RFC 4340|
X, Extended Sequence Numbers.
Set to one to indicate the use of an extended generic header with 48-bit Sequence and Acknowledgement Numbers. DCCP-Data, DCCP- DataAck, and DCCP-Ack packets MAY clear X to zero or set it to one. All DCCP-Request, DCCP-Response, DCCP-CloseReq, DCCP-Close, DCCP- Reset, DCCP-Sync, and DCCP-SyncAck packets MUST set X to one. Endpoints MUST ignore any such packets with X cleared to zero. High-rate connections SHOULD set X to one on all packets to gain increased protection against wrapped sequence numbers and attacks.
24 or 48 bits.
Identifies the packet uniquely in the sequence of all packets the source sent on this connection. This field increases by one with every packet sent, including packets such as DCCP-Ack that carry no application data.
Data. Variable length.
[RFC 4336] Problem Statement for the Datagram Congestion Control Protocol (DCCP).
[RFC 4340] Datagram Congestion Control Protocol (DCCP).
[RFC 4341] Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 2: TCP-like Congestion Control.
[RFC 4342] Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 3: TCP-Friendly Rate Control (TFRC).
[RFC 5348] TCP Friendly Rate Control (TFRC): Protocol Specification.
[RFC 5595] The Datagram Congestion Control Protocol (DCCP) Service Codes.
[RFC 5596] Datagram Congestion Control Protocol (DCCP) Simultaneous-Open Technique to Facilitate NAT/Middlebox Traversal.
[RFC 5597] Network Address Translation (NAT) Behavioral Requirements for the Datagram Congestion Control Protocol.