CS 4251: Computer Networking II

Objectives and Overview

This course takes a holistic approach to topics in computer networking; we will cover many aspects of networking in greater depth. You will:


The required textbook for this course is Computer Networking: A Top-Down Approach, by Kurose and Ross. You will be expected to prepare with the assigned readings, which will be from the required textbook, plus additional supplemental readings from industry rags and research papers.

Although we will rely primarily on this textbook for basic readings, we will supplement this reading with various outside readings (articles, research papers, etc.). Some material covered comes from the following textbooks:

Some material will only be covered in lectures.

Academic Honesty

Students are expected to abide by the Georgia Tech Honor Code. Honest and ethical behavior is expected at all times. All incidents of suspected dishonesty will be reported to and handled by the office of student affairs. You are to do all assignments yourself, unless explicitly told otherwise. You may discuss the assignments with your classmates, but you may not copy any solution (or part of a solution) from a classmate.


This class is appropriate for undergraduate or graduate students with previous background in networking. CS 3251 is a prerequisite. Some familiarity with both network programming and scripting languages (e.g., Perl, Ruby) will be helpful.


Grading will be based on problem sets, programming assignments, quizzes, and a semester-long project with a presentation and writeup. Participation will count for "fudge factors".

  • 20% 3 Problem Sets
  • 30% 3 Hands-On Assignments
    (Labs and Programming Assignments)
  • 25% 2 Quizzes (Midterm + Final)
  • 25% 1 Project


Readings will not be handed out in class. Please print the readings and read them before class.
Please note that this schedule is tentative and subject to change throughout the course of the term.

Lecture Date Topics Notes/Resources Preparation
1 Mon 08/18 Course Overview and Introduction
Trees and Paths
Wed 08/20 No Class
2 Mon 08/25 Interconnection and Bridging: Spanning Trees, etc.
KR 5.1, 5.4-5.6
3 Wed 08/27 Intradomain Routing
Notes, Example
Fiber Maps
KR 4.5
Mon 09/01 Labor Day
4 Wed 09/03 Intradomain Routing (continued)
5 Mon 09/08 Interdomain Routing: Protocols and Economics
Hands-On 1 Out KR 4.6
6 Wed 09/10 Multihoming and Multipath Routing
KR 4.3
7 Mon 09/15 Router Internals: Switching, Scheduling,
Lookup, Progammability
Juniper Open API
8 Wed 09/17 Router Internals: Lookup
Lulea Algorithm
Hands-on 1 Due
The Protocol Stack
9 Mon 09/22 Physical Layer: Nyquist, Shannon, Coding,etc.
Stallings Ch 3, 5.1-5.3 KR 1.5
10 Wed 09/24 Link Layer: Framing, SONET, Ethernet, etc.
ISP Survival Guide
pp. 160--170
11 Mon 09/29 Layer 3: IPv4, IPv6, LISP, and Beyond
KR 4.4
12 Wed 10/01 Virtual Layers: VLANs, Overlays, etc.
KR 5.8
13 Mon 10/06 Transport: TCP, UDP
KR 3.3, 3.5 Saltzer
14 Wed 10/08 Naming: DNS
KR 2.5
Mon 10/13 Recess
15 Wed 10/15 Bumps in the Wire: DHCP, NAT, Firewalls, and Middleboxes
Hands-On 2 Out KR 4.4.2
Mon 10/20 Quiz
Resource Allocation and Sharing
16 Mon 10/27 Wired Medium Access Control (MAC)
KR 5.3
17 Wed 10/29 TCP: Fairness Models (Kelly, Jain, etc.)
KR 3.6-3.7
18 Mon 11/03 Power
19 Wed 11/05 Pricing
20 Mon 11/10 Queueing Models, Quality of Service, and Fair Queueing
KR 4.3, 7.5, 7.6
21 Wed 11/12 Rate Limiting and Traffic Shaping
22 Mon 11/17 Security: Worms, DoS, Spam, and Botnets
KR 1.6
23 Mon 11/24 Monitoring: Packet Sampling, Flow Sampling, Deep Packet Inspection
24 Wed 11/26 Applications: Voice, Video, Peer-to-Peer
25 Mon 12/01 Programmable Routers and Switches
Wed 12/03 Quiz 2

Home Reading Syllabus validate