Re: [tsvwg] [Ecn-sane] per-flow scheduling

Bob Briscoe <ietf@bobbriscoe.net> Mon, 22 July 2019 13:44 UTC

Return-Path: <ietf@bobbriscoe.net>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E124B1202AF for <tsvwg@ietfa.amsl.com>; Mon, 22 Jul 2019 06:44:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
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 0K9ZvIkpv11t for <tsvwg@ietfa.amsl.com>; Mon, 22 Jul 2019 06:44:03 -0700 (PDT)
Received: from server.dnsblock1.com (server.dnsblock1.com [85.13.236.178]) (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 438001202AC for <tsvwg@ietf.org>; Mon, 22 Jul 2019 06:44:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:References:Cc:To:Subject:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=HNyQc8XimesH8iOP4QRfj+Jyix2rHd6OnK4kScb3Lqg=; b=gbCe4dEs06TSBPSMOd1jLPmbr SR4mMSZSvVTUv+FujCxRgrZRsp6V1DmXxeesy3CJyw1dJd1roswjpzpV6k5rM7Eeu+PYXqv259PCm D48ZaX6Ip1IGI1H8rxrCy1/TDfWBArFf4R9iFxkDFPAoCAapJnNF9kSruP8OsOxqOys899Syb9bSn JyTvwQjhsV2KFIfE3jkNXLpsFaUgkbsF5Ebzdl7wo8/Y3MC54rxA1otO9WImWZMgWraoNeHAolF7j a8m1g8+I+inThRRKS++nAHnXP66Hl24O4pRvkXLDdQfsmeKH0sFLcOuDpGAqAL00JIp6nldaPnB1u XZaCvX80w==;
Received: from modemcable186.232-83-70.mc.videotron.ca ([70.83.232.186]:40294 helo=[192.168.0.161]) by server.dnsblock1.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92) (envelope-from <ietf@bobbriscoe.net>) id 1hpYbh-0005ho-A7; Mon, 22 Jul 2019 14:44:01 +0100
From: Bob Briscoe <ietf@bobbriscoe.net>
To: Jonathan Morton <chromatix99@gmail.com>, "David P. Reed" <dpreed@deepplum.com>
Cc: "ecn-sane@lists.bufferbloat.net" <ecn-sane@lists.bufferbloat.net>, tsvwg IETF list <tsvwg@ietf.org>
References: <350f8dd5-65d4-d2f3-4d65-784c0379f58c@bobbriscoe.net> <40605F1F-A6F5-4402-9944-238F92926EA6@gmx.de> <1563401917.00951412@apps.rackspace.com> <D1595770-9481-46F6-AC50-3A720E28E03D@gmail.com>
Message-ID: <d8911b7e-406d-adfd-37a5-1c2c20b353f2@bobbriscoe.net>
Date: Mon, 22 Jul 2019 09:44:00 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <D1595770-9481-46F6-AC50-3A720E28E03D@gmail.com>
Content-Type: multipart/alternative; boundary="------------C66D4700567FEDC404AB9980"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server.dnsblock1.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: server.dnsblock1.com: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: server.dnsblock1.com: in@bobbriscoe.net
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/od0xDtPOTmT-MmRq2jWmSNQej0w>
Subject: Re: [tsvwg] [Ecn-sane] per-flow scheduling
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Jul 2019 13:44:10 -0000

Folks,

As promised, I've pulled together and uploaded the main architectural 
arguments about per-flow scheduling that cause concern:

Per-Flow Scheduling and the End-to-End Argument 
<http://bobbriscoe.net/projects/latency/per-flow_tr.pdf>


It runs to 6 pages of reading. But I tried to make the time readers will 
have to spend worth it.

I have to get on with other stuff for a while. I've caught up with 
/reading/ this thread (after returning from my break), but refrained 
from responding to some individual points, Will try to do that soon.


Finally, I want to emphasize that the purpose is for advocates of 
per-flow scheduling to understand that there is a coherent world view 
that agrees with the arguments in this paper. If you have a different 
set of assumptions and perspectives that leads you to advocate per-flow 
scheduling and disagree with some of these arguments, that's to be 
expected.

The purpose is to explain why some people don't want FQ, and therefore 
why it's important to leave the choice open between FQ and DualQ. That 
has always been the intent of L4S, which supports both.



Bob

On 18/07/2019 06:24, Jonathan Morton wrote:
> Quoting selectively:
>
>> On 18 Jul, 2019, at 1:18 am, David P. Reed<dpreed@deepplum.com>  wrote:
>>
>> This lack of a way to "cooperate" among independent users of a queue cannot be solved by a purely end-to-end solution. (well, I suppose some genius might invent a way, but I have not seen one in my 36 years closely watching the Internet in operation since it went live in 1983.)
>>
>> So, what the end-to-end argument would tend to do here, in my opinion, is to provide the most minimal mechanism in the devices that are capable of building up a queue in order to allow all the ends sharing that queue to do their job - which is to stop filling up the queue!
>> The optimum queueing delay in a steady state would always be one packet or less. Kleinrock has shown this in the last few years. Of course there aren't steady states. But we don't want a mechanism that can't converge to that steady state *quickly*, for all queues in the network.
>> The most obvious notion of fairness is equal shares among source host, dest host pairs. There are drawbacks to that, but the benefit of it is that it affects the IP layer alone, and deals with lots of boundary cases like the case where a single host opens a zillion TCP connections or uses lots of UDP source ports or destinations to somehow "cheat" by appearing to have "lots of flows".
>> I write this to say:
>> 1) some kind of per-flow queueing, during the transient state where a queue is overloaded before packets are dropped would provide much needed information to the ends of every flow sharing a common queue.
>> 2) per-flow queueing, minimized to a very low level, using IP envelope address information (plus maybe UDP and TCP addresses for those protocols in an extended address-based flow definition) is totally compatible with end-to-end arguments, but ONLY if the decisions made are certain to drive queueing delay out of the router to the endpoints.
> These are points that I can agree with quite easily, and which are reflected in my work to date.  Although I don't usually quote Kleinrock by name, the principle of always permitting one MTU per flow in the queue is fairly obvious.
>
> One of the things that per-flow queuing provides to endpoints is differential treatment in AQM.  This is even true of LFQ, although the mechanism may not be obvious to all since there is only one set of AQM state; at minimum, AQM signals are suppressed for sparse flows and thus only provided to saturating flows.  SCE marking would be based on individual packets' sojourn times, which are logically independent from their physical position in the queue.  Careful implementation of a Codel-type AQM would also suppress CE marks (or drops) from well-behaved flows whose sojourn times are below the target, even if unresponsive flows are also present in the same queue, without losing accumulated state about the latter; this is I think already a property of COBALT (as implemented in Cake).  Other AQMs which convert a sojourn time more-or-less directly into a marking rate would also be a good fit.
>
> I would only quibble that providing per-L4-flow fairness *within* a per-host or per-subscriber fairness structure is also feasible, in at least some contexts; Cake implements that, for example.  I hope to be able to amplify the LFQ draft to show how to provide that in a more lightweight manner than Cake manages, on my way to Montreal.
>
> I may also publish CNQ (Cheap Nasty Queuing) as a straw-man draft at the same time, depending on my mood.  It should be good for light relief if nothing else.  It's even lighter-weight than LFQ - but, unlike LFQ, achieves this at the expense of performance.  It maintains only enough state to prioritise sparse flows, with a rather strict definition of "sparse".
>
>   - Jonathan Morton
>
> _______________________________________________
> Ecn-sane mailing list
> Ecn-sane@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/ecn-sane

-- 
________________________________________________________________
Bob Briscoehttp://bobbriscoe.net/