CS 419: Computer Networks
B17 Upson Hall; MW 2:55–4:10
Professor Paul Francis
Assignment and regrades using CMS: http://cms2.csuglab.cornell.edu/
Course discussion and announcements on TBD
| Professor Paul Francis
| 5-9223, Upson 4108
Office hours: M 4:15-5:15, R 2:00 - 3:00
| TA: Manpreet Singh
| Upson 338
Office hours: F 2:00-4:00
| TA: Peter Sirokman
|| Upson 4143
Office hours: TR 14:30-15:30
Undergrad TAs: TBD
Course Text: Larry Peterson, Bruce Davie
Lab: CSUG Lab and a Linux server cluster
for simulations (donated by Intel®). The linux server are also
csug machines...you can logon with your CSUG account. Their names
are rerun, snoopy, peppermint, luch, linus, schroeder, sally (i.e.
April 14th, 2005: Homework Number 7 has been posted. It is due on Monday, April 25th.
February 16th, 2005: 490/790 TCP and RIP projects now posted.
February 11th, 2005: Tutorials in C have been scheduled for today, Friday, 16:30-18:30 in the computer lab in Upson B7, and for Monday 2/14, at the same time and place.
February 11th, 2005: Homework 2 has been posted. It is due before class on Monday 2/14, via CMS.
February 2nd, 2005: Please subscribe to the course email list using the following link: CS419 list
This course is appropriate for advanced students who have none or limited networking knowledge. Note that there is project work in C or C++, so you should either know it or be prepared to learn it.
My goals for you in this course are:
In addition to lectures, textbook reading, homework assignments, and exams, this course will have several hands-on project assignments. These will consist of network measurements (using Ethereal, ping, and traceroute), network simulations (using the Opnet simulation package in the CSUG Lab), and network device and application programming in C or C++ (on a Linux server cluster donated by Intel). I'm not assigning a single large project, but rather a number of small projects throughout the semester. You will be expected to complete these "class-defined" projects individually—not in teams— though consultation with fellow students is allowed. I will also assign additional projects (see below) that you may use for CS490 or CS790 credit.
As an alternative to the "class-defined" projects above, students may do a "self-defined" project of their choosing, as long as it is approved by the instructor. This project may be done in teams of up to three, and may be taken for combined CS490 or CS790 and CS419 credit. This project does not have to be decided upon at the start of class. You may decide to start a self-defined project even after completing some of the class-defined projects, as long as the self-defined project requires about the same amount of effort as the remaining class-defined projects.
There will be two exams: a midterm and a final, both in-class, open-book, open-notes. However, the only book you will be allowed to bring into class is the assigned text. Notes will be limited to a single binder. (Last year's final and midterm are here, but I'm not promising that this year's tests will be similar in structure, length, or difficulty!!!) There will also be written homework assignments most weeks. The answers to these will be discussed in the class after the due date.
The course lectures will fairly closely follow the contents of the textbook. It will be quite similar to last year's CS519. Though this list is subject to minor revision, I plan to cover the following topics:
Midterm Exam: 3/16
Final Exam: 5/4
RIP and TCP projects due: 5/6
Note: Subject to change!
|Date||Lecture||Required Reading||Additional Reading|
|1/24||Intro to the Course: Logistics of the course itself||
"Is IP going to take over the world?," ACM HotNets 2002
|Introduction to Computer Networking (part 1): Networks, Circuit versus Packet, Latency, Dropping, and Jitter, Packets and protocols, protocols stacks||Sections 1.1–1.3|
|1/26||Introduction to Computer Networking (part 2):||Sections 1.5–1.6||
|1/31||Sockets Programming : Everything you need to know to do the first programming project!||Section 1.4||
|2/2||Internet Protocol (IP): End-to-end argument, IP design goals, IP header, ICMP||Sections 4.1.1–4.1.3||Original E2E Argument|
Due midnight Sunday 2/6
|2/7, 2/9||Internet Protocol (IP) Part 2 : Subnet address resolution, structure of the Internet, structure of IP addresses||The rest of section 4.1, 4.3.1, and 4.3.2||
Due before class on Monday 2/14
|2/14||IP forwarding: Structure of the IP forwarding table (hierarchical best match first)||Sections 2.1–2.4||
|IP routing (part 1) : IP routing architecture||4.3.3, 4.3.4||
|2/21||IP routing (part 2) : Graphs and trees, distance vector and path vector routing||4.2.1, 4.2.2||
|2/23||IP routing (part 3): Link state routing||
|2/28||IP routing (part 4): OSPF||
|3/2||IP routing (part 5): BGP||
||BGP overview (optional)|
address lookup: Fast algorithms for longest-match
Bitmaps, pages 1-10
||Naming: Names, addresses and routes. DNS||Section 9.1|
|3/21, 3/23||Spring Break!|
||Firewalls and NATs: First of the security lectures. Covers Firewalls and NAT boxes (though the latter isn't really security, it just runs in the same box).||Sections 8.2, 8.4|
||VPNs: All about VPNs. Along the way, we'll discuss IPsec, MPLS, and VLANs||Sections 8.3, 8.5, 4.5, 4.6|
|4/6 4/11 4/13
|Transport (part 1): Port numbers and muxing, stop-and-wait and sliding window flow control algorithms||Sections 2.5, 5.1, and 5.2||
|Transport (part 2): TCP mechanics: sockets use, connection state machine, flow control||
|Transport (part 3): TCP performance: header compression, silly windows, RTT estimation, fast retransmit||
| Transport (part
4): TCP congestion control: slow
start, AIMD (Additive Increase Multiplicative Decrease), fast recovery,
TCP Animation (requires powerpoint)
|QoS (part 5): QoS and Queuing. Fair Queuing, Intserv, Diffserv, Equation-based congestion control.||Sections 6.5–6.6||
|4/27||Introduction to Media over Internet: E2E aspects of running media over the Internet. Real Time Protocol (RTP), Session Initiation Protocol||Section 9.3||
Cornell Network, Guest Lecture, Dan Eckstrom, CIT
Prof. Francis has nearly 20 years experience in Internet research, mainly in industry labs (MITRE, Bellcore, NTT Labs, ACIRI). He has recently spent several years in startups (Fast Forward Networks and Tahoe Network). He has a dozen national and international patents, and has served on several standardization committees (IETF and OSI). As such, Prof. Francis brings a good blend of research and practical experience into the course. Dr. Francis is the inventor of a number of key Internet technologies and ideas, many of which that have been deployed, including: Network Address Translation (NAT), which is the primary technology responsible for extending the IP address space beyond its 32-bit limitation and allowing continued growth of the Internet. Internet Distance Maps (IDMaps), which was the first infrastructure system allowing end-hosts to discover their network proximity to each other. End-system overlay multicast, in the form of an operational system called Yoid. The multiple-addresses approach to multi-homing, which is the basis for scalable routing in IPv6. Shared-tree multicast, which was the basis for the IETF PIM-SM IP multicast standard. Shortcut routing, which was the basis for the IETF routing over large non-broadcast subnetworks (i.e. ATM) standards. Landmark routing, a novel approach to self-configuring routing hierarchies. Variations of this approach are proposed for ad hoc mobile networks today.
Last modified 1/27/2005