Calcolo timeout Richiami pieno utilizzo Per utilizzare completamente

  • Slides: 13
Download presentation
Calcolo timeout

Calcolo timeout

Richiami: pieno utilizzo Per utilizzare completamente un collegamento: • serve una finestra grande a

Richiami: pieno utilizzo Per utilizzare completamente un collegamento: • serve una finestra grande a sufficienza per riempire il pipeline; • finestra >= larghezza di banda * round trip time.

Richiami: scambio interattivo e bulk transfer • Lo scambio interattivo (Interactive Exchange) cerca di

Richiami: scambio interattivo e bulk transfer • Lo scambio interattivo (Interactive Exchange) cerca di accumulare più dati possibili senza compromettere l’esperienza interattiva: − ACK ritardato − Algoritmo di Nagle • Le tecniche di bulk transfer per il trasferimento di grandi quantità di dati cercano di utilizzare appieno il collegamento (lo scambio interattivo non ha la possibilità di farlo): − Advertised Window del destinatario − Persist Timer

Richiamo: timeout e ritrasmissione • Il destinatario deve confermare la ricezione di tutti i

Richiamo: timeout e ritrasmissione • Il destinatario deve confermare la ricezione di tutti i segmenti. • Il mittente imposta un timer inviando ogni segmento: se l’ACK non è arrivato prima che il timer scada, il mittente ritrasmetterà il segmento. • Ritrasmissione adattativa: il valore del timer è calcolato come una funzione del round trip time medio e varianza.

TCP: scenari di ritrasmissione Host A 2, 8 by e data timeout X loss

TCP: scenari di ritrasmissione Host A 2, 8 by e data timeout X loss Seq=9 2 Host B Seq=9 , 8 byt e data 00 =1 ACK Tempo Scenario di dati persi timeout Seq=9 2 Host A Host B X loss Seq=9 te dat a 100 = ACK 2, 8 by te dat a 00 =1 ACK Tempo Scenario di ACK perso (1)

TCP: scenari di ritrasmissione Host A Host B Seq=9 2, 8 by te dat

TCP: scenari di ritrasmissione Host A Host B Seq=9 2, 8 by te dat Seq= a 100, 2 0 byt e dat a 100 = K 20 1 AC K= C A Seq=9 2, 8 by te dat a Seq=9 Seq=100 timeout Seq=92 timeout Host A 0 AC 12 K= Timeout prematuro, ACK cumulativi. 2, 8 by te dat 100, 2 0 Seq= byte 120, 2 0 a data byte 00 =1 K AC X loss data 0 0 =1 K AC Seq=1 00, 20 Tempo Host B byte d ata ACK duplicato, ritrasmissione veloce (in realtà prima di una ritasmissione veloce servono 3 ACK duplicati). (2)

Valore di timeout del TCP Si deve basare su RTT ma essere maggiore di

Valore di timeout del TCP Si deve basare su RTT ma essere maggiore di esso per evitare un timeout prematuro, visto che RTT può variare. Limiti • Troppo breve Timeout prematuro = ritrasmissioni inutili. • Troppo lungo Reazione lenta alla perdita di segmenti.

Valutazione del Round Trip Time Sample. RTT • Prende il tempo quando il segmento

Valutazione del Round Trip Time Sample. RTT • Prende il tempo quando il segmento viene inviato; quando riceve ACK, calcola: RTT = current. Time – sent. Time − Non c’è corrispondenza 1: 1 tra segmenti inviati e ACK. − Ignora ritrasmissioni, segmenti ACK cumulativi (non fa parte della specifica originale). • Può variare bruscamente, bisogna valutare RTT in modo “più continuo”. − Si usano molte misure recenti, non solo il Sample. RTT corrente.

Round Trip Time e Timeout Estimated. RTT = (1 -x)*Estimated. RTT + x*Sample. RTT

Round Trip Time e Timeout Estimated. RTT = (1 -x)*Estimated. RTT + x*Sample. RTT • Media variabile pesata esponenziale. • L’influenza di un campione dato diminuisce velocemente ed esponenzialmente. • Valore tipico di x: 0. 1 (90% peso a media accumulata; 10% a nuova misura). • x con valore superiore significa che si adatta più rapidamente a nuove condizioni: – accettabile se c’è una variazione reale di RTT; – non accettabile se porta a reagire a cambiamenti transitori.

Impostazione del timeout • Media variabile pesata esponenzialmente. • Ampia variazione in Estimated. RTT

Impostazione del timeout • Media variabile pesata esponenzialmente. • Ampia variazione in Estimated. RTT -> margine di sicurezza maggiore. Timeout = Estimated. RTT * Delay. Variance. Factor Valore consigliato: Recommended Delay. Variance. Factor = 2 Estimated. RTT Più “margine di sicurezza” (1)

Impostazione del timeout Punti di attenzione • Si osservano dei problemi in presenza di

Impostazione del timeout Punti di attenzione • Si osservano dei problemi in presenza di ampie oscillazioni di RTT. Suggerimento • Meglio se il timeout si basa sia sulla media sulla varianza delle misurazioni di RTT. (2)

Timeout Jacobson/Karels (1) Basato su media e varianza • Test statistico di 2° livello.

Timeout Jacobson/Karels (1) Basato su media e varianza • Test statistico di 2° livello. • La deviazione media è una buona approssimazione della deviazione standard, ma è più facile da calcolare (non c’è radice quadrata ). Estimated. RTT = (1 -x)*Estimated. RTT + x*Sample. RTT Error = |Sample. RTT-Estimated. RTT| Deviation = Deviation + h*(Error – Deviation) Timeout = Estimated. RTT + 4*Deviation

Timeout Jacobson/Karels Valori consigliati: • x =0. 125 (maggiore dell’originale) Il timeout risponde più

Timeout Jacobson/Karels Valori consigliati: • x =0. 125 (maggiore dell’originale) Il timeout risponde più rapidamente ai cambiamenti in RTT. • h = 0. 25 FINE (2)