Re: [EToSat] BDP parameters draft (was: Re-chartering for extension work)

Kuhn Nicolas <Nicolas.Kuhn@cnes.fr> Fri, 20 December 2019 10:30 UTC

Return-Path: <Nicolas.Kuhn@cnes.fr>
X-Original-To: etosat@ietfa.amsl.com
Delivered-To: etosat@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C5396120882 for <etosat@ietfa.amsl.com>; Fri, 20 Dec 2019 02:30:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, 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 Enq_9IRF-3an for <etosat@ietfa.amsl.com>; Fri, 20 Dec 2019 02:30:51 -0800 (PST)
Received: from mx1.cnes.fr (mx1.cnes.fr [194.199.174.200]) (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 6A60E120128 for <etosat@ietf.org>; Fri, 20 Dec 2019 02:30:50 -0800 (PST)
X-IronPort-AV: E=Sophos;i="5.69,335,1571702400"; d="scan'208";a="13064757"
X-IPAS-Result: A2F3AAD3ofxd/wIBeApkGgEBAQEBAQEBAQMBAQEBEQEBAQICAQEBAYF8giJZE4EHKgqDfZEbmzEJAQEBAQEBAQEBKwkBAgEBhEACF4IGJDgTAhABAQEEAQEBAQEFAgEBAgJphGtMDIYzAQEBAQMjETkMEAIBBQMNCwICBiACAgIwFRACBA4FCIMbgncPqix1gTIahCABAwIChggGgQ4ogWWMToERR4JMPoJkAQEDgUoYBRAjglYygiwEkDSeWQeBP3iCRIRujwF3gU2MKQOLZZAXhwyUEyOBWDMaJ4M4UBiNKBqIZIU/RDCBIAiRIAGBDwEB
X-URL-LookUp-ScanningError: 1
From: Kuhn Nicolas <Nicolas.Kuhn@cnes.fr>
To: 'Christian Huitema' <huitema@huitema.net>
CC: "'Gorry (erg)'" <gorry@erg.abdn.ac.uk>, "'etosat@ietf.org'" <etosat@ietf.org>, "emile.stephan@orange.com" <emile.stephan@orange.com>
Thread-Topic: BDP parameters draft (was: [EToSat] Re-chartering for extension work)
Thread-Index: AQHVtUdZsFSof011n0q3tD9SYZZAOafC1EiA
Date: Fri, 20 Dec 2019 10:29:45 +0000
Deferred-Delivery: Fri, 20 Dec 2019 10:30:45 +0000
Message-ID: <F3B0A07CFD358240926B78A680E166FF1ED2F2EC@TW-MBX-P03.cnesnet.ad.cnes.fr>
References: <A56547B6-2E3B-4ABE-8C9B-BA9ACC489FB2@mnot.net> <F3B0A07CFD358240926B78A680E166FF1ED2D685@TW-MBX-P03.cnesnet.ad.cnes.fr> <90c3682a-8d0b-2735-3a26-bc180011a3bb@huitema.net>
In-Reply-To: <90c3682a-8d0b-2735-3a26-bc180011a3bb@huitema.net>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-tm-as-product-ver: SMEX-11.0.0.4255-8.100.1062-25114.006
x-tm-as-result: No--23.299600-0.000000-31
x-tm-as-user-approved-sender: Yes
x-tm-as-user-blocked-sender: No
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/etosat/QHov5xrCFH1-X9YqMsDmMa4aaqo>
Subject: Re: [EToSat] BDP parameters draft (was: Re-chartering for extension work)
X-BeenThere: etosat@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "The EToSat list is a non-WG mailing list used to discuss performance implications of running encrypted transports such as QUIC over satellite." <etosat.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/etosat>, <mailto:etosat-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/etosat/>
List-Post: <mailto:etosat@ietf.org>
List-Help: <mailto:etosat-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/etosat>, <mailto:etosat-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 20 Dec 2019 10:30:55 -0000

Thank you for this feedback.
We are working on an updated version of the document. 
At least, we start a security discussion section. We also adapt the last_bdp parameter as you suggested.  
The parameters would likely to be (at least) ;
   o  last_bdp (0x000X): The BDP measured on the previous connection by
      the server.  It is an integer in unit of bytes.  Using the
      congestion_window defined in [I-D.ietf-quic-recovery], last_bdp
      can be set to congestion_window.
   o  last_rtt (0x000X): The minimum RTT measured on the previous
      connection by the server.  It is an integer in unit of
      milliseconds.  Using the min_rtt defined in
      [I-D.ietf-quic-recovery], last_rtt can be set to min_rtt.
   o  initial_max_pkt_number (0x000X): The maximum amount of packets
      that the server is allowed to send when reconnecting.  It is an
      integer in unit of packets.

Cheers, 

Nico

-----Message d'origine-----
De : Christian Huitema <huitema@huitema.net> 
Envoyé : mercredi 18 décembre 2019 03:03
À : Kuhn Nicolas <Nicolas.Kuhn@cnes.fr>
Cc : 'Gorry (erg)' <gorry@erg.abdn.ac.uk>; 'etosat@ietf.org' <etosat@ietf.org>; emile.stephan@orange.com
Objet : Re: BDP parameters draft (was: [EToSat] Re-chartering for extension work)

I am looking at this draft before trying to implement it. I think I understand the spirit of the draft, but I have a couple of questions regarding how this is supposed to work.

There is probably a typo in the formulation of the BDP as "last_bdp can be set to min_rtt*congestion_window". This would give a value in bytes*seconds, when we expect bytes. Using "min_rtt*received_rate" would work, since clients can certainly measure the rate at which the server was sending data. In fact, sending both the BDP and the RTT would make sense.

By default, the number of RTT required to reach a full bandwidth BDP is log2(BDP/IWbytes). In my tests of the "250Mbps/3Mbps" scenario, the required BDP is reached in 3.6 seconds after starting with IW10.
Starting with IW160 would shave 2.4 seconds on that total, etc. We would of course need RTT evaluation and pacing, but for high BDP scenarios we need that anyhow. Learning the BDP in advance would help there.

All that sounds good, but I don't know how the client can safely estimate IW. The draft says "use the previous sender value", but I don't understand how the client learns that. I think that the client knows the previous BDP, and it also knows how long ago the measurement was made.
If the time is short, there are good chances that the new conditions are similar to the previous ones, but if the time is long there is a high risk that they are different. Let's assume that the client sends a BDP parameter with a large value. Should the server trust it? Should it initialize CWIN to a fraction of that, and chose a smaller fraction if the measurement was old? How does the server know how old the measurement was?

There is also a security aspect there. The server that blindly trusts the BDP option will blast a large number of packets. What if the client is trying to sabotage the local network? Why should the server trust the client? The security section does not cover that...

-- Christian Huitema

On 12/17/2019 7:27 AM, Kuhn Nicolas wrote:
> Hi Mark, Lars,
>
> Many meetings discussed the impacts of QUIC encryption on satellite Performance-enhancing proxy (PEP) and the benefit of exchanging additional transport parameters.
> draft-kuhn-quic-0rtt-bdp was mentioned as a possible extension during « Quick QUIC Update » presentation.
>
> We have updated draft-kuhn-quic-0rtt-bdp-05 as an extension of QUIC.
> We propose to include it in the re-chartering discussion.
>
> Regards,
> Nicolas, Emile and Gorry
>
> https://datatracker.ietf.org/meeting/106/materials/slides-106-tsvarea-
> quick-quic-update-mark-nottingham-00.pdf
> https://tools.ietf.org/html/draft-kuhn-quic-0rtt-bdp-05
>