TCP Echo Client/Server
This project implements a TCP Echo Client and Server in Python using sockets. The goal was to measure Round Trip Time (RTT) and Throughput under different message sizes and server delays. I ran tests locally and across different servers (e.g., csa1, csa2) and plotted performance metrics.
Performance Plots

Localhost: csa1

Client: csa1, Server: csa2

Localhost: csa2
Project Documentation
Click to enlarge
CS455 Programming Assignment 1 - Click to view full screen
Key Findings
- RTT remains constant across message sizes but increases linearly with server‐induced delay.
- Throughput increases with message size regardless of delay, as larger payloads amortize the RTT.
- With non‐zero server delay, RTT becomes the dominant bottleneck in perceived performance.
- Cross‐server communication introduces variability, especially in throughput consistency.
Code Samples
Due to course policy, code samples are not available for public sharing.
Technologies Used
- Python (sockets, time module)
- Matplotlib for plotting RTT and Throughput
- Manual testing over csa1 and csa2 environments