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.



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


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

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



Designated as sender system


Designated as receiver system


Length of each Buffer sent


RCV_BUF value


SND_BUF value


Number of TCP streams


Number of Buffers to send


Receiver IP address


Source Code

Please see attachment