3.2.1 Abstract Data Model

The following state is maintained for the operation of the client:

  • Content information for the offered segment: This is composed of the segment HoHoDk, segment HoD, and a list of block hashes contained within the segment. The segment HoHoDk is used in an INITIAL_OFFER_MESSAGE (section 2.2.1.3) or BATCHED_OFFER_MESSAGE (section 2.2.1.5). The segment HoD and the list of block hashes are used in a SEGMENT_INFO_MESSAGE (section 2.2.1.4).

  • Outstanding request messages: A set of pending request messages whose timer has not yet expired. For the INITIAL_OFFER_MESSAGE, the HoHoDk that is used is stored along with the request. For the BATCHED_OFFER_MESSAGE, the HoHoDk list that is used is stored along with the request. This allows the client to send the corresponding segment HoD and block hashes in a subsequent SEGMENT_INFO_MESSAGE.

  • Cache: A cache of data blocks associated with the segment/blocks being offered. This cache includes a mapping between the block hashes/segment hashes and the actual data blocks themselves. These blocks can later be retrieved by the hosted cache using the Peer Content Caching and Retrieval: Retrieval Protocol (PCCRR) framework [MS-PCCRR].

  • Content tag: The content tag is provided by the higher layer when it initiates the sending of an INITIAL_OFFER_MESSAGE or a BATCHED OFFER_MESSAGE. It is sent in the BATCHED OFFER_MESSAGE and stored for use in the ContentTag field of a subsequent SEGMENT_INFO_MESSAGE in case that message is sent. The value of the content tag is determined by the implementation. Each higher-layer component SHOULD select a unique content tag and use it for all content offered.<8>

Note The preceding conceptual data can be implemented using a variety of techniques.