This tool is designed to help students and enthusiasts understand and visualize the congestion control algorithms in Transmission Control Protocol (TCP), specifically the Slow Start and Congestion Avoidance mechanisms.
This simulator provides an interactive way to learn about TCP's congestion control algorithms. By simulating packet transfers and visualizing the impact of network conditions, users can gain a deeper understanding of how TCP manages congestion to maintain efficient data transfer. The primary focus is on the Slow Start and Congestion Avoidance algorithms.
- Interactive Input: Users can enter the value of the
ssthresh
(slow start threshold) to customize the simulation. - Packet State Selection: Before each packet transfer, users can select whether the packet will be successfully delivered or lost.
- Real-Time Visualization: The simulator displays the sequence numbers of packets sent and acknowledgments received per unit RTT (Round-Trip Time).
- Educational Purpose: This project aims to enhance the learning experience for undergraduate students studying computer networks by providing a practical tool to visualize TCP behavior under different network conditions.
- Enter ssthresh: Start by entering the desired value for
ssthresh
in the input field. - Select Packet State: Before each packet transfer, select the future state of the packet as either "Delivered" or "Lost".
- Simulate: The simulator will run the selected TCP algorithm (Slow Start or Congestion Avoidance) and display the results in real-time, showing the sequence numbers and acknowledgments.
Visit the deployed site here to start simulating TCP congestion control algorithms.
The simulator is built using React.js for a responsive and interactive user experience. The logic for the TCP algorithms is implemented in JavaScript to provide real-time feedback and visualization.
To get started with the project locally:
-
Fork and Clone the Repository:
git clone https://github.com/Nandika-A/Congestion-Control-Simulator.git
-
Install Dependencies:
npm install (use project name as tcp-congestion)
-
Run the Simulator:
cd tcp-congestion npm start
-
Open in Browser: Open http://localhost:3000 in your web browser to start using the simulator.
This project was created to support educational efforts in computer networking courses, helping students visualize and understand TCP congestion control algorithms.