Re: [Gen-art] Gen-ART review of draft-carpenter-renum-needs-work-03

Brian E Carpenter <brian.e.carpenter@gmail.com> Wed, 14 October 2009 01:51 UTC

Return-Path: <brian.e.carpenter@gmail.com>
X-Original-To: gen-art@core3.amsl.com
Delivered-To: gen-art@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9ED793A69A1 for <gen-art@core3.amsl.com>; Tue, 13 Oct 2009 18:51:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, 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 qeqJu5xW58YJ for <gen-art@core3.amsl.com>; Tue, 13 Oct 2009 18:51:35 -0700 (PDT)
Received: from mail-pz0-f204.google.com (mail-pz0-f204.google.com [209.85.222.204]) by core3.amsl.com (Postfix) with ESMTP id ADC113A691F for <gen-art@ietf.org>; Tue, 13 Oct 2009 18:51:35 -0700 (PDT)
Received: by pzk42 with SMTP id 42so316750pzk.31 for <gen-art@ietf.org>; Tue, 13 Oct 2009 18:51:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :organization:user-agent:mime-version:to:cc:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=nfkG1l9chXMWiKmStrpsTcuFtgKamOMFqyCCxgpTbxA=; b=rjgADKDAHzBQNXbOaKBNbFOLh+JzVemHu5+TtxUyDTXfAjG0eV9oMXt/sfqcQKbsgu MI75bvRBAUn+q8NP+tWJFd9eXqLyIS/36ZNgWROs9qmk2erxt8hOjG8mvfVJbgBQUqTH TZJKpi0UGfbA3/1nd3KLwGiCpUo9+sC7Ke5yM=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:organization:user-agent:mime-version:to:cc :subject:references:in-reply-to:content-type :content-transfer-encoding; b=oIUeVisp//gUg54YtasUrxzladRRKvvqW4FwtVQGOSpTqjS+6Y9RvptIfozv1lMMaK lwcuEHkxFej5fzAnzej0b+BbxYbjFd3NtvvTdE1MGS1wDguRPiBbog3BO05eh1V1DQuA lZafvYaX3Nj0OUuX5gz0EdURI8QUKFmArxReU=
Received: by 10.114.51.6 with SMTP id y6mr13991829way.75.1255485094692; Tue, 13 Oct 2009 18:51:34 -0700 (PDT)
Received: from ?130.216.38.124? (stf-brian.sfac.auckland.ac.nz [130.216.38.124]) by mx.google.com with ESMTPS id 22sm158043pzk.6.2009.10.13.18.51.31 (version=SSLv3 cipher=RC4-MD5); Tue, 13 Oct 2009 18:51:33 -0700 (PDT)
Message-ID: <4AD52EA2.9020502@gmail.com>
Date: Wed, 14 Oct 2009 14:51:30 +1300
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Organization: University of Auckland
User-Agent: Thunderbird 2.0.0.6 (Windows/20070728)
MIME-Version: 1.0
To: "Vijay K. Gurbani" <vkg@alcatel-lucent.com>
References: <4ACE56B3.1070705@lucent.com>
In-Reply-To: <4ACE56B3.1070705@lucent.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Cc: "Romascanu, Dan (Dan)" <dromasca@avaya.com>, gen-art@ietf.org, "Flinck, Hannu" <hannu.flinck@nsn.com>, RJ Atkinson <ran.atkinson@gmail.com>
Subject: Re: [Gen-art] Gen-ART review of draft-carpenter-renum-needs-work-03
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <gen-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/gen-art>
List-Post: <mailto:gen-art@ietf.org>
List-Help: <mailto:gen-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 14 Oct 2009 01:51:36 -0000

Vijay,

Thanks for the review.


On 2009-10-09 10:16, Vijay K. Gurbani wrote:
...

> Minor Issues:
> 1) S1, last paragraph: I am not sure I understand the following:
> 
>      Even when an address is leased for a finite time by DHCP
>      or SLAAC, or when it is derived from a DNS record with a
>      finite time to live, this information is lost once the
>      address has been passed to an upper layer by the socket
>      interface.
> 
> I am sure I am missing something here, but why is this
> information considered lost once it has been passed to
> the upper layer by the socket interface?  In fact, it is
> the other way around -- it is the upper layers that query the
> network layer using DNS APIs for this IP address.  The network
> layer in a host always knows its IP address, right?  If our
> email exchange results in any clarification, it can be put into
> the text, but for right now I don't have any suggested text.

As far as I know, neither gethostbyname() nor getaddressinfo()
returns the remaining TTL of the address(es) supplied. So the
application has no way to expire an address. And also as far
as I know, an application has no way to discover the remaining
lifetime of its own host's IP address(es), so if it passes them
to a third party application, the third party has no way to expire
an address. It's my impression that application programmers have
solved this problem rather inconsistently (e.g. by ignoring it,
or by setting an arbitrary timeout on cached addresses, or by
never timing them out at all until there's a restart).

> 
> 2) S5.1.4, page 15; it says that:
> 
>    It should be noted that at least the first part of this
>    is already available for some programming languages,
>    notably Java, where only FQDNs need to be handled by
>    application code.
> 
> Again, I am not sure I understand.  Why is Java special here?

Because the ordinary Java application programmer has a much simpler
interface than BSD sockets, which accepts names as the primary
handle. Java is only an example and we should make that clearer.

> I can use the getaddrinfo() system call and resolve a FQDN
> to an IP address in the application code in C/C++ as well.

Of course, but then you also have to handle all the logic
of IPv6/IPv6 coexistence etc. Java hides it all.

> Conversely, even in Java I can provide a raw IP address
> instead of a FQDN.

Sure, if you are a systems hacker. But average programmers
really do find FQDNs easier.

The critical point is that with an abstracted API,
applications never need to perform FQDN to something else
(IP address or Sockaddr) conversion.

By contrast, with the traditional BSD Sockets C-language API,
applications *always* need to make that FQDN to something else
(to Sockaddr in the case of BSD) conversion [e.g. using
gethostbyname()].

Applications using the abstracted API are wildly less likely
to use low-level objects (e.g. IPv4 address) either internally
or in the application-layer protocol.  Instead, such apps
are very likely to use the FQDN instead.


> 
> 3) S5.1.4, page 15, it says that:
> 
>    Server applications will likely need to be restarted
>    when the host they contain is renumbered, to ensure that
>    they are listening on a port and socket bound to the
>    new address.
> 
> Is this still true if a server process is bound to INADDR_ANY?
> I guess this will depend on the specific implementation of
> the IP stack -- I do not know whether modern kernels expand
> INADDR_ANY to the set of interfaces available only when a
> process first binds itself to the interfaces, or whether
> they will automatically update this set when a new interface
> is added.

Yes, we'd probably better s/will likely/might/ to be sure the
statement is accurate.

> 
> Nits/editorial comments:
> 
> 1) S5.1.4, top of page 15, fourth line -- is it "ever exposed"
>  or "never exposed"?

I think our intention would be clearer if we wrote

   It is highly
   unfortunate that network layer addresses are usually exposed to
   application sessions.

This is really the same point as above (Java API). We're saying that
the fact that applications ever deal with addresses is a design
error (which of course goes back to 1983 or so). Opinions may vary!

   Brian

> 
> Thanks,
> 
> - vijay