Email List: Xaustin-group-futures-lX
[All Lists]

Re: msocket proposal

To: Renzo Davoli <renzo@xxxxxxxxxxx>
Subject: Re: msocket proposal
From: Nick Stoughton <nick@xxxxxxxxxx>
Date: Wed, 18 Feb 2009 20:04:33 +0000
Cc: Andrew Josey <ajosey@xxxxxxxxxxxxxxxxx>, austin-group-futures-l@xxxxxxxxxxxxx
Organization: USENIX
References: <20090218104318.GH6237@cs.unibo.it>
Hi Renzo ...
can you provide some implementation information? Has this been
implemented? What systems? Is it shipping in any distribution, or is it
just in an experimental state? 

I notice that the name "msocket" is also used by MATLAB (see
https://www.ohloh.net/p/msocket) ... I assume there is no relationship?

-- 
Nick

On Wed, 2009-02-18 at 11:43 +0100, Renzo Davoli wrote:
> Dear Andrew Josey,
> 
> The Berkeley socket API is the de facto standard for network programming and
> it is part of the Posix.1 definition.
> 
> Unfortunately this API has been designed to use one single stack for each
> protocol family. This is the common case for many (all?)operating systems 
>today
> but the ability to access and use several protocol stacks permits new
> applications and simplify solutions to common problems.
> 
> Networking is also an exception for *nix systems for naming. In fact the file
> system has been used as a unified naming method for files, devices, fifos, 
>unix
> sockets, ... and almost everything but networking.
> 
> We propose an extension to the Berkeley API having the following features:
> 
>     * multiple stacks can be used at the same time
>     * the file system gets used for naming the stacks
>     * it is backward compatible with existing applications. 
> 
> The new extended API has been named msockets after the most important call of
> the API itself msocket, namely acronym for multi-socket.
> 
> We have already implemented this extension in our umnet module of the View-OS
> project.  We think that many application would benefit from this extension.  
>In
> fact by msocket it is possible to use several stacks at the same time and to
> have different concurrent processes running on different stacks.
> 
> For example it is possible to run several web browser on different stacks,
> maybe one on the local network and another on a VPN.
> It is also possible to test networking stacks on remote machines, the
> experimental stack will be different from the one used for the remote
> connection, therefore there is no risk to lose the connectivity in case
> of bug. It is possible to have different implementation of the protocols
> running at the same time, maybe a TCP implementation for the standard
> networking and another with wider sliding windows for satellite communication,
> or having SDP and IPoIB together running on an Infiniband.
> These are just some examples of application.
> 
> More details can be found in the virtual square wiki site
> www.virtualsquare.org
> the msocket page is the following:
> 
>http://wiki.virtualsquare.org/index.php/Multi_stack_support_for_Berkeley_Sockets
> 
> I am trying to propose this as an optional feature for future POSIX.1
> definitions, which is the procedure to formalize this request?
> 
> I am looking forward to hearing from you.
> 
>       renzo davoli
> Leader of the VirtualSquare research team. University of Bologna.

<Prev in Thread] Current Thread [Next in Thread>