CS 456

CS 456 Computer Networks

General description

This course introduces the fundamentals of network architectures and protocols and focuses on protocols used in the Internet.



  • CS major students. Usually taken in fourth year
  • Normally Available

  • Fall, Winter, and Spring
  • Related courses

  • Pre-requisites: CS 350 or ECE 354; Computer Science students only
  • Anti-requisites: CS 436, ECE 358, 428
  • For official details, see the UW calendar

    Software/hardware used

  • Standard Linux environment with open-source programming language interpreters and compilers
  • Secure shell (ssh) and secure copy (scp)
  • Typical References

  • Computer Networking, a Top-Down Approach Featuring the Internet (6th edition), by James F. Kurose and Keith W. Ross, Addison-Wesley, 2012.
  • Required preparation

    At the start of the course, students should be able to:

  • Write, test, and debug programs of moderate size in preferred programming language
  • Describe basic components and explain basic properties of computing devices
  • Understand and use basic probability and statistics
  • Learning objectives

    At the end of the course, students should have the ability to:

  • Describe basic components and explain basic properties of a computer network.
  • Explain, and compare networking techniques including packet switching and circuit switching.
  • Define and calculate network performance metrics including throughput and delay.
  • Illustrate the Internet protocol stack and the Internet architecture.
  • Explain and compare network application models including peer-to-peer and client/server.
  • Recall, describe and illustrate different contemporary Internet application protocols.
  • Explain the principles of TCP reliable data transfer, flow control, congestion control and connection management.
  • Recall, classify and compare least-cost path computation algorithms and Internet routing protocols.
  • Recall, classify and compare data transmission media and medium access control schemes.
  • Reason about the efficiency of data communication protocols.
  • Develop and write client-server programs using the socket API.
  • Typical syllabus

    Overall picture of computer networking (8 hours)

  • Circuit switching vs. packet switching
  • access networks
  • physical media
  • network delays
  • protocol layering
  • TCP/IP architecture
  • Application layer protocols (8 hours)

  • World wide web (HTTP)
  • File Transfer Protocol (FTP)
  • electronic mail (SMTP)
  • Domain Name System (DNS)
  • socket programming
  • Transport layer protocols (8 hours)

  • Design issues
  • connectionless transport UDP
  • principles of reliable data transfer
  • connection-oriented Transport TCP
  • flow control
  • congestion control
  • Network layer and routing (8 hours)

  • Routing approaches
  • routing in the Internet
  • Internet protocol
  • multicast routing
  • tunnelling, router design
  • Data link layer (8 hours)

  • Multiple access protocols and LANs
  • address resolution protocol
  • wireless LANs