La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Flusso TCP (parte II). Trasferimento di grandi quantità di dati (1) Spesso il mittente deve inviare grandi quantità di dati. Genera un numero elevato.

Presentazioni simili


Presentazione sul tema: "Flusso TCP (parte II). Trasferimento di grandi quantità di dati (1) Spesso il mittente deve inviare grandi quantità di dati. Genera un numero elevato."— Transcript della presentazione:

1 Flusso TCP (parte II)

2 Trasferimento di grandi quantità di dati (1) Spesso il mittente deve inviare grandi quantità di dati. Genera un numero elevato di segmenti nell’unità di tempo. Il destinatario può avere problemi a seguire il passo del mittente, ad esempio perché l’applicazione a cui sono diretti i dati li legge lentamente (es. perché deve interagire con l’utente). Soluzione Usare l’advertised window per rallentare il mittente. Con finestre di piccole dimensioni si possono verificare dei problemi.

3 Se l’applicazione ricevente risulta lenta nel consumare i dati, lo stack TCP ricevente invierà gli ACK dei dati ricevuti ma specificherà una finestra di dimensioni nulle. Il mittente continua a mandare segmenti di lunghezza 1 byte anche se la finestra è 0 per dare al ricevente l’opportunità di rispondere con un ACK che riapre la finestra. Quando la finestra si riapre (cioè l’applicazione legge i dati dai buffer), il ricevente invia un ACK di “window update”. Trasferimento di grandi quantità di dati (2)

4 Trasferimento di grandi quantità di dati (3) Host A Host B Seq=1, 1024 bytes data ACK=3073, win 0 Seq=1025, 1024 bytes data Seq=2049, 1024 bytes data ACK=1, window 3072 ACK=3073, win 3072 Tempo

5 Messaggio window update Se il messaggio window update va perso: il destinatario aspetta invano i dati; il mittente non può inviare nulla. Soluzione 1.Impostare il timer sul lato destinatario dopo aver inviato window update. 2.Se il mittente non risponde, ritrasmettere.

6 Persist timer TCP (1) Il mittente imposta il persist timer quando la dimensione della finestra è uguale a 0. Quando il timer scade, invia un messaggio “window probe” (pacchetto TCP con 1 byte di dati). Se il destinatario ha ancora una finestra 0, invierà un ACK, ma l’ACK non conterà l’1 byte “illegale” appena inviato.

7 Persist timer TCP (2) Host B Seq=100, 100 byte data ACK=200, win 0 Seq=200, 1 byte data ACK=200, win 0 Host A Tempo

8 Sindrome “silly window” Si verifica quando su una connessione vengono scambiate piccole quantità di dati invece di grosse quantità. Il mittente sa solo che può inviare X byte di dati. Il destinatario in realtà ha la capacità di accettare 2X, ma non ha avuto la possibilità di annunciarla; siccome accetta X byte, può annunciare solo ancora X. Soluzione a)Il destinatario non annuncia finestre piccole, ma aspetta fin che se ne aprono di più grandi. b)Il mittente evita di inviare dati finchè non ne accumula quantità maggiori.

9 Il destinatario non annuncia una finestra più grande fin che la finestra non può essere aumentata del minimo tra: –un segmento di dimensioni reali (MSS); –metà dello spazio buffer del destinatario. Il mittente aspetta a trasmettere fin che può inviare uno tra i seguenti: –un segmento di dimensioni reali (MSS); –almeno metà della finestra più grande mai annunciata dal destinatario; –tutto il buffer. FINE Come evitare la sindrome “silly window”


Scaricare ppt "Flusso TCP (parte II). Trasferimento di grandi quantità di dati (1) Spesso il mittente deve inviare grandi quantità di dati. Genera un numero elevato."

Presentazioni simili


Annunci Google