Computer Science 78
schedule 


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 30-April 3
 
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 so you'll have some good questions for Jim on 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                          A conservation with Jim Kurose. Jim is a leading computer networking researcher, teacher, and co-author of the text for our class.
                                                                Jim is currently Interim Dean of the College of Natural Science and Mathematics at University of Massachusetts Amherst.

Talk            Wednesday CS Colloqium   Talk by Jim Kurose (4.30-5.30, Tea at 4.00, Filene Auditorium in Moore)

Lab             Thursday                             Computer networks in a nutshell
                                                               --- Real life demo of  "Internet in a Box" - you saw here first!

                                                                --- Visit to Wayne's machine room:  some PHY stuff and meet some CS servers (DNS, web. mail).

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.

-- 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.

Lecture 3    
Friday                                 Socket Programming

***Lab2  (Sockets)  goes out

Week 2  April 6-10


Lecture 4    Monday                               Socket Programming 

Lecture 5    Wednesday                         Applications: Starting with Instant Messaging (IM) (see also 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],
-- and overlay networks (PlanetLab) [not in book, I will provide material].

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

Lecture 6    Friday                                P2P Apps: Gnutella, Kazaa, BitTorrent and Skype

-- 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 13-17

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

-- 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                          Classic Apps: Email and Web

-- 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.
 
Lecture 9    
Friday                                  Domain Name System (DNS) and some network tools.


Week  4 April 20-24

Lecture 10     Monday                             Transport layer (mutex/demutex).
                                                                DartNet: Simple Reliable Transport (SRT)
                                                                 
-- Because of time contraints and to align with Lab4 we will probably jump into
-- the design of Simple Reliable Transport (SRT) and then start to get into TCP/UDP transport issues.
-- Simple Reliable Transport (SRT) is the first part of DartNet that you will code.  

***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)

Lab              Thursday                            Free for now, but looks like we'll use it.

-- 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 27-May 1

Lecture 13     Monday                            DartNet: Simple Reliable Transport (SRT): Data Transfer

***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                       TCP: sliding window, retransmit and fast retransmit 

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

Lab             Thursday                             Free for now.

Lecture 15     Friday                               TCP: congestion control

-- Read Section 3.6 on Principles of Congestion Control.

Week  6 May 4-8

Lecture 16     Monday                            DartNet: Overlay Network (ON) Design

***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                        Internet Protocol

Lab              Thursday                            IP Addressing and Forwarding

-- Let's discuss
Cerf, V. G. and Kahn, R. E. "A protocol for packet network intercommunication",
-- Friday; bring your thoughts.

-- Also read Chapter  4.3 and 4.4.

Lecture 18     Friday                                 Routing Algorithms
     
Week  7 May 11-15


Lecture 19     Monday                              Routing Protocols

                                                                 DartNet: Simple Network Protocol (SNP) Design

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

Lecture 20   Wednesday                        
 Routing Protocols
-- Read Chapter 5.1 and 5.3. And on Wireless abd Mobile Neworks
-- Chapter 6.3

Lab              Thursday                             The MAC layer: WiFi 802.11

Lecture 21   Friday                                  Project and tutorial I on N810s (Cory)

-- We kickoff the project phase by announding the project teams
-- Also, we will release the project description.


-- If Cory does not complete the tutorial he will continue Monday 10-11.05 AM
-- in the lab.

Week  8 May 18-22 (No classes)


***Sunday 12 AM Lab7 in

*****END OF LABS (Well done!) ***START OF PROJECT******


Note that there are no classes for week 9 and 10 so the projects are expected to challenging.

No classes: time held over for project work.

-- 4-7 PM Friday May 22 design review

Week  9 May 25-29 (No classes)

No classes: time held over for project work.

-- 4-7 PM Thursday May 28 code review

Week  10 June 2-5

-- 6-9 PM Tuesday June 2 demo or die day.

-- 24.00 Hrs Wednesday June 3 project reports due.

See the project page for the remaining schedule and for important milestones and what is needed for those
milestones.