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

"Ilya Moiseenko (ilmoisee)" <ilmoisee@cisco.com> Fri, 14 April 2017 22:10 UTC

Return-Path: <ilmoisee@cisco.com>
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 BA0B41205F1 for <icnrg@ietfa.amsl.com>; Fri, 14 Apr 2017 15:10:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.022
X-Spam-Level:
X-Spam-Status: No, score=-14.022 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
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 Tl4IBhNfXMo1 for <icnrg@ietfa.amsl.com>; Fri, 14 Apr 2017 15:10:50 -0700 (PDT)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 64D91127077 for <icnrg@irtf.org>; Fri, 14 Apr 2017 15:10:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=25590; q=dns/txt; s=iport; t=1492207850; x=1493417450; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ooqVPSvW4uL4X4ETjAPe81xLaGycrbKmX5EKHoXhZQs=; b=QDOcwOU0vks7+iXwVjVzspglORAJbr5d2KlvOLrgjmKZZaxyVcos0CtL ml2z8wkaDsBzGJsBGxREqhIv7pWyP6bMXBHqWenvamsmXGlUIHy3U1KrO AWHP8nviz20zN2HCQmygt/wstlhGAJQFty59P7shb3jAWPOPZWeSzvm/U A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DbAQDSR/FY/4oNJK1cGQEBAQEBAQEBAQEBBwEBAQEBg1NhgQsHg1+KFZFeb5Rvgg8hC4V4AhqDZT8YAQIBAQEBAQEBayiFFgEBAQIBAQEMFRExCQsQAgEIDgQIAh8HAgICJQsVAg4CBAENBRUGiXQIDqk3giaLEQEBAQEBAQEBAQEBAQEBAQEBAQEBAR2BC4VHgV0rgWJWNIQ0I4MGLoIxBY90hjuGaAGHA4MriDaBf1WEW4oXiGmLIAEfOIEFYxVBEQGEUBwZgUkBdYcMASQHgQOBDQEBAQ
X-IronPort-AV: E=Sophos;i="5.37,200,1488844800"; d="scan'208";a="233085652"
Received: from alln-core-5.cisco.com ([173.36.13.138]) by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 14 Apr 2017 22:10:48 +0000
Received: from XCH-ALN-002.cisco.com (xch-aln-002.cisco.com [173.36.7.12]) by alln-core-5.cisco.com (8.14.5/8.14.5) with ESMTP id v3EMAm97002343 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 14 Apr 2017 22:10:48 GMT
Received: from xch-rcd-004.cisco.com (173.37.102.14) by XCH-ALN-002.cisco.com (173.36.7.12) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Fri, 14 Apr 2017 17:10:47 -0500
Received: from xch-rcd-004.cisco.com ([173.37.102.14]) by XCH-RCD-004.cisco.com ([173.37.102.14]) with mapi id 15.00.1210.000; Fri, 14 Apr 2017 17:10:47 -0500
From: "Ilya Moiseenko (ilmoisee)" <ilmoisee@cisco.com>
To: David Oran <daveoran@orandom.net>, Hitoshi Asaeda <asaeda@ieee.org>
CC: icnrg <icnrg@irtf.org>
Thread-Topic: [icnrg] Comments on draft-asaeda-icnrg-contrace (follow-on to the message about the ICNRG minutes)
Thread-Index: AQHSs68qPfOoQejRPka03qo+3knyl6HE31GAgAA/wwCAAC/2gA==
Date: Fri, 14 Apr 2017 22:10:47 +0000
Message-ID: <B0B10D6E-9BD5-41B0-9C9C-4FD63F65C341@cisco.com>
References: <21997432-AA8C-4E29-A1A2-6FA0521E4EC2@orandom.net> <2C99F48C-E48F-440D-8252-89207698A06F@ieee.org> <92FD2E81-4E06-4B3E-9D33-C25F71027207@orandom.net>
In-Reply-To: <92FD2E81-4E06-4B3E-9D33-C25F71027207@orandom.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.154.165.48]
Content-Type: text/plain; charset="utf-8"
Content-ID: <F77E28D46D546341A91C08AE3630A2EE@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/icnrg/Tr6sFYZaJ5hX8O8hd7C9j_FRv4U>
Subject: Re: [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: Fri, 14 Apr 2017 22:10:54 -0000

Hi Hitoshi,

On 4/14/17, 5:19 AM, "icnrg on behalf of David Oran" <icnrg-bounces@irtf.org on behalf of daveoran@orandom.net> wrote:

    On 14 Apr 2017, at 4:30, Hitoshi Asaeda wrote:
    
    > Hi Dave,
    >
    > Thanks for your comments.
    >
    This is a valuable design discussion. I’m curious what other people 
    think before offering more ideas myself.
    Thanks for the comprehensive and carefully considered response!
    
    DaveO.
    
    >>> 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).
    >
    > I understand your point, but such situation happens as in the regular
    > traceroute as well.

ILYA: Can you elaborate on how the regular traceroute is “substantially” different from normal IP forwarding?

From your draft:
 “ Contrace supports multipath forwarding.  The Request messages can be
   forwarded to multiple neighbor routers.  Some router may have
   strategy for multipath forwarding; when it sends Interest messages to
   multiple neighbor routers, it may delay or prioritize to send the message.  
   For the Contrace Request, however, such strategy SHOULD be
   ignored and the router sends Interests to multiple routers
   simultaneously.”

You are proposing to ignore the actual setup of the data plane (i.e. forwarding strategies) in order to discover all available paths, correct?
In other words, the results of contrace request will display the control plane to the user, but will not display the actual state of the data plane (where the packets are actually going for normal ICN applications). 
Why is that the goal at all?  You may need to check MPLS treetrace design. Its purpose is to display and monitor the state of the actual data plane. 

I agree with Dave’s comment that Contrace might not be that useful from the point of view of network operations. In fact, the network operator already has the control plane design and they definitely don’t need to discover it, and what they really need is to check whether the paths are properly used by the applications. 

Please, correct me if I misread the design and interplay of contrace and forwarding strategies.
Ilya

 We should therefore clearly describe the point in
    > the draft as follows:
    >
    >    Note that when a router's control plane and forwarding plane are 
    > out
    >    of sync, the Contrace Requests might be forwarded based on the 
    > control
    >    states instead. In which case, the traced path might not represent
    >    the real path the data packets would follow.
    >
    >> 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
    >> :-)
    >
    > I understand.
    >
    >>> 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.
    >
    > In fact, I had also expected to use such new random value. But in that
    > case, it is necessary to reserve some special “label” or 
    > “keyword”
    > to indicate traceroute and add it to the name, e.g.,
    > ccnx:/trace/example.com/index.html to distinguish the regular interest
    > and “traceroute interest”, right? Reserving a “special 
    > keyword”
    > for the protocol is worse than reserving a packet type value, because
    > it reduces the flexibility of naming and various potential services, I
    > think.
    >
    > Another serious problem is that some incompatible implementation may
    > just add such named prefix entries in the PIT as the ordinary
    > interests.
    > (Dave, you said later you don’t find incompatible implementations in
    > the current phase, but here let’s assume there is the case.)
    > The router then handles these interests and forwards them toward the
    > potential publisher, while the corresponding publisher does not exist!
    > If we use unique type values, incompatible routers simply ignore the
    > packets having unknown type values and stop forwarding. It is much
    > safer.
    >
    >>> 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.
    >
    > If cache miss happens, routers may simply forward the packet toward
    > the potential (but non-existent) publisher, which is problematic.
    >
    > Zero cache lifetime is required for ping/traceroute to avoid pollute
    > cache, but only with it, the fundamental concerns mentioned above are
    > not addressed.
    > In fact, the ccnxmessage draft defines two TLVs related to cache
    > lifetime; Recommended Cache Time (RCT) TLV located in an optional
    > hop-by-hop header and ExpiryTime TLV located with Message TLV. Both
    > TLVs are “optional”. The draft explicitly says that “RCT is a
    > recommendation only and may be ignored by the cache” and “routers
    > forwarding a Content Object do not need to check ExpiryTime TLVs”.
    > In summary, routers should not simply believe or should not strictly
    > rely on these cache lifetime values for cached content/data. Contrace
    > reply using its type value does not affect these timer handling and
    > simply avoids the problem.
    >
    >>> 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.
    >
    > Indeed.
    >
    >> 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:
    >
    > I do agree that discussing other networking tools (e.g., measuring and
    > comparing both control/data planes, INT, etc.) is interesting and
    > important; however, please remember that the fundamental concept of
    > Contrace is traceroute, and designing the protocol to make it fit to
    > CCN (and NDN?) is our main target.
    >
    >> 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.
    >
    > I don’t disagree discussing and designing sophisticated congestion
    > control mechanisms and resource allocation mechanisms are highly
    > valuable for CCN. (BTW, you might be interested in our Infocom 2017
    > paper that provides a new CCN-oriented transport mechanism. :)
    > But again, Contrace is similar to the traditional traceroute and does
    > not depend on some transport protocol for its run; we’d like to 
    > avoid
    > embedding complex mechanisms, such as some special congestion control
    > or reservation mechanism, in it.
    >
    > On the other hand, your concern would be reduced by our current
    > design. Consumer can set a “hop limit” value to limit the traced
    > area, and can set a “skip hop count” to expand the traced area. 
    > Both
    > are already defined in the current Contrace draft. And you can also
    > make a doughnut-area trace by setting both of these hop counts if you
    > want. :)
    > Moreover, reply messages can be timed out; whenever the timeout values
    > of the intermediate routers and consumer expire, they can close the
    > request session, which might reduce the risk.
    >
    >> 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.
    >
    > Right. Showing the optimized timer value is an interesting research
    > topic. However, “optimization” is always difficult, or sometimes 
    > it
    > is impossible to define the “optimized” (or optimal) value that 
    > can
    > be applied to any kinds of networks. I do not say we’d simply ignore
    > such discussion. However, defining the optimized/optimal timeout value
    > could be out of scope of this experimental document.
    >
    > On the other hand, we not only show the default Contrace request
    > timeout value (currently 4 sec.) but also provide the flexibility of
    > the value setting. The current draft says that Contrace users
    > (i.e. consumer) can specify the timeout value by each request (if they
    > wish), and operators can set up accepted timeout value on their
    > routers (if they wish). (It means even if consumer specifies longer
    > timeout value, routers can ignore the timeout value and act with its
    > configured timeout value.) This idea gives some flexibility and may
    > reduce some risks.
    >
    >> 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.
    >
    > Thanks for your information. I’d like to know the promising 
    > candidate
    > mechanisms you here mentioned. If the candidate approach can fit to
    > the traceroute facility, we certainly consider it.
    > But please remember that Contrace is traceroute-like tool and should
    > be simply implemented.
    >
    >>> 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.
    >
    > I’m sorry but I disagree with this point.
    > Regardless of the intended status, it is always better to consider the
    > compatibility of the protocol and mention the potential approaches in
    > the draft if there are. Sorry if I'm perfectly influenced by the IETF
    > culture, but it’d not be wrong in IRTF I think.
    >
    >> 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.
    >
    > IMO, many (or most) security semantics can be common and the solutions
    > can be shared with the regular interest/data communication in CCN. If
    > there are some independent risks in the Contrace request/reply
    > communications, I agree that at least we should clarify them in the
    > document.
    >
    >> 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?
    >
    > While we assign new packet type values, the packet format for Contrace
    > request/reply is perfectly compliant with CCNx-1.0 TLV.
    > This means that we can reuse the CCNx ValidationAlgorithm TLV and CCNx
    > ValidationPayload TLV defined in the ccnxmessages draft. If other
    > general/common security mechanisms are needed in CCN, they should be
    > defined in the draft or other common security document(s) and can be
    > used for Contrace as well. Of course, as I mentioned above, we should
    > carefully study what the Contrace-dependent or Contrace-original
    > security concerns are, and we will clarify the issues and hopefully
    > provide the solutions.
    >
    >>> 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.
    >
    > Local cache and CS information/states can be probed on nodes/routers
    > by local commands. The unique point of Contrace is to enable to
    > investigate not only various network conditions but “in-network”
    > cache information/states. The Contrace implementation simply supports
    > both. In other words, if an operator only wants to measure the network
    > states, s/he can use Contrace for “network-only measurement” (by
    > specifying “no cache information” option). If an operator wants to
    > probe both CS and network conditions, s/he can use it for
    > “network-and-CS measurement”, which is the default.
    >
    > For the I-D specification, it may be possible to separate
    > “network-only measurement” draft and “network-and-CS 
    > measurement”
    > draft. I can follow the decision if all agree. However, in my current
    > sense, covering both in a single draft is certainly feasible as it’s
    > not complex.
    >
    > Thank you very much for raising interesting topics and valuable
    > comments.
    >
    > Best regards,
    > --
    > Hitoshi Asaeda
    
    DaveO
    
    _______________________________________________
    icnrg mailing list
    icnrg@irtf.org
    https://www.irtf.org/mailman/listinfo/icnrg