Greetings! I'm looking forward to teaching you the basic principles of computer networks in 14-740, a graduate-level, first-course in networking. My primary objective is for you to learn the fundamental principles underlying computer networks. I'll use a top-down approach to cover topics in the application, transport, network and link layers of the protocol stack. We will also go over advanced topics, including network management, traffic engineering and router internals. Besides learning about the nuts and bolts, you will gain an understanding of engineering tradeoffs made and design principles used in networks and protocol design.
There is no prerequisite of an undergraduate equivalent networking course; but basic computer, programming and probability theory background is required.
All dates and times for scheduled events on any course materials refer to the Pittsburgh time of that event.
Here are some links to various course documents that will be helpful throughout the semester.
You can download the classtimes and due dates in this calendar file (iCalendar format, compatible with Apple Calendar, Google Cal, ...)
Date | Topic | Reading | Deadline |
---|---|---|---|
Mon, 30 Aug | Networking Introduction | KR Ch 1.1 - 1.8 | |
Wed, 1 Sep | Architecture | Design philosophy [Clark88] | Paper Review: Clark88 |
Mon, 6 Sep | Labor Day (no class) | ||
Wed, 8 Sep | Design Principles | E2E arguments [Saltzer84] | |
Mon, 13 Sep | ISPs, Backbones and Peering | A Business Case for Peering [Norton2010] | Paper Review: Norton2010 |
Guide to Admin Procedures (skim) [RFC 2901] | |||
Wed, 15 Sep | The Application Layer -- HTTP | KR Ch 2.1 - 2.2 | |
Mon, 20 Sep | Domain Name System | KR Ch 2.4 | Paper Review: Mockapetris88 |
KR Ch 2.6 | |||
Classic DNS [Mockapetris88] | |||
Wed, 22 Sep | Peer to Peer Networking | KR 2.5 | Paper Review: Liang2005 |
KaZaA Measurement [Liang2005] | Lab #0 | ||
Mon, 27 Sep | Queueing Theory | ||
Wed, 29 Sep | The Transport Layer; UDP | KR Ch 3.1 - 3.3 | |
Mon, 4 Oct | Quiz #1 | Study Guide [Quiz 1 Study Guide] | |
Study Guide (text version) [Quiz 1 Study Guide] | |||
Wed, 6 Oct | Principles of Reliable Transfer | KR 3.4 | |
Mon, 11 Oct | TCP | KR Ch 3.5 | Lab #1 |
Wed, 13 Oct | Congestion Control at the Host | KR Ch 3.6 - 3.7 | Paper Review: Jacobson88 |
Congestion avoidance / control [Jacobson88] | |||
Mon, 18 Oct | Advanced Congestion Control at the Host | ||
Wed, 20 Oct | The Network Layer | KR Ch 4.1 - 4.2 | HW #1 |
KR Ch 4.3.1 - 4.3.3 | |||
KR Ch 5.6 | |||
Mon, 25 Oct | Routing Algorithms | KR Ch 5.1 - 5.2 | |
Wed, 27 Oct | Internet Routing | KR Ch 5.3 - 5.4 | |
Mon, 1 Nov | Plug-N-Play Networking; IPv6 | KR Ch 4.3.4 - 4.3.5 | Lab #2 |
Wed, 3 Nov | Network Measurement | Better Netflow [Estan2004] | Paper Review: Estan2004 |
Internet Traffic Measurement (Ch1-2) [Estan2003] | |||
Mon, 8 Nov | Quiz #2 | Study Guide [Quiz 2 Study Guide] | |
Study Guide (text version) [Quiz 2 Study Guide] | |||
Wed, 10 Nov | Congestion Control: The Router's View | RED Gateways [Floyd93] | Paper Review: Floyd93 |
Mon, 15 Nov | Link Layer; Ethernet | KR Ch 6.1 | Lab #3a: Checkpoint |
KR Ch 6.2 - 6.3 (skim) | |||
KR Ch 6.4.1 - 6.4.2 | |||
Wed, 17 Nov | Link Layer Devices | KR Ch 6.4.3 | |
Mon, 22 Nov | Virtual Link Layer | KR Ch 6.4.4 - 6.5 | Lab #3b: Complete |
Wed, 24 Nov | Thanksgiving (no class) | ||
Mon, 29 Nov | Wireless Networks | KR 7.1 - 7.3 | |
Wed, 1 Dec | Software Defined Networking | OpenFlow [McKeown2008] | Paper Review: McKeown2008 |
KR 4.4 | |||
KR 5.5 | |||
Sun, 5 Dec | Lab 4 Due | Lab #4 | |
Thu, 9 Dec | Final Exam | KR 6.7 | |
Study Guide [Final Exam Study Guide] | |||
Study Guide (text version) [Final Exam Study Guide] |
The following list of papers and whatnot will be referenced throughout the course. You are expected to read all listed materials, save for those listed as just for fun. You will be tested on them. It behooves you to read the paper prior to the indicated lesson, as the lecture will usually discuss concepts from the paper. You will learn the material much better if you've had a chance to work on it a bit prior to lecture and get a review of the concept in class (as well as an opportunity to ask questions about it). The reverse ordering isn't optimal: If the first time you see the concept is in class, you won't be prepared to critically think about it. Completely sub-optimal (pesimal?) is to wait until the night before the final exam to look at the paper.
This lab is designed to teach you about packet sniffers and how they capture and analyze network traffic. You will also install Wireshark and start to learn how it works.
Having gotten your feet wet with the Wireshark packet sniffer in the introductory lab, you’re now ready to use Wireshark to investigate protocols in operation. In this lab, you will explore several aspects of the HTTP protocol. Before beginning this labs, you might want to review Section 2.2 of the text.
In this lab, you will continue to use Wireshark, but now you will explore the transport layer. You will examine various UDP and TCP transmissions.
In this lab, you will explore the network layer. In particular, you will look at routing messages generated by BGP and RIP as well as the resulting forwarding tables. Once again, you will use the hardware network testbed, which will create the traffic that you will observe. You will then proceed to investigate the network in the testbed, looking at routing messages to try to understand the topology -- what does the network graph like?
Here is the PCAP file for Lab3a.
Now that you know the topology of the network, based upon your observations of BGP and RIP traffic and forwarding tables, you will examine the results of NAT (Network Address Translation) and another malicious actor.
In this lab, you will explore the data link layer. In particular, you will be looking at Ethernet frames and the Address Resolution Protocol. For the last time, you will use the hardware network testbed.
Here is the PCAP file for Lab4.
This homework assignment is designed to give you some hands on expertise with some basic networking tools. You will learn about traceroute, ping, dig and whois, all of which should give you some good insight into the operation of the network from the application level.
These links let you download the MP4 files for each lecture. You will need to view them in a videoplaying app, such as VLC.
Professor Bill Nace
Email: wnace@cmu.edu
Office Hours: Tuesdays 3-5pm
Office: HH A208
Assistant Instructor Alex Corn
Email: apcorn@andrew.cmu.edu
Office Hours: Tuesdays 8-10pm
Office: INI Building, 2nd Floor
TA Suyan Xu
Email: suyanx@andrew.cmu.edu
Office Hours: Mondays 8-10pm
Office: Zoom Meeting ID: 948 473 1803 Passcode: 248891 Link: https://cmu.zoom.us/j/9484731803?pwd=NVlsVnhWcGk1VjVhTzdnSDdodzgvdz09
TA Lahiri Riddhiman
Email: rlahiri@andrew.cmu.edu
Office Hours: Thursday 3-5pm
Office: INI Building, 2nd Floor