CSE 534: Fundamentals of Computer Networks

Fall 2020

Time: M/W 11:45 AM - 1:05 PM

Instructor: Shubham Jain (jain [at] cs [dot] stonybrook [dot] edu)

Announcements

Course Description

The goal of this course is to cover the introductory topics in networking. We will go through the standard protocols in each layer of the OSI stack and discuss design patterns commonly used in networking protocols. While part of the discussions will be on traditional protocols, one part of the course will focus on newer developments in the networking world.

Online Instruction

All class sessions will be conducted online. You can find a Zoom link on the Blackboard/Piazza course page.

Textbook

The recommended textbook is: Computer Networks, A Top Down Approach by Kurose and Ross

I will also make my slides and other reading material available through Piazza. Assignments, reviews, and other project related submissions must be done on Blackboard.

Grading Policy (Tentative)

Midterm and Final exam: 40%
Project: 20%
Paper reviews: 4%
Assignments: 36% (12% each)

Project: The project is meant to be open-ended. Around 3 weeks into the semester, we will discuss possible project ideas. You should choose a project and submit a project proposal. Mid-way through the course, you will present a report on project progress. At the end, you will present your projects to the instructor and submit a project report.

I encourage students to do the project in groups of 2 or 3. If you want to do a project without any team members, come talk to me. The scope of the project is different if you have 1 versus 2 versus 3 team members. All project-related reports should be submitted by 11.59 PM on the day they are due.

Paper reviews: There are 4 papers assigned for reading. For each paper, you are expected to provide a review summary. More details on how to write a paper summary will be up on Piazza. Paper reviews should be submitted by 11.45 AM on the day they are due (that is, just before class starts). No extensions are allowed. If you don't submit by the deadline, you forfeit the points.

For grading, I will choose the 3 reviews with highest scores.

Assignments: There will be 3 assignments in all. Assignments should be submitted by 11.59 PM on the day they are due. The assignments are programming heavy. You can program in C or Python.

Submissions instructions and total attempts: We will use Blackboard for submissions. If you want to resubmit after you already submitted one version of your assignment/project/summaries, you may do so. But you are allowed a maximum of 2 resubmissions (i.e., a maximum of 3 attempts). Irrespective of anything else, your last attempt will be considered. This means, if you submit one version of your homework before the deadline and submit another version after the deadline, we will grade the later submission and grade you according to the late submission policy.

Grace period: You get a total 24 hours of grace period across your three assignments, starting from the first assignment deadline. So if you submit your first assignment 24 hours late, then you no longer have any grace period, but will not be penalized. If you submit your first assignment 12 hours late, you still have 12 hours of grace period left. Once your grace period is over, each assignment you submit late will be subject to the late penalty below. There is no grace period for summaries and projects.

After the submission deadline: If you submit your homework at hour h after your deadline (after your grace period), here are the grade penalties

Prerequisites

An introductory networking course is recommended but is not a pre-requisite. However, if you do not have a computer science background or if you are accepted with academic proficiency requirement, talk to me before registering.

Office Hours

Office hours will be every Thursday 10 AM - 11 AM.

Tentative Schedule

Week Date Topic Reading
Week 1 8/24
  • Course Overview
  • History of the internet
Recommended reading:
  • None
8/26
  • Intro to packet switched networks
  • Delay, Loss, and Throughput
  • KR Chapter 1
Week 2 8/31 Application Layer
  • Introduction and Overview
  • KR 2.1
9/2
  • DNS
  • KR 2.4
Week 3 9/7 Labor Day Holiday. NO CLASS
9/9
  • Project Discussion
  • How to read a paper
  • KR 2.2
  • Summary 1 due before class
  • Assignment 1 out
Week 4 9/14
  • The Web and HTTP/HTTP2
  • KR 2.2
9/16
  • CDNs
  • KR 2.6
Week 5 9/21
    Transport Layer
  • Introduction
  • TCP
  • KR 3.1, 3.4
9/23
    NO CLASS
  • Assignment 1 Due
Week 6 9/28
  • Wireshark Hands-on
9/30
  • TCP Reliable Data Transfer principles
  • KR 3.7
  • Project Proposals Due
  • Assignment 2 out
Week 7 10/5
  • TCP Flow Control
  • Review 2 due
10/7
  • TCP Congestion Control
  • KR 4.3
Week 8 10/12
    Network Layer
  • Overview and Introduction
  • Internet Protocol
  • KR 4.3.3, 4.3.4
10/14
    NO CLASS
  • Assignment 2 Due on 10/16
Week 9 10/19
  • Addressing and NAT
  • KR 4.3.3
10/21
    Midterm Exam
    Conducted via Blackboard
Week 10 10/26
10/28
  • Intra-domain routing
  • KR 5.2
  • Review 3 due
Week 11 11/2
  • Inter-domain routing
  • KR 5.3, 5.4
11/4
  • Link Layer
  • KR 6.1, 6.2
  • Assignment 3 out
Week 12 11/9
  • Midterm Review
  • MAC Protocols
  • KR 6.3
11/11
  • Link Layer Addressing
  • KR 6.4
Week 13 11/16
  • Review 4 Due
11/18
  • WiFi/Cellular Link Layer
  • KR 6.6, 7.2, 7.3
  • Assignment 3 due
Week 14 11/23
    NO CLASS. HAPPY THANKSGIVING!
11/25
Week 15 11/30
  • Wireless
  • KR 7.4, 7.5, 7.6
12/2
    Physical Layer
  • KR 1.2.2
Week 16 11/7
    Final Project Presentations