CS 519: Computer Networks B17 Upson Hall; MW Spring, 2004 Professor Paul Francis Assignment
and regrades using CMS: http://cms2.csuglab.cornell.edu/ Course
discussion and announcements on Netnews at cornell.class.cs519 (see http://adm/Newuser/newsgroups.htm, or https://www.cs.cornell.edu/techsupport) |
|
Professor Paul Francis |
5-9223, Upson 4108 |
TA: Manpreet Singh |
426 Rhodes Hall |
TA:
Hitesh Ballani hitesh@cs.cornell.edu |
5132 Upson Hall |
TA:
Mehmet Fidanboylu
mehmet@cs.cornell.edu |
492 Rhodes Hall |
Undergrad TAs: Rohan Murty (rnm5@cornell.edu)
and Joe Hoegler (jdh46@cornell.edu) |
|
Course Text:
Larry Peterson, Bruce Davie |
|
Course Lab:
CSUG Lab and a Linux server cluster for simulations (donated by
Intel®) |
Course
Description
My goals for you in this course
are:
·
To have a deep
understanding for the basic architectural principles of computer networking
·
To understand
good network and networked application design:
simplicity, scalability, performance, and the end-to-end principle
·
To understand
specifically how the Internet works today, and where it is going in the near
future
In addition to lectures, textbook
reading, homework assignments, and exams, this course will have several
hands-on project assignments. These
will consist of networks measurements (using Ethereal,
ping, and traceroute), network simulations (using the NS2 simulator on a Linux server cluster
donated by Intel®), and network application programming. The network simulations will require TCL
scripting and some C++. I’m not
assigning a single large project, but rather a number of small projects
assigned throughout the semester. You
will be expected to complete these “class-defined” projects individually (not
in teams), though consultation with fellow students is allowed.
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 MEng (CS790) and CS519 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. 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.
Though this list is subject to minor revision, I plan to cover the
following topics:
·
Architecture: Packetization, Protocol layers and services,
End-to-end principle, Internet structure, Naming, Addressing, and Routing,
Reliability, Queuing, Tunneling
·
IP: Addressing (Realms, subnets, hierarchy,
NAT), Routing (Link state/Distance Vector, RIP, OSPF, BGP), Packet handling
(fragmentation, ICMP), IPv6, tunneling, multicast, anycast, mobile IP
·
Network
Services: DNS, NTP (Network Time
Protocol), Authentication (RADIUS, and PPP), Address assignment (DHCP and PPP),
Address resolution (ARP)
·
Transport: Ports, TCP (sequencing, handshake, state
machine, windowing, congestion, fairness, various flavors), UDP, SCTP
·
Socket
programming: socket model, options,
performance
·
Network
management and provisioning: SNMP,
Netflow, tools
·
Applications
and overlays: Email, HTTP, Netnews,
Internet Relay Chat (IRC),
·
Overlays: Gnutella/Kazaa, overlay multicast, RONs
(Reliable Overlay Network), I3, DHTs (Pastry/Chord/Kademlia)
·
Security: Authentication, Encryption,
Denial-of-Service, Firewalls, VPN (Virtual Private Networks)
·
Traffic: Queuing models, packet dropping models,
workloads
·
Switch
architecture: routers and switches
·
Link and
Access technologies: Wireless LANs
(access, security), LANs, DSL, subscriber aggregation
Important
Dates:
·
Midterm
Exam: Wednesday March 17, during normal class
hours
·
Project 3
due date: April 16
Changed to April 23, midnight
·
Project 4 due date: May 7 Canceled!
·
Project
speed test due date: May 7
·
Both extra
credit projects (RIP and TCP) due date: May 7
·
Final Exam:
CS 519 |
5/18/04 |
3:00-5:30pm |
Olin 255 |
MEng
Extra Projects:
UPDATED 4/22:
I am offering two extra projects
that can be done for MEng credits. The TCP project (updated version!) can be done for 4
CS790 credits, and the RIP routing project (updated
version!) can be done for 3 CS790 credits (both single person). Both of these descriptions are
preliminary. But both provide enough so
that you can get started. In a few
weeks I will provide details as to the testing and so on.
Lectures,
reading, homework assignments, and project descriptions
Date |
Lecture |
Required Reading |
Additional Reading |
1/26 |
Intro to the Course (1spp): Logistics of the course itself |
|
|
1/26 |
Introduction to Computer
Networking (part 1) (1spp):
Networks, Circuit versus Packet, Latency, Dropping, and Jitter,
Packets and protocols, protocols stacks |
Sections 1.1 – 1.3 |
|
1/28 |
Introduction to Computer
Networking (part 2) (1spp): Note that
the lecture posted 1/25 has now been split, and some material added to each
part. |
Sections 1.5 – 1.6 |
|
2/2 |
Internet
Protocol (IP): (1spp): End-to-end
argument, IP design goals, IP header, ICMP |
Sections 4.1.1-4.1.3 |
|
2/4, 2/11 |
Internet Protocol (IP) Part 2 (1 slide per page): Subnet
address resolution, structure of the Internet, structure of IP addresses |
The rest of section 4.1, 4.3.1,
and 4.3.2 |
|
Homework
assignment 1: Due midnight 2/8/04. You will need to submit your answers via
CMS. I’m only assigning this via the
webpage for the convenience of those of you who still don’t have CMS
access. Normally homework will not be
posted on the website. (Answer to homework 1) (1spp) |
|||
2/9 |
Sockets Programming (1 slide per page): Everything
you need to know to do the first programming project! |
Section 1.4 |
|
2/16 |
IP forwarding (part 1, revised, part 2) (1spp, 1spp): Structure
of the IP forwarding table (hierarchical best match first) |
Sections 2.1 – 2.4 |
|
2/16 |
4.3.3, 4.3.4 |
|
|
Project
2 Description: UPDATED! Project 2 will be due midnight Friday
March 12. RFC
768 (UDP) and RFC 791 (IP) are the definitive
specs. You can use other texts as
well (Stevens, for instance). The
test code is here (fast) and here
(slow). The command for executing the
test code is: ./test2r_slow ip_address port (likewise for test2r_fast). |
|||
2/18 |
IP routing (part 2) (1spp): Graphs
and trees, distance vector and path vector routing |
4.2.1, 4.2.2 |
|
2/23 |
|
|
|
2/25 |
|
|
|
3/1 |
|
||
3/3 |
Transport (part 1) (1spp): Port
numbers and muxing, stop-and-wait and sliding window flow control algorithms |
Sections 2.5, 5.1, and 5.2 |
|
3/8 |
Transport (part 2) (1spp): TCP
mechanics: sockets use, connection
state machine, flow control |
|
|
3/10 |
Transport (part 3) (1spp): TCP
performance: header compression,
silly windows, RTT estimation, fast retransmit |
|
|
3/29 |
Transport (part 4) (1spp): TCP
congestion control: slow start, AIMD
(Additive Increase Multiplicative Decrease), fast recovery, RED, ECN |
Sections 6.1 – 6.4 |
|
Project
3 Description (4/9): This project description is no longer
“preliminary”. I have added a figure
showing what the test is trying to emulate.
(Just to be clear, the test box will not send mal-formed packets, nor
fragmented packets.) This is a zip of the test box
binaries for all versions: online-binaries.zip
(4/13) The logging function on version5 is now enabled (4/15) n All
five versions of test box are running on the same machine
snoopy.csuglab.cornell.edu (address 132.236.227.87). n Version5
is expected to be the final version.
Your grade for this project will depend on the highest version number
you pass. |
|||
3/31, 4/3, 4/5 |
QoS (part 5) (1spp): QoS and
Queuing. Fair Queuing, Intserv,
Diffserv, Equation-based congestion control. |
Sections 6.5 – 6.6 |
|
4/7, 4/12 |
Section 9.1 |
|
|
UPDATE (4/24/04):
Speed test available now. Description
is updated:: spasgn1.pdf Binary is also updated: http://www.cs.cornell.edu/~mehmet/speedtest |
|||
4/14 |
Firewalls and NATs (1spp): 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 |
|
4/26, 4/28 |
VPNs (1spp): All about
VPNs. Along the way, we’ll discuss
IPsec, MPLS, and VLANs |
Sections 8.3, 8.5, 4.5, 4.6 |
|
5/2 |
Guest lecture from Dan Eckstrom, CIT |
|
|
5/4 |
Introduction to Media over Internet (1spp): E2E aspects of running media over the
Internet. Real Time Protocol (RTP),
Session Initiation Protocol |
Section 9.3 |
|
About
the Instructor
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 5/4/2004