Prof. Ing. Maurizio Casoni Dipartimento di Ingegneria dell Informazione Università degli Studi di Modena e Reggio Emilia



Documenti analoghi
Gestione della Connessione in TCP

Parte II: Reti di calcolatori Lezione 13

Controllo di flusso in TCP

Reti di Calcolatori:

Dipartimento di Ingegneria dell Informazione e Metodi Matematici Laboratorio di Reti Prof. Fabio Martignon

Avoidance, Fast Retransmit, And Fast Recovery

CW = 3MSS Base = Y Next = Y + 3MSS

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Implementazioni tipiche del protocollo TCP

Internetworking TCP/IP: esercizi

Livello trasporto. Controllo del flusso e della congestione

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

DA SA Type Data (IP, ARP, etc.) Padding FCS

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Gestione delle connessioni TCP

Controllo della congestione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci

Strato di Trasporto Multiplazione a livello di trasporto

Introduzione (parte III)

Transmission Control Protocol (TCP) Andrea Detti

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

Reti di Telecomunicazione

Standard: OSi vs TCP/IP. Il livello di trasporto. TCP e UDP. TCP: Transmission Control Protocol. TCP: funzionalità

Modelli analitici per l analisi delle prestazioni del protocollo TCP

Il livello trasporto Protocolli TCP e UDP

Reti di Telecomunicazione Lezione 8

Controllo di congestione

Transmission Control Protocol

RETI DI TELECOMUNICAZIONE

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Martedì 22 Febbraio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 14 Settembre 2005, ore 9.00

IP Internet Protocol

Architetture di Internet esercizi livello di Trasporto

Introduzione alle Reti Telematiche

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Reti di Comunicazione e Internet

Svantaggi della Commutazione di Circuito. Commutazione di Pacchetto. Struttura di un Pacchetto

Analisi di Protocolli

Capitolo 3 - parte 4. Corso Reti ed Applicazioni Mauro Campanella

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Il livello Data-Link e i suoi protocolli

Lo scheduling. Tipici schedulatori

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Reti di Calcolatori in Tecnologia IP

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

Reti di Calcolatori. Il software

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Funzioni del protocollo TCP

Soluzioni verifica parte 4

9 Febbraio 2015 Modulo 2

CRITERI DI VALUTAZIONE DEL PROTOCOLLO TCP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

26 Febbraio 2015 Modulo 2

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Esercizi su strati di trasporto e di rete

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Esercizi Reti di TLC A Parte II. Indirizzamento IP. Esercizio 9.1. Esercizio 9.2. Luca Veltri

Parte II: Reti di calcolatori Lezione 14 (38)

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Il routing in Internet Exterior Gateway Protocols

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Livello trasporto in Internet

Rendering air show e verifica della sincronizzazione

Parte II: Reti di calcolatori Lezione 15 (39)

LIVELLO DATA LINK (DI LINEA)

Strutturazione logica dei dati: i file

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Rete di accesso / Rete di trasporto

P2-11: BOOTP e DHCP (Capitolo 23)

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Strato di Col o l l e l g e a g m a e m n e t n o

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica

Lo scenario: la definizione di Internet

Strato di trasporto in Internet

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

4 - Il livello di trasporto

Per essere inviato il dato deve essere opportunamente codificato in modo da poter essere trasformato in SEGNALE, elettrico oppure onda luminosa.

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

SAPIENZA Università di Roma Facoltà di Ingegneria

Livello di trasporto: TCP, controllo flusso, controllo congestione

Livello di Trasporto

Page 1. Elementi Base del Modello OSI. Il modello di riferimento ISO/OSI OSI: Open Systems Interconnection. Struttura a Livelli.

Inizializzazione degli Host. BOOTP e DHCP

NODO DI RETI A COMMUTAZIONE DI CIRCUITO

Informatica per la comunicazione" - lezione 8 -

Controllo di Congestione in Reti Internet Docente: Vincenzo Eramo

Elementi di Psicometria con Laboratorio di SPSS 1

Più processori uguale più velocità?

Livello Trasporto. Liv. Applic. Liv. Transport. Transport Entity. Liv. Network. Trasporto

TEST DI RETI DI CALCOLATORI I (9400N) anno 1999/2000

Transcript:

Controllo di flusso in TCP Prof. Ing. Maurizio Casoni Dipartimento di Ingegneria dell Informazione Università degli Studi di Modena e Reggio Emilia

Meccanismo a finestra La dimensione della finestra viene messa a punto dinamicamente sulla base di informazioni Provenienti dal ricevente (advertised window o AW) Comunicata in modo esplicito al trasmettitore Funzione dello stato di congestione della rete (congestion window o CW) Non c è in genere comunicazione esplicita di CW e TCP gli attribuisce un valore in base alla percezione di congestione che riceve dalla rete max[w] = min[aw,cw] Sender s window 1 2 3 4 5 6 7 8 9 10 11 12 13 Acks received Not transmitted N. 2

Unità di misura di W TCP adotta la numerazione sequenziale dei dati trasmessi per byte W può essere misurata In byte (w) In numero di segmenti In questo caso si deve indicare quale lunghezza si assume per i segmenti Normalmente W viene misurata in segmenti di dimensione massima (full sized segments) W x MSS = w N. 3

Buffer di trasmissione Il buffer di trasmissione viene riempito dai byte generati dalla applicazione Il trasmettitore non puo avere piu di AW byte in attesa di riconoscimento Buffer di trasmissione Appl. Last byte acknowledged Last byte sent Last byte written Effective window (byte) EW= AW-(last byte sent-last byte acknowledged) t N. 4

Buffer di ricezione Il processo ricevente legge byte dal buffer di ricezione I dati possono arrivare fuori ordine Buffer di ricezione Appl. last byte read next byte expected last byte received Il valore di AW (byte) e lo spazio disponibile nel buffer del ricevitore di dimensione B AW= B (last byte received last byte read) t N. 5

Attuazione del controllo Come un ricevitore lento blocca un trasmettitore piu veloce Il buffer di ricezione si riempie AW 0 EW 0 Il trasmettitore blocca la trasmissione Ripresa della trasmissione Il processo ricevente legge dal buffer AW > 0 Arrivano gli ACK Si libera il buffer di trasmissione Viene ricevuto AW > 0 Il processo trasmittente ricomincia a trasmettere N. 6

Deadlock Trasmittente Invia messaggi Riceve un messaggio con AW=0 Sospende l invio dei dati Ricevente Il buffer di ricezione si riempie Invia un messaggio con AW=0 Non ha altri messaggi da trasmettere A questo punto il protocollo è in deadlock Il trasmittente non può inviare dati poiché AW=0 Il ricevente non ha dati da inviare quindi non ha modo di comunicare AW>0 TCP prevede che sia sempre possibile inviare un segmento di 1 byte anche se AW=0 N. 7

Controllo di congestione W è limitato superiormente da AW o da CW Come viene determinata CW? TCP cerca di adattare la dimensione della finestra alle condizioni di congestione della rete Idea base: se si verifica congestione in rete si rallenta la trasmissione Quando si verifica una perdita si riduce W Quando gli ACK arrivano correttamente W viene aumentata N. 8

CW ideale Avendo a disposizione una banda B (byte/sec) Il massimo throughput si ottiene quando il protocollo a finestra non limita la velocità di scambio dei dati w id RTT*B W id = w id /MSS In questo caso si utilizza al 100% la capacità disponibile nella tratta trasmettitore/ricevitore Se w < w id : si spreca banda Se w > w id : è necessario accodare nei router intermedi cresce il ritardo e potenzialmente anche la perdita Il massimo throughput (byte/sec) vale: S = w/rtt N. 9

Problemi Al momento dell instaurazione della connessione TCP la banda disponibile B è incognita A quale valore si deve impostare CW? La banda disponibile B può cambiare durante la connessione CW va adattata dinamicamente alla banda disponibile Sono definite due fasi che corrispondono a diverse dinamiche di CW Slow start Per raggiungere velocemente un W prossimo a W id Congestion avoidance Per far si che W sia il più prossimo possibile a W id durante la connessione N. 10

Ipotesi di partenza Trasmettitore e ricevitore sono correttamente configurati I buffer di trasmissione e ricezione sono abbastanza grandi per le necessità della connessione Le applicazioni non determinano stagnazione dei dati nei buffer di ricezione AW >> CW W=CW W viene determinata dai meccanismi di controllo della congestione del TCP N. 11

Slow start All inizio la W è posta a 1 MSS Trasmesso il segmento si ferma ed aspetta l ACK Se ACK arriva entro il Timeout si pone W=2 MSS e si trasmettono 2 segmenti Ad ogni nuovo ACK ricevuto W = W+1 Ricevuto l ACK del terzo segmento risulta W=4 Slow start viene interrotto quando si raggiunge la Slow Start Threshold (SSThr) All apertura della connessione un valore tipico per la soglia è SST=64 Kbyte W ha una crescita esponenziale Slow start dura approssimativamente T ss = RTT log 2 SSThr N. 12

Congestion avoidance Si passa da una crescita esponenziale ad una crescita lineare W viene incrementata di una MTU ad ogni passo fino a raggiungere AW Ad ogni nuovo ACK ricevuto W = W+1/W Ricevuti gli ACK di una intera finestra risulta W = W+1 Poiché w = W x MSS risulta w = w + MSS 2 /w N. 13

Esempio di evoluzione della finestra Congestion Window size (segments) 14 12 10 8 6 4 2 0 Congestion avoidance Slow start Slow start threshold 0 1 2 3 4 5 6 7 8 Time (round trips) N. 14

In caso di congestione Un segmento non viene riscontrato Scade il Time out Viene preso come indicatore di rete congestionata Con una buona stima del RTT il time out scaduto è (quasi) sempre dovuto a perdita del segmento Con una tecnologia di trasmissione affidabile la perdita è (quasi) sempre dovuta a saturazione delle code nei router TCP in Slow Start Si riparte da capo ponendo W = 1 TCP in Congestion Avoidance Riparte lo Slow Start con W = 1 Si impone SSThr = SSThr/2 N. 15

Alcuni commenti In questo modo TCP si adatta dinamicamente alle variazioni di capacità della rete, tendendo ad occupare tutta la banda disponibile (protocollo greedy) Recentemente sono state proposte nuove implementazioni di TCP, con una gestione più sofisticata dello slow start e della soglia T, che risultano più efficienti Se la rete è molto inaffidabile (per esempio una rete radio) non si può attribuire ogni perdita di pacchetto a congestione e occorrono algoritmi speciali N. 16

Esempio di evoluzione della CW Da A.S. Tanenbaum, Reti di Calcolatori N. 17

AIMD Congestion control L algoritmo di Congestion Avoidance viene anche detto di incremento additivo e decremento moltiplicativo Se r è la quantità di dati inviata dal trasmettitore Additive-increase Aumento la velocità (dimensione della finestra) in modo additivo Se la rete non evidenzia congestione al passo i-esimo r i+1 = r i + c c << r max Multiplicative-decrease Decremento la velocità (dimensione della finestra) in modo moltiplicativo Se si rivela una situazione di congestione r i+1 = a r i a < 1 N. 18

Segmenti fuori sequenza Quando un segmento viene perso il ricevitore riceve uno o più segmenti fuori sequenza Il ricevitore dovrebbe inviare immediatamente un ACK duplicato per ogni segmento fuori ordine L ACK duplicato è riferito all ultimo segmento ricevuto correttamente La perdita di un segmento genera ACK duplicati Questo può essere utilizzato come indicazione di congestione unitamente al time-out Sono stati proposti ulteriori algoritmi per sfruttare al meglio questa situazione Fast retransmit Fast recovery N. 19

Ack duplicati: esempio 30 29 28 27 24 25 26 27 31 30 29 28 26 27 27 i data i ack Dup ack N. 20

Fast retransmit La ricezione di 3 ACK duplicati indica la perdita del segmento successivo a quello confermato dagli ACK 3 ACK con uguale ackn Sono stai ricevuti i byte fino a ack(n-1), manca il segmento successivo TCP ritrasmette il segmento mancante senza attendere la scadenza del timeout Si ritrasmette il segmento di numero seqn=ackn Si fa partire la procedura di Fast recovery N. 21

Fast recovery Gli ACK duplicati indicano che il ricevitore sta comunque ricevendo dei segmenti La rete continua a consegnare segmenti a meno di quello mancante che non è giunto a destinazione Questo può non essere vero se la rete duplica grandi quantità di segmenti Si assume che la perdita del segmento sia un evento puntuale Non c è ragione di ripartire con lo slow start Si spera che la ritrasmissione del segmento mancante sia sufficiente Ritrasmesso il segmento mancante si prosegue in congestion avoidance N. 22

Algoritmo di Fast recovery Si riduce la soglia di CW SSThr = SSThr/2 Si pone W = SSThr+3 Si tiene conto che almeno 3 segmenti successivi al mancante sono stati ricevuti in quanto sono partiti gli ACK duplicati Si continua con la trasmissione Si rispetta il limite di W Ad ogni ACK ricevuto ed ancora duplicato si pone W = W+1 Quando arriva l ACK per il pacchetto perduto finisce la fase di fast recovery Si riparte con congestion avoidance ponendo W = SSThr N. 23

Alcuni commenti Fast retransmit/fast recovery cercano di sfruttare la capacità di TCP di memorizzare i segmenti fuori sequenza SST viene ridotta per riadattarsi alle condizioni di carico della rete tramite una nuova fase di congestion avoidance Durante il Fast recovery si gonfia W di tanto quanti sono i segmenti ricevuti fuori sequenza (che hanno causato gli ACK duplicati) Terminata la fase di fast recovery W viene sgonfiata per tornare al valore previsto da congestion avoidance N. 24

Modelli matematici del TCP Un modello analitico del TCP deve catturare due processi fondamentali: Dinamica della finestra di trasmissione W(t) Il processo di perdita che si genera all interno della rete Espressione della velocità di trasmissione dei pacchetti da parte della sorgente TCP: X(t)=W(t)/RTT Nell ipotesi che RTT rimanga sostanzialmente costante per tutto il periodo di osservazione N. 25

Un ipotesi di base Per semplificare il calcolo ipotizziamo che Le dinamiche del TCP non modificano significativamente lo stato delle code nei router I ritardi non si modificano e RTT è circa costante Il tempo si suddivide in unità di dimensione RTT L intera finestra (batch) viene trasmessa all inizio del periodo Al termine del periodo arriva la conferma di ricezione e si può iniziare a trasmettere la finestra successiva W(t) RTT #1 RTT #2 1 7 6 3 2 5 4 1 2 4 t RTT #3 N. 26