Friday, March 13, 2015

Uperf for sctp benchmark

The folks at uperf org has a testing tool that allows for you to build a  sctp benchmark  profile for testing  sctp thru-put. It's also great if you want to generated SCTP traffic to throw over a firewall interfaces .  https://twitter.com/uperf

The SCTP ( stream control transmission protocol ) is  yet another  layer4  transmission protocol.

To run this on 2 hosts you set one host up as a slave and the other as the master.

e.g

You will need to install the sctp libs

e.g

apt-get install libsctp-dev

And acquire the source for compiling;

wget http://sourceforge.net/projects/uperf/files/uperf/uperf-1.0.4.tar.bz2


Conduct your simple configure and make install and you then should have a working uperf utility.




Here's a simple SCTP session;


CLIENT SCTP 82 INIT
SERVER SCTP 306 INIT_ACK
 

CLIENT SCTP 278 COOKIE_ECHO
SERVER SCTP 50 COOKIE_ACK
 

CLIENT SCTP 318 DATA
SERVER SCTP 62 SACK
 

CLIENT SCTP 60 SHUTDOWN
SERVER SCTP 50 SHUTDOWN_ACK
CLIENT SCTP 60 SHUTDOWN_COMPLETE 



Now for testing you will need to define a profile and ensure you  active the profile for the test in hand. Here's a very simple and basic tcp profile for testing;

<?xml version="1.0"?>
<profile name="TCP-test01">
        <group nthreads="$t">
                <transaction iterations="1">
                     <flowop type="connect" options="remotehost=$h protocol=$p"/>
                </transaction>
                <transaction duration="60s">
                     <flowop type="read" options="size=64"/>
                     <flowop type="write" options="size=64"/>
                </transaction>
                <transaction iterations="1">
                     <flowop type="disconnect" />
                </transaction>
        </group>
</profile>


You will need to populate the variable listed above during the test

<?xml version="1.0"?>
<profile name="SCTP">
  <group nthreads="1">
        <transaction iterations="1">
            <flowop type="connect" options="remotehost=$h protocol=sctp" />
            <flowop type="write" options="count=2 size=64"/>
            <flowop type="disconnect" />
        </transaction>
  </group>
</profile>


To use the above we would  do  the following.

( master)

export h=127.0.0.1 ; uperf -m sctp1.xml -v


(slave )

uperf -s


Here's a few sample output ;




If you compile ssl support with the correct libs you can measure pure ssl performance.






Ken Felix
NSE ( Network Security Expert) and Route/Switching Engineer.
kfelix  -----a----t---- socpuppets ---dot---com

    ^     ^
=(  *  * )=
        o 
       /  \

No comments:

Post a Comment