Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

3 Protocol Details

The Retrieval Protocol consists of four types of exchanges: the Negotiation request/response, the BlockList request/response, the Block request/response, and the SegmentList request/response. (See section 2 for message formats and field definitions.)

  • Protocol Version Negotiation: A client-role peer (referred to here simply as "client") initiates a protocol version negotiation with a server-role peer (referred to here simply as "server") by sending a Negotiation Request message (MSG_NEGO_REQ (section 2.2.4.1)), declaring the minimum and maximum protocol versions it supports. The server responds with a Negotiation Response message (MSG_NEGO_RESP (section 2.2.5.1)), declaring the minimum and maximum protocol versions it supports. Implementation of the client side of the protocol version negotiation is optional. The server side of the protocol version negotiation MUST be implemented.

  • BlockList request/response: A client initiates a GetBlockList request (MSG_GETBLKLIST (section 2.2.4.2)) to a server in order to query the list of content blocks available on the server for a given segment ID, and a list of block ranges within the segment, by sending a MSG_GETBLKLIST request. The server responds with a BlockList response (MSG_BLKLIST (section 2.2.5.2)) containing the list of block ranges for the specific segment ID that are within the ranges of the request. If the server does not support the client's protocol version, it treats the request as a Negotiation Request and responds accordingly (see section 3.2.5.1).

  • Blocks request/response: A client initiates a GetBlocks request (MSG_GETBLKS (section 2.2.4.3)) to a server to retrieve a specific block of a given segment, which is identified by the segment ID and the index of the block in the segment. It does this by sending a MSG_GETBLKS request. The server responds with the requested content blocks in a Block response (MSG_BLK (section 2.2.5.3)). If the server does not support the client's protocol version, it treats the request as a Negotiation Request, and responds accordingly (see section 3.2.5.1).

  • SegmentList request/response: SegmentList exchanges are restricted to Hosted Cache client/server interaction only. A SegmentList request MUST be sent only by a Hosted Cache Client and it MUST always be directed to a Hosted Cache Server. A client initiates a SegmentList request (MSG_GETSEGLIST (section 2.2.4.4)) to a server in order to query the availability on the server of an array of segments, each of them identified by its segment ID. The server responds with a SegmentList response (MSG_SEGLIST (section 2.2.5.4)) containing the list of segment ranges for the specific segment IDs that are within the requested array. The indexes specified in the ranges are the indexes of segments in an array of Segment IDs in the originating MSG_GETSEGLIST request. If the server does not support the client's protocol version, it treats the request as a Negotiation Request and responds accordingly (see section 3.2.5.1).

The Peer Content Caching and Retrieval Framework (also referred to as simply "the framework") then uses the Retrieval Protocol to retrieve and assemble complete segments of a content from a combination of sources, including either a set of server peers or a hosted cache, plus the original content server if the former does not have the complete content.

 
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.