4.4 General Push Distribution Sequence with $C Packet
The following sequence occurs between a client and a server during a push distribution:
The client sends a PushSetup request.
If the server requires the client to be authenticated, the server and client perform HTTP access authentication as specified in [RFC2616] section 11.
Note The HTTP exchanges required for authentication are defined by the selected authentication scheme.
If authentication is not required, or if authentication has succeeded, the server responds with a "204 No Content" HTTP response.
After all $D packets have been sent to the server, the client sends an $E packet with the Reason field set to 0x00000001 to indicate that the data transfer has been completed.
The $C packet is sent to the server to indicate the encoder switched to the next entry in a playlist or otherwise made a change to the ASF file header.
After the $C packet is sent, the client sends the $D packets for the next entry.
After all $D packets have been sent to the server, the client sends an $E packet with the Reason field set to 0x00000000 to indicate that the data transfer has been completed and closes the connection. Due to the reliable nature of TCP, the client expects that any data that is sent to the server is received.
The following figure shows the sequence described in this example.
Figure 4: General push distribution sequence with $C packet