Sergey Bratus, Spring 2024
Syllabus
TAs & Office Hours
Ravindra (Ravi) Mangar
Preferred Contact: Email ravi.gr (at) dartmouth.edu
Tuesdays: 10am-11am Location: virtual, on Zoom (email for the link)
Wednesdays: 10am-11am Location: virtual, on Zoom (email for the link)
Zeph Lucas
Preferred Contact: Email Zephyr.S.Lucas.GR (at) dartmouth.edu
Saturdays: noon-2pm Location: Cummings 200 (lecture room).
Class materials
When posted, new materials will be announced on the course mailing list. Please make sure you are on it! Also please make sure emails from me don’t fall into your spam folder. If so, please let me know, so that I can take it up with the college IT.
Lecture 2 notes Packet captures from class
Guest lecture notes: Doug Madory on global Internet routing Guest lecture video
Lecture 3 notes Packet captures over NAT
There was no class on Monday April 8, on account of the solar eclipse. We will use the X-hour on Monday April 15 to catch up.
Lecture 4 notes Demo client/server C code
Lab 1 is posted, will be due Monday 4/22.
You may find the following notes useful for Lab 1:
TCP/IP header diagrams, including IP, TCP, UDP, and ICMP header diagrams.
Running Linux virtual machines on MacOS. This may work on Windows, but your mileage will vary.
Getting up to speed with Wireshark.
SSH shells with least amount of typing.
Code samples from Lecture 5: Skeleton fork-less TCP server (buggy, not great) Classic TCP server (not great, not terrible)
TCP logs from Lecture 5, explained Accompanying pcaps
Lecture 8 notes ICMPv4 raw packet send demo
Lecture 9 notes Pcap demos, Scapy and pure C
Lecture 10 notes ARP poisoning notes Pcap sample 1 Pcap sample 2
Annotated strace notes from Lecture 10 Strace example log
Lecture 11 notes Dnscache raw and processed captures
Lab 3 updated Lab 3 resources Raw TCP partial demo
Lecture 14 notes Partial TCP receive demo
Materials from past years can be found in https://www.cs.dartmouth.edu/~sergey/cs60/. Much has changed since then, both with Dartmouth’s own networks and the Internet, including new protocols and new hurdles in the way of connectivity and instrumentation. Still, the fundamental protocols remain largely the same.