Skip to content
Structured Secure Streams - a successor to SST
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
include/sss
lib
tests
tools
.travis.yml
CMakeLists.txt
README.md
TODO

README.md

Structured Secure Streams

/!\ SSS is currently being rewritten with new crypto infrastructure. /!\
        Code may not build, documentation may be not up-to-date.

SSS provides secure encrypted and authenticated data connection between endpoints. In the future SSS will also provide routing services for the so-called Unmanaged Internet Architecture (UIA).

Builds as part of mettanode, or standalone with libarsenal dependency.

Introduction

SSS is based on experimental, unfinished project under UIA - Structured Streams Transport.

SSS 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 SSS:

  • 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
  • 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
  • Written in standard c++14 with boost.

streams

Structures

sss::host holds information about this host's connection sessions.

sss::server provides access to services on this sss::host.

sss::stream provides outgoing connection from this sss::host.

There can be multiple servers and streams connected to multiple endpoints.

Build Status Bitdeli Badge

You can’t perform that action at this time.