COSC 3300 Networks and Internets

Fall 2011

Homework Assignment #4

"Looks like I picked the wrong week to quit sniffing packets."
-- Steve McCroskey, Airplane!
Due: Friday, September 30th, 11:59pm CDT
Submit: Turn in your entire kernel source code using the turnin command on the Systems Lab machines.
Work is to be completed in teams. Only one team member should turnin, but it would be courteous to notify your teammate(s) when you do this. Names of authors should be included in all work. You may submit multiple times, but only the last turnin will be kept. The automatic submission system will not accept work after the deadline.

Capture and Decode Ethernet Frames

Build upon the Embedded Xinu shell command ethdump to capture and classify packets from a live network.

A starting tarball is available at ~brylow/cosc3300/Projects/xinu-project4.tgz.

Modify the ethdump shell command to display the Ethernet header fields (destination, source, and type) in hexadecimal.

Add a command-line option to the shell that displays a short name for the type you encounter. A list of Ethernet types can be found HERE. It is sufficient to cover just the common types you encounter.

Add a command-line option to identify OUIs for the frames you encounter. (See the link above.)

Indicate frames that contain broadcast or multicast addresses.

Display a set number of frame payload bytes in both hex and as characters. (Map unprintable characters to ".".)

A listing of MAC addresses for the lab can be found on Morbius in /usr/local/adm/etc/dhcp/dhcpd.conf. Add a command-line option to your shell command to translate MAC addresses in the frames it recieves to host names.

[Revised 2011 Sep 23 13:01 DWB]