ECE 456 – Computer Networks

Programming Assignment #6 :  Networking  Tools and Benchmarks

Aim

To use some  important  and commonly used networking and  benchmarking tools to monitor IP networks and evaluate performance..

Description

A set of commonly used network benchmarking tools are given below:  

iozone:

IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations. Iozone has been ported to many machines and runs under many operating systems. Iozone is useful for performing a broad filesystem analysis of a vendor’s computer platform. The benchmark tests file I/O performance for the following operations: Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write

(Src: www.iozone.org)

netperf (netserver included) :

Netperf is a benchmark that can be used to measure various aspects of networking performance. Currently, its focus is on bulk data transfer and request/response performance using either TCP or UDP, and the Berkeley Sockets interface

(Src: netperf man page)

tcpdump:

Tcpdump is a powerful tool that allows us to sniff network packets and make some statistical analysis out of those dumps. Tcpdump allows us to precisely see all the traffic and enables us to create statistical monitoring scripts.

(Src: http://www-iepm.slac.stanford.edu/monitoring/passive/tcpdump.html)

wireshark tools:

Wireshark is a free packet sniffer computer application. It is used for network troubleshooting, analysis, software and communication protocol development, and education. In June 2006 the project was renamed from Ethereal due to trademark issues. The functionality Wireshark provides is very similar to tcpdump, but it has many more information sorting and filtering options. It allows the user to see all traffic being passed over the network (usually an Ethrenet network but support is being added for others) by putting the network card into promiscuous mode .

(Src: http://en.wikipedia.org/wiki/Wireshark)

Most of these tools are available in both unix and windows versions. The tools netperf and iozone are available on linux1, linux8, mito, yupa and nausicaa engr machines only. In this assignment, our focus will be on the unix versions. However, you may perform these on windows machines after installing them on your own machines.

Tasks:

Read the description of each tool to understand the tool and the options for its use.  Use the tool to monitor the network (in case of wireshark)  or to evaluate the performance of relevant system component (in case of netperf and iozone).

iozone -

Perform the input and output operations read, write, random write and random read to evaluate how fast I/O operations can be carried out. Provide  3-D graphs of kbytes/sec VS record size VS file size.  Discuss the characteristics.

netperf -

netperf comes with 2 binaries. One is netserver and the other netperf. Netserver as the name suggests is a server module.  Netserver has been installed on "129.82.229.192". So, use netperf to connect to this machine and perform different kinds of tests such as TCP_STREAM, UDP_STREAM, UDP_RR using the "-t" option to find the throughput from different machines such as linux1, linux8, yupa, mito and nausicaa.
Evaluate the maximum TCP and UDP obtainable from each of these machines to the server one stream at a time.
Vary parameters such as packet size and evaluate their impact on the throughput.
Now send TCP_STREAM from one machine and a UDP_STREAM from another simultaneously to the server, and see how the performance is affected.  Evaluate the throughput you can achieve to with multiple combinations, and document your results.

Vary the test length using the "-l <seconds>" option from 10 to 50 with step length 5. Plot graph of throughput vs test lengths for every test.

Vary the buffer alignment using the "-a" option. Try sizes 1,2,4,8,16,32. Plot graph of throughput vs buffer alignment for every test.

Please use port number 7899 as this is the only port open for netperf usage.

wireshark

Install wireshark from http://www.wireshark.org/download.html on your PC / laptop. Get familiar with the usage and options available in wireshark. Use the Capture tab and select an appropriate interface to be captured. Using the browser, visit a website such as gmail or google which primarily uses TCP connections. Capture the data for around 2 mins. Using the Statistics tab, study the protocol hierarchies and analyze the flow graph. Similarly, use the browser to visit a website that is video intensive (e.g., youtube or video.google.com)  and visit the Statistics tab to study the protocol hierarchies and analyze the flow graph again. Why are the protocol hierarchy percentages different in the two cases,  browsing vs. video?
Try on a wireless network to see how vulnerable the traffic on it to eavesdropping. 

Write a brief report regarding the analysis carried out along with screen shots / graphs if any.

Useful Links

http://lox.csis.gvsu.edu/itl/tools2.htm

http://en.wikipedia.org/wiki/Network_analysis

http://compnetworking.about.com/od/networkperformance/TCPIP_Network_Performance_Benchmarks_and_Tools.htm

NOTES