(CS5700) Fundamentals of Computer Networks

Fall 2018

This course is also cross listed as CS 4700 - Network Fundamentals for undergraduate students.

Logistics

Time and Location: Mondays and Thursdays from 11:45 - 1:25 pm in Kariotis Hall 011

Piazza: All course related assignment submissions and interactions will take place over Piazza (Note: We will use the same Piazza class for both CS5700 and CS4700). Enroll here!

Office hours: Thursdays from 2:30 to 3:30 pm in ISEC 608

TAs: Praveen Haldoderi Venkatesha Murthy [email protected], Shlomi Yaakobovich [email protected]

TA office hours: Mondays 1:45-2:45pm, WVH 370 (alternative in case Monday is a holiday, Tuesdays 3-4 pm)

Contact Email: [email protected]

Course Description

Computer networking is a rapidly advancing field, and the Internet is already an integral part of society. It is therefore important for computer scientists and computer engineers to be familiar with the fundamentals of computer networking. This course will focus on the architecture, algorithms, and protocols of the Internet. Topics include local area networking, routing, congestion control, network security, and applications such as peer-to-peer and content distribution networks. This course will be systems oriented, and students will work on hands-on projects to learn how to build and understand Internet applications.

Reading Materials

The course will be based on the following two textbooks

  • Computer Networks: A Systems Approach (Peterson and Davie, 5th Edition)
  • Distributed Systems: Concepts and Design (Coulouris etal., 5th Edition)

Projects

There will be five programming projects throughout the semester (three for undergraduates). Programming projects are due at 11:59:59pm on the specified date. No late submissions. We will use a turn-in script to create a compressed archive of the project files, timestamp them, and submit them for grading. These projects require significant design and coding, hence students are recommended to start early!

You will form groups of two people (possibly three, if necessary) to do the projects. You may switch groups between programming projects. Groups must be either all undergraduates or all graduate students.

Important Note: If you refered or obtained a key idea from a book, person or any online source, then the source of the idea (it can be code as well) must be cited. I am not against looking up additional sources to complete the projects but I will not tolerate academic dishonesty. If I think some part of the project has been blindly copied without understanding, I reserve the right to cross-examine the submitted project.

Grading

Projects: 4%, 8%, 12%, 16%, 20%
Midterm and Final: 15% and 20%
Participation: 5%

Schedule

Note: The schedule is tentative and can change due to weather, travel, syllabus coverage speed etc.

Date Topic Readings Notes
6-Sep Fast Track Intro to Networking   Guest Lecture: Prof. Guevara Noubir
10-Sep Course Logistics, History    
13-Sep Architecture, Physical Layer    
17-Sep Data Link Layer   Project 1 out
20-Sep Bridging, Network Layer    
24-Sep Network Layer (contd…), Intradomain routing    
27-Sep Interdomain routing    
1-Oct Transport layer   Project 1 due; Project 2 out
4-Oct Congestion control    
8-Oct Columbus Day (No class)    
11-Oct DNS    
15-Oct NAT   Project 2 due; Project 3 out
18-Oct Mid term Exam    
22-Oct Content Delivery Networks    
25-Oct IXP    
29-Oct Cellular Networks   Project 3 due
1-Nov P2P / Bitorrent   Project 4 out
5-Nov Bitorrent contd…    
8-Nov TLS    
12-Nov Veterans Day (No class)    
15-Nov Anonymous Communications   Project 4 due; Project 5 out
19-Nov Guest Lecture    
22-Nov Thanksgiving (No class)    
26-Nov Next generation networks    
29-Nov Next generation networks    
3-Dec Recap / Q&A   Project 5 due
10-Dec Final Exam   3.30 - 5.30 pm

Acknowledgements

This course is largely adopted from previous courses given at Northeastern by Profs. David Choffnes, Christo Wilson, Cristina Nita-Rotaru, Guevara Noubir.