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

Slides:



Advertisements
Presentazioni simili
Stack TCP/IP - Socket Douglas E. Comer, "Internetworking con TCP/IP, principi, protocolli, architettura.", Gruppo Editoriale Jackson W. Richard. Stevens,
Advertisements

Il livello di trasporto
Introduzione al C++ e alla programmazione ad oggetti Corso Specialistico CNTC Bologna, febbraio 2001 Andrea Dell’Acqua e Claudio Grandi.
Corso di laurea in INFORMATICA
Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Messaggi di errore e di controllo Alberto Polzonetti
I protocolli TCP/UDP prof.: Alfio Lombardo.
Modello ISO/OSI Un metodo di studio Vallì Rossella Carando 2006 SIS.
4-1 Il Livello di Rete Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
I modelli di riferimento OSI e TCP/IP
La rete in dettaglio: rete esterna (edge): applicazioni e host
3-1 User Datagram Protocol: UDP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All.
La rete del futuro nellautonomia scolastica Sezione propedeutica I fondamentali e concetti di TCP/IP.
Esercizio 1 1)      Un collegamento end-to-end è formato da tre tratte, la prima AB con la velocità di 5 Mb/s, la seconda BC di 20 Mb/s e la terza CD di.
Esercizio 1 Il collegamento fra due punti, A e B, è effettuato con il protocollo Go Back N con piggybacking in modalità full-duplex. I pacchetti trasmessi.
Esercizio 1 Due collegamenti in cascata, AB e BC hanno una velocità rispettivamente di 100 Mb/s e 50 Mb/s e tempi di propagazione pari a 1 ms e 1.2 ms.
Reti di Calcolatori Domande di riepilogo Quarta Esercitazione
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Programmazione su Reti
Programmazione su Reti
Trasporto affidabile (principi) Di fondamentale importanza negli strati applicativi, di trasporto e di collegamento! Le caratteristiche del canale determinano.
I protocolli TCP/UDP prof.: Alfio Lombardo.
Il livello di trasporto
TCP Transmission Control Protocol. Programmazione II: Programmazione su Reti -- Prof. G. Persiano 2 TCP TCP fornisce un servizio di connessione –orientato.
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO TRASPORTO Protocolli TCP e UDP.
ICMP - PING - TRACEROUTE
Griglie ComputazionaliFile Transfer in Grids1 INFN – CNAF Corso di Laurea specialistica in Informatica Anno Acc. 2004/2005.
File Transfer in Grids: TCP
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
Reti Locali Reti di Calcolatori.
1 Esercizio 1 Un router riceve da un collegamento A lungo 10 km a 100 Mb/s e instrada i pacchetti ricevuti, lunghi 1000 bit verso una linea duscita B a.
Realizzato da Roberto Savino 3-1 Il livello di trasporto r Dobbiamo assumere di avere a che fare con un canale di comunicazione molto particolare 1. Inaffidabile.
I protocolli TCP/UDP prof.: Alfio Lombardo.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
Calcolo timeout Modulo 2 - U.D. 5 - Lez. 6
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
Modulo 2 – U.D. 4 – Lez. 5 (parte I)
Laureando: Giuseppe BRUSCELLA
L’architettura a strati
INTERNET e RETI di CALCOLATORI
Livello di trasporto Protocolli TCP e UDP.
1 Sistemi e Tecnologie della Comunicazione Lezione 22: transport layer: introduzione, funzionalita’
1 Sistemi e Tecnologie della Comunicazione Lezione 13: data link layer: protocolli go-back-n e selective reject; esempi: HDLC, PPP.
UNIVERSITA’ DEGLI STUDI DI ROMA “TOR VERGATA”
Complementi sul controllo d’errore (parte I). Introduzione Lo schema di gestione d’errore Idle RQ garantisce che i pacchetti: – arrivino non corrotti.
Flusso e congestione TCP
Flusso TCP (parte II). Trasferimento di grandi quantità di dati (1) Spesso il mittente deve inviare grandi quantità di dati. Genera un numero elevato.
Fast Retransmit. Fast Retransmit (1) Altri indizi di perdite oltre il timeout: possiamo interpretare il verificarsi di sequenze di 4 ACK per lo stesso.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 6 -User Datagram Protocol Ernesto Damiani Lezione 1 – UDP.
Controllo timeout. Il modo più ovvio per individuare delle perdite è usare il timeout del timer di ritrasmissione. Timeout (1) Attenzione! Con valori.
Controllo di congestione avanzato. Controllo della congestione TCP Prima del 1988, solo controllo del flusso! TCP Tahoe 1988 − TCP con Slow Start, Congestion.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 4 – OSPF.
Controllo congestione. Controlli: della congestione e di flusso Problema Controllo della congestione Evitare che più mittenti inseriscano troppi dati.
Controllo di flusso TCP. Elementi base del flusso TCP (1) Comunicazione punto-punto Un mittente, un destinatario. Flusso di byte affidabile Flusso suddiviso.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 6 -User Datagram Protocol Ernesto Damiani Lezione 2 – UDP.
1 Sistemi e Tecnologie della Comunicazione Lezione 23: transport layer: TCP e UDP.
Sistemi e Tecnologie della Comunicazione
1 Sistemi e Tecnologie della Comunicazione Lezione 12: data link layer: controllo di flusso, protocolli stop-and-wait e sliding window.
LORENZO PARISI CLASSE V LSA GARDASCUOLA AS Computer networks.
ARCHITETTURA DI RETE Protocollo: insieme di regole che governano le comunicazioni tra i nodi di una rete. La condivisione di queste regole tra tutte gli.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
INTERNET PROTOCOL SUITE FACOLTA’ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Docente: Prof. Pasquale Daponte Tutor:
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Sezione propedeutica I fondamentali e concetti di TCP/IP.
II PROVA Svolgimento tramite protocollo ISO/OSI. I LIVELLO : LIVELLO FISICO Scelta del mezzo fisico; tenere conto degli standard IEEE Procedura di codifica.
Raccogliere informazioni ALCUNE DOMANDE FONDAMENTALI È stato modificato qualche componente HW o SW? Il sintomo si presenta regolarmente o ad intermittenza?
Ing. L. A. Grieco DEE – Telematics Lab. 1 Protocolli UDP e TCP – Telematica I – - I Facoltà di Ingegneria – CdL in Ingegneria Informatica.
Il Livello di Trasporto
Transcript della presentazione:

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

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20012 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

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20013 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 laffidabilità attraverso la ritrasmissione delle unità di dato perse. Ciò avviene attraverso 1. identificazione della perdita di messaggio 2. segnalazione dellavvenuta perdita attraverso il meccanismo di positive acknowledgement: periodicamente il destinatario comunica il numero di sequenza dellultimo byte ricevuto Identificazione dellesatto processo di destinazione presente sullend-node ricevente (piu processi possono ricevere dati in modo concorrente) Controllo di congestione Prevenzione della congestione Unita dati TCP: lunita di dati generata dal protocollo TCP (e poi incapsulata in un messaggio IP) viene detta segmento

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20014 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 linvio di pacchetti non appena è disponibile qualche byte di informazione (meccanismo di data push)

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20015 Send e receive buffer Si dice buffer unarea della memoria dellapplicazione 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 - nellarea di memoria del sistema operativo attraverso la system call write(). Per ottimizzare il rapporto tra le informazioni di controllo poste nellintestazione e la quantità di byte di dati disponibili nellarea 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

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20016 Send e receive buffer (cont) dati Applicazione 1 Applicazione n... Connessione 1 Connessione n SEND SOCKET RECEIVE SOCKET write() AREE DI MEMORIA DELLE APPLICAZIONI AREA DI MEMORIA DELLE SISTEMA OPERATIVO

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20017 Segmento Viene definita segmento la parte dati di una unita di trasmissione del protocollo TCP. Viene definito messaggio lunione del segmento e dellintestazione TCP. La dimensione massima di un segmento e pari alla dimensione massima del pacchetto IP, esclusi i byte dellintestazione TCP e IP. Essa viene definita Maximum Segment Size (MSS): MSS = MTU – sizeof(TCP header) – sizeof(IP header) Intestazione TCP dati SEGMENTO TCP MESSAGGIO TCP

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20018 Intestazione TCP: formato Source port Destination port Sequence number Acknowledgement number Off ResCodeWindow ChecksumUrgent pointer OptionsPadding Data Source/destination port: identificazione dellapplicazione mittente/ricevente attive rispettivamente sul nodo mittente IP_source e nodo destinatario IP_dest Sequence number: numero di sequenza del primo byte del campo Data nellambito 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 dellultimo 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).

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/20019 Intestazione TCP: formato (cont) Offset: indica la dimensione della porzione Data del segmento TCP Reserved: campo non specificato, riservato ad usi futuri Code: 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 ricevente ACK: campo ACK valido PUSH: il segmento non è soggetto a buffering al lato mittente SYN: synchronize sequence numbers FIN: il mittente ha raggiunto la fine del byte stream generato dalla applicazione Window: il mittente/ricevente comunica al ricevente/mittente la quantità di memoria disponibile per momorizzare dati Options: 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 derrore applicato alla sola intestazione TCP (non alla parte data), per il calcolo del codice di controllo derrore si assume che il campo checksum contenga una stringa di 0

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ 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 Sock2=(port2, ) Sock1=(port1, ) Sock3=(port3, ) Sock4=(port4, ) Sock5=(port5, ) conn1 conn2 conn3 Conn1=(sock1, sock4) Conn2=(sock2, sock4) Conn3=(sock3, sock5)

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ Affidabilità

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ Positive acknowledgement P1P2P3P4 P5 ACK(s1+1) ACK(s2+1)ACK(s3+1) timeout t t Sn: numero di sequenza dellultimo byte delln-esimo messaggio; il numero di sequenza Iniziale 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 dallattesa dellacknowledgement s1 P1 s2 P2 s3 P3 s4 P4 s5 P5 Numero di sequenza del byte MITTENTE RICEVENTE ACK duplicati

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ Sliding window Ottimizzazione dellalgoritmo di positive acknowledgement in cui il mittente e autorizzato ad inviare m pacchetti (n byte) prima di porsi in attesa della ricezione dellacknowledgement 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 dellack del primo messaggio della window stessa Nel caso in cui il tempo che intercorre tra linvio 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 dellapplicazione. Il fenomeno contrario, in cui il mittente trascorre la maggior parte del tempo attendendo la ricezione dellack (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)

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ Sliding window (cont) P1P2 100by P3P4P5P6 ACK(s1) ACK(s2)ACK(s3)ACK(s4)ACK(s5) timeout t t Sn: numero di sequenza dellultimo byte delln-esimo messaggio; il numero di sequenza Iniziale 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 P4P5 ACK(s3) 800by P6P7P5 ACK(s6)ACK(s7)

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ 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 allinterno 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 lack 2: spazio di memoria disponibile per la ricezione di nuovi dati (RECEIVE WINDOW) 3: sequence number futuri che non sono ancora ammessi Byte sequence number 1234 AL LATO MITTENTE : AL LATO RICEVENTE : Byte sequence number 123 window receive window buffer send window acked not acked acked

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ Terminologia (cont) offered window: la dimensione della finestra segnalata dal ricevente. Loffered 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]

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ Controllo e prevenzione della congestione

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ 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 M i e stato ricevuto correttamente Data una stima del round trip time RTT, se dopo RTT sec ack(M i ) non e stato ancora ricevuto si assume che M i sia stato perso e si procede con la ritrasmissione e la fase di controllo della congestione

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ Meccanismi di controllo di flusso Si dividono in due gruppi: –Congestion control (implementato dallalgoritmo 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)

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ CONGESTION CONTROL

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ Slow start TCP 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: allinizio 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 * log 2 W CONGESTION CONTROL

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ 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

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ P1 t P2P3 Ack(P1) Cwin=2 Cwin=1 Ack(P4) Cwin=5 Ack(P5) Cwin=6 Ack(P6) Cwin=7 Ack(P7) Cwin=8 P8P9P10P11P12P13P14P15 t Ack(P2) Cwin=3 Ack(P3) Cwin=4 P4P5P6P7 t RTT Packet Time: intervallo di tempo fra 2 pacchetti consecutivi Esempio Ack(P8) Cwin=9 CONGESTION CONTROL

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ CONGESTION AVOIDANCE

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ 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), laumento 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 byte ovvero ad ogni scadere di 1 RTT, cwind aumenta allincirca 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

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ Congestion avoidance (cont) DIMINUZIONE DELLA FREQUENZA TRASMISSIVA: 1.In presenza di ack duplicati (ack del medesimo sequence number S i ) la window size viene ridotta secondo la regola moltiplicativa: cwind i = d * cwind i-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

Tiziana FerrariCorso di Telematica, Anno Acc. 2000/ 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