Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Modalità di invio dei riscontri (ACK) nell'entità TCP ricevente
L'entità TCP ricevente può emettere i riscontri (ACK) secondo due modalità:
- Immediata: appena vengono accettati i dati, emette immediatamente un segmento vuoto (senza dati) che contiene l'appropriato numero di riscontro.
- Cumulativa: appena vengono accettati i dati, tiene memoria della necessità di inviare un riscontro, ma aspetta un segmento in uscita nel quale inserirlo. Per evitare lunghi ritardi, attiva un timer di finestra. Se il tempo di questo timer si esaurisce prima che venga inviato un riscontro, emette un segmento vuoto che contiene l'appropriato numero di riscontro.
Supponiamo di avere la trasmissione di un pacchetto di L bit:
- Impossibile che RTO < RTT -> non si può impostare il timer ad un tempo minore dell'effettivo tempo di trasmissione, perché allo scadere del timer non si riceverebbe il riscontro e si avrebbero ritrasmissioni non necessarie (timeout prematuro).
- Deve essere RTO >= ...
segmento correttamente trasmesso.RTT -> Se RTO >> RTT si avrebbe un uso inefficiente delle risorse e una reazione lenta alla perdita di segmenti3. Il settaggio ottimale è RTO = RTT• RTT si può stimare attraverso il SampleRTT in modo da ottimizzare il settaggio dell'RTO: tempo misurato dall'istante di trasmissione di un segmento fino all'istante di ricezione dell'ACK relativo, che ignora le ritrasmissione• Dato che il SampleRTT varia nel tempo in modo imprevedibile, occorre una stima "smoothed" dell'RTT: media di più campioni recenti dell'RTT (non semplicemente il valore corrente di SampleRTT) • Si ha una stima dell'RTT medio in base a quello effettivo• Problema:a. Al 50% RTO > RTT -> il responso verrà ricevuto correttamenteb. Al 50% RTO < RTT -> timeout prematuro• L'RTO è una sovrastima dell'RTT unito ad una distanza cautelativa da esso• Determina il valore di RTO associato ad
- segmento non riemesso
- TCP ha lo scopo di offrire un servizio di trasferimento dati affidabile utilizzando il servizio inaffidabile offerto dallo strato di rete (IP)
- Si utilizzano esclusivamente:
- segmenti ACK
- timeout di ritrasmissione
- Le ritrasmissioni sono avviate da
- esaurimento del timeout
- ACK duplicati Top-Down Pagina 12
- Il periodo di timeout spesso è relativamente lungo: elevato ritardo prima di ritrasmettere il pacchetto perduto
- L'entità TCP emittente può rivelare precocemente i segmenti perduti tramite l'analisi degli ACK duplicati:
- L'entità TCP emittente spesso invia molti segmenti
- Se un segmento viene smarrito, è probabile che ci saranno molti ACK duplicati
- Se l'entità TCP emittente riceve 3 ACK duplicati per lo stesso dato, suppone che il segmento che segue il dato riscontrato sia andato perduto
- ritrasmissione rapida
- si ritrasmette il segmento prima che
scada il timer• ACK di questi 3 segmenti fermi sul sequence number aspettato dopo la ricezione del primo segmento (fermi sul sequence number delsecondo segmento perso)• Sono ACK duplicati del primo segmento inviato dall'host B• Avviene la ritrasmissione del secondo segmento prima dello scadere del timeout• Quando il dato viene ricevuto correttamente nel livello di trasporto viene inserito in un buffer• Il buffer tende a riempirsi con il passare del tempo => se aumenta l'accodamento dei segmenti e il buffer si riempie, si può verificare un bufferoverflow con perdita di messaggi nel livello di trasporto• Bisogna introdurre il controllo di flusso• Il controllo di flusso ha lo scopo di limitare il ritmo di emissione dei dati da parte di un host per evitare la saturazione della capacità del buffer di ricezione• TCP utilizza un controllo di flusso basato su una finestra scorrevole di larghezza variabile: lo scorrimento e la
larghezza della finestra sono controllati dall'entità TCP ricevente
Il controllo di flusso opera a livello di byte: gli ottetti sono numerati in sequenza a partire dal numero scelto durante il 3-way handshaking (procedura di instaurazione della connessione)
La procedura di controllo di flusso TCP utilizza i seguenti parametri:
- SN (Sequence Number): si riferisce al primo byte contenuto nel segmento
- AckN (Acknowledgement Number): Identifica il numero di sequenza del prossimo byte che l'entità ricevente aspetta di ricevere
- RecWindow (Window): Identifica il numero massimo di byte che l'entità emittente può emettere consecutivamente senza ricevere riscontro per alcuno di questi
Un riscontro (AckN=X e RecWindow=W) significa che
- sono riscontrati tutti gli ottetti ricevuti fino a quello numerato con X - 1
- l'entità TCP emittente è autorizzata a trasmettere fino a ulteriori W ottetti, ovvero
router)
- Tipi di congestione:
- Congestione forte: si verifica quando la risorsa è molto stressata e si perdono molti segmenti, in particolare quando durante la trasmissione scade l'RTO (RTO < RTT) => per molto tempo non sono stati ricevuti ACK di risposta e ci sono state molte perdite
- Congestione debole: il buffer di rete sta per riempirsi, ma a volte la risorsa lo trova pieno e altre volte no, in particolare quando si ha fast recovery la congestione è debole, perché si perdono pochi segmenti
- Controllo di congestione punto-punto
- nessun supporto esplicito dalla rete
- la congestione è dedotta osservando le perdite e i ritardi nei sistemi terminali
- Metodo adottato dal TCP: Controllo di congestione assistito dalla rete
- Il protocollo TCP cerca di rallentare il sender (come nel controllo di flusso) usando un meccanismo a finestra che non vede la rete, quindi bisogna capire la dimensione della finestra senza avere accesso alla rete
- Il protocollo TCP utilizza i seguenti meccanismi
- esaurimento dell'RTO come un sintomo di congestione
- la finestra di congestione (Congestion Window - Congwin) che si affianca alla finestra di ricezione operante nel controllo di flusso e impone una limitazione addizionale alla quantità di traffico che un host può inviare in una connessione
- soglia (Threshold)
- il valore della soglia è pari alla metà del valore della Congwin al momento in cui viene rilevata una perdita
- all'inizio della connessione (slow start) la soglia è posta uguale a
- L'entità emittente determina nel tempo il valore della finestra disponibile (Available Window - Awdn) dove Awdn =
larghezza della banda• Una perdita implica che la rete è saturata, quindi bisogna chiudere la finestra e poi riprendere