Internet and Intranet Applications and Protocols

Spring 2004

Description

Course Information

Home page: http://www.cs.nyu.edu/artg/internet/Spring2004/
Spring 2004
Tuesdays 5:00 PM – 6:50 PM
WWH 102
Syllabus: http://www.cs.nyu.edu/artg/internet/Spring2004/syllabus.html
Update history: 2/2/4, 2/16/4
, 3/23, 4/28 

Instructor Information

Instructor: Arthur Goldberg
Office: WWH 102
Email: artg@cs.nyu.edu
Office hours:  Tues 2-3, Thurs. 2-3
Course #: G22.3033-008

TA Information

Jeremy Weinberger jeremy "at" cs.nyu.edu
http://www.cs.nyu.edu/~jeremy/
719 Broadway, 12th floor
212-998-3327
Office hours: Tues 4-5

Course Description

Internet and Intranet Protocols and Applications studies the world’s most widely used application level network protocols and software systems.
We study protocols, such as HTTP for the Web, and SMTP, POP3, and IMAP for email.  We consider protocol design issues, especially as they influence functionality, reliability and performance. We carefully read protocol specifications, such as the HTTP specification, RFC 2616.

We study the systems which use these protocols, clients and servers. We also study intermediate systems which enhance performance, such as caching proxies and content delivery services.  We will examine complex functionality and performance issues, such as high-performance concurrent servers.

Programming assignments ask students to write clients and/or servers to the sockets interface. Students write several small programming assignments and one large project. Guest lecturers will present current research and practice on a subset of the following issues: IP services over digital cable TV, EDI over the Internet, performance tuning WWW servers and perhaps others.

Topics

Student feedback on topics

Prerequisites
If you have difficulty programming, do not take this class.

Required Text

James Kurose and Keith Ross, Computer Networking: A Top-Down Approach Featuring the Internet, Addison Wesley, 2nd edition, 2002, ISBN: 0201976994.  Note that we're using the 2nd edition.

Recommended Texts

Other software texts that you may find useful in your work or future studies:

Douglas Comer, Computer Networks And Internets with Internet Applications, 3rd Edition, Prentice Hall, ISBN 0130914495.  An excellent simple introduction to internetworking, that you can use as a backup if Kurose confuses you.

Comer, D.E. and Stevens, D.L., Internetworking with TCP/IP: Volume III: Client-Server Programming and Applications, BSD socket version, Second Edition, Prentice Hall, ISBN 0-13-260969-X.  A detailed reference on socket programming in C.

Ken Arnold, James Gosling, David Holmes, The Java Programming Language, (3rd Edition), Addison-Wesley Pub Co., ISBN: 0201704331.  The best--most concise and technically deep and insightful--introduction to Java, from the inventors.

Bob Quinn, Dave Shute, Windows Sockets Network Programming, Addison-Wesley Advanced Windows Series, ISBN: 0201633728.

Merlin Hughes, Michael Shoffner, Derek Hamner, Java Network Programming: A Complete Guide to Networking, Streams, and Distributed Computing, Manning Publications Company; ; 2nd edition (July 1999).  Very extensive.

Steve C McConnell, Code Complete: A Practical Handbook of Software Construction, 857 pages (May 1993), Microsoft Press; ISBN: 1556154844.  Even though MSFT published it, still the most practical guide to writing good code I know.

Assignments and Student Evaluation

The programming assignments are below.  The fractional importance of the final grade is to be determined. We may also include a couple of homeworks, quizes or a take-home exam:
 
Assignment Answer
Points Passed out (week) Due Date
1: Fix Problems With Example UDP&TCP-client-server code
10
2
Week 4
2: POP3 Server, Addendum

30
4.5
Week 7
3. Performance of SSL, Addendum
40
8
 Week 11
4. P2P program, Addendum, Addendum2
40 11
May 4

Rules for Working on Assignments

All assignments must be emailed to the professor, and handed in as a harcopy.  To avoid problems with lost emails ("the Internet ate my homework") you should save a copy of your EMAIL (not simply the assignment itself).

Late Assignments

Assignments are assessed a 1.5% penalty per day late.  Since I want to hand out and discuss answers 2 weeks after the due date, unless I grant an exception, NO credit will be given for ANY assignment submitted later than two weeks from the due date.

Cheating Policy

The software you submit in assignments should be your own work.  The only exception is that you may (should) use code that we provide that you for use in your work.
The distinction between improper copying, which is cheating, and your own work is quite clear.
Improper copying occurs when you incorporate in your own code multiple lines of code that someone else wrote.  The copying is improper even if you modify the code.
Modifying the code to conceal that it is a copy (i.e., changing variable names, indentation, linebreaks, etc.) makes the cheating worse.
We expect and hope that you will read other code and documentation to help you write your software.  It is OK to copy a brief comment that describes use of a function.  It is OK, and encouraged, to use libraries that implement useful functionality.  However, check which libraries are permitted by a particular assignment.

The penalty for first cheating offense will be a grade of ZERO on the assignment. The penalty for a second cheating offense will be a grade of F for the course.

Class Email List

All students must register with the class email list, which is used for all technical and logistical discussions concerning the course. To register, go to the following web page, and follow the instructions:
http://www.cs.nyu.edu/mailman/listinfo/g22_3033_008_sp04

Please send your questions to this list so that everyone may participate in the discussion.   To post a message to all the list members, send email to g22_3033_008_sp04@cs.nyu.edu.  Mailing list administrator: S Ethan Park <sp701@nyu.edu>.