Back to Projects
Network Applications Suite

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