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

msocket proposal

To: Andrew Josey <ajosey@xxxxxxxxxxxxxxxxx>
Subject: msocket proposal
From: Renzo Davoli <renzo@xxxxxxxxxxx>
Date: Wed, 18 Feb 2009 11:43:19 +0100
Cc: austin-group-futures-l@xxxxxxxxxxxxx
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>