Computer Science 60

Note that we plan to use many of the x-hour periods.  The last two weeks of the course is held over for projects - there will be no
lectures but there will be group design/code reviews. See the schedule below.  

Week 1  March 25-39

Lecture 1    Monday                               Computer networks in a nutshell
                                                                -- Featuring the cenralized and distributed "
Roll Call" protocols

***Lab1  (Packet Sniffing)  goes out

Please read the following paper for Wednesday.

--This is a classic paper, really very nice:
-- David Clark, "The design philosophy of the DARPA internet protocols",  In Symposium Proceedings on Communications Architectures and Protocols (Stanford, California, United States, August 16 - 18, 1988). V. Cerf, Ed. SIGCOMM '88.

Lecture 2    Wednesday                         Computer networks in a nutshell

A Dartmouth undergrad once told me to my surprise that "CS kids don't read course books!".
Please read the following by Friday
from the course book - it is a very good book, very easy to read.

Lecture 3    
Friday                           --- Real life demo of  "Internet in a Box" - you saw here first!
                                                        and  Socket Programming

-- Our overview is complete please make sure you read Chapter 1 of Kurose/Ross
-- particular attention to sections 1.1, 1.2, 1.3, 1.4, 1.5
-- The sections and chapters are long but they add more details to the material covered in class.

Week 2  April 1-5

Lecture 4    Monday                               Socket Programming

***Lab2  (Sockets)  goes out

Lecture 5    Wednesday                         Applications: Applications needs, P2P and IM session  Internet Draft MSNP 1.0

-- The goal of this  section is to understand how Internet Apps tick.  Because we implement a IM system
-- in Lab3 we start by looking into IM in some detail using Internet Draft MSNP 1.0 as an example of a detailed
-- specification of an IM protocol - read this spec.)

-- The book has a good section on applications (chapter 2) but does not cover a number
-- of applications we will deal with, e.g., IM applications (see below and pointer to MSNP Internet Draft).
-- But I recommend that you read the complete chapter over the course of week 2 and 3.

-- We will also read a paper on BitTorrent and Skype to understand the detailed
-- application protocols. The book mentions BitTorrent and Skype but again not
-- in any detail.

-- We will cover Classic Apps (Web and Email) [see sections 2.2 and 2.4, respectively],
-- P2 (Gnutella, Kazza, BitTorrent, Skype) [see Section 2.6 for overview, and additional material below],
-- Read Gnutella Spec
-- and overlay networks (PlanetLab) [not in book, I will provide material].

Lab             Thursday                           Debugging, valgrind (refresher). Notes here. Code here

Lecture 6    Friday                               Applications: Applications needs, P2P and IM session  Internet Draft MSNP 1.0

-- Please read the BitTorrent paper (the material in the textbook is limited) over the weekend - this is a very
-- cool networking paper! BitTorrent is a very cool protocol. The short specification is here.
-- Also, for your information: the Gnutella Spec.

Week 3  April 8-12

Lecture 7    Monday                              P2P Apps: Gnutella, Kazaa, BitTorrent and Skype

-- There is little in the book on Skype - here is an paper that reversed engineered this protocol. If you
-- interested in the detailed protocol interaction this is the paper to read.

***Lab3  (IM)  goes out 

Lecture 8   Wednesday                          P2P Apps: Gnutella, Kazaa, BitTorrent and Skype

-- Please make sure you are reading Chapter 2 on the Application Layer. We've
-- spent more time on P2P in this class but classic apps such as web and email are interesting, as
-- is applications that support Internet infrastructure such as DNS, which we will cover next.

Lab             Thursday                            C threads, mutex, timers (refresher) for IM assignment. 2008-Notes, 2009-Notes, and code. (By the TA)
Lecture 9    
Friday                                  Classic Apps: Email and Web, plus Domain Name System (DNS) and some network tools.

Week 4  April 15-19

Lecture 10     Monday                             Transport layer (mutex/demutex).                                              

***Lab4  (SRT-SIG)  goes out 

-- We are now moving through parts of chapter 3 on transports.  We will continue to
-- develop SRT adding sliding window to its signaling. 
-- Read sections sections 3.1-3.3

Lecture 11    Wednesday                        DartNet: Simple Reliable Transport (SRT)

-- Reading: Section 3.4 Principles of Reliable Data Transfer
-- and Section 3.5 TCP

Lecture 12     Friday                               TCP: signalling, mux/demux, segment (header/data)

Week  5 April April 22-25

Lecture 13     Monday                           TCP: sliding window, retransmit and fast retransmit 

***Lab5  (SRT-GBN)  goes out 

-- We discussed the major data SRT strcuctures, TCB, SEG_T and the 
-- design of the client side. 

Lecture 14     Wednesday                     DartNet: Simple Reliable Transport (SRT): Data Transfer

-- If you have time read all chapter 3. If you want to be economic: read 3.2, 3.4 and 3.5 

Lecture 15     Friday                               TCP: congestion control

-- Read Section 3.6 on Principles of Congestion Control.

Week  6 April 30 - May 4

Lecture 16     Monday                            Internet Protocol

***Lab6  (Overlay)  goes out

--  Please read the classic paper: 
-- Cerf, V. G. and Kahn, R. E. "A protocol for packet network intercommunication", IEEE Transactions on 
-- Communications, Vol. Com-22, No. 5, May 1974, pp. 637-64
-- Also, treat yourself: listen to Cerf and Kahn when they accepted the Turning Award in 2005. 
-- (Need Real Player) (Fastforward to 14 minutes in if you don't have much time)
-- You will learn a lot if you read the paper and then listen to the conservation. This is very cool 
-- if you are into computer networks and want to hear first hand about tecnhical history of Internet.
-- Don't miss it.

-- I strong advise reading the complete Chapter 4.  Start with sections 4.1-4.3

Lecture 17    Wednesday                         DartNet: Simple Overlay Network (SON) Design
                                                                IP Addressing and Forwarding

-- Also read Chapter  4.3 and 4.4.

Lecture 18     Friday                                Guest lecture Rob Bushell, Renesys Corp - The Internet Intelligence Authority

Week  7 May 7-11

Lecture 19     Monday                              Routing Algorithms

***Lab7  (SNP)  goes out
--  Read Chapter 4.5 and 4.6 

Lecture 20   Wednesday                         Routing Protocols

Lecture         Friday                               DartNet: Simple Network Protocol (SNP) Design