3.1 Common Details
The following diagram illustrates the states and transitions of this protocol.

Figure 7: State diagram
Static channel created event: This event signals that the static channel is available to send and receive data, as described in [MS-RDPBCGR] section 3.1.5.2.
Caps exchange state: In this state, the client and the server exchange capabilities, as described in section 2.2.1.
Caps received event: After the capabilities have been received by both sides, the protocol is ready to open dynamic channels.
Ready state: In this state, the protocol can open new channels, as described in 2.2.2. For each new channel it will enter new state.
Create channel event: Signifies that the server is requesting a new channel, as described in section 2.2.2.
Opening channel state: In this state, the server awaits a DVC Create Response PDU, as described in section 2.2.2.2.
Channel create fail event: The response indicated failure, the channel is closed.
Create success event: The channel is ready to send and receive data.
Send/Receive state: The dynamic channel is ready to send and process incoming data. See below for detailed data processing state diagram.
Channel close event: Close the channel because either the client or the server have sent Closing a DVC packet, as described in section 2.2.4.
Static channel disconnected event: This event signifies that the connection between the client and the server is broken and, at this point, the protocol terminates.
The following diagram illustrates data processing while a channel is in the Send/Receive state.

Figure 8: Data processing while a channel is in Send/Receive state
There are basically two substates:
Multi fragment state: This state starts with DYNVC_DATA_FIRST packet and then multiple DYNVC_DATA packets until the amount of data received is equal to the Length field of this packet.
Single fragment: Only a single DYNVC_DATA packet is received.
These reassembly rules are described in more detail in section 3.1.5.2.3.