[iccrg] FW: QUIC congestion control

Andy Citron <andycitron@hotmail.com> Tue, 05 May 2020 14:36 UTC

Return-Path: <andycitron@hotmail.com>
X-Original-To: iccrg@ietfa.amsl.com
Delivered-To: iccrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C25D43A07A9 for <iccrg@ietfa.amsl.com>; Tue, 5 May 2020 07:36:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.599
X-Spam-Level:
X-Spam-Status: No, score=-1.599 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, FREEMAIL_FROM=0.001, GB_ABOUTYOU=0.5, LOTS_OF_MONEY=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hotmail.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 kG1tt5L5j9Vn for <iccrg@ietfa.amsl.com>; Tue, 5 May 2020 07:36:32 -0700 (PDT)
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11olkn2082.outbound.protection.outlook.com [40.92.19.82]) (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 31F1A3A074E for <iccrg@irtf.org>; Tue, 5 May 2020 07:36:32 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n7cdRuk9oQTuu8Nu1PbJXqRwYuYFWbUAAYwjRMzwjJdfnJaNXcEyCy/UkLZpXM+rYdWfglZExvanPSVyl5epczv4RhWk/iFIwUfDOK+FclfiuXSP3aNikXYMOaKJdflkQx4P7S2lpwKBFl0ypBnMUoSlFCf8jrAvz7EdYLuut1Z/vTgLu+1JzW8ccXE3E3J44VE57b1cdO2kFeGPBKrC1rwOcL8UVZrqUk5am+cQMTg4O0W90Zknh57JKSncQ4g7uIssd1u8JNxrr6djq0WMo39PMsAEc4Pvyyd5unsRuueiHgkE1JrqEKbI/3x0XAumkxh4VM+GDkgFmwTQZUgL6w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P4X7G1qcj1iOHWlX+g9X0Qp3LZc8FxqushfnuF6XN/E=; b=Us+qlqRfQSMaZZgdE0YLts491v+iBDmP2XoVl2AG9cdaJR/9vLJOoCQJJgJH27Hb8p/zoL/dE3YJ5Gjs54IZr+RxQGs22w5Zx6Fok3O+TdRiOYw7cYr4wvrp3ytkBDWV3ugS+r45QaPITepmnM/5ZANBW+tGH1I8zai7+32vf65hfIda4YFH7sJfrcMGHKFEcJ6Kn+TEslpFec4kZmn5HZAVk0YBxW1U7oCzpwG8Hw8I7FUN0TDOtrSoanRJXsJfTqNyCPliuS6SYHg7R4VVDc6tKXY8JGRHu2mqfVPzwJyGjqzxuX2c9cF0AMVdcg3RbhrNSSl2BmPjXCBkOvKkrQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P4X7G1qcj1iOHWlX+g9X0Qp3LZc8FxqushfnuF6XN/E=; b=uCMiQrKfcbJMvN2+amBzbuZb8ZAkSeOl9Uep1ZFQJH8MGbuQjpKHRRuQTV7wX9CwMbdID0sXTL3q1nC7+6A2WjLpNWT4+me7Cy+cURQSAPtb0LjPwNFFjAflT5A8DNSljapzbQzn3TLGHTqQujLeZjLbh+M6DKUs8p5IVYq3RBPLE6U8jsuPI3oKAu1CTlKH/MCFXRx6YmjclHfY+y/NdmG0kVLiI2b67g0+rlkRpOAY8fxHXQX7L71OPVxgwSVjPsw0CyQEiShhOtO1IkJNUjlLDqxf42UHMU1xGsYs2KoIfZqV+OTNGxb9bocLKlmHrHdZSIVaMyuLWk86CNHq3Q==
Received: from DM6NAM11FT035.eop-nam11.prod.protection.outlook.com (2a01:111:e400:fc4d::40) by DM6NAM11HT092.eop-nam11.prod.protection.outlook.com (2a01:111:e400:fc4d::187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.19; Tue, 5 May 2020 14:36:30 +0000
Received: from BYAPR05MB6613.namprd05.prod.outlook.com (2a01:111:e400:fc4d::45) by DM6NAM11FT035.mail.protection.outlook.com (2a01:111:e400:fc4d::100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.19 via Frontend Transport; Tue, 5 May 2020 14:36:30 +0000
Received: from BYAPR05MB6613.namprd05.prod.outlook.com ([fe80::4dec:9d87:e180:2d62]) by BYAPR05MB6613.namprd05.prod.outlook.com ([fe80::4dec:9d87:e180:2d62%5]) with mapi id 15.20.2979.025; Tue, 5 May 2020 14:36:30 +0000
From: Andy Citron <andycitron@hotmail.com>
To: "iccrg@irtf.org" <iccrg@irtf.org>
Thread-Topic: QUIC congestion control
Thread-Index: AdYSa58OXadBxfz1TUikiQlvF5uyYQFkpliAAAC+5yACuj8EMA==
Date: Tue, 05 May 2020 14:36:30 +0000
Message-ID: <BYAPR05MB6613806D1BE5DF92FC5E6079D0A70@BYAPR05MB6613.namprd05.prod.outlook.com>
References: <BYAPR05MB661310E2625E88F73E244239D0DA0@BYAPR05MB6613.namprd05.prod.outlook.com> <24458C5F-D7A5-4A13-B121-DAA3EC0AA56A@netapp.com> <BYAPR05MB66130E5D027CF5DA50B4DBA1D0D50@BYAPR05MB6613.namprd05.prod.outlook.com>
In-Reply-To: <BYAPR05MB66130E5D027CF5DA50B4DBA1D0D50@BYAPR05MB6613.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-incomingtopheadermarker: OriginalChecksum:0237DE6CABEA896B03550BB7FA48825C1CD68D38F4BD22DF47EA22127B995211; UpperCasedChecksum:5DAB02BF3C7486EB65724DBEC737CC687B6F05B74B8533D5A93FF67C0389ADD5; SizeAsReceived:7179; Count:44
x-tmn: [IP8pvFY91AmRe5HQtoaMAglE2lmoX4cfyAgiW4WzkYZkgPZ/Hbc8B1q/bGwfoCx6rvjHA/GV2u4=]
x-ms-publictraffictype: Email
x-incomingheadercount: 44
x-eopattributedmessage: 0
x-ms-office365-filtering-correlation-id: 85f43867-f01f-4599-d2b5-08d7f101b39e
x-ms-traffictypediagnostic: DM6NAM11HT092:
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: xiOIhcNp+pAaCuZH4ldFPvHXqvyIL3hYreV7nTA0yrL6Fg/5XhlCZUL4v576u/ffUBP/5BUI9HIyjlXO1Of70L2Ii+o0cD9BToIcsJOdrBkNmcT67Hq5HPzeLzpdA5Nirt6LdGdJbvDww3eJALQT6r3Jxf55S/O4L0r7BQmdixBYOeC2j+69lAHRPcL1Sp+6cD0jNB+V1uKrMn2VptlrMjDdFJwjrEyjBNvByFP6bBQUuxhuPB+Zt5Zvf9KbXGXR
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:0; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR05MB6613.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:; DIR:OUT; SFP:1901;
x-ms-exchange-antispam-messagedata: fAhxZt2lChxN0LNuno0Sp06GcP77NV0e8prmQUSK+AVRS2M9Uv81LRLG0w6ji2iqTwDGtAdLCGMgmw/xIJXoHWuscju+n+AUB2h9B9/HZt/vt9iyY5mZj90TX+ZByunQgjwpc95+n99PUx9FIFwm4CHzSz9rudq3lnr0rLGJrN79jr4cZJqfywRDr+pYvIKNNAey8qTuCW5gQ8INSOJLcw==
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: hotmail.com
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 85f43867-f01f-4599-d2b5-08d7f101b39e
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2020 14:36:30.6046 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Internet
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6NAM11HT092
Archived-At: <https://mailarchive.ietf.org/arch/msg/iccrg/WdbasmwVXo6Isl4x_bQNBKDSaPA>
Subject: [iccrg] FW: QUIC congestion control
X-BeenThere: iccrg@irtf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussions of Internet Congestion Control Research Group \(ICCRG\)" <iccrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/iccrg>, <mailto:iccrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/iccrg/>
List-Post: <mailto:iccrg@irtf.org>
List-Help: <mailto:iccrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/iccrg>, <mailto:iccrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 May 2020 14:36:34 -0000

From: Andy Citron 
Sent: Tuesday, April 21, 2020 12:43 PM
To: Eggert, Lars; iccrg@irtf.org
Subject: RE: QUIC congestion control

Lars,
Thanks for the reply.  I will send this to the Internet Congestion Control Research Group mailing list.

Mailing list folks: please take a look at the emails between Lars and myself.  They discuss a congestion control mechanism that IBM came up with years ago.  Apparently it's still in use.  Seems it could be relevant for your needs.

Is there a slack channel or other discussion group for this?  I do have questions about the intended use cases and 'layers' this can be implemented in.

Thanks,
Andy Citron (Senior Programmer, IBM, retired)

-----Original Message-----
From: Eggert, Lars [mailto:lars@netapp.com] 
Sent: Tuesday, April 21, 2020 10:00 AM
To: Andy Citron
Subject: Re: QUIC congestion control

Hi,

sorry for the delay in responding.

I think it might be worthwhile to bring up this suggestion on the IRTF's Internet Congestion Control Research Group mailing list at iccrg@irtf.org.

Thanks,
Lars

On 20-4-14, 18:15, "Andy Citron" <andycitron@hotmail.com> wrote:
>
> Lars, I attended your Brighttalk QUIC tutorial last week. That was
> wonderful.
>
> Back in the mid 80s-90s I was the lead architect for IBM’s System
> Network Architecture LU6.2 group (aka SNA APPC). Your talk took me
> back to various decisions we had to make back when SNA was competing
> with TCP/IP.
>
> In particular we came up with a congestion control mechanism called
> ‘adaptive pacing’ that took a very different approach from TCP.
>
> I’m writing because that approach could be relevant to your desire
> to come up with a different congestion control mechanism for QUIC.
>
> I’m still in touch with a number of the designers of adaptive pacing
> but none of them has any documentation. IBM never published code for
> that. IBM was very proprietary in those days. Any code IBM did have
> wasn’t in any modern language and probably wouldn’t be very
> helpful today even if it was available.
>
> The most likely useful documentation I’ve been able to find on the
> web is this patent: https://patents.google.com/patent/US4736369A/en
>
> I haven’t read through it in enough detail to know if you could
> implement adaptive pacing from that description. Presumably one could,
> since it is a patent. That patent is probably out of ‘patent
> protection’ since its over 20 years old. It does say ‘expired’
> on that website. These days IBM is a big proponent of open source.
>
> I’m retired from IBM and I can’t speak for IBM. But I do have
> contacts who could probably put us in contact with IBM’s lawyers if
> necessary.
>
> The group that produced that patent and the design has long since
> disbanded, retired, died, etc., but I could probably find someone who
> remembers some of the details. I can probably find 2 of the authors on
> that patent.
>
> I’ve been communicating with my friends about the topic. Let me
> include a few of the discussions I had with them on this topic. You
> might find them interesting.
>
> First a high level description of adaptive pacing mechanism: APPN
> architecture had a congestion control mechanism, called adaptive
> pacing. It was window based in the sense that one side would permit a
> window of N fixed size buffers to be sent to it. Buffers would be
> preallocated to be sure there was space for it when it arrived. The
> protocol was for communicating that buffer count to both parties. It
> was an efficient protocol in that ‘next window size’ messages
> would be piggy backed on the half-duplex protocols. No extra messages
> required except for ‘emergencies’.
>
> For cases where window size needed to be changed when the was no
> message to piggy back on, a standalone message could be sent. I think
> it was called an IPM (but I don’t recall what that stands for). For
> severe congestion cases, there was a ‘window slam’ IPM. I.e., stop
> sending me anything! The intent was to avoid overloading systems and
> avoid dropping buffers. It is a ‘hoppity’ protocol, (i.e., each
> server in the path had its own control over the window sizes). But it
> also works point-to-point with only endpoints participating.
> ---------------------------
> Here’s a ‘compare and contrast’ of APPC vs. QUIC. I put this
> together to inform my former co-workers about your presentation. My
> summary: Here's what motivates the need to replace TCP with QUIC and
> some comments on how SNA LU 6.2 dealt with the same issues.
> 1) TCP is becoming ossified: you can't change the protocol without
>    breaking the internet.
>    a) routers, security hardware, firewalls, switches, all examine TCP
>       traffic and drop it if the header bits don't match expectations.
>       1a) this means TCP couldn't be used as the basis of new
>       protocols 2b) much network hardware disallows protocols other
>       than TCP and UDP. So QUIC had to be built on top of UDP.
>    b) TCP doesn't have a way to specify 'version' information.
>
>       TCP option headers are 40 bytes and all used up.
>
>       SNA LU 6.2 had capabilities negotiations at session startup.
>       QUIC is adding that
>
> 2) Session startup times take too many round trips to be efficient.
>
>    a) QUIC will have extra round trips during initial connection, but
>       subsequent sessions between the same hosts will avoid extra
>       round trips.
>
>    SNA LU 6.2 session startup was expensive, but subsequent
>    'conversations' reused existing session, avoiding startup overhead
>    b) HTTP currently does multiplex sessions over one connection, but
>       TCP is unaware of that. QUIC won't have this ability in the
>       first release, but will likely add it later. SNA LU 6.2 had
>       parallel sessions between hosts and reused connections.
>
>    c) some interesting discussion in the presentation about how TCP
>       fakes out end points during long connection times when using
>       slow satellite links
>
> 3) QUIC will take advantage of the fact that HTTP traffic is half-
>    duplex(HDX). HTTP traffic is the majority of internet traffic. TCP
>    protocol is full duplex, but HTTP doesn't take advantage of that,
>    but pays the price for the FDX nature of TCP.
>
>    SNA LU 6.2 was designed as a well-defined HDX protocol. We later
>    added FDX, but I don't think its use got very popular.
>
> 4) QUIC will use TCP's congestion control for now, but in the future
>    might implement something more sophisticated. SNA 6.2 had 'back
>    pressure' congestion control. TCP drops packets and retransmits.
>    That isn't as efficient.
>
> 5) QUIC encrypts all traffic. TCP doesn't encrypt all headers. Leaving
>    it open to 'meta information' sniffing/hacking.
>    a) The network management and security teams are pushing back
>       against QUIC as encrypted traffic makes it impossible to inspect
>       traffic for malware or performance info.
>    b) QUIC protocol encrypts at the QUIC protocol level, not in the OS
>       kernel
>       b1) this means protocol design changes can be made quickly
>           without requiring kernel changes or OS reboot
>       b2) this also means it’s harder to use encryption hardware
>           (not currently implemented). It also means that for large
>           data streams (i.e. video) TCP performs better as the startup
>           overhead is amortized over many packets Watching this talk
>           took my back to my days working on LU 6.2. Lots of the same
>           issues and ways of looking at things, including discussion
>           of the 7 -layer OSI model. It turns out I still find this
>           stuff really interesting.
> -
> - - - - - - -
>
> I’ve been trying to spark an interest in this with my former
> coworkers. It does seem they’re not too interested. But I am. Let me
> know if this adaptive pacing protocol is interesting to you. I can
> probably answer questions if you have any. Cheers, Andy Citron (Senior
> Programmer, IBM, retired)
>