Re: [tcpm] Question on draft-gomez-tcpm-ack-rate-request

Bob Briscoe <in@bobbriscoe.net> Sun, 14 March 2021 22:14 UTC

Return-Path: <in@bobbriscoe.net>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 835583A16AA; Sun, 14 Mar 2021 15:14:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.434
X-Spam-Level:
X-Spam-Status: No, score=-1.434 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=no 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 daKi9f0cZPUK; Sun, 14 Mar 2021 15:14:17 -0700 (PDT)
Received: from mail-ssdrsserver2.hosting.co.uk (mail-ssdrsserver2.hosting.co.uk [185.185.84.51]) (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 A6F6B3A16A7; Sun, 14 Mar 2021 15:14:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender :Reply-To: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=+eO3znzr/ximCvAKO7gCHmwg1KqYURRgwdISuaRvdXA=; b=AZx24/MBW2Zn1seibqDxQLnY8I xz4ZDHtnMuaXDUUP6Ld+lMD3s/T1+1GIvN5xsTulW7ETLE6+woMlbVWYJHHBNRvQlN0Bsrm/Bx8fO PMeRgezYFgH7RJXomJWBkvzIYN2XkVLu6gnpMobokBGLkiwPhG74GUPod0EqSLHzJeSsiQqwPC/Wy 8wLFYBQXBIiR7DBpKqVUwIoRVzLeCoYXqQXaQBks803B5CoP/xMqUTVTgY+0FI0eUt2dF0/s9YIv1 BPF2y2J+oSMe/32Txs8xLnTLTpvJFu+acp3/SMWEaVVgre4mcgXVL/hRwWJIkR4r+/RPbGwr1KOxm IKOb6N0Q==;
Received: from 67.153.238.178.in-addr.arpa ([178.238.153.67]:34050 helo=[192.168.1.11]) by ssdrsserver2.hosting.co.uk with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from <in@bobbriscoe.net>) id 1lLZ04-0002l6-2M; Sun, 14 Mar 2021 22:14:16 +0000
To: Carles Gomez Montenegro <carlesgo@entel.upc.edu>, Jonathan Morton <chromatix99@gmail.com>
Cc: "draft-gomez-tcpm-ack-rate-request@ietf.org" <draft-gomez-tcpm-ack-rate-request@ietf.org>, tcpm IETF list <tcpm@ietf.org>
References: <7af3375e51f849c1ad934a758c30279e@hs-esslingen.de> <494ffff907b21034b43f3ca8151f79d1.squirrel@webmail.entel.upc.edu> <CCE0E8B4-3553-4F2D-A26A-54038CA09A0A@gmail.com> <07b348ce5ee706d1abffccd4878249f8.squirrel@webmail.entel.upc.edu>
From: Bob Briscoe <in@bobbriscoe.net>
Message-ID: <5d7f98b3-93b5-e37c-7a90-0b04e58aa482@bobbriscoe.net>
Date: Sun, 14 Mar 2021 22:14:13 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <07b348ce5ee706d1abffccd4878249f8.squirrel@webmail.entel.upc.edu>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - ssdrsserver2.hosting.co.uk
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: ssdrsserver2.hosting.co.uk: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: ssdrsserver2.hosting.co.uk: in@bobbriscoe.net
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/TIStAhSjsYZ8PLHWkbuJ8Bmx8so>
Subject: Re: [tcpm] Question on draft-gomez-tcpm-ack-rate-request
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 14 Mar 2021 22:14:20 -0000

Carles,

On 12/03/2021 12:27, Carles Gomez Montenegro wrote:
> Hi Jonathan,
>
> Thank you for your quick response!
>
> Please find below my inline responses:
>
>>> On 12 Mar, 2021, at 12:00 pm, Carles Gomez Montenegro
>>> <carlesgo@entel.upc.edu> wrote:
>>>
>>>> Example:
>>>>
>>>>       0                   1                   2                   3
>>>>       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>>>>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>>>      |     Kind      |     Length    |              ExID             |
>>>>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>>>      |I|X|Value|
>>>>      +-+-+-+-+-+-+
>>>>
>>>> The bit "X"=0 would be equivalent to "R"=0, i.e., immediately request
>>>> ACKs. In that case, the 6 bit field "Value" could encode the value of
>>>> "N"
>>>> described in draft-gomez-tcpm-ack-rate-request-02.
>>>>
>>>> The bit "X"=1 would enable delayed ACKs ("R">0) and the 6 bit field
>>>> "Value" would encode the number that "R" defined in
>>>> draft-gomez-tcpm-ack-rate-request-02.
>>>>
>>>> The "I" bit would be defined as in
>>>> draft-gomez-tcpm-ack-rate-request-02.
>>>> (It may make sense to change the order and or naming of the fields, or
>>>> other details of the encoding - this is just an example.)
>>> Yes, your proposal above makes sense!
>>>
>>>> As far as I can see, there *is* a difference between this encoding and
>>>> the
>>>> one in draft-gomez-tcpm-ack-rate-request-02: There is one bit less to
>>>> encode the value of "R", and two bits less to encode the value of "N".
>>>> But
>>>> would that matter? Do we really expect values larger than 63 (or 63)
>>>> for
>>>> "R" and "N"?
>>> Yes, that is a good question, and it would be great to hear what the WG
>>> thinks about that. That is: are there use cases where R or N might need
>>> to
>>> be greater than 63?
>> My gut feeling is that values up to 63 are sufficient in both cases.
> I personally tend to agree... It will be interesting to see if there is
> any particular use case which might require supporting greater values...

[BB] It all depends how long you want the life of this option to be. 
Let's imagine it becomes common to request a DelACK ratio of cwnd/8. 
Then the option would have to be able to cope with growth in packet 
rates over its lifetime.

Apparently the doubling time of link rate has been about 1.5 years since 
the 1970s (according to Wikipedia's page on Edholm's Law). Let's assume 
growth continues similarly (with no justification other than how else 
can we decide?). I guess it takes about 5 years to get a TCP option 
through the IETF. So to be worth the effort, it's surely got to last at 
least 15-25 years after that, preferably longer. 2^ (30 yr / 1.5 yr) ~= 
10^6. I.e. TCP might have to handle a window about a million times 
larger than today by the end of life of this option.

If that seems ridiculous, it is. As a sanity check on Edholm's Law, in 
the last 30yrs of TCP (since 1991) that would imply a growth of 
2^(30/1.5) ~= 10^6 . Given typical TCP windows for Internet access links 
are currently of the order of 100 segments per RTT (30Mb/s with 1500B 
packets over 40ms RTT). Growth of 10^6 to reach only 100 implies TCP's 
window was 0.0001 of a segment in 1991. Clearly daft. What's wrong? Not 
sure. Max packet size has stayed largely unchanged over the public 
Internet., so it's not that. Admittedly doubling time relates to link 
rates, not flow rates. However there's no evidence of more simultaneous 
flows.

Whatever, 63 doesn't seem enough to me.

>
>> It might be possible to contemplate a different encoding which allocates
>> more range to one use of the field than the other, but this encoding is
>> simple enough to be hard to accidentally misinterpret, and that has to be
>> considered a Good Thing and weighed against the benefits of any
>> alternative.

[BB] It certainly seems unnecessary to have as much precision at the 
high end as at the low. No-one will care whether they can set the ack 
ratio to exactly 57 or 56 or 58.

You can divide 6 bits into a 4-bit mantissa (m) and 2-bit exponent (e).
A couple of schemes come to mind:
R = (m+1)*2^(2*e)            => min 1; max 1024
R = (m+1)*2^(4*e)            => min 1; max 65536

Note that I don't see the need for R=0 to be special. It means the ack 
ratio is 1. Which is why both formulae above include (m+1).
I.e. R=0 means ack ratio 1; R=1 means ack ratio 2, and so on (think of R 
as the number of unacked packets between ACKs).



Bob


> Agreed!
>
> Thanks,
>
> Carles
>
>
>>   - Jonathan Morton
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm

-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/