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
- Review of Networking and Protocol Design
(Layered model, Transport Protocols (UDP, TCP))
- Network Routing protocols
- Client/Server Model and Socket Programming
- Application protocols and RFCs (SMTP,
POP3, FTP, HTTP)
- The Domain Name System (DNS)
- Network security (SSL, IPsec)
- Web and Proxy Servers
- Some server performance and queuing theory
- IP Multicasting
Student feedback on topics
Prerequisites
- Basic knowledge of networking principles,
such as that messages travel from sender to receiver, and contain data
in their bodies, Internet hosts have IP addresses, etc.
- Ability to understand formal language
descriptions, such as finite state machines and BNF grammars.
- Ability to program in Java, including
understanding of classes, methods, inheritance, Strings and arrarys,
interfaces, packages, collections, iterators, exception handling, and
I/O.
- Ability to write programs 10 to 30 pages
long.
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:
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>.