Internet and Intranet Applications and Protocols

Spring 2006
Prof. Arthur Goldberg
Syllabus

Update dates in 2006: 1/17, 1/24, 2/7, 2/14, 2/21, 2/22, 2/23, 2/26, 2/28, 3/4, 3/28, 4/4, 4/11, 4/24

Week / Date

Topic and Lecture(s)

Reading

1/Jan 17

Introduction: Networking Review and History handouts
Transport Layer handouts

Required readings:

2/Jan 24

Application Layer 1: HTTP and FTP handouts

Required readings:

3/Jan 31

Application Layer 2: Email, DNS and P2P handouts

Required readings:

Further readings:

4/Feb 7

Application Layer 3: Socket Programming

handouts

Notices

Required readings:

5/Feb 14



Security 1

Notices

Required readings:

  • K&R: 8.1-8.4

6/Feb 21

Security 2 handout

Software Quality Example

Streams

Required readings:

7/Feb 28

Issues in Implementing HW2: Secure Email Sender

How to read TCP data

ReadFromInputStream.java

Required readings:

Further readings:

8/Mar 7

Web Proxy Design and Implementation

  • CRC Template

  • Building Concurrent Servers

      • Threading fundamentals

      • NIO

  • Caching and server implementation

  • Recitation notes

Required readings:

  • RFC 2616, HTTP 1.1 (Sections 1, 2, 3.0, 3.1, 3.5, 3.6, 4 – 8, 9.0, 9.3, 13.1.0, 13.2.1, 13.2.2, 13.3.6, 13.5, 14.9.0 - 14.9.2)


Further readings:

  • The rest of Java NIO, by Ron Hitchens. If you're willing to give your credit card # you can read it on-line for free for 2 weeks at safari.

  • Alec Wolman, Geoffrey M. Voelker, Nitin Sharma, Neal Cardwell, Anna Karlin, and Henry M. Levy. On the Scale and Performance of Cooperative Web Proxy Caching. Proceedings of the 17th ACM Symposium on Operating Systems Principles, pages 16-31, Kiawah Island Resort, South Carolina, December 1999.

  • Arthur Goldberg, Ilya Pevzner, Robert Buff, Characteristics of Internet and Intranet Web Proxy Traces, published in  the Computer Measurement Group Conference, CMG98, December 1998,  (Word97  4.19Mb, ps 1.17Mbps.zip 225Kb)

Mar 14

NYU vacation


9/Mar 21

Threading

Design of a Web Proxy Server

Required readings:

10/Mar 28

Special Guest Lecture: Practical Techniques for Building High Performance Java Servers. Joe Conron, Senior Consultant responsible for market data server and APIs of the Aegis Athena Trader.

Web Proxy Implementation FAQ


11/Apr 4

Real-time network programming

Required readings:

  • K&R: 7.1 - 7.6

12/Apr 11

Building High Throughput, Multi-threaded Servers in C#/.NET, David Buksbaum, SVP Development Manager of Systematic Trading, Citadel Investment
David will compare and contrast Java's networking APIs and models with those of .NET. Then he'll discuss an order execution server he wrote for a large investment bank. The server supports a few hundred users worldwide, and processes orders for the New York Stock Exchange.
He'll discuss the system's design and implementation, including the design of a custom protocol, management of persistent state, data compression across a low-bandwidth wireless link and use of concurrency.

Also: An Introduction to C#


13/Apr 18

UDP programming

Peer-to-peer systems


14/Apr 25

What's missing from Java for production sockets applications
Brian Runk, Morgan Stanley
Fault-tolerant network programs require more functionality than offered by java.net. Example functionality would include connection retry, fail over, and fail back (re-establishing a connection to a primary server after it has recovered from a failure). In addition, certain functionality is needed by enough network programs that it makes sense to put it in a library, including pluggable detection of message boundaries and an callback based mechanism for handling network events. We discuss these concepts, ideas for implementing them, and related potential issues.
The speaker: Brian Runk works in an infrastructure group at Morgan Stanley that provides Java libraries and frameworks to the application developers.

And

TBD


I thank Prof. Robert Grimm for letting me use some of his materials.