Simula Research Laboratory / Center for Resilient Networks and Applications / NorNet
Homepage of Thomas Dreibholz / sctplib and socketapi Homepage


sctplib and socketapi
The User-Space SCTP Library (sctplib) and Socket API Library (socketapi)
The SCTP Project


📰 News


💡 Description

The sctplib library is a prototype implementation of the Stream Control Transmission Protocol (SCTP), a message-oriented reliable transport protocol that supports multi-homing, and multiple message streams multiplexed within an SCTP connection (also named association). SCTP is described in RFC 4960. See Michael Tüxen's SCTP Page for details. The API of the library is modeled after Section 10 of RFC 4960, and most parameters and functions should be self-explanatory to the user familiar with this document. In addition to these interface functions between an Upper Layer Protocol (ULP) and an SCTP instance, the library also provides a number of helper functions that can be used to manage callbacks and timers, as well as UDP sockets for simple IPC. Furthermore, sctplib provides support for UDP encapsulation, making it possible to co-exist with kernel SCTP implementations.

socketapi is the corresponding BSD sockets API library, corresponding to RFC 6458. That is, unlike the usrsctp user-space SCTP implementation, sctplib also supports a full sockets API, including important and commonly-used functions like select() and poll(). This makes it possible to use sctplib e.g. with the following programs:

This work was partially funded by the Bundesministerium für Bildung und Forschung (BMBF) of the Federal Republic of Germany (Förderkennzeichen 01AK045). The authors alone are responsible for the results.


📖 Standardisation

The complete BibTeX references in a single file can be found here!

2024

2021

2020

2019

2017

2016

2015

2014

2013

2012

2011

2010

2007

2006

2005

2004

2003

2002

2000

If something is missing, see the Internet Draft archive at Watersprings.org. Please also contact me in case of missing or dead links.


💾 Download

Binary Package Installation

Please use the issue tracker at https://github.com/dreibh/sctplib/issues (sctplib) and https://github.com/dreibh/socketapi/issues (socketapi) to report bugs and issues!

Ubuntu Linux

For ready-to-install Ubuntu Linux packages of sctplib and socketapi, see Launchpad PPA for Thomas Dreibholz!

sudo apt-add-repository -sy ppa:dreibh/ppa
sudo apt-get update
sudo apt-get install libsctplib-dev libsctplib1 sctplib-doc libsctpsocket-dev libsctpsocket2

Fedora Linux

For ready-to-install Fedora Linux packages of sctplib and socketapi, see COPR PPA for Thomas Dreibholz!

sudo dnf copr enable -y dreibh/ppa
sudo dnf install sctplib-libsctplib-devel sctplib-libsctplib sctplib-docs sctplib-libsctpsocket-devel sctplib-libsctpsocket

FreeBSD

For ready-to-install FreeBSD packages of sctplib and socketapi, it is included in the ports collection, see FreeBSD ports tree index of net/sctplib/ and FreeBSD ports tree index of net/socketapi/!

pkg install sctplib socketapi

Alternatively, to compile it from the ports sources:

cd /usr/ports/net/sctplib
make
make install

cd /usr/ports/net/socketapi
make
make install

Sources Download

sctplib and socketapi are released under GNU General Public Licence (GPL) and partly under GNU Lesser General Public License (LGPL).

Please use the issue tracker at https://github.com/dreibh/sctplib/issues (sctplib) and https://github.com/dreibh/socketapi/issues (socketapi) to report bugs and issues!

Development Version

sctplib

The Git repository of the sctplib sources can be found at https://github.com/dreibh/sctplib:

git clone https://github.com/dreibh/sctplib
cd sctplib
./autogen.sh

Contributions:

socketapi

The Git repository of the socketapi sources can be found at https://github.com/dreibh/socketapi:

git clone https://github.com/dreibh/socketapi
cd socketapi
./autogen.sh

Contributions:

Current Stable Releases

The tarballs have been signed with my GnuPG key 21412672­518D8B2D­1862EFEF­5CD5D12A­A0877B49. Their authenticity and integrity can be verified by:

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 21412672518D8B2D1862EFEF5CD5D12AA0877B49
gpg --verify PACKAGE-VERSION.tar.gz.asc PACKAGE-VERSION.tar.gz
sctplib
socketapi

Old Releases

The tarballs have been signed with my GnuPG key 21412672­518D8B2D­1862EFEF­5CD5D12A­A0877B49. Their authenticity and integrity can be verified by:

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 21412672518D8B2D1862EFEF5CD5D12AA0877B49
gpg --verify PACKAGE-VERSION.tar.gz.asc PACKAGE-VERSION.tar.gz
sctplib
socketapi

📧 Our Mailing Lists