Reference and Selective Reading
You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks only when you need alternate exposition, more worked examples, or a deeper exercise lane.
Source Roles
| Source | Role | Why it is here |
|---|---|---|
| Computer Networking: A Top-Down Approach (Kurose & Ross) | Primary teaching source for protocols | Best overall arc for layering, IP, TCP/UDP, DNS, HTTP, and security |
| Unix Network Programming Vol. 1 (Stevens) | Primary teaching source for sockets | Authoritative coverage of the Berkeley sockets API and concurrent server designs |
| High Performance Browser Networking (Grigorik) | Selective support | Strongest short explanation of HTTP/2, HTTP/3/QUIC, and TLS performance |
| OSTEP | Light support only | Earlier in this semester it was primary; here, only skim when concurrency primitives come up |
| RFCs | Canonical reference | Consult when the wording matters, not as a teaching text |
Read Only If Stuck
The Networking Mental Model
- Computer Networking: Layered architecture (Part 1)
- Computer Networking: Layered architecture (Part 2)
- Computer Networking: Encapsulation
- Computer Networking: What is a protocol?
- Computer Networking: DNS overview (Part 1)
- Computer Networking: DNS records and messages (Part 1)
- Computer Networking: Link-layer addressing and ARP (Part 1)
- UNP: The big picture
- UNP: OSI model
IP and the Network Layer
- Computer Networking: The Internet Protocol
- Computer Networking: IPv4 addressing (Part 1)
- Computer Networking: IPv4 addressing (Part 2)
- Computer Networking: IPv4 addressing (Part 4)
- Computer Networking: NAT
- Computer Networking: Routing algorithms
- Computer Networking: ICMP
- UNP: IPv4 addresses
- UNP: IPv6 addresses (Part 1)
TCP and UDP
- Computer Networking: Connectionless transport UDP (Part 1)
- Computer Networking: Connectionless transport UDP (Part 2)
- Computer Networking: UDP checksum
- Computer Networking: The TCP connection
- Computer Networking: TCP segment structure (Part 1)
- Computer Networking: Round-trip time estimation and timeout
- Computer Networking: Reliable data transfer (Part 1)
- Computer Networking: Flow control
- Computer Networking: TCP connection management (Part 1)
- Computer Networking: TCP connection management (Part 2)
- Computer Networking: TCP connection management (Part 3)
- Computer Networking: Classic TCP congestion control (Part 1)
- Computer Networking: Evolution of transport-layer functionality
- UNP: User Datagram Protocol (UDP)
- UNP: TCP connection establishment and termination
- UNP: TIME_WAIT state
Application Protocols and HTTP
- Computer Networking: Overview of HTTP
- Computer Networking: Non-persistent and persistent connections
- Computer Networking: HTTP message format
- Computer Networking: Web caching (Part 1)
- Computer Networking: HTTP/2
- Computer Networking: Securing TCP connections (the big picture)
- Computer Networking: A more complete picture
- Computer Networking: Public-key encryption (Part 1)
- Computer Networking: Message integrity and digital signatures
- RFC 9110 -- HTTP Semantics
- RFC 8446 -- TLS 1.3
- RFC 9000 -- QUIC transport
- High Performance Browser Networking (Grigorik)
Socket Programming
- UNP: socket function
- UNP: connect function
- UNP: bind function
- UNP: listen function (Part 1)
- UNP: accept function
- UNP: TCP echo server
- UNP: Summary of TCP example
- UNP: I/O models
- UNP: select function (Part 1)
- UNP: advanced polling (Part 1)
- UNP: advanced polling (Part 2)
- UNP: TCP echo server using threads
- UNP: preforked TCP server (Part 1)
- UNP: one-thread-per-client server
- UNP: prethreaded server, main-thread accept
- UNP: socket address structures (Part 1)
- UNP: byte-ordering functions
- UNP: netstat program
- Computer Networking: Socket programming (chapter intro)
- Computer Networking: Socket programming with UDP
- Computer Networking: Socket programming with TCP (Part 1)
- Beej's Guide to Network Programming
Optional Deep Dive
- Computer Networking: Pipelined reliable data transfer
- Computer Networking: Go-Back-N (Part 1)
- Computer Networking: Selective Repeat (Part 1)
- Computer Networking: Causes and costs of congestion (Part 1)
- Computer Networking: Link-state routing (Part 1)
- Computer Networking: Distance-vector routing (Part 1)
- Computer Networking: DHCP, UDP, IP, Ethernet walkthrough
- Computer Networking: Wireshark lab SSL
Concept-to-Source Map
| Primary concept | Best source if stuck | Why this source |
|---|---|---|
| The layered model | CN 1.5.1 (Part 1) | Cleanest first pass that avoids OSI-versus-Internet confusion |
| Encapsulation | CN 1.5.2 | One short chunk with the diagram you need |
| Addressing and naming | CN 6.4.1 (Part 1) | MAC-vs-IP distinction made concrete through ARP |
| IPv4/IPv6 and subnets | CN 4.3.2 (Part 1) | Standard treatment of subnet math |
| Routing, CIDR, NAT | CN 4.3.3 | Best single chunk on NAT; CIDR in 4.3.2 (Part 4) |
| ICMP | CN 5.6 | Compact and canonical |
| UDP | CN 3.3 (Part 1) | Best standalone explanation |
| TCP mechanisms | CN 3.5.4 (Part 1) | Reliability + ordering grounded together |
| TCP handshake and state machine | CN 3.5.6 (Part 2) | Full state-machine diagram and explanation |
| HTTP/1.1 | CN 2.2.3 | Wire-format level |
| HTTP/2 and HTTP/3 | CN 2.2.6 + HPBN online | CN for basics, HPBN for performance |
| TLS | CN 8.6.1 | Best starting point before RFC 8446 |
| Berkeley sockets | UNP 4.x | Authoritative syscall coverage |
| Server architectures | UNP 30.x | Canonical concurrent server comparisons |
| Network debugging | CN Wireshark labs | Guided practice with real captures |