## Class Details

Lectures: Monday and Wednesday, 11:00am - 12:15pm @ 101 Warren Weaver Hall

Administrivia: Course Policies

Comments & Complaints: Fill this form

## Course Staff

Instructor: Aurojit Panda

Office Hours: Wednesdays 3:30pm to 4:30pm @ 60 Fifth Ave, Room 405 or by appointment

Teaching Assistants:

- Aatish Varma

Office Hours: Tuesdays 2pm to 3pm @ 60 Fifth Ave, Room 402 - Jiayang Wang

Office Hours: Thursdays 11am to noon @ 60 Fifth Ave, Room 402

Campuswire: https://campuswire.com/c/G5EFA6382

## Overview

This course provides an introduction to computer networks, focusing especially on their architecture and on the algorithms that enable both large-scale networks (such as the Internet) and smaller scale networks (such as ad-hoc networks connecting personal devices).

This course assumes that students have taken an introductory programming course and can program in Python. We also assume that students have taken an algorithms course (e.g., CSCI-UA.0310) and are familiar with basic graph algorithms (e.g., determining whether a graph is cyclic, computing shortest paths, trees, etc.).

## Textbook

No textbooks are required for the class. However, if you prefer having a textbook we recommend both

- Kurose and Ross: Computer Networking: A Top-Down Approach (7th Edition).
- Peterson and Davie: Computer Networks: A Systems Approach (Version 6.0 available online)

When possible we will provide chapters corresponding to the lectures.

Additionally you might benefit from looking at slides and lecture notes from:

## Tentative Schedule

**Note** This is likely to change, with later lectures more likely to change than earlier one.

Date | Topic | Notes and Self Assessment | Assignments | Book Chapter |
---|---|---|---|---|

Sep 4 | Introduction | Pre-Lecture Notes Lecture Notes |
Technology Setup Information and Collaboration Github Consent |
K&R 1.3 |

Sep 9 | Tools and Flooding | Notes Pre-Lecture Slides Lecture Slides Self-Assessment |
Lab 1 Out (markdown, pdf) | K&R 1.3 |

Sep 11 | Handling Cycles | Pre-Lecture Notes Pre-Lecture Slides Notes Slides |
P&D 3.1 | |

Sep 16 | Learning and Intra-domain routing | Pre-Lecture Notes Pre-Lecture Slides Lecture Notes Lecture Slides |
P&D 3.3, K&R 4.2 | |

Sep 18 | Intra-Domain Routing (2) | Pre-Lecture Notes Pre-Lecture Slides Lecture Slides |
P&D 3.3, K&R 5.1, 5.2 | |

Sep 23 | Intra-Domain Routing, Hierarchical Addresses (3) | Pre-Lecture Notes Pre-Lecture Slides Lecture Notes Lecture Slides |
Lab 1 due Lab 2 out (markdown, pdf) |
P&D 3.3, K&R 5.2 |

Sep 25 | Inter-domain routing, BGP | Pre-Lecture Notes Pre-Lecture Slides Lecture Notes Lecture Slides |
P&D 4.1, K&R 5.4 | |

Sep 30 | Performance and reliability | Pre-Lecture Slides Lecture Notes Lecture Slides |
K&R 1.4, 3.5, P&D 1.5, P&D 2.5 | |

Oct 2 | Reliability | Pre-Lecture Slides Lecture Notes Lecture Slides |
K&R 1.4, 3.5, P&D 1.5, P&D 2.5 | |

Oct 7 | Congestion Collapse | Pre-Lecture Slides Lecture Notes Lecture Slides |
Lab 2 due Lab 3 Out (markdown, pdf) |
Anirudh’s notes P&D 6.3, K&R 3.5-3.7 |

Oct 9 | Congestion Control | Practice Midterm 1 Pre-Lecture Slides Lecture Slides Lecture Notes |
Anirudh’s notes P&D 6.3 K&R 3.5-3.7 | |

Oct 14 | FALL RECESS |
Lab 3 Due | ||

Oct 15 | Midterm Review | Notes | ||

Oct 16 | Midterm |
|||

Oct 21 | Where we are thus far | Pre-Lecture Slides Lecture Slides Notes |
K&R1.5, P&D 1.3 | |

Oct 23 | Networking at the Host | Pre-Lecture Slides Lecture Slides Notes |
||

Oct 28 | Discovery and Naming | Pre-Lecture Slides Lecture Slides Notes |
||

Oct 30 | Bootstrapping | Pre-Lecture Slides |
||

Nov 4 | Introduction to Network Security | Pre-Lecture Slides |
Lecture Slides Lab 4 out | |

Nov 6 | DDoS protection, CDNs | Pre-Lecture Slides Lecture Slides |
||

Nov 11 | Privacy: Protection against Snooping | Pre-Lecture Slides Lecture Slides |
Lab 4 Due | |

Nov 13 | Privacy: Protection against Snooping | Pre-Lecture Slides Lecture Slides |
||

Nov 18 | Resilient routing and TE | Pre-Lecture Slides Lecture Slides |
Lab 5 out (PDF, MD) | |

Nov 20 | Fair queuing and queue management | Pre-Lecture Slides Lecture Slides |
||

Nov 25 | NO CLASS |
|||

Nov 27 | Thanksgiving 🦃🥧 | |||

Dec 2 | Simplifying network management | Pre-Lecture Slides Lecture Slides |
||

Dec 4 | Extending network functionality | Pre-Lecture Slides |
Lab 5 Due | |

Dec 9 | NO CLASS |
Practice Final | ||

Dec 11 | Final Review |