CS 224M Computer Networks (Minor)

Autumn 2017

CS224M Computer Networks (Minor)
Lectures: Slot 5: Wednesdays and Fridays, 9:30-11:55 am, Venue: CC103.

Instructor: Mythili Vutukuru (mythili @ cse.iitb.ac.in)

Instructor Office Hours: By appointment (please send email to fix up a time).

Announcements

Course Overview

The course will cover basic concepts of computer networking for students taking up computer science as their minor. The topics covered include: the history and architecture of the Internet, popular applications, congestion control protocols, routing and switching, and wireless networking. The course will also rouch upon some recent advances in the field of computer networking.

Grading

Textbooks: You may find the following textbooks useful to better understand the concepts taught in class, and for practice exercises. The course roughly follows the content structure of the textbook by Kurose and Ross.


Schedule

Lecture# Date Topic Notes and References Activities before/during/after class
1 July 19 (Wed) Introduction. Course logistics. Layering abstraction. Network architecture and protocols. lec01.txt
2 July 21 (Fri) Packet switching vs. circuit switching. History of networking. lec02.txt

Example pcap file
Demo: simple packet capture and inspecting packet headers.

Download, install, and familiarize yourself with Wireshark before you come to class. Download and view the example pcap file in wireshark. Bring your laptop to class if possible so that you can follow the demo better.
3 July 26 (Wed) Performance of networks: delay and throughput. lec03.txt
4 July 28 (Fri) Application layer: HTTP lec04.txt
5 Aug 2 (Wed) Socket Programming lec05.txt

A sample tutorial on socket programming and a sample tutorial on event-driven I/O using epoll. You can find several more online.

Example socket programs: client and server
Programming Assignment 1: Socket Programming. Due Aug 20, 11:55 pm.
6 Aug 4 (Fri) Application layer: DNS, CDNs, server design. lec06.txt

Handling Flash Crowds from your Garage explains various techniques to design high performance servers.
7 Aug 9 (Wed) Application layer: SMTP, web services, P2P. lec07.txt
- Aug 11 (Fri) Quiz 1 / Help session for programming assignment 1.
8 Aug 16 (Wed) Introduction to the transport layer: UDP and TCP. lec08.txt
9 Aug 18 (Fri) Reliability and congestion control in TCP. lec09.txt
10 Aug 23 (Wed) More on TCP. lec10.txt
11 Aug 30 (Wed) TCP analysis. lec11.txt

Sizing Router Buffers, Appenzeller et al.
Bufferbloat: Dark Buffers in the Internet, Gettys and Nichols.
The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm, Mathis et al.
Programming Assignment 2: Understanding TCP. Due Oct 1, 11:55 pm.
12 Sep 1 (Fri) Network layer: introduction. lec12.txt
13 Sep 6 (Wed) Network layer: details. lec13.txt
- Sep 8 (Fri) Midsem review.
14 Sep 20 (Wed) Routing protocols. lec14.txt
15 Sep 22 (Fri) Interdomain routing. lec15.txt
16 Sep 27 (Wed) BGP: advanced topics. lec16.txt BGP Demo
- Sep 29 (Fri) Midsem paper discussion.
17 Oct 4 (Wed) Router architecture. lec17.txt
18 Oct 6 (Fri) Resource allocation and QoS lec18.txt
- Oct 11 (Wed) Quiz 2
19 Oct 13 (Fri) Link layer: introduction. lec19.txt
- Oct 18 (Wed) and Oct 20 (Fri) NO CLASS Programming Assignment 3: Distance Vector Routing. Due Nov 7 (Tue) 11:55 pm.
20 Oct 25 (Wed) Link layer: multiple access protocols. lec20.txt
21 Oct 27 (Fri) Link layer: switching, VLANs, MPLS. lec21.txt
22 Nov 1 (Wed) Physical layer: overview. lec22.txt
23 Nov 3 (Fri) Looking ahead: some recent advances. lec23.txt
- Nov 8 (Wed) Course wrap-up, endsem review.