Re: A mechanism to encode HTTP version information in DNS

"Adrien W. de Croy" <adrien@qbik.com> Sat, 16 February 2013 06:36 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DF99521F86A2 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 15 Feb 2013 22:36:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.265
X-Spam-Level:
X-Spam-Status: No, score=-10.265 tagged_above=-999 required=5 tests=[AWL=0.334, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4FBstYGz5nQQ for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 15 Feb 2013 22:36:59 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id F232F21F869C for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 15 Feb 2013 22:36:58 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1U6bMP-0005Yh-1m for ietf-http-wg-dist@listhub.w3.org; Sat, 16 Feb 2013 06:34:57 +0000
Resent-Date: Sat, 16 Feb 2013 06:34:57 +0000
Resent-Message-Id: <E1U6bMP-0005Yh-1m@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <adrien@qbik.com>) id 1U6bMC-0005XX-D3 for ietf-http-wg@listhub.w3.org; Sat, 16 Feb 2013 06:34:44 +0000
Received: from smtp.qbik.com ([210.55.214.35]) by lisa.w3.org with esmtp (Exim 4.72) (envelope-from <adrien@qbik.com>) id 1U6bMA-0002OZ-P6 for ietf-http-wg@w3.org; Sat, 16 Feb 2013 06:34:44 +0000
Received: From [192.168.0.10] (unverified [192.168.0.10]) by SMTP Server [192.168.0.1] (WinGate SMTP Receiver v7.5.0 (Build 3491)) with SMTP id <0019513147@smtp.qbik.com>; Sat, 16 Feb 2013 19:36:19 +1300
From: "Adrien W. de Croy" <adrien@qbik.com>
To: "Amos Jeffries" <squid3@treenet.co.nz>
Cc: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Date: Sat, 16 Feb 2013 06:34:17 +0000
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; format=flowed; charset=utf-8
In-Reply-To: <511EECC2.1060408@treenet.co.nz>
Message-Id: <emf8b808aa-ca12-421d-a7e8-f60def882fd5@bombed>
Mime-Version: 1.0
Reply-To: "Adrien W. de Croy" <adrien@qbik.com>
User-Agent: eM_Client/5.0.17263.0
Received-SPF: pass client-ip=210.55.214.35; envelope-from=adrien@qbik.com; helo=smtp.qbik.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-3.449, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1U6bMA-0002OZ-P6 726d18180b7c33208460e9f942ab6c3c
X-Original-To: ietf-http-wg@w3.org
Subject: Re: A mechanism to encode HTTP version information in DNS
Archived-At: <http://www.w3.org/mid/emf8b808aa-ca12-421d-a7e8-f60def882fd5@bombed>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/16617
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

------ Original Message ------
From: "Amos Jeffries" <squid3@treenet.co.nz>
To: "Adrien W. de Croy" <adrien@qbik.com>
Cc: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Sent: 16/02/2013 3:19:46 p.m.
Subject: Re: A mechanism to encode HTTP version information in DNS
>On 15/02/2013 9:05 p.m., Adrien W. de Croy wrote:
>>
>>Are you talking about DNS labels?
>I was yes. Does this include the URL string label?

if you mean the URI RR data field (as per draft-faltstrom-uri), it can 
be quite long, being defined as a sequence of one or more 
<character-string> which are (byte) length-prefixed strings, but which 
can be concatenated.

It would more likely run into limitations on max datagram size.  I think 
implementations are supposed to handle at least 576 bytes, but to go 
bigger is a DNS extension, and I don't know how well supported it is. 
Otherwise you fail over to DNS over TCP, which I think would be 
problematic in our case due to added RTs / latency.

in DNS, a label refers to a part of a name (e.g. FQDN is a sequence of 
labels separated by dots), so "URL string label" is a bit confusing.

If you're referring to the authority part of a URI, being a domain name, 
it is subject to the limitations of DNS.

>>
>>DNS label max length is 63 (6 bits) only, due to overloading of offset 
>>pointer with label length.
>>
>>overall domain name max length is 255, although this is I guess 
>>relatively arbitrary, it's possible to code a longer name on a DNS 
>>packet, but not a longer label.
>>
>
>So the big question: is the URL string field a label? or do we catenate 
>it from multiple labels?
>
>Amos
>
>
>>
>>
>>------ Original Message ------
>>From: "Amos Jeffries" <squid3@treenet.co.nz>
>>To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
>>Sent: 15/02/2013 6:46:52 p.m.
>>Subject: Re: A mechanism to encode HTTP version information in DNS
>>>On 15/02/2013 9:16 a.m., Phillip Hallam-Baker wrote:
>>>>Encoding HTTP version information in DNS is easy if you don't 
>>>>particularly care about using DNS properly or want to do anything 
>>>>more than encode HTTP version information.
>>>>
>>>>Doing it well gets rather more complex. A DNS query costs a round 
>>>>trip so you would ideally like to make it pay. Also the process of 
>>>>deploying DNS records takes some time and it is better to reuse an 
>>>>existing record but only if that will not create ambiguity.
>>>>
>>>>Looking again at the URI record, I think that we could use it to 
>>>>provide a HTTP version flag and other useful features in the DNS. In 
>>>>particular we can use the URI record to effect a HTTP redirect in 
>>>>DNS (a UDP round trip) rather than require a TCP round trip. It also 
>>>>provides for fault tolerance and load balancing and works well with 
>>>>Web Services.
>>>
>>>One small note on this assertion:
>>>   FQDN are capable of being anything up to 256 octets long 
>>>*per-label*. When the FQDN is greater than 250 octets or so this will 
>>>add both a UDP round trip plus a TCP round trip, on top of the final 
>>>connection setup round trip. This may not seem a critical point, but 
>>>we are already encountering web sites and services with >64 octet 
>>>FQDN in public traffic which is causing TLS certificate issues.
>>>
>>>
>>>That asside, I am liking this proposal better than any of the earlier 
>>>DNS proposals. I can forsee support from Squid being implemented if 
>>>this is selected to go ahead.
>>>
>>>Amos
>>>
>>>
>>
>
>