Re: [multipathtcp] Multipath TCP Address advertisement 2/5 - Reliability

Yoshifumi Nishida <> Fri, 05 August 2016 07:17 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C17B512D0E6 for <>; Fri, 5 Aug 2016 00:17:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.187
X-Spam-Status: No, score=-3.187 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-1.287, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 9r_psC_HifX0 for <>; Fri, 5 Aug 2016 00:17:45 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id E393D12B029 for <>; Fri, 5 Aug 2016 00:17:44 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTPSA id C05EE278483 for <>; Fri, 5 Aug 2016 16:17:42 +0900 (JST)
Received: by with SMTP id x130so185800222vkc.0 for <>; Fri, 05 Aug 2016 00:17:42 -0700 (PDT)
X-Gm-Message-State: AEkoouuTM3DNkC+cXLDc585ClAV28Gt89hdkPwSVHWnt2K5Ujf6XmkqpZyXcAu6q/jYj/C2n8TZjw45mwXQ1Fw==
X-Received: by with SMTP id z65mr14077946vkg.129.1470381461289; Fri, 05 Aug 2016 00:17:41 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Fri, 5 Aug 2016 00:17:40 -0700 (PDT)
In-Reply-To: <>
References: <> <> <>
From: Yoshifumi Nishida <>
Date: Fri, 5 Aug 2016 00:17:40 -0700
X-Gmail-Original-Message-ID: <>
Message-ID: <>
To: Alan Ford <>
Content-Type: multipart/alternative; boundary=001a114df61eaf41f705394ddc93
Archived-At: <>
Cc: "" <>
Subject: Re: [multipathtcp] Multipath TCP Address advertisement 2/5 - Reliability
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Multi-path extensions for TCP <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 05 Aug 2016 07:17:48 -0000

Hi Alan,

On Thu, Aug 4, 2016 at 12:57 AM, Alan Ford <> wrote:

> Hi Yoshi,
> Inline…
> On 4 Aug 2016, at 07:36, Yoshifumi Nishida <> wrote:
> Hi Fabien,
> On Wed, Aug 3, 2016 at 8:47 AM, Fabien Duchêne <fabien.duchene@
>> wrote:
>> Hello,
>> As agreed in Berlin during IETF96, I'm sending a series of emails to
>> discuss the different contributions proposed
>> in
>> This is the part 2/5 : reliability.
>> In RFC6824, ADD_ADDR options can be attached to segments carrying data
>> or pure acknowledgements.
>> In practice, notably given the length of ADD_ADDR with IPv6 addresses
>> and the HMAC, it is very likely that they will be often sent as pure
>> acknowledgements.
>> This implies that ADD_ADDR are sent unreliably, which could be
>> problematic when the ADD_ADDR is required to allow the establishment of
>> additional subflows, as in load balancing scenarios.
>> We propose to rely on the "E" (Echo) flag in the ADD_ADDR option.
>> This echo flag is used to acknolwedge a received ADD_ADDR by echoing it.
>> If the acknowledgement is not received, the ADD_ADDR option will be
>> retransmitted up to N times.
> I have several comments on this. Please let me know if I miss something.
> 1: Do we really need ADD_ADDR reliability in all cases? An end node might
> want to send ADD_ADDR for 'just in case' rather than for "I want you to use
> this"
> BTW, I'm not sure if the draft tries to replace the current ADD_ADDR or to
> propose an additional ADD_ADDR option.
> The argument is that by making it reliable, you only need to send it once
> to know it’s been received, even if the far end does not use it.
2: The sender cannot be sure whether the info in ADD_ADDR will be used or
> not. It depends on the peer's decision.
> I might prefer re-transmitting ADD_ADDR up to N times when the sender
> doesn't receive MP_JOIN to the address for a certain amount of time.
> As above, by making it reliable you only need to send it once to know it’s
> been received, even if the far end chooses not to use it.

Hmm. if a sender wants the peer to use specific address (such as a load
balancer case), I can understand that we want to make it reliable. But, if
the sender doesn't care, I'm not very sure the reason to make it reliable
or send ADD_ADDR frequently.

I personally think this is a trade-off point. We are trying to introduce
some complexities in the protocol to send TCP options reliably.  I might
want to see some benefits to compensate it.

> I think I’m sold on this idea now, given the additional recent comments. I
> support this.
> 3: "the receiving host MUST return the exact option.." Although it is
> MUST, can we always do this? There might be a situation where there is no
> option space or no segment to send.
> I would assume the same rules as ADD_ADDR are followed, so it’s sent on a
> duplicate ACK in that case.

Hmm. If we apply the same rules to this, it may need to send a dupack for a
dupack and may be repeated N times. I still need to think about it, but it
doesn't look pretty..