Links

GitHub

Open HUB

Quick Links

Download

STREAMS

SIGTRAN

SS7

Hardware

SCTP

Related

Package

Manual

Manual Pages

References

Conformance

Performance

Documentation

Design

Status

FAQ

IP Transport

SCTP

TCP

UDP

SSCOP

IP

Man Pages

Applications

SS7 Stack

ISDN Stack

SIGTRAN Stack

VoIP Stack

MG Stack

SS7/ISDN Devices

IP Transport

Embedded Systems

OS

Documentation

FAQ

SIGTRAN

Design

Conformance

Performance

References

Man Pages

Manuals

Papers

Home

Overview

Status

Documentation

Resources

About

News

Stream Control Transmission Protocol (SCTP)

Description: OpenSS7 Project Manual Pages Internet Protocol IP Transport

There are three OpenSS7 implementations of SCTP as follows:

  1. Linux Native Sockets SCTP Implementation
  2. Linux Fast-STREAMS SCTP Implementation
  3. 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_INETSOCK_SEQPACKET0/dev/sctp_t# tpicotsord
PF_INETSOCK_SEQPACKETIPPROTO_SCTP/dev/sctp_t# tpicotsord
PF_INETSOCK_STREAMIPPROTO_SCTP/dev/sctp_t# tpicotsord
PF_INETSOCK_RDM0/dev/sctp_t# tpicotsord
PF_INETSOCK_RDMIPPROTO_SCTP/dev/sctp_t# tpicotsord
PF_INETSOCK_DGRAMIPPROTO_SCTP/dev/sctp_t# tpiclts

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:

sctptpi_cots_ordvminetsctp/dev/sctp_t-
sctp6tpi_cots_ordvminet6sctp/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: 17:05:00 GMT, November 14, 2024
Last modified: Sun, 05 Mar 2006 08:34:17 GMT  
Copyright © 2014 OpenSS7 Corporation All Rights Reserved.