Re: [icnrg] I just submitted an update to my ICN QoSArch draft

"David R. Oran" <daveoran@orandom.net> Wed, 04 December 2019 14:38 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 1FB4312012E for <icnrg@ietfa.amsl.com>; Wed, 4 Dec 2019 06:38:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 TLK6R_zwikn6 for <icnrg@ietfa.amsl.com>; Wed, 4 Dec 2019 06:37:59 -0800 (PST)
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 E525A120813 for <icnrg@irtf.org>; Wed, 4 Dec 2019 06:37:58 -0800 (PST)
Received: from [24.218.80.86] ([IPv6:2601:184:407f:80ce:549b:1b0f:9605:6698]) (authenticated bits=0) by spark.crystalorb.net (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id xB4EbkuK025220 (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256 verify=NO); Wed, 4 Dec 2019 06:37:48 -0800
From: "David R. Oran" <daveoran@orandom.net>
To: "Luca Muscariello" <muscariello@ieee.org>
Cc: "Thomas C. Schmidt" <t.schmidt@haw-hamburg.de>, icnrg <icnrg@irtf.org>
Date: Wed, 04 Dec 2019 09:37:41 -0500
X-Mailer: MailMate (1.13.1r5669)
Message-ID: <30DF61DA-30A2-4BC8-AECA-EFB23F083C10@orandom.net>
In-Reply-To: <CAH8sseTW_xTX+ne8Sgpd7Nk9HsKRKP9VjK_8RVBsk6s8+gG5rw@mail.gmail.com>
References: <157089431975.1372.17365919232442804449@ietfa.amsl.com> <5C68D385-F901-4A3A-88C9-350234E7C162@orandom.net> <5a454a8646ec42f39e9ba45d45584159@HUB02.mailcluster.haw-hamburg.de> <103fafd8-a505-d018-5060-f142834c60f7@haw-hamburg.de> <60334FA1-4CF1-4C45-8D86-9BC0D32E1019@orandom.net> <CAH8sseSi-xjud6WrarTxg2fGkj-edGWNtMDArzffSzPD4dznSA@mail.gmail.com> <B00FC4AD-8254-465E-8494-266AD868BFA6@orandom.net> <CAH8sseTW_xTX+ne8Sgpd7Nk9HsKRKP9VjK_8RVBsk6s8+gG5rw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_MailMate_C9735AD7-3FE3-4282-95FF-896BFEECF541_="
Content-Transfer-Encoding: 8bit
Embedded-HTML: [{"HTML":[572, 28204], "plain":[254, 17620], "uuid":"EC6ECD99-1AA4-4C45-9EEA-9C5D45545472"}]
Archived-At: <https://mailarchive.ietf.org/arch/msg/icnrg/HiBw0J5Eu_99pFizUm-wN3Lb8vs>
Subject: Re: [icnrg] I just submitted an update to my ICN QoSArch draft
X-BeenThere: icnrg@irtf.org
X-Mailman-Version: 2.1.29
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, 04 Dec 2019 14:38:02 -0000

Excellent, thanks. I’ll wait to put in an update until I hear back 
from Dirk & Börje about whether they agree with my proposed next steps. 
I’ll be sure this gets in before heading to RG last call.

On 4 Dec 2019, at 9:34, Luca Muscariello wrote:

> On Sat, Nov 30, 2019 at 2:53 PM David R. Oran <daveoran@orandom.net> 
> wrote:
>
>> Thanks Luca, very helpful.
>> Couple of followup questions:
>>
>>    1.
>>
>>    Despite the caveat that I’m obviously oversimplifying, you point 
>> out
>>    that I’m not being “100% accurate” in my new text about 
>> bandwidth
>>    allocation. Could you perhaps suggest some (hopefully 
>> terse/simple) wording
>>    that would improve the accuracy?
>>
>>
> As short as possible
>
> "There is per-Interest/Data state at every hop of the path and 
> therefore
> outstanding Interests
> provide information that can be used to optimize resource allocation 
> for
> data returning on the inverse path, such as
> bandwidth sharing, prioritization and overload control".
>
>
>>
>>    1.
>>
>>    The background giving theory justification for the assertions 
>> about
>>    ICN congestion control advantages might be really useful for some 
>> readers.
>>    Might you suggest one or two references I could add?
>>
>>
> This is one example about how and why outstanding interests are 
> related to
> network resources optimization.
> Full disclosure, I'm a co-author of this paper.
>
> https://doi.org/10.1016/j.comnet.2016.09.012
>
>
> Luca
>
>
>
>>
>> Best,
>> DaveO.
>>
>> On 29 Nov 2019, at 10:43, Luca Muscariello wrote:
>>
>>
>>
>> On Thu, Nov 28, 2019 at 5:12 PM David R. Oran <daveoran@orandom.net>
>> wrote:
>>
>>> On 17 Nov 2019, at 19:27, Thomas C. Schmidt wrote:
>>>
>>> Hi Dave,
>>>
>>> as promised, here comes some feedback on the QoSArch draft.
>>>
>>> Thanks a ton!
>>>
>>> Typos have already been spotted by Anil, so just a general remark on
>>> capitalization: C/consumers and P/producers, also I/interest etc. 
>>> are not
>>> always treated uniformly.
>>>
>>> See my replies to Anil, - I think I fixed all the typos he pointed 
>>> out.
>>> For the consistent capitalization, I chose to have consumer and 
>>> producer
>>> consistently lower case, and Interest capitalized. -03 will have 
>>> these and
>>> the other changes below based on your comments.
>>>
>>> The following is in chronological order:
>>>
>>> Section 3.1:
>>> "There is per-Interest/Data state at every hop of
>>> the path and therefore for each outstanding Interest, bandwidth for
>>> data returning on the inverse path can be allocated."
>>>
>>> IMO this sounds simpler than it is, even if the size of data chunks 
>>> is
>>> known. Traffic is returning with an unknown delay. More 
>>> specifically,
>>> traffic is governed by a stochastic rate equation, and stochastic 
>>> calculus
>>> tells us that delay and delay variation are first order terms. At 
>>> least in
>>> the current Internet, the delay variation attains the same order of
>>> magnitude as the delay itself, thus making actual traffic return 
>>> rates hard
>>> to predict.
>>>
>>> Well, I am certainly oversimplifying the situation. I was hoping 
>>> that by
>>> just saying “allocated” I could avoid people like you paying 
>>> attention and
>>> pointing out that the stochastic nature of RTTs makes accurate 
>>> allocation
>>> difficult. For open-loop sources like IP the delay and delay 
>>> variation are
>>> in fact of similar magnitude, which of course means deterministic
>>> pre-allocation will get things wrong nearly all the time. The 
>>> situation is
>>> somewhat better for request-response closed-loop protocols like ICN, 
>>> but
>>> your basic point still holds.
>>>
>>> I suspect there will be other readers with congestion control clue 
>>> who
>>> will pick up on this, so I definitely ought to add something to the
>>> document. I struggled with just how much, and came up with the 
>>> following,
>>> which I will add to the end of section 3.1:
>>>
>>> “Given the stochastic nature of round trip times, and the ubiquity 
>>> of
>>> wireless links and encapsulation tunnels with variable bandwidth, a 
>>> simple
>>> scheme that admits interests only based on a time-invariant estimate 
>>> of the
>>> returning link bandwidth will perform poorly. However, two 
>>> characteristics
>>> of NDN and CCNx-like protocols can substantially help to improve the
>>> accuracy and responsiveness of the bandwidth allocation:
>>>
>>>    1.
>>>
>>>    RTT is bounded by the Interest lifetime, which puts an upper 
>>> bound on
>>>    the RTT uncertainty for any given Interest/Data exchange. If 
>>> Interest
>>>    lifetimes are kept reasonably short (a few RTTs) the allocations 
>>> do not
>>>    have to deal with an arbitrarily long tail. One could in fact do 
>>> a
>>>    deterministic allocation on this basis, but the result would be 
>>> highly
>>>    pessimistic. Nevertheless, having a cut-off does improve the 
>>> performance of
>>>    an optimistic allocation scheme.
>>>    2.
>>>
>>>    Returning Data packets can be congestion marked by an ECN-like
>>>    marking scheme if the inverse link starts experiencing long queue 
>>> occupancy
>>>    or other congestion indication. Unlike TCP/IP, where the rate 
>>> adjustment
>>>    can only be done end-to-end, this feedback is usable immediately 
>>> by the
>>>    downstream ICN forwarder and the Interest shaping rate lowered 
>>> after a
>>>    single link RTT. This may allow less pessimistic rate adjustment 
>>> schemes
>>>    than the AIMD with .5 multiplier that is used on TCP/IP networks. 
>>> It also
>>>    allows the rate adjustments to be spread more accurately among 
>>> the
>>>    Interest/Data flows traversing a link sending congestion 
>>> signals.”
>>>
>>>
>> The instantaneous number of pending interests (N_t) is the integral 
>> of the
>> difference between interest(I_t) and data rates (D_t):
>> N_t = \Int_[0,t] max(0, I_u - D_t)du.
>>
>> This is a virtual queue measured at a given node.
>> As these rates can be associated naturally on a per-packet (1:1) 
>> basis and
>> aggregated and disaggregated as needed (per interface, per prefix 
>> etc)
>> several virtual queues can be computed. These are the equivalence 
>> classes
>> according to Dave's definition.
>>
>> These virtual queues can be associated naturally to the Lagrange
>> multipliers associated to the congested links
>> in the network and therefore they are equivalent to ECN signals, 
>> which, in
>> the case of TCP, can also be associated
>> to congested links as they are fundamentally associated to the 
>> capacity
>> constraints in a global network optimization problem.
>>
>> There is previous work where these concepts have been formally 
>> defined,
>> that I can report if needed.
>>
>> Even if delays follow a stochastic process that does not mean they 
>> cannot
>> be used in practice.
>> Stochastic is not a synonym of unpredictable. In the case of a 
>> virtual
>> queues (as defined above),
>> the integral formulation is a lot more robust than delay measurements
>> (first or second order statistics)
>> and could be used in theory to optimize resource allocation.
>>
>> If Dave's text may be not 100% accurate, I think the idea is valid 
>> and
>> would be good to have it
>> spelled out entirely in the document, with maybe reference with the
>> theoretical concepts.
>> This is the fundamental underlying advantage, with a very solid
>> theoretical explanation
>> of local flow balance and why it is formally superior to IP to 
>> control
>> congestion.
>>
>> Nonetheless, I agree with Thomas when he says, "this sounds simpler 
>> than
>> it is"!
>>
>>
>>
>>
>>>
>>>
>>> What do you think? This will go in -03 unless you have further 
>>> comments
>>> soon.
>>>
>>> Section 4, Table 2: I guess this still needs some love ;)
>>>
>>> xml2rfc gives me little to no control over text table formatting. 
>>> I’m
>>> going to leave this for now since I’m not motivated to do a lot of 
>>> work to
>>> defeat this stupid layout scheme.
>>>
>>> Section 4:
>>>
>>> "1. How do you create _equivalence classes_ (a.k.a. flows) of 
>>> traffic
>>> to which different QoS treatments are applied?"
>>>
>>> I understood that you aim for "equivalence classes" that are larger 
>>> than
>>> individual flows?
>>>
>>> Yes, modulo one’s view on what constitutes a flow in ICN terms. 
>>> This is
>>> one reason I tried to minimize the use of the term “flow” in 
>>> favor of
>>> “equivalence class” since the latter captures the actual math of 
>>> which
>>> packets are treated the same way. I don’t want to fall into the 
>>> ancient
>>> argument from TCP/IP where you could, if you were crazy enough, take
>>> packets of the same TCP “flow” and put them in different 
>>> diffserv classes
>>> and hence give them different QoS treatments.
>>>
>>> ... see Section 6.1:
>>>
>>> "First and foremost, hierarchical names are a much richer basis for
>>> specifying equivalence classes than IP 5-tuples. The IP address (or
>>> prefix) can only separate traffic by topology to the granularity of
>>> hosts, and not express actual computational instances nor sets of
>>> data."
>>>
>>> -> strong agreement from my side ...
>>>
>>> Great. From this I assume you don’t see the need for any change 
>>> here?
>>>
>>> Section 6.3:
>>>
>>> "Such a QoS treatment for ICN could invoke
>>> native ICN mechanisms, none of which are present in IP, such as:
>>> ..."
>>>
>>> I would suggest to add the option of "correlating cache utilization 
>>> with
>>> forwarding resources" to the enumeration.
>>>
>>> Good idea, will do. I think “coordinating” might be better in 
>>> this
>>> context though than “correlating”.
>>>
>>> Section 6.5:
>>>
>>> "For example, cached content for a given equivalence class
>>> can be considered _fate shared_ in a cache whereby objects from the
>>> same equivalence class are purged as a group rather than
>>> individually."
>>>
>>> This seems to indicate that all content items of a given equivalence
>>> class are governed by the same timing (belong to the same packet 
>>> train),
>>> which need not be the case.
>>>
>>> Anil complained a bit about this as well. See my response for some 
>>> more
>>> context, especially about some of the peculiarities of NAND flash as 
>>> a
>>> cache memory technology. My intention is to point out that explicit
>>> equivalence classes allow you to fate share cache space, not that 
>>> you MUST
>>> do it, or that the fate sharing is the primary discriminator in 
>>> driving an
>>> eviction algorithm. Other things are more important, such as RCT, 
>>> which
>>> will capture, at least loosely, the sliding horizon of packet 
>>> trains. My
>>> thought was that one’s basic algorithm would pick a Data packet to 
>>> evict,
>>> and then if you were under pressure to free more space, evict the
>>> fate-shared objects as well.
>>>
>>> I don’t want to get into a long digression into cache replacement
>>> algorithms. How about if I just add the caveat that you do this only 
>>> when
>>> your cache is under pressure and you are endanger of thrashing?
>>>
>>> So “…This can recover cache space more quickly and at lower 
>>> overhead than
>>> pure per-object replacement when a cache is under extreme pressure 
>>> and in
>>> danger of thrashing.“
>>>
>>> "In addition, since the
>>> forwarder remembers the QoS treatment for each pending Interest in
>>> its PIT, the above cache controls can be augmented by policy to
>>> prefer retention of cached content for some equivalence classes as
>>> part of the cache replacement algorithm."
>>>
>>> I find this a bit hard to parse: Are you referring to additional 
>>> cache
>>> policy instructions in PIT state or to correlating PIT treatment 
>>> with cache
>>> replacement?
>>>
>>> Neither, actually. I’m saying that the QoS treatment kept in the 
>>> PIT that
>>> is used to drive resources on the downstream link can be used to 
>>> affect the
>>> caching decision as well. You don’t need to only pay attention to 
>>> what the
>>> producer put in his RCT. Any suggestions for how to say this better?
>>>
>>> Section 7: Discussion of consumer/producer/operator roles
>>>
>>> In the context of a larger (multi-AS) network, I must confess to be 
>>> a bit
>>> lost here ... or more specifically: hesitant.
>>>
>>> I can follow with consumers keeping control over their access links 
>>> and
>>> maybe steering edge caching. It may also be tempting to enable 
>>> producers to
>>> characterize the nature of their content (even though this needs 
>>> some
>>> business model to prevent producers from just declaring every piece 
>>> as
>>> "highest priority"). I do see network operators in the role of 
>>> optimizing
>>> traffic dissemination/service w.r.t. their customers - the latter 
>>> getting
>>> complex, though, when looking at transit providers.
>>>
>>> This is why I think we can avoid the trap of simple remarking just
>>> because that’s all IP could do. One could have a stack, or simply 
>>> preserve
>>> the original QoS treatment while allowing any ISP, including transit 
>>> ISPs,
>>> to re-classify (e.g. through EC3 style aggregation) and/or provide 
>>> AS-local
>>> QoS treatments.
>>>
>>> The current Internet situation is afaik that large content providers 
>>> make
>>> dedicated peering agreements with large edge providers to shuffle 
>>> their
>>> content to the consumers at improved service quality. Such 
>>> operations could
>>> translate to, e.g., cache reservations, but would be subject to 
>>> contracts
>>> between operators.
>>>
>>> Sure. If you want full-blown CDNI it’s unlikely all that state 
>>> would be
>>> carried in the layer3 data plane packets anyway.
>>>
>>> The maybe obvious interest to democratize content distribution 
>>> services
>>> on a more fine-granular, individual level (i.e., not as business 
>>> contracts
>>> between giants) seems like a huge remaining challenge.
>>>
>>> Sure. Based on the above, I’ll take these as important musings as 
>>> opposed
>>> to something that needs to be explicitly added to a QoS architecture
>>> document.
>>>
>>> I find this is extremely interesting, though, and we should aim for 
>>> more
>>> reflection and ideas in the near future!
>>>
>>> See my upcoming email on how I think ICNRG might want to deal with 
>>> this
>>> piece of work of mine.
>>>
>>> Best,
>>> Thomas
>>>
>>> Thanks again for really insightful comments!
>>> DaveO.
>>>
>>> On 17/11/2019 09:52, Anil Jangam (anjangam) wrote:
>>>
>>> Hello Dave,
>>>
>>> We have reviewed the QoS arch draft and added our comments in the
>>> attached word document.
>>>
>>> Thank you,
>>> /anil.
>>>
>>>  This has a number of edits based on comments received so far 
>>> (not
>>> enough!) and offline discussions with a few people.
>>> The major addition is a discussion of what the implications of
>>> incorporating INTserv-like QoS features into CCNx or NDN might be.
>>> Comments please!!!!!
>>> DaveO
>>> Forwarded message:
>>>> From: internet-drafts@ietf.org
>>>> To: i-d-announce@ietf.org
>>>> Subject: I-D Action: draft-oran-icnrg-qosarch-02.txt
>>>> Date: Sat, 12 Oct 2019 08:31:59 -0700
>>>>
>>>> A New Internet-Draft is available from the on-line Internet-Drafts
>>>> directories.
>>>>
>>>>
>>>> Title : Considerations in the development of a QoS
>>>> Architecture for CCNx-like ICN protocols
>>>> Author : Dave Oran
>>>> Filename : draft-oran-icnrg-qosarch-02.txt
>>>> Pages : 24
>>>> Date : 2019-10-12
>>>>
>>>> Abstract:
>>>> This is a position paper. It documents the author's personal views
>>>> on how Quality of Service (QoS) capabilities ought to be
>>>> accommodated
>>>> in ICN protocols like CCNx or NDN which employ flow-balanced
>>>> Interest/Data exchanges and hop-by-hop forwarding state as their
>>>> fundamental machinery. It argues that such protocols demand a
>>>> substantially different approach to QoS from that taken in TCP/IP,
>>>> and proposes specific design patterns to achieve both
>>>> classification
>>>> and differentiated QoS treatment on both a flow and aggregate
>>>> basis.
>>>> It also considers the effect of caches as a resource in addition to
>>>> memory, CPU and link bandwidth that should be subject to explicitly
>>>> unfair resource allocation. The proposed methods are intended to
>>>> operate purely at the network layer, providing the primitives
>>>> needed
>>>> to achieve both transport and higher layer QoS objectives. It
>>>> explicitly excludes any discussion of Quality of Experience (QoE)
>>>> which can only be assessed and controlled at the application layer
>>>> or
>>>> above.
>>>>
>>>>
>>>> The IETF datatracker status page for this draft is:
>>>> https://datatracker.ietf.org/doc/draft-oran-icnrg-qosarch/
>>>>
>>>> There are also htmlized versions available at:
>>>> https://tools.ietf.org/html/draft-oran-icnrg-qosarch-02
>>>> https://datatracker.ietf.org/doc/html/draft-oran-icnrg-qosarch-02
>>>>
>>>> A diff from the previous version is available at:
>>>> https://www.ietf.org/rfcdiff?url2=draft-oran-icnrg-qosarch-02
>>>>
>>>>
>>>> Please note that it may take a couple of minutes from the time of
>>>> submission
>>>> until the htmlized version and diff are available at 
>>>> tools.ietf.org.
>>>>
>>>> Internet-Drafts are also available by anonymous FTP at:
>>>> ftp://ftp.ietf.org/internet-drafts/
>>>>
>>>> _______________________________________________
>>>> I-D-Announce mailing list
>>>> I-D-Announce@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/i-d-announce
>>>> Internet-Draft directories: http://www.ietf.org/shadow.html
>>>> or ftp://ftp.ietf.org/ietf/1shadow-sites.txt
>>> _______________________________________________
>>> icnrg mailing list
>>> icnrg@irtf.org
>>> https://www.irtf.org/mailman/listinfo/icnrg
>>>
>>> --
>>>
>>> Prof. Dr. Thomas C. Schmidt
>>> ° Hamburg University of Applied Sciences Berliner Tor 7 °
>>> ° Dept. Informatik, Internet Technologies Group 20099 Hamburg, 
>>> Germany °
>>> ° http://inet.haw-hamburg.de/members/schmidt Fon: +49-40-42875-8452 
>>> °
>>>
>>> _______________________________________________
>>> icnrg mailing list
>>> icnrg@irtf.org
>>> https://www.irtf.org/mailman/listinfo/icnrg
>>>
>>> DaveO
>>> _______________________________________________
>>> icnrg mailing list
>>> icnrg@irtf.org
>>> https://www.irtf.org/mailman/listinfo/icnrg
>>>
>> DaveO
>>


> _______________________________________________
> icnrg mailing list
> icnrg@irtf.org
> https://www.irtf.org/mailman/listinfo/icnrg

DaveO