- Client connects to proxy and sends a URL.
- Proxy fetches file/page via HTTP and caches the most recent request.
- Proxy relays file to client.
- Only image files (e.g., .jpg) are required to be supported.
- Use TCP instead of UDP (not traditional TFTP).
- Extend TFTP (RFC 1350) where possible.
- Use TFTP Option Extension (RFC 2347) if applicable.
- Custom packet headers must be designed.
- Support binary (octet) mode only.
- Begin each session with:
- Sender ID
- Random number
- Use both values to derive a shared session key.
- Encrypt data using XOR or a better scheme.
- Use TCP-style sliding windows
- Implement TCP-style Retransmission Timeout (RTO) scheme.
- Add command-line option to simulate 1% packet drop.
- Received files should be stored in a temporary directory (e.g.,
/tmp). - Validate file content with
cmpor byte comparison.
Create a web page showing throughput under:
- At least 2 different host pairs
- Window sizes: 1, 8, 64
- With and without 1% simulated drop