[icnrg] Comments on draft-asaeda-icnrg-contrace (follow-on to the message about the ICNRG minutes)

"David Oran" <daveoran@orandom.net> Wed, 12 April 2017 17:06 UTC

Return-Path: <daveoran@orandom.net>
X-Original-To: icnrg@ietfa.amsl.com
Delivered-To: icnrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 975DB129537 for <icnrg@ietfa.amsl.com>; Wed, 12 Apr 2017 10:06:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, 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 Z6tChNitNOF4 for <icnrg@ietfa.amsl.com>; Wed, 12 Apr 2017 10:06:13 -0700 (PDT)
Received: from spark.crystalorb.net (spark.crystalorb.net [IPv6:2607:fca8:1530::c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6BAEF1294F6 for <icnrg@irtf.org>; Wed, 12 Apr 2017 10:06:13 -0700 (PDT)
Received: from [192.168.171.1] (c-73-149-20-147.hsd1.ma.comcast.net [73.149.20.147]) (authenticated bits=0) by spark.crystalorb.net (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id v3CH660E012968 (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256 verify=NO); Wed, 12 Apr 2017 10:06:09 -0700
From: David Oran <daveoran@orandom.net>
To: Hitoshi Asaeda <asaeda@ieee.org>
Cc: icnrg <icnrg@irtf.org>
Date: Wed, 12 Apr 2017 13:06:06 -0400
Message-ID: <21997432-AA8C-4E29-A1A2-6FA0521E4EC2@orandom.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_MailMate_30EF6F24-2BCD-4D46-A3E1-D75EBABBA34A_="
Content-Transfer-Encoding: 8bit
X-Mailer: MailMate (1.9.6r5368)
Archived-At: <https://mailarchive.ietf.org/arch/msg/icnrg/ufsBvHGrnuD7dIoCDP90y1ijlmY>
Subject: [icnrg] Comments on draft-asaeda-icnrg-contrace (follow-on to the message about the ICNRG minutes)
X-BeenThere: icnrg@irtf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Information-Centric Networking research group discussion list <icnrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/icnrg>, <mailto:icnrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/icnrg/>
List-Post: <mailto:icnrg@irtf.org>
List-Help: <mailto:icnrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/icnrg>, <mailto:icnrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 12 Apr 2017 17:06:17 -0000

On 7 Apr 2017, at 6:05, Hitoshi Asaeda wrote:

> Hi Dave and folks,
>
> I’d like to reply my comments for Contrace asked in the session.
>
I have some comments/ideas below. I’m very interested in what folks 
think.
</chair hat off>

>> 1. one of the reasons for separate type of packet is because of 
>> interest aggregation. The right way to do that is separate indication 
>> in interest message, e.g. nonce. Important to see more justification.
>
> I agree that new packet type values must be assigned only for 
> necessary protocols and carefully decided, but we think assigning the 
> type values for Contrace request/reply is feasible and necessary.

There are some interesting tradeoffs here. One thing to not lose sight 
of is that as a diagnostic tool you may want to as much as possible 
mimic the behavior of regular interest/data exchanges. If the forwarding 
of pings and traceroutes goes through a substantially different code 
path than normal interests and data, the greater the opportunity for 
them to report misleading results (i.e. results that don’t reflect 
what would happen to a normal interest sent to the same prefix).

There also may be some “features” used for path tracing that might 
be useful when available for normal interests, so for the goal of less 
total complexity, all things being equal it’s better to keep them as 
similar as possible. Of course all things may not be equal :-)


> The reasons to separate type values from the regular interest/data are 
> follows.
>
> For Contrace, the requests should not be aggregated at routers, and 
> the replies must not be cached at routers.
I agree 100% with this.

> Using nonce is not perfect to satisfy this requirement, because the 
> regular interest may also include nonce for the ordinary data fetch.
Ah, I see what happened in our discussion in Chicago - it’s my fault 
for mis-speaking at the microphone. When I used the term “nonce”, I 
didn’t mean the existing nonce feature of NDN (which CCNx 1.0 
doesn’t have anyway), but a randomly generated name component suffix 
that ensures each instance of a traceroute/ping is unique even if 
encoded as a regular Interest message.

Since each traceroute would therefore be spatially and temporally 
unique, no interest aggregation would occur in the PITs.

> And even if the different nonce values are used for different 
> requests, returned data (replies) can be identified with the same 
> content or data. If routers cache the data (i.e. replies must not be 
> cached at routers), it violates the above requirement.
> (BTW, the current CCNx-1.0 specification, there is no nonce defined.)
>
Again it’s my fault for the confusion. Sorry. In terms of avoiding 
caching at the routers, the unique name suffix would ensure that no 
cached data was returned, however in order to not pollute caches, the 
existing mechanism of setting the data lifetime to zero would do the 
trick.

> In addition, to support multipath trace, unlike the ordinary 
> interest/data communication, the router does not remove the PIT entry 
> created by the Contrace request before the timeout value expires, even 
> if the router receives the Contrace reply. We do not think using 
> different nonce easily enables such unique (i.e. different) behavior.
>
Well, it’s certainly true that nonces or other uniquifiers don’t 
help with tree exploration - they only deal with interest aggregation 
and short-term cache hit problems.

The high-level point is that the behavior of the Contrace is 
substantially different from normal Interest/Data exchanges, which comes 
back to the concern over about being confident of what you are 
measuring.

The main advantage seems to be that you can get the whole 
multi-path/multi-destination forwarding tree in one operation by the 
initiator. While functionally attractive, apart from the general point 
above about avoiding machinery that could make the actual interest 
forwarding and the tracing exhibit different results, this technique 
raises some important issues that I think are worth discussing. Here is 
a partial list:

1. The multiple replies from a single request is at serious odds with 
the flow-balance properties of Interest/Data. This at least means you 
likely need different congestion control and resource allocation for the 
processing of Contrace operations, and if there is speculative 
forwarding in the data plane, or just in-network retransmissions, the 
number of reply messages coming back can cause a response storm.

2. The reliance on PIT timeout rather than Interest satisfaction 
semantics raises some hard tradeoffs for the setting of timers. If you 
set it too short, you only get part of the tree, and you don’t really 
know which parts of the tree you got. Unless there’s some additional 
machinery to allow for incremental exploration (i.e. explore the part of 
the tree the previous operation didn’t explore) it’s really hard to 
figure out what you have from a diagnostic perspective. If you set it 
too long there’s an attractive attack vector against PIT memory, plus 
the additional uncertainty of not returning a coherent tree if a routing 
update occurs during a multple-RTT duration PIT timeout.

3. The partial tree result problem could be ameliorated by adding some 
kind of path steering, which is assumed to be available by the ICN ping 
& trace route drafts but not actually specified. It would be quite 
useful to discuss how to provide such a capability (I think there are 
number of promising candidate mechanisms) and if you have it then you 
may not need to explore the whole tree in one shot.

> Furthermore, we need to consider the case that some old (or 
> incompatible) implementation may not distinguish the regular 
> interest/data communication and Contrace’s request/reply 
> communication. If we use the regular interest/data type values for 
> Contrace request/reply, incompatible implementation may handle them as 
> the ordinary interest data, which gives wrong information. If we use 
> unique type values, incompatible implementation simply ignores the 
> packets having unknown type values, which is fairly safer.
>
Yes, that would be true if the tracing was in fact done in any way 
differently form normal Interest/Data. A couple of other points on this:
1. It’s not like we have a stable final standard that we’re 
modifying or adding functionality to. The time is now to build 
instrumentation into the architecture rather than treating it as an 
add-on. Therefore I don’t find the “incompatible implementation” 
argument terribly compelling.
2. Even if there are good arguments to use different packet types, we 
still need to consider if we need new *message* types other than 
Interest and Data. If we do, then tracing really does diverge 
substantially and operates almost independently of regular forwarding 
and security semantics.
3. I couldn’t tell if the report blocks are cryptographically 
integrity protected or signed. If so, would it not be better to use 
regular data objects? If not, don’t we have a big spoofing problem?

>
>> 2. a lot of commonality between this and icn-traceroute draft 
>> (draft-mastorakis-icnrg-icntraceroute-01). Nice to see like an 
>> overview of the commonalities and differences
>
> I guess the motivation is similar and both could provide information 
> about network conditions such as RTT (although I cannot understand how 
> icn-traceroute gives what kind of network information). On the other 
> hand, Contrace additionally gives the detail information about CS (and 
> cache itself) at the cached router. That’s why in the meeting I said 
> icn-traceroute is more on FIB, and Contrace works both on FIB and CS.
>
I do like the idea that there is the additional instrumentation of CS 
and cache behavior, however I wonder if this would not be better 
provided by  separate cache/ CS probe rather than combined with 
Contrace. This could be an interest point for further design discussion. 
It isn’t obvious which would be better.

> Anyway, if possible, could you take a look at both drafts? You could 
> recognize the differences, not only such basic concept. If something 
> in icn-traceroute is beneficial, we are happy to consider it for 
> Contrace as well.
> (Note that as I mentioned in the meeting, I had worked for the 
> Contrace-NDN specification with one of the icn-traceroute draft 
> authors. I'll contact him whether he's still interested in 
> Contrace-NDN.)
>
> At last, you can also see the following paper and see how interesting 
> experiments were given using Contrace.
> "Contrace: a tool for measuring and tracing content-centric 
> networks,” IEEE ComMag, March 2015.
> http://ieeexplore.ieee.org/document/7060502/
Nice work. This could be a source of “test data” to see what 
abilities alternate designs have.

> Remember that the Contrace specified in the current I-D relies on 
> CCNx-1.0 TLV and thus the implementation is not the same one written 
> in this manuscript. However, similar experiments will be given by the 
> new Contrace implementation.
>
Got it.

Hope this message can generate some productive discussion on the ICNRG 
list.

DaveO.

> Thanks for your comments.
>
> Best regards,
> --
> Hitoshi Asaeda
>
>
>
>
>> 2017/04/04 1:36, David Oran <daveoran@orandom.net> wrote:
>>
>> Comments/corrections to the list please. I will post this (including 
>> revisions received before then) to the meeting materials site on 
>> Friday 7-April.
>>
>>
>>
>> DaveO
>> <Minutes ICNRG IETF98 
>> 30-March-2017.txt>_______________________________________________
>> icnrg mailing list
>> icnrg@irtf.org
>> https://www.irtf.org/mailman/listinfo/icnrg
>
> _______________________________________________
> icnrg mailing list
> icnrg@irtf.org
> https://www.irtf.org/mailman/listinfo/icnrg

DaveO