Stream Control Transmission Protocol


Stream Control Transmission Protocol

In computer networking, the Stream Control Transmission Protocol (SCTP) is a Transport Layer protocol, serving in a similar role as the popular protocols TCP and UDP. Indeed, it provides some of the same service features of both, ensuring reliable, in-sequence transport of messages with congestion control.

The protocol was defined by the IETF Signaling Transport (SIGTRAN) working group in 2000. RFC 4960 defines the protocol. RFC 3286 provides an introduction.

In the absence of native SCTP support in operating systems it is possible to tunnel SCTP over UDP, [cite web
url = http://www3.ietf.org/proceedings/00jul/I-D/sigtran-sctptunnel-00.txt
title = Tunneling of SCTP over Single UDP Port
first = Lyndon | last = Ong | coauthors = Randall R. Stewart; Qiaobing Xie
] , as well as mapping TCP API calls to SCTP ones. [cite web
url = http://www.cis.udel.edu/~amer/PEL/poc/pdf/EuroBSDCon2007-bickhart-SCTP-Shim-layer.pdf
title = Transparent TCP-to-SCTP Translation Shim Layer
first = Ryan | last = Bickhar | coauthors = Paul D. Amer; Randall R. Stewart
year = 2007 | accessdate = 2008-09-13
]

Message-based multi-streaming

Whereas TCP is stream-oriented, i.e., transports byte streams, SCTP is transaction-oriented, meaning it transports data in one or more "messages". A message is a group of bytes sent in one transaction (transmit operation). Although TCP correctly reorders data that arrives out of order, it is concerned only with bytes. It does not honor message boundaries, i.e., the structure of data in terms of their original transmission units at the sender. SCTP, in contrast, conserves message boundaries by operating on whole messages in a fashion similar to the User Datagram Protocol (UDP). This means that a group of bytes that is sent in one transmission operation (transaction) is read exactly as that group, called message, at the receiver.

The term "multi-streaming" refers to the capability of SCTP to transmit several independent streams of messages in parallel, for example transmitting Web page images together with the Web page text. You can think of multi-streaming as bundling several TCP connections into a single SCTP association, operating on messages rather than bytes.

TCP preserves byte order in the stream by assigning a sequence number to each byte. SCTP, on the other hand, assigns a sequence number to each "message" sent in a stream. This allows independent ordering of messages in different streams. However, message ordering is optional in SCTP; a receiving application may choose to process messages in the order they are received instead of the order they were sent.

Benefits

Benefits of SCTP include:
* Multihoming support, where one (or both) endpoints of a connection can consist of more than one IP address, enabling transparent fail-over between redundant network paths.
* Delivery of data in chunks within independent streams - this eliminates unnecessary head-of-line blocking, as opposed to TCP byte-stream delivery.
* Path Selection and Monitoring - Selects a "primary" data transmission path and tests the connectivity of the transmission path.
* Validation and Acknowledgment mechanisms - Protects against flooding attacks and provides notification of duplicated or missing data chunks.
* Improved error detection suitable for jumbo Ethernet frames.

The designers of SCTP originally intended it for the transport of telephony (Signaling System 7) protocols over IP, with the goal of duplicating some of the reliability attributes of the SS7 signaling network in IP. This IETF effort is known as SIGTRAN. In the meantime, other uses have been proposed, for example the Diameter protocol and Reliable server pooling ("RSerPool").

Motivations

Transmission Control Protocol (TCP) has provided the primary means to transfer data across the Internet in a reliable way.However, TCP has imposed limitations on several applications. From RFC 4960: quotation
* TCP provides both reliable data transfer and strict order-of- transmission delivery of data. Some applications need reliable transfer without sequence maintenance, while others would be satisfied with partial ordering of the data. In both of these cases, the head-of-line blocking offered by TCP causes unnecessary delay.
* The stream-oriented nature of TCP is often an inconvenience. Applications must add their own record marking to delineate their messages, and must make explicit use of the [http://seclists.org/webappsec/2005/q3/0351.html push facility] to ensure that a complete message is transferred in a reasonable time.
* The limited scope of TCP sockets complicates the task of providing highly-available data transfer capability using multi-homed hosts.
* TCP is relatively vulnerable to denial-of-service attacks, such as SYN attacks.

These limitations affect the performance of IP over public switched telephone networks.

Comparison between transport layers

SCTP packets have a simpler basic structure than TCP or UDP packets. Each consists of two basic sections:
# The "common header", which occupies the first 12 bytes and is highlighted in blue, and
# The "data chunks", which occupy the remaining portion of the packet. The first chunk is highlighted in green, and the last of "N" chunks (Chunk N) is highlighted in red.

Each chunk has a type identifier that is one byte long yielding, at most, 255 different chunk types. RFC 4960 defines a list of chunk types and there are currently 15 types defined. The remainder of the chunk is a two byte length (maximum size of 65,535 bytes) and the data. If the chunk does not form a multiple of 4 bytes (i.e., the length is not a multiple of 4) then it is implicitly padded with zeros which are not included in the chunk length.

References

ee also

* Transport protocol comparison table

RFC history

* RFC 5062 Security Attacks Found Against the Stream Control Transmission Protocol (SCTP) and Current Countermeasures
* RFC 5061 Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration
* RFC 5043 Stream Control Transmission Protocol (SCTP) Direct Data Placement (DDP) Adaptation
* RFC 4960 Stream Control Transmission Protocol
* RFC 4895 Authenticated Chunks for the Stream Control Transmission Protocol (SCTP)
* RFC 4820 Padding Chunk and Parameter for the Stream Control Transmission Protocol (SCTP)
* RFC 4460 Stream Control Transmission Protocol (SCTP) Specification Errata and Issues
* RFC 3873 Stream Control Transmission Protocol (SCTP) Management Information Base (MIB)
* RFC 3758 Stream Control Transmission Protocol (SCTP) Partial Reliability Extension
* RFC 3554 On the Use of Stream Control Transmission Protocol (SCTP) with IPsec
* RFC 3436 Transport Layer Security over Stream Control Transmission Protocol
* RFC 3309 Stream Control Transmission Protocol (SCTP) Checksum Change (Obsoleted by RFC 4960)
* RFC 3286 An Introduction to the Stream Control Transmission Protocol
* RFC 3257 Stream Control Transmission Protocol Applicability Statement
* RFC 2960 Stream Control Transmission Protocol (Updated by RFC 3309 and obsoleted by RFC 4960)

External links

* [http://www.ibm.com/developerworks/linux/library/l-sctp/ Better Networking with SCTP] An IBM developerWorks article by M. Tim Jones
* http://www.sigtran.org
* http://www.ietf.org/html.charters/sigtran-charter.html
* http://www.openss7.org
* http://www.sctp.org
* http://www.sctp.de
* [http://degas.cis.udel.edu/SCTP/ SCTP] for [http://www.qualnet.com QualNet] network simulator from [http://degas.cis.udel.edu DEGAS] networking group
* [http://lksctp.sourceforge.net/ The Linux Kernel Stream Control Transmission Protocol (lksctp) project]
* [http://sctp.fh-muenster.de/ The KAME SCTP kernel implementation for Mac OS X]
* [http://www.eventhelix.com/RealtimeMantra/Networking/sctp.pdf SCTP Sequence Diagram - Setup, IP Address Reconfiguration and Release] (PDF)
* [http://www3.ietf.org/proceedings/00jul/I-D/sigtran-sctptunnel-00.txt Tunneling of SCTP over Single UDP Port]
* [http://gull.sourceforge.net/ Open Source / GPL Seagull test tool] - with SCTP support
* [http://www.cs.ubc.ca/labs/dsg/mpi-sctp/ Parallel computing using the Message-passing Interface (MPI) over SCTP]
* [http://sctp.tstf.net/index.php/SCTPscan/SCTPscan SCTPscan: SCTP port scanner and network scanner, GPL]
* [http://tdrwww.exp-math.uni-essen.de/inhalt/forschung/sctp_fb/ SCTP for beginners]


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Stream Control Transmission Protocol — (SCTP) Familia: Familia de protocolos de Internet Función: Protocolo de transporte confiable, con secuanciación con control de congestión, orientado a mensajes. Ubicación en la pila de protocolos Aplicación protocolo …   Wikipedia Español

  • Stream Control Transmission Protocol — (SCTP) es un protocolo de comunicación de capa de transporte que fue definido por el grupo SIGTRAN de IETF en el año 2000. El protocolo está especificado en la RFC 2960, y la RFC 3286 brinda una introducción al mismo. Como protocolo de transporte …   Enciclopedia Universal

  • Stream Control Transmission Protocol — Pile de protocoles 7.  Application 6.  Présentation 5.  Session 4.  T …   Wikipédia en Français

  • Stream Control Transmission Protocol — SCTP (Stream Control Transmission Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Zuverlässiges Transportprotokoll, das auf einem verbindungslosen Paketdienst aufsetzt SCTP im TCP/IP‑Protokollstapel: Anwendung Streaming Protokoll… …   Deutsch Wikipedia

  • Stream Control Transmission Protocol — SCTP (англ. Stream Control Transmission Protocol «протокол передачи с управлением потоком»), протокол транспортного уровня в компьютерных сетях, родившийся в 2000 году в RFC 4960 описывает этот протокол, а RFC 3286 содержит техническое вступление …   Википедия

  • Transmission Control Protocol — Pour les articles homonymes, voir TCP. Pile de protocoles 7.  Application 6.  …   Wikipédia en Français

  • Transmission Control Protocol — The Transmission Control Protocol (TCP) is one of the core protocols of the Internet Protocol Suite. TCP is so central that the entire suite is often referred to as TCP/IP. Whereas IP handles lower level transmissions from computer to computer as …   Wikipedia

  • Control character — In computing and telecommunication, a control character or non printing character is a code point (a number) in a character set, that does not in itself represent a written symbol. It is in band signaling in the context of character encoding. All …   Wikipedia

  • Real-time Transport Protocol — The Real time Transport Protocol (or RTP) defines a standardized packet format for delivering audio and video over the Internet. It was developed by the Audio Video Transport Working Group of the IETF and first published in 1996 as RFC 1889 which …   Wikipedia

  • Datagram Congestion Control Protocol — Internet protocol suite Application layer BGP DHCP DNS FTP HTTP …   Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.