TCP Proxy

Computer Networking Software Development Python

Role

Student Programmer

Organization

Computer Networks — UC Davis

Tools Used

Python, Socket API, JSON

A computer setup with a monitor displaying code, a laptop with green text on the screen, external storage devices, and a small white server or hard drive in a dark environment.

Home / Technical Projects / TCP Proxy

A systems-level programming project to simulate client-server interaction using a proxy. Designed to demonstrate understanding of socket communication and network request handling.

Background

This project was made during my Computer Networks class at UC Davis which implements a ping-pong client-server model using TCP sockets with an intermediate proxy server. Instead of direct communication between the client and server, all messages must pass through the proxy.

Overview

  • The client sends a 4-character string (not limited to just "ping" or "pong") to the proxy.

  • The proxy forwards the request to the destination server (unless the server's IP is blocklisted).

  • The server responds to the message.

  • The proxy forwards the response back to the client.

Requirements

The project successfully demonstrated real-time, routed communication via a custom-built TCP proxy. The server responded accurately to various client inputs, and blocklisted IPs were correctly handled. This served as a foundation for understanding packet routing and network security basics.

Outcome

Artifact