CS 640 Assignment 1: Sockets, Mininet, & Performance solution

$29.99

Category:

Description

5/5 - (4 votes)

Overview Iperf is a common tool used to measure network bandwidth. You will write your own version of this tool in Java using sockets. You will then use your tools to measure the performance of virtual networks in Mininet and explain how link characteristics and multiplexing impact performance. Learning Outcomes After completing this programming assignment, students should be able to: Write applications that use sockets to transmit and receive data across a network Describe how latency and throughput can be measured Explain how latency and throughput are impacted by link characteristics and multiplexing Clarifications The Iperfer server should shut down after it handles one connection from a client. Part 1: Write Iperfer For the first part of the assignment you will write your own version of iperf to measure network bandwidth. Your tool, called Iperfer, will send and receive TCP packets between a pair of hosts using sockets. Note: A good resource and a starting point to learn about Java socket programs is the Java sockets tutorial. [https://docs.oracle.com/javase/tutorial/networking/sockets/index.html] When operating in client mode, Iperfer will send TCP packets to a specific host for a specified time window and track how much data was sent during that time frame; it will calculate and display the bandwidth based on how much data was sent in the elapsed time. When operating in server mode, Iperfer will receive TCP packets and track how much data was received during the lifetime of a connection; it will calculate and display the bandwidth based on how much data was received and how much time elapsed between received the first and last byte of data. Client Mode To operate Iperfer in client mode, it should be invoked as follows: java Iperfer -c -h -p -t