Re: [vwrap] VWRAP and IPv6

Richard Barnes <rbarnes@bbn.com> Thu, 20 May 2010 15:19 UTC

Return-Path: <rbarnes@bbn.com>
X-Original-To: vwrap@core3.amsl.com
Delivered-To: vwrap@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A20AD3A697B for <vwrap@core3.amsl.com>; Thu, 20 May 2010 08:19:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.53
X-Spam-Level:
X-Spam-Status: No, score=-0.53 tagged_above=-999 required=5 tests=[AWL=-0.531, BAYES_50=0.001]
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 HNmTA1r-wS3R for <vwrap@core3.amsl.com>; Thu, 20 May 2010 08:19:56 -0700 (PDT)
Received: from smtp.bbn.com (smtp.bbn.com [128.33.0.80]) by core3.amsl.com (Postfix) with ESMTP id 927123A6864 for <vwrap@ietf.org>; Thu, 20 May 2010 08:19:56 -0700 (PDT)
Received: from [128.89.255.32] (port=57728 helo=[192.168.1.46]) by smtp.bbn.com with esmtp (Exim 4.71 (FreeBSD)) (envelope-from <rbarnes@bbn.com>) id 1OF7XG-0009uL-4j; Thu, 20 May 2010 11:19:49 -0400
Message-Id: <18CBEFBB-3356-4CD0-BBFF-266672322621@bbn.com>
From: Richard Barnes <rbarnes@bbn.com>
To: Morgaine <morgaine.dinova@googlemail.com>
In-Reply-To: <AANLkTikqBQPp-o_u58tas669x55n7bZ1R3oXSoaG2q3Z@mail.gmail.com>
Content-Type: text/plain; charset=WINDOWS-1252; format=flowed; delsp=yes
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Apple Message framework v936)
Date: Thu, 20 May 2010 11:19:44 -0400
References: <AANLkTik75YvP5y_F68_TxXbPBaN1fnYcXk5JPkfM5uRE@mail.gmail.com> <BCEC4B1A-A007-442C-A434-91EE3D0BB052@bbn.com> <OFC2E23B0D.5B99CD05-ON85257726.0050CDA0-85257726.00518F0E@us.ibm.com> <AANLkTikINIWeYP9pqIeTtNzfD5wrf07ADkCwkNcVQZk4@mail.gmail.com> <A32EAB16-62A5-4307-A320-0187955BFA51@bbn.com> <AANLkTimY7viwIMzFIIX_-OzZjA-jHsiK35EF4OpdnAxW@mail.gmail.com> <632C4898-F7DD-4B76-AAFB-D675346E2521@gmail.com> <AANLkTik42H1xhnr_yljo06-4thbaT3GcLBDabzoj2c2t@mail.gmail.com> <B2E410EF-1AD1-45E6-88A3-BE18FCC1571F@bbn.com> <AANLkTikqBQPp-o_u58tas669x55n7bZ1R3oXSoaG2q3Z@mail.gmail.com>
X-Mailer: Apple Mail (2.936)
Cc: vwrap@ietf.org
Subject: Re: [vwrap] VWRAP and IPv6
X-BeenThere: vwrap@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual World Region Agent Protocol - IETF working group <vwrap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/vwrap>, <mailto:vwrap-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/vwrap>
List-Post: <mailto:vwrap@ietf.org>
List-Help: <mailto:vwrap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/vwrap>, <mailto:vwrap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 20 May 2010 15:19:59 -0000

I'm losing interest in this debate, and I think we've all said our  
piece, so I'll just close with a reference to the venerable RFC 1958,  
"Architectural Principles of the Internet":
"
    In general, user applications should use names rather than  
addresses.
"
(taken from a nice presentation that Dave Thaler gave on how  
pathological IP addresses can be:)
<http://www.ietf.org/proceedings/73/slides/plenaryw-1.pdf>

Feel free to use IPv6 addresses in the application layer if you want,  
but be aware that there be dragons.

--Richard


On May 20, 2010, at 10:46 AM, Morgaine wrote:

> Abstracting over addresses is fine, Richard, but after you've dealt  
> with the abstractions you typically end up with addresses, and  
> that's what protocols work with from then on.
>
> The textual abstractions are only there for human comfort, ease of  
> configuration, and great flexibility of indirection, but  
> abstractions are just means to an end.  After the address  
> abstractions are de-abstracted, protocols work with the much more  
> efficient binary representations.  That's practically universal.
>
> It's easy to give a practical example of such operation.  For  
> example, consider a design in which all VW objects have two parts,  
> an in-world object (IWO) and an in-client object (ICO), where the  
> ICO is replicated in each client.  Let both parts be active, ie.  
> both sides can be event generators.  It's easy for ICOs to address  
> update events to their IWO because there is only one IWO, and access  
> could be optimized to network level after the de-abstraction step  
> for efficiency.  But what about updates in the reverse direction,  
> which is 1:N?
>
> In the typical IPv4 environment, the usual approach would be a  
> heavily indirected one, with updates travelling through layer upon  
> layer of middleware before reaching their target ICO.  In an IPv6  
> environment in which each ICO can have its own IPv6 address, there  
> need be no middleware at all between the host kernel and the target  
> object.  The resulting increase in efficiency by orders of magnitude  
> can have major ramifications on the operation of your world and of  
> your clients.
>
> And the cost of this massive leap in efficiency?  Merely to inform  
> the IWO of the ICO's dynamic IPv6 network address, which borders on  
> the trivial.
>
> One of my main interests is VW scalability, both of worlds and of  
> clients, and such efficiency gains are truly important.  Scaling VW  
> complexity and rendering of crowds or of highly detailed  
> visualizations requires some lateral thinking and more powerful  
> networking paradigms than we have been used to until now.  IPv6  
> offers some interesting solutions in that direction, and they will  
> be used.
>
>
> Morgaine.
>
>
>
>
>
> ==================================
>
> On Thu, May 20, 2010 at 2:43 PM, Richard Barnes <rbarnes@bbn.com>  
> wrote:
> As an aside, there's nothing that says that subscribers have to be  
> allocated a /64.  Some proposed addressing schemes that are more  
> conservative (in the Asia/Pacific region IIRC) actually assign much  
> longer prefixes (smaller address blocks) to customers.
>
> Fine-grained addressability is not the same as fine-grained  
> allocation of *IP* addresses. Think of it this way: HTTP has very  
> fine-grained addressability, with individual identifier/locators for  
> pages, images, scripts, etc.  It's able to accomplish this not by  
> assigning an IPv6 address to every object, but by using an  
> application-layer identifier/locator -- namely a URL.
>
> Not using IPv6 addresses in applications is not painting oneself  
> into an IPv4 corner, it's good protocol design following the  
> layering model of the Internet.  (If we're using IPv4 addresses for  
> identifiers, we shouldn't be doing that either!)  Abstracting over  
> IP addresses is about freeing the application from having to worry  
> about whether its IPv4 or IPv6 or IPv10 or X.25 or whatever else at  
> the network layer.
>
> --Richard
>
>
>
>
> On May 20, 2010, at 9:23 AM, Morgaine wrote:
>
> On Thu, May 20, 2010 at 10:59 AM, Han Sontse  
> <han.sontse.sl@gmail.com> wrote:
> I recognize that it is temping to take advantage of the huge address  
> space that IPv6 offers but my test engineer instincts tell me it is  
> unwise to do so.
>
>
> I too am an engineer, but solid engineering instincts do not tell us  
> to use only those facilities whose numbers or sizes can be tested  
> exhaustively.  If it were so, we would not have multi-terabyte disk  
> drives today.
>
> The /64 minimum routable subnet of IPv6 address space was not  
> designed as it was because people were expected to need 2^64 NIC  
> cards in their PCs.  This immense per-user address block was created  
> because IPv6 designers could see beyond IPv4's use of addresses for  
> host interface identification, and were visionary enough to realize  
> that all objects could benefit from network addressability.  This  
> also happens to be one of the key messages of REST.  Addressability  
> is extremely important, the finer the better, not only on the Web,  
> and not only with URIs.
>
> With IPv6 just around the corner, I foresee such addressability at  
> fine levels of granularity appearing in VWs relatively soon.  IPv4  
> worlds will have to emulate what IPv6 worlds achieve natively, and  
> that is the right way around.  When legacy design restricts  
> progress, the only thing it achieves is rapid obsolescence.
>
> I would prefer VWRAP not to be painting itself into an IPv4 corner  
> of obsolescence before it's even released, which is why I'm raising  
> this topic --- it's intended as a heads-up for the group.
>
> Since the rise of VWs and IPv6 take-up are going to occur  
> concurrently, I think the next few years are going to be very  
> interesting on the VW networking front.  My recommendation is to  
> observe carefully what happens, and not to make any rash decisions  
> based on legacy ideas that could cut off your future.
>
>
> Morgaine.
>
>
>
>
>
> ===================================
>
> On Thu, May 20, 2010 at 10:59 AM, Han Sontse  
> <han.sontse.sl@gmail.com> wrote:
> It's a bad idea to use IP addresses for anything other than  
> addressing a machine level interface.  Using them to interface  
> objects at or above the application level is asking for trouble.    
> UUIDs are UUIDs... IP addresses are IP addresses.   The two should  
> not be mixed.   I recognize that it is temping to take advantage of  
> the huge address space that IPv6 offers but my test engineer  
> instincts tell me it is unwise to do so.
>
> Han.
>
> On May 20, 2010, at 2:50 AM, Morgaine wrote:
>
> A /64 is the smallest routable IPv6 subnet, hence there is no extra  
> routing overhead for the 2^(128-64) addresses in the basic block  
> that every user will have allocated.
>
> Needless to say, there won't be anything like 2^64 objects in your  
> scenegraph, so if you use your IPv6 address space to address every  
> scenegraph object that you have instantiated client-side, you will  
> still have an extremely sparsely used /64 block.  You'll be keeping  
> track of which addresses you have assigned dynamically of course.  
> (An address space of this size is not linearly scannable in  
> realistic time.)
>
> In principle this is no different to using UUIDs --- your IPv6 micro- 
> servers will have unguessable IPv6 addresses within your /64 block,  
> and it'll be up to you to tell other participants in the protocol  
> (for example server-side objects) with which of your IPv6 micro- 
> servers they are to communicate.  This is why an ADT that is  
> supportive of IPv6 operation needs to be able to carry such data  
> efficiently --- the UUID is no longer the only 128-bit datum of  
> interest.
>
> Of course your entire /64 block is routed as one, since there are no  
> smaller routable subnets in IPv6, and therefore your objections  
> about routing non-scalability do not apply.
>
>
> Morgaine.
>
>
>
>
> =====================================
>
> On Wed, May 19, 2010 at 10:56 PM, Richard Barnes <rbarnes@bbn.com>  
> wrote:
> The impact of IPv6 on VWs should be far less than you imagine, I  
> think. :)
>
> It has often been said that many, many things will be assigned IPv6  
> addresses.  There will certainly be enough to go around, but that  
> doesn't make them good application-layer identifiers.  If you want  
> to use IP addresses with IP, they have to route, and that means that  
> they have to be either (1) topologically assigned, or (2) overlay  
> routed, e.g., with mobile IP.  So if you want to use an IP address  
> to address something, you're going to have to either change that  
> address when the thing gets connected differently, or you'll need  
> some overlay routing scheme to route to a persistent address.  (And  
> if you're not going to use the address with IP, then why would you  
> use an IP address?)
>
> VWRAP, as an application layer protocol, has a choice about what  
> identifiers to use for things and how to use those identifiers.   
> ISTM that using IP addresses (again, of either type) remains a bad  
> idea, compared with something that is decoupled from the routing  
> layer.
>
> As far as the DNS, I'm not sure what your point is:
> (i) DNS caching has been around for decades
> (ii) DNS names can already refer to multiple addresses
> (iii) Depends on implementation.  Maybe there's some application- 
> layer way to resolve names.  E.g., SIP endpoints don't need to have  
> DNS records because the INVITE transaction maps from SIP URIs to IP  
> addresses.
> (iv) From RFC 4291: "IPv6 addresses are 128-bit identifiers for  
> interfaces and sets of
> interfaces"
> (v) Seems like there's a use case lurking, hard to address without  
> details.  But you're probably still at the application layer.  For  
> instance, if you were telling your peer to send you an HTTP request,  
> you would send an HTTP URI, which can already handle IPv6 addresses.
>
> --Richard
>
>
>
> On May 19, 2010, at 9:35 AM, Morgaine wrote:
>
> The impact of IPv6 on VWs is going to be far greater than you  
> imagine, I believe.  As things stand, VWRAP is being designed around  
> the features and limitations of IPv4 networking.  It will of course  
> be able to ride on top of IPv6 as a transport, but unable to benefit  
> from its improved feature set, unless we provide the means to do so.
>
> The question "Why is there ever a need to carry an IP address in  
> this application-layer protocol, as opposed to, say, a DNS name or a  
> URI?" suggests an IPv4 mindset, because in IPv6 it has a variety of  
> possible answers:  (i) When the DNS lookup has already been done and  
> does not need to be done again, (ii) When a FQDN maps to multiple  
> addresses, but you want to refer to a specific one, (iii) When an  
> IPv6 address does not have an external address record, (iv) When the  
> host is already known and the IP address denotes something other  
> than a physical NIC interface, or (v) When listeners are allocated  
> locally and dynamically for the current session only, and their IP  
> addresses need to be communicated to a peer --- this will be an  
> extremely common use case with IPv6.
>
> In today's IPv4-based systems, it is normal for a user's machine to  
> have a single IP address, and for a client on that machine to talk  
> to a server that has a single customer-facing IP address too  
> (although it may also have others that are not public).  In IPv6- 
> based systems, this simple scenario is still possible but represents  
> only a special case among a new and vastly expanded set of IPv6 use  
> cases.
>
> The smallest allocatable block of IPv6 address space is a /64, so  
> 2^(128-64) IP addresses is the number that most normal IPv6 users  
> will have, although the much larger /48 blocks of 2^80 addresses are  
> commonly assigned to users as well.  With such IP riches client- 
> side, it is certain that they will be used for something, and the  
> obvious suggestion is to give every VW object an IPv6 address of its  
> own.
>
> Lest we forget, one of the most important properties of the REST  
> paradigm is addressability, but the benefits of high addressability  
> go far beyond the Web.  This is a property that will become  
> ubiquitous throughout networked computing with IPv6.  It's probably  
> no exaggeration to say that *everything* will be getting its own IP  
> address. :-)
>
> Faced with that future, it's a mistake to think in IPv4 terms and  
> consider IPv6 addresses as merely denoting a host which can be  
> obtained from its FQDN.  That's IPv4 thinking, and represents only a  
> very basic use case for IPv6.  In more extended use cases, IPv6  
> addresses will become much more like active local UUIDs than like  
> today's host IP addresses.  They will be used for inner-application  
> addressing, for example to make every object in an application an  
> addressable micro-server.
>
> VWRAP is being born into an IPv6 world, and it would be a mistake to  
> hardwire IPv4 thinking into its design.  We continually refer to the  
> need for extensibility and a desire to future-proof the protocol,  
> but lip service is not enough.  Adding IPv6 addresses to the  
> underlying ADT would provide a bare minimum level of thinking ahead  
> to support VWRAP implementations that embrace large numbers of  
> communicating objects.  (A generally extensible ADT would of course  
> achieve the same thing, and more.)
>
>
> Morgaine.
>
>
>
>
>
>
>
> ==============================================
>
> On Mon, May 17, 2010 at 3:50 PM, David W Levine <dwl@us.ibm.com>  
> wrote:
>
>
> vwrap-bounces@ietf.org wrote on 05/17/2010 10:08:26 AM:
>
> > [image removed]
> >
> > Re: [vwrap] VWRAP and IPv6
> >
> > Richard Barnes
> >
> > to:
> >
> > Morgaine
> >
> > 05/17/2010 10:09 AM
> >
> > Sent by:
> >
> > vwrap-bounces@ietf.org
> >
> > Cc:
> >
> > vwrap
> >
> > In the spirit of good layering, it seems like we should be talking
> > about avoiding direct reliance on IP addresses instead of how we can
> > accommodate different addresses in the protocol.  Why is there  
> ever a
> > need to carry an IP address in this application-layer protocol, as
> > opposed to, say, a DNS name or a URI?
> >
> > --Richard
> >
> +1
>
> We may from time to time have a IP address stuck in the form of a URI
> which has the dotted decimal form of an resource. The spec should make
> sure that form can be an IPV6 address, but that should be very  
> straight
> forward.
>
> There may be some IPV6 features which eventually impact us at the  
> protocol
> design level, but the entire VWRAP specification has been written in  
> terms of
> URIs and Capabilities, not in terms of low level IP addresses. It  
> would take an
> incredibly powerful argument to suggest that this should change.  
> Likewise, while
> IPV6 changes addressing at the bottom of the stack, it doesn't  
> appreciably change
> the cost of holding open sessions, of managing sockets and buffers  
> inside of
> clients (especially lightweight devices) Further while we can all  
> devoutly hope
> that IPV6 finally deploys broadly, making it a dependancy in the  
> near term feels
> rather like a roadblock to possible adoption.
>
> - David
> ~ Zha
>
>
>
> >
> > On May 14, 2010, at 7:32 AM, Morgaine wrote:
> >
> > > Despite exceedingly low takeup of IPv6 so far, it's coming, and in
> > > the context of IETF WG rates of progress, it is really  
> imminent.  Of
> > > special relevance to us is that IPv4 addresses are projected to  
> run
> > > out within roughly the same time frame as VWRAP materializes.
> > >
> > > There is little point in creating a new VW protocol today purely  
> in
> > > the context of IPv4 without thinking about tomorrow's IPv6
> > > environment.  By the time that VWRAP is fully defined, we should
> > > expect a substantial and rapidly increasing proportion of VWRAP
> > > implementations to occur in IPv6-accessible worlds.  This is a
> > > situation for which we need to plan now, otherwise the protocol  
> will
> > > be obsolete before it's even ready.
> > >
> > > To get the ball rolling, here are a few IPv6-related issues that  
> we
> > > could usefully address in the group:
> > >
> > >    • The 128-bit IP address of IPv6 is likely to become a common
> > > payload, so it should be supported natively.  LLSD already  
> supports
> > > one 128-bit data type of course, the UUID.  IPv6 addresses should
> > > not be transported in UUID fields however, since their statistical
> > > properties and semantics are totally different.  In any case, the
> > > two spaces are disjoint so confusing them would be a mistake.  The
> > > IPv6 address seems a good candidate for its own defined type, in  
> the
> > > absence of wide integers.
> > >    • The extremely large address space of IPv6 has often been
> > > portrayed as allowing everything around us to have its own IP
> > > address.  In the context of virtual worlds, this idea can actually
> > > be put to good use, with each virtual object bearing its own IPv6
> > > address.  One candidate application for this has already been
> > > described in earlier discussions --- for example, implementing
> > > virtual object simulation in two parts, one client-side and one
> > > world-side, the two parts communicating directly.  IPv6 addressing
> > > of objects makes this relatively easy to achieve efficiently, so  
> its
> > > implementation in IPv6-based worlds is almost inevitable before
> > > long.  VWRAP should be ready for this.
> > >    • The event queue in current implementations provides an  
> indirect
> > > and highly inefficient way of achieving world-to-client
> > > communications.  IPv6 offers opportunities for direct  
> communication
> > > that can make the event queue approach obsolete, so it's worth
> > > examining IPv6-oriented alternatives.
> > >    • We recently discussed feature and protocol negotiation within
> > > VWRAP.  IPv6 provides much opportunity for new features and  
> protocol
> > > pathways to be negotiated between endpoints, so it gives us a very
> > > real and imminent set of use cases for negotiation.
> > >
> > > It would also be a feather in VWRAP's cap to be considered an  
> "IPv6-
> > > capable application protocol" in a stronger sense than just to be
> > > carried by IPv6 networks.  IPv6 does after all bring new abilities
> > > to the table, such as the huge addressing, and it would be a  
> mistake
> > > to ignore them.
> > >
> > >
> > > Morgaine.
> > >
> > >
> > >
> > > _______________________________________________
> > > vwrap mailing list
> > > vwrap@ietf.org
> > > https://www.ietf.org/mailman/listinfo/vwrap
> >
> > _______________________________________________
> > vwrap mailing list
> > vwrap@ietf.org
> > https://www.ietf.org/mailman/listinfo/vwrap
>
> _______________________________________________
> vwrap mailing list
> vwrap@ietf.org
> https://www.ietf.org/mailman/listinfo/vwrap
>
> _______________________________________________
> vwrap mailing list
> vwrap@ietf.org
> https://www.ietf.org/mailman/listinfo/vwrap
>
> _______________________________________________
> vwrap mailing list
> vwrap@ietf.org
> https://www.ietf.org/mailman/listinfo/vwrap
>
>
> _______________________________________________
> vwrap mailing list
> vwrap@ietf.org
> https://www.ietf.org/mailman/listinfo/vwrap
>
>
> _______________________________________________
> vwrap mailing list
> vwrap@ietf.org
> https://www.ietf.org/mailman/listinfo/vwrap