Back to Projects

Network Applications Suite
This project implements a comprehensive suite of core network applications in Python using raw sockets and threading, without relying on external libraries. It showcases a practical understanding of networking protocols, packet-level operations, and low-level system programming.
The suite includes:
- ICMP Ping Client: Sends Echo Requests, measures RTT, detects packet loss, and parses replies
- Traceroute Client: Discovers network paths via TTL manipulation, supports ICMP and UDP, measures hop-by-hop latency, and resolves hostnames
- HTTP Web Server: Multi-threaded HTTP/1.1 server serving static files, handling GET requests, and supporting concurrent connections
- HTTP Proxy Server: Forwards requests/responses, implements caching with metadata management, and differentiates cache hits/misses
This project emphasizes robust, protocol-compliant implementations and demonstrates hands-on experience with network timing, concurrency, error handling, and packet inspection. It was developed as part of coursework in Computer Networks at Lancaster University.
Technologies Used
Python 3HTTP Protocol