4.3 BITS and Peer-caching Interactions: Second Download

The following sequence diagram illustrates a download of a different URL from the same client as in the example in section 4.1, occurring less than 10 minutes after the sequence of that example. Thus, in this scenario:

  • Only a single peer server is online in the subnet; it is a member of the same Windows domain as the client.

  • The peer server and the client have recently exchanged public keys.

  • The Discovery Suppression Timer of the BPDP client role of the client computer is started.

Sequence diagram for a subsequent URL download

Figure 6: Sequence diagram for a subsequent URL download

  1. The BITS Upload Protocol client proceeds to STATE_SIZE, and sends a HEAD request to the origin server.

  2. Server replies with HEAD response containing the timestamp and length of the URL.

  3. The BITS Upload Protocol client proceeds to SEARCH, and issues a search request to BPCR.

  4. BPCR client creates a new FileSearchRequest element in INIT state. The FileSearchRequest element proceeds to CHOOSE_SERVER.

  5. The client chooses the single known peer server, proceeds to state SEND_REQUEST, and sends the discovery-request message to the peer server. The FileSearchRequest element proceeds to state CHOOSE_SERVER. Because the list of peer servers is exhausted, it proceeds to DISCOVER_SERVERS then to state WAIT. Because the BPDP client’s Discovery Suppression timer is still active, the FileSearchRequest element completes immediately without finding any new peer servers.

  6. The peer server sends a discovery-response message with status "Success" and the details of the content record.

  7. The client FileDiscoveryAttempt element completes with result RESULT_FOUND (see section 3.1.5.1) and section 3.1.7.3.1). The content record is returned to the BITS Upload Protocol. The FileDiscoveryAttempt element is removed from the PENDING_CALLS_TABLE element, and the search is complete. The BITS Upload Protocol client state is updated to DOWNLOAD, as described in [MC-BUP] section 3.6.7.1.

  8. BITS Upload Protocol client proceeds to state DOWNLOAD. Because the content was found via BPCR, the client downloads the content using one or more BPCR download requests.

  9. For each download request, the BPCR client sends a Download-Request message.

  10. The server replies with a Download-Response message.

  11. The downloaded data is delivered to the BITS Upload Protocol client.

  12. After the content is fully downloaded, the BITS Upload Protocol client sends the content to the application.

  13. The application adds the content to the BPCR server cache.