Networks and Distributed Systems (CMSC 23300 & CMSC 33300): Spring 2006

Course Abstract

This course studies computer networks and the services built on top of them. Topics include, but are not limited to, network protocols (Ethernet, IP, TCP, UDP, FTP, HTTP), protocol implementation, programming with sockets, data encoding, security, packet-switching and multi-access networks, routing and flow control, congestion control and quality-of-service, elements of distributed computing (naming, security) and the design of network services (multimedia, file and web servers). This is a project-oriented course in which students are required to develop software in the Unix programming environment in C/C++. (For some projects, Java might also be an alternative.) Prerequisites: Basic knowledge of C/C++ and/or Java, as well as operating system concepts such as processes and threads. This is a not an introductory programming course.

Text Books

Computer Networks: A Systems Approach, 3rd Edition, and the companion Network Simulation Experiments Manual

Professor

Ian Foster, foster@cs.uchicago.edu, Office Hours: Tuesday, 3-4 pm and on request, Lectures: Tuesdays & Thursdays, 1:30PM - 2:50PM, Ryerson 251

Teaching Assistants

Ioan Raicu, iraicu@cs.uchicago.edu, Office Hours: Tuesday 12:30PM - 1:25PM & Thursday 3PM - 4PM, Hinds 028

Xuehai Zhang, hai@cs.uchicago.edu, Office Hours: Monday 12:30-2:30PM, Ryerson 177

Ido Rosen, ido@cs.uchicago.edu, Office Hours: Wednesday 12:30PM - 2:30PM, Ryerson 254 (or by appointment)

George Kuan, gkuan [at] cs [dot] uchicago [dot] edu, Office Hours: Fridays, 2PM - 4PM, Hinds 030

Mailing List

We have set up a mailing list for efficient information dissemination and for student questions about the homeworks, labs, and the course in general. To sign up for the course mailing list (the same mailing list for both CMSC23300 and CMSC33300 students), please visit http://mailman.cs.uchicago.edu/mailman/listinfo/cmsc33300 and in the section "Subscribing to CMSC33300", please type in your email address and a password. To post a message to all list members, send email to cmsc33300@mailman.cs.uchicago.edu.

Course Components and Grading

In addition to the 20 lectures, which will cover material from the textbook, the course will include the following components:
  • Ten brief quizzes (2 points each), given each Thursday, on material covered in class. These quizzes are designed to make sure you follow the lectures and the associated reading (20 points).
  • Nine labs (3 points each, except for Lab #0 for 1 point), using the Opnet network simulator, designed to provide insights into network protocols (25 point).
  • Four projects, designed to teach network principles and programming with sockets (39 points)
  • Four homeworks (4 points each), designed to introduce graduate students to research papers in the field of Networking (16 points)

The four homeworks are only required to be completed by graduate students (i.e., those taking CMSC 33300); the homeworks will involve reading and answering questions on technical research articles. [And yes, I realize that without homework points, undergrads points will only total 84 points; marks will be scaled appropriately for undergrads.]

To view your grades and assignment score statistics, please see the Course Grades Page.

Schedule

Date Topics (Recording) Reading Slides Quizes Labs Projects Homework
Required Optional Out Due Out Due Out Due
Tu: 03/28/06 Course Overview (MP3) Ch. 1   PDF, PPT   Lab #0   Proj #1   HW #1  
Th: 03/30/06 Packet Switching 3.1, 3.4 Clark, Leiner PDF, PPT Quiz #1     Proj #2      
Thur: 03/30/06, 11:59PM                 Proj #1    
Tu: 04/04/06 Addressing & Forwarding 4.1.1-4.1.4   PDF, PPT   Lab #1 Lab #0        
Th: 04/06/06 Sockets Ch. 1 Beej PDF, PPT Quiz #2            
Tu: 04/11/06 Transport 2.5, 5.1-5.2 Socolofsky PDF, PPT   Lab #3 Lab #1     HW #2 HW #1
Wed: 04/12/06, 11:59PM                 Proj #2    
Th: 04/13/06 Congestion Control 6.1-6.4 Jacobson PDF, PPT Quiz #3     Proj #3      
Tu: 04/18/06 Domain Name Service 9.1   PDF, PPT   Lab #4 Lab #3        
Th: 04/20/06 Control Protocols 4.1 Comer PDF, PPT Quiz #4            
Tu: 04/25/06 Middleboxes 8.4 Walfish PDF, PPT   Lab #8 Lab #4       HW #2
Th: 04/27/06 Links Ch. 2   PDF, PPT Quiz #5            
Tu: 05/02/06 Switches and Bridges 3.2   PDF, PPT   Lab 6 Lab #8        
Wed: 05/03/06, 11:59PM                 Proj #3    
Th: 05/04/06 Internet Topology 4.3   PDF, PPT Quiz #6     Proj #4      
Tu: 05/09/06 Routing 7.2, 9.3   PDF, PPT   Lab 7 Lab #6        
Th: 05/11/06 Web + Email 9.2.1, 9.2.2   PDF, PPT Quiz #7            
Tu: 05/16/06 No Class         Lab 9 Lab #7        
Th: 05/18/06 Overlays and P2P 9.4   PDF, PPT Quiz #8         HW #3  
Tu: 05/23/06 Multimedia 9.3, 3.1.2, 4.5, 6.5   PDF, PPT   Lab #12 Lab #9        
Th: 05/25/06 Security TBD   PDF, PPT Quiz #9            
Tu: 05/30/06 Web Services     PDF, PPT     Lab #12        
Wed: 05/31/06, 11:59PM                 Proj #4    
Th: 06/01/06 Review     PDF Quiz #10           HW #3

Quizzes:

Quizzes will be given each Thursday, on material covered in class the previous lectures. These brief (10 minute) quizzes are designed to make sure you follow the lectures and the associated reading.

Labs:

The Labs are from Computer Networks, A Systems Approach, Network Simulation Experiments Manual and need to be done individually in a Windows NT/2000/XP environment. Please see the OPNET Usage Page for details on how to access a Windows environment on campus to complete these labs or what software you need to download and install on a personal machine.
  • Laboratory 0: Introduction - Basics of OPNET IT Guru Academic Edition (1 point): Solution OPNET files
  • Laboratory 1: Ethernet - A Direct Link Network with Media Access Control (3 points): Solution
  • Laboratory 3: Switched LANs - A Set of Local Area Networks Interconnected by Switches (3 points): Solution
  • Laboratory 4: Network Design - Planning a Network with Different Users, Hosts, and Services (3 points)
  • Laboratory 8: TCP: Transmission Control Protocol - A Reliable, Connection-Oriented, Byte-Stream Service (3 points)
  • Laboratory 6: RIP: Routing Information Protocol - A Routing Protocol Based on the Distance-Vector Algorithm (3 points)
  • Laboratory 7: OSPF: Open Shortest Path First - A Routing Protocol Based on the Link-State Algorithm (3 points)
  • Laboratory 9: Queuing Disciplines - Order of Packet Transmission and Dropping (3 points)
  • Laboratory 12: Applications - Network Application Performance Analysis (3 points)

Projects

Projects are programming-oriented projects that are to be done individually in Linux on a department machine. For details on how to access a Linux environment needed to complete these projects, visit the Linux CS Page. Projects 2, 3, and 4 are all designed to be done in C/C++, but other languages could be used. For details on the guidelines you must follow when using other programming languages, please see the Programming Guidelines.
  • Project 1 (Solution): Measuring Network Performance with iperf, ping, and traceroute (0.5 week) (3 points)
  • Project 2 (Solution): Writing a Packet Analyzer (2 weeks) (8 points)
  • Project 3: Implement a reliable communication protocol over UDP (3 weeks) (12 points)
  • Project 4: Building a HTTP Server (4 weeks) (16 points)

Homeworks

The homeworks are only required to be completed by graduate students (i.e., those taking CMSC 33300); they will involve reading and answering questions on technical research articles.

There will not be a fourth homework.

Late Policy

In this class, as in life, it is important that assignments be completed on time and in a neat and professional manner.

Lab reports and homeworks are due at the beginning of class. I will allow three late lab reports, with a late due date of the beginning of the next class. I don't allow late homeworks.

Projects (programming assignments) are due at 11:59pm on Wednesday evenings. This is a firm deadline.

Academic Honesty Policy

We expect students to have read and to follow the University's policy on academic honesty. A student who fails to follow this policy will receive an F in the course. (Students may appeal this decision to the Dean of Students at the Division of Physical Sciences and request a disciplinary committee hearing.) We encourage working together to solve homework problems, but each student must write-up the homework alone. Write-ups must include the names of any collaborators and any sources used to help solve a problem (including websites).

These policies also apply to the programming assignments. Programming in an individual creative process much like composition. You must reach your own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write code that solves the problem, such discussions are no longer appropriate - the program must be your own work.

If you have a question about how to use some feature of C, UNIX, etc., you can certainly ask your friends or the TA. However, you must not, under any circumstances, copy another person's program. Using someone else's code or letting someone copy your program in any form is a violation of academic regulations. �Using someone else�s code� includes using solutions or partial solutions to assignments provided by commercial web sites, instructors, preceptors, teaching assistants, friends, or students from any previous offering of this course or any other course.

Credits

In addition to Peterson and Davie's wonderful textbook and Aboelela's splendid lab experiments manual, I have benefited greatly from the following resources in preparing CMSC 23300/33300:

  • The very nice slides developed by Jennifer Rexford at Princeton for use with the Peterson/Davies text
  • Programming exercises developed at Purdue University, in part by Ioan Raicu
  • Anne Rogers for advice on course structure
toggleopenShow attachments (59)togglecloseHide attachments (59)
Topic attachments
I Attachment Action Size Date Who Comment
pptppt 01Overview.ppt manage 1642.5 K 28 Mar 2006 - 18:42 IanFoster  
pdfpdf 01Overview.pdf manage 453.3 K 28 Mar 2006 - 18:44 IanFoster  
pdfpdf 02Packets.pdf manage 364.2 K 28 Mar 2006 - 18:47 IanFoster  
pptppt 02Packets.ppt manage 934.5 K 28 Mar 2006 - 18:48 IanFoster  
pdfpdf quiz1.pdf manage 7.9 K 31 Mar 2006 - 12:35 IoanRaicu Quiz #1
pdfpdf proj1-sol.pdf manage 58.5 K 02 Apr 2006 - 13:49 IoanRaicu Project #1 Solutions
pdfpdf quiz1-solution.pdf manage 10.2 K 02 Apr 2006 - 13:49 IoanRaicu Quiz #1 Solutions
pptppt 03AddressForward.ppt manage 1043.5 K 04 Apr 2006 - 05:55 IanFoster  
pdfpdf 03AddressForward.pdf manage 298.9 K 04 Apr 2006 - 06:11 IanFoster  
pptppt 04Sockets.ppt manage 971.5 K 06 Apr 2006 - 09:59 IoanRaicu Lecture #4 Notes (PPT)
pdfpdf 04Sockets.pdf manage 365.6 K 06 Apr 2006 - 10:00 IoanRaicu Lecture #4 Notes (PDF)
pptppt 05Transport.ppt manage 1404.0 K 10 Apr 2006 - 15:20 IoanRaicu Lecture #5 Notes (PPT)
pdfpdf 05Transport.pdf manage 402.8 K 10 Apr 2006 - 15:20 IoanRaicu Lecture #5 Notes (PDF)
pdfpdf quiz2.pdf manage 8.6 K 11 Apr 2006 - 13:19 IoanRaicu Quiz #2
pdfpdf quiz2-solution.pdf manage 10.7 K 11 Apr 2006 - 16:46 IoanRaicu Quiz #2 Solutions
pptppt 06Congestion.ppt manage 763.5 K 13 Apr 2006 - 12:20 IoanRaicu Lecture #6 Notes (PPT)
pdfpdf 06Congestion.pdf manage 261.8 K 13 Apr 2006 - 12:21 IoanRaicu Lecture #6 Notes (PDF)
pptppt 07DNS.ppt manage 1339.5 K 18 Apr 2006 - 07:29 IoanRaicu Lecture #7 Notes (PPT)
pdfpdf 07DNS.pdf manage 442.6 K 18 Apr 2006 - 07:29 IoanRaicu Lecture #7 Notes (PDF)
pptppt 08Control.ppt manage 1230.0 K 18 Apr 2006 - 07:29 IoanRaicu Lecture #8 Notes (PPT)
pdfpdf 08Control.pdf manage 428.8 K 18 Apr 2006 - 07:30 IoanRaicu Lecture #8 Notes (PDF)
pptppt 09Middlebox.ppt manage 1054.0 K 25 Apr 2006 - 12:18 IoanRaicu Lecture #9 Notes (PPT)
pdfpdf 09Middlebox.pdf manage 477.1 K 25 Apr 2006 - 12:19 IoanRaicu Lecture #9 Notes (PDF)
pdfpdf quiz3.pdf manage 8.5 K 25 Apr 2006 - 21:51 IoanRaicu Quiz #3
pdfpdf quiz3-soluion.pdf manage 10.9 K 25 Apr 2006 - 21:54 IoanRaicu Quiz #3 Solutions
pdfpdf quiz4.pdf manage 99.6 K 25 Apr 2006 - 21:54 IoanRaicu Quiz #4
pdfpdf quiz4-solution.pdf manage 12.5 K 25 Apr 2006 - 21:55 IoanRaicu Quiz #4 Solutions
pptppt 10Links.ppt manage 1573.5 K 27 Apr 2006 - 11:35 IoanRaicu Lecture #10 Notes (PPT)
pdfpdf 10Links.pdf manage 524.2 K 27 Apr 2006 - 11:36 IoanRaicu Lecture #10 Notes (PDF)
pptppt 11Switches.ppt manage 930.5 K 01 May 2006 - 21:23 IoanRaicu Lecture #11 Notes (PPT)
pdfpdf 11Switches.pdf manage 361.0 K 01 May 2006 - 21:25 IoanRaicu Lecture #11 Notes (PDF)
pdfpdf lab1-solution.pdf manage 176.7 K 02 May 2006 - 23:46 XuehaiZhang? Lab #1 Solutions (PDF)
pdfpdf lab3-solution.pdf manage 187.3 K 02 May 2006 - 23:47 XuehaiZhang? Lab #3 Solutions (PDF)
ziptar project2-src-solution.tar manage 77.1 K 02 May 2006 - 23:52 XuehaiZhang? Project #2 Solutions
pdfpdf hw2-solution.pdf manage 56.4 K 03 May 2006 - 03:01 XuehaiZhang? Homework #2 Solutions
pptppt 12Topology.ppt manage 1220.5 K 04 May 2006 - 00:08 IoanRaicu Lecture #12 Notes (PPT)
pdfpdf 12Topology.pdf manage 586.4 K 04 May 2006 - 00:08 IoanRaicu Lecture #12 Notes (PDF)
pptppt 13Routing.ppt manage 1749.5 K 08 May 2006 - 23:25 IoanRaicu Lecture #13 Notes (PPT)
pdfpdf 13Routing.pdf manage 858.4 K 08 May 2006 - 23:29 IoanRaicu Lecture #13 Notes (PDF)
pptppt 14WebEmail.ppt manage 1011.5 K 11 May 2006 - 13:25 IoanRaicu Lecture #14 Notes (PPT)
pdfpdf 14WebEmail.pdf manage 513.5 K 11 May 2006 - 13:25 IoanRaicu Lecture #14 Notes (PDF)
pdfpdf quiz5.pdf manage 8.8 K 15 May 2006 - 17:42 IoanRaicu Quiz #5
pdfpdf quiz6.pdf manage 84.5 K 15 May 2006 - 17:42 IoanRaicu Quiz #6
pdfpdf quiz7.pdf manage 10.9 K 15 May 2006 - 17:43 IoanRaicu Quiz #7
pdfpdf quiz5-solution.pdf manage 12.0 K 15 May 2006 - 17:49 IoanRaicu Quiz #5 Solutions
pdfpdf quiz6-solution.pdf manage 13.1 K 15 May 2006 - 17:50 IoanRaicu Quiz #6 Solutions
pdfpdf quiz7-solution.pdf manage 12.3 K 15 May 2006 - 17:50 IoanRaicu Quiz #7 Solutions
pptppt 15P2P.ppt manage 1282.5 K 15 May 2006 - 22:09 IoanRaicu Lecture #15 Notes (PPT)
pdfpdf 15P2P.pdf manage 649.9 K 15 May 2006 - 22:18 IoanRaicu Lecture #15 Notes (PDF)
pptppt 17Multimedia.ppt manage 1411.0 K 21 May 2006 - 15:16 IoanRaicu Lecture #17 Notes (PPT)
pdfpdf 17Multimedia.pdf manage 685.2 K 21 May 2006 - 15:17 IoanRaicu Lecture #17 Notes (PDF)
pdfpdf quiz8.pdf manage 8.3 K 21 May 2006 - 15:25 IoanRaicu Quiz #8
pdfpdf quiz8-solution.pdf manage 11.8 K 21 May 2006 - 15:26 IoanRaicu Quiz #8 Solutions
pptppt 18Security.ppt manage 1925.0 K 25 May 2006 - 08:12 IoanRaicu Lecture #18 Notes (PPT)
pdfpdf 18Security.pdf manage 706.9 K 25 May 2006 - 08:49 IoanRaicu Lecture #18 Notes (PDF)
pptppt 19WebServices.ppt manage 2043.0 K 30 May 2006 - 11:49 IoanRaicu Lecture #19 Notes (PPT)
pdfpdf 19WebServices.pdf manage 955.3 K 30 May 2006 - 11:53 IoanRaicu Lecture #19 Notes (PDF)
pdfpdf quiz9.pdf manage 83.6 K 30 May 2006 - 11:54 IoanRaicu Quiz #9
pdfpdf quiz9-solution.pdf manage 102.9 K 30 May 2006 - 11:54 IoanRaicu Quiz #9 Solutions
This topic: VDS/DslCS > WebHome > DslCourses > Cmsc33300_2006
History: r54 - 30 May 2006 - 11:54:44 - IoanRaicu
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding CI Wiki? Send feedback