4.2 General Push Distribution Sequence with $F Packets

The following sequence occurs between a client and a server during a push distribution.

  1. The client sends a PushSetup request.

  2. If the server requires the client to be authenticated, the server and client exchange access authentication HTTP headers as specified in [RFC2616] section 11.

    Note The HTTP exchanges required for authentication are defined by the selected authentication scheme.

  3. If authentication is not required, or if authentication has succeeded, the server responds with a "204 No Content" HTTP response.

  4. The client sends a PushStart request, followed by an $H packet and $D packets.

  5. The client sends $F filler packets to ensure that the total length of the message body equals the size specified by the client in the Content-Length header.

  6. When the client has sent the amount of data allowed in the PushStart request, the server responds with a "204 No Content" HTTP response. The client then sends a new PushStart request, followed by more $D packets.

  7. The client sends $F filler packets to ensure that the total length of the message body equals the size specified by the client in the Content-Length header.

  8. When the client has sent the amount of data allowed in the PushStart request, the server responds with a "204 No Content" HTTP response. The client then sends a new PushStart request, followed by more $D packets.

  9. 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. The server then closes the connection on receiving the $E(0x00000000) packet.

  10. The client closes the TCP connection to the server. This action also ends the streaming session.

The following figure shows a message sequence with three PushStart requests. If it is possible for the client to determine that a proxy HTTP server is used when connected to the server, then the client sends Multiple PushStart requests (as specified in section 3.1.4.2.1). Windows clients send a single PushStart request when HTTP proxy servers are not used.

General push distribution sequence with $F packets and multiple PushStart requests

Figure 2: General push distribution sequence with $F packets and multiple PushStart requests