Wireshark
Wireshark is a free network protocol analyzer for Unix and Windows. It allows you to examine data from a live network or from a capture file on disk. You can interactively browse the capture data, viewing summary and detail information for each packet. Wireshark has several powerful features, including a rich display filter language and the ability to view the reconstructed stream of a TCP session.
More information on Wireshark can be found out at Wireshark home.
Snap Shots of Wireshark
This image shows Wireshark in the middle of a capture. As you can see, you can inspect the captured data in great detail, all while the capture is still in progress
This shows a DNS lookup from the server's perspective. It's interesting to note that the server issued four queries to resolve the name, and the client re-sent its query before the server could respond.
The "Follow TCP Stream" item under the "Tools" menu allows you to inspect the ASCII contents of a TCP data stream in a separate window. This can be invaluable for tracking down HTTP, SMTP, and POP server problems
Reference: Wireshark home