3.2.1 Abstract Data Model

The Retrieval Protocol server maintains the following data.

Content Cache: This is the local content cache on the server. It consists of a list of segment IDs and associated block ranges, along with their Content Information (see [MS-PCCRC] section 2.3) and corresponding content blocks that the client or server has previously obtained either from other peers or from the content server. The server replies to client queries with the information and content blocks stored in its content cache; the client retrieves the content from the server using the Core Retrieval Protocol.

Active Client Count: This counter keeps the number of active clients the server is currently serving. The counter is incremented by 1 when the server receives a request (GetBlockList (MSG_GETBLKLIST (section 2.2.4.2)) or GetBlocks (MSG_GETBLKS (section 2.2.4.3))), and is decremented by 1 when the server sends back a response or discards the request. This counter is used to limit the number of concurrent clients for a server to a maximum value. The default maximum threshold SHOULD be set to 64<12><13>, and it MUST be configurable based on the processing capability of the server. If this counter reaches the threshold, the server will send back an empty response (empty block range in BlockList (MSG_BLKLIST (section 2.2.5.2)) or empty block in Block (MSG_BLK (section 2.2.5.3))) to the client.