Remember to check this regularly!
LOCATION AND TIME
Lectures: Mondays and Wednesdays 11:00-12:20PM
Annenberg Hall G21
Professor Office Hours: By appointment
TA Office Hours: By appointment
TA Sessions: TBD
A top-down exploration of networking using the 5-layer model and the TCP/IP stack.
In compliance with Section 504 of the 1973 Rehabilitation Act and the Americans with Disabilities Act, Northwestern University is committed to providing equal access to all programming. Students with disabilities seeking accommodations are encouraged to contact the office of Services for Students with Disabilities (SSD) at +1 847 467-5530 or firstname.lastname@example.org. SSD is located in the basement of Scott Hall. Additionally, I am available to discuss disability-related needs during office hours or by appointment.
This course introduces the basics of networking, ranging from sending bits over wires to the Web and distributed computing. We focus on the networking ground between these two extremes, particularly focusing on the engineering of the Internet. Topics include packet switching and routing, flow control, congestion control and quality-of-service, Internet protocols, security, software defined networking, and the design of network services.
There are a number of communication channels set up for this class:
- We will use the course web site to post announcements related to the course and Canvas to post assignments. You should check these regularly for schedule changes, clarifications and corrections to assignments, and other course-related announcements.
- We will use Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza
- There is always email for questions that would be inappropriate to post on the newsgroup/discussion-board. When using email to contact the staff please start your subject line with “CS340: helpful-comment” to ensure a prompt response.
The course is organized as a series of lecture and paper discussions, four projects and a take home exam.
- Lectures – A set of lectures on the core of the material.
- Readings – Textbook and paper reading in preparation for (not substitution of) the lecture.
- Homework assignments – A set of assignments meant as reader enforcers.
- Wireshark Labs – A set of labs to let you see network protocols in action.
- Projects – Three programming projects to give you a better understanding of the subject matter.
- A midterm and final exams (cumulative).
I use a criterion-referenced method to assign your grade; in other words, your grade will be based on how well you do relative to predetermined performance levels, instead of in comparison with the rest of the class. Thus, if a test has 100 possible points, anyone with a score of 90 or greater will get an A (90-93: A-), those with scores of 80 or greater will get a B, those with scores of 70 or greater will get a C, and so on. Notice that this means that if everyone works hard and gets >93, everyone gets an A.
Total scores (between 0 and 100) will be determined, roughly, as follows:
- Projects 40%
- Midterm Exam 15%
- Final Exam 20%
- Homework Assignments and Wireshark Labs 20%
- Participation (in class and Piazza) 5%
Unless otherwise indicated, homework assignments and projects are due by midnight on their due date. If you hand in an assignment late, we will take off 10% for each day (or portion thereof) it is late. Assignments that are three or more days latereceive no credit.
Cheating vs. Collaboration:
Collaboration is a really good thing and we encourage it. On the other hand, cheating is considered a very serious offense. When in doubt, remember that it’s OK to meet with colleagues, study for exams together, and discuss assignments with them. However, what you turn in must be your own (or for group projects, your group’s own) work. Copying code, solution sets, etc. from other people or any other sources is strictly prohibited.
The following is our intended calendar with topics, slides (as they become available) and reference material. Notes with the format “KR7 #” refer to chapters/sections of the class textbook Computer Networking: A Top-Down Approach, 7th Ed., J. Kurose and K. Ross.
|Wed 9/25||Introduction: Overview | Brief history of the Internet||KR7 1.1,1.7|
|Mon 9/30||Edge, core and a bunch of layers||KR7 1.2-1.5|
|Wed 10/02||Application layer: Principles and a few protocols | Socket Programming||KR7 2.1-2.3, 2.7|
|Mon 10/07||Domain Name System||KR7 2.4|
|Wed 10/09||Content distribution: P2P, Video and CDNs||KR7 2.5, 2.6|
|Mon 10/14||Transport Layers, UDP||KR7 3.1-3.3|
|Wed 10/16||Principles of Reliable Data Transfer||KR7 3.4|
|Mon 10/21||TCP||KR7 3.5|
|Wed 10/23||Congestion Control and TCP||KR7 3.6,3.7|
|Mon 10/28||Network layer | Inside a Router||KR7 4.1-2|
|Wed 10/30||Midterm (in class)||Up to 3.7|
|Mon 11/04||The Internet protocol | SDN||KR7 4.3,4.4|
|Wed 11/06||Routing algorithms||KR7 5.1-5.3|
|Mon 11/11||BGP||KR7 5.4|
|Wed 11/13||ICMP and SMPT||KR7 5.6-6.7|
|Mon 11/18||Link Layer: Broadcast||KR7 6.1-6.3|
|Wed 11/20||Link Layer: Point-to-Point||KR7 6.4-6.5|
|Mon 11/25||Wireless and Cellular||KR7 7.1,7.4|
|Wed 11/27||Security||KR7 8.1-8.4|
There are five Wireshark labs, some basic homework assignments, and three team-projects. Projects are to be done in teams of 2 students.
We will post all asignments in the Canvas’ site for the course.
CALENDAR OF ASSIGNMENTS
- Computer Networking: A Top-Down Approach, 7th Ed., Jim Kurose and Keith Ross, Pearson
OTHER GOOD TEXTBOOKS
- Computer Networks: A Systems Approach, 5th Ed., by Larry Peterson and Bruce Davie, Morgan Kaufmann
- Computer Networks, 5th Ed.by Andrew Tanenbaum and David Wetherall, Pearson
VERY USEFUL REFERENCES
- TCP/IP Illustrated, Volume 1: The Protocols, by W. Richard Stevens.
- Unix Network Programming: Networking APIs: Sockets and XTI (Volume 1), by W. Richard Stevens and Stephen Rago.
- Advanced Programming in the Unix Environment by W. Richard Stevens, Addison-Wesley, 2013.
- S. Keshav, How to Read a Paper, ACM SIGCOMM CCR, 37(3), 2007.