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.15 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.15
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
Daniel Borkmann (22): autotools: make build with silent rules test_fragments: increase message size since it succeeds docs: update current maintainers of lksctp-tools apps: fix format string warnings due to size_t usage apps: nagle: remove unused af_family variable sctp_darn: remove never read peer_prim_len variable func_tests: drop more af_family occurences test_1_to_1_sendmsg: remove set-only iov variable with malloced buffers test_1_to_1_threads: fixup pthread init and exit test_1_to_1_addrs: remove unused socket, iov and malloced buffer test_1_to_1_nonblock: remove unused iov and malloced send buffer test_1_to_1_recv: minor: fix compiler warning func_tests: remove unused associds all over the place test_autoclose: remove unneeded variable nagle_snd: remove variable with assignment-only apps: peel: no reason to keep unused/assigned-only variables test_1_to_1_sockopt: fix deprecated SO_RCVBUF/SO_SNDBUF testcase apps: sctp_darn: fix format string warning on some archs like ppc64 apps, func_tests: adapt cflags for older architectures sctp_darn: fix __u64 format string issues on ppc64 / x86_64 libsctputil: libtool: do not use -version-info for static, internal util lib Release lksctp-tools-1.0.13 Fan Du (1): sctp_xconnect: memory leak when malloc big buffer
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 email@example.com (subscribe, archive). For Linux kernel SCTP patches, also put firstname.lastname@example.org (subscribe, archive) into CC.
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