CPSC 5550: Client-Server Systms

Course Description

The design of digital computer networks.  Topics covered include the theory, design, engineering, installation, and performance analysis of networks to connect digital computers.  The course will prepare students to plan, implement, and evaluate a network.  Also includes peer-to-peer networks, the client-server model, network operating systems, and an introduction to wide-area networks. The network and implementation tools may vary to meet current development trends.  Prerequisites: CPSC 503 or equivalent.


Computer Networks and Internets with Internet Applications, Douglas E. Comer, ISBN 0131433512, 4th Edition. Publisher is Prentice Hall.


Hands-On Networking with Internet Technologies, Douglas E. Comer, ISBN 0131486969, 2nd Edition.


Useful supplements:


Internetworking with TCP/IP Volume 3: Client-Server Programming and Application (Linux/POSIX edition).


Internetworking with TCP/IP Volume 3: Client-Server Programming and Application (Windows Sockets Version).

Lecture Notes

Lecture 1: Introduction, Motivation and Tools

Lecture 2: Network Programming and Applications

Labs and Assignments

  •     Assignment 1


  •     Assignment 2


  • Assignment 3
    • Packet analyzer software is available from a variety of sources.  For example, tcpdump, which is available from:, is a text-based program that works with Linux or UNIX systems.
    • You can find general information and source code for tcpdump at
    • Capture and decode the Ethernet Frames, IP header and TCP segment header. (Chaosreader may be able to help you to analyze)
    • Run one of the probe programs (NMAP, TCP scanning, etc. ) from an attacker to a target, capture and analyze the packets from the victim machine.
  • Assignment 4 (Due on April 7th)


    • Implement two applications that use UDP to exchange data. (10 pts)
    • Devise a protocol that uses a checksum and sequence numbers to handle corrupted and duplicated packets (i.e., define a message header).  Have the sender place a sequence number and checksum in the header of each outgoing packet.  Have the receiver use the checksum to verify that the packet arrives intact and the sequence number to remove duplicates.  (20 pts)
    • Extend the protocol to handle packet loss by arranging for the receiver to return an acknowledgement.  Have the sender retransmit a packet, if the acknowledgement does not arrive within 50 millisenods. Wait for successful acknowledgement of each packet before sending the next.  (40 pts)
    • Extend the protocol to use a sliding window scheme with a window size of 8 messages.  To verify the sliding windows works, have the sender display a log of incoming and outgoing packets. (30 pts)
    • Use threads to send 10 files from server to client simultaneously(bonus 30 pts)

Network Simulators

More IA Study Materials: