Re: [multipathtcp] MPTCP FAST_CLOSE
Christoph Paasch <cpaasch@apple.com> Mon, 27 November 2017 05:35 UTC
Return-Path: <cpaasch@apple.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 709591242F7 for <multipathtcp@ietfa.amsl.com>; Sun, 26 Nov 2017 21:35:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.795
X-Spam-Level:
X-Spam-Status: No, score=-2.795 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, SUBJ_ALL_CAPS=1.506] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.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 cXIz1NUAmJ4p for <multipathtcp@ietfa.amsl.com>; Sun, 26 Nov 2017 21:35:03 -0800 (PST)
Received: from mail-in21.apple.com (mail-out21.apple.com [17.171.2.31]) (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 ABA641200E5 for <multipathtcp@ietf.org>; Sun, 26 Nov 2017 21:35:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1511760902; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-version:Content-type: Content-transfer-encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-reply-to:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=UvI67rS2hhKR/N53aY3YGeQyqWA71JD8jD/MkffViec=; b=xTVmmGLzv1GWJn2uY6CsBt4pJeGcfqsHt/RT+5jiv3tRGqV6yrftlJSE/CMgNoF3 O3l8ohX8mLC0F2CNixuu+Nq41EcIJ746eOhPHWkVgc06OihUdsZrm55y8HGG9olJ zlhrnYyi0ro2/w72r6vwzeVkS56SkC9IlvvhuFPP2VfBpkDt+fDAAzu2mmEqFbqY 5YHI14YLu3CSioLus4TmJBgDWvTtDbrEMK3nmVAHuvblaPANX8+Ek7BEzNFcN0Px bqVKUow6B77FSwLBtZIOM+yK7bw5+kaulH0HoXz748oO3gVy3oMHREPL1wzUbIK9 PqcImUNWtvOkqxw0hgWpbA==;
Received: from relay7.apple.com (relay7.apple.com [17.128.113.101]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail-in21.apple.com (Apple Secure Mail Relay) with SMTP id 6E.17.01566.604AB1A5; Sun, 26 Nov 2017 21:35:02 -0800 (PST)
X-AuditID: 11ab0215-49c869c00000061e-2b-5a1ba406a2d3
Received: from nwk-mmpp-sz09.apple.com (nwk-mmpp-sz09.apple.com [17.128.115.80]) by relay7.apple.com (Apple SCV relay) with SMTP id 00.0E.05443.604AB1A5; Sun, 26 Nov 2017 21:35:02 -0800 (PST)
MIME-version: 1.0
Content-transfer-encoding: 7bit
Content-disposition: inline
Content-type: text/plain; CHARSET="US-ASCII"
Received: from localhost ([17.234.80.188]) by nwk-mmpp-sz09.apple.com (Oracle Communications Messaging Server 8.0.2.1.20171102 64bit (built Nov 2 2017)) with ESMTPSA id <0P0200MYZA6DC750@nwk-mmpp-sz09.apple.com>; Sun, 26 Nov 2017 21:35:02 -0800 (PST)
Sender: cpaasch@apple.com
Date: Sun, 26 Nov 2017 21:35:01 -0800
From: Christoph Paasch <cpaasch@apple.com>
To: Yoshifumi Nishida <nishida@sfc.wide.ad.jp>
Cc: "Olivier.Bonaventure@uclouvain.be" <Olivier.Bonaventure@uclouvain.be>, multipathtcp <multipathtcp@ietf.org>, Alan Ford <alan.ford@gmail.com>, "philip.eardley@bt.com" <philip.eardley@bt.com>, François Finfe <francois.finfe@tessares.net>
Message-id: <20171127053501.GU39967@Chimay.local>
References: <c320f331-aa18-c4e2-34a9-1ec15cc627b3@uclouvain.be> <CAO249yfv_yadNPoVRJ5GkuHnXe6ZTENxUv9B9Az4NNYjgEs6tQ@mail.gmail.com>
In-reply-to: <CAO249yfv_yadNPoVRJ5GkuHnXe6ZTENxUv9B9Az4NNYjgEs6tQ@mail.gmail.com>
User-Agent: Mutt/1.9.1 (2017-09-22)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRmVeSWpSXmKPExsUi2FCYqsu2RDrKYM9kM4uV51YwW2ydsInJ 4vPq62wWG5fcYLO40fCDxWLZ2hWMDmwebV8mM3nsnHWX3WPJkp9MHhdfX2f2uNM0ndnj1bHv LAFsUVw2Kak5mWWpRfp2CVwZq8+nFvwzqZjc/5a9gXG+WhcjJ4eEgInE9umdbF2MXBxCAmuZ JOZvfcYKk3j1YgcjROIgo8SKSR/ZQBK8AoISPybfY+li5OBgFpCXOHheFiTMLCAt8ejvDHYI W0vi+6NWFojeRiaJnvlbWEASwgKSEt137jCD2CwCqhJzn58Aa2ADanh7ux1ssYiAnsSH7x+Z IAZ1MEncOscB0SsrsbPxBwvEDYYSf268ZoVY0MYosW3/S0aQBKdAsMTpy9fADhUVUJbY23eI HaRIQuAym8SCKZ9ZJjCKzELyxCyEJ2YheWIWkicWMLKsYhTOTczM0c3MMzLUSywoyEnVS87P 3cQIiq7VTKI7GOe/MjzEKMDBqMTDq+AjHSXEmlhWXJl7iFGag0VJnHfNR6koIYH0xJLU7NTU gtSi+KLSnNTiQ4xMHJxSDYz95996Xy2f3bhNVVj6xDG3l485yia1XlqSFF1TJ5p5lGfLq8aF rR4z9kUq3Onpc+TbdGDJo6rQHdW9219fPX8hlanSxvbA/umdx7SnPIj8eHTqnqjofC+JZ1a8 0T86FwfwbjGx4JpYu+aP9Zx/WvVWcSt2yjGfmKKbtzfeO3Dmhp1dsn8/2+1WYinOSDTUYi4q TgQArJfZVY8CAAA=
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHLMWRmVeSWpSXmKPExsUi2FAcoMu2RDrK4MdnIYuV51YwW2ydsInJ 4vPq62wWG5fcYLO40fCDxWLZ2hWMDmwebV8mM3nsnHWX3WPJkp9MHhdfX2f2uNM0ndnj1bHv LAFsUVw2Kak5mWWpRfp2CVwZq8+nFvwzqZjc/5a9gXG+WhcjJ4eEgInEqxc7GLsYuTiEBA4y SqyY9JENJMErICjxY/I9li5GDg5mAXmJg+dlQcLMAtISj/7OYIewtSS+P2plgehtZJLomb+F BSQhLCAp0X3nDjOIzSKgKjH3+QmwBjaghre321lBbBEBPYkP3z8yQQzqYJK4dY4DoldWYmfj DxaIGwwl/tx4zQqxoI1RYtv+l4wgCU6BYInTl6+BHSoqoCyxt+8Q+wRGwVlI7p6FcPcsJHfP QnL3AkaWVYwCRak5iZXmeokFBTmpesn5uZsYwbFQmLqDsXG51SFGAQ5GJR5eBR/pKCHWxLLi ytxDjBIczEoivALlUlFCvCmJlVWpRfnxRaU5qcWHGKU5WJTEeT+vFI8SEkhPLEnNTk0tSC2C yTJxcEo1MHY8iva0yihcpjSxMKh2hcfrDulrv+/W3whXeftFKCDSzLSJtf6qXyPn/prX2xJv Wm+fHFl1+O+MHUGTF2ur6Ryef0HVVFz3685w1tLpZ7/l2J8N/Dvn4cfrp1ftqO9+uEhMcduu CVd4dtYdnL3hSeCC3vztgT755vUXlsfuWmsd5+Dy17zCxU2JpTgj0VCLuag4EQA3KkDVgQIA AA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/gIYAZdwoPh0TqIrmT3X1JShlYxI>
Subject: Re: [multipathtcp] MPTCP FAST_CLOSE
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.22
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, 27 Nov 2017 05:35:05 -0000
Hello Yoshifumi, On 13/11/17 - 14:47:40, Yoshifumi Nishida wrote: > Hi Olivier, > > Thanks for the proposed texts. I have two comments on this. > > 1: We now have two options for host A, is there any guideline which options > should be chosen in a certain cases?' this is probably implementation specific, depending on the reason why the stack decides to force-close the connection. For the cases where the forced closure is due to resource-limitations option R should be used. Christoph > 2: In case of option R, I think host A cannot receive packets from host B > and cannot wait for timeouts. So, in some unfortunate cases, host B might > need to wait for a long time. > Is this fine? Or, we have some mitigations? > > -- > Yoshi > > > On Mon, Nov 13, 2017 at 6:30 AM, Olivier Bonaventure < > Olivier.Bonaventure@uclouvain.be> wrote: > > > Hello, > > > > Sorry for being late with this, but the beginning of the fall semester is > > always too busy for me. > > > > During the summer, there was a discussion on the FAST_CLOSE option that > > was triggered by Francois. > > > > The current text of RFC6824bis uses the FAST_CLOSE option inside ACK > > packets, but deployment experience has shown that this results in > > additional complexity since the ACK must be retransmitted to ensure its > > reliable delivery. > > > > Here is a proposed update for section 3.5 that allows a sender to either > > send FAST_CLOSE inside ACK or RST while a receiver must be ready to process > > both. Changes are marked with * * > > > > ------------------ > > 3.5. Fast Close > > > > Regular TCP has the means of sending a reset (RST) signal to abruptly > > close a connection. With MPTCP, a *reguler* RST only has the scope of > > the > > subflow and will only close the concerned subflow but not affect the > > remaining subflows. MPTCP's connection will stay alive at the data > > level, in order to permit break-before-make handover between > > subflows. It is therefore necessary to provide an MPTCP-level > > "reset" to allow the abrupt closure of the whole MPTCP connection, > > and this is the MP_FASTCLOSE option. > > > > MP_FASTCLOSE is used to indicate to the peer that the connection will > > be abruptly closed and no data will be accepted anymore. The reasons > > for triggering an MP_FASTCLOSE are implementation specific. Regular > > TCP does not allow sending a RST while the connection is in a > > synchronized state [RFC0793]. Nevertheless, implementations allow > > the sending of a RST in this state, if, for example, the operating > > system is running out of resources. In these cases, MPTCP should > > send the MP_FASTCLOSE. This option is illustrated in Figure 14. > > > > 1 2 3 > > 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 > > +---------------+---------------+-------+-----------------------+ > > | Kind | Length |Subtype| (reserved) | > > +---------------+---------------+-------+-----------------------+ > > | Option Receiver's Key | > > | (64 bits) | > > | | > > +---------------------------------------------------------------+ > > > > Figure 14: Fast Close (MP_FASTCLOSE) Option > > > > If Host A wants to force the closure of an MPTCP connection, *it has > > two different options* : > > > > - *Option A (ACK) : *Host A sends an ACK containing the MP_FASTCLOSE > > option on one > > subflow, containing the key of Host B as declared in the initial > > connection handshake. On all the other subflows, Host A sends a > > regular TCP RST to close these subflows, and tears them down. > > Host A now enters FASTCLOSE_WAIT state. > > > > - *Option R (RST) : Host A sends a RST containing the MP_FASTCLOSE > > option on all > > subflows, containing the key of Host B as declared in the initial > > connection handshake. Host A can tear the subflows and the > > connection down immediately.* > > > > > > > > *If a host receives a packet with a valid MP_FASTCLOSE option, it shall > > process it as follows :* > > > > o Upon receipt of an *ACK* with MP_FASTCLOSE, containing the valid > > key, Host B answers on the same subflow with a TCP RST and tears down all > > subflows. Host B can now close the whole MPTCP connection (it > > transitions directly to CLOSED state). > > > > o As soon as Host A has received the TCP RST on the remaining > > subflow, it can close this subflow and tear down the whole > > connection (transition from FASTCLOSE_WAIT to CLOSED states). If > > Host A receives an MP_FASTCLOSE instead of a TCP RST, both hosts > > attempted fast closure simultaneously. Host A should reply with a > > TCP RST and tear down the connection. > > > > o If Host A does not receive a TCP RST in reply to its MP_FASTCLOSE > > after one retransmission timeout (RTO) (the RTO of the subflow > > where the MPTCP_RST has been sent), it SHOULD retransmit the > > MP_FASTCLOSE. The number of retransmissions SHOULD be limited to > > avoid this connection from being retained for a long time, but > > this limit is implementation specific. A RECOMMENDED number is 3. > > If no TCP RST is received in response, Host A SHOULD send a TCP > > RST *with the MP_FASTCLOSE option* itself when it releases state in > > order to clear any remaining state at middleboxes. > > > > *o Upon receipt of a RST with MP_FASTCLOSE, containing the valid key, > > Host B tears down all subflows. Host B can now close the whole MPTCP > > connection (it transitions directly to CLOSED state).* > > > > ---------- > > > > > > The burden of the MP_FASTCLOSE is on the host that decides to close the > > connection (typically the server, but not necessarily). The text above > > allows it to opt for either ACK or RST without adding complexity to the > > other side. > > > > > > Another point that might be discussed in RFC6824bis is how a host should > > react when there are all the subflows associates to a Multipath TCP > > connection are in the CLOSED state, but the connection is still alive. At > > this point, it is impossible to send or receive data over the connection. > > It should attempt to reestablish one subflow to keep the connection alive. > > > > > > Olivier > >
- [multipathtcp] MPTCP FAST_CLOSE Olivier Bonaventure
- Re: [multipathtcp] MPTCP FAST_CLOSE Yoshifumi Nishida
- Re: [multipathtcp] MPTCP FAST_CLOSE Alan Ford
- Re: [multipathtcp] MPTCP FAST_CLOSE Yoshifumi Nishida
- Re: [multipathtcp] MPTCP FAST_CLOSE Christoph Paasch
- Re: [multipathtcp] MPTCP FAST_CLOSE Christoph Paasch
- Re: [multipathtcp] MPTCP FAST_CLOSE Alan Ford