Course Overview
This course introduces students to the basic principles of computer networks. Although current technologies will be discussed, the emphasis is on understanding the important issues in modern computer networks that affect design and implementation. The programming assignments require a good background in programming in C or C++ and will involve UNIX system calls.Course Information
Lectures: AK-219, MTRF, 12:00pm - 12.50pm
Teaching Assistants:
Student Assistant:
- Jae Chung, FL-317 (PEDS lab), goos@cs.wpi.edu, Office hours: Mon 2pm - 3pm, Wed 12pm - 2pm,
- Hao Shang, hao@wpi.edu, office TBD, office hours: Thur 1-3pm, 3-4pm
- Joe Chiarella, CS Annex, stype@stype.org, office hours: 7 - 9pm
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Monday, Tuesday: 1PM - 2PM, Thursday: 3PM - 4PM, Friday: 2PM - 3PM. Others by appointmentText: Required: Computer Networks (fourth edition) by A.S. Tanenbaum
Recommended: UNIX Network Programming, Second Edition, by W. Richard Stevens
Academic Honesty: Cheating or plagiarism will not be tolerated and will result in an NR grade for the course. Discussing assignments and approaches to solving them is permitted, but the expectation is that programs turned in are work of that programming team. It is fine to find algorithms or code from publicly available sources such as a textbook or a public website. However, you must document the source clearly in your code and in your program documentation. Failure to do this will be treated as plagiarism.
Class Websites: The class website is at http://www.cs.wpi.edu/~emmanuel/courses/cs4514/. A myWPI class website has also been set up. The discussion board should be used for asking questions to avoid excessive emails and so that everyone can benefit from answers given. Emails should be used only for specific questions which are unique to you.
Class email: You have automatically been added to the class email list: cs4514@cs.wpi.edu. The TAs and I will use this mailing list to send information to the class. Please use the email list only when your question pertains only to you. Since everyone receives email sent to this alias, judicious and courteous use of this alias is expected. Inquiries which are specific to the TAs should be sent to cs4514_ta@cs.wpi.edu. The TAs will answer most of your questions. I will answer questions either policy issues or when the TAs are unable to answer your questions.
Notes:
- Reading is mandatory, working ahead is encouraged.
- Exams are based on lectures, readings and assignments so class attendance is strongly encouraged.
Grade Policy: 40% exams (2 exams), 45% programming assignments (3), and 15% written homeworks (3)
Programming Assignments
The programming assignments will be done in teams of two. In order to form a team, both partners must consent to working together. Both partners should send me email by 11.59PM on Friday, January 17th. If your partner drops the class or you would like to request a partner change, try to see me as soon as possible to avoid glitches and late assignments.http://www.cs.wpi.edu/Help/documentation-standard.html specifies the CS Department Documentation standards. Please follow these guidelines in all your documentation. Every function or subroutine must include the author of the function. This is critical to grading team projects.
All assignments should be submitted using the turnin facility (For more info on turnin, see http://www.cs.wpi.edu/~Help/turnin.html). Please include a README file with each assignment to provide information to assist the TAs in grading your programs.
All programs turned in must compile and execute on one of the WPI Unix platforms. You are encouraged to develop your programs on WPI Unix machines because historically students have had difficulties porting their programs from other operating systems and because there will be test files available on CCC machines. Turned in programs that do not compile will not be graded and will receive a grade of 0. Points will also be deducted for programs without comments.
Late Assignment Credit
Late assignments (turned in after the start of class on the due date) will be penalized 15 percent per day. Assignments will not be accepted after the start of class on the Monday following the due date.Schedule
Introduction (2 days) Topics: Introduction, uses and overview of networks (hardware and software) and reference models Reading: Chapter 1: 1.1 - 1.4 Physical Layer (3 days) Topics: Transmission media, public telephone network, mobile telephones and cable TV Reading: Chapter 2: 2.1 - 2.7 Data Link Layer (4 days) Topics: Data link protocols, error detection and correction Reading: Chapter 3: 3.1 - 3.4, 3.6 Medium Access Control Sublayer (3 days) Topics: Multiple access protocols, ethernet, wireless LANs, bluetooth and data link switching Reading: Chapter 4: 4.1-4.4, 4.6-4.6.2, 4.7 - 4.7.1 Midterm Exam: February 6 Network Layer (4 days) Topics: Network layer design issues, routing algorithms, congestion control Reading: Chapter 5: 5.1-5.3 Transport Layer (4 days) Topics: transport service, sockets, internet transport protocols Reading: Chapter 6: 6.1 - 6.2, 6.4 Application Layer (3 days) Topics: email, web, multimedia Reading: ch 12, 14.1 - 14.7 Midterm Exam: February 27 Plus one "floating" dayTimeline
Please note that the following timeline is tentative. Look at the assignment write-up when handed out in order to confirm the due date.
- Jan 17, Email to tell me your programming partner
- Jan 21, homework 1 due
- Jan 28, programming assignment 1 due
- Feb 4, homework 2 due
- Feb 6, midterm exam
- Feb 11, Programming assignment 2 due
- Feb 18, homework 3 due
- Feb 25, programming assignment 3 due
- Feb 27, Final exam
Class Slides
- Admin stuff [ pdf slides ] [ ppt slides ]
- Intro stuff [ pdf slides ] [ ppt slides ]
- Physical Layer [ pdf slides ] [ ppt slides ]
- Sockets [ pdf slides ] [ ppt slides ]
- Data Link Layer (Part I) [ pdf slides ] [ ppt slides ]
- Data Link Layer (Part II) [ pdf slides ] [ ppt slides ]
- Medium Access Control Sub-Layer (Part I) [ pdf slides ] [ ppt slides ]
- Medium Access Control Sub-Layer (Part II) [ pdf slides ] [ ppt slides ]
- Medium Access Control Sub-Layer (Part III) [ pdf slides ] [ ppt slides ]
- Network Layer (Part I) [ pdf slides ] [ ppt slides ]
- Network Layer (Part II) [ pdf slides ]
- Transport Layer (Part I) [ pdf slides ]
- Transport Layer (Part II) [ pdf slides ]
- Transport Layer (Part III) [ pdf slides ]
- Application Layer [ pdf slides ]
- Application Layer (Part II) [ pdf slides ]
Homework
- Homework 1 pdf file
- Homework 2 pdf file
- Homework 3 pdf file [ hw3 Solns ]
Programming Assignments
- Programming Assignment 1 pdf file
- Programming Assignment 2 pdf file
- Programming Assignment 3 pdf file [ node0.c ] [ node1.c ] [ node2.c ] [ node3.c ] [ prog3.c ]
Help Sessions
- Help Session for Programming Assignment 1 pdf file
- Help Session for Programming Assignment 2 [ pdf file ] [ powerpoint file ]
- Help Session for Programming Assignment 3 [ powerpoint file ]
Old Exams
Past Midterm Exams
Past Final Exams
C03 Final Exams Review
C03 Final Exam Review [ pdf slides ] Web Resources
- WPI's network history
- An informal network programming guide that has helped some students in the past.
- NIST Net is a network emulation package that runs on Linux. NIST Net allows a single Linux PC set up as a router to emulate a wide variety of network conditions.
The Mapping the Internet project has some artistic (and maybe useful) results from traceroute and the Atlas of Cyberspace includes maps of Cyberspace.
A collection of traceroute sites on the web.
X Traceroute for 3-d maps.