Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Calcolo timeout Modulo 2 - U.D. 5 - Lez. 6
Ernesto Damiani – Sistemi di elaborazione dell'informazione
2
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.
3
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
4
Richiamo: timeout e ritrasmissione
Modulo 2 - U.D. 5 - Lez. 6 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. Just makes sense if send a fax and want to know it gets there ask for an acknowledgeent of receipt wait for answer or acknowledgment if don’t hear anything for some time, resend Ernesto Damiani – Sistemi di elaborazione dell'informazione
5
TCP: scenari di ritrasmissione (1)
Modulo 2 - U.D. 5 - Lez. 6 TCP: scenari di ritrasmissione (1) Host A Host A Host B Host B Seq=92, 8 byte data Seq=92, 8 byte data X ACK=100 loss timeout timeout X loss Seq=92, 8 byte data Seq=92, 8 byte data ACK=100 ACK=100 Tempo Tempo Scenario di dati persi Scenario di ACK perso Ernesto Damiani – Sistemi di elaborazione dell'informazione
6
TCP: scenari di ritrasmissione (2)
Host A Host A Host B Host B Seq=92, 8 byte data Seq=92, 8 byte data Seq=100, 20 byte data Seq=100, 20 byte data X loss Seq=92 timeout Seq=120, 20 byte data ACK=100 Seq=100 timeout ACK=120 Seq=100 timeout ACK=100 Seq=92, 8 byte data ACK=100 ACK=120 Seq=100, 20 byte data Tempo Tempo ACK duplicato, ritrasmissione veloce (in realtà prima di una ritasmissione veloce servono 3 ACK duplicati). Timeout prematuro, ACK cumulativi.
7
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.
8
Valutazione del Round Trip Time
SampleRTT Prende il tempo quando il segmento viene inviato; quando riceve ACK, calcola: RTT = currentTime – sentTime 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 SampleRTT corrente .
9
Round Trip Time e Timeout
EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT 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.
10
Impostazione del timeout (1)
Media variabile pesata esponenzialmente. Ampia variazione in EstimatedRTT -> margine di sicurezza maggiore. Timeout = EstimatedRTT * DelayVarianceFactor Valore consigliato: Recommended DelayVarianceFactor = 2 EstimatedRTT Più “margine di sicurezza”
11
Impostazione del timeout (2)
Punti di attenzione Si osservano dei problemi in presenza di ampie oscillazioni di RTT. Suggerimento Meglio se il timeout si basa sia sulla media sia sulla varianza delle misurazioni di RTT.
12
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 ). EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT Error = |SampleRTT-EstimatedRTT| Deviation = Deviation + h*(Error – Deviation) Timeout = EstimatedRTT + 4*Deviation
13
Timeout Jacobson/Karels (2)
Valori consigliati: x =0.125 (maggiore dell’originale) Il timeout risponde più rapidamente ai cambiamenti in RTT. h = 0.25 FINE
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.