This repository is dedicated to my final work for my bachelor's degree in computer science. It serves as a monorepo that contains custom-made apps and libraries for implementing and testing various ARQ (Automatic Repeat Request) protocols under different network conditions.
The primary goal of this project is to explore and evaluate the performance characteristics of different ARQ protocols. By implementing these protocols and subjecting them to diverse network conditions, we can gain valuable insights into their behavior and efficiency.
The ARQ protocols implemented in this repository include:
- Stop And Wait
- Go Back N
- Selective Repeat
These protocols represent a range of strategies for handling packet loss and ensuring reliable data transmission across unreliable networks.
The repository follows a monorepo structure, allowing for the management of multiple apps and libraries within a unified codebase. This approach facilitates code reuse, collaboration, and the organization of related components.
Commands for running iPerf:
iPerf client connecting to 127.0.0.1:2000 (2000 the default port of the UDP Server)
iperf -u -c 127.0.0.1 -p 2000
iPerf server listening on port 4000 (the default port where the UDP Client connects to)
iperf -u -s -p 4000