Internet and Intranet Applications and Protocols


G22.3033-003

Spring 2002

Wed 5:00 PM 7:00 PM WWH 109


Revision 5 (3-21-2002)

 

Instructor Information

Instructor:   

Joseph P. Conron

Office:   

WWH 401

Email:   

jconron@cs.nyu.edu

Hours:   

Wed 4:00 - 4:50 by appointment please

TA Information

Aristotelis Tsirigos (Teaching Assistant)

Vidula Pant (Grader)

  Course Description

Internet and Intranet Protocols and Applications studies the world's most widely used application level network protocols and software systems. We will explore the characteristics of the Internet that have made it the planet's most widely deployed suite of protocols and in doing so, attempt to understand the underlying "problems" that each of these protocols attempts to address.

We study protocols, such as HTTP for the Web, SMTP and POP3 for email, FTP for file transfer, and SSL for security. 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.

Programming assignments require students to write clients and servers to the sockets interface. While you can do this in C, you will have an easier time of it with JAVA. If you do not know JAVA, there will be sufficiently simple programming assignments early in the course to help you learn. All of the programming examples shown in class will be in JAVA.

If you are new to JAVA, the following text is a good JAVA introduction and reference. Be warned though, that it does not teach object-oriented programming.

The Java Programming Language, Third Edition, Ken Arnold, James Gosling, David Holmes Addison-Wesley Pub Co; ISBN: 0201704331

If you need a JAVA tutorial that includes an introduction to object oriented programming, try the free JAVA Tutorial at http://www.javasoft.com/docs/books/tutorial.

Students are expected to have taken Programming Languages and Data Communications and Networks or equivalent. There will be a considerable amount of programming required by the assignments, several of which will be significantly larger than 200 lines of code.

NOTE: if you have difficulty programming, you will have considerable difficulty in this class.

Topics we will cover are:

      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)

      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

You must have completed Programming Languages AND Data Communications and Networks or equivalent.

Required Text

We will be using the following book as our primary reference in class

Computer Networking: A Top-Down Approach Featuring the Internet,

James Kurose and Keith Ross, Addison Wesley, 2001, ISBN: 0201477114

 

 

NOTE: Changes and corrections to the text book are here: Errata

Recommended Texts

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

Computer Networks And Internets with Internet Applications, 3rd Edition,

Douglas Comer, Prentice Hall, ISBN 0130914495

 

Internetworking with TCP/IP: Volume III: Client-Server Programming and Applications, BSD socket version,

Second Edition, Comer, D.E. and Stevens, D.L. Prentice Hall, ISBN 0-13-260969-X

Windows Sockets Network Programming, Addison-Wesley Advanced Windows Series

Bob Quinn, Dave Shute, ISBN: 0201633728

.

 

Syllabus (the course Syllabus)

Lectures (links to lectures)

 

 Assignments and Student Evaluation

The programming assignments are given in the following table. The fractional importance of the final grade is indicated.

Assignment

Percentage

Due Date

FSM

10

Feb 13

SMTP user agent program

10

Feb 20

UDP echo program

30

Mar 20

FTP Client

20

Apr 10

HTTP Proxy Server

30

May 1

Grades will be given according to the following schedule:

A 93 - 100

A- 90 - 92.9

B+ 87 - 89.9

B 83 - 86.9

B- 80 - 82.9

C+ 75 - 79.9

C 70 - 74.9

C- 60 - 69.9

 

Grading Group Assignments

I am defining two (2) grading groups, group A and group B. You are assigned to one or the other group for the entire semester based upon your student ID as follows:

      If your student ID is 000000000 through 991780000, then you are in group A.

      If your student ID is 991780001 through 999999999, then you are in group B.

We will assign Graders for the projects as follows:

Project

Group A

Group B

FSM

Aristotelis

Vidula

SMTP user agent

Vidula

Aristotelis

UDP echo program

Aristotelis

Vidula

FTP Client

Vidula

Aristotelis

HTTP Proxy Server

professor

professor

When a given project is due, you must email the required items to the grader for your group. The correct email addresses for Aristotelis and Vidula are given near the top of this document. I will be grading the last project (HTTP Proxy Server), so EVERYONE will send that project to me for grading.

 

Rules for Working on Assignments

1.     All assignments must be done individually (see Cheating below).

2.     Unless stated otherwise in the assignment, all software must be original.

3.     All assignments must be emailed to the appropriate grader. 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 handed in up to one week late will receive a 10% penalty. Assignments handed in up to two weeks late will receive a 20% penalty. NO credit will be given for ANY assignment submitted later than two weeks from the due date..

Cheating Policy

You should NOT:

  1. Copy any part of another student's source code.
  2. Allow another student to copy your source code.
  3. Copy any part of code found in a book, magazine, the Internet, or other resource.


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 should register themselves with the class list, which is used for all technical discussions concerning the course. To register, go to the following web page, and follow the instructions:

http://cs.nyu.edu/mailman/listinfo/g22_3033_003_sp02

Please send your questions to this list (NOT TO ME) so that everyone may participate in the discussion.