Re: [multipathtcp] Regarding the release of sending buffer

Christoph Paasch <cpaasch@apple.com> Wed, 09 August 2017 03:48 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 AD7FD124BAC for <multipathtcp@ietfa.amsl.com>; Tue, 8 Aug 2017 20:48:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.301
X-Spam-Level:
X-Spam-Status: No, score=-4.301 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] 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 p56-ZWmKxePF for <multipathtcp@ietfa.amsl.com>; Tue, 8 Aug 2017 20:48:17 -0700 (PDT)
Received: from mail-in6.apple.com (mail-out6.apple.com [17.151.62.28]) (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 9D5F8124B09 for <multipathtcp@ietf.org>; Tue, 8 Aug 2017 20:48:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1502250497; 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=ubjcfPVJQfqYZuymCxTjYg8mb5UcKDYbPeI5jDRh51U=; b=JMSzE3NEih14T4I0CnT3jZrHrP+d0+1arhJ8ezGyftL5L+wIeWF4B6TPofIYK07Q T8z0V7fckjU8/ffTfUknDch/FlhyqOj3uXrMgW6wI6Oy8zJEZcUT2Sd0VQXOH18K v6U6xYyg8z7C1GqpT41CHjZW+0KJXfHmdeVClz5IrSydfihuiurDhuwxEI5WQ8xQ Bb00fzUMF6p7Z38ezhHAdUDK/T/Ao/lcu8GplO6NhSRy9NRxBvRosr6jn0UWUEN0 qWAsbmI6ylTFvj7RFat57PfwTLV8wJ/2QbmV/cu0+Y8n6jK/reWT0SxuGiso1AI/ GScu5JGzC+ee5lsf4ZmEJw==;
Received: from relay2.apple.com (relay2.apple.com [17.128.113.67]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail-in6.apple.com (Apple Secure Mail Relay) with SMTP id EA.5C.06961.1068A895; Tue, 8 Aug 2017 20:48:17 -0700 (PDT)
X-AuditID: 11973e15-9dace9c000001b31-fc-598a8601727e
Received: from nwk-mmpp-sz11.apple.com (nwk-mmpp-sz11.apple.com [17.128.115.155]) by relay2.apple.com (Apple SCV relay) with SMTP id B4.4C.09069.1068A895; Tue, 8 Aug 2017 20:48:17 -0700 (PDT)
MIME-version: 1.0
Content-transfer-encoding: 7bit
Content-disposition: inline
Content-type: text/plain; CHARSET="US-ASCII"
Received: from localhost ([17.234.103.78]) by nwk-mmpp-sz11.apple.com (Oracle Communications Messaging Server 8.0.1.2.20170621 64bit (built Jun 21 2017)) with ESMTPSA id <0OUE00AXFFWGE970@nwk-mmpp-sz11.apple.com>; Tue, 08 Aug 2017 20:48:17 -0700 (PDT)
Sender: cpaasch@apple.com
Date: Tue, 08 Aug 2017 20:48:15 -0700
From: Christoph Paasch <cpaasch@apple.com>
To: Vincent Stone <shihang7422166@gmail.com>
Cc: multipathtcp@ietf.org
Message-id: <20170809034815.GX3648@Chimay.local>
References: <0940F5BC-7405-4AB0-9C73-E125B56F66B2@gmail.com>
In-reply-to: <0940F5BC-7405-4AB0-9C73-E125B56F66B2@gmail.com>
User-Agent: Mutt/1.7.1 (2016-10-04)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsUi2FDorMvY1hVpcOAbn8Xn1dfZLA5d2MTu wOSxc9Zddo8lS34yBTBFcdmkpOZklqUW6dslcGVMXfWKqeA1X8W+rr9sDYzXuLsYOTkkBEwk Lj5dzNLFyMUhJLCaSWLV/MtMMIlZLR+ZIRKHGCW+L2hhAUnwCghK/Jh8D8jm4GAWkJc4eF4W JMwsIC3x6O8MdghbS+L7o1awciGBRiaJR9sqQWxhAUmJ7jt3mEFsFgFViY0d38F2sQHVv73d zgpiiwjoSGz9tI8NYo6kxIq/n1ghep0ldi+5zgpxgoHExJkbWUFOEBKwkfj73gYkzClgK9F7 4QBYq6iAssTfw/fA/pIQmMImsfn5A5YJjCKzkHwwC+GDWUg+mIXkgwWMLKsYhXITM3N0M/PM 9BILCnJS9ZLzczcxguJgup3oDsYzq6wOMQpwMCrx8N7Y0xkpxJpYVlyZe4hRmoNFSZy3L6sr UkggPbEkNTs1tSC1KL6oNCe1+BAjEwenVAOjX/vhhpZP94/+NFF8nWwXpMuqn77920zfh7X2 nNNFVs3yO8O4x8Y5Wp55g8/NmWFbForPf80nnult/S/0bUpZNlfMpN9vPovFCF27nXnsuQNf Y/uRw/+mfrC6/7ZERGmuwNeymQ5qp6vkFxkoWxb4rPoTWXe35hfn3gMNDr0zmR1j57HOn8em xFKckWioxVxUnAgAITh7zGQCAAA=
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrCLMWRmVeSWpSXmKPExsUi2FA8W5exrSvSoH02j8Xn1dfZLA5d2MTu wOSxc9Zddo8lS34yBTBFcdmkpOZklqUW6dslcGVMXfWKqeA1X8W+rr9sDYzXuLsYOTkkBEwk ZrV8ZO5i5OIQEjjEKPF9QQsLSIJXQFDix+R7QDYHB7OAvMTB87IgYWYBaYlHf2ewQ9haEt8f tYKVCwk0Mkk82lYJYgsLSEp037nDDGKzCKhKbOz4zgRiswHVv73dzgpiiwjoSGz9tI8NYo6k xIq/n1ghep0ldi+5zgpxgoHExJkbWUFOEBKwkfj73gYkzClgK9F74QBYq6iAssTfw/dYJjAK zkJy9CyEo2chOXoWkqMXMLKsYhQoSs1JrDTSSywoyEnVS87P3cQIDttC5x2Mx5ZZHWIU4GBU 4uG9saczUog1say4MhcYQhzMSiK883K6IoV4UxIrq1KL8uOLSnNSiw8xSnOwKInz7t/SESkk kJ5YkpqdmlqQWgSTZeLglGpgnLbTzvLBTf78mOpXZ2Z/m5F2n8f06yT2Xa4tNZPYd7oWTGuO 2HGywfWayKl3UhlKwTKKj4oLHhu4fQpTuFnLZZDMwx+6o2r7jxKFFZ95vHczGxSbnvPdWX5s 1f2d2+4ZPu2O4+nluhlvzbr15JKDYUHbzixMjJ+Qvcw4/kKeTp/xQ8u6Y0KblFiKMxINtZiL ihMBqQRAi1cCAAA=
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/PiGtrPDlkOhfUWNmhuHZn6TQ6C4>
Subject: Re: [multipathtcp] Regarding the release of sending buffer
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: Wed, 09 Aug 2017 03:48:18 -0000

Hello,

On 09/08/17 - 11:34:58, Vincent Stone wrote:
> Hi all,
> I have a question about when the packet can be freed from the send buffer.
> In section 3.3.2 of RFC 6824:
>    An MPTCP sender MUST NOT free data from the send buffer until it has
>    been acknowledged by both a Data ACK received on any subflow and at
>    the subflow level by all subflows on which the data was sent.  The
>    former condition ensures liveness of the connection and the latter
>    condition ensures liveness and self-consistence of a subflow when
>    data needs to be retransmitted.  Note, however, that if some data
>    needs to be retransmitted multiple times over a subflow, there is a
>    risk of blocking the sending window.  In this case, the MPTCP sender
>    can decide to terminate the subflow that is behaving badly by sending
>    a RST.
> 
> If data is acknowledged by Data ACK, that means it has been already received by receiver. There is no need to wait for the subflow level ACK. Even if the subflow decides to retransmit the data, we can just retransmit a fake/dumb packet, because that packet will be ignored by the receiver (out of receive window) anyway. Or we can advance the send window of the subflow upon the receiving of data ack to prevent the subflow level retransmission. So my question is: can the data be freed from the send buffer once it has been acknowledged by the Data ACK?

the problem is that when you do this, the subflow on which you are
preventing the retransmission by advancing the send-window or where you are
sending a fake-packet, won't look like "regular" TCP anymore.

Middleboxes and firewalls will start blocking this traffic and the receiver
must also be able to gracefully handle this.

That's the reason why MPTCP tries hard to make every subflow look like it is
regular TCP, besides a few TCP-options.


Cheers,
Christoph