CS 60

Hands-on Networking

Sergey Bratus, Spring 2024


Preliminary 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 1 notes

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

Guest lectutes: Rob Graham, “OSI deprogramming: there is no stack” and Travis Goodspeed, “A multitude of PHYs”

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 5 notes

Lecture 6 notes

Lecture 7 notes

Lecture 8 notes ICMPv4 raw packet send demo

Lab 2

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

Project notes

Lecture 13 notes

Lecture 14 notes Partial TCP receive demo

Lecture 15 notes

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.