Flusso e congestione TCP Modulo 2 – U.D. 5 – Lez. 9 Flusso e congestione TCP Ernesto Damiani – Sistemi di Elaborazione dell'Informazione
Controllo di flusso TCP (1) Il mittente cerca di non sovraccaricare i buffer del destinatario trasmettendo troppo e troppo in fretta. RcvBuffer = dimensione complessiva del buffer. RcvWindow = quantità di spazio libero rimasto nel buffer. Buffer destinatario
Controllo di flusso TCP (2) Destinatario: informa esplicitamente il mittente dello spazio buffer disponibile che cambia dinamicamente. Campo RcvWindow nel segmento TCP. Mittente: tiene i dati trasmessi che non hanno avuto conferma di ricezione compresi nel più recente RcvWindow ricevuto.
Controllo della congestione TCP Nessun feedback esplicito dal livello IP. Il destinatario stima la congestione misurando ritardi o perdite di pacchetti. Dimensioni della finestra limitate: dall’advertised window del mittente usata nel controllo di flusso; da una “finestra di congestione”. ActualWindow <= min (ReceiverAdvertised Window, Congestion Window)
Controllo della congestione TCP: tecniche Slow Start (Incremento Moltiplicativo) Per ogni ACK ricevuto, la finestra di congestione raddoppia fino ad arrivare alla soglia. Non inviare tutti i dati corrispondenti all’intera advertised window del mittente. Iniziare con una finestra di congestione di 1 o 2 pacchetti e usare l’advertised window del mittente come soglia superiore. Congestion Avoidance (Incremento Additivo) Per ogni calcolo di RTT, la finestra di congestione aumenta di 1.
Slow Start e Congestion Avoidance Due variabili importanti: Congwin = la finestra di congestione corrente; Threshold = limite tra incremento moltiplicativo e incremento additivo. Al di sotto della threshold si adotta la slow start; al di sopra della threshold si usa la congestion avoidance. Nella slow start, Congwin cresce geometricamente; nella congestion avoidance Congwin cresce additivamente. N.B: Congwin e Threshold varieranno nel corso del tempo di vita di una connessione TCP!
Metodo originale di TCP: solo con il controllo del flusso Sorgente Destinazione …
Slow Start: incremento moltiplicativo Più lento del metodo originale. Più veloce dell’incremento additivo. Sorgente Destinazione …
Congestion Avoidance: incremento additivo Per ogni RTT viene aggiunto 1 segmento MSS alla finestra di congestione. Tipicamente eseguito in piccoli incrementi ad ogni ACK invece di un singolo incremento pari all’intero MSS al termine degli ACK relativi all’intera finestra. Sorgente Destinazione
Limiti dell’incremento additivo (1) Idealmente Il mittente trasmette il più velocemente possibile (Congwin assume il valore più grande possibile) senza perdite. In realtà L’incremento additivo non può andare avanti per sempre. La finestra arriva continuamente a un valore troppo grande e poi bisogna diminuirlo. N.B: per verificare di essere arrivati al limite controllare la larghezza di banda disponibile.
Limiti dell’incremento additivo (2) Un certo livello di perdita è inevitabile. Il mittente incrementa Congwin fino a causare perdite (bordo della congestione). Perdita: il mittente decrementa di colpo Congwin, poi ricomincia ad incrementarlo per testare il limite. FINE