This schedule is an estimate. It may be updated based on the actual pacing of the course material.

“Readings” reference one of:

DateTopicAssignment
Week 1
Tue 26 Aug

intro / layers

 [ 
slides: logisticsintro
 ]
Reading:

PD 1.2-1.4; FS 1.1-1.3.2, 1.4

  • requirements, terminology
    • nodes, links, flows
    • frames/packets/segments
    • link types: point-to-point, multiple access
    • internetworks
    • (de)multiplexing
    • channel types: streams, datagrams, others?
  • building with layers
    • API between layers
    • layering models
      • Internet
      • OSI model (briefly)
    • wireshark interlude
Thu 28 Aug

framing

 [ 
slides: introphysicalframing
 ]
Reading:

PD 2.1-4

  • end-to-end argument
  • direct links
    • copper, fiber, radio
  • bits as voltage, timing
    • Manchester coding
  • types of transmission errors
  • framing
    • headers and trailers
    • byte, bits, clocks
  • error detection — checksums
Fri 29 Aug
Week 2
Tue 02 Sep

reliablity: ACKs / performance metrics

 [ 
slides: reliable
 ]
Reading:

PD 2.5.1-2.5.2, PD 1.5

  • stop-and-wait
  • need for sequence numbers

  • performance
    • bandwidth, latency, jitter
Thu 04 Sep

reliablity: sliding windows

 [ 
slides: reliable
 ]
Reading:

PD 2.5.1-2; FS 14

  • sliding window
    • size and bandwidth-delay product
    • sequence number wraparound
    • duplicate ACKs
    • selective ACKs
Fri 05 Sep
framing (tentative writeup) due by 11:59pm
Week 3
Tue 09 Sep

relability: TCP realities / switches

 [ 
slides: reliableswitches
 ]
Reading:

PD 3.1.1-3.1.2, 3.2-3.2.1, 3.2.4

Thu 11 Sep

learning bridges, ARP + ND, subnets

 [ 
slides: switches
 ]
Reading:

PD 3.2.1, 3.3.6; FS 8.5

  • P4 switch architecture (start)
  • learning bridges
Fri 12 Sep
reliable part 1 (zero/one) (tentative writeup) due by 11:59pm
Week 4
Tue 16 Sep

MACs and IPs

 [ 
slides: arp
 ]
Reading:

PD 3.3.2-3.3.7, 4.2.1-4.2.3

(Reiss out of town)

The recording is available on Canvas on the Panopto Video tab and will be copied here later.

  • IP versus MAC addresses
  • broadcast, basic multicast
    • broadcast on ethernet
    • broadcast on IP
  • ARP
  • ICMPv6 Neighbor Discovery

  • IP header
    • checksums
  • example: ICMP ping

  • autoconfiguration
    • DHCP
    • SLAAC
Thu 18 Sep

autoconfiguration / congestion control: the problem

 [ 
slides: arpcongest
 ]
Reading:

PD 6.1, 6.3

  • graph of throughput versus window size
  • history: congestion collapse
Fri 19 Sep
Week 5
Tue 23 Sep

congestion control: AIMD

 [ 
slides: congest
 ]
Reading:

PD 6.1, 6.3-4, 6.4.2, FS 16

  • observing good/bad congestion
  • steady-state and changing cross-traffic
  • slow-increase/fast-decrease
  • fair sharing
  • additive increase/multiplicative decrease
Thu 25 Sep

congestion control: fairness, fast recovery, slow start

 [ 
slides: congest
 ]
Reading:

PD 6.4.1-2, 6.2, FS 16

  • min/max fairness
  • fast retransmit and fast recovery
  • slow start
Fri 26 Sep
reliable part 2 (sliding window) (tentative writeup) due by 11:59pm
Week 6
Tue 30 Sep

congestion control: big buffers; high utilization is bad; ECN

 [ 
slides: congest
 ]
Reading:

PD 6.4, 6.2

  • quiz review

  • queuing theory interlude:
    • randomized arrivals means no 100% utilization
    • high variance from long queues
  • bufferbloat: congestion makes queues deep

  • timeout management
    • why estimate variance
    • exponential backoff idea
  • alternate congestion signals (start)
    • explicit congestion notification
      • echoing back congestion signal
Thu 02 Oct

queue disciplines

 [ 
slides: queuing
 ]
Reading:

PD 6.4.2, 6.2,

  • alternate congestion signals (finish)
    • delay-based congestion control
  • queue discplines
    • droptail and problems
    • fair queuing
    • strict priority
    • random early detection
Fri 03 Oct
P4 (tentative writeup) due by 11:59pm
Week 7
Tue 07 Oct

routing: forwarding errors; spanning tree

 [ 
slides: routing
 ]
Reading:

PD 3.3.4, 3.3.8, 3.2.3, 3.4.1, FS 8, D 3.1

  • network as a graph
    • review: routing tables
  • ICMP routing errors
    • time-to-live
    • unreachable
  • fragments

  • spanning tree protocols (start)
Thu 09 Oct

routing: spanning tree / distance vector

 [ 
slides: routing
 ]
Reading:

PD 3.4.2-3, D 13.1-3; D 13.5

  • spanning tree protocols (finish)
    • centralized
    • distributed
  • routing metrics

  • distance vector routing
    • running centrally
    • distributed protocol
Fri 10 Oct
reliable part 3 (variable window) (tentative writeup) due by 11:59pm
Week 8
Tue 14 Oct
(no class)
Thu 16 Oct

routing: distance vector (finish) / link state

 [ 
slides: routing
 ]
Reading:

PD 4.1.2; PD 5.1-5.2

  • distance vector (con’t)
    • handling link removal
    • count-to-infinity problem
  • link state routing
    • running centrally
    • distributed protocol
Fri 17 Oct
packet scheduling (tentative writeup) due by 11:59pm
Week 9
Tue 21 Oct

BGP

 [ 
slides: routingdns
 ]
  • autonomous systems
    • graph structure
    • business relationships (customer/provider; content-delivery; peering)
  • BGP advertisements

  • domain names
    • hierarchy
    • zones
Thu 23 Oct

DNS

 [ 
slides: dns
 ]
Reading:

PD 9.3.1; FS 11

  • recursive v authoritative
  • record types, format
    • name compression
  • DNS questions and answers
Fri 24 Oct
DV routing (tentative writeup) due by 11:59pm
Week 10
Tue 28 Oct

Sockets

 [ 
slides: sockets
 ]
Reading:

PD 1.4,1

  • IDNs
  • reverse lookups
  • preview: cache poisoning, DNSSEC

  • BSD sockets
  • 5-tuples, netstat
  • listening sockets
  • conneced/unconnected sockets
  • socket / bind / connect
  • read/recv, write/send
  • server sockets — listen, accept
  • recvfrom, sendto, …
  • broadcast with sockets
  • aside: local sockets
Thu 30 Oct

HTTP 1

 [ 
slides: http
 ]
Reading:

PD 1.4, 9.1.2-3; MDN’s section on HTTP

  • HTTP/1.1
  • URL/URI parts
  • request headers, bodies
  • request methods (GET, HEAD, POST, …)
  • connection keep-alive, pipelining, multiple streams

  • HTTP caching
  • detecting if up-to-date
Fri 31 Oct
DNS (tentative writeup) due by 11:59pm
Week 11
Tue 04 Nov
(no class)
Thu 06 Nov

HTTP 2 / wireless link-layer

 [ 
slides: httpmultiaccess
 ]
Reading:

PD 2.6, 2.7.1-2; D 2.1.5, 4

  • HTTP (finish)
    • HTTP proxies, reverse proxies
    • REST
  • carrier sense multiple access
  • collision probabilities
Fri 07 Nov
Week 12
Tue 11 Nov

wireless 2

 [ 
slides: multiaccess
 ]
Reading:

PD 2.7.1-2; D 2.1.5, 4

  • collision detection
  • wireles signal propoation
  • hidden terminals
  • ready-to-send / clear-to-send
Thu 13 Nov

wireless 3

 [ 
slides: multiaccess
 ]
Reading:

PD 2.7.1-2; D 2.1.5, 4

  • collision detection revisited
  • multiple access points
  • scheduled wireless networks
Fri 14 Nov
webserver (tentative writeup) due by 11:59pm
Week 13
Tue 18 Nov

security: firewalls

 [ 
slides: multiaccessfire
 ]
Reading:

PD 2.8.2, PD 8.5.6

  • scheduled wireless networks
  • firewall placement
  • stateless firewalls
Thu 20 Nov

firewalls 2 / NAT

 [ 
slides: fire
 ]
Reading:

PD 8.5.4, D 9.7, PD 3.3.9, PD 4.4

  • request stuffing
  • stateful firewalls
  • NAT
  • NAT traversal
  • IDS
Fri 21 Nov
Week 14
Tue 25 Nov

encapsulation 1

 [ 
slides: encap
 ]
  • encapsulation motivations
  • “transparent” tunnels/proxy
  • encapsulation techniques
  • transport-layer proxies
    • SOCKS, Tor (start)
Thu 27 Nov
(no class)
Fri 28 Nov
(no class)
Week 15
Tue 02 Dec

encapuslation 2

 [ 
slides: encap
 ]
  • Tor (finish)
  • network-layer tunnels
    • TCP in TCP sidenote
  • VLANs
  • (if time) MPLS
wireless (tentative writeup) due by 11:59pm
Thu 04 Dec
Tue 09 Dec

exam review

Week 16
Tue 16 Dec

final exam

9AM-12PM