Previous

Content

Next 


2.0.- Anatomy of a DCCP Connection  

Each DCCP connection runs between two endpoints, which we often name DCCP A and DCCP B. Data may pass over the connection in either or both directions. The DCCP connection between DCCP A and DCCP B consists of four sets of packets, as follows:
  1. Data packets from DCCP A to DCCP B.
     
  2. Acknowledgements from DCCP B to DCCP A.
     
  3. Data packets from DCCP B to DCCP A.
     
  4. Acknowledgements from DCCP A to DCCP B.
 

Each numbered flow of packets above represents a set. We have then 4 sets of packets in a DCCP connection. LB.
We use the following terms to refer to subsets and endpoints of a DCCP connection.
  • Subflows
     
    A subflow consists of either data or acknowledgement packets, sent in one direction. Each of the four sets of packets above is a subflow. (Subflows may overlap to some extent, since acknowledgements may be piggybacked on data packets.)
     
     
  • Sequences
     
    A sequence consists of all packets sent in one direction, regardless of whether they are data or acknowledgements. The sets 1+4 and 2+3, above, are sequences. Each packet on a sequence has a different sequence number.
     
     
  • Half-connections
     
    A half-connection consists of the data packets sent in one direction, plus the corresponding acknowledgements. The sets 1+2 and 3+4, above, are half-connections. Half-connections are named
    after the direction of data flow, so the A-to-B half-connection contains the data packets from A to B and the acknowledgements from B to A.
     
     
  • HC-Sender and HC-Receiver
     
    In the context of a single half-connection, the HC-Sender is the endpoint sending data, while the HC-Receiver is the endpoint sending acknowledgements. For example, in the A-to-B half-connection, DCCP A is the HC-Sender and DCCP B is the HC-Receiver.  
Congestion Control
Each half-connection is managed by a congestion control mechanism. The endpoints negotiate these mechanisms at connection setup; the mechanisms for the two half-connections need not be the same.
Conformant congestion control mechanisms correspond to single-byte congestion control identifiers, or CCIDs. The CCID for a half-connection describes how the HC-Sender limits data packet rates; how it maintains necessary parameters, such as congestion windows; how the HC-Receiver sends congestion feedback via acknowledgements; and how it manages the acknowledgement rate.
Connection Initiation and Termination
Every DCCP connection is actively initiated by one DCCP, which connects to a DCCP socket in the passive listening state. We refer to the active endpoint as "the client" and the passive endpoint as "the server". Most of the DCCP specification is indifferent to whether a DCCP is client or server. However, only the server can request to close a connection. This means that the client cannot force the server to maintain connection state after the connection is closed.
DCCP does not support TCP-style simultaneous open. This means, a host MUST NOT respond to a DCCP request unless the destination port specified in the request corresponds to a local socket opened for listening. DCCP does not support half-open connections either. That is, DCCP shuts down both half-connections as a unit. 
Features
DCCP uses a generic mechanism to negotiate connection properties, such as the CCIDs active on the two half-connections. These properties are called features. A feature name, such as "CCID", generally corresponds to two features, one per half-connection. For instance, there are two CCIDs per connection. The endpoint in charge of a particular feature is called its feature location.
The Change, Prefer, and Confirm options negotiate feature values. Change is sent to a feature location, asking it to change its value for the feature. The feature location may respond with Prefer, which asks the other endpoint to Change again with different values, or it may change the feature value and acknowledge the request with Confirm. Retransmissions make feature negotiation reliable.
 


Previous

Content

Next