Re: [rrg] Various misunderstandings

RJ Atkinson <rja.lists@gmail.com> Wed, 24 February 2010 13:41 UTC

Return-Path: <rja.lists@gmail.com>
X-Original-To: rrg@core3.amsl.com
Delivered-To: rrg@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id EF9AE28C14C for <rrg@core3.amsl.com>; Wed, 24 Feb 2010 05:41:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.449
X-Spam-Level:
X-Spam-Status: No, score=-2.449 tagged_above=-999 required=5 tests=[AWL=0.150, BAYES_00=-2.599]
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 8bMWEsCXZwSB for <rrg@core3.amsl.com>; Wed, 24 Feb 2010 05:41:25 -0800 (PST)
Received: from qw-out-2122.google.com (qw-out-2122.google.com [74.125.92.24]) by core3.amsl.com (Postfix) with ESMTP id 6787A3A7CA3 for <rrg@irtf.org>; Wed, 24 Feb 2010 05:41:25 -0800 (PST)
Received: by qw-out-2122.google.com with SMTP id 8so980685qwh.7 for <rrg@irtf.org>; Wed, 24 Feb 2010 05:43:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:content-type:mime-version :subject:from:in-reply-to:date:content-transfer-encoding:message-id :references:to:x-mailer; bh=SkD8V0fRwdIAzeS8truB4sVHvT+TUy5VBkpKKShCIKo=; b=j57Ex/8vn4LhEGSX5sIDbK5HtXG8iaivae8sNbPStVC9/qLvQmJrJus9Bs238pQIii y+3r/Z2KoY9Kq6JdOSTYhZjzCLhXezA/iCbrK847xqFNYX2fS1wKDk3/dZqon4FagidS YOO9AqXeTjBmYXqQVb14Qjo/ms5Jo+oQSgPIg=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; b=ZgRrByuVAfnUtnhk/n26cxS6d/Z1Ms0tCTMI+C3afUuxEekg0RIS3CswphW5w60XzC WQwPX73RmWKUZSauqxaLnvPbtUcYyVHau/IpAAR34clzjMpAEGs9T5nEG2whwZsRKnys Vncp5dSeQ55VjrInIowcGn7MNaF6X7mA7yTJE=
Received: by 10.224.7.145 with SMTP id d17mr7505918qad.125.1267019011636; Wed, 24 Feb 2010 05:43:31 -0800 (PST)
Received: from ?10.30.20.5? (pool-70-104-194-109.nrflva.fios.verizon.net [70.104.194.109]) by mx.google.com with ESMTPS id 21sm277295qyk.5.2010.02.24.05.43.29 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 24 Feb 2010 05:43:30 -0800 (PST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Apple Message framework v1077)
From: RJ Atkinson <rja.lists@gmail.com>
In-Reply-To: <4B84ADE5.2070300@firstpr.com.au>
Date: Wed, 24 Feb 2010 08:43:28 -0500
Content-Transfer-Encoding: 7bit
Message-Id: <87535B75-14EB-4742-A02E-0FED5FDD1413@gmail.com>
References: <82128A5F-ABE8-4448-AEF7-97480C98291E@gmail.com> <4B84ADE5.2070300@firstpr.com.au>
To: IRTF Routing RG <rrg@irtf.org>
X-Mailer: Apple Mail (2.1077)
Subject: Re: [rrg] Various misunderstandings
X-BeenThere: rrg@irtf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IRTF Routing Research Group <rrg.irtf.org>
List-Unsubscribe: <http://www.irtf.org/mailman/listinfo/rrg>, <mailto:rrg-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/rrg>
List-Post: <mailto:rrg@irtf.org>
List-Help: <mailto:rrg-request@irtf.org?subject=help>
List-Subscribe: <http://www.irtf.org/mailman/listinfo/rrg>, <mailto:rrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 24 Feb 2010 13:41:27 -0000

On 23  Feb 2010, at 23:41 , Robin Whittle wrote:
> Short version:  I have incorrectly stated that ILNP requires
>                upgraded applications.  I now understand ILNP
>                works with ordinary IPv6 applications.  

So far, so good. :-)
Thank you.

> 		Since
>                many or most applications are IPv4 only, this
>                still means ILNP requires upgrades to most
>                applications.

That is still not correct.

ILNPv4 works fine with ordinary IPv4 applications using 
existing APIs -- such as BSD Sockets -- no changes required.

Also, and separate from the sentence above, many APIs are neutral 
and work equally well with IPv4 or IPv6.  The claim that "many
or most applications are IPv4 only" is simply not true today.
It probably was true 15 years ago, but the situation is quite
different now.  I don't have time to do a full tutorial on
networking application authoring, but some quick highlights
below I hope will help bring greater understanding of the
current real-world situation.


1) Java applications

Virtually ALL Java applications are protocol-independent, oblivious
to whether IPv4 or IPv6 is in use.  Those same applications work
unchanged over ILNPv4 and ILNPv6 -- and are equally oblivious as
to whether IP or ILNP is in use.  A huge percentage of web-based 
applications are written in Java.  Web-based applications are 
probably the most numerous single kind of application deployed today.  


2) BSD Sockets/C applications

The BSD Sockets extensions for IPv6 added protocol-independent 
constructs, including, but not limited to, getaddrinfo() and 
freeaddrinfo().  These were originally defined in RFC-2133,
and later updated by RFC-2553, and then by RFC-2553.  Protocol
independence was provided for in the first of these RFCs,
and was retained in subsequent updates to these RFCs.  RFC-2133
was published in 1997 and was already widely available prior
to publication.  Virtually all applications written in the last 
~15 years, which is most applications in use today, have had these 
APIs available.  Many applications use these protocol-independent
constructions with BSD Sockets, for the practical reason that
using them simplifies the application source code and also makes
the application more robust.

Again, and just to be crystal clear, applications written to the
BSD Sockets using protocol-independent (e.g. IPv4 or IPv6 underneath) 
also work fine over either ILNPv4 or ILNPv6 -- without requiring 
any changes, and generally without even awareness that ILNP 
is in use underneath rather than IP.

3) Javascript/ECMAscript

As with Java, which is actually unrelated to these as near as I
can tell, this is in wide use with web pages and has a protocol-
independent API concept (using URLs/URIs rather than using
IP addresses or SockAddrs in the API).


>                Ran insists ILNP is not a Core-Edge Elimination
>                architecture but does not argue why this is the
>                case, or why the CEE/CES distinction is  non-
>                architectural or for some other reason invalid.

See RRG list archives for discussion of why the "distinction" 
is neither helpful nor meaningful.

>                Ran insists that ILNP is not "revolutionary".
>                I think ILNP and the other CES architectures could
>                fairly be considered "revolutionary", since they
>                require all hosts to adopt the "Locator / Identifier
>                Separation" naming model - and for other reasons.

Hmm.  ILNP doesn't require applications to change, and ILNP-capable
nodes always retain full classic IP capabilities.  Those 2 facts 
directly contradict the suggestion that ILNP is anything other
than "evolutionary".

> You haven't argued why I am wrong to call ILNP a CEE architecture.
> I believe it is and I will continue to state this unless you can
> convince me otherwise.

At least in the USA, people have the right to state anything
they wish to state, no matter how incorrect or meaningless
their statement(s) might be.  

> You still haven't argued why ILNP doesn't fit the CEE definition in
> or why the CEE/CES distinction is non-architectural,

> unimportant or whatever.

First, the RRG is not a philisophical debating society.
It is supposed to be a forum for professional discussions
of topics relating to routing research.  No one is required
to respond to silly or incorrect ideas.  I don't read every
note posted to the list, as I have a day job (and RRG is not
part of my day job).

Second, as the RRG list archives show, I have in fact outlined
why the CEE/CES distinction is not meaningful or helpful.
Other senior folks (e.g. Joel, Lixia, and I believe JNC)
concur with that assessment -- in fact, I think one of them
made the observation long before I did (so I was really
agreeing with them :-).

> Do you anticipate such an arrangement for ILNP too?

I don't see any requirement to create an ILNP-specific API.

As I have said all along, I believe that *no matter what happens
in RRG*, the trend in the applications world will be to prefer
protocol-independent APIs.  Virtually all Java applications use
those today (and all along the Java lifetime).  Today, most C 
applications are using the protocol-independent constructions 
of the BSD Sockets API.

> Most applications today are IPv4-only, so for everyone to adopt ILNP,
> most applications must be rewritten.

Both assertions above are untrue, as I have discussed above.

> ILNP, like other CEE architectures, only supports IPv6

Untrue.  See above.

> - and only
> provides substantial benefits to adoptors (portability, multihoming
> and inbound TE) on all their communications once essentially every
> host and network on the IPv6 Internet adopts it.  

Disagree.  See the various ILNP papers and I-Ds for counter examples.

> Only then can
> end-user networks which need these benefits get them without PI space
> - so ILNP requires essentially 100% adoption by all IPv6 hosts and
> networks before it can provide substantial benefits to adopters or to
> scalable routing.

Disagree.  See the various ILNP papers and I-Ds.

> I assume this would only be done for sessions between two ILNP-hosts.
> If so, how does the router know this is the case?  

See the several published ILNP papers for examples of ways
that a router can learn, on a per-session basis, whether
ILNP is in use for that session (or not in use).  

>  I would really appreciate you citing your sources, rather than
> expecting readers to figure out who you are ... criticising.

I have tried hard to avoid criticising *any* person.  
I have disagreed with certain ideas that have been put forward. 

(There are also some ideas put forward that I either agree
or disagree with, but haven't bothered to send email about.)
 
> Yes, but when you write "classic IP" you are referring to IPv6, which
> is a revolutionary change from the IPv4 Internet which everyone uses
> and which is the only Internet with a routing scaling problem.

IPv6 and IPv4 are architecturally identical.  As someone who
has worked on 4 different IPv6 implementations so far, there
is no meaningful difference between IPv4 and IPv6 except for
the change in the IP address size.  

The idea that IPv6 is "revolutionary" sounds silly.

>  1 - In order to deliver substantial benefits to adoptors or to
>      routing scalability, they require essentially all hosts to adopt
>      the  "Locator / Identifier Separation" naming structure, which
>      is revolutionary by any definition.  This would be the biggest
>      change to Internet communications since 1980.

Disagree with most of the above.

>  2 - They all require adoption of IPv6, which is itself
>      revolutionary since IPv6 is not backwards compatible with
>      IPv4.

Also disagree.

>  3 - They all require all hosts to updates their stacks - and some
>      require all applications be updated too.

Disagree that a stack change by itself makes a proposal "revolutionary".

Major vendors have been known to push major stack changes out 
as part of ordinary operating system bug-fix/patch releases 
in modern days, unlike the practices of 15 or 20 years ago.  

I believe that it is reasonable to believe that stack changes
will be pushed out and deployed provided the business incentives
line up (which, again, I believe is true, at least for ILNP,
and possibly for other ideas).  Other folks, apparently including
Robin, disagree with this.  I haven't seen any convergence within
the RG on this narrow question (whether stack changes are reasonable
or not) over the past several years.

[I don't have the spare time for lengthy email debates, and I think 
I've made my key points in the above email.  I apologise for the
undue length of this note, but I did not have the time to write a
more concise note.  So I'll now go back under my rock for a while.]

Yours,

Ran Atkinson