Re: [Icnrg-harmonization] NDN use of nameless Data

Alex Afanasyev <aa@cs.ucla.edu> Tue, 06 September 2016 05:11 UTC

Return-Path: <cawka1@gmail.com>
X-Original-To: icnrg-harmonization@ietfa.amsl.com
Delivered-To: icnrg-harmonization@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E206212B0CE for <icnrg-harmonization@ietfa.amsl.com>; Mon, 5 Sep 2016 22:11:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.367
X-Spam-Level:
X-Spam-Status: No, score=-2.367 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dkCQDLKSD5Q3 for <icnrg-harmonization@ietfa.amsl.com>; Mon, 5 Sep 2016 22:11:41 -0700 (PDT)
Received: from mail-pa0-f46.google.com (mail-pa0-f46.google.com [209.85.220.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4555B12B138 for <icnrg-harmonization@irtf.org>; Mon, 5 Sep 2016 22:11:41 -0700 (PDT)
Received: by mail-pa0-f46.google.com with SMTP id to9so28806381pac.1 for <icnrg-harmonization@irtf.org>; Mon, 05 Sep 2016 22:11:41 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:mime-version:from:in-reply-to:date:cc :message-id:references:to; bh=BBWrhnGSeQNmMDNM2TcszhF6YWhxHfreYhbA6bSlv0U=; b=lowIV7jRWrSm9GWwwMP3c0Hab5W1byRBFrxEqlDIRrTZsNP3HLQcfMHP0ACdAfpd4z Zb7WMWKrdKMXxlzBUv4cMkcvyBpJyaUplqjmUg6oDoB6RC53o7nwt42PUipvkulKqdig Rmw+fxjeFdWpirqRAfLZGuWyQqKAIdIaDfeCTVPYFCDe4uB8sejgFNuPpvADPoQgsFCm jMgQO1jTYlYqDrcs9qNKtKsW5qR2FoiaGExo3GE+TXFQ4AcYzDYUTSudLz9+Bf63zq3l ceACO5nk6jQ7Vq20PaaLQxwUk2G6HMg+vKR0TAJrUKfeFGZyATFRnIAxSb+Zh/lcSvVv kdsg==
X-Gm-Message-State: AE9vXwOLh9AdVxqDmMxgazMzPYm1V/3cmUb9uiXikMS48kQtcCsj4W6DXIaxksDn9YP5fg==
X-Received: by 10.66.220.106 with SMTP id pv10mr61403254pac.81.1473138700704; Mon, 05 Sep 2016 22:11:40 -0700 (PDT)
Received: from ?IPv6:2605:e000:1521:18b:197f:ce20:955:9b74? ([2605:e000:1521:18b:197f:ce20:955:9b74]) by smtp.gmail.com with ESMTPSA id bl6sm27431334pad.6.2016.09.05.22.11.38 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 05 Sep 2016 22:11:39 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
Content-Type: multipart/signed; boundary="Apple-Mail=_2FBF850F-F11B-4FCA-A928-FC9B44A31988"; protocol="application/pgp-signature"; micalg="pgp-sha256"
X-Pgp-Agent: GPGMail
From: Alex Afanasyev <aa@cs.ucla.edu>
In-Reply-To: <345365B3-5AF5-4652-B06C-3EA4A20846A9@parc.com>
Date: Mon, 05 Sep 2016 22:11:37 -0700
Message-Id: <569A6A7C-46C4-48AF-98B5-7DE7C2560A78@cs.ucla.edu>
References: <92ABC834-3C47-4B3C-9D85-83493B8B9414@parc.com> <D96E28F4A22C864DBC6C871B5B1C4CC320CC5020@SJCEML701-CHM.china.huawei.com> <87A7A215-9145-4B1B-B240-213F0B1916B7@parc.com> <731A5A92-439C-40A3-A0A4-B0E1856BFCC5@cs.ucla.edu> <345365B3-5AF5-4652-B06C-3EA4A20846A9@parc.com>
To: Marc.Mosko@parc.com
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/icnrg-harmonization/e9k6wyzITho6KiAmCUd-4QS2ll8>
Cc: ravi.ravindran@huawei.com, icnrg-harmonization@irtf.org
Subject: Re: [Icnrg-harmonization] NDN use of nameless Data
X-BeenThere: icnrg-harmonization@irtf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: ICN Harmonization Discussion <icnrg-harmonization.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/icnrg-harmonization>, <mailto:icnrg-harmonization-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/icnrg-harmonization/>
List-Post: <mailto:icnrg-harmonization@irtf.org>
List-Help: <mailto:icnrg-harmonization-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/icnrg-harmonization>, <mailto:icnrg-harmonization-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Sep 2016 05:11:44 -0000

> On Sep 5, 2016, at 9:59 PM, Marc.Mosko@parc.com wrote:
> 
> 
>> On Sep 5, 2016, at 9:21 PM, Alex Afanasyev <aa@cs.ucla.edu <mailto:aa@cs.ucla.edu>> wrote:
>> 
>>> There has been a bit of talk about CCNx making explicit the use of nameless objects, but I’d like to point out that one can do essentially the same thing in NDN using the Interest Link.  If CCNx were to adopt the Link approach to routing indirection, it could be done this way too (though using the ContentObjectHashRestriction field, not the implicit digest).
>>> 
>>> This is based on the 0.2-alpha-3 NDN packet format specification and the SNAMP-NDN-Scalability.pdf paper.  If I have misread something, please let me know.
>>> 
>>> The NDN spec says a Name is zero or more NameComponent.  Therefore, I can create a Data object with an empty name.  In an Interest, I can put one NameComponent of type ImplicitSha256DigestComponent and set Min/Max SuffixComponents to 0 and then include one or more Link objects in the Interest for routing.
>> 
>> The fact that generic definition of the name allows zero component is not related to the fact that ALL data packets have name.  Name is the identifier of the data.  (What Lixia is arguing is that Interest packet must not have an empty name, as Interest should ask for something.  This part is an oversight in the current spec.)
> 
> I would say the full name (including the implicit hash) is the unique identifier of the data.  The prefix is for routing and the application data (version, segment, etc.) is for application conventions and in some cases discovery.  If I’m willing to route on hashes and have some other means of discovery, I don’t think it should be illegal to do that.
> 
> An Interest packet would have the implicit hash, so it would have a non-empty name field.

The point I was making is that there are no "nameless" data.  Each data packet has a name (full name), which identifies this specific data packet at the networking level.

>> In my opinion, there is no "nameless" Data in NDN.  I would like to say it even more generally, that in ICN there could not be "nameless" data, as name is data's identifier.  I understand that in CCNx 1.x spec you redefined the concept of the name, which creates a lot of confusion.
>> 
> 
> Really, we went back to the ability of CCNx 0.7 (and earlier) to use only hash-based naming, which was an ability that CCNx 1.0 lost when we split the hash restriction out of a name component and put it in a distinguished field.  If you go back and look at the old CCNx specs, you’ll see they permitted empty names too (https://github.com/ProjectCCNx/ccnx/blob/master/doc/technical/Name.txt <https://github.com/ProjectCCNx/ccnx/blob/master/doc/technical/Name.txt>).  You could also look at the old ccnx.dtd and ccnx.xsd, they specifically allow zero component names.
> 
> What we added was a rule about not matching the Interest name if the ContentObject had no name field, which is different from the CCNx 0.x days and introduced a locator.
> 
>> I would like also to reiterate my opinion that not properly naming each individual data packet is a serious limitation.  Yes, manifest and etc. can provide contexts to verify data, but it is really limitings.  Data packet by itself is worthless, as there is neither application context to which this packet belong nor security context to verify it.
> 
> Most data packets, by them self, are worthless; a single data packet is usually only a small fraction of some larger whole.  There are a small number of data packets that must be discoverable because those will lead one to knowing how to retrieve the remainder of the data.

Discoverable is for cases when exact name is not known.  I would agree that there is a small number of those.  There is a way greater amount of packets which are not yet generated, but the consumer would want to send interest to retrieve them (real time pipeline as an example here, but there are other cases such as IoT/DTN).

>> 
>> And additional point.  I would like to bring back the conversation we had last week, where we pointed out that there are many cases where consumer inherently cannot know neither the full nor exact name.  Therefore, I'm not quite sure where are we going with this conversation.  In general, each Data packet should have a unique name.  And in many cases, such as real-time data retrieval, the name should use predictable naming conventions, at the very least to allow pipelining of interests.
> 
> I am not making the point that all data or apps must do it this way.  I understand there are cases when one wants predictable names and discoverable names.
> 
> Not in general, but in specific, all data packets do have unique names via the implicit hash.  I think what you want to mandate is that all data packets have unique exact names (up to but not including the implicit hash).  You can have a recommendation that a producer not generate duplicate names, but there’s no way to enforce that in the system.
> 
> Would you completely rule out a NDN-based system that uses implicit hash names without some other prefix, even if those implicit hash names were in the FIB?

What I said does not rule this out.  In my opinion, this type of usage is possible, while applicable only to certain cases.

--
Alex

>> 
>>> My understanding of NDN is that because the ImplicitSha256DigestComponent is not in the FIB, a forwarder will forward via the Link.  The nameless Data Object – having 0 name components – will have a FullName of only its ImplicitSha256DigestComponent and that will match the name in the Interest.
>>> 
>>> I believe this use of NDN also maintains the property we were going after in CCNx nameless objects in that one cannot poison the cache by feting a Data object by hash that could then later be confused with a Data object being fetched by prefix or name (unless one put a 0 component name in the Interest with MaxSuffixComponents of at least 1 and used Link routing).
>>> 
>>> Marc
>> _______________________________________________
>> Icnrg-harmonization mailing list
>> Icnrg-harmonization@irtf.org <mailto:Icnrg-harmonization@irtf.org>
>> https://www.irtf.org/mailman/listinfo/icnrg-harmonization
>