Structured Stream Transport
Introduction
SST is an experimental transport protocol
designed to address the needs of modern applications
that need to juggle many asynchronous communication activities in parallel,
such as downloading different parts of a web page simultaneously
and playing multiple audio and video streams at once.
Features of SST:
- Multiplexes many application streams
onto one network connection
- Gives streams hereditary structure:
applications can spawn lightweight streams from existing ones
- Efficient:
no 3-way handshake on startup or TIME-WAIT on close
- Supports request/response transactions
without serializing onto one stream
- General out-of-band signaling:
control requests already in progress
- Both reliable and best-effort delivery
in a semantically unified model
- supports messages/datagrams of any size:
no need to limit size of video frames, RPC responses, etc.
- Dynamic prioritization of application's streams
- e.g., load visible parts of a web page first,
change priorities when user scrolls
- Optional end-to-end cryptographic security
comparable to SSL
- Peer-to-peer communication across NATs via
hole punching
- Implemented as a library that can be linked
directly into applications like SSL for easy deployment
Documentation
- Research paper (PDF/PS/HTML, 12 pages),
to appear in
SIGCOMM 2007.
Describes SST's principles and the most important design details.
- Preliminary protocol specification
(PDF, 22 pages).
Provides a more thorough technical description of the protocol.
Warning:
Still incomplete and not entirely consistent with the current code
or the SIGCOMM paper.
- Preliminary SST library API documentation
(HTML).
Usable and hopefully moderately stable but still likely to evolve
in non-backwards-compatible ways before the first "release".
Mailing List
The following public mailing list is available
for discussions related to SST:
The SST Mailing List
Download
Warning:
the code is still in a very early experimental state.
Some features are broken or not completely implemented.
Don't expect to be able to use it right away in a production system.
The SST library distribution does not yet have a stable release.
Anonymous
Subversion access
is available however.
You can
browse the source code,
or check out a copy of the repository:
% svn co svn://svn.pdos.csail.mit.edu/uia/trunk/uia/sst
To build the library,
make sure you have
Qt 4.1 or later
and
OpenSSL 0.9.8 or later installed,
then type:
% cd sst
% misc/setup
% ./configure
% make
To get started using the library in your application,
see the main page of the API documentation.
Support
SST is a part of the UIA project
at the Parallel and Distributed Operating Systems Group
in MIT's
Computer Science and Artificial Intelligence Laboratory.
UIA is sponsored by the T-Party Project, a joint research
program between MIT and Quanta Computer Inc., Taiwan, by the
National Science Foundation under Cooperative Agreement ANI-0225660
(Project IRIS) and
the NSF FIND program,
with additional support from Nokia Research Center
Cambridge.
Last Updated: $Id: index.html 1818 2007-03-28 14:18:44Z baford $