AI Summary
[DOCUMENT_TYPE: user_assignment]
**What This Document Is**
This document outlines the requirements for Project 1 in ELENG 122, Introduction to Computer Networks at UC Berkeley. It’s a practical assignment focused on building foundational networking applications – specifically, a web server and a corresponding client. The project is structured as a milestone-based assignment, with this document detailing the expectations for the first milestone. It delves into the core principles of client-server architecture and the HTTP protocol, providing a hands-on learning experience.
**Why This Document Matters**
This assignment is crucial for students seeking to solidify their understanding of network programming concepts. It’s particularly beneficial for those enrolled in an introductory computer networks course and aiming to gain practical experience in building networked applications. Students preparing for more advanced networking topics will find the foundational knowledge gained here invaluable. This document serves as the definitive guide for completing the initial phase of a significant project, ensuring a clear understanding of expectations and deliverables.
**Topics Covered**
* Socket Programming (Client & Server)
* Client-Server Architecture
* HTTP/1.0 Protocol Fundamentals
* Network Application Development
* Data Transmission and Reception
* Request Parsing
* Error Handling in Network Applications
* File Handling in a Server Context
**What This Document Provides**
* Detailed project goals and objectives for Milestone 1.
* Specific requirements for both the client and server components.
* A breakdown of the project into two distinct parts (Client-Server System & Beginning HTTP).
* A defined grammar for HTTP/1.0 GET requests that the server must be able to interpret.
* Clear instructions regarding expected output and submission guidelines.
* A framework for understanding the iterative process of building a web server.