Experiment 12.1

Chapter Notes Sample Output
12.1 12.2 12.3
This chapter seems straightforward, but there are complexities arising from variations in packet sniffing software and computer architecture. Professor Comer's comments in 12.3 are very important. It is hard for me to imagine completing this assignment without a fair amount of "Manual Packet Inspection". You will eventually be working with a file containing captured packets, and your packet sniffing software, tcpdump, snoop, or whatever likely has an option which will take that file and give you a more user friendly output. (Check the man page for your packet sniffer software.) This will allow you to identify certain fields, especially hardware addresses, that will help you as you find your way around the raw packets that your program has to read.

The first thing you must deal with is the header files. My preference is to use the include files found on your machine. However, snoop or tcpdump output must be taken into account. There is always a file header as well as a header for each individual packet. Finding a header file that corresponds turned out not to be possible. So, I made my own and you are welcome to use my snoop.h. I found /usr/include/sys/ethernet.h on my Solaris machine to be quite useful.

You need to be aware of the following problems:

It is hard to imagine dealing with these problems or even understanding them without analyzing the packets manually.

The Optional Extensions are particularly interesting. On a Linux box you can get your hardware address by using the ifconfig command. Solaris will give you this information if you are root, by typing /usr/sbin/ifconfig -a. If you are not root use the previous command to get the IP address and type /usr/sbin/arp your_ip_address.



This site is maintained by by W. David Laverell of the Computer Science Department at Calvin College.
For assistance or corrections, please contact him at lave@calvin.edu.