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.