Computer networks
Undergraduate · CS / Programming
Syllabus focus
Topics typically covered
Standard syllabus
Layered architecture
- OSI and TCP/IP models; encapsulation
- Physical and link layers: framing, error detection (intro)
- Ethernet, switches, and ARP
- IP addressing, subnets, and CIDR
- ICMP and basic troubleshooting (ping, traceroute)
Transport and applications
- UDP vs TCP; reliability, flow control, congestion control (intro)
- Sockets API: TCP client/server programming
- HTTP/1.1, DNS, and CDN concepts (intro)
- Routing algorithms: link-state, distance-vector (intro)
- NAT, DHCP, and home/office network design
Protocols in depth
- Ethernet, IP addressing, and subnetting practice
- TCP handshake, congestion control intuition
- UDP use cases and reliability layering
- HTTP/1.1 vs HTTP/2/3 survey
- DNS resolution path and caching
- NAT, firewalls, and middleboxes
STEM / applied
Labs and measurement
- Wireshark packet capture and protocol analysis
- Building a multi-threaded web server (intro project)
- Latency, bandwidth, and throughput experiments
- Wireless and mobile networks overview (802.11, LTE intro)
- Network security: TLS handshake and certificates (intro)
Advanced topics survey
- Software-defined networking and OpenFlow (intro)
- Content delivery and anycast (intro)
- Peer-to-peer and overlay networks (intro)
- QoS and traffic shaping (intro)
- Cloud VPCs and security groups in practice
Building and diagnosing
- Socket programming client/server labs
- Wireshark/tcpdump packet analysis
- TLS certificates and HTTPS debugging
- CDN caching behavior for web apps
- Rate limiting and DDoS mitigation basics
- Capstone: small protocol or networked app with tests
Notes
Socket programming language varies (C, Python, Java). Wireless depth differs by department.