Re: [tcpm] a question for TCPLS

Maxime Piraux <maxime.piraux@uclouvain.be> Fri, 25 March 2022 10:51 UTC

Return-Path: <maxime.piraux@uclouvain.be>
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 941CA3A0D53 for <tcpm@ietfa.amsl.com>; Fri, 25 Mar 2022 03:51:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.109
X-Spam-Level:
X-Spam-Status: No, score=-2.109 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, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=uclouvain.be
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 xcyQY7wwVlAO for <tcpm@ietfa.amsl.com>; Fri, 25 Mar 2022 03:51:19 -0700 (PDT)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20717.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::717]) (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 44F573A0CFD for <tcpm@ietf.org>; Fri, 25 Mar 2022 03:51:13 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f3Bbh57RRIWJjEfe6by+dMwoQIRw5hkNpyNiHodrVpBhi7VBn1NDUphKiyqTyOi5fntVLrdgjAknZnjH//XI2waLNu42H3GGUpJoSHUlG0ckdjlp3zGTXjZ5uUTNxEXjXnw5UIcgiBlXPpTby9vNCM4HPPFEyN6KMI99GXZQGxn2ts3yLslwnZAoOZX7fK6+O6X1VPPpBQrwIDn0OJoxKs0fMJb3jl9jrNlgosAz45uRBbpwXj69PQQDKd0NCm/GQ0np5vwn5OSQXh+aR3Q+kxvpui9A0T1lxQycwzlfUQlFyUY1Ul5nFQhwwgVC2AnG/wkNv3eKyaQy3A6DslgJBQ==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aiJc3XPzOm4tXm+UekyKJVmFnjBAwJu+RcAam8//vsI=; b=OceH6e9U115S8xpA/X6KhHJ/Uz3PlQXJXkXQO/ECGWtOwRsI6kAAlUQjXzu9EItBH1ffhpLpo6tAkUZE3fvQjzSVQxTPMHLdXuDDpbjL3CgIchMlY2OdwxJ1v3rnfhOpzsPtrGBUekomvT6m9LsOJxX1aNizjadClxpBnTm+n03z5uL9aPuJSPDwA5tSine4Cf898rhCyocVCKrlynHRHdLQzpHLq3ZOFOEBfM+03aVi41JWfE0UsBI0yPkni58L3TT4jTGj6QQOaLQ7hNRlBrewZkA8vKyjoHsR3E2dNxhCumonCGt8ZOk6gavLBjrIddqbFuLJ2ICyrpFC3/30oQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uclouvain.be; dmarc=pass action=none header.from=uclouvain.be; dkim=pass header.d=uclouvain.be; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uclouvain.be; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aiJc3XPzOm4tXm+UekyKJVmFnjBAwJu+RcAam8//vsI=; b=T6s6traR+R4PZ71ZlhvfmeDwy43xheo5ms9Szfkv99YUJxa/vqToZuMgdFeep+s9IFCo3su+F4By6yDeUIihrx1OT9bSIbhv80EyLekpkOcJlEKCbZW7t1HelSNDy4Si6rfXECUqEuzZPKI5Hd4X2DdfOy5y8eRalmJ4Q6ZyBUY=
Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=uclouvain.be;
Received: from AM0PR03MB3667.eurprd03.prod.outlook.com (2603:10a6:208:4d::16) by VI1PR03MB3951.eurprd03.prod.outlook.com (2603:10a6:803:6a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 25 Mar 2022 10:51:08 +0000
Received: from AM0PR03MB3667.eurprd03.prod.outlook.com ([fe80::21b7:e8e1:1054:6580]) by AM0PR03MB3667.eurprd03.prod.outlook.com ([fe80::21b7:e8e1:1054:6580%4]) with mapi id 15.20.5102.019; Fri, 25 Mar 2022 10:51:08 +0000
Content-Type: multipart/alternative; boundary="------------D2fBH44TLjplP3P9g7eGsqeu"
Message-ID: <72059d4f-bad1-7677-82d2-915e1697d872@uclouvain.be>
Date: Fri, 25 Mar 2022 11:51:07 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0
Content-Language: en-US
To: Yoshifumi Nishida <nsd.ietf@gmail.com>
References: <CAAK044QJ+_Kzk3b7kjuqQu1ReKFUYbPXebi0hRYnuQpm46umQQ@mail.gmail.com>
Cc: tcpm@ietf.org
From: Maxime Piraux <maxime.piraux@uclouvain.be>
In-Reply-To: <CAAK044QJ+_Kzk3b7kjuqQu1ReKFUYbPXebi0hRYnuQpm46umQQ@mail.gmail.com>
X-ClientProxiedBy: PR2PR09CA0001.eurprd09.prod.outlook.com (2603:10a6:101:16::13) To AM0PR03MB3667.eurprd03.prod.outlook.com (2603:10a6:208:4d::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 7205e041-f8e5-4e5d-2093-08da0e4d5e51
X-MS-TrafficTypeDiagnostic: VI1PR03MB3951:EE_
X-Microsoft-Antispam-PRVS: <VI1PR03MB39511744BAF9C177957F9CF49F1A9@VI1PR03MB3951.eurprd03.prod.outlook.com>
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: F1yTGbo9TjuYr2EGnRAXGBd7n43k5pLnHGI7OVOQR9kaFR2BF3KF44Gw/GhpRVpnX5TBxj/0n14RqXbvhTStsiX95WyDFOIuxFXnJWbiU+yZuB5ntONb1woYOrcpiLrLtV4NfNRaA2bL4iIL1RpLTpmMIE7c9BNdQT5RZW5/wQjHuka1RBQAvU5jUfO6AA2XtujfgNBfbh+or2N8sZgLdi800M/ie+qtDMkQL2OrnHRONDVLTo97KEhI4SHlwVxAttmCOMYlax4T3MPwLT5E7fwlDywXyfomJW4YW4URpnysbhwJLsnVNle2/uc65IfT1GCFKwDlrsjqJ8JDxi/s4cr7JSQJqpOOWIkYUZKuaR3zUd58hI7MHnfLVSdgxvFEXnuM6lc+9VRkV6RyQSp3MXAmFf1k8wTzKe6EgC3gluMYBR+lXsdxeUBtL5WCAkVgE4OMEEISXlK6jgTDFe3xrq2S+BWQXC5lTcBlD9Rx+DL8rkD7U7lVe3Z+bQPAcYGZPAwMWKNwMqKHeZFIHPq0n4UAorS2VH1o8Ngy6QtnPLi3uSEmew5c+GYYoGTouM6QSH8BY/SHLb1Me3fpMFBhD7BlIUMc9LauMzIlc0HjYXPolY51jCw+i8Y1wcQVFE7A551x39yfluOWww5PRnx5To6/q9Zd6lF/nY2g+z9vwpplZOQdnC9mugYVSblkRw/kRk5VZOIl9EB/rtjzxtyu/j7GSe/QnxrWolba22qip/Q=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR03MB3667.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(66574015)(6486002)(186003)(52116002)(38100700002)(33964004)(6506007)(5660300002)(36756003)(6512007)(44832011)(8936002)(2616005)(86362001)(508600001)(31686004)(83380400001)(2906002)(66946007)(66476007)(66556008)(8676002)(31696002)(4326008)(6916009)(786003)(316002)(43740500002)(45980500001); DIR:OUT; SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bi9ERnhZNnUvYzNiV2luZUNaWkJnbFZGZXRiS1BEN0pFRjVEQlQ4Skh0Rk1E?= =?utf-8?B?Ykl0ZDI1cEh2Z0Eza2JrSWVUWDh2OUc5NFZPM3FDWlU5VzYyMGVobFlrUlBt?= =?utf-8?B?OGord3V3Z1ZVdVZkNFVmVmdPMXp1Tk5hWUJ2cjlxcHg3dnl1ajU2T09PQ3ll?= =?utf-8?B?Y3BhckZPaHF2ZmozTG5RNkdyc05NMzdlK2hGaTBFemkwNlRJck1tL3BTTS9T?= =?utf-8?B?N2VCMUR6NU1XVE5TWWloWjFDNGdwMURLYVVxY0ptdFJQWVd6OXFRN3ZDQUZx?= =?utf-8?B?dVRpU3g0eFZIS2JWNnR1N0VnY2creXBxNHl1VnhhcVBvSnlkOVhwaVBKbzBk?= =?utf-8?B?dFdNdGR0N2lZWit5NHM1UjVLVmRpVWlKS3dJN2RXYlE2RTF6Q1h3UDVoMktE?= =?utf-8?B?MzFXVlgxb1U5bU4rL1doUnNDZUQ1aTRXUzlxVlNmZnBHcVFGWkxvK0hNL2d0?= =?utf-8?B?OW1RcFpVMmhFdXkxaGpxNU9hTmNTam1Pc0FBQ2s2OTJsWFV5Rm1RbFFtdEoz?= =?utf-8?B?ZTZ5UnpiWjN3UnRTR2hMMmh6aXFsUFd6T1Q3QmZpOFcxR3pUSjEwYmZCcmxu?= =?utf-8?B?dU5LT2d6bzRyRmlsYzJMQklSOXUrQWM5Z2VwTGx3Q0VFQTJvYkhpR0JRWGg5?= =?utf-8?B?S1FNRlhpOFg2U1p0RUoxTzljbHZ6NUtlZWFRZnVCaW1JQnpPSk9NTHpERVRo?= =?utf-8?B?M1VxUkdWM1M4aDRuVmtuWHIzMXRCaTZvUm16bWJMT01KaGwwajhFM0V2WHVN?= =?utf-8?B?RHFHRGJsZWh0cHVFdGNkbjZUbHRNc25HZ0tCL3N6YlJQN3E2YjhtQlowTlFq?= =?utf-8?B?dXJPUHowSHFEbk9ad3lGRWthNXp5WWU4M081Ny8rRzlPc3RLcitEbWhPQlY2?= =?utf-8?B?RktxMTcwMFFCVUdidUlaaGlVemNpRVhtcm5BL3BtNnVTRXFKU0lPc1RQZ3pz?= =?utf-8?B?WkZpUzVKOWxLMDhXalRWMzR5OVB4c1k4S2FZZjY2dGk0NjNQZTUyRVlWWVFS?= =?utf-8?B?NzZxajArY2Y0b0htYWVYd0RpRW1HYmNpSGtMVE84N1V2QTVkMC9JOExtUHgx?= =?utf-8?B?Q3JuSHVRUDB5SUFnMU84cE5vU1dOTTZJWWdTdzJldll0TnlUYUthd2ZUdnVR?= =?utf-8?B?SHVSN0Y2djAwWk5LVkVqQXJqeEIyVExHV2dhMkZZM21keXMwb1djRlJVV3pU?= =?utf-8?B?RGNtL0ovY3REZEJ2TjY4dE85NDhqY0VOSi9hM3M0YkFla2VZVzRWUkZPVTUx?= =?utf-8?B?QU56cHBLWXNEZS9nc1pqQ3FhY2RMWW9Wc2xXay9zWWIrTkx4dDhhRWpKZGNX?= =?utf-8?B?a0R1N1BYQ3lxZWlPR1BhMTJjYldxc0ZlWWZ0OE43NFJUY3RhRlhmbW9yL1Vy?= =?utf-8?B?VHE1S2pubkp4M0IyMjl4dzJmeXhRaStrbGIyemJuN0VNM0lHeGRVazVWZ09W?= =?utf-8?B?VHZQRC9IbUhMM2tqRmROTytnQ3pkeUxqMUlZNmRkbkQ5UXUwWTZod05LbEtK?= =?utf-8?B?VnorUWhBOVZJbmo4cml1b1BVMEJvTisyWlZJWllJWllTcXhmVXp2Sll5K1FP?= =?utf-8?B?VXVEcXIveGhveS80OW9PWEJUQSt2Y2hyVFkvSGxHSDdIbFZwZEo2cFd0ZTMr?= =?utf-8?B?MzlFZkRUS2tscFpUeW0rczNLS2xnWGtZU0pZSXlJT2pvUU9zaHE4ZjRUbXY4?= =?utf-8?B?dXNqZ2dndHFLc0ZWSjZDbklXbjl1aURQYWZkSjJWb2Y0dHVGM1kwa0R3YXRz?= =?utf-8?B?NnhxcDFCTWpETCtuSEl6Tm13ZkY2QUk2d2JQODNyVVhTSUR4WVVJZk8xWnpI?= =?utf-8?B?UTZrd1VVRGF0RWZ2UEtQb25rQUJBaW9YWDlBVzc2eDgrWlBYNE84TFN2V0lK?= =?utf-8?B?UFZWcDk2NmtVdGgrcXVkajNtQU9uYUYzakhkc2pZTjg5RXIwOHJkdHhacURw?= =?utf-8?B?SFJDQTkzdXdkZUYyTmFldHVrUjFud2NTMlp0VGRrUlptaVRqWThZYXZIYjJG?= =?utf-8?B?OFJJL05aSjJHcFJZSHZrTUNNUlRVNnhXa3MwOXkrcjF0K25UUS85elZhdDho?= =?utf-8?B?bjlBZHlKeFBvWk45WS91MWZWUGtwMmRZVzZOVE9tZU5ZelBodCtVbHdxdGJr?= =?utf-8?B?N2Fab1I3aDU0MlVHK3l0NG1XdmdsZ3dCb01qcVcrQ0IyRE9lOHJRYzFZc2wx?= =?utf-8?B?OW9Kc24zTVVHcHF6M3ZmNmU3T3ZTbE1mQmN6K0FRNzBocTBVcW5abXd2algr?= =?utf-8?B?L2FKVFg2ZzY3eW5pYnlKd0w4WUdITHZpam9DRzdaanRDUDZ5NmxVdFN6MDJM?= =?utf-8?B?bm9rR2s3QzE4STNPTnlIaFFCaVhOTEpwR0ttVnhaZ3ZwemJqMnE5bmw0ZEtQ?= =?utf-8?Q?7pioFO+Cf3E6y5/EtKsSmyD88QkR5sSUTguC1/AslvSL3?=
X-MS-Exchange-AntiSpam-MessageData-1: k2NOP7jbSENpRZaY9KunsR9hPGUwuc3FoQI=
X-OriginatorOrg: uclouvain.be
X-MS-Exchange-CrossTenant-Network-Message-Id: 7205e041-f8e5-4e5d-2093-08da0e4d5e51
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB3667.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2022 10:51:08.5085 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7ab090d4-fa2e-4ecf-bc7c-4127b4d582ec
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: N+jgox3+zAxHE7X5Rc/xmHAZiFlZ5Zng4RVpUnSVvbpVGHv7TUPr1sC9DAHN7Nhp4Y5dju4d5MeJY52VJ4Jxd2ClHLhJKGoFCSFq6cVOhC4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB3951
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/2q5Qk8vT23dAikMgny8iB2LxyZo>
Subject: Re: [tcpm] a question for TCPLS
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: Fri, 25 Mar 2022 10:51:25 -0000

Hi Yoshi,

Thank you for this question. It is very interesting as it touches on a 
fundamental choice of TCPLS.

Indeed, TCPLS does not act at the TCP segment level. Instead, TCPLS 
makes decisions at the TLS record level. This decision is driven by 
several factors. First, when TLS is used atop TCP, TCP segments of a TLS 
record become bound together, e.g. the receiver cannot decrypt their 
data before the whole record is received. The loss of one segment, no 
matter if it is in order or not, can block the whole record data from 
being decrypted and processed, remaining in the receiver buffers until 
it becomes complete.

When TLS is used atop MPTCP, this effect can be further amplified by the 
scheduling. Spreading the segments of a single TLS record over two paths 
can create an increase in transmission time, as segments arriving on the 
fast path are of no use before segments sent on the slow path are 
received. In this case, splitting the application data in two 
independent records could make more sense to the application. In 
TLS+MPTCP, one could split this data into two TLS records, but as MPTCP 
maintains a single bytestream, they will be reordered before decryption 
at the receiver. So to effectively benefit from this finer scheduling, 
MPTCP has to be aware of the TLS segmentation happening in the TCP 
bytestream, with the limitation of the receiver reordering sometimes 
going against scheduling decisions.

As far as I'm aware, there is no easy way to implement this currently. 
So far, most MPTCP schedulers have been taking decisions based on inputs 
from the network and not from the application. Conceding this level of 
granularity enables TCPLS to be implemented purely atop TCP, and we 
believe this tradeoff is of value.

Observing packet losses, dupacks, RTOs and RTT variations could still be 
achieved, for instance by using tcp_info metrics. It can then be used to 
drive the TLS record scheduling.

At any point of a TCPLS session, the sender is aware of the TLS records 
that were received, decrypted and processed by the receiver over each 
TCP connection thanks to the ACK frame. These ACKs can be sent on any 
TCP connection of the session. TCPLS can take the decision to reinject 
the content of a TLS record on another TCP connection at any point, but 
it delegates handling TCP segment loss to the TCP connection. The 
decision of reinjecting the content of a TLS record can be made based on 
many inputs, for instance a timer on the receipt of the ACK frame, 
metrics from tcp_info indicating that the connection is performing badly 
and of course a timeout of the TCP connection.

We also defined a Connection Reset frame for the receiver to notify the 
sender that it received a TCP RST on a TCP connection, this can shorten 
the time for TCPLS to detect that a TCP connection was disrupted by a 
middlebox and reinject the lost TLS records. Note that adding these kind 
of control messages in MPTCP would be achieved by adding a TCP Options, 
which is in cleartext and in a much more limited space.

Maxime

Le 24/03/22 à 04:34, Yoshifumi Nishida a écrit :
> Hi,
> I tried to ask a question for TCPLS during the presentation, but gave up
> due to time constraints. So, I just sent it here before my memory expires...
>
> In my understanding, the advantage of MPTCP is it's in the TCP stack so
> that it can have fine-grade packet scheduling and path management.
> But, in case of TCPLS, I'm not sure how it can control multiple TCP
> connections effectively.
>
> For example, I am wondering how TCPLS finds the failure of connections or
> which packets have been considered lost at the TCP layer without delay.
> Can you provide some more info about this point?
>
> Thanks,
> --
> Yoshi
>