Modelli di latenza Modellazione della latenza (1) • Non è semplice stabilire quanto tempo serve per ricevere un oggetto da un server remoto dopo aver inviato una richiesta. • Anche se si conoscono la BW e il round trip time, il tempo di trasferimento effettivo dipende dal profilo di perdita e dalla advertised window del destinatario. Modelliamo slow start e congestion avoidance separatamente e poi alterniamo tra i due in base al profilo di perdita. Modellazione della latenza (2) Se non vi sono perdite vanno considerati due casi. • Slow Sender (finestra grande) L’invio è ancora in corso quando torna l’ACK: - tempo per inviare la finestra > tempo per inviare il primo ACK; - W*S/R > RTT + S/R • Fast Sender (finestra piccola) Aspetta ACK per inviare altri dati: - tempo per inviare la finestra < tempo per inviare il primo ACK; - W*S/R < RTT + S/R • R: bit rate. • W: segmenti nella finestra di congestione fissa. • S: MSS (in bit). Modellazione latenza: finestra statica O: dimensione oggetto da trasmettere (in bit) Numero di finestre: K = O/WS Slow Sender Fast Sender • Latenza: • Latenza: 2RTT+ O/R 2RTT+O/R +(K-1)(S/R+RTT-WS/R) Tempo di attesa dell’ACK tempo per trasmettere la finestra. Modellazione latenza: slow start • Ora supponiamo che la finestra cresca secondo lo slow start (NON slow start + congestion avoidance). • La latenza per un oggetto di dimensione O è: P è il numero di volte che TCP si blocca lato mittente per aspettare che arrivi un ACK e riapra la finestra: P = min {Q, K - 1} Q è il numero di volte che il mittente si arresterebbe se l’oggetto fosse di dimensioni infinite. Di solito vale 0. K è il numero di finestre necessarie per coprire l’oggetto. S/R è il tempo per trasmettere un segmento. RTT+S/R è il tempo per ricevere l’ACK di un segmento. Esempio • O/S = 15 segmenti. • K = 4 finestre. • Q = 2. • P = min{K-1,Q} = 2. • Mittente si blocca P = 2 volte. (1) Esempio (2) Calcolo della latenza totale • S/R = tempo per trasmettere un segmento. • RTT+ S/R = tempo per ricevere l’ACK di un segmento. • 2k-1(S/R) = tempo per trasmettere la k-esima finestra. • [RTT+ S/R - 2k-1(S/R)] = tempo di blocco (stallTime) dopo la k-esima finestra. • Latenza totale per un oggetto O: P O latency 2 RTT stallTime p R p 1 P O S S 2 RTT [ RTT 2 k 1 ] R R k 1 R O S S 2 RTT P[ RTT ] ( 2 P 1) R R R (1) Calcolo della latenza totale (2) FINE