Stream Control Transmission Protocol (SCTP) is a message oriented, reliable transport protocol with direct support for multihoming that runs on top of Internet Protocol (IPv4/IPv6).
Like TCP, SCTP provides reliable, connection-oriented data delivery with congestion control, path MTU discovery and message fragmentation. Unlike TCP, SCTP also provides:
The IETF Transport Area Directors (TSV ADs) recognized SCTP as more than just a signaling transport and moved it from SIGTRAN to the Transport Area Working Group (TSVWG). TSVWG continues the standards process for SCTP, moving it toward full standard, and expanding the scope and application of SCTP.
If you are new to SCTP, the following documents are excellent references:
git clone git://github.com/borkmann/lksctp-tools.git
lksctp-tools-1.0.16 has been released.
It can be downloaded via Sourceforge here, or via Git:
git clone git://github.com/borkmann/lksctp-tools.git [...] git checkout lksctp-tools-1.0.16
Daniel Borkmann (2): sctp_status: fix usage of max_stream parameter Release lksctp-tools-1.0.16 Hangbin Liu (5): Remove duplicate sys/errno.h Move bzero to memset test_1_to_1_sockopt: we have changed the minimum value to 2048 sctp_status: add missed parameter description and remove unused option sctp_status: server side should also receive msg_cnt times Markos Chandras (1): lib/connectx: Fix build for prefixed architectures Matija Glavinic Pecotic (1): Remove dependency to implementation-specific a_rwnd behavior Simon Xu (1): lksctp: Avoid using file descriptor 0 to get ENOTSOCK Wang Weidong (1): tests: fix test_1_to_1_sockopt sock buff test case
Daniel Borkmann (3): withsctp: fix quoted command line arguments sctp_status: fix printstatus output Release lksctp-tools-1.0.15 Nicolas Dichtel (1): do not returns an error if AM_SILENT_RULES does not exist
Daniel Borkmann (3): build: only use AM_CPPFLAGS instead of a mixture of AM_CFLAGS and AM_CPPFLAGS test_sctp_sendrecvmsg: fix bug in msg_flag passing Release lksctp-tools-1.0.14 Diego Elio Pettenò (1): build: fix out-of-tree build of withsctp. Hangbin Liu (2): test_1_to_1_threads: fixup pthread hung by giving an array instead of a pointer test_1_to_1_threads: remove unused variable for t_recv and t_send Neil Horman (1): sctp: Add new spinfo state values to enumeration Sébastien Luttringer (1): build: Modernize autotools
lksctp provides the SCTP socket-based API based on the IETF Internet-draft Sockets API Extensions for SCTP. The primary goal of this API design is to provide the consistencies and the flexibilities for developers to either port or develop sockets based applications to take advantage of the SCTP features. By using this API, applications can be written in two networking programming styles: either in the connection-oriented style (TCP-style) or in the connectionless style (UDP-style).
For more information on the features and functions currently supported by lksctp, please refer to the documentation in the Linux kernel resp. in the lksctp-tools package. The lksctp-tools source contains a set of test programs which would also serve as example applications.
The two key architectural metaphores for lksctp are the state machine and the smart pipe. All contributions need to fit sensibly into one or the other metaphore. The core state machine is side-effect-free (pure functional) with a separate and explicit side-effect processing component. The smart pipes accept raw stuff in one end, and ``automagically'' emit cooked pieces out the other end. See the lksctp paper for more details.
Further documents about SCTP can be found in the mentioned RFCs, about lksctp i) within the Linux kernel documentation and ii) within the shipped lksctp-tools tarball.
For the Linux kernel implementation of SCTP and for lksctp-tools, please post technical questions, discussions, bugs or patches to the Linux SCTP mailing list firstname.lastname@example.org (subscribe, archive). For Linux kernel SCTP patches, also put email@example.com (subscribe, archive) into CC.
Important: lksctp-developers mailing list is closed and only its archive is kept for historical reasons. Use firstname.lastname@example.org instead!
The lksctp-tools project is always looking for community members interested in contributing. For versioning control, we use Git. The patch submission process is similar to the one of the Linux kernel. So please respect the kernel's coding guidelines and patch submission procedure.
Send your lksctp-tools patches to the email@example.com mailing list with ``[PATCH lksctp-tools]'' as a subject prefix for further review and inclusion.
Copyright 2002 La Monte H.P. Yarroll; Copyright 2002, 2004 IBM Corp.; Copyright 2010, 2013 Red Hat