Previous

Content

Next 


3.0.- DCCP Packets  

Google
DCCP has nine different packet types:
  1. DCCP-Request
  2. DCCP-Response
  3. DCCP-Data
  4. DCCP-Ack
  5. DCCP-DataAck
  6. DCCP-CloseReq
  7. DCCP-Close
  8. DCCP-Reset
  9. DCCP-Move
 

An informational description of a typical DCCP connection is as follows:
  1. The client sends the server a DCCP-Request packet specifying the client and server ports, the service being requested, and any features being negotiated, including the CCID that the client would like the server to use. The client may optionally piggyback some data on the DCCP-Request packet, an application-level request, say, which the server may ignore.
     
  2. The server sends the client a DCCP-Response packet indicating that it is willing to communicate with the client. The response indicates any features and options that the server agrees to, begins or continues other feature negotiations if desired, and optionally includes an Init Cookie that wraps up all this information and which must be returned by the client for the connection to complete.
     
  3. The client sends the server a DCCP-Ack packet that acknowledges the DCCP-Response packet. This acknowledges the server's initial sequence number and returns the Init Cookie if there was one in
    the DCCP-Response. It may also continue feature negotiation.
     
  4. Next comes zero or more DCCP-Ack exchanges as required to finalize feature negotiation. The client may piggyback an application-level request on its final ack, producing a DCCP-DataAck packet.
     
  5. The server and client then exchange DCCP-Data packets, DCCP-Ack packets acknowledging that data, and, optionally, DCCP-DataAck packets containing piggybacked data and acknowledgements. If the client has no data to send, then the server will send DCCP-Data and DCCP-DataAck packets, while the client will send DCCP-Acks exclusively.
     
  6. The server sends a DCCP-CloseReq packet requesting a close. (Only the server can do this. L.B.).
     
  7. The client sends a DCCP-Close packet acknowledging the close.
     
  8. The server sends a DCCP-Reset packet whose Reason field is set to "Closed", and clears its connection state.
     
  9. The client receives the DCCP-Reset packet and holds state for a reasonable interval of time to allow any remaining packets to clear the network.
An alternative connection closedown sequence COULD BE initiated by the client:
  1. The client sends a DCCP-Close packet closing the connection.
     
  2. The server sends a DCCP-Reset packet with Reason field set to "Closed" and clears its connection state.
     
  3. The client receives the DCCP-Reset packet and holds state for a reasonable interval of time to allow any remaining packets to clear the network.
This arrangement of setup and teardown handshakes permits the server to decline to hold any state until the handshake with the client has completed, and ensures that the client must hold the TimeWait state at connection closedown.

Previous

Content

Next