Course Information
TTh 1:30p-2:45p
Haas G066
PSO-002:
Wed, Haas 257, 11:30a-1:20p
PSO-003:
Mon, Haas 257, 3:30p-5:20p
Instructor:
Charles Killian
email: ckillian@cs.purdue.edu
phone: 765-494-6014
office: LWSN 1187
office hours: Thur 3-4pm
Teaching Assistants:
Zhen Zhu [email : zzhu at purdue] : PSO-003 (Mon)
Camille Gaspard [email : cgaspard at cs] : PSO-002 (Wed)
Textbook:
James F. Kurose and Keith W. Ross.
Computer Networking - A Top Down Approach Featuring the Internet.
4th Edition.
Announcements
- 2009-04-16: HW4 posted below. Due Tue, April 28th, 1:30p
- 2009-04-05: Final project details posted.
- 2009-04-05: HW3 is now complete. Problem 3 has also been updated. Make sure to get the recent version (if it has all 9 problems filled in, it is OK)
- 2009-04-03: Problems 1-5 of HW3 have been posted below.
- 2009-03-31: Reading assignments posted below. There are two papers in April.
- 2009-03-18: Updated network_io_socket.c posted for PA2. See assignment writeup for link to file
- 2009-03-12: Updated discussion on HW2-P6 posted below.
- 2009-03-10: Solutions to select problems from HW1 and 2 is now posted in the password protected area -- link below.
- 2009-03-04: Written homework 2 has been updated with problem 8.
- 2009-03-02: Written homework 2 is now available -- sans problem 8. A new version of HW2 will be posted by 3/4 which contains this last question.
- 2009-03-01: Programming assignment 2 posted below.
- 2009-02-26: Programming assignment 1 due date updated. See note below.
- 2009-02-24: Class cancelled for today!
- 2009-02-10: The first written homework may be turned in as late as Feb 19th (1:30pm), as discussed in class, without penalty.
- 2009-02-10: Schedule posted until midterm (below). Includes two reading assignments, and a mid-term review and mid-term date.
- 2009-02-09: Make-up class scheduled. Now, instead of April 21 and 23, we will be meeting from 6-9pm on Wednesday, April 15th, in Beering B222.
- 2009-02-09: Writen homework 1 is now available. It is due a week from Tuesday by class time (Feb 17, 1:30pm).
- 2009-02-03: Doodle poll for rescheduling April 21 and 23. If you didn't get the email with the link to the poll, email the professor.
- 2009-01-27: Clarification on programming assignment 1 -- it is okay to use the standard template library (STL) if you are familiar with it.
- 2009-01-27: See new section below on course mailing lists.
- 2009-01-19: Course slides have begun being posted. These are password protected. See the announcement to the course mailing list regarding the password to access them.
- 2009-01-14: There was an error in the logistics slides on Tuesday. The day/time slots for the PSOs was incorrect, and has been corrected.
- 2009-01-12: There will be no PS01 or PS02 this week.
- 2009-01-07: The webpage is created. New content added as available. The book is Kurose-Ross for all those asking.
Course Description
This course is intended to provide a tour through the basic concepts underlying data communications and computer networks. The structure and components of computer networks, packet switching, layered architectures, TCP/IP, physical layer, error control, window flow control, local area networks (Ethernet, Token Ring, FDDI), network layer, congestion control, quality of service and so on will be covered in this course.Grades
Tentative and subject to change.- 25% - Programming assignments
- 15% - Written homeworks
- 15% - Midterm
- 20% - Final prjoect
- 25% - Final exam
Schedule
Updated in an ongoing basis- Week 1 (1/13,1/15): Course Policies and Introduction (Read Chapter 1 of K-R). [Slides: Policies 1/13 1/15]
- Week 2 (1/20,1/22): Intro, continued (Read J. Saltzer, D. Reed, and D. Clark, End-to-end Arguments in System Design. ACM Transactions on Computer Systems (TOCS), Vol. 2, No. 4, pp. 195-206, 1984. for Tuesday). We will start talking about the Application layer on Thursday, so you should begin reading Chapter 2 of K-R for Thursday. [Slides: 1/20 intro 1/20 end-to-end 1/22]
- Week 3 (1/27,1/29): Application Layer (Read Chapter 2 of K-R). [Slides: 1/27 1/29]
- Week 4 (2/3,2/5): Application Layer, continued. (Read Akamai tutorial: Globally Distributed Content Delivery, John Dilley et. al., IEEE Computer, 2002. for Thursday). [Slides: 2/3]
- Week 5 (2/10,2/12): Transport Layer (Read Chapter 3 of K-R). [Slides: 2/10 2/12]
- Week 6 (2/17,2/19): Transport Layer, continued (Finish reading Chapter 3 of K-R). [Slides: 2/17 2/19]
- Week 7 (2/24,2/26): Programming Assignment 1 due this week. Transport Layer, continued (Read L. S. Brakmo and L. L. Peterson, TCP Vegas: End to End Congestion Avoidance on a Global Internet. IEEE Journal of Selected Areas in Communication, Vol. 13, No. 8, pp. 1465-1480, October 1995. for Tuesday). [Slides: 2/26]
- Week 8 (3/3,3/5): Transport Layer, continued (Read Dina Katabi, Mark Handley, and Charlie Rohrd, Internet Congestion Control for Future High Bandwidth-Delay Product Environments. Proceedings of SIGCOMM, August 2002 for Tuesday). [Slides: 3/3 XCP]
- Week 9 (3/10,3/12): Tuesday, midterm review. Thursday, midterm.
- Week 10 (3/17,3/19): Spring Break, no class
- Week 11 (3/24,3/26): Programming Assignment 2 due this week.
- Week 12 (3/31,4/2): Network Layer Continues (Read Chapter 4 of K-R) [Slides: 3/31 4/2]
- Week 13 (4/7,4/9): Network Layer, continued (Read Craig Labovitz, Abha Ahuja, Abhijit Abose, Farnam Jahanian, An Experimental Study of Delayed Internet Routing Convergence. Proc. of Sigcomm, August 2000. for Tuesday) [Slides: 4/7 4/9]
- Week 14 (4/14,4/15,4/16) Link Layer (Read Chapter 5 of K-R. Read P. Newman, G. Minshall, and T. Lyon. IP Switching: ATM Under IP. IEEE/ACM Transactions on Networking, 6(2):117-129, Apr. 1998. for Wednesday) Note: Wednesday's class is 6-9pm in BRNG B222. [Slides: 4/14 4/15]
- Week 15 (4/21,4/23): NO CLASS: Class rescheduled this week due to traveling. Class held on 4/15 from 6-9pm in BRNG B222.
- Week 16 (4/28,4/30): Final project due 4/30. [Slides: 4/28]
Programming assignments
There will be two programming assigments. The first is available below, the second is still being revised. It is expected that the second will be the implementation of a reliable transport protocol.
Programming Assignment 1: Building and evaluating a web server
The details and description of homework 1 are available here: (PDF). The resources mentioned in the project writeup are available here [resources.html]. This homework is adapted for the Purdue environment from the same assignment at Duke University's Computer Science department. The grading criterion is available here: (TXT). Programming assignment 1 is due on Saturday, February 28th, 2009, at 11:59pm Eastern. This assignment is to be done individually. There should be no sharing of code or text. If you have questions, please email the TAs.
Update on due date: Please be noted that the deadline for the programming assignment 1 (web server) has been extended 12 hours till Sunday Mar 1st 2009 at 12:00 NOON. Students can request up to 3 extra 12 hours with the penalty of 10 points off for each 12 hours. The total extensions any student can get is 3 x 12 hours. In other words, the latest to submit your assignment is Monday Mar 2nd at 11:59 PM midnight with a penalty of 30 points (your grade will be out of 70 then). Please be noted that bonus points will not compensate for points taken off for any extension after the first 12 hours given to everybody.
Programming Assignment 2: Simple Transport Control Protocol (STCP)
The details and description of homework 2 are available here: (HTML). Programming assignment 2 is due on Saturday, March 28th, 2009, at 11:59pm Eastern. This assignment is to be done in teams of one or two. There should be no sharing of code or text across teams. If you have questions, please email the TAs.
Update: A new network_io_socket.c has been posted, linked from the homework. This overcomes a bug in the distributed code.
Written homeworks
There will be several written homeworks this semester. They will be posted here as they become available:
- HW1: Due Tuesday, Feb 17th, 1:30pm. Note: this homework may be turned in as late as 1:30pm on Feb 19th without penalty.
- HW2: Due Tuesday, Mar 10th, 1:30pm. Note: For those of you who wish to use LaTeX to format your homework, I am providing the source document here in case you need a starting point. You should modify it of course to include answers, your name, the statement, etc.
- Selected solutions for HW1 and HW2 (Note: updated sketch for hw2-p6 to reflect an additional .5RTT to finish receiving the file)
- HW3: Due Tuesday, Apr 14th, 1:30pm. Note: Problem 3 was updated when the completed homework was posted.
- HW4: Due Tuesday, Apr 28th, 1:30pm.
- Solutions for HW4
Final project
We do not have time this semester to cover advanced topics in Computer Networking in class. Therefore, one component of the grading for this course will be the completion of a final project, which is to be a survey of an open area of networking research, such as topics in wireless networking, network security, high-speed networking, or data-center networking.
For this final project, you will be submitting a 5-7 page survey of an area of networking research. This is open-ended, and you are welcome to pick from any topic which interests you and is relevant to the networking community. You should consult with the professor (via email) about your chosen topic by April 9th. The project is due by end of the day on April 30th (the last day of class).
For guidance on suitable topics, following are good ways to find topics:
- Topics covered in chapters we won't get to (past chapter 5)
- Topics which have been covered in recent conferences on networking (e.g. SIGCOMM, INFOCOM, and in some cases NSDI)
- Some of you may find this research to be useful for your own research. Feel free to consult with your advisor to find out if there is a relevant networking-related research topic you would like to survey for this course.
- Topics which are in more depth than we covered in class
Examples, based on these directions would include researching active router queue management strategies, recent TCP variants, security standards for wireless communications, security mechanisms for BGP, networking issues for Data Centers, .... The list goes on and on.
Expectations: First let me describe what this project is not. Thhe project is not intended to be new research. It is also not groupwork, nor is it supposed to be paraphrasing other people's papers and books. You should pick a topic which is narrow enough to focus on detailed aspects without having too much to research to do a good job. There will be no final presentation. I do expect you to read several sources in detail to understand the topic you are presenting. I expect a summary and critical evaluation of current work, and an assesment of how well the work solves the research area, and any problems identified in the work. You should submit the paper as a PDF. You should also include citations for the papers included in the survey, and any other papers you refer to. I further expect that you have read and are familiar with most of the papers that you choose to cite.
In grading the final projects, I am looking for evidence of individuality, of thoughtfulness, and application of relevant networking concepts to the subject.
Course Mailing-lists
There are two lists being used for this course. The first is an announcement-only list, which will only accept mail from the professor or TAs. This list has the mailing address spring2009-cs-53600-001 -at- lists.purdue.edu. DO NOT EMAIL THIS LIST. That list is maintained by ITAP, and synchronized periodically with the course roster. The second list is a discussion list. The discussion list is opt-in. To opt-in to the discussion list, from a departmental machine run the command:
$ mailer add [username] to cs536-spAnyone can post to this list, and emails will be forwarded to all subscribers. To email this list, send mail to cs536-sp -at- cs.purdue.edu.
Pre-requisites
- While the course is going to primarily to equip you with basic concepts and principles underlying the field of computer netowrks, the goal is also to learn network programming. The programming language of choice in this course is C; so, if you are unfamiliar with C, please take the undergraduate C programming course before you register for this course. This is a strong requirement and no exceptions will be made at all.
- CS 354 (Under graduate operating systems) or CS 422 (undergraduate networks) or equivalent courses. If in doubt, please see me before you register. These courses are not required but no exposure to any of these courses would make it really hard for you to follow the course.
- Speaking in English. Written and spoken English is essential since most exams will be in English (US or UK should be fine, i.e., you can spell color as color or colour and not be afraid of getting penalized).
Course Policies
In the event of a major campus emergency, course requirements, deadlines and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. Here are ways to get information about changes in this course. The course web page, my email address: ckillian@cs.purdue.edu, and my office phone: 494-6014.
This course further adheres to the policies posted at http://spaf.cerias.purdue.edu/cpolicy.html. Please familiarize yourself with them.
In particular, note the section on academic honesty. Violations of this policy are treated as very significant, and will be dealt with both through punitive grading and notification to the Dean of Students.