Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M....

33
Capitolo 3 - parte 3 Corso Reti ed Applicazioni Mauro Campanella

Transcript of Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M....

Page 1: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

Capitolo 3 - parte 3

Corso Reti ed ApplicazioniMauro Campanella

Page 2: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 2

Problema Conseguenza nel protocollo

Errori nei dati : controllo errori in ogni pacchetto scambio informazioni e messaggi di controllo

Errori nei messaggi : numeri di sequenza

Perdite di pacchetti : timer per ritrasmissione

Efficenza : finestra di trasmissione (Go-Back-N) intervallo grande di numeri di sequenza

Il modello è rappresentabile con una macchina a stati finiti, siaper il mittente, che per il ricevente

Elementi Base Trasporto Affidabile

Page 3: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3

Transmission control protocol (TCP) RFCs

793 TCP - la definizione originale - Sett. 1981879 TCP Maximum Segment Size (opt)896 Nagle’s algorithm (TCP_NODELAY socket option)1122 Requirements for Internet Hosts1323 TCP Extensions for high speed (window scale opt.)2018+2883 Selective ACKnowlegements (opt)2581+3390 TCP congestion control2582 New Reno modification to TCP's Fast Recovery2988 Computing TCP retransmission timer3042 Enhancing TCP's Loss Recovery

Page 4: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 4

Transmission Control Protocol (TCP)

Protocollo di trasporto che offre:- un servizio affidabile- orientato alla connessione- punto - punto- fra mittente e destinatario (end to end)- trasporta uno stream di byte (non riconosce oinserisce delimitazioni nel flusso di dati passatodall’applicazione)

- in grado di riordinare i dati nei segmenti ricevuti- in grado di eliminare i duplicati

Page 5: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 5

Transmission Control Protocol (TCP)

Effettua una trasmissione che èsempre creata full duplex :– flusso dati ed informazione è

bidirezionale nella stessaconnessione

Usa buffer di spedizione ericezione in modalità “slidingwindow”:

TCP sendbuffer

TCP receivebuffer

applicazione

Socket

TCP sendbuffer

TCP receivebuffer

applicazione

Socket

segmenti

segmenti

Page 6: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 6

Transmission Control Protocol (TCP)

MSS: maximum segment size:i dati dell’applicazione sono spezzati da TCP in segmentiche hanno MSS come massima dimensione (in byte).MSS è decisa all’inizio della connessione (attraverso unaesplicita opzione TCP o attraverso il valore di default)I dati sono spediti in segmenti di dimensione variabiledecisa da TCP di volta in volta, in base allo stato dellaconnessione.

Aknowledgement:lo scambio di informazione è basato su ACK, spediti dalricevente, normalmente con un leggero ritardo rispettoalla ricezione del pacchetto.

Page 7: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 7

Transmission Control Protocol (TCP)

Pipelining:realizzato attraverso l’esistenza di buffer con finestrascorrevole, di tipo Go-Back-N

Controllo di flusso:dato che, ai capi della connessione, i nodi forniscono unospazio di buffering finito, attraverso i messaggi di ACK vi èun’aggiustamento reciproco della velocità di trasmissione.

Controllo di congestione:la perdita di pacchetti è usata come indice di congestionee fa scattare meccanismi per diminuire la velocità ditrasmissione, prima dell’esaurimento dei buffer.

Page 8: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 8

Header TCP: parti note

dati

numero di sequenza

numero di acknowledgement

dimensione finestralungh.head.

Opzioni (se presenti)

0 8 16 24 3115

porta del mittente porta del destinatario

riservatiURG

ACK

PSH

RST

SYN

FIN

checksum num. sequenza urgenteIn paroleda 32 bit !(60 bytemassimo)

Page 9: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 9

TCP:segmento

perchecksum

dati

numero di sequenza

numero di acknowledgement

dimensione finestralungh.head.

Opzioni (se presenti)

porta del mittente porta del destinatario

riservatiURG

ACK

PSH

RST

SYN

FIN

checksum num. sequenza urgente

lunghezza TCPzero

32 bit indirizzo IP sorgente

protocollo

32 bit indirizzo IP destinazione

pseudoheader

Page 10: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 10

Header TCP: i numeri di sequenza

Tutti i numeri di sequenza indicano il numero d’ordine di un bytenel byte flow (dati), non il numero del segmento.

- Numero di sequenza (32 bit - circa 4 miliardi):punta al primo byte della parte dati del pacchetto.SYN e FIN sono un’eccezione e contano come un (1) byte.All’inizio di ogni connessione il primo valore è scelto “a caso”

- Acknowledge sequence number:indica il numero di sequenza del primo byte del prossimosegmento atteso.

- Urgent pointer:valido solo con il flag “URG” attivo. L’offset positivo dalnumero di sequenza del segmento corrente in cui vi è l’ultimobyte (o il seguente … ) dei dati urgenti (non l’inizio ! … )

Page 11: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 11

Header TCP: campi numeri di sequenza

dati

numero di sequenza

numero di acknowledgement

dimensione finestralungh.head.

Opzioni (se presenti)

0 8 16 24 3115

porta del mittente porta del destinatario

riservatiURG

ACK

PSH

RST

SYN

FIN

checksum num. sequenza urgente

Page 12: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 12

Esempio di scambio di numeri di sequenza

Nodo A Nodo B

Seq=42, ACK=79, data = ‘C’

Seq=79, ACK=43, data = ‘C’

Seq=43, ACK=80

L’utenteinvia‘C’

Nodo invial’ACK di

ricevuta di‘C’

Nodo invial’ACK di

ricevuta di‘C’, manda l’eco di ‘C’

tempo

Esempio con telnet

Page 13: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 13

Header TCP: FLAGS

dati

numero di sequenza

numero di acknowledgement

dimensione finestralungh.head.

Opzioni (se presenti)

0 8 16 24 3115

porta del mittente porta del destinatario

riservatiURG

ACK

PSH

RST

SYN

FIN

checksum num. sequenza urgente

ACK: numero diseq. ACK valido

URG: urgent data (raramente usato)

PSH: push dati(raramente usato)

RST, SYN, FIN:comandi connessione(reset, creazione, termine)

Page 14: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 14

Header TCP: Flags

Singoli bit on (valore = 1) od off (valore = 0) che fornisconoinformazioni di validità di altri campi dell’header o segnalanoeventi

URG : il puntatore contenuto nal campo urgent è valido

ACK : il numero di sequenza di acknowledge è valido

PSH : il ricevente deve passare l’informazione allo stratosuperiore prima possibile

RST : reset (e termine) della connessione

SYN : richiesta di sincronizzare i numeri di sequenza periniziare una connessione

FIN : richiesta di chiudere la connessione (in un senso)

Page 15: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 15

Header TCP: FLAGS

dati

numero di sequenza

numero di acknowledgement

dimensione finestralungh.head.

Opzioni (se presenti)

0 8 16 24 3115

porta del mittente porta del destinatario

riservatiURG

ACK

PSH

RST

SYN

FIN

checksum num. sequenza urgente

Page 16: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 16

Header TCP: Window SizeWindow Size:

il numero di byte, cominciando da quello nel campo di ACK, cheil mittente del pacchetto è disposto ad accettare.E’ un numero di 16 bit (massimo valore 65535), ma attraversol’opzione TCP di Window Scaling può essere aumentato fino a65535*214 (circa 1 GB)

receive buffer size

window size

RicevutiinviatoACK

ACK number

Page 17: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 17

receive window size

Header TCP: Send buffer Size

send buffer size

Inviati NONricevuto ACK

Inviati ericevuto

ACK liberi perriceveredalla

applicazione

Prontida

Inviare

Page 18: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 18

Header TCP: Opzioni

dati

numero di sequenza

numero di acknowledgement

dimensione finestralungh.head.

Opzioni (se presenti- MAX 40 bytes)

0 8 16 24 3115

porta del mittente porta del destinatario

riservatiURG

ACK

PSH

RST

SYN

FIN

checksum num. sequenza urgente

Page 19: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 19

TCP options

Composte di tre campi: tipo, lunghezza e dati (TLD).La lunghezza totale delle opzioni non può superare 40 byte.

Opzione tipo lungh. (byte) datiFine Opzioni 0 1 noNo Operation 1 1 noMaximum SegmentSize 2 4 MSS (2 byte)Window Scale 3 3 Shift (1 byte)Selective ACKpermesso 4 2 noSelective ACK 5 varia seq.numberTimestamp 8 10 Time (8 byte)

Page 20: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 20

TCP Options

tipo=0Fine listadelle opzioni

1 byte

tipo=1Nessunaoperazione

1 byte

tipo=2MaximumSegment Size

1 byte

lun=4

1 byte

valore MSS

2 byte

tipo=3Window scaleFactor

1 byte

lun=3

1 byte

valoreshift1 byte

Timestamp

tipo=8

1 byte

lun=10

1 byte

valore timestamp

4 byte

echo reply timestamp

4 byte

Page 21: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 21

TCP Apertura connessione

Stretta di mano a tre fasi (three way handshake):1: un nodo manda un segmento contenente

– il flag SYN (apertura attiva)– un proprio nuimero di sequenza iniziale– nessun dato– opzioni per MSS, Window scale, timestamp

2: il ricevente replica al SYN con un segmento con SYN ed ACK:– viene creato stato nel nodo (aperura passiva)– il ricevente sceglie il proprio numero di sequenza iniziale– invia la sua scelta di opzioni

3: Il primo nodo risponde con segmento con solo flag ACK ed eventuali primi dati

Page 22: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 22

client server

TCP Apertura connessione

stato

LISTEN

ESTABLISHED

SYN_RCVD

SYN 2347:2347 (0)ACK 14156

stato

CLOSED

SYN_SENT

SYN 14155:14155 (0)

ACK 2348 (0)ESTABLISHED

Page 23: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 23

TCP: Chiusura connessione

La chiusura deve essere esplicitaper ognuno dei due versi dellaconnessione.

Il primo nodo:

1: invia un segmento con FIN

2: riceve un segmento con l’ACK del FIN

Quindi, il secondo nodo:

3: invia un segmento con FIN

4: riceve ACK e chiude la connessione

Page 24: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 24

TCP: Chiususra connessione

ESTABLISHED ESTABLISHED

FIN

FIN_WAIT_1 ACKCLOSE_WAIT

FIN

LAST_ACK

FIN_WAIT_2

chiusuraattiva

chiusurapassiva

ACKTIME_WAIT

(2 MSL timeout)

CLOSED

Page 25: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 25

TCP Chiusura connessione

Lo stato finale di “TIME_WAIT” corrisponde ad un periodo diattesa di 2 Maximum Segment Lifetime (2 MSL).

2 MSL è scelto dalle diverse realizzazioni di TCP tra 30 secondie 2 minuti, anche se l’RFC iniziale specifica 2 minuti.

La permanenza in questo stato permette:- di reinviare un ACK nel caso vada perso- di bloccare la socket (cioè le coppie indirizzo, porta) per un

tempo sufficente a scartare segmenti duplicati ancora nellarete. Questo impedisce che una nuova “incarnazione” dellasocket possa prendere vecchi segmenti come nuovi.

Page 26: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 26

TCP: FSM tipica per un client

L’applicazione iniziala connessione TCP

L’applicazione iniziala chiusura della

connessione

invio SYN

ricevuto SYN+ACKinvia ACK

invioFIN

ricevuto ACKrimane in attesa

riceve FINinvia ACK

in attesa per2 MSL

Page 27: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 27

TCP: FSM tipica per un server

L’applicazione apreuna socket TCP

ricevuto SYNinvia SYN+ACK

riceve ACKnon invia nulla

ricevuto FINinvia ACK

invia FIN

riceve ACKnon invia nulla

Page 28: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 28

TCP FSM

Transizione normaleper un client

Transizione normaleper un server

appl: closesend: FIN

appl: send data

send: SYN

Page 29: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 29

TCP: timer principali

TCP mantiene 4 tipi di timer diversi per ogni connessione:

1 - timer per le ritrasmissioni usato nell’attesa di un ACK

2 - timer di persistenza usato per continuare a scambiare informazioni sulla dimensione della finestra anche quando uno dei due nodi ha dichiarato di non avere spazio disponibile

3 - timer di “keepalive” usato per evidenziare un reboot od un crash dell’altro nodo, anche se in una fase di quiete.

4 - timer di “2 MSL” usato quando la connessione è nello stato di TIME_WAIT

Page 30: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 30

TCP stima di RTT

La scelta del valore deltimeout è fondamentale perun buon funzionamento diTCP.

Deve variare da connessione aconnessione ed essere legatoal valore di RTT, ma:

se troppo breve:ritrasmissioni inutili.se troppo lungo:reazione lenta alla congestione

Stima di RTT (SampleRTT):tempo trascorso tra l’emissionedi un segmento ed il ricevimentodell’ACK relativo- ignorando le ritrasmissioni- ambiguità per perdita di ACK

SampleRTT varia da segmento asegmento. Si desidera avere unastima più affidabile basata suvarie misure.

Page 31: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 31

TCP stima del Round Trip Time

EstimatedRTT = (1- αααα)*EstimatedRTT + αααα*SampleRTT

Effettua il calcolo di un valore medio mobile, con pesoesponenziale.L’influenza dei campioni passati descresce in modoesponenziale. Il valore tipico è : αααα = 0.125

Il calcolo attuale del valore è basato su un algoritmo diVan Jacobson che modifica le specifiche iniziali di TCP.

Page 32: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 32

Esempio di calcolo di RTTRTT: gaia.cs.umass.edu to fantasia.eurecom.fr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Page 33: Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides04/Cap3-3.pdf · 2004-04-21 · M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 3 Transmission control

M. Campanella Corso Reti ed Applicazioni - Como 2004 Cap 3 - 3 pag. 33

TCP RTT e valore per il Timeout

Il valore del Timeout viene basato sulla stima del valoredell’RTT (EstimtedRTT) aumentato di un margine disicurezza. Per questo si usa anche la stima della variazionedell’RTT

TimeoutInterval = EstimatedRTT + 4*DevRTT

DevRTT = DevRTT + ββββ*( |SampleRTT-EstimatedRTT| - DevRTT )

(normalmente, ββββ = 0.25)

Finalmente l’intervallo di timeout è calcolato come: