Douglas E. Comer

Computer Science Department
Purdue University
West Lafayette, IN 47907

webmaster: W. David Laverell

Companion Topics


Book Information

Purpose of Site

Getting Started



"What's New"

"Coming Attractions"

"C Pointers"



HON: Faculty Notes Home > Faculty

Faculty Notes

Comments on an approach to Part IV of Hands-On Networking

Please see Chapter 14 for a way to do Part IV with access to an Emulab if you do not have a dedicated intranet lab.

Comments on the use of Hands-On Networking

I am now looking back on using Hands-On Networking for the fourth time during the Spring 2007 semester. The course schedule gives a pretty accurate idea of what we did. I had six students of various levels of experience. One was clearly outstanding and has a Research Fellowship at the University of Kentucky next year. As a whole the class was enthusiastic, but a few of the students had trouble getting their assignments done (though by the end of the semester all were very nearly caught up). The big story this year was the introduction to the course of the Calvin Emulab, built with the support of an NSF grant. It was ready to go about halfway through the semester and was used in the course.

This year's assignments had a clear, logical flow.

  1. Extend the sample programs from Chapter 6 into a TCP file transfer program.

  2. Modify that program from TCP to UDP.

  3. Take the UDP file transfer programs, and modify them so they work through the Gateway (Chapter 8) which drops, corrupts, and reorders packets. One student did this on the Emulab over a link set up to lose packets.

  4. By this time the Emulab was pretty much ready to go, so the next assignment was to set up a link, run the TCP software over it watching traffic with tcpdump, and then start the UDP software. The TCP traffic not only slowed to a crawl (with the right parameters), it stopped!

  5. For the final project the students formed two teams and worked on multicast. They took a very different approach, but both did well.

    Links to Faculty Notes


      Part I: A Single Computer

        Chapter 2: Hardware And Software On A Single Computer
        Chapter 3: Using A Single Computer For Probing And Testing

      Part II: Network Programming On A Set Of Shared Workstations

        Chapter 4: Hardware And Software For A Shared Workstation Lab
        Chapter 5: Network Programming Experiments Using A Simplified API
        Chapter 6: Network Programming Experiments Using The Socket API
        Chapter 7: Concurrent Network Programming Experiments
        Chapter 8: Protocol Design Experiments
        Chapter 9: Experiments With Protocols From The TCP/IP Suite

      Part III: Measurement And Packet Analysis On Augmented Workstations

        Chapter 10: Hardware And Software For An Augmented Shared Lab
        Chapter 11: Network Measurement Experiments
        Chapter 12: Packet Capture And Analysis Experiments
        Chapter 13: Protocol Observation Experiments

      Part IV: Configuration Experiments In A Dedicated Intranet Lab

      Chapter 14: Hardware And Software For A Dedicated Intranet Lab
      Chapter 15: Internet Address Configuration Experiments
      Chapter 16: Web Technology Configuration Experiments
      Chapter 17: IP Routing And IP Forwarding Experiments
      Chapter 18: Virtual And Protected Internet Environment Experiments

      Part V: Protocol Stack Implementation In A Special-Purpose Lab

      Chapter 19: Hardware And Software For A Special-Purpose Protocol Development Lab
      Chapter 20: Protocol Stack Development Experiments

      Part VI: System Design In A Network System Engineering Lab

      Chapter 21: Hardware And Software For A Network System Engineering Lab
      Chapter 22: Network Systems Engineering Experiments

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