Re: [multipathtcp] The point about multiple listening sockets at the client side

Costin Raiciu <c.raiciu@cs.ucl.ac.uk> Tue, 10 November 2009 05:50 UTC

Return-Path: <c.raiciu@cs.ucl.ac.uk>
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 737743A6899 for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 21:50:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 FcdYvfPzDu5b for <multipathtcp@core3.amsl.com>; Mon, 9 Nov 2009 21:50:41 -0800 (PST)
Received: from bells2.cs.ucl.ac.uk (bells2.cs.ucl.ac.uk [128.16.5.33]) by core3.amsl.com (Postfix) with ESMTP id 4174428C0F0 for <multipathtcp@ietf.org>; Mon, 9 Nov 2009 21:50:41 -0800 (PST)
Received: from host-32-98.meeting.ietf.org ([133.93.32.98]) by bells2.cs.ucl.ac.uk with esmtpsa (TLSv1:AES128-SHA:128) (C.Raiciu authenticated) (Exim 4.54) id 1N7jX3-000DA8-B8; Tue, 10 Nov 2009 05:44:45 +0000
In-Reply-To: <4AF8B8A5.4040602@ismailov.eu>
References: <4AF8B8A5.4040602@ismailov.eu>
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: text/plain; charset="US-ASCII"; delsp="yes"; format="flowed"
Message-Id: <CC8DB225-ACE2-424E-A898-9ADCF2CE517D@cs.ucl.ac.uk>
Content-Transfer-Encoding: 7bit
From: Costin Raiciu <c.raiciu@cs.ucl.ac.uk>
Date: Tue, 10 Nov 2009 14:50:33 +0900
To: Yuri Ismailov <yuri@ismailov.eu>
X-Mailer: Apple Mail (2.753.1)
Cc: multipathtcp@ietf.org
Subject: Re: [multipathtcp] The point about multiple listening sockets at the client side
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 05:50:42 -0000

Hi,

Neither the server or the client need to open listening sockets for  
additional subflows. These subflows are demultiplexed using the  
connection token, so the port is not needed as a rendezvous point.  
Thus, any port can be put in the SYN packet - it does not matter (as  
long as the 5 tuple is unique for the two hosts - which it is, if the  
client of the subflow picks a port unused in the connection).

Semantically this may seem a bit weird - but in fact its not. TCP  
semantics say that the client (i.e. the side doing the active open)  
can accept a SYN packet (n.b. not syn/ack, which it would get from a  
passive end upon receipt of syn) after it has sent his own SYN. This  
is to support simultaneous open, and effectively amounts to  
"accepting" a connection request without calling accept (the client  
calls connect). We can think of the multipath case as a natural  
extension of simultaneous open in TCP - that lasts the whole connection.

Costin

On 10 Nov 2009, at 09:49, Yuri Ismailov wrote:

> Hi all,
> I've got a request to make this point on the list. It might be just  
> the
> lack of my understanding and there is no any issue around that.
> The simple scenario below:
> A client with let's say 3 interfaces connects to a server through  
> one of
> them for http download.
> Server decides to use all three interfaces at the client side.
> My question was if the client should open listening sockets for
> accepting server initiated connections over other interfaces?
>
> Regards
> Yuri
>
> _______________________________________________
> multipathtcp mailing list
> multipathtcp@ietf.org
> https://www.ietf.org/mailman/listinfo/multipathtcp