Internet and Intranet
Applications and Protocols
Description
Course Information
Home page:
http://www.cs.nyu.edu/artg/internet/Spring2003/
Spring 2003
Wed 5:00 PM – 6:50 PM
WWH 109
Syllabus:http://www.cs.nyu.edu/artg/internet/Spring2003/syllabus.html
Instructor Information
Instructor: Arthur
Goldberg
Office: WWH 409
Email: artg@cs.nyu.edu
Office hours: Wed 1-3
Course #: G22.3033-002
TA Information
Jeremy
Weinberger
email: jeremy at cs
719 Broadway, 12th floor, 212-998-3327
Vikram
Sharma
420 Warren Weaver Hall, (212)998-3490
email: sharma at cs
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 time-out management and high-performance concurrent servers.
Programming assignments ask students to write
clients and servers to the sockets interface. Students write several
small programming assignments and one large project. Guest lecturers
may present current research and practice on a subset of the following
issues: reliable internet multicast, the design and implementation of
the Apache Web server, performance issues in WWW servers, and Internet
security.
The last quarter of the course may examine
research that enhances internet and Web performance.
Topics
- Review of Networking and Protocol Design
(Layered model, FSM, 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)
- Web and Proxy Servers
- Some queuing theory
- IP Multicasting
- Messaging and Queuing
We hope to have one or two guest lecturers during
the semester.
Prerequisites
- Basic knowledge of networking principles,
such as that messages travel from sender to receiver, Internet hosts
have IP addresses, etc.
- Ability to program in Java, including
understanding of classes, methods, Java typing, 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, Addison-Wesley Pub Co. 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 indicated.
Rules for Working on
Assignments
All assignments must be emailed to the
professor. 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, 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://cs.nyu.edu/mailman/listinfo/g22_3033_002_sp03
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_002_sp03@cs.nyu.edu.