Re: [multipathtcp] 6824bis -11 review

Alan Ford <alan.ford@gmail.com> Mon, 30 July 2018 15:56 UTC

Return-Path: <alan.ford@gmail.com>
X-Original-To: multipathtcp@ietfa.amsl.com
Delivered-To: multipathtcp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EDC65131116 for <multipathtcp@ietfa.amsl.com>; Mon, 30 Jul 2018 08:56:04 -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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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=gmail.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 7HSnR813OpsT for <multipathtcp@ietfa.amsl.com>; Mon, 30 Jul 2018 08:55:58 -0700 (PDT)
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F3FD513112B for <multipathtcp@ietf.org>; Mon, 30 Jul 2018 08:55:57 -0700 (PDT)
Received: by mail-lf1-x12b.google.com with SMTP id a4-v6so8513001lff.5 for <multipathtcp@ietf.org>; Mon, 30 Jul 2018 08:55:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=1LLkhN5HjPX6os12gmm3nxMbHHi7CW72zoJ41iXqtIo=; b=K11Z2rOZBBFDipM828oWGze8n9dIzYEDxOtenTf/TnX+yxsRCzKo9qHcTKZQGg78Vl /XrpAqWG4gUgqMS4sRt3FnjguAPcMCcLe7cvOYrSpL/GGf0hN/IRc2cesnAL1Tmrd9X2 5hONgrYAE8Rk2oieh6Ty3XVgZmL9VrSjnwaBy81PbTTRky6ut8uaVCRer8fSI5ctWq9k 1IGj/tEeMisSYjKokwEMeixRuhAWITgEpG1UmgQeScG+9wVDXWA805NI8R6iZHOfLC1r eZXUkj0p5jxdjQQnU+8U+Nm+ygPpxBfTM7XQ1T4fc54zgGvFxjszOhurPsbmxok+FSF1 1ruw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=1LLkhN5HjPX6os12gmm3nxMbHHi7CW72zoJ41iXqtIo=; b=LVr1zTJcZH9IgoARnoUBKoLkUd0RYUD2vQ/qKncVsJx4WvNGikWG9vOZrnq1HhYy/N xBrZOw2/LMhjDnIaucTa95qmTp+HGBl78kwXNA8yQDtB3x01fN0qcTHlHTv0AvH0Lhai sg51zp6w/1hxPFkF2JEs8XnvYEPGY8/uJzI2V5Ohy0lWZABnosNzQBjckln84yhNnBOc 8tHdJx620bl4uU5aRXSHvSQBG1bnx/g6qj0d5VsPNJhsxKoRtWNVMl5OtOHWgO4MZgRX tf/iPeCRmlrrUmGo/h1vjdr2KzJYW2nBgzxMQPzGCAi54w3GICJh1T00sk/a/8HKpIwE bYDA==
X-Gm-Message-State: AOUpUlEmN0ElnTODiymOT+5Z09JsIxp2mc1YR+lZ4E3WU/CiqqN0nPvT WP0W5hsGs5rbC2og4+jaamA=
X-Google-Smtp-Source: AAOMgpdPc7CplVRPuqV/oLJjPLcYF9JaNyUSbgBRGB+3YbjCxMTzQtZb29ltNK8P3qPeq/gNCIhdTA==
X-Received: by 2002:a19:a705:: with SMTP id q5-v6mr11131339lfe.148.1532966156251; Mon, 30 Jul 2018 08:55:56 -0700 (PDT)
Received: from [10.44.30.233] ([62.254.152.194]) by smtp.gmail.com with ESMTPSA id m12-v6sm2138930ljh.24.2018.07.30.08.55.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 Jul 2018 08:55:55 -0700 (PDT)
From: Alan Ford <alan.ford@gmail.com>
Message-Id: <AEC8384E-87BB-48F4-9C42-58D2A6FCF251@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_19833D02-7C12-4F9B-B69F-B3537D830BEB"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Mon, 30 Jul 2018 16:55:53 +0100
In-Reply-To: <982B626E107E334DBE601D979F31785C5DC5D84B@BLREML503-MBS.china.huawei.com>
Cc: multipathtcp <multipathtcp@ietf.org>
To: Rahul Arvind Jadhav <rahul.jadhav@huawei.com>
References: <982B626E107E334DBE601D979F31785C5DC5A15C@BLREML503-MBX.china.huawei.com> <92A53501-4728-4E02-816A-92CEE703AA49@gmail.com> <20754FD9-627F-4AAC-A1B5-6EF2BD09B2AD@gmail.com> <982B626E107E334DBE601D979F31785C5DC5D84B@BLREML503-MBS.china.huawei.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/IQv6xi-CbUaOKC0BD8vWvb_UE7I>
Subject: Re: [multipathtcp] 6824bis -11 review
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Multi-path extensions for TCP <multipathtcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/multipathtcp/>
List-Post: <mailto:multipathtcp@ietf.org>
List-Help: <mailto:multipathtcp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 30 Jul 2018 15:56:05 -0000

Hi Rahul,

Comments inline...

> On 29 Jul 2018, at 04:17, Rahul Arvind Jadhav <rahul.jadhav@huawei.com> wrote:
> 
> Thanks Alan for clarifying. 
> But I’m still not clear about this. Please find my comments [RJ] inline.
>  
> On 28 Jul 2018, at 18:19, Alan Ford <alan.ford@gmail.com <mailto:alan.ford@gmail.com>> wrote:
> 
> 
> 3. Section 3.4.1. Address Advertisement 
>  "A host can send an ADD_ADDR message with an already assigned Address
>  ID, but the Address MUST be the same as previously assigned to this
>  Address ID, and the Port MUST be different from one already in use
>  for this Address ID."
> [RJ]: Didn't understand the rationale for allowing reuse of Address ID only for port change and not for IP change.
> 
> I cannot recall the rationale here either.
> 
> Furthermore - as written - this would seem to prevent retransmission. Which is crazy.
> 
> If nobody can recall the reason for this I would suggest we remove it.
>  
> Having looked at the text again here, I think I can recall the rationale. But we need to consider whether this is actually the intended behaviour.
>  
> Address ID was originally designed to provide a mechanism whereby a client behind a NAT could refer to its address without using the IP address, which would be altered by the NAT. This would allow a client, whose wifi interface had disappeared, to tell the far end over its cellular interface that it had gone, by referring to the Address ID it had used in the MP_JOIN, in the REMOVE_ADDR.
>  
> There is a secondary use here which I realise we haven’t explicitly stated. If a client declared its private address in ADD_ADDR, but also sent a MP_JOIN with the same address ID, but naturally a different address, the far end would say “ah, these addresses don’t match, so I should not bother attempting to connect to the Address in the ADD_ADDR”. This is an optimisation but one that should probably be mentioned.
>  
> [RJ] The far end here matches the Address ID, identifies the ADD_ADDR context, and uses the received source address .. May be the far end should keep this newly learnt IP address within the ADD_ADDR context for future MP_JOIN once this sub-flow closes? As I understand, Address ID alone is the primary-key for matching anyways.

Yes, the intention is that the source address from a MP_JOIN can be used for future connections, creating or updating the mapping to the Address ID. Which makes me realise we probably need the ‘C’ bit on the MP_JOIN. But that’s an aside.

>  
> So the point is that Address ID refers purely to the address, and not to the address + port pair. Therefore a new port can be advertised in a new ADD_ADDR using the same Address ID.
>  
> [RJ] I’m not sure about this interpretation. My thinking was that Address ID refers purely to the sub-flow possibility on an interface without any dependence on address + port. Address and port are parameters for the Address ID which might possibly change in the future.

For the purposes of MPTCP, I’m not sure how interface and address are different here.

>  
> So we should clarify this:
>  
> a) retransmitting an ADD_ADDR with same ID, address, and port is fine
> b) this could permit the far end to trigger another connection attempt
> [RJ] a & b is clear from existing text
>  
> c) sending a new ADD_ADDR with same ID + address and different port is fine
> [RJ] again this is what the text already says, but I’m not still clear about this. Why ID + address has to match? Only ID should be enough. 

Consider:

a) ADD_ADDR comes in saying ID=2, addr=10.0.0.1 (private)
b) MP_JOIN comes in saying ID=2, addr=8.9.10.11 (public)
c) ADD_ADDR comes in saying ID=2, addr=192.168.0.1

What does this mean? Is (c) an implicit REMOVE+ADD? And thus does this mean the subflow created in (b) is now no longer valid?

By keeping the address / ID mapping, if an address is lost, then so is the subflow.

> d) to reassign an address ID you must first REMOVE_ADDR
> [RJ] This also I don’t get. Why should it be necessary to do a REMOVE_ADDR to change an IP address for an existing ID? If a ADD_ADDR refers to an existing ID with a new Address then can’t this simply override the IP address for that ID? 
>  
> Another way to put this question, In which case a receiver after matching the Address ID (for MP_JOIN or ADD_ADDR) will depend on matching against the address field and what is achieved by matching the address field? 
>  
> By allowing to override an IP address in the existing ID, a REMOVE_ADDR + ADD_ADDR cycle which requires at-least one RTT would be saved. Secondly, the implementation becomes lot more simpler (for me this is the major motivation).

Again, see the example above. It is my view that it is removes ambiguity for a sender to have a unique ID to address mapping.

Best regards,
Alan