We consider protocol design issues, especially as they influence functionality, reliability and performance. We carefully read protocol specifications, such as the HTTP specification, RFC 2068. 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. Programming assignments ask students to write clients and servers to the sockets interface.
Students write several small programming assignments and one large project.
The large programming project will ask students to design and implement a load balancing manager as used by content serving companies such as Akamai and Sandpiper. The last quarter of the course examines research that enhances internet and Web performance. All students must be able to access the Web and a programming environment. Any student can obtain an account on the Computer Science department Sun workstations which will provide such access. Prerequisites We assign a substantial network programming project.