Reference no: EM132535051
FIT5010 Network protocols standards - Monash University
TCP Performance Study
1 Synopsis
In this assignment, you will use iperf3 to explore TCP performance when the number of parallel connections, Wireless signal strength, and Round Trip Time (RTT) vary.
This is a group assignment. You need to make a group of 3 people. Group of 2 under special circumstances are allowed.
Assignment Outline
• Parallel Connections: TCP throughput vs. Number of Parallel Connections. Using iperf3.
Wireless Signal Strength: TCP throughput vs. Signal-to-Noise Ratio (SNR) of your wireless connection. Using iperf3 and SNR analyser.
• RTT: TCP throughput vs. Round Trip Time from client to server. Using iperf3.
TCP Throughput v.s. Parallel Connections
You will study how the number of parallel TCP connections affects overall TCP throughput.
Installation
You will use iperf3 for this assignment. Installing iperf3 should be straight forward. Download the latest iperf3 for the correct platform, and then unzip it to get the iperf3 executable.
Get yourself familiar with iperf3. Run the following command to see the complete list of options for iperf3:
You need to set up your iperf3 server on a Unix platform (Ubuntu 18.04 LTS (Bionic) amd64) virtual
./iperf3 -h
machine (VM) running on the NECTAR cloud. The instruction on how to run a virtual machine is given here
After your VM setup on NECTAR is over, install iperf3 on your cloud machine and run the following:
./iperf3 -s
You might want to specify a different port with -p. Use -h for a complete list of options. Make sure necessary ports are open on your Nectar instance security.
Connect and transmit data to the server
When your iperf3 server is up and running, run your iperf3 client on your local machine (e.g., Desktop or laptop) using the following command:
./iperf3 -c <SERVER_IP> -p <SERVER_PORT>
By default iperf3 uses TCP/UDP port 5201.
The below command connects to the server with IP address 89.84.1.222 on port 5204 (-p option) with a single TCP connection, and tests for 10 second transmit from the client (your machine) to server.
./iperf3 -c 89.84.1.222 -p 5204
To specify the length of time to transmit use:
./iperf3 -c <SERVER_IP> -p <SERVER_PORT> -t <TIME IN SECONDS>
Default is 10 seconds.
To run parallel connections to a server
./iperf3 -c <SERVER_IP> -p <SERVER_PORT> -P <NUMBER OF PARALLEL CLIENT STREAMS>
The above command opens up and transmits with multiple parallel TCP connections to the server (notice the capital -P here).
We want you to study how the number of parallel connections affects overall TCP performance. You will plot the total aggregate bandwidth (throughput) vs. the number of parallel TCP connections. (You can write a shell script to automate the process of trying a different number of parallel connections.)
What you need to provide!
You should provide us with the following:
Script: Bash/shell script you use to run the parallel connections. It should at least contain the specific iperf3 commands you run.
A plot and at most 400 words (half a page) report addressing the following (Put it into a pdf): 1.Please provide the IP address of your server and describe the parameters you use, e.g., length of time to transmit (with -t), number of parallel connections (with -P), and other parameters if you specify any. Note, only the number of parallel connections should vary, and all other parameters should be fixed.
2. What's the number of parallel connections that give the highest aggregate bandwidth? What's the trend of aggregate bandwidth as the number of parallel connections increases?
3. Briefly explain the possible reasons behind what you observe. For instance, if aggregate band- width increases with more parallel connections at the beginning, then what's the mathematical formula that may explain this? And if aggregate bandwidth stops increasing or even decreases a bit later on, what might be the possible causes?
4 TCP Throughput v.s. SNR of Wireless link
You will study how TCP throughput varies based on the SNR (Signal to noise ratio) variation of the wireless link. The focus of this task is to measure the performance of TCP over WiFi. There are many factors that may impact the performance of your WiFi connection. Some factors, or parameters, that may impact on performance are: Distance, Interference from other devices (especially WiFi) and objects (e.g., people or wall).
Setup
For this task you need at least two devices, e.g., a desktop and a laptop or two laptops or a laptop and a smartphone). Set up the following network topology:
device-1 (Server) wired-link Access Point wireless link device-2 (client)
Run an iperf3 server on the wired device (device-1) and iperf3 client on the wireless device (device-2). Run multiple experiments under different SNR conditions (at least 5 significantly different SNRs) and measure TCP throughput from the client to the server. For each experiment, choose and set the relevant parameter values, e.g. duration. The values should be constant throughout the duration of the experiment. To change SNR, you can change your distance to you access point, add noise by adding other nearby wifi devices transmitting, have objects interfering signal (a room with a closed door), etc.
To measure SNR on your client device you can use various applications available, e.g., net analyzer android, netspot for windows and Wireless Diagnostics.app for Mac. If you do not get SNR from the app you are using you can use RSSI Noise. RSSI stands for Received Signal Strength Indicator. In your report, explain what you have measured and how you did the experiments clrealy. If your are using your smartphone as the wireless device, for iperf3 client, there are many free apps available in the market, for example iPerf 3 Wifi Speed Test for ios or Magic iPerf for Androids.
What you need to provide!
A plot and at most 600 words report addressing the following (Put it into the same pdf as the previous experiment):
1. Experimental setup: You should explain how you set up your experiments with the sketch of experimental environment (e.g. home and locations) that you measured throughput and SNR.
2. You should explain the specific iperf configurations you run. Please describe the parameters you use, e.g., time to transmit (with -t), and other parameters if you specify any. Note that only the SNR should vary, and all other parameters should be fixed.
3. Explain how SNR affects throughput? Briefly explain what are the circumstances affecting SNR? Why?
5 TCP Throughput v.s. Round Trip Time (RTT)
You will study how TCP throughput varies with RTT.
In this experiment, you can use several public iperf3 servers here: Choose servers that they have significantly different RTT for better results. Check RTT with ping first.
Note, if you get an error saying "iperf3: error - the server is busy running a test. try again later", then try connecting to another different port (-p [port num]), or try another server.
Pick several iperf3 servers (at least 3, ideally located in separate geolocations), and plot bandwidth vs. the RTT to the servers. You can use ping to get the RTT.
What you need to provide!
You should provide us with the following:
Script: Bash/shell script you use to connect and ping the servers. It should at least contain the specific iperf and ping commands you run.
A plot and at most 400 words (half a page) report addressing the following (Put it into the same pdf as the previous experiment):
1. Please provide the IP addresses of servers and describe the parameters you use, e.g., length of time to transmit (with -t), which servers you use (and where they are located), and other parameters if you specify any. Note, only the server names should vary, and all other parameters should be fixed.
2. What mathematical relationship should you expect to see between throughput and RTT? Why? 3.If what you observe from your plot is not strictly the same as what's shown in the math equation
(which is usually the case), then briefly explain what are other possible factors which may affect
throughput?
6 Things to consider
Note the following in all experiments:
Isolate your experiment conditions and fix factors affecting results as much as you can (For example do not watch Youtube during the experiment).
When you run an experiment there may be factors outside of your control that impact on performance. Therefore you should repeat each experiment multiple times, and report the mean of those runs (at least 3 times).
• Make sure the length of experiments is adequately long (at least 30 seconds).
• In all plots, Y-axis of your plot shows Throughput in Mbps.
You should describe the role of each team member in your report. You can provide a three-column table in your report that shows student name, percentage of contribution and elements each member contributed.
Attachment:- TCP Performance Study.rar