Speedy

 

Summary

Speedy is a benchmark that measures maximum TCP throughput over a network.  It calculates the checksum of each random buffer on the sender system and checks the checksum for validity of data upon receiving the buffers.

 

How it works?

The benchmark runs on both a sender and a receiver system with user specified parameters:

 

 

The benchmark gets started on Machine B (Receiver) first followed by running the benchmark on Machine A (Sender).  Machine A begins sending random unique content buffers to Machine B until it sends the user specified number of buffers, while keeping track of how long it took for the process to complete.

 

To adhere with the rules, each outgoing buffer is of random content and it is different from other buffers sent on the wire.  Also as a pre-requisite and a rule the benchmark performs checksum calculations on each outbound buffer and do another checksum calculation on the receiver end to ensure the validation of each buffer received.  This is redundant since TCP already does checksum for us, but it was incorporated into the benchmark nonetheless because it is stated as a rule for the contest entry qualification.

 

Syntax

The syntax for sending 30,000 buffers with 140.8 KB worth of content data in each buffer to receiver system with IP 1.2.3.4 would be as follows:

 

Sender: speedy -s -ip 140.173.170.66 -l 140800 -n 30000 -sb 15000000 –t 2

Receiver:          speedy -r -ip 140.173.170.66 -l 140800 -n 30000 -rb 15000000 –t 2

 

-s

Designated as sender system

-r

Designated as receiver system

-l

Length of each Buffer sent

-rb

RCV_BUF value

-sb

SND_BUF value

-t

Number of TCP streams

-n

Number of Buffers to send

-ip

Receiver IP address

 

Source Code

Please see attachment