Instructor: Boon Thau Loo (boonloo AT cis.upenn.edu)
Room: Skirkanich Auditorium
Time: Monday and Wednesday (12-1:30pm)
Office hours: Monday and Wednesday 1:30-2:30pm (605 Levine Hall)
- Lin Dong (lindong AT seas.upenn.edu).
- Xianglong (Shannon) Han (hanxiang AT seas.upenn.edu).
- Hao Xu (haoxu AT seas.upenn.edu).
- Meng Xu (mengxu AT seas.upenn.edu).
- Ying Zheng (yingzhe AT seas.upenn.edu).We will be using Piazza this semester. Times and venues for office hours are posted on Piazza.Undergrads interested in this course should email Professor Loo directly, cc to Mike Felker (mfelker@seas) to get permissions to enroll in this course.
This course provides an introduction to fundamental concepts in the design and implementation of networked systems, their protocols, and applications. Topics to be covered include: Internet architecture, network applications, addressing, routing, transport protocols, network security, and peer-to-peer networks. The course will involve three homework assignments, two programming projects, and two written exams. This course is open to all undergraduate and graduate students in the CIS, ESE, and TCOM departments.Course textbook:
- Computer Networks: A Systems Approach (5th Edition). Larry L. Peterson and Bruce S. Davie. (E.g. Amazon). You can use the 4th edition too if you prefer to buy a used copy.
- Additional material will be drawn from selected research publications.Course pre-requisites:
- CIS 121 (Programming Languages and Techniques II), or equivalent programming experience, or permission of instructor. Data structures and basic probability. Course projects require knowledge of C/C++.
- Written homework assignments: 12%
- Programming projects: 45%
- Class participation: 3%
- Midterm 1: 20%
- Midterm 2: 20%
The schedule here is tentative and subjected to change. Please visit our Piazza for a more up-to-date schedule, links to lecture notes, homework assignments, etc.
Date Topic Reading Remarks Jan 9 Class introduction None Jan 14 Internet Architecture, layering, and end-to-end arguments Chapter 1.1-1.3; [Cla95]
Jan 16 Network performance metrics Chapter 1.4, 1.5; Homework 1 Jan 21 Martin Luther King, Jr. Day Jan 23 Socket programming Beej; Sockets Jan 28 Event-driven network programming
Switch and router architecture
Chapter 3.1-3.2, 3.4 Jan 30 Subversion and code repository
Switch and router architecture (cont)
Project 1 (due Feb 27, checkpoints Feb 5 and 13. Demo on Feb 28.)
TA guest lecture on subversion
Feb 4 Network simulation and description of course projects ns-3 TA guest lecture on ns3 and project discussion Feb 6 IP and Intra-domain routing Chapter 4.1-4.3 Feb 11 Intra-domain routing (cont) Chapter 4.3; Feb 13 Inter-domain routing (cont)
Transport protocols (UDP and TCP)
Chapter 5.1, 5.2; [CR05] Feb 18 TCP, congestion control Chapter 6.3, 6.4 Feb 20 Congestion control Chapter 6.3, 6.4 Feb 25 Variants of TCP Homework 2 (due Mar 11) Feb 27 Buffer Mar 2-10 Spring Break Mar 11 Multicast Chapter 4.4
Mar 13 Midterm 1 Mar 18 P2P networks, distributed hash tables [SMN03] [BKK+03]
Mar 20 DHT-based overlay networks [SAZ+02] Project 2 (due Apr 17, checkpoints Mar 22 and Apr 5, demo on Apr 18) Mar 25 Project 2 discussion, Quality of Service Chapter 6.2, 6.5 Mar 27 Quality of Service (cont) Chapter 6.2, 6.5 Apr 1 MAC Chapter 2.1-2.4, 2.6 Apr 3 Mobility and wireless networking Chapter 2.8, 4.2.5 Homework 3 (due Apr 10) Apr 8 Class cancelled. Instructor out of town Apr 10 Software-defined networks. OpenFlow Instructor out of town Apr 15 Wireless networking (mobile IP and wireless TCP). Apr 17 Routing in mobile ad-hoc networks [BMJ98] [Epi] Apr 22 Midterm 2