Back to Course List

EECS 489: Computer Networks

Instructor: Z. Morley Mao

Course Homepage:

We study how networks operate and how network applications are written. We study the workings of the Ethernet and the Internet: how packets are routed, how packets are transmitted, and what to do when there is network congestion. We look at packet headers and routing and transmission protocols. We learn what sockets are and how to use them. We write code to implement various routing and transmission protocols. We write code to build client-server applications. There will be a lot of programming.

Required text:
Kurose, James F., and Keith W. Ross. Computer Networking: a Top-down Approach. 3rd ed. Boston: Addison-Wesley, 2010.

Recommended text:
Steven , W. R. UNIX Network Programming, vol. 1: Networking APIs: The Sockets. Mass: Addison-Wesley, 2004.


  • Introduction, History of the Internet, the Protocol Stack, Socket
  • Socket Programming, Naming and DNS
  • DNS, Packets, Encapsulation
  • ICMP, Packet fragmentation, IPv6, tunneling, NAT
  • Routing: distance vector algorithm
  • Routing: distance vector heuristics and link state routing and OSPF
  • Interdomain and Policy Routing, BGP, MPLS
  • Interdomain routing security
  • Physical and Link Layers: ARP, DHCP
  • MAC Protocols: CSMA/CD (Ethernet) and others
  • Error control: FEC, Checksum, CRC
  • Flow Control: XON/XOFF, Stop &Wait, Sliding Window
  • ARQ: Alternating Bit, Go-Back-N, Selective Repeat
  • Application layer protocols: P2P Networking, Multicasting, FTP, SMTP HTTP, Web Caching and CDN, Multi-player Gaming
  • Application protocols: HTTP. Transport Layer: Connection Establishment and Teardown, Flow Control, RTT and RTO estimates
  • Congestion control, Effect of Asymmetry
  • AIMD and Router Architecture and OS
  • Multimedia Applications
  • Network Security: Kerberos, PKI, IPSec
  • Content Protection
  • Network Security: PGP, VPN, firewall and Mobile networks, Cellular and Wireless Networks: 1G, 2G, 3G, 802.11, WiMax