I would suggest Wireshark (ex Ethereal) as an interesting solution.
- Wireshark is free, open source and cross-platform.
I worked with Ethereal (before it changed to Wireshark) in the past, and I must admit that it was a very powerful tool. So WireShark is probably as powerful as Ethereal was and is probably more user friendly than it was in old days.
According to Wikipedia
Wireshark is a free and open-source
packet analyzer. It is used for
network troubleshooting, analysis,
software and communications protocol
development, and education. Originally
named Ethereal, in May 2006 the
project was renamed Wireshark due to
Wireshark is cross-platform, using the
GTK+ widget toolkit to implement its
user interface, and using pcap to
capture packets; it runs on various
Unix-like operating systems including
Linux, Mac OS X, BSD, and Solaris, and
on Microsoft Windows. There is also a
terminal-based (non-GUI) version
called TShark. Wireshark, and the
other programs distributed with it
such as TShark, are free software,
released under the terms of the GNU
General Public License.
Here is a video introduction to quickly have an idea of the interface and how it can be used and another one that shows you the ins and outs of advanced graphing.
Finally, here is the Wireshark User's Guide.