vuoi
o PayPal
tutte le volte che vuoi
Calcolo dell'RTT e finestra scorrevole
Applicando la formula inversa possiamo calcolare l'RTT:
RTT = L / TSwindow
Sostituiamo:
RTT = 20KB / 2MB/s
Per effettuare la divisione in modo corretto trasformo MB/s in KB/s:
32MB/s = 2*10 KB/s
Quindi:
RTT = 20KB / 2000KB/s = 0,01 s = 10ms
Avere una finestra scorrevole è molto comune nel sistema di trasporto, una finestra scorrevole permette di poter gestire al meglio il flusso, di diminuire la velocità del canale quando la rete è in sovraccarico o il destinatario possiede il buffer quasi o completamente pieno; ed aumentare la velocità di trasmissione una volta che il buffer si sia liberato e la procedura di lettura dei pacchetti sia più scorrevole. È il ricevitore ad imporre la dimensione massima della finestra, indicandola negli ACK di ritorno. Questo valore è appunto dinamico, dipende dalla coda (i dati ricevuti e non ancora letti) e dal tempo di elaborazione degli stessi.
In classe abbiamo visto la formula per cui la velocità
massima di trasmissione risultasse dal rapporto framassimo sequency number e il tempo di vita di un TPDU nella rete (ciò che stiamo cercando):
TS = SN / MSLmax max
È quindi possibile applicare la formula inversa per ricavare l'MSL:
MSL = SN / TSmax max
Ci manca SN: lo si trova elevando 2 all'SN, il risultato sarà il numero di byte diversi utilizzati nellamaxcomunicazione come intestazione al pacchetto:
SN SN 24SN = 2 byte = 2 = 2 byte = 16777216 bytemax
Ammettendo TS come TS max: 6MSL = 16777216B / 2MB/s = 16777216B / 2*10 B/s = 8,388608 s = 8,39s
[continua nella pagina successiva]3
L'RTT è variabile a seconda delle specifiche della comunicazione ma generalmente possiamo definirlocosì:
Sono rappresentate due frecce, una per l'andata del segmento e l'altra per il ritorno dell'ACK, le dueparti che compongono il Round Trip Time.
Andata:
Ipotizziamo che in andata il primo pacchetto sia di 5,5KB, ogni segmento, comprensivo
dell'header di 20 byte, deve rientrare in un pacchetto IP (rete sul quale si appoggia il TCP) che al massimo può essere di 65535 byte. Ritorno: Sicuramente in questo caso la grandezza del file da ritrasmettere sarà meno pesante, non avendo payload alto: 0,5KB (ripeto, molto più piccolo rispetto ai 5,5KB di andata perché per forza di cose un ACK pesa di meno rispetto ad un pacchetto con data). Notiamo nel disegno la presenza di due asterischi: Il tempo di propagazione: nel livello di trasporto si parla di canali virtuali, ma comunque si appoggia ad una rete reale, formata da canali reali; quindi il segmento impiegherà un tempo di propagazione x a seconda della distanza tra l'utente (A) e l'altro capo della trasmissione (B), questo tempo non differisce tra andata e ritorno, è una grandezza fisica invariabile. Ipotizzo sia di 3 millisecondi: (nel caso in cui si utilizzasse un canale come la fibra ottica con questo tempo di propagazione si)percorrerebbero 3*10m/s * 0,003 s = 900000 m, 900km, circa la distanza tra Milano e Parigi)
Aggiungendo (in giallo) il possibile ritardo di coda del segmento e di elaborazione dei dati di 1ms nellato del destinatario.
La formula per individuare il tempo di trasmissione del file è costituita da dimensione del pacchetto / velocità del canale di trasmissione:
t = L / TStras pack
I tempi di viaggio saranno quindi per l'andata: trasSeg5,5 KB / 2 MB/s = 5,5 KB / 2000 KB/s = (5,5/2000) s = 0,00275s = 2,75ms = TE per il ritorno: trasAck0,5 KB / 2 MB/s = 0,25ms = T
In totale, un esempio di composizione del Round Trip Time calcolato in precedenza, sulla base di dati precedentemente segnalati (come la velocità del canale):
trasSeg trasAckT + T + 2*T + T = RTTprop rit[ 2,75 + 0,25 + 3 + 3 + 1 ] ms = 10 ms = RTTA B
Nel caso in cui si utilizzi una sliding window la quantità di dati spediti e quindi la dimensione dei segmenti sarebbe variabile a seconda della variazione della
La velocità di trasmissione che rispecchierà le esigenze di maggior apertura o chiusura della finestra. Il Round Trip Time, la dimensione del segmento di file spedito in un RTT e la dimensione del file intero dovrebbero definire il tempo in cui il file è trasferito da un punto all'altro della connessione, in questo caso il file è la mail di 20MB (Osservazione: una email di 20MB, è una email pesante, può essere dovuto agli allegati):