Re: [alto] ALTO and Content Delivery Networks

Nicholas Weaver <nweaver@ICSI.Berkeley.EDU> Fri, 04 June 2010 16:45 UTC

Return-Path: <nweaver@ICSI.Berkeley.EDU>
X-Original-To: alto@core3.amsl.com
Delivered-To: alto@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 037393A6876 for <alto@core3.amsl.com>; Fri, 4 Jun 2010 09:45:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.535
X-Spam-Level:
X-Spam-Status: No, score=-3.535 tagged_above=-999 required=5 tests=[AWL=0.464, BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E32MT2Ytkpq9 for <alto@core3.amsl.com>; Fri, 4 Jun 2010 09:45:00 -0700 (PDT)
Received: from fruitcake.ICSI.Berkeley.EDU (fruitcake.ICSI.Berkeley.EDU [192.150.186.11]) by core3.amsl.com (Postfix) with ESMTP id 318343A67D4 for <alto@ietf.org>; Fri, 4 Jun 2010 09:45:00 -0700 (PDT)
Received: from [IPv6:::1] (jack.ICSI.Berkeley.EDU [192.150.186.73]) by fruitcake.ICSI.Berkeley.EDU (8.12.11.20060614/8.12.11) with ESMTP id o54Gik9T021142; Fri, 4 Jun 2010 09:44:46 -0700 (PDT)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset="us-ascii"
From: Nicholas Weaver <nweaver@ICSI.Berkeley.EDU>
In-Reply-To: <C82E733B.201B3%rpenno@juniper.net>
Date: Fri, 04 Jun 2010 09:44:46 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <6BE25182-5321-4439-8B73-F4B9F374CE4B@icsi.berkeley.edu>
References: <C82E733B.201B3%rpenno@juniper.net>
To: Reinaldo Penno <rpenno@juniper.net>
X-Mailer: Apple Mail (2.1078)
Cc: Nicholas Weaver <nweaver@ICSI.Berkeley.EDU>, "alto@ietf.org" <alto@ietf.org>
Subject: Re: [alto] ALTO and Content Delivery Networks
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <alto.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/alto>
List-Post: <mailto:alto@ietf.org>
List-Help: <mailto:alto-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Jun 2010 16:45:04 -0000

Unforutately on the use-case, 302 redirections are often regarded as significantly inferior to DNS-based redirection for CDNs...

HTTP redirections add latency, but thats not the big problem.


The big problem with a 302 or similar HTTP redirection is HTTP redirection to a different IP will require a different hostname.  

Thus for top level pages, user-visible URLs would become something like a235.www.mydomain.com, rather than www.mydomain.com, which pollutes bookmarks and reduces user experience.


Yet for the "invisible" items within a page (eg, images loaded from img.mydomain.com), which actually compose the bulk of the items and latency, there is no redirection mechanism that says "all items from host img.mydomain.com should be instead fetched from a251.img.mydomain.com".  

Thus instead this would require that the HTTP server dynamically rewrite all references to img.mydomain.com to be a251.img.mydomain.com, because redirecting individual components will eliminate the latency gains which most CDNs are concerned with.  (100ms better latency to the web server can easily translate to 1s or more improvements in page-load time since most browsers do NOT pipeline HTTP requests, making the process of fetching many small images a latency, not bandwidth limited, activity).


Thus in either case, having the ALTO service be queried for HTTP redirection is probably not a happy solution for CDN applications where latency is a concern, not because of ALTO's limitations but because of the limitations of HTTP's redirection semantics and/or the need to do page rewriting.  

To do the latency-centric CDN-type redirections cleanly in HTTP REQUIRES one of two NEW redirection semantics for HTTP (and therefore corresponding support in ALL browsers):

1)  "For current HOST, contact system Y", basically overriding the DNS lookup

2)  "For URL prefix X, rewrite the prefix as Y", basically providing a custom rewrite rule to the browser.



Rather, what would be better is a mapping from DNS IP (or EDNS-client-subnet if/when that gets deployed by 3rd party resolvers) -> probable host PID.  Thus rather than the HTTP server querying ALTO, it is the DNS authority servers for a domain that need to use ALTO, and therefore also need some rough mapping from DNS IP address to client IP region within ALTO.

This would also allow the easy use of the mechanism to any OTHER latency sensitive application, eg, choice of VPN tunnel endpoint, etc.


Yes, Paul Vixie and some others in the DNS community would SERIOUSLY object, but as this is effectively established practice already (its how almost all major CDN's operate), if ALTO is to be useful to new CDN-type systems, it should integrate into the mechanisms that CDNs actually are able to use.





On Jun 4, 2010, at 9:09 AM, Reinaldo Penno wrote:

> We posted a new Internet Draft on ALTO and CDNs
> 
> http://www.ietf.org/id/draft-penno-alto-cdn-00.txt
> 
> Regards,
> 
> Reinaldo
> 
> _______________________________________________
> alto mailing list
> alto@ietf.org
> https://www.ietf.org/mailman/listinfo/alto