OpenSS7
SS7 for the
Common Man

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified: Thursday, 12-Aug-2004 05:39:30 MDT

Home Overview Status News Documentation Resources About
   
 Overview
 Status
 News
 Documentation
 Resources
 About

   
Home Index Prev Next More Download Info FAQ Mail   Home -> Documentation -> Performance -> SCTP Performance


SCTP Performance

Test Configuration

The test configuration consists of two (2) 2.57 MHz 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.

 


Home Index Prev Next More Download Info FAQ Mail   Home -> Documentation -> Performance -> SCTP Performance

OpenSS7
SS7 for the
Common Man
Home Overview Status News Documentation Resources About

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified: Thursday, 12-Aug-2004 05:39:30 MDT