3.6.1 Abstract Data Model
This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.
Table of Contents: A table where each row represents a byte range of the URL contents, and the data required to download the range from either the origin server or a Background Intelligent Transfer Service (BITS) Peer-Caching: Content Retrieval Protocol. [MS-BPCR] peer server. The table contains following columns:
Source: Host name or IP Address of a peer server from the BITS Peer-Caching: Content Retrieval Protocol, or the address of the origin server.
Record-ID: A string containing the ID of the cached record from the BITS Peer-Caching: Content Retrieval Protocol.
Offset: The offset of the data fragment.
Length: The length of the data fragment.
BPCR_ALLOWED: A Boolean that is TRUE to allow retrieval of data using the BITS Peer-Caching: Content Retrieval Protocol [MS-BPCR], or FALSE to disallow.
PEER_RETRY_COUNT: An integer that holds the number of download retries from the peer network.
DESTINATION_URL: A string containing the URL to download.
APPLICATION_RANGES: An array of one or more byte ranges requested by the higher-layer protocol. The array SHOULD<28> be a single range encompassing the entire URL.
AUTH_CREDENTIALS: The authentication information passed by the higher-layer protocol. The format of this information MUST be the same as that defined by the authentication protocols.
DATA_BUFFER: A buffer to hold the downloaded data.
DATA_LENGTH: A 64-bit integer containing the length of the URL content.
DATA_TIMESTAMP: The last-modified time of the URL content.
FRAGMENT_OFFSET: A 64-bit integer that holds the number of bytes downloaded so far.
FRAGMENT_LENGTH: A 64-bit integer that contains the number of bytes in the current fragment.
SINGLE_RANGE_ONLY: A Boolean that is TRUE if the server does not support multi-range HTTP requests.
SUSPENDED: A Boolean that is TRUE if the download is suspended.
STATE: See section 3.6.1.1.