CS 6390 Advanced Computer Networks
Homework Assignment 2
Due on October 31, 2011 at 11:30pm.
Assignment Overview
In this assignment, you will explore the various tools that an end user can
use to discover what is happening in the network. You will experiment with the
following five tools:
- arp
- ifconfig
- traceroute
- netstat
- nslookup
- tracenet --- optional
Assignment Details
These tools (except for tracenet) should be available on machines running a UNIX-based
operating system. Some of these tools may not perform as expected on netXX.utdallas.edu machines as these machines are configured in a way
to avoid sending unnecessary traffic to outside world. In those cases, try
running the tools on some other CS or UTD UNIX machines (e.g., cs1.utdallas.edu
or cs2.utdallas.edu). The absolute paths for each of the tool is given in the
parenthesis below.
During the assignment, you will need to consult the "man pages" of these
tools and will want to do some search on the web.
arp (/usr/sbin/arp)
- Learn what ARP protocol is and what it is used for.
- What is the arp table? Why does your machine need this table?
- What happens when you try to add/delete an entry into the arp table
on your machine? Why is this the case?
- Without being a superuser, how can you affect (either add, delete,
or change) entries in the arp table? Use a mechanism to add at least one
new host to the arp table and include a printout that is different from
Part 2 above.
ifconfig (/usr/sbin/ifconfig)
- Run "ifconfig -a" on your local machine. Capture the output and identify
and explain as much of what is printed as you can.
- What is the command to determine whether the network interface is
controlled by DHCP or not?
traceroute (/usr/sbin/traceroute)
- Explain in detail how traceroute works.
- Perform a traceroute from your machine to www.metu.edu.tr
. Include a copy of the output and explain what happened including a description
of what each of the fields means.
- What happens if you traceroute to a non-existent machine?
Include a copy of the traceroute. How do you know the machine that
you traced to was non-existent instead of just down or not responding? (NOTE:
This question is actually tricky and requires some special thought.)
netstat (/usr/bin/netstat)
- What is netstat and what is it used for?
- What parameters should you use to show all the TCP connections established?
Include a printout of this list.
- What does netstat -r show? What is noteworthy about the output?
- netstat can be used to display network interface status.
What option of netstat does that? By using netstat, figure
out the number of interfaces on your machine. In the output you will find
an interface named lo0 as a loopback interface. Can you say anything
about this interface, about its function?
nslookup (/usr/sbin/nslookup)
- What is the IP address for the machine morticia.cc.gatech.edu?
- What local machine is this information coming from? Why is
it coming from this machine?
- Here is the problem: I want to find the IP address of where my email
to somebody@aol.com goes. What you really need to do is find the ``mail
exchanger'' for aol.com. There is an option in nslookup that tells you what
the mail exchanger is for aol.com. Figure out the exact syntax of the format
of this command, and execute it. Now what is the IP address of where my email
to AOL goes?
tracenet -- this is optional and will not be graded (available at http://itom.utdallas.edu/tracenet_download.html)
Tracenet is a new network diagnostic tool that we have recently developed here
at UTD. We would like you to download it at the above URL and install it on
your Linux machine. The tool requires root privileges and therefore you
cannot use it on UTD Linux servers as you would not have root access to
them. If you have a PC running Linux, you can install it on your system and
use it. Alternatively, you can create a virtual machine on your Windows PC
and install Linux and then install tracenet and use it there. Basically, we
would like your feedback about the tool and things that you can do with it.
Here are some questions to suggest what we want to learn from you:
- What is the difference between traceroute and tracenet returned
information? How can you make use of this information for network diagnosis,
etc.
- What might be a context that you would benefit from tracenet other than
network diagnosis?
- How would you improve on the user interface, amount of provided
information, intuitiveness of the tool for a novice user, etc.
Turn In: A soft copy of the assignment including all the related outputs
of the programs thru eLearning.