Lezione 20TCP, algoritmi parte 2
In questa pagina 3
Data: mercoledì 9 aprile 2025 · Fonte: slide del corso Internet, UniPD (TCP: algoritmi, parte 2)
Argomenti trattati
- Tahoe: ritrasmissione rapida (fast retransmit) dopo dupACK, ripartenza con cwnd come in un timeout.
- Reno: recupero rapido (fast recovery): ssthresh , cwnd , a ogni dupACK successivo, a un ACK nuovo cwnd e congestion avoidance.
- NewReno: variabile recover, ACK parziali (), recupero di più perdite nella stessa finestra; esempio numerico con due pacchetti persi.
- SACK: opzione TCP (kind 4 e 5), blocchi di byte ricevuti (fino a , o 3 con i timestamp), algoritmo con la variabile pipe.
- Confronto Tahoe, Reno, NewReno, SACK: quattro perdite in una finestra, tabella riassuntiva.
- Esercizi di trasferimento TCP con slow start, congestion avoidance, perdita e timeout, flusso continuo e finestra del ricevitore.
Teoria
- TCP - controllo di congestioneLa congestione nasce quando collegamenti veloci alimentano un collegamento lento: le code dei router si riempiono, i pacchetti si perdono o ritardano e, nel caso peggiore, la rete collassa (quasi solo ritrasmissioni). TCP controlla la propria finestra di congestione cwnd con il feedback delle perdite (timeout o tre ACK duplicati): slow start (cwnd raddoppia a ogni RTT) fino alla soglia ssthresh, poi congestion avoidance (+1 MSS per RTT); a ogni perdita ssthresh = W/2. Le varianti si distinguono per come reagiscono ai tre dupACK: Tahoe riparte da cwnd = 1 dopo la ritrasmissione rapida; Reno usa il fast recovery (ssthresh = cwnd/2, cwnd = ssthresh + 3, +1 per ogni altro dupACK); NewReno gestisce gli ACK parziali e recupera più perdite nella stessa finestra; SACK riscontra i blocchi ricevuti e ritrasmette solo quello che manca.TCP - controllo di congestione → — Tahoe, Reno, NewReno, SACK, grafico di cwnd
- TCP - connessione, affidabilità e controllo di flussoTCP (Transmission Control Protocol) è il protocollo di trasporto con connessione e affidabile: trasforma il servizio senza connessione e inaffidabile di IP in un flusso di byte ordinato, senza errori né duplicati. La connessione si apre con l'handshake a tre vie (SYN, SYN+ACK, ACK) e si chiude con tre o quattro segmenti (FIN). I byte sono numerati: il numero di sequenza è quello del primo byte del segmento, il numero di ACK (cumulativo) è il prossimo byte atteso. Il mittente può inviare $\min(\text{rwnd},\text{cwnd})$ byte non ancora confermati; rwnd (finestra del ricevitore, in un campo di 16 bit) è il controllo di flusso. L'errore si gestisce con checksum, ACK, timeout di ritrasmissione (RTO) e ritrasmissione rapida dopo tre ACK duplicati. Per usare tutto il canale la finestra deve valere almeno il prodotto banda-ritardo (BDP); il throughput massimo è $\text{MSS}\cdot W_{\max}/\text{RTT}$.TCP - connessione, affidabilità e controllo di flusso → — ritrasmissione rapida e dupACK
Esercizi
- Esercizio - TCP con finestra del ricevitore di 4 segmenti su tre collegamenti
- Esercizio - TCP con perdita di finestra e riduzione di rwnd
- Esercizio - capacita e ritardo di propagazione di un collegamento con due messaggi echo
- Esercizio - TCP e stop-and-wait su tre collegamenti, messaggio da 100 kB
Lezione precedente: Lezione 18 · TCP, algoritmi parte 1 · Lezione successiva: Lezione 21 · Modello di TCP, tasso di invio parte 1