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.
Logistics
Audience
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