Ping Familiarization Project

by: burt rosenberg
at: january 2013


Tools of the trade

Ping!

This is a project to get you familiarized with the tools we will make use of this semester.

A word of caution: It is not cool to monitor or collect packets of other people's conversations. The exercises in this course are designed so that this will not be possible. We will be working on a virtual machine which connects to your computer by a private virtual network. True, it will connect outward to the world, but only communications relevant to your virtual machine will ever travel on the private network.

So why am I telling you this? Because when using a networking tool to read packets for your own projects outside of this class, you might be in a situation to access communications other than your own. Please take care that in such a situation your actions are appropriate.

Steps ...

  1. Install Virtual Box
  2. Create a virtual machine and install Ubuntu 12.04 LTS (32-bit desktop edition).
  3. Update all your software as suggested by the software management tool.
  4. Install subversion on your ubuntu VM, sudo apt-get install subversion.

Now you are ready for the ping familiarization experiment.

Experiment

Open two terminal windows. In one terminal window type "sudo tcpdump icmp -xx" and in the other type "ping www.mit.edu". The tcpdump command should now show the packets that are being sent between your machine and www.mit.edu.

Read the man pages (man tcpdump) to add the option to capture the output of tcpdump to the file pingtrace.out. Just a few packets tracing the ping of www.mit.edu are needed. Once captured you will edit pingtrace.out to dissect the packets.

There will be two kinds of packets: an echo request from your machine to www.mit.edu and an echo reply from www.mit.edu. You need only one example of each to dissect. Looking at the raw date of the packet:

  1. Identify and isolate the ethernet header, the IP header, the ICMP header, and the ICMP data.
  2. Dissect further each of the three headers to identify the major elements.
  3. For the ethernet header, the source and destination address and the type.
  4. For the IP header, the source and destination address and the protocol.
  5. For the ICMP header, the command.
You might need to refer to documentation on the web that give the precise description of these headers. This documentation is also among the class references.

Submitting

Proper directory and file names is essential if you want grading to go well. Make a directory proj1 and place your pingtrace.out file in that directory. Place a copy of the Makefile from class/proj1 there as well. Submit by subversion using "make submit". Don't forget to svn add the proj1 directory, and the pingtrace.out and Makefile files.

For help on subversion, read here.

There will be more instructions on proper makefiles when discussing future projects.



Copyright 2013 burton rosenberg
Last modified: 21 jan 2013