Re: [multipathtcp] High-level design decisions /architecture
William Herrin <bill@herrin.us> Tue, 10 November 2009 20:45 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 4284C3A67E4 for <multipathtcp@core3.amsl.com>; Tue, 10 Nov 2009 12:45:22 -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 E77b4598qznT for <multipathtcp@core3.amsl.com>; Tue, 10 Nov 2009 12:45:21 -0800 (PST)
Received: from ey-out-2122.google.com (ey-out-2122.google.com [74.125.78.26]) by core3.amsl.com (Postfix) with ESMTP id E0FE63A690C for <multipathtcp@ietf.org>; Tue, 10 Nov 2009 12:45:20 -0800 (PST)
Received: by ey-out-2122.google.com with SMTP id 9so100398eyd.51 for <multipathtcp@ietf.org>; Tue, 10 Nov 2009 12:45:42 -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; bh=Wq1ouUUyVpchucaoRBgCFkk6mFU7NTdvGpAWvU+7tVI=; b=fUBEZ61j/20lMkZqqp4NAJKOoQ5UEJL2lwLGpHAYu/hk9ejTHyOtZSCWmKUYdzXNVf GDm/kC17vbgLpU6mklqHYM24pWpc/TEDMN8yN8d/Evmv6ypbxqt7MaubREtxogNwID+p v/ynLOosUX7vJDIOSRYZvaMyZ1LVFaVqAbuGU=
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; b=d/xAZU6FwfYAk98n8s0CgJEx72B2QolS2z/2ctqzA8WE1td9XBYzaml/sUnUJUb8wa RThgoRm1AOLagFN4Jo42Nf8f5D0s8fo2FJxokq4dviGdkmhisoZvAn1kHfI6g8dja8xN HEI3/GvdZCl6+jRdHwYiOPDYExK+ZWl2fU1F4=
MIME-Version: 1.0
Sender: wherrin@gmail.com
Received: by 10.216.89.8 with SMTP id b8mr173227wef.180.1257885942653; Tue, 10 Nov 2009 12:45:42 -0800 (PST)
In-Reply-To: <4AF8DDA7.9030108@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> <3c3e3fca0911091918l27562923j5b1b7fd15461c04f@mail.gmail.com> <4AF8DDA7.9030108@isi.edu>
Date: Tue, 10 Nov 2009 15:45:42 -0500
X-Google-Sender-Auth: 68126215f049b44a
Message-ID: <3c3e3fca0911101245y7db0aa21wab41a66834feef19@mail.gmail.com>
From: William Herrin <bill@herrin.us>
To: Joe Touch <touch@isi.edu>
Content-Type: text/plain; charset="ISO-8859-1"
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 20:45:22 -0000
On Mon, Nov 9, 2009 at 10:27 PM, Joe Touch <touch@isi.edu> wrote: > That requires that options are processed on the data after ordered, as > you note. However, TCP is an unordered protocol. > >> 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. > > Right. How do you bury that handshake in an unordered, unreliable stream > without halting it, though? Hi Joe, How about a 4-step handshake like this: Request option X, option X accepted, option X in effect (1), option X in effect (2). When you receive X accepted, attach X1 to *every* outgoing packet until you get an ack for everything up to and including the first X1 packet. Then start sending X2 in every outgoing packet until you get an ack for any X2 packet. Then stop sending the X option on any packet that isn't a retransmission of one where X1 or X2 was sent. At the receiver end: until you receive a packet with X2, only packets with X1 or X2 have option X in effect. After you see any packet with X2, all subsequent packets have option X in effect regardless of the presence of X1 or X2. Nobody pauses. Options are processed in the order received. And you're dealing with pretty trivial state changes on each end. One concern that jumps to mind is if the receiver gets a late copy of an already received and acked segment where option X is not in effect. What will the receiver do with the late packet? Let me narrow that a bit: assuming option X does not affect the use of the TCP sequence number in any way, what will the receiver do with a late copy of an already received packet where it thinks X is in effect but in reality X was not requested? On the other hand, if option X has some other intrinsic value (such has holding the multipath TCP connection ID for middleboxes to decode) then you can just keep sending it in every packet which uses it for the remainder of the connection instead of the fancy handshake. 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
- [multipathtcp] High-level design decisions /archi… philip.eardley
- Re: [multipathtcp] High-level design decisions /a… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Mark Handley
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Lars Eggert
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- [multipathtcp] This shim6 part of the answer (was… marcelo bagnulo braun
- [multipathtcp] The MPTCP part (was Re: High-level… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Mark Handley
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… marcelo bagnulo braun
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… Mark Handley
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Ford, Alan
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… philip.eardley
- Re: [multipathtcp] High-level design decisions /a… Lars Eggert
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- Re: [multipathtcp] High-level design decisions /a… Scott Brim
- Re: [multipathtcp] High-level design decisions /a… Costin Raiciu
- Re: [multipathtcp] High-level design decisions /a… Yoshifumi Nishida
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch
- Re: [multipathtcp] High-level design decisions /a… William Herrin
- Re: [multipathtcp] High-level design decisions /a… Joe Touch