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
Work
individually.