27
Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 1 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF [email protected]

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF [email protected]

Embed Size (px)

Citation preview

Page 1: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 1

TCP: Transport Control Protocol

Tiziana Ferrari,

INFN-CNAF

[email protected]

Page 2: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 2

Indice

• Caratteristiche principali del protocollo TCP

• Multiplexing di connessioni

• Affidabilita’ (reliability)

• Controllo e prevenzione di congestione:

– Congestion control

– Congestion avoidance

• Ottimizzazioni del protocollo

– Algoritmi di fast recovery e fast retransmit

– Silly window syndrome

– Delayed acknowledgement

Page 3: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 3

Funzioni• Scambio di informazioni di controllo tra mittente e destinatario

• Affidabilita’ (reliability): dato un sistema trasmissivo inaffidabile – cioè soggetto ad errori di trasmissione e a perdita di unità di dati – viene simulata l’affidabilità attraverso la ritrasmissione delle unità di dato perse. Ciò avviene attraverso

1. identificazione della perdita di messaggio

2. segnalazione dell’avvenuta perdita attraverso il meccanismo di positive acknowledgement: periodicamente il destinatario comunica il numero di sequenza dell’ultimo byte ricevuto

• Identificazione dell’esatto processo di destinazione presente sull’end-node ricevente (piu’ processi possono ricevere dati in modo concorrente)

• Controllo di congestione

• Prevenzione della congestione

• Unita’ dati TCP: l’unita’ di dati generata dal protocollo TCP (e poi incapsulata in un messaggio IP) viene detta segmento

Page 4: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 4

Caratteristiche generali• Viene creata una connessione virtuale tra mittente e destinatario

attraverso lo scambio di informazioni di controllo (fase di call set-up).

• La creazione della connessione è seguita dalla fase di trasferimento dati vera e propria. Durante la trasmissione il protocollo TCP continua a scambiare informazioni di controllo. La connessione e’ di tipo bidirezionale: una direzione viene utilizzata per scambiare i byte di informazione utile (mittente destinatario), mentre la direzione opposta viene utilizzata esclusivamente per lo scambio di informazione di controllo (destinatario sorgente)

• Per le applicazioni di natura interattiva in cui deve essere minimizzato il ritardo di ricezione delle unità di dato (e.g. telnet), viene forzato l’invio di pacchetti non appena è disponibile qualche byte di informazione (meccanismo di data push)

Page 5: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 5

Send e receive buffer• Si dice “buffer” un’area della memoria dell’applicazione che contiene i dati

da scambiare tra mittente e destinatario. I dati vengono mano mano copiati - in unità di memoria di dimensione configurabile da parte di una applicazione - nell’area di memoria del sistema operativo attraverso la system call write().

Per ottimizzare il rapporto tra le informazioni di controllo poste nell’intestazione e la quantità di byte di dati disponibili nell’area data, un dato messaggio vene inviato soltanto nel momento in cui la parte di dati disponibile nel buffer eccede una data soglia configurabile.

• Send buffer: area di memoria in cui TCP pone i messaggi in attesa di trasmissione; il send buffer è anche detto “send socket buffer”.

• Receive buffer: area di memoria del sistema operativo in cui TCP pone i messaggi ricevuti; il receive buffer è anche detto “receive socket buffer”

• Per ogni nuova connessione vengono allocati una nuova coppia di send e receive buffer

Page 6: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 6

Send e receive buffer (cont)

dati dati

Applicazione 1 Applicazione n

...

Connessione 1

Connessione n

SEND SOCKET

RECEIVE SOCKET

write() write()

AREE DI MEMORIA DELLE APPLICAZIONI

AREA DI MEMORIA DELLE SISTEMA OPERATIVO

Page 7: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 7

Segmento• Viene definita segmento la parte dati di una unita’ di

trasmissione del protocollo TCP .

• Viene definito messaggio l’unione del segmento e dell’intestazione TCP.

• La dimensione massima di un segmento e’ pari alla dimensione massima del pacchetto IP, esclusi i byte dell’intestazione TCP e IP. Essa viene definita Maximum Segment Size (MSS):

MSS = MTU – sizeof(TCP header) – sizeof(IP header)

Intestazione TCPdati

SEGMENTO TCP

MESSAGGIO TCP

Page 8: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 8

Intestazione TCP: formatoSource port Destination port

Sequence number

Acknowledgement number

Off Res Code Window

Checksum Urgent pointer

Options Padding

Data

...0 8 16 31

Source/destination port: identificazione dell’applicazione mittente/ricevente attive rispettivamente sul nodo mittente IP_source e nodo destinatario IP_destSequence number: numero di sequenza del primo byte del campo Data nell’ambito del flusso di byte generati dalla sorgente (ne identifica la posizione)Acknowledgement number: numero di sequenza del primo byte di dati atteso. Tale numero corrisponre al numero di sequenza successivo al numero di sequenza dell’ultimo segmento correttamente ricevuto. Il numero di sequenza si riferisce al flusso generato nel senso opposto del traffico (gli ackknowledgement sono generati sempre dal ricevente di un dato stream e quindi viaggiano nel senso inverso del flusso dati).

Page 9: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 9

Intestazione TCP: formato (cont)Offset: indica la dimensione della porzione Data del segmento TCPReserved: campo non specificato, riservato ad usi futuriCode: codice che identifica la funzione del segmento (e.g. Segmento di apertura di una connession: SYN, segmento di chiusura: FIN, segmento dati, segmento che include esclusivamente informazione di acknowledgement URG: urgent pointer set, il segmento non è soggetto a buffering al lato

riceventeACK: campo ACK validoPUSH: il segmento non è soggetto a buffering al lato mittenteSYN: synchronize sequence numbersFIN: il mittente ha raggiunto la fine del byte stream generato dalla

applicazioneWindow: il mittente/ricevente comunica al ricevente/mittente la quantità di memoria disponibile per momorizzare datiOptions: le opzioni servono per scambiare specifici elementi di informazione tra mittente e destinatario, come il Maximum Segment Size (la massima dimensione del segmento che può essere accettata)Checksum: controllo d’errore applicato alla sola intestazione TCP (non alla parte data), per il calcolo del codice di controllo d’errore si assume che il campo checksum contenga una stringa di 0

Page 10: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 10

Multiplexing di connessioni• Il multiplexing di connessioni consiste nella possibilita’ di stabilire molteplici

connessioni TCP concorrenti in trasmissione o ricezione in un dato nodo.

A questo scopo, vengono utilizzate le porte TCP: ogni punto terminale di una connessione in un dato host H e’ definito da un coppia di identificatori detta socket cosi’ formata:

Socket = (TCP port, IP address(H))

Dunque una connessione TCP tra due nodi H1 e H2 e’ identificata dalla coppia di socket:

Connessione = ( TCP source port, add(H1), TCP destination port, add(H2) )

Dunque in un dato istante un socket puo’ essere utilizzato da piu’ di una connessione: es. il socket associato ad un www server o ad un ftp server.

131.154.3.41

131.154.3.1

131.154.3.10Sock2=(port2, 131.154.3.41)

Sock1=(port1, 131.154.3.1)

Sock3=(port3, 131.154.3.41)Sock4=(port4, 131.154.3.10)

Sock5=(port5, 131.154.3.10)

conn1

conn2

conn3

Conn1=(sock1, sock4)Conn2=(sock2, sock4)Conn3=(sock3, sock5)

Page 11: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 11

Affidabilità

Page 12: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 12

Positive acknowledgement

P1 P2 P3 P4 P4 P5

ACK(s1+1) ACK(s2+1) ACK(s3+1) ACK(s3+1) ACK(s3+1)

timeout t

t

Sn: numero di sequenza dell’ultimo byte dell’n-esimo messaggio; il numero di sequenzaIniziale del primo byte nel flusso di dati viene definito in fase di call set-up

Svantaggio: ritardo tra la trasmissione di un messaggio e il successivo derivante dall’attesadell’acknowledgement

s1P1

s2P2

s3P3

s4P4

s5P5

Numero di sequenza del byteMITTENTE

RICEVENTE

ACK duplicati

Page 13: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 13

Sliding window• Ottimizzazione dell’algoritmo di positive acknowledgement in cui il mittente

e’ autorizzato ad inviare m pacchetti (n byte) prima di porsi in attesa della ricezione dell’acknowledgement relativo al primo messaggio inviato.

• n rappresenta la dimensione della window, ovvero la quantita’ di dati che il mittente e’ autorizzato ad inviare dopo essersi posto in attesa dell’ack del primo messaggio della window stessa

• Nel caso in cui il tempo che intercorre tra l’invio del primo messaggio e la ricezione del relativo acknowledgement sia piccolo, il mittente può inviare dati in modo continuativo senza mai sperimentare periodi di inattività che limitano le prestazioni dell’applicazione.

• Il fenomeno contrario, in cui il mittente trascorre la maggior parte del tempo attendendo la ricezione dell’ack (per esempio su connessioni ad elevato tempo di propagazione, come nelle connessioni satellitari) viene detto: stop-and-wait.

• Il ricevente deduce la presenza di un messaggio perso nel caso in cui ack(Sn) non sia ricevuto entro un intervallo prestabilito, al termine del quale si procede con la ritrasmissione. La durata ottimale di tale timeout viene determinata stimando la media e la variazione del ritardo che intercorre tra la trasmissione di un messaggio e la ricezione del corrispondente acknowledgement (Round Trip Time)

Page 14: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 14

Sliding window (cont)

P1 P2

100by

P3 P4 P5 P6

ACK(s1) ACK(s2) ACK(s3) ACK(s4) ACK(s5)

timeout t

t

Sn: numero di sequenza dell’ultimo byte dell’n-esimo messaggio; il numero di sequenzaIniziale del primo byte nel flusso di dati viene definito in fase di call set-up

Ipotesi: ogni messaggio ha lunghezza costante di 100 by, la dimensione della window e’costante e pari a 400 by.

200by 300by 400by by

ACK(s3)

500by 600by 700by

P4 P5

ACK(s3)

800by

P6 P7 P5

ACK(s6) ACK(s7)

Page 15: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 15

Terminologia

• 1: sequence number vecchi che hanno già ricevuto un acknowledgement• 2: sequence number che non hanno ancora ricevuto un acknowledgement• 3: sequence number di pacchetti che non sono stati ancora trasmessi ma che

posono essere trasmessi essendo essi all’interno della window (SEND WINDOW)

• 4: sequence number futuri relativi a dati che non possono essere trasmessi, essendo essi esterni alla window

• 1: sequence number di pacchetti di cui è già stato inviato l’ack• 2: spazio di memoria disponibile per la ricezione di nuovi dati (RECEIVE

WINDOW)• 3: sequence number futuri che non sono ancora ammessi

Byte sequence number1 2 3 4

AL LATO MITTENTE:

AL LATO RICEVENTE:

Byte sequence number1 2 3

window

receive windowbuffer

send windowacked not acked

acked

Page 16: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 16

Terminologia (cont)

• offered window: la dimensione della finestra segnalata dal ricevente. L’offered window varia nel tempo, il valore massimo equivale alla dimensione di memoria disponibile per la memorizzazione di dati.

• Usable window: min [send window, offered window]

Page 17: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 17

Controllo e prevenzione della congestione

Page 18: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 18

Controllo della congestione• Per scoprire la presenza di un punto di congestione sul cammino

di collegamento di due end-node, utilizzando un metodo che NON introduca traffico di monitoraggio aggiuntivo, può essere sufficiente effettuare una stima del ritardo di propagazione di un messaggio sul cammino (mittente destinatario mittente): RTT (Round Trip Time)

• Acknowledgement: messaggio inviato dal destinatario alla sorgente per segnalare che un dato messaggio Mi e’ stato ricevuto correttamente

• Data una stima del round trip time RTT, se dopo RTT sec ack(Mi) non e’ stato ancora ricevuto si assume che Mi sia stato perso e si procede con la ritrasmissione e la fase di controllo della congestione

Page 19: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 19

Meccanismi di controllo di flusso• Si dividono in due gruppi:

– Congestion control (implementato dall’algoritmo “slow start”), serve per fronteggiare situazioni di congestione grave, ovvero quando scade il timeout al lato mittente. E’ caratterizzato da un incremento esponenziale della usable window.

– Congestion avoidance viene adottato in assenza di congestione grave, ovvero solo in presenza di acknowledgement duplicati. Permette un incremento graduale della usable window (lineare)

Page 20: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 20

CONGESTION CONTROL

Page 21: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 21

Slow startTCP entra nella fase slow start ogni volta che viene riscontrata la perdita di un

messaggio (cioè come conseguenza dello scadere di un timeout). TCP è nella fase di Slow start anche inizialmente, in apertura della connessione, e ogni qual volta una connessione TCP viene riattivata dopo un periodo di pausa

La fase slow start serve per limitare il numero di pacchetti in transito tra la sorgente e il destinatario in presenza di congestione oppure inizialmente, quando deve essere ancora determinata la frequenza di trasmissione dei pacchetti ottimale, per incrementare in modo graduale la frequenza di trasmissione

IMPLEMENTAZIONE: viene utilizzata una variabile chiamata “congestion window” (indicata con la sigla: cwind). Cwind è un parametro il cui valore varia durante le varie fasi di un trasferimento TCP secondo le seguenti regole:

• all’inizio e per ogni restart di una trasmissione: cwind=1 ack ricevuto: cwind=cwind+const (e.g. const=1)• Usable Window = min (cwind, RCV advertized window)

Il tempo necessario affinché cwind raggiunga una ampiezza pari a W (supponendo che W sia espresso in pacchetti) varia secondo la regola:

time = RTT * log2 W

CONGESTION CONTROL

Page 22: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 22

Slow Start (cont)

• Vantaggi: – non vengono inviati burst (=sequenze di pacchetti affiancati) che

peggiorano la situazione di congestione nei colli di bottiglia della rate e nei router che iniettano traffico da una interfaccia I di input ad una di output O, dove

capacita(I) > capacita(O)

• Svantaggi:– Poiché la window viene ridotta di dimensione in presenza di congestione,

in caso di elevata percentuale di pacchetti persi (packet loss) la connessione non è mai in grado di sfruttare pienamente la banda disponibile su alcuni tratti della rete

– In caso di connessioni ad alto tempo di propagazione (RTT >>, per esempio su link satellitari, in cui il tempo di propagazione e’ la componente più significativa della latenza end-to-end), la durata della fase slow start è considerevole, con un conseguente calo delle prestazione e una latenza superiore necessaria per raggiungere uno stato di “equilibrio”

CONGESTION CONTROL

Page 23: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 23

P1

t

P2 P3

Ack(P1)Cwin=2Cwin=1

Ack(P4)Cwin=5

Ack(P5)Cwin=6

Ack(P6)Cwin=7

Ack(P7)Cwin=8

P8 P9 P10 P11 P12 P13 P14 P15

t

Ack(P2)Cwin=3

Ack(P3)Cwin=4

P4 P5 P6 P7

t

RTTPacket Time: intervallo di tempo fra 2 pacchetti consecutivi

Esempio

Ack(P8)Cwin=9

CONGESTION CONTROL

Page 24: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 24

CONGESTION AVOIDANCE

Page 25: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 25

Congestion avoidance• TCP si trova nella fase di congestion avoidance quando raggiunge una situazione di

equilibrio (cioè TCP non è soggetto a perdita di pacchetti). In questa fase TCP tenta ancora di aumentare il parametro cwind allo scopo di verificare la possibilità di aumentare la frequenza di trasmissione dei pacchetti per raggiungere la MASSIMA frequenza trasmisssiva ammessa dai link di collegamento presenti nel cammino tra la sorgente e il destinatario.

• AUMENTO DELLA FREQUENZA TRASMISSIVA: Nella fase di congestion avoidance il parametro cwind viene aumentato in modo più

lento e graduale, per esempio facendo in modo che anziché incremenatare esponenzialmente nel tempo (come nella fase di slow start), l’aumento sia lineare.

In fase slow start: ack ricevuto, cwind=cwind+const

In fase di congestion avoidance: ack ricevuto, cwind = cwind + const/cwind

1. const = 1 // se cwin espresso in numero di segmenti

2. const = MSS*MSS // cwin espresso in byteovvero ad ogni scadere di 1 RTT, cwind aumenta all’incirca di 1 messaggio. Lo

scopo e’ quello di evitare la sovrastima della banda disponibile per non entrare nuovamente nella fase di slow start.

CONGESTION AVOIDANCE

Page 26: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 26

Congestion avoidance (cont)• DIMINUZIONE DELLA FREQUENZA TRASMISSIVA:

1. In presenza di ack duplicati (ack del medesimo sequence number Si) la window size viene ridotta secondo la regola moltiplicativa:

cwindi = d * cwindi-1 (d < 1, e.g. 1/2)

cwind e’ espresso in byte

2. In presenza di un timeout che scade si passa alla fase di slow start:

cwind=1

In caso di congestione persistente la formula al punto 1. produce un effetto di decrescita esponenziale nel tempo del parametro (essendo applicata ad ogni messaggio iterativamente)

Anche in fase di congestion avoidance, in ogni istante:

W = min(cwind, RCV advertized win)

CONGESTION AVOIDANCE

Page 27: Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20011 TCP: Transport Control Protocol Tiziana Ferrari, INFN-CNAF Tiziana.Ferrari@cnaf.infn.it

Tiziana Ferrari Corso di Telematica, Anno Acc. 2000/2001 27

• Come si passa dalla fase di congestion control a quella di congestion avoidance e viceversa?

Si utilizza una variabile (threshold T) tale che:

– Inizialmente T=64 KB

– Se cwind < T: TCP in fase di slow start (congestion control)

– Se cwind T: TCP in fase di congestion avoidance

• Quando si passa dalla fase di congestion avoidance a quella di congestion control?

Al lato mittente ogni qual volta scade un timeout, il parametro T viene dimezzato: T := cwind/2, e cwind=1

A questo punto comincia la fase di slow start.

CONGESTION AVOIDANCE CONGESTION CONTROL