Related

Package

Manual

Manual Pages

References

Conformance

Performance

Documentation

Design

Status

FAQ

IP Transport

SCTP

TCP

UDP

SSCOP-MCE

IP

Performance

Applications

SS7 Stack

ISDN Stack

SIGTRAN Stack

VoIP Stack

MG Stack

SS7/ISDN Devices

IP Transport

Embedded Systems

Operating System

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 Performance SCTP.

Recent Test Results

The test results shown below are for one of the earlier package release of OpenSS7 Linux Native SCTP. This implementation was based on Linux BSD Sockets. Performance of OpenSS7 STREAMS SCTP greatly outperforms the Sockets version of SCTP (and has for some time). Current results performed on the streams-0.9.2.3, strinet-0.9.2.6 and strsctp-0.9.2.8 packages using netperf-2.3.6 are detailed in the paper: STREAMS vs. Sockets Performance Comparison for SCTP. This paper details that current results show Linux Fast-STREAMS SCTP running faster that Linux Sockets TCP.

Therefore, you might want to check the STREAMS SCTP Performance page for an overview of the STREAMS SCTP performance.


Old Test Results

The old test results are below for comparison purposes.

Test Configuration

The test configuration consists of two (2) 2.57 GHz UP Pentium IV machines, each equiped with 2 100BaseT interface cards (one cheap WalMart PCI card and one on the Motherboard), connected via a D-Link autosensing 10/100 Mbps Layer 2 switch. One Pentium IV machine runs RedHat 9 (with updates) and the kernel-2.4.20-28.9.sctp.0.2.19.1.i686.rpm binary RPM, the other, RedHat 7.2 (with updates) and the kernel-2.4.20-28.7.sctp.0.2.19.1.i686.rpm binary RPM. Default settings were used for all SCTP protocol parameters.

A modified version of Iperf Version 1.6.5 is used to perform tests. The modified version of Iperf can be downloaded in the iperf-1.6.5-openss7-sctp.tar.gz tarball.

The diagram, below, shows the test configuration.


Results

SCTP vs TCP

Testing was performed separately with iperf for TCP, SCTP with 1 interface, and SCTP with 2 interfaces, using host pumbah (192.168.0.4, 192.168.2.4) as the server and host porky (192.168.0.5, 192.168.2.5) as the client. (iperf by default opens a IPPROTO_SCTP, SOCK_STREAM socket for SCTP.)

Iperf invocation commands, where, $n is 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, are as follows:

TCP

pumbah #> iperf -s

porky #> iperf -c pumbah -l $n

SCTP (1 Interface)

pumbah #> iperf -s -B 192.168.2.4 -z

porky #> iperf -c 192.168.2.4 -B 192.168.2.5-l $n -z

SCTP (2 Interfaces)

pumbah #> iperf -s -z

porky #> iperf -c pumbah -l $n -z

The tabulated results are as follows:

Message TCP SCTP SCTP
Length (1 Interface) (1 Interface) (2 Interfaces)
(Bytes) (Mbps) (Mbps) (Mbps)
8 31.4 31.7 31.6
16 61.0 59.0 57.9
32 94.0 94.4 99.9
64 93.8 94.4 163
128 94.0 94.4 189
256 94.1 94.4 189
512 93.9 94.4 189
1024 94.0 94.4 189
2048 94.0 94.4 189
4096 93.9 94.4 189
8192 94.0 94.4 189
16384 94.0 94.4 189

A graph of the results is shown below.


The following conclusions can be drawn from the results:

  • At small (less that 64-byte) write message sizes, the machines are compute bound.

  • At large (greater thatn 64-byte) write message sizes, the machines are network bound.

  • Performance of OpenSS7 SCTP is equivalent to TCP when an association is formed with a signle interface on each host. (In fact, SCTP outperformed TCP slightly on throughput, yeilding 94.4 Mbps throughput vs. TCP 94.1 Mbps at larget message sizes.)

  • When multiple interfaces are used for SCTP, OpenSS7 SCTP significantly outperformed TCP by virtue of the fact that both interfaces could be utilized and the hosts were connected with a Layer 2 Ethernet switch.

  • OpenSS7 SCTP provides a superior alternative to TCP.

In similar tests, other SCTP implementations performed dismally (around 40 Mbps). See, for example, the DataTAG tests.

SCTP SOCK_SEQPACKET

Testing was performed separately with iperf for SCTP with 1 interface and SCTP with 2 interfaces, using host pumbah (192.168.0.4, 192.168.2.4) as the server and host porky (192.168.0.5, 192.168.2.5) as the client. (iperf was modified by hand to open an IPPROTO_SCTP, SOCK_SEQPACKET socket instead of a SOCK_STREAM socket.)

Iperf invocation commands, where, $n is 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, are as follows:

SCTP (1 Interface)

pumbah #> iperf -s -B 192.168.2.4 -z

porky #> iperf -c 192.168.2.4 -B 192.168.2.5-l $n -z

SCTP (2 Interfaces)

pumbah #> iperf -s -z

porky #> iperf -c pumbah -l $n -z

The tabulated results are as follows:

Message SCTP SCTP SCTP SCTP
Length (1 Interface) (1 Interface) (2 Interfaces) (2 Interfaces)
Theoretical Theoretical
(Bytes) (Mbps) (Mbps) (Mbps) (Mbps)
8 30.8 15.7 61.6 5.17
16 47.1 30.7 94.2 10.1
32 63.4 57.1 127 44.3
64 76.5 75.6 153 91.6
128 85.2 84.8 170 152
256 90.3 89.5 181 179
512 93.1 90.9 186 181
1024 94.5 92.2 189 182
2048 95.3 92.2 191 167
4096 95.7 93.3 191 187
8192 95.9 94.1 192 178
16384 95.9 94.1 192 178

A graph of the results is shown below.


The following conclusions can be drawn from the results:

  • For a single interface, OpenSS7 SCTP approaches the theoretical maximum for the link.

  • For double interfaces, with message sizes less than 64 bytes, SOCK_SEQPACKET performs poorly. For message sizes greater than 64 bytes, SOCK_SEQPACKET performance is comparable to SOCK_STREAM performance.

  • Gains could be acheived by altering the fragmentation logic in OpenSS7 SCTP for SOCK_SEQPACKET only to fragment Association Maximum Payload Size DATA chunks down to a fraction of the maximum payload size. This would permit better overall bundling of DATA chunks into SCTP packets.

Last modified: Mon, 25 Jun 2007 12:25:10 GMT  
Copyright © 2014 OpenSS7 Corporation All Rights Reserved.