Università degli Studi di Pisa
Dipartimento di Informatica
Lezione n.4
SSIS INFORMATICA
LIVELLO TRASPORTO
TCP
5/12/2007
Laura Ricci
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 1
UDP: MESSAGE ORIENTED PROTOCOL
•
Molti protocolli di rete (es: UDP, ISO-OSI) sono basati sull'uso di
messaggi
•
Esempio:
 l'applicazione passa al livello UDP un messaggio= blocco di dati di
dimensione limitata
 E' compito dell'applicazione costruire blocchi discreti di dati,
rispettando la dimensione massima fissata.
 Il blocco dei dati viene spedito ai livelli inferiori dello stack di
protocolli. Ogni livello aggiunge un header al messaggio.
•
Svantaggi: l'applicazione deve
 Dividere i dati in blocchi
 Se i dati da inviare non possono essere inseriti in un solo blocco,
segmentare i dati in più blocchi
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 2
TCP: STREAM BASED COMMUNICATION
•
TCP=Stream Oriented Protocol:
 non richiede all'applicazione di suddividere i dati in blocchi
 accetta dall'applicazione dati di qualsiasi dimensione e struttura
 l'applicazione 'pompa uno stream di bytes' verso il livello TCP
•
Il livello TCP
 riceve bytes dalla applicazione e li passa al livello network (livello IP)
 Il livello IP utilizza un protocollo 'orientato ai messaggi'
 il compito di definire i blocchi di dati da spedire all'interno dei
messaggi è spostato dal livello applicazione al livello TCP
 Messaggi definiti da TCP = segmenti TCP
 Il livello IP incapsula i segmenti TCP in datagrammi IP e li spedisce
sulla rete
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 3
TCP:STREAM BASED COMMUNICATION
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 4
TCP: STREAM BASED COMMUNICATION
•
•
Il TCP lavora a livello di bytes, piuttosto che a livello di messaggi
•
Maximum segment size (MSS) = definisce la dimensione massima dei
segmenti. Scelto in modo da evitare eccessiva frammentazione ai livelli
inferiori
•
•
MSS stabilito al momento della connessione
•
i numeri di sequenza necessari per definire un protocollo affidabile sono
associati ai bytes trasmessi
•
Ogni segmento è individuato dal numero di sequenza delprimo byte in
esso contenuto
TCP riceve bytes dalle applicazioni e, ad intervalli di tempo regolari,
forma dei segmenti che passa al livello IP
ad ogni byte dello stream viene assegnato un numero progressivo (numero
di sequenza)
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 5
TCP: FUNZIONALITA'
Funzionalità offerte dallivello TCP
•
Affidabilità: assicura che i dati spediti arrivino effettivamente a
destinazione e individua se i dati non sono arrivati ed in questo caso li
ritrasmette
•
Controllo del flusso: stabilisca la frequenza con cui i dati vengono spediti in
modo da non mandare in overflow ilbuffer del destinatario
•
Controllo della congestione: definisce un insieme di euristiche per
determinare illivello di congestionamento della rete. Stabilisce la
frequenza con cui i dati vengono spediti in funzione del livello di
congestionamento individuato
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 6
TCP: FUNZIONALITA'
Il meccanismo defintio da TCP per garantire l'affidabilità è basato su
PAR= Positive Ackwnoledgement with Retrasmission
•
Il mittente inizializza un timer quando spedisce un segmento
•
Il valore del timer deve essere definito in modo da considerare il
RTT (round trip time) tra mittente e destinatario+ un certo ritardo
•
Il destinatario invia un ack quando ha ricevuto il messaggio
•
Quando il valore del timer diventa 0, il messaggio viene rispedito
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 7
POSITIVE ACK WITH RETRASMISSION
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 8
POSITIVE ACK WITH RETRASMISSION: PAR
•
Meccanismi di tipo start-stop utilizzati quando
 i partner scambiano piccole quantità di dati
 lo scambio di dati è poco frequente
•
Richiedono identificatori unici per i messaggi trasmessi, in modo da
individuare eventuali segmenti duplicati
•
Nel caso del meccanismo di start-stop è sufficiente un bit per
identificare i messaggi (alternate bit protocol)
•
Un protocollo di tipo start-stop non è proponibile per Internet, perchè è
possibile scambiare frequentemente grosse quantità di dati
•
Verso il protocollo TCP: prima modifica al PAR start-stop
 Il mittente può inviare ulteriori segmenti prima di ricevere l'ack dei
messaggi precedentemente inviati
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 9
PAR: OVERLAPPING TRASMISSION
•
Supponiamo che i partner si scambino messaggi, tutti della stessa
dimensione
•
Il mittente associa ad ogni messaggio spedito
 un identificatore unico
 un timer inizializzato tenendo conto del RTT tra mittente e
destinatario
•
Il mittente rispedisce il messaggio se non riceve un riscontro positivo
prima dello scadere del timer associato al messaggio
•
Il destinatario
 Mentre nel PAR start-stop il destinatario possiede al massimo un
messaggio da riscontrare nel buffer di ricezione, ora è possibile che
esistano più messaggi da riscontrare nel buffer di ricezione
 Anche gli ack contengono degli identificatori che identificano il/i
segmenti riscontrati
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 10
PAR: CONTROLLO DEL FLUSSO
•
Il destinatario D può possedere nel buffer di ricezione più messaggi da
riscontrare
•
Il numero di messagi può crescere nel caso in cui D non possa inviare i
riscontri immediatamente, perchè occupato in altre eleborazioni
•
Occorre un meccanismo che consenta a D di notificare al mittente, insieme
all'ack, una richiesta di 'rallentare' o 'interrrompere' la trasmissione di
nuovi messaggi
•
Controllo del flusso:
 D invia al mittente M, insieme all'ack, un valore intero V che indica il
massimo numero di messaggi non riscontrati che può gestire.
 M interrompe la trasmissione di ulteriori messaggi nel caso in cui il
numero di messaggi per cui non ha avuto riscontro raggiunga V
 Il valore di V può essere modificato da D a seconda del proprio carico e
di altri fattori
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 11
PAR: OVERLAPPING TRASMISSION
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 12
TCP:BYTE ORIENTED TRASMISSION
•
•
TCP trasmette segmenti contenenti sequenze di bytes
•
Un segmento viene riscontarto inviando il numero del primo byte che
il destinatario attende (=numero dell'ultimo byte del segmento
ricevuto +1)
•
Mittente e destinatario devono accordarsi sui numeri di sequenza
assegnati ai bytes scambiati. Questo avviene nel momento in cui viene
stabilita la connessione
•
Per ora supponiamo che alprimo byte venga assegnato numero di
sequenza = 1
Il segmento viene considerato l'unità atomica di trasmissione:tutti i
bytes di un segmento vengono inviati insieme e riscontrati insieme
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 13
TCP: BUFFER DI INVIO
Consideriamo il buffer gestito dal mittente TCP: Il buffer di invio può
contenere le seguenti quattro categorie di dati:
•
•
•
inviati per cui si è ricevuto l'ack
•
non inviati e che non possono essere inviati immediatamente
inviati per cui non si è ricevuto l'ack
non inviati, ma che possono essere inviati immediatamente, perchè il
destinatario ha indicato nell'ultima comunicazione che ha spazio per
riceverli
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 14
TCP:BUFFER DI INVIO
Send Window
•
Numero di bytes che il mettente può inviare senza attendere un
riscontro da parte del destinatario
•
Bytes di categoria 2 + bytes di categoria 3
Usable Window
•
Indica i dati che possono essere ancora trasmessi senza attendere
riscontro. Bytes di categoria 3
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 15
TCP BUFFER: MODIFICA DEI DATI
•
•
•
Il mittente invia immediatamente i 6 bytes in categoria 3
La usable Window diviene vuota
Il mittente deve attendere il riscontro dei dati inviati prima di
trasmettere nuovi dati
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 16
TCP: CUMULATIVE ACKNOWLEDGEMENT
•
Invio dei riscontri da parte del destinatario: il destinatario riscontra la più
lunga sequenza contigua di bytes che ha ricevuto a partire dall'ultimo
riscontro inviato
•
Esempio: i bytes dal 32 al 45 sono stati trasmessi in 4 segmenti diversi
(bytes 32-34, 35-36, 37-41, 42-45).
•
Il primo, secondo e il quarto segmento sono recapitati, il terzo segmento
viene perso
•
Il destinatario invia un ack cumulativo per i bytes dal 32 al 36 (32-34, 3536)
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 17
TCP:CUMULATIVE ACKNOWLEDGEMENTS
Meccanismo dei cumulative acknowledgments
•
Esempio: i bytes dal 32 al 45 sono stati trasmessi in 4 segmenti diversi
(bytes 32-34, 35-36, 37-41, 42-45).
•
Il primo, secondo e il quarto segmento sono recapitati, il tezo segmento
viene perso
•
Il destinatario può memorizzare i bytes dal 42 al 45, ma non può inviare un
ack per questi dati, perchè questo implicherebbe che ha anche ricevuto i
bytes 37-41
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 18
TCP: SLIDING WINDOW
•
•
Supponiamo che il mittente riceva un ack per i bytes nel range 32-36
•
meccanismo della sliding window: la send window viene spostata verso
destra di 5 posizioni, alcuni bytes passano dalla categoria 4, non
inviati e non inviabili immediatamente, alla categoria 3, non inviati, ma
inviabili immediatamante
•
il mittente può inviare ulteriori dati
I bytes 32-36 passano dalla categoria 2 (bytes inviati, ma non ancora
riscontrati) alla categoria 1 (bytes inviati e riscontrati)
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 19
TCP: CUMULATIVE ACKNOWLEDGEMENTS
•
Cumulative TCP acknowledgments: indicano al mittente che tutti i bytes
fino a quello riscontarto, sono stati ricevuti correttamente
•
•
Il destinatario associa ad ogni ack la dimensione massima della finestra
•
Viene utilizzato un timer per decidere quando ritrasmettere un segmento
non riscontrato
•
Problema:come vengono trattati i segmenti ricevuti fuori ordine?
Il mittente modifica la dimensione della usable window a seconda della
notifica ricevuta dal destinatario
 se si utilizzano i cumulative acknoledgments, il destinatario non ha
nessuna possibilità di notificare la ricezione di un segmento ricevuto
fuori ordine
 Esempio: se ho spedito 500 segmenti e solo il primo segmento della
sequenza è stato perso, non ricevo alcun ack dal destinatario
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 20
TCP: POLITICHE DI RITRASMISSIONE
Politiche di ritrasmissione
•
quando scade un timeout associato ad un segmento S spedito, il mittente
non è in grado di capire se i segmenti successivi sono stati ricevuti
correttamente dal destinatario
•
due scelte possibili
 Politica ottimistica: si ritrasmette solo il segmento per cui è scaduto il
time out,con la speranza che gli altri segmenti siano stati ricevuti
correttamente.
• Se i segmenti successivi sono andati persi, a loro volta è necessario
attendere lo scadere del time out per ognuno di essi
 Politica pessimistica: si ritrasmette il segmento e tutti quelli spediti
successivamente per cui non si è ancora avuto riscontro
• I segmenti ricevuti correttamente vengono ricevuti più volte
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 21
TCP: SELECTIVE ACKNOWLEDGMENTS
TCP Selective Acknowledgments:
•
Estensione dell'algoritmo base che introduce la possibilità di riscontrare
singolarmente ogni segmento
•
Possibile solo se i partner della comunicazione supportano l'algoritmo
SACK
•
I partner notificano di essere SACK enabled
dell'inizializzazione della connessione (SYN message)
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
al
momento
Laura Ricci 22
TCP: FAST RETRASMISSION
•
Nella versione base di TCP, un processo può solo confermare una
sequenza contigua di segmenti
•
Un segmento ricevuto fuori ordine non viene confermato, fintanto che i
segmenti precedenti non sono stati ricevuti, però....TCP invia un ACK
anche quando riceve un segmento fuori ordine
•
Questo ACK indica il numero di sequenza del primo byte atteso dal
mittente
•
Esempio:
 Se un processo P ha ricevuto il Segmento #4, ma non ha ricevuto il
segmento #3, P invia un ACK riscontra l'ultimo segmento ricevuto
correttamente, cioè il #2
 In questo modo P indica “io sto aspettando il primo byte del
segmento #3, ma in realtà ho ricevuto un segmento successivo fuori
ordine” .... (continua pagina successiva....)
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 23
TCP: FAST RETRASMISSION
Esempio.....(continua dalla pagina precedente.....)
•
Il mittente non sa che il Segmento #3 è stato perso, per cui continua
ad inviare segmenti, ad esempio il Segmento#6, #7, ...
•
Ogni volta che il destinatario riceve un segmento fuori ordine, invia un
ACK che specifica che il primo byte atteso si riferisce al segmento #3
•
Il mittente riceve una sequenza di ACK identici
 deduce che il segmento #3 è stato perso, prima che il relativo time
out scada
 fast retrasmission: renvia il segmento #3 prima dello scadere del
time-out
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 24
TCP: FAST RETRASMISSION
•
Fast Retrasmission:
 quando il mittente riceve tre o più ACK per lo stesso segmento,
ritrasmette immediatamente ilsegmento
 questa ottimizzazione migliora la performance del protocollo
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 25
THREE-WAY HANDSHAKE
•
•
Il livello TCP mantiene una struttura dati per ogni connessione aperta
TCB, Trasmission Control Block= contiene tutte le informazioni importanti
per la gestione della connessione
 Sockets e porte che identificano la connessione
 Buffers di ingresso/uscita
 Variabili per la gestione della sliding window (es: numero di bytes
ricevuti e riscontrati, dimensione della finestra, ecc.)
•
L'interazione tra i partners che intendono stabilire una connessione TCP
avviene secondo il modello client/server
•
Il client esegue una active open, tramite cui richiede di aprire una
connessione verso un server specifico. La 'active open' crea il TCB
•
Il server esegue una passive open tramite cui comunica al livello TCP che sta
attentendo richieste di connessione su una data porta. La passive open crea
un TCB che non contiene riferimenti a socket e porta delclient
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 26
THREE-WAY HANDSHAKE
●
●
la fase di apertura di una connessione è implementata mediante three
way handshake (handshake=stretta di mano)
Supponiamo che il processo P1 intenda stabilire una connessione con P2
●
P1 invia a P2 un messaggio di SYN e attende da P2 un messaggio di
ACK
P2 indica che accetta la connessione inviando, a sua volta, un
messaggio di SYN e ricevendo l'ACK corrispondente
Il protocollo richiede 4 messaggi per stabilire la connessione
Ottimizzazione: P2 include nel messaggio di riscontro (ACK) il proprio
messaggio di SYN che l'ACK (SYN+ACK).
numero totale dei messaggi scambiati = 3, da cui 3-way handshakedopo
l’handshake
Dopo il tree way handshake, i processi possono iniziare a scambiarsi i
segmenti contenenti i dati
●
●
●
●
●
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 27
TCP: THREE-WAY HANDSHAKE
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 28
TCP: THREE-WAY HANDSHAKE
Il three way handshake svolge diverse funzioni:
•
Il server non conosce quale client intende stabilire il contatto. In
questa fase il server acquisisce conoscenza sul client (indirizzo+porta
delclient
•
Sequence number synchronization. Ogni processo indica all'altro quale è
il numero di sequenza che vuole utilizzare per il primo byte trasmesso
•
Scambio di parametri vengono scambiati
consentono di controllare la trasmissione
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
alcuni
parametri
che
Laura Ricci 29
TCP : THREE WAY HANDSHAKE
●
●
●
Perchè il TCP non assegna sempre al primo byte spedito su una
connessione il numero di sequenza=1?
Il problema principale riguarda la possibilità di 'mischiare' segmenti
spediti su connessioni diverse
Esempio:
 inviamo su una connessione un segmento contenente i bytes numerati
da 1 a 30. La rete è congestionata, il segmento viene ritardato e la
connessione viene chiusa.
 La connessione viene riaperta in seguito e viene nuovamente
attribuito il valore 1 al primo byte spedito.
 Il destinatario può ricevere per primo il segmento precedentemente
●
inviato, considerandolo come il primo segmento spedito sulla nuova
connessione
Assegnazione casulale dei numeri iniziali di sequenza. Diminuisce la
probabilità di utilizzare un numero di sequenza relativo ad un pacchetto
'in ritardo' ancora presente sulla rete, ma relativo ad una connessione
precedente
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 30
SELEZIONE DEI I NUMERI DI SEQUENZA
Assegnazione dei numeri iniziali di sequenza (ISN=Initial Sequence
Number)
Soluzione 1:
●
●
●
●
Si inizializza un timer e si incremeta periodicamente,ogni 4 microsecondi,
modulo 4.294.967.295 (massimo valore rappresentabile su 32 bits)
il valore massimo viene raggiunto dopo 4 ore, se il contatore viene
incrementato ogni 4 microsecondi,
la probabilità di utilizzare un numero di sequenza relativo ad un pacchetto
'in ritardo' ancora presente sulla rete, ma relativo ad una connessione
precedente, diventa trascurabile
Svantaggi: predicibilità dei numeri generati
Soluzione 2:
●
generazione casuale dei numeri di sequenza
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 31
TCP : SEQUENCE NUMBER SYNCHRONIZATION
●
Al momento della apertura della connessione, ogni processo informa il
partner sul'ISN scelto per quella connessione
●
L'ISN viene inserito nel messaggio di SYN
●
Il partner conferma la ricezione del numero di sequenza mediante l'ACK
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 32
HEADER TCP
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 33
TCP: CONTROLLO DELLA CONGESTIONE
•
Congestione: situazione in cui i routers intermedi devono gestire una
grossa quantità di traffico. Questa situazione può provocare:
 ritardo nella notifica di un segmento al processo destinatario
 perdita di segmenti
•
Il meccanismo di controllo del flusso
 considera unicamente i due partners dellaconnessione
 non considera il percorso effettuato dai pacchetti che includono i
segmenti TC P nei routers intermedi
•
TCP non definisce un meccanismo che permetta di verificare direttamente
lo stato della rete (esempio: messaggi espliciti ai routers)
•
La congestione viene percepita indirettamente da TCP come una situazione
che provoca la perdita di segmenti o l'arrivo ritardato di segmenti
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 34
TCP: CONTROLLO DELLA CONGESTIONE
•
Senza alcun mccanismo di controllo, il fenomeno della congestione è
autoalimentante:
●
un router elimina uno o più pacchetti
●
l’host che ha inviato i pacchetti, quando vede scadere i loro timeout, li
rinvia
●
il numero di pacchetti in transito sulla rete aumenta
•
TCP non può semplicemente ignorare quanto avviene a livello di routers
tra i partner della connessione
●
è opportuno definire un meccanismo che
●
●
●
controlli il comportamento degli end hosts affinchè essi non
contribuiscano ad aumentare la situazione di congestione
renda gli end hosts 'coscienti dello stato della rete'
l'applicazione di questo meccanismo di 'regolazione' su tutte le
connessioni aperte sulla rete può contribuire a diminuire lo stato di
congestionamento della rete stessa
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 35
TCP: CONTROLLO DELLA CONGESTIONE
Approcci generali per il controllo della congestione:
●
●
controllo della congestione supportato dai routers (non implementato in
TCP-IP) : i routers notificano esplicitamente il loro stato di congestione
agli end systems (hosts). Gli hosts regolano di conseguenza il flusso dei
segmenti spediti sulla rete
controllo della congestione end to end:
– i routers non forniscono alcun supporto per il controllo della
congestione.
– gli host decidono autonomamente quando la rete risulta
congestionata in base all’osservazione del comportamento della rete
in seguito all’invio di segmenti TCP
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 36
TCP: RILEVAZIONE DELLA CONGESTIONE
Una situazione di congestione può provocare nei routers
●
L'overflow di uno o più buffers dei routers interessati
●
L'eliminazione di un datagram da parte del router
●
il datagram può contenere un segmento TCP
L'end host percepisce la congestione come perdita di un segmenti inviati
lungo una connessione, che può avvenire a seguito di
●
●
●
un time out
l'arrivo di tre ACK duplicati in successione
in seguito alla rilevazione di una situazione di congestione, l'end host può
rallentare la spedizione dei pacchetti sulla rete in modo da diminuire lo
stato di congestione della rete
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 37
TCP: RILEVAZIONE DELLA CONGESTIONE
•
Consideriamo il buffer gestito dal mittente
i bytes di categoria 2 sono quelli inviati, ma non riscontrati
●
il controllo della congestione opera controllando il numero di bytes in
categoria 2. La dimensione della finestra dei dati in categoria 2 (finestra di
congestione, fcong) puo' essere ridotta ed aumentata dinamicamente, a
seconda della percezione della congestione
●
il meccanismo ovviamente interagisce con il meccanismo di controllo del
flusso, che opera sulla dimensione della send window
●
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 38
TCP: CONTROLLO DELLA CONGESTIONE
●
●
L'algoritmo di controllo della congestione è basato su tre componenti
●
Incremento additivo e decremento moltiplicativo
●
Slow start
●
Ricezione ai timeout
Incremento Additivo e Decremento Moltiplicativo
●
●
Quando il mittente rileva la perdita di un segmento, dimezza la
dimensione della finestra di congestione (decremento moltiplicativo)
Esempio:
●
●
●
la dimensione della finestra di congestione può passare
20Kbytes a 10 kbytes a 5 kbytes,....
da
la dimensione della finestra di congestione non scende però al di
sotto di un valore soglia
Quando il mittente riceve in tempo un riscontro per un segmento
precedentemente inviato, aumenta di poco la dimensione della propria
finestra (aumento additivo)
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 39
TCP: CONTROLLO DELLA CONGESTIONE
KB
AIMD = Additive Increase, Multiplicative Decrease
tempo
La situazione illustrata in figura non considera la slow start
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 40
TCP: SLOW START
•
TCP inizia la trasmissione dei segmenti con un valore molto basso della
dimensione della finestra di congestione (frequenza bassa di trasmissione)
•
•
In seguito, TCP incrementa esponenzialmente la frequenza di trasmissione,
Esempio:
 Si inizia inviando un segmento e se ne attende il riscontro
 Se il segmento viene riscontrato prima di un time out, la dimensione
della finestra di congestione, viene aumentata di 1 e si invaino due
segmenti
 Se entrambe i segmenti vengono riscontrati si incremente di 1 la
dimensione della finestra di congestione per ognuno dei segmenti
riscontrati, la dimensione della finestra di congestione diventa 4,...
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 41
TCP: SLOW START
Sorgente
Dipartimento di Informatica
Università degli studi di Pisa
Destinazione
Il livello Trasporto
Laura Ricci 42
TCP: SLOW START
●
●
Quando la dimensione della finetstra di congestione supera un valore
S (soglia): la fase di slow-start termina ed inizia la fase di aumento
additivo della finestra di congestione
Andamento della trasmissione: crescita esponenziale dopo una
partenza lenta, fino ad un evento di smarrimento. Quindi inizia una
fase di andamento altalenante (AIMD)
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 43
TCP:CONTROLLO DI CONGESTIONE
•
TCP Reno: reagisce in modo diverso ad un time out, rispetto ad un
evento di ricezione di tre ack duplicati
•
Ricezione di 3 ack duplicati: si dimezza la dimensione della finestra di
congestione
•
Ricezione di time out: si rientra nella fase di slow start. Riporta la
dimensione della finestra di congestione al valore minumo
•
Motivazione dell'algoritmo TCP Reno:
 l'arrivo di tre ack duplicati implica che almeno alcuni dei segmenti
successivi sono stati ricevuti dal destinatario. Quindi, a differenza
del caso in cui si è ricevuto un time out, la rete ha conservato la
capacità di consegnare un sottoinsieme dei pacchetti spediti
 Il time out viene rileva una situazione potenzialmente più grave, per
cui l'algoritmo tratta questo caso in modo più restrittivo
Dipartimento di Informatica
Università degli studi di Pisa
Il livello Trasporto
Laura Ricci 44
Scarica

tcp - Dipartimento di Informatica