Re: [multipathtcp] RFC6824bis edits based on implementation feedback
Joe Touch <touch@strayalpha.com> Sun, 02 February 2020 17:39 UTC
Return-Path: <touch@strayalpha.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 BF4EC1200E5 for <multipathtcp@ietfa.amsl.com>; Sun, 2 Feb 2020 09:39:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.218
X-Spam-Level:
X-Spam-Status: No, score=-1.218 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=strayalpha.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 BGpfx2v6q64W for <multipathtcp@ietfa.amsl.com>; Sun, 2 Feb 2020 09:39:12 -0800 (PST)
Received: from server217-3.web-hosting.com (server217-3.web-hosting.com [198.54.115.226]) (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 99BF3120033 for <multipathtcp@ietf.org>; Sun, 2 Feb 2020 09:39:12 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=0IwyaZhj+sijoCvjkPGwu9woE2aILcV0jaFMDr2BXbo=; b=HFec+iBp5LScA83SuGiXkWM33 Hz6ddj2l6QK6wzBoXqLZhn2Uxff+Ze7H4UqCp90/bUNZ8PTbhtQkXZvj8Rkd6hvSWJazt3c/9ETJc vB+Y9YwV1prQv6XEpwAlhlsloCVZ16zkTeCxYucNJWG0JdKv8tj8xJXkqhUqk/EyYjs8PdDVl6vlc UY82iFU3cZB1N0b3CbsYyHIVOAWfyCZ3asJ4VnatWW+mCdShsN6mVSqDl+VQFZJMS2RbD4DAxUui5 cMQHBm05C+aEK4JHiarMdcYMKXsKG5xgrwqqFm8w8X2tLwhWRwdHiS9TOkHXUd3ZGdAkcXe5ieWBf snFQZz0EA==;
Received: from cpe-172-250-225-198.socal.res.rr.com ([172.250.225.198]:57674 helo=[192.168.1.8]) by server217.web-hosting.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92) (envelope-from <touch@strayalpha.com>) id 1iyJD7-000IyE-SX; Sun, 02 Feb 2020 12:39:11 -0500
To: V Anil Kumar <anil@csir4pi.in>, Yoshifumi Nishida <nsd.ietf@gmail.com>
Cc: multipathtcp <multipathtcp@ietf.org>
References: <C36D742F-6D76-48FA-B6D8-44DE484A9E2C@gmail.com> <882106347.533187.1578939921488@csir4pi.in> <CAAK044RLsJCFWfeP4XAzMmMhUqH1hCnDs94-3Zkrj3QkJeVx7g@mail.gmail.com> <146023054.25180934.1580661581660@csir4pi.in>
From: Joe Touch <touch@strayalpha.com>
Message-ID: <121d517b-dfe2-1c25-f0f4-08ec1334f48c@strayalpha.com>
Date: Sun, 02 Feb 2020 09:39:05 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <146023054.25180934.1580661581660@csir4pi.in>
Content-Type: multipart/alternative; boundary="------------225E470ECD052918FE74F6C3"
Content-Language: en-US
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server217.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - strayalpha.com
X-Get-Message-Sender-Via: server217.web-hosting.com: authenticated_id: touch@strayalpha.com
X-Authenticated-Sender: server217.web-hosting.com: touch@strayalpha.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/GsC6HZEpO1B1OZOC4SUksXLD5UE>
Subject: Re: [multipathtcp] RFC6824bis edits based on implementation feedback
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.29
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: Sun, 02 Feb 2020 17:39:16 -0000
RST doesn't "close" a connection; it aborts it. If a RST is sent, it should be sent *consistent with how TCP treats sending a RST* and not defined anew for this extension. Joe On 2/2/2020 8:39 AM, V Anil Kumar wrote: > Hi Yoshi, > > Thanks for this point. In fact, I had initially not thought of a > scenario, where the map is being delivered through a retransmitted > data packet while its first transmission did not include the map. Now > I am just seeing the document (RFC 6824-bis) in this context. > > My understanding is that in scenarios like what I described in my > previous mail, RST is likely to happen whether we explicitly state so > or not. Please see the paragraph containing the below text in RFC > 6824-bis. > > "If a mapping for that subflow-level sequence space does not arrive > within a receive window of data, that subflow SHOULD be treated as > broken, closed with a RST, and any unmapped data silently discarded." > > if we assume that the map is included while retransmitting the data > (even though the first transmission did not contain the map for some > reasons), we could argue that RST could be avoided provided that the > retransmission is triggered within a receive window of data. But the > question here would be how and when will the retransmission take > place. In this case, the subflow may not initiate the retransmission > of data by its own (i.e., no retransmission due to three duplicate > ACKs or RTO expiry at subflow level) as there is no segment loss at > subflow level sequence space. So there could be a high possibility of > RST happening even before the map delivery through retransmission. > > With regards, > > Anil > ------------------------------------------------------------------------ > *From: *"Yoshifumi Nishida" <nsd.ietf@gmail.com> > *To: *"V Anil Kumar" <anil@csir4pi.in> > *Cc: *"alan ford" <alan.ford@gmail.com>, "multipathtcp" > <multipathtcp@ietf.org> > *Sent: *Saturday, February 1, 2020 3:39:51 AM > *Subject: *Re: [multipathtcp] RFC6824bis edits based on implementation > feedback > > Hi Anil, > > I have a question about your proposed text. > I am actually wondering if we really want to terminate connection here. > > The packets without proper mappings will be treated as invalid and > will be discarded. > If an implementation failed to attach proper mapping for some reasons > (e.g. option space), it might be able to attach the proper one when it > retransmits the packets. This also looks ok to me. > > I don't have strong preference for this. But, do we have a reason to > terminate connection? > > Thanks, > -- > Yoshi > > On Mon, Jan 13, 2020 at 10:28 AM V Anil Kumar <anil@csir4pi.in > <mailto:anil@csir4pi.in>> wrote: > > Hi, > > I have some points related to the modifications (Change 2) being > proposed on data sequence map. Please see them inline. Though I am > putting forward the below points, if the consensus is in favour of > the proposed change for reducing implementation complexity, I am > also OK with that as well. > > ------------------------------------------------------------------------ > *From: *"alan ford" <alan.ford@gmail.com <mailto:alan.ford@gmail.com>> > *To: *multipathtcp@ietf.org <mailto:multipathtcp@ietf.org> > *Sent: *Thursday, January 2, 2020 4:21:32 AM > *Subject: *[multipathtcp] RFC6824bis edits based on implementation > feedback > > Hi all, > We’d love to get this to a state of completion as soon as > possible, and to this end I am starting a new thread on this > topic. In discussion with the chairs, it /is /possible to make the > desired changes in AUTH48 as long as there is WG consensus. The > discussion so far has been fairly limited in terms of participation. > > I would ask the chairs please if it was possible to specify a time > bound for this discussion and a default conclusion. > > Regarding the changes, in summary, there are two areas where > changes have been requested by the implementation community. As we > are the IETF we obviously have strong focus on “running code” and > so ease of implementing standards-compliant code is strongly > desirable. However, we do not wish to reduce functionality agreed > by the IETF community if it is considered a required feature by > the community. > > > *Change 1* > * > * > Change the sentence reading: > > / If B has data to send first, then the reliable delivery of the > ACK + MP_CAPABLE can be inferred by the receipt of this data with > an MPTCP Data Sequence Signal (DSS) option (Section 3.3). > / > To: > > / If B has data to send first, then the reliable delivery of the > ACK + MP_CAPABLE is ensured by the receipt of this data with an > MPTCP Data Sequence Signal (DSS) option (Section 3.3) containing a > DATA_ACK for the MP_CAPABLE (which is the first octet of the data > sequence space). > / > What this means: > > The current text is concerned only with ensuring a path is MPTCP > capable, and so only cares that DSS option occurs on a data > packet. However, the MP_CAPABLE option is defined to occupy the > first octet of data sequence space and thus, if analogous to TCP, > must be acknowledged. >From an implementation point of view it > would make sense not to have this hanging around forever and > instead define it is acknowledged at the connection level as soon > as received. This change ensures the first data packet also > DATA_ACKs this MP_CAPABLE octet. > > > *Change 2* > * > * > Change the sentence reading: > > / A Data Sequence Mapping does not need to be included in every > MPTCP packet, as long as the subflow sequence space in that packet > is covered by a mapping known at the receiver./ > > To: > > / The mapping provided by a Data Sequence Mapping MUST apply to > some or all of the subflow sequence space in the TCP segment which > carries the option. It does not need to be included in every MPTCP > packet, as long as the subflow sequence space in that packet is > covered by a mapping known at the receiver. > / > What this means: > > The current text does not place any restrictions on where a > mapping could appear. In theory a sender could define a thousand > different mappings up front, send them all, and expect a receiver > to store this and reassemble data according to these mappings as > it arrives. Indeed, this was never explicitly disallowed since it > “might have been useful”. The implementation community, however, > has expressed concerns over the difficulty of implementing this > open-endedly. How many mappings is it reasonable to store? Is > there a DoS risk here? Instead, it has been requested that thee > specification restricts the placement of the DSS option to being > within the subflow sequence space to which it applies. > > Below are my comments on this. I had shared some of these points > in a previous thread that you had initiated in the same context. > > Transmitting large number of non-contiguous data sequence maps > could be a misbehaviour (map-flooding), though it is not clear > whether this can go to the extent of causing a potential DoS to > the data receiver. So some sort of restriction on this could be > useful. One approach could be to insist that the data sender > should ensure that the map being transmitted is for in-window > data, as per the receiver advertised window. A receiver should > anyhow be willing to store the maps for in-window data to deal > with packet loss.. For example, when a window of data segments > (say 1 to 64) is transmitted, each carrying its corresponding map, > and segment-1 is lost, the maps for the remaining 63 need to be > stored till the lost segment is retransmitted. Of course, in this > case the maps will be stored at the receiver side along with their > corresponding data. But the need to store multiple maps for > in-window data would still be there. > > The problem with the proposed change (restriction) is that a data > sender may find it difficult, in case a need arise to slightly > delay the map delivery by few segments, i.e., sending some data > first without map, and then send the corresponding map in a later > segment, as shown below: > > subflow-1: segment-1 segment-3 segment-4 segment-7 > > bytes:1-100 bytes:201-300 bytes:301-400 > bytes:601-700 > > no map map for 1-100 map for > 201-400 map for 601-700 > > > > > subflow-2: segment-2 segment-5 segment-6 segment-8 > > bytes: 101-200 bytes:401-500 bytes: > 501-600 bytes:701-800 > > map for 101-200 map for 401-600 > no map map for 701-800 > > > > In the above case, segment-1 goes without map and its map is > included later in segment-3, the next data segment in the same > subflow. Further, in the above scheduling pattern, the map in > segment-3 cannot cover the data in segment-1 and segment-3, as > some data in between (segment-2) is transmitted through another > subflow.. With the proposed change, the map in segment-3 will > become invalid and this will eventually break subflow-1, though > this could be a corner case. > > The question at this stage is why would segment-1 be transmitted > without its map. In the case of bidirectional data transfer, there > could be a need to pack both timestamp and SACK options in a data > segment, i.e., piggybacking of SACK with data. If we consider > that timestamp takes 12 bytes and SACK, even with single block, > takes another 10 bytes, the remaining 18 bytes option space is > not adequate to carry data sequence signal with map, especially > when DSN is 64 bit long. So the delivery of either of the two > (SACK or map) would be delayed. > > As far as I understand, RFC 2018 (TCP Selective Acknowledgement > Options) implies that SACK should not be delayed. It states "If > sent at all, SACK options SHOULD be included in all ACKs which do > not ACK the highest sequence number in the data receiver's queue". > It also says "If data receiver generates SACK options under any > circumstance, it SHOULD generate them under all permitted > circumstances". So, as part of meeting the RFC 2018 requirements, > if the combination of SACK and timestamp is given preference over > DSS, data segments could be transmitted without their map. > > Another case of delaying map could arise if the data sender > prefers to send ADD_ADDR option, instead of map, in a data > segment. It is nice that ADD_ADDR option can be delivered reliably > in a pure ACK, but I think this is not the case with DSS at present. > > If we adopt the proposed change, I think it might also be helpful > to spell out how the receiver is supposed to behave, if it gets > maps not meeting the MUST condition in the proposed change. For > example termination of the subflow with MP_TCPRST option (section > 3.6 in RFC 6824-bis) with appropriate reason code and T flag value > to intimate the data sender the cause for subflow termination. > With regards, > > Anil > > Please can members of the WG express whether they are happy with > these changes, or concerned. > > Best regards, > Alan > > > _______________________________________________ > multipathtcp mailing list > multipathtcp@ietf.org <mailto:multipathtcp@ietf.org> > https://www.ietf.org/mailman/listinfo/multipathtcp > > > > _______________________________________________ > multipathtcp mailing list > multipathtcp@ietf.org <mailto:multipathtcp@ietf.org> > https://www.ietf.org/mailman/listinfo/multipathtcp > > > > > > _______________________________________________ > multipathtcp mailing list > multipathtcp@ietf.org > https://www.ietf.org/mailman/listinfo/multipathtcp
- Re: [multipathtcp] RFC6824bis edits based on impl… Yoshifumi Nishida
- [multipathtcp] RFC6824bis edits based on implemen… Alan Ford
- Re: [multipathtcp] RFC6824bis edits based on impl… Christoph Paasch
- Re: [multipathtcp] RFC6824bis edits based on impl… philip.eardley
- Re: [multipathtcp] RFC6824bis edits based on impl… V Anil Kumar
- Re: [multipathtcp] RFC6824bis edits based on impl… philip.eardley
- Re: [multipathtcp] RFC6824bis edits based on impl… philip.eardley
- Re: [multipathtcp] RFC6824bis edits based on impl… Yoshifumi Nishida
- Re: [multipathtcp] RFC6824bis edits based on impl… V Anil Kumar
- Re: [multipathtcp] RFC6824bis edits based on impl… Joe Touch
- Re: [multipathtcp] RFC6824bis edits based on impl… philip.eardley
- Re: [multipathtcp] RFC6824bis edits based on impl… Yoshifumi Nishida
- Re: [multipathtcp] RFC6824bis edits based on impl… Alan Ford
- Re: [multipathtcp] RFC6824bis edits based on impl… Matthieu Baerts
- Re: [multipathtcp] RFC6824bis edits based on impl… Yoshifumi Nishida
- Re: [multipathtcp] RFC6824bis edits based on impl… philip.eardley
- Re: [multipathtcp] RFC6824bis edits based on impl… V Anil Kumar
- Re: [multipathtcp] RFC6824bis edits based on impl… Alan Ford
- Re: [multipathtcp] RFC6824bis edits based on impl… Christoph Paasch
- Re: [multipathtcp] RFC6824bis edits based on impl… V Anil Kumar
- Re: [multipathtcp] RFC6824bis edits based on impl… Yoshifumi Nishida
- Re: [multipathtcp] RFC6824bis edits based on impl… philip.eardley
- Re: [multipathtcp] RFC6824bis edits based on impl… Christoph Paasch
- Re: [multipathtcp] RFC6824bis edits based on impl… Christoph Paasch
- Re: [multipathtcp] RFC6824bis edits based on impl… Yoshifumi Nishida
- Re: [multipathtcp] RFC6824bis edits based on impl… philip.eardley
- Re: [multipathtcp] RFC6824bis edits based on impl… Alan Ford