2.1.1.2 BITS Integration

In the context of Content Caching and Retrieval, Background Intelligent Transfer Service (BITS) is a client of the HTTP service. The figure in this section shows the hosted cache configuration, but the distributed cache configuration is equally valid and would be the same as the figure in section "HTTP Metadata Retrieval" that shows HTTP metadata retrieval integration, except that here the web browser is replaced by a BITS client.

The sequence of messages for a BITS request with Content Caching and Retrieval are in fact HTTP requests. The main difference is that the BITS client makes extensive use of HTTP range requests (see [RFC2616] section 3.12) because BITS is mainly used for file transfer and can be subject to interruption, pause, and continuation actions. The higher-layer protocol provides BITS with the desired ranges of the server URL. BITS then issues single-range or multi-range HTTP requests that represent a subset of the requested ranges.

BITS integration

Figure 3: BITS integration

The following sequence shows the steps for a hosted cache configuration:

  1. The client application opens a URL.

  2. BITS, on the client side, adds a PeerDist header to the outgoing HTTP requests.

  3. The web server performs any required access checks. If hashes are available, they are returned to the client.

  4. If hashes are not available, a response is returned immediately to the client.

  5. If the requested data and the hashes are available, the data is placed in the distributed cache.

  6. Metadata, in the form of hash lists, is generated, making the metadata available for any subsequent requests on the same data.

  7. Any subsequent request for the same data that is identified by the URL returns metadata.

  8. Metadata (hash list) is returned to the content client by using the Peer Content Caching and Retrieval Hypertext Transfer Protocol (HTTP) Extensions, as described in [MS-PCCRTP].

  9. BITS receives a response that consists of a hash list. The hash list is passed to the BranchCache Service to look up the data.

  10. For unsuccessful local cache lookups (missing block), a direct request for the data from the hosted cache is made using the Peer Content Caching and Retrieval: Retrieval Protocol, as described in [MS-PCCRR].

  11. If BITS does not receive the associated data because the original content is unavailable, it returns a suitable (HTTP) error to the application. If the original data is available, it is obtained from the content server.

  12. The requested data is returned to the requesting content client.

Note Before the introduction of the Content Caching and Retrieval protocols, BITS clients used the Background Intelligent Transfer Service (BITS) Peer-Caching: Peer Discovery Protocol, as described in [MS-BPDP], for discovery and the Background Intelligent Transfer Service (BITS) Peer-Caching: Content Retrieval Protocol, as described in [MS-BPCR], for retrieval.<3> The Background Intelligent Transfer Service (BITS) Peer-Caching: Peer Discovery and Background Intelligent Transfer Service (BITS) Peer-Caching: Content Retrieval protocols cannot coexist with the Content Caching and Retrieval protocols.