In this paper, we describe a kernel level implementation of the Stream Control Transmission Protocol (SCTP), standardized in RFC 2960 in October 2000. SCTP is a reliable transport layer protocol. It was initially developed as a signaling protocol to overcome some of TCP’s limitations. It respects packet boundaries, and supports multiple independent streams of data within one connection. Unlike the fixed packet format of TCP, SCTP uses chunked packets, which is much more flexible. Being a relatively young member in the transport protocol family, SCTP has not been widely adopted. It is not supported by any of the widespread operating systems. Only a user level reference implementation and some experimental kernel implementations are available. To our knowledge, the SCTP implementation presented in this paper is the first kernel implementation for FreeBSD. We conducted some preliminary experiments with our kernel level implementation of SCTP. The results obtained confirmed some of the expected advantages of SCTP over TCP.
[1]
Larry L. Peterson,et al.
TCP Vegas: End to End Congestion Avoidance on a Global Internet
,
1995,
IEEE J. Sel. Areas Commun..
[2]
L. Peterson,et al.
TCP Vegas: new techniques for congestion detection and avoidance
,
1994,
SIGCOMM.
[3]
A. Chukarin,et al.
Performance Evaluation of the Stream Control Transmission Protocol
,
2006,
MELECON 2006 - 2006 IEEE Mediterranean Electrotechnical Conference.
[4]
RFC 959: File transfer protocol
,
1985
.
[5]
V. Jacobson,et al.
Congestion avoidance and control
,
1988,
SIGCOMM '88.
[6]
Hari Balakrishnan,et al.
Fine-Grained Failover Using Connection Migration
,
2001,
USITS.
[7]
Sunil Mahajan.
Conformance Test Specification for SCTP
,
2001
.
[8]
V. Paxson.
RFC 2581 TCP Congestion Control
,
2018
.
[9]
H. Balakrishnan,et al.
A comparison of mechanisms for improving TCP performance over wireless links
,
1999,
SIGCOMM '96.