Internet and Intranet Protocols and Applications

Spring 1999 
Prof. Arthur P. Goldberg

Computer Science Department
Courant Institute of Mathematical Sciences
New York University

Revision dates: 1/21/1999


Internet and Intranet Protocols and Applications studies the world's most widely used application level network protocols and software systems. They are primarily client/server systems, with modifications and enhancements to improve performance, such as caching and replication, and security, such as firewalls.

We study protocols, such as HTTP, NNTP and SMTP. We discuss the design of client and server software, such as Web browsers and servers. We study the design of network systems, such as corporate intranets.

In examining these systems, we consider the technical challenges faced by their designers, including issues such as system performance, and network architecture and management.

Two programming projects will enhance the learning experience: write a UDP ECHO client and the core of a caching HTTP/1.1 proxy server.

Course Particulars

Professor: Arthur P. Goldberg
Course home page:
Time: Thursday, 7-9 PM
Place: Room 109, Warren Weaver Hall
Number: G22.3033.03
Email beacon:
Credits: 3
Teaching assistants: TBD

Professor Particulars

Office: 715 Broadway, Room 711
Home page:
Office hour: Thursday, 5 to 6 PM


The weekly syllabus, including lecture topics, pointers to slides on-line, reading assignments and homework assignments are at

Required texts

Tanenbaum, Andrew S., Computer Networks, Prentice Hall, Third Edition, ISBN 0-13-349945-6, 1996.

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

Recommended texts

David A. Curry, UNIX Systems Programming for SVR4, O'Reilly and Associates, 1st Edition, July 1996, ISBN 1-56592-163-1.

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

Computer accounts and resources

All students must be able to access the Web. Any student can obtain an account on the Computer Science department Sun workstations which will provide such access.


We assign a substantial network programming project.  Therefore, students should know two things beforehand.  First, students should know how to design, develop and test substantial programs, at the level of one of the following graduate courses: C++, Java, Compilers, or Distributed algorithms.  Other courses which make similar demands would meet this prerequesite. Second, students should know the fundamentals of how networks work, as taught in a university level networking course.  This knowledge could also be obtained via some other means, such as work experience.

Course email list

I must be able to communicate with all students by email. The CS department has set up a Majordomo email list server on (Read about Majordomo in Liu, et. al., Managing Internet Services, Chaps 24 and 25, if you're interested.)

To register, send an email with the body

 SUBSCRIBE g22_3033_003_sp99
to To multicast an email to the class, email to To learn more about majordomo, send email with "help" in the body.

Assignments and Student Evaluation

A student can earn a total of 100 points in this course. Points will be allocated to assignments as indicated. All assignments must be done individually.
Assignment Points
Homework problems from texts 30
Client program, Comer 7.11 and 7.12 10
Programming project - a caching HTTP/1.1 proxy server 40
Take-home final examination 20

The take-home examination will be handed out the last day of class, and due one week later.