Major Topics

Additional Possible Topics

Schedule

This lists the important dates, topics and events for the class. Bold dates are dates when there are lectures. Italic dates are dates when there was no lecture, but important events happened nonetheless.

For dates with lecture, brief lecture notes and the corresponding sections in the Peterson-Dave book are listed. The reading not required, but might be helpful.


January 25th No class on account of snow
January 27th Project 0 assigned
Review syllabus
Layering in networking and OSI model
Intro to socket programming:
  • create/destroy with socket()/close()
  • start TCP client with connect()
  • start TCP server with bind(),listen(),accept()
  • send/receive TCP data with send()/recv()
  • send/receive UDP data with sendto()/recvfrom()
Section 1.3 [Network Architecture] (4th Ed and 5th Ed)
brief lecture notes

February 1st Review layering from last time
Real packet headers: Ethernet, IP, TCP/UDP
More socket programming:
  • using structs to read/write header information in a packet
  • using select()/poll() for asynchronous handling of multiple sockets
brief lecture notes
February 3rd Scaling wires (via repeaters, hubs, switches, bridges, etc.)
Section 3-3.2.1 [Packet Switching] (4th Ed)
brief lecture notes
February 4th Project 0 due

February 8th Project 1 assigned
Spanning Tree Protocol
Section 3.2.2 [Spanning Tree Algorithm] (4th Ed)
brief lecture notes
February 10th Introduction to routing
Distance Vector routing
Section 3.3 [Routing] (5th Ed), Section 4.2 [Routing] (4th Ed)
brief lecture notes

February 15th No class on account of snow
February 17th Link state routing
Section 3.3 [Routing] (5th Ed), Section 4.2 [Routing] (4th Ed)
brief lecture notes

February 22nd Project 1 due
Internet Protocol: header deep dive, fragmentation
Section 3.2 [Simple Internetworking/IP] and 4.1 [Global Internet/BGP] (5th Ed), Section 4.1 [Simple Internetworking/IP] and 4.3 [Global Internet/BGP] (4th Ed)
brief lecture notes
February 23rd Project 2 assigned
February 24th Internet Protocol: fragmentation cont'd, addressing, subneting
Section 3.2 [Simple Internetworking/IP] and 4.1 [Global Internet/BGP] (5th Ed), Section 4.1 [Simple Internetworking/IP] and 4.3 [Global Internet/BGP] (4th Ed)
brief lecture notes

February 29th Guest Lecture by Eric Jeney
DNS
P0/P1 Review
Section 9.3 [DNS] (5th Ed), Section 9.1.3 [DNS] (4th Ed)
brief lecture notes
March 2nd Internet Protocol: subnetting cont'd, ARP
Section 3.2 [Simple Internetworking/IP] and 4.1 [Global Internet/BGP] (5th Ed), Section 4.1 [Simple Internetworking/IP] and 4.3 [Global Internet/BGP] (4th Ed)
brief lecture notes

March 7th Midterm 1
March 9th Internet Protocol: CIDR, aggregation
Border Gateway Protocol (BGP)
Section 3.2 [Simple Internetworking/IP] and 4.1 [Global Internet/BGP] (5th Ed), Section 4.1 [Simple Internetworking/IP] and 4.3 [Global Internet/BGP] (4th Ed)
brief lecture notes
March 11th Project 2 due

March 14th Spring break
March 16th Spring break

March 21st Border Gateway Protocol (BGP) cont'd
Reliable transmission (sequence #s, stop-and-wait, sliding window)
Section 4.1 [Global Internet/BGP] and 2.5 [Reliable Transmission] (5th Ed), Section 4.3 [Global Internet/BGP] and 2.5 [Reliable Transmission] (4th Ed)
brief lecture notes
March 22nd Project 3 assigned
March 23rd Reliable transmission cont'd (more sliding window)
Section 2.5 [Reliable Transmission] (4th and 5th Ed)
brief lecture notes

March 28th Guest Lecture by Eric Jeney
Transmission Control Protocol (TCP)
  • abstraction
  • header
  • state digram
  • Nagle's algorithm
Section 5.2 and 6.3 [TCP Congestion Control] (4th and 5th Ed)
brief lecture notes
March 30th Transmission Control Protocol (TCP)
  • flow control
  • retransmission
  • congestion collapse
Section 5.2 and 6.3 [TCP Congestion Control] (4th and 5th Ed)
brief lecture notes

April 4th Transmission Control Protocol (TCP)
  • congestion control/avoidance
  • AIMD (Additive Increase, Multiplicative Decrease)
  • slow start
  • fast recovery
Section 5.2 and 6.3 [TCP Congestion Control] (4th and 5th Ed)
brief lecture notes
April 6th Transmission Control Protocol (TCP) wrap-up
Section 5.2 and 6.3 [TCP Congestion Control] (4th and 5th Ed)
brief lecture notes
April 8th Project 4 assigned
Project 3 due

April 11th Midterm 2
April 13th Ethernet MAC (CSMA/CD, Exponential Backoff, Jamming)
Checksums (CRC, 1s complement)
Section 2.4.2 [Internet Checksum Algorithm], 2.4.3 [Cyclic Redundancy Check (CRC)], 2.6.2 [Ethernet Access Protocol] (4th and 5th Ed)
brief lecture notes

April 18th Checksums (CRC, 1s complement)
Section 2.4.2 [Internet Checksum Algorithm], 2.4.3 [Cyclic Redundancy Check (CRC)] (4th and 5th Ed)
brief lecture notes
April 20th HyperText Transfer Protocol (HTTP)
REpresentative State Transfer (REST)
Software-Defined Networking (SDN)
Section 9.1.2 [World Wide Web (HTTP)], 9.1.3 [Just the subsection on "A Generic Application Protocol (REST)"] (5th Ed)
brief lecture notes
April 22nd Project 4 due

April 25th Guest Lecture by Ramakrishna Padmanabhan
Overlay Networks
Alibi Routing
Introduction to p2p networks
Section 9.4 [Overlay Networks] (5th Ed)
brief lecture notes
April 27th Guest Lecture by Ramakrishna Padmanabhan
Review of p2p networks (Napster, Gnutella)
Distributed Hash Tables (Chord)
BitTorrent
Section 9.4 [Overlay Networks] (5th Ed)
brief lecture notes
April 28th Project 5 assigned

May 2nd Guest Lecture by Ramakrishna Padmanabhan
Pingin' in the Rain (paper)
Internet ping timeouts (paper)
May 4th OpenFlow and SDN
Wireless MAC
Section 2.7 [Wireless] (5th Ed)
brief lecture notes

May 9th Wireless wrap up
Final Exam Review
Section 2.7 [Wireless] (5th Ed)
brief lecture notes
May 11th Project 5 due

May 16th Final Exam from 4-6p