[cifs-protocol] [REG:111061070310825] RE: [MS-PCCRC]: Handling of multi-range Range: headers is undefined.

Obaid Farooqi obaidf at microsoft.com
Tue Jun 21 17:42:51 MDT 2011

Hi Chris:
We have finished our investigation on your question regarding the response to a multi-range request.

I discussed the issue with product group and here is what they think is the proper answer. 

"The BranchCache content information format does not support multi-range requests therefore PeerDist 1.0 capable servers cannot send PeerDist Content Information in response to a request for multiple ranges."

MS-PCCRTP will be modified along the lines of the above statement and I'll let you know when the exact verbiage is available.

Please let me know if it answers your question. If it does, I'll consider this issue resolved.

Obaid Farooqi
Escalation Engineer | Microsoft

Exceeding your expectations is my highest priority.  If you would like to provide feedback on your case you may contact my manager at allisong at microsoft.com

-----Original Message-----
From: ubiqx Consulting, Inc. [mailto:team at ubiqx.com] 
Sent: Friday, June 10, 2011 1:28 PM
To: Interoperability Documentation Help
Cc: cifs-protocol at samba.org
Subject: [MS-PCCRC]: Handling of multi-range Range: headers is undefined.

RFC 2616 defines the format for the Range: header in such a way as to allow multiple ranges to be specified in a single header line.  An example given in [RFC2616, section 14.35.1] is as follows:

  - The first and last bytes only (bytes 0 and 9999):  bytes=0-0,-1

When I send a multiple byte range request, such as the following, to an IIS server running on Windows 2008R2 with BranchCache PeerDist enabled, I do not receive a PeerDist response (even though I know that the PeerDist Content Information has been calculated).

  Range: bytes=1024-66559,-67890

Instead, I receive a (perfectly legal) standard multipart response.

There really is nothing wrong with the response.  The server has the option of choosing not to send a PeerDist-encoded response.  However, [MS-PCCRC] and [MS-PCCRTP] do not provide any guidance on the following topics:

 * Are multi-range requests supported at all by PeerDist 1.0?

 * If not, "SHOULD" the server simply ignore the "peerdist" option in the
   Accept_Encoding header?

 * If multi-range requests are supported, how should the multiple PeerDist
   Content Information blocks be presented to the client?

I imagine one of two answers.  Either:
* PeerDist 1.0 capable servers MUST NOT send PeerDist Content
  Information in response to a request for multiple ranges,
* The HTTP1.1 response should be multipart (multipart/byteranges?) and
  each PeerDist range should be contained within a boundary.

I suppose that the answer will depend upon what the current Windows clients can accept.

Please let me know how PeerDist 1.0 MUST/SHOULD/MAY handle multi-range requests.


Chris -)-----

http://www.ubiqx.com/               Data Storage and Systems Consulting

More information about the cifs-protocol mailing list