Course ManagementThis includes syllabus, assignments, important dates, all submissions, etc.

 

Course Discussion mailing list:  Join at https://lists.cs.cornell.edu/mailman/listinfo/francis-class-l

NOTE:  You must get on the course management system.  This automatically happens when you join the course discussion mailing list.  Note that you must join the list using your net-id email address (gmail etc. not allowed).

 

Teaching Staff

Paul Francis

Office hours: anytime I'm in (most afternoons), but generally a good time is after class

4108 Upson Hall

francis@cs.cornell.edu

Tuan Cao

Office hours: Tuesday: 1pm-2pm, Wednesday: 2h30-3h30.  Location: Upson 328B.

Rm TBD

tuancao@cs.cornell.edu

Yao Yue

Office hours: Mon 12:15p-1:15p Upson 328B BAY A, Thu 5:00p-6:00p Upson 328B BAY C

Rm TBD

yaoyue@cs.cornell.edu

 

Important Dates:

Midterm:  Oct. 22 (during normal class hours)

Final:  Dec. 3 (during normal class hours)

 

Required Course Text: Larry Peterson, Bruce Davie
Computer Networks: A Systems Approach, 4th Ed.

The Morgan Kaufmann Series in Networking (Publisher is Elsevier)

ISBN: 978-0-12-370548-8

 

Course Description

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:

  • 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 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.

There will be two exams: a midterm and a final, both in-class, open-book, but no notes allowed. However, the only book you will be allowed to bring into class is the assigned text.  There will also be written homework assignments most weeks.

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, DNS, Reliability, Queuing, Tunneling
  • IP: Addressing (Realms, subnets, hierarchy, NAT), Routing (Link state/Distance Vector, RIP, OSPF), Packet handling (fragmentation, ICMP), IPv6, tunneling
  • Transport: Ports, TCP (sequencing, handshake, state machine, windowing, congestion, fairness, various flavors), UDP
  • Socket programming: socket model, options, performance
  • Security: Authentication, Encryption, Denial-of-Service, Firewalls, VPN (Virtual Private Networks)
  • Traffic: Queuing models, packet dropping models
  • Wireless protocols (802.11)
  • Media: Voice and Video over IP, Real Time Protocol (RTP), Session Initiation Protocol (SIP)
  • Fast routing table lookup