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:

·  Length of each random buffer.

·  Number of buffers to send and receive.

·  The IP address of the receiver system.

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 5,000 buffers with 512KB 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 200000 -sb 8000000

Receiver: speedy -r -ip 140.173.170.66 -l 140800 -n 200000 -rb 8000000

-s / Designated as sender system
-r / Designated as receiver system
-l / Length of each Buffer sent
-rb / RCV_BUF value
-sb / SND_BUF value
-n / Number of Buffers to send
-ip / Receiver IP address

Source Code

Please see attachment