La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Calcolo timeout. Per utilizzare completamente un collegamento: serve una finestra grande a sufficienza per riempire il pipeline; finestra >= larghezza.

Presentazioni simili


Presentazione sul tema: "Calcolo timeout. Per utilizzare completamente un collegamento: serve una finestra grande a sufficienza per riempire il pipeline; finestra >= larghezza."— Transcript della presentazione:

1 Calcolo timeout

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

3 Richiami: scambio interattivo e bulk transfer Lo scambio interattivo (Interactive Exchange) cerca di accumulare più dati possibili senza compromettere lesperienza 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 Il destinatario deve confermare la ricezione di tutti i segmenti. Il mittente imposta un timer inviando ogni segmento: se lACK 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.

5 TCP: scenari di ritrasmissione (1) Host A Seq=92, 8 byte data loss timeout Tempo Scenario di dati persi Host B X Seq=92, 8 byte data ACK=100 Host A Seq=92, 8 byte data ACK=100 loss timeout Tempo Scenario di ACK perso Host B Seq=92, 8 byte data ACK=100 X

6 TCP: scenari di ritrasmissione (2) Host A Seq=100, 20 byte data ACK=100 Seq=92 timeout Tempo Timeout prematuro, ACK cumulativi. Host B Seq=92, 8 byte data ACK=120 Seq=92, 8 byte data Seq=100 timeout ACK=120 Host A Seq=100, 20 byte data ACK=100 Tempo Host B Seq=100, 20 byte data ACK=100 Seq=92, 8 byte data Seq=100 timeout Seq=120, 20 byte data loss ACK duplicato, ritrasmissione veloce (in realtà prima di una ritasmissione veloce servono 3 ACK duplicati). X

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. Linfluenza 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) EstimatedRTT Più margine di sicurezza Media variabile pesata esponenzialmente. Ampia variazione in EstimatedRTT -> margine di sicurezza maggiore. Timeout = EstimatedRTT * DelayVarianceFactor Valore consigliato: Recommended DelayVarianceFactor = 2

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) Timeout = EstimatedRTT + 4*Deviation Deviation = Deviation + h*(Error – Deviation) Error = |SampleRTT-EstimatedRTT| 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

13 Timeout Jacobson/Karels (2) Valori consigliati: x =0.125 (maggiore delloriginale) Il timeout risponde più rapidamente ai cambiamenti in RTT. h = 0.25 FINE


Scaricare ppt "Calcolo timeout. Per utilizzare completamente un collegamento: serve una finestra grande a sufficienza per riempire il pipeline; finestra >= larghezza."

Presentazioni simili


Annunci Google