Skip to content

Un simulatore MATLAB per il controllo della congestione TCP, con interfaccia grafica interattiva e supporto per le varie tecniche di controllo della trasmissione

Notifications You must be signed in to change notification settings

emanueleivn/TCP-congestion-control-simulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‘ TCP Congestion Control Simulator

Benvenuto nel repository TCP Congestion Control Simulator, un'implementazione MATLAB per la simulazione e la visualizzazione dell'evoluzione della finestra di congestione (Congestion Window - CWND) in un ambiente TCP.


πŸ“Œ Caratteristiche

βœ… Simulazione dei meccanismi di controllo della congestione TCP, tra cui:

  • Slow Start
  • Congestion Avoidance
  • Fast Recovery
  • Timeout Handling

βœ… Interfaccia Grafica Interattiva, con:

  • Grafico dell'andamento della Congestion Window (CWND)
  • Controlli per avviare/arrestare la simulazione
  • Pulsanti per simulare perdita di pacchetti e timeout

βœ… Parametri aggiornati in tempo reale, come:

  • Round Trip Time (RTT)
  • Acknowledgment (ACK e Dup ACK)
  • Stato del buffer e soglia di congestione

πŸ“‚ Struttura del Repository

πŸ“ TCP_Congestion_Simulator
β”œβ”€β”€ congestione_TCP.m β†’ Script MATLAB principale
β”œβ”€β”€ README.md β†’ Documentazione
└── LICENSE β†’ Licenza MIT


πŸš€ Installazione e Esecuzione

1️⃣ Prerequisiti

πŸ”Ή MATLAB (versione R2018 o successiva consigliata)

2️⃣ Clonazione del Repository

git clone https://github.com/tuo-username/TCP_Congestion_Simulator.git
cd TCP_Congestion_Simulator

3️⃣ Avvio della Simulazione

Apri MATLAB e naviga nella cartella del progetto, quindi esegui:

congestione_TCP

πŸŽ›οΈ Interfaccia Utente

La GUI fornisce:

  • Grafico dell'andamento della Congestion Window (CWND)
  • Etichette informative su RTT, ACK ricevuti, stato della finestra
  • Pulsanti interattivi per controllare la simulazione

πŸ”Ή Start β†’ Avvia la simulazione
πŸ”Ή Stop β†’ Interrompe la simulazione
πŸ”Ή Loss β†’ Simula la perdita di pacchetti (3 duplicati ACK)
πŸ”Ή Timeout β†’ Simula un timeout (CWND reset a 1)


πŸ”¬ Principio di Funzionamento

Il codice implementa una simulazione della congestione TCP basata su:
βœ” Slow Start: crescita esponenziale di CWND fino alla soglia (threshold)
βœ” Congestion Avoidance: crescita lineare della CWND oltre la soglia
βœ” Fast Recovery: se si ricevono 3 duplicate ACK, CWND Γ¨ ridotto e aumentato progressivamente
βœ” Timeout Handling: CWND Γ¨ resettato a 1 e riparte in Slow Start

La simulazione gestisce inoltre RTT variabile, buffer overflow e l'uscita da Fast Recovery.


πŸ› οΈ Possibili Estensioni

βœ… Aggiunta del supporto per TCP Reno e TCP Tahoe
βœ… Implementazione della trasmissione selettiva (SACK)
βœ… Simulazione di reti con piΓΉ flussi TCP concorrenti

Se vuoi contribuire, sentiti libero di aprire una Pull Request!


πŸ“œ Licenza

Distribuito sotto licenza MIT. Vedi il file LICENSE per dettagli.

πŸ“Œ TCP Congestion Control Simulator – Esplora il comportamento della congestione TCP in MATLAB! πŸš€

About

Un simulatore MATLAB per il controllo della congestione TCP, con interfaccia grafica interattiva e supporto per le varie tecniche di controllo della trasmissione

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages