Welcome to 14-740

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.

Distance Learning

In addition to many students at the Pittsburgh campus, we also have students taking this course in Kobe, Japan. The course lectures will be broadcast, using videoconferencing technology, to the Kobe campus. For two weeks during the semester, the lectures will be hosted in Kobe and broadcast back to Pittsburgh.

All dates and times for scheduled events on any course materials refer to the Pittsburgh time of that event.

Admin / Course Documents

Here are some links to various course documents that will be helpful throughout the semester.

Syllabus Textbook Canvas Protocols Study Guide 1 Quiz 1 Key Study Guide 2 Quiz 2 Key

Schedule

You can download the classtimes and due dates in this calendar file (iCalendar format, compatible with Apple Calendar, Google Cal, ...)

Date Topic Reading Deadline
Tue, 29 Aug Networking Introduction Textbook [KR Ch 1.1 - 1.8]
Thu, 31 Aug Architecture Design philosophy [Clark88] Paper Review: Clark88
Tue, 5 Sep Design Principles E2E arguments [Saltzer84]
Thu, 7 Sep ISPs, Backbones and Peering A Business Case for Peering [Norton2010] Paper Review: Norton2010
Guide to Admin Procedures (skim) [RFC 2901]
Tue, 12 Sep The Application Layer -- HTTP (From Kobe) KR Ch 2.1 - 2.4
Thu, 14 Sep Domain Name System (From Kobe) KR Ch 2.5 Paper Review: Mockapetris88
KR Ch 7.2.4
Classic DNS [Mockapetris88]
Tue, 19 Sep Peer to Peer Networking KR 2.6 Paper Review: Liang2005
KaZaA Measurement [Liang2005] Lab #0
Thu, 21 Sep Queueing Theory
Tue, 26 Sep Quiz #1
Thu, 28 Sep The Transport Layer; UDP KR Ch 3.1 - 3.3
Tue, 3 Oct Principles of Reliable Transfer KR 3.4 HW #1
Thu, 5 Oct TCP KR Ch 3.5 Lab #1
Tue, 10 Oct Congestion Control at the Host KR Ch 3.6 - 3.7 Paper Review: Jacobson88
Congestion avoidance / control [Jacobson88]
Thu, 12 Oct No class (Instructor Travel)
Tue, 17 Oct Advanced Congestion Control at the Host
Thu, 19 Oct The Network Layer KR Ch 4.1 - 4.2
KR Page 331 - 345
KR Ch 4.4.3
Tue, 24 Oct Routing Algorithms KR Ch 4.5
Thu, 26 Oct Internet Routing KR Ch 4.6
Tue, 31 Oct Plug-N-Play Networking; IPv6 KR pg 345-352 Lab #2
KR Ch 4.4.4
Thu, 2 Nov Quiz #2
Tue, 7 Nov Network Measurement Better Netflow [Estan2004] Paper Review: Estan2004
Internet Traffic Measurement (Ch1-2) [Estan2003]
Thu, 9 Nov Congestion Control: The Router's View RED Gateways [Floyd93] Paper Review: Floyd93
Tue, 14 Nov Link Layer; Ethernet (From Kobe) KR Ch 5.1 - 5.4.2
Thu, 16 Nov Link Layer Devices (From Kobe) KR Ch 5.4.3
Tue, 21 Nov Thanksgiving (no class)
Thu, 23 Nov Thanksgiving (no class)
Tue, 28 Nov Virtual Link Layer KR Ch 5.4.4 - 5.5
Thu, 30 Nov Wireless Networks KR 6.1 - 6.3 HW #2
Tue, 5 Dec Software Defined Networking OpenFlow [mckeown2008] Paper Review: McKeown2008
Thu, 7 Dec Final Exam (in class) KR 5.7
Sun, 10 Dec Lab 3 Due Lab #3

Readings

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.

K&R Chapter 1

For those of you whom haven't yet purchased a textbook.

BGP Routing Policies in ISP Networks

The Design Philosophy of the DARPA Internet Protocols

Tussle in Cyberspace: Defining Tomorrow's Internet

Internet Traffic Measurement: What's Going on in My Network?

Building a Better Netflow

Random Early Detection Gateways for Congestion Avoidance

Congestion avoidance and control

Delayed Internet Routing Convergence

The KaZaA Overlay: A Measurement Study

Development of the Domain Name System

The Evolution of the U.S. Internet Peering Ecosystem

A Business Case for Peering in 2010

End-to-end Arguments in System Design

What DNS is Not (a just-for-fun reading)

NAT++: Address Sharing in IPv4 (another just-for-fun reading)

Gateway Congestion Control Survey (a just-for-fun reading)

TCP Vegas: New Techniques for Congestion Detection and Avoidance

Issues in TCP Vegas

TCP Hybla: a TCP Enhancement for Heterogeneous Networks

A Compound TCP Approach for High-speed and Long Distance Networks

TCP Congestion Control With a Misbehaving Receiver (just-for-fun)

OpenFlow: Enabling Innovation in Campus Networks

Assignments

Lab0

Introduction to Wireshark

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.

Lab1

Applications

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.

Lab2

Transport and Network Layers

In this lab, you will continue to use Wireshark, but now you will explore the transport and network layers. You will examine various UDP and TCP transmissions. You will then examine the IP packet structure as well as ICMP messages.

Lab3

Link Layer

In this lab, you will investigate Ethernet and the ARP protocol. Knowledge from Lecture 20 and textbook sections 5.4 and 5.5 will be key. RFC 826 contains all the interesting details of the ARP protocol. You will also need the Lab3_support.cap file.

HW1

Basic Tools

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.

HW2

Argus Flow Tools

This homework assignment is designed to give you some hands on expertise with the argus tools as you study what information is available from flow traces. In Fall 2011, my TAs gave a good demonstration of Argus tools. Unfortunately, that video has been lost when a new media server was spun up. However, you might find the slides useful, available here.

Course Videos

These links go to a video player where you can watch the classroom discussion.

Fall 2017 Staff

Professor Bill Nace

Email: wnace@cmu.edu

Office Hours: Thursdays 3-5pm

Office: HH D208

TZ Wenna Dai

Email: wennad@andrew.cmu.edu

Office Hours: Tuesdays 1-3pm

Office: Google Hangout (dwnapply@gmail.com)

TA Jaideep Joshi

Email: jaideepj@andrew.cmu.edu

Office Hours: Wednesdays 6:30-8:30pm

Office: INI, 2nd Floor

TA Goldy Lim

Email: gglim@andrew.cmu.edu

Office Hours: TBD

Office: TBD

TA Surbhi Shah

Email: surbhis1@andrew.cmu.edu

Office Hours: Mondays and Wednesdays 11am-noon

Office: INI Project Room 205