Re: [multipathtcp] High-level design decisions /architecture

William Herrin <bill@herrin.us> Tue, 10 November 2009 03:18 UTC

Return-Path: <wherrin@gmail.com>
X-Original-To: multipathtcp@core3.amsl.com
Delivered-To: multipathtcp@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id AB7FC3A6824 for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 19:18:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Level:
X-Spam-Status: No, score=-1.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UXJaUwlb8UyC for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 19:18:13 -0800 (PST)
Received: from mail-ew0-f207.google.com (mail-ew0-f207.google.com [209.85.219.207]) by core3.amsl.com (Postfix) with ESMTP id 4FD403A67B0 for <multipathtcp@ietf.org>; Mon, 9 Nov 2009 19:18:13 -0800 (PST)
Received: by ewy3 with SMTP id 3so3847537ewy.37 for <multipathtcp@ietf.org>; Mon, 09 Nov 2009 19:18:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to:cc :content-type:content-transfer-encoding; bh=9pq6Ht10gA0VVIZYqVKnNzicgXMe6xhNxoAZ5HDQvPQ=; b=p0wGI675/YYDI1ITkdEsOem4++fASXggwjfV0injj7gawH0sX4DWuvKXlQby2GkrSv iBrEd4ttwcyH2S/gkUltf19tIH7/Mk1RDVWbuF8N4VEWACBP1dVmcgbfchEOXH083VS9 px5ArOiVgh6Ql7t3Jv0rL4jh7zqxBWLjBBnl4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=Kb+kS4VDiS0yr0u86sHsujwABPUWqYjFkWOZgcvFZnIADH9PVVruULZYgVQQTfMk38 /LDNo3dFUidXaSuoExJ8Dv46Q/eUGnoqfY5XK4sJ6awH6kQtrOH1XJ8KUDh7wEmLqYdY qnUK4rNdeHZRyhBUcjzEK/tcADycxMuwiuXOc=
MIME-Version: 1.0
Sender: wherrin@gmail.com
Received: by 10.216.93.18 with SMTP id k18mr2840490wef.218.1257823114139; Mon, 09 Nov 2009 19:18:34 -0800 (PST)
In-Reply-To: <4AF8B70E.90908@isi.edu>
References: <4A916DBC72536E419A0BD955EDECEDEC06363A62@E03MVB1-UKBR.domain1.systemhost.net> <3c3e3fca0911021328h2ef65493v9f0290f384f7b800@mail.gmail.com> <2181C5F19DD0254692452BFF3EAF1D6808C85178@rsys005a.comm.ad.roke.co.uk> <4AF09EA5.9030308@isi.edu> <3c3e3fca0911041219o5ddea192h297afa82882992e3@mail.gmail.com> <4AF8B70E.90908@isi.edu>
Date: Mon, 09 Nov 2009 22:18:33 -0500
X-Google-Sender-Auth: 3ea90008992c63d8
Message-ID: <3c3e3fca0911091918l27562923j5b1b7fd15461c04f@mail.gmail.com>
From: William Herrin <bill@herrin.us>
To: Joe Touch <touch@isi.edu>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: multipathtcp@ietf.org
Subject: Re: [multipathtcp] High-level design decisions /architecture
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Multi-path extensions for TCP <multipathtcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Nov 2009 03:18:14 -0000

On Mon, Nov 9, 2009 at 7:42 PM, Joe Touch <touch@isi.edu> wrote:
>> Is there a good discussion on this somewhere so I can read up on the
>> rationale that brought it into being?
>
> Since it's an artifact, I don't think there is. The issue is that
> unknown options are ignored (as per RFC1122). The only time when you can
> find out if an option is supported in a way that you know will preceded
> all other segments is to put it in the SYN.
>
> If you put it in a later segment, you don't know when the segment will
> be received. Here's the problem, when A sends to B (assuming the
> connection is already open):
>
>        A sends segment #223 with option X
>                presuming this is the first segment A sends
>                with option X
>
> Does A stop sending segments beyond 223 until option X is ACK'd? This
> violates window processing. If A sends segment 224 with option X, and B
> receives segment 224 before 223, it MUST ignore option X.

Hi Joe,

I'm missing something here. I would have expected TCP to hold segment
224 and not process it (except perhaps for selective ack or to
retransmit 222's ack) until after 223 had been received and processed.
In other words, unless the option was defined to be unordered, I'd
expect the receiver to process it in the same order as the packet
sequence numbers.

That's not how TCP functions? The options are required to be processed
in order received rather than ordered by sequence? Or is it just that
all options to date have been designed to be processed in the order
received? I can see the point of doing that; I'm just trying to get a
scope on the issue.


> So you can't put in a new option that has a required effect or is
> confirmed; there's no way to 'stop the stream' until the endpoints sync.
> The only times the endpoints sync is during the SYN.

My first thought would be a three-part handshake. Request option X,
option X accepted, option X in effect. Requires that the receiver
understand that order is important after sending X accepted though.

Regards,
Bill Herrin


-- 
William D. Herrin ................ herrin@dirtside.com  bill@herrin.us
3005 Crane Dr. ...................... Web: <http://bill.herrin.us/>
Falls Church, VA 22042-3004