Stream Control Transmission Protocol (SCTP)
Description: OpenSS7 Project Manual Pages Internet Protocol IP Transport
There are three OpenSS7 implementations of SCTP as follows:
- Linux Native Sockets SCTP Implementation
- Linux Fast-STREAMS SCTP Implementation
- strinet STREAMS-over-Sockets (SoS) SCTP Implementation
SCTP
Section: OpenSS7 STREAMS SCTP Devices (4)
Updated: 2008-10-31
Index
Return to Main Contents
NAME
sctp
- Stream Control Transmission Protocol (SCTP)
SYNOPSIS
#include <sys/socket.h>
#include <netinet/sctp.h>
#include <sys/npi_sctp.h>
#include <sys/tpi_sctp.h>
#include <sys/xti_sctp.h>
-
int sctp_stream = open(sctp_device, flags);
-
int sctp_xtistr = t_open(sctp_device, flags);
-
int sctp_socket = socket(PF_INET, socket_type, IPPROTO_SCTP);
DESCRIPTION
SCTP
is an implementation of the Stream Control Transmission Protocol
(SCTP)
defined in RFC 2960[1],
RFC 3309[2]
and RFC 4460[3].
SCTP
provides reliable delivery of ordered or unordered packets over a full duplex
connection between two streams on top of
ip(4).
SCTP
can guarantee that the data arrives in order on a stream, if requested, and
retransmits lost packets. It generates and checks a per-packet checksum to
catch transmission errors.
SCTP
uses the services of the Internet Protocol,
ip(4),
to transfer packets.
SCTP
is implemented as a (non-multiplexing)
STREAMS(4)
pseudo-device driver.
SCTP
provides two stream types. To select one of the stream types,
sctp_device
can be one of the following:
- /dev/sctp_n
- This device provides the
SCTP
protocol services using the N-primitives of the
Network Provider Interface (NPI)[4],
npi(7),
used for the Stream Control Transmission Protocol as described in
npi_sctp(7).
The
npi(7)
interface provided on a stream opening this device is suitable for use with
the
sockets(3)
library and provides the
SCTP
interface using sockets as described in
sctp(7).
This stream provides connection-oriented NPI services, with specialized
support for connectionless primitives.
- /dev/sctp_t
- This device provides the
SCTP
protocol service interface using the T-primitives of the Transport Provider
Interface (TPI)[5],
tpi(7),
used of the Stream Control Transmission Protocol, as described in
tpi_sctp(7)
for connection oriented trasnport service with orderly release and specialized
support for connectionsless primitives.
The
tpi(7)
interface provided on a stream opening this device is suitable for use with
the
libxnet(3) or xti(3)
library and provides the
SCTP
interface using XTI as described in
xti_sctp(3).
SCTP
provides three socket types for use by the
sockets(3)
library
socket(7)
calls.
SCTP
provides sockets in the protocol family
PF_INET
using the protocol number
IPPROTO_SCTP.
The
socket_type
argument can be one of the following:
- SOCK_SEQPACKET
- A standard
SOCK_SEQPACKET
socket that preserves message boundaries, Nagles at the association level, and
provides ordered and unordered reliable and partial reliable, acknnowledged
and unacknowledged delivery on multiple streams.
This socket uses the underlying
/dev/sctp_t
transport service provider.
- SOCK_STREAM
- A
tcp(7)
compatible
SOCK_STREAM
socket that does not preserve message boundaries, Nagles at the stream level,
and provides ordered and out-of-band unacknowledged deliver on a single
stream. This is an optional capability of
SCTP
that provides for maximum compatability with applications written for
tcp(4).
This socket uses the underlying
/dev/sctp_t
transport service provider.
- SOCK_RDM
- An
rudp(7)
compatible
SOCK_RDM
socket that preserves message boundaries, does not Nagle, and provides only
unordered but reliable or partially reliable delivery on multiple streams.
This is an optional capability of
SCTP
that provides for maximum compatibility with applications written for
rudp(7).
This socket uses the underlying
/dev/sctp_t
transport service provider.
- SOCK_DGRAM
- A
udp(7)
compatible
SOCK_DGRAM
socket that preserves message boudnaries, does not Nagle, and provides only
unordered (but reliable or partially reliable) delivery on multiple streams.
This is an optional capability of
SCTP
that provides for maximum compatibility with applications written for
udp(7).
The socket uses the underlying
/dev/sctp_t
trasnport service provider and its specialized connectionless transport
primitive support.
The following entries in
/etc/protosw
or
/etc/sock2path
provides the information necessary for
socksys(4)
to use these devices:
PF_INET | SOCK_SEQPACKET | 0 | /dev/sctp_t | # tpi | cots | ord
|
PF_INET | SOCK_SEQPACKET | IPPROTO_SCTP | /dev/sctp_t | # tpi | cots | ord
|
PF_INET | SOCK_STREAM | IPPROTO_SCTP | /dev/sctp_t | # tpi | cots | ord
|
PF_INET | SOCK_RDM | 0 | /dev/sctp_t | # tpi | cots | ord
|
PF_INET | SOCK_RDM | IPPROTO_SCTP | /dev/sctp_t | # tpi | cots | ord
|
PF_INET | SOCK_DGRAM | IPPROTO_SCTP | /dev/sctp_t | # tpi | clts |
|
For additional information, see
socksys(4),
protosw(5),
sock2path(5).
The following entries in
/etc/netconfig
provides the information necessary to use TI-RPC with these devices:
sctp | tpi_cots_ord | vm | inet | sctp | /dev/sctp_t | -
|
sctp6 | tpi_cots_ord | vm | inet6 | sctp | /dev/sctp6_t | -
|
For additional information, see
netconfig(3),
netconfig(5).
IOCTLS
SCTP
does not provide any specific input-output controls of its own. All
interfaces support
ioctl(2)
and
streamio(7)
I_STR
system calls on the
sctp_stream, sctp_xtistr or sctp_socket.
NOTICES
SCTP
has several implementations. This manpage is for the
STREAMS(4)
implementation. There is also an
INET(4)
implementation which provides
tpi(7)
access to the
OpenSS7
Linux NET4 version of
SCTP.
For more information on this version, see
sctp(7).
Sockets support is only available using the
strsock(5)
sockets API package for
Linux Fast-STREAMS.
TI-RPC support is only available using the
strnsl(5)
package for
Linux Fast-STREAMS.
FILES
<sys/socket.h>,
<netint/sctp.h>,
<sys/npi_ip.h>,
<sys/npi_sctp.h>,
<sys/tpi_ip.h>,
<sys/tpi_sctp.h>,
<sys/xti_ip.h>,
<sys/xti_sctp.h>.
MODULES
The following modules are typically used with the
sctp(4)
driver:
- tpiperf(4)
- A TPI performance test module specialy suited to
sctp(4)
performance testing is provided with the package. See the
tpiperf(4)
manual page for more information.
DEVICES
The
sctp(4)
driver provides the following devices, described above:
- /dev/sctp_n, /dev/sctp_t
- These are the NPI and TPI
clone(4)
minor devices that permit a user to open either an
npi(7)
Stream or a
tpi(7)
Stream.
SEE ALSO
ioctl(2),
ip(4),
npi(7),
npi_sctp(7),
protosw(5),
rudp(7),
sctp(7),
sctp(8),
sctp_ioctl(4),
sctp_ioctl(4).
socket(7),
sockets(3),
socksys(4),
streamio(7),
STREAMS(4),
tcp(7),
tpi(7),
tpi_sctp(7),
udp(7),
xnet(3),
xti(3),
xti_sctp(3).
REFERENCES
- [1]
- RFC 2960,
Stream Control Transmission Protocol (SCTP), October 2000, Randall R. Stewart, ed., The Internet Society.
(Obsoleted by RFC 4960) (Updated by RFC 3309) (Status: PROPOSED STANDARD)
<http://www.ietf.org/rfc/rfc2960.txt>
- [2]
- RFC 3309,
Stream Control Transmission Protocol (SCTP) Checksum Change, September 2002, Jonathan Stone, ed., The Internet Society.
(Obsoleted by RFC 4960) (Updates RFC 2960) (Status: PROPOSED STANDARD)
<http://www.ietf.org/rfc/rfc3309.txt>
- [3]
- RFC 4460,
Stream Control Transmission Protocol (SCTP) Specification Errata and Issues, April 2006, R. Stewart, I. Aria-Rodriguez, K. Poon, A. Caro and M. Tuexen, The Internet Society.
(Status: INFORMATIONAL)
<http://www.ietf.org/rfc/rfc4460.txt>
- [4]
- NPI,
Open Group CAE Specification:
Network Provider Interface (NPI) Specification, Revision 2.0.0, Draft 2, August 17, 1992, (Parsippany, New Jersey), UNIXInternational,Inc., UNIX International Press.
<http://www.openss7.org/docs/npi.pdf>
- [5]
- TPI Revision 2.0.0,
Open Group CAE Specification:
Transport Provider Interface (TPI) Specification, Revision 2.0.0, Draft 2, 1999, (Berkshire, UK), OpenGroup, Open Group Publication.
<http://www.opengroup.org/onlinepubs/>
- [6]
- RFC 3873,
Stream Control Transmission Protocol (SCTP) Mangement Information Base (MIB), September 2004, J. Pastor, M. Belinchon, The Internet Society.
(Status: PROPOSED STANDARD)
<http://www.ietf.org/rfc/rfc3873.txt>
- [7]
- RFC 3758,
Stream Control Transmission Protocol (SCTP) Partial Reliability Extension, May 2004, Randall R. Stewart, ed., The Internet Society.
(Status: PROPOSED STANDARD)
<http://www.ietf.org/rfc/rfc3758.txt>
- [8]
- draft-ietf-tsvwg-addip-sctp-08.txt,
Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration, September 24, 2003, Randall R. Stewart, ed., Internet Engineering Task Force - Signalling Transport Working Group.
Work In Progress.
<http://www.ietf.org/internet-drafts/draft-ietf-tsvwg-addip-sctp-08.txt>
- [9]
- draft-ietf-tsvwg-sctpimpguide-10.txt,
Stream Control Transmission Protocol (SCTP) Implementor's Guide, November 13, 2003, Randall R. Stewart, ed., Internet Engineering Task Force - Signalling Transport Working Group.
Work In Progress.
<http://www.ietf.org/internet-drafts/draft-ietf-tsvwg-sctpimpguide-10.txt>
TRADEMARKS
- OpenSS7tm
- is a trademark of OpenSS7 Corporation.
- Linux®
- is a registered trademark of Linus Torvalds.
- UNIX®
- is a registered trademark of The Open Group.
- Solaris®
- is a registered trademark of Sun Microsystems.
Other trademarks are the property of their respective owners.
IDENTIFICATION
-
OpenSS7 STREAMS SCTP: Package strsctp version 0.9.2.9 released 2008-10-31.
Copyright©1997-2008OpenSS7 Corp.
All Rights Reserved.
(See roff source for permission notice.)
Index
- NAME
- SYNOPSIS
- DESCRIPTION
- IOCTLS
- NOTICES
- FILES
- MODULES
- DEVICES
- SEE ALSO
- REFERENCES
- TRADEMARKS
- IDENTIFICATION
This document was created by
man2html,
using the manual pages.
Time: 04:24:21 GMT, October 04, 2024