Strato di trasporto in Internet

Documenti analoghi
Il segmento TCP. Facoltà di Ingegneria 2 Cesena Lauree specialistiche Reti di Telecomunicazioni LS Prof. Franco Callegati

Controllo di flusso in TCP

Strato 4 (Transport Layer) Protocolli TCP e UDP

Parte II: Reti di calcolatori Lezione 13 (37)

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

Gestione delle Reti di Telecomunicazioni

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Telematica di Base. IL Livello di Trasporto TCP

Funzioni del protocollo TCP

Lezione n.3 LIVELLO TRASPORTO

Lo strato di Trasporto

Livello di trasporto e TSAP

Gestione delle connessioni TCP

Transport Layer & TCP/UDP

Controllo di congestione

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

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 3

Reti di Calcolatori:

I protocolli UDP e TCP

Implementazioni tipiche del protocollo TCP

Lo strato di Trasporto

Riferimenti. I protocolli TCP e UDP. Sorgente TCP. Principi Fondamentali. TCP header. Ricevitore TCP

Transmission Control Protocol

Rete: livello trasporto (TCP/IP) Rete: livello trasporto (TCP/IP) Rete: livello trasporto (TCP/IP) Rete: livello trasporto (TCP/IP) Parte 2 - Indice

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

Soluzione dell esercizio 2 (TCP) dell esame del 16 giugno 2015

UDP. User Datagram Protocol. UDP Connectionless

TCP: rassegna RFCs: 793, 1122, 1323, 2018, 2581

Livello trasporto. Servizi del livello trasporto

Il Livello Trasporto III 3. Corso di RETI DI CALCOLATORI (9 CFU) a.a II anno / II semestre. Il Livello Trasporto. Il Livello Trasporto


Telematica di Base. Il livello di trasporto

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

1) (commutazione pacchetto, prodotto banda-ritardo) 2) (frammentazione, commutazione di pacchetto) 3) (Selective Repeat)

Università degli Studi di Bergamo

Livello trasporto. Controllo del flusso e della congestione

I protocolli UDP e TCP

Reti di Calcolatori:

Lo strato di Trasporto

4 - Il livello di trasporto

Parte II: Reti di calcolatori Lezione 14 (38)

Reti di Calcolatori in Tecnologia IP

Argomenti: ! Servizi dello strato di trasporto! multiplexing/demultiplexing! Servizio senza connessione: UDP

Sistemi e Tecnologie della Comunicazione

Reti di Comunicazione e Internet

Protocolli di Trasporto in reti IP

TCP. Servizio di Trasporto Affidabile. Transmission Control Protocol. Caratteristiche di TCP 1

Tecniche ARQ (protocolli a finestra)

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

PARTE 5 LIVELLO TRASPORTO. - Protocolli UDP e TCP. Parte 5. Modulo 1: Servizi del livello trasporto

Principi di trasferimento affidabile

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

Parte II: Reti di calcolatori Lezione 12

Controllo della congestione

Parte II: Reti di calcolatori Lezione 12 (36)

Internet (- working). Le basi.

LABORATORIO DI RETI. 03 Controllo a Finestra

Modelli analitici per l analisi delle prestazioni del protocollo TCP

UNIVERSITA DEGLI STUDI DI PAVIA

Reti di Calcolatori I. Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Corso di Reti di Telecomunicazioni

Livello trasporto in Internet

Livello trasporto in Internet

Protocolli a finestra

Parte II: Reti di calcolatori Lezione 15 (39)

Il livello trasporto: Introduzione e protocollo UDP

Avvertenza: Si usi lo spazio dopo ogni quesito per lo svolgimento. Includere fogli aggiuntivi solo se strettamente necessario.

Il livello trasporto: controllo di flusso in TCP

Rete: classificazione in funzione della distanza fra due generici elementi

Il livello trasporto: Introduzione e protocollo UDP

Internet Protocol Cenni introduttivi

Livello di trasporto: meccanismi trasferimento dati affidabile

RETI DI CALCOLATORI. TCP e UDP: Il Livello di Trasporto Internet

Prova completa - Rete Internet (ing. Giovanni Neglia) Mercoledì 11 Luglio Cognome: Nome: Corso di laurea e anno: Matricola: Firma:

Reti di Calcolatori. Livello Data Link. Il livello di trasporto. 7 - Applicazione. Applicaz.: HTTP, Presentazione

Multiplexing. Modello di servizio TCP 2. Modello di servizio TCP 1. Modello di servizio TCP 3. Modello di servizio TCP 4. Il protocollo TCP 1

Principi di trasferimento affidabile

1. Supponendo che il canale trasmissivo sia esente da errori, si determini il throughput di S1.

Nome e Cognome : Anno di corso Numero di matricola : Como, 7 maggio Quiz a risposta multipla

MODELLI ISO/OSI e TCP/IP

Parte II: Reti di calcolatori Lezione 14 (38)

Esercitazione. Livello di Trasporto [Capitolo 3]

Parte II: Reti di calcolatori Lezione 14 (38)

Transmission Control Protocol: TCP

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

Roadmap. to-end o Relayed. Comunicazione End-to. Comunicazione:

Gestione della Connessione in TCP

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

Livello trasporto in Internet

Livello trasporto in Internet

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

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Protocolli di Trasporto in reti IP

Il livello trasporto Protocolli TCP e UDP

Transcript:

Strato di trasporto in Internet Prof. Franco Callegati DEIS Università di Bologna http://deisnet.deis.unibo.it Trasporto in Internet Architettura protocollare tradizionale di Internet: Tipologia di servizio: dati Due protocolli di trasporto: TCP: connection oriented UDP: connectionless Nuovi servizi multimediali: Emergono problematiche di trasporto real time Vengono definiti nuovi protocolli di trasporto RTP, RTCP 2 1

Transmission Control Protocol - RFC 793 Obiettivi: Controllo della comunicazione end-to-end e fullduplex fra processi applicativi Garanzia di affidabilità del trasporto Assume che: lo strato di rete fornisca solamente un semplice ed inaffidabile servizio di trasferimento dei pacchetti di tipo connectionless (quello che fa l IP) Consente la Multiplazione: permette a più processi applicativi di utilizzare le sue funzioni di comunicazione in contemporanea 3 Il segmento TCP TCP incapsula i dati delle applicazioni in pacchetti detti segmenti Il segmento TCP prevede Un header standard di 20 byte Un header variabile per negoziare delle opzioni Un payload di dimensione variabile contenente i dati di applicazione Il segmento TCP ha una dimensione massima detta Maximum Segment Size (MSS) MSS corrisponde alla massima dimensione del blocco dati di applicazione che può essere contenuto nel segmento 4 2

RFC 793: introduzione The Transmission Control Protocol (TCP) is intended for use as a highly reliable host-to-host protocol between hosts in packet-switched computer communication networks, and in interconnected systems of such networks. the primary purpose of the TCP is to provide reliable, securable logical circuit or connection service between pairs of processes requires facilities in the following areas: Basic Data Transfer Reliability Flow Control Multiplexing Connections Precedence and Security 5 Affidabilità del collegamento Il TCP cerca di garantire l affidabilitàdel canale end-to-end utilizzando numerazione sequenziale dei dati unità di riferimento il byte conferma della ricezione di ogni byte da parte del ricevitore (acknowledge) ritrasmissione dei dati di cui non viene confermata la ricezione Tutto questo viene implementato con un protocollo di tipo Automatic Repeat Request 6 3

Automatic Repeat Request (ARQ) I protocolli ARQ vengono utilizzati nello strato di linea ed in quello di trasporto Controllano: Il singolo collegamento nello strato di linea Tipicamente singolo flusso seriale di bit La connessione end-to-end nello strato di trasporto Tipicamente cascata di nodi e collegamenti con tecnologie e prestazioni diverse Le problematiche dei protocolli di linea sono diverse da quelle dei protocolli di trasporto perché è diverso il tipo di canale 7 Canale di comunicazione Protocolli di linea Operano su di un collegamento diretto di tipo puntopunto o punto-multipunto Le trame arrivano nella stessa sequenza con cui sono inviate a meno degli errori Tutte sperimentano ritardi di propagazione circa uguali Protocolli di trasporto Fanno riferimento ai punti terminale di un trasferimento di dati tramite rete Perdite di dati (errori di trasmissione, scarto nei nodi) Duplicazione dei dati Ritardi variabili Arrivi fuori sequenza 8 4

ARQ: Numerazione e conferma Unità informativa Nello strato 4 per TCP byte Nello strato 2 (famiglia HDLC) trama Trasmettitore e ricevitore mantengono due contatori sequenziali: S: Numero di unità informative inviate R: Numero di unità informative ricevute Il trasmettitore non può sapere se le unità informative inviate siano state correttamente ricevute Conferma della ricezione dal ricevitore Al ricevitore Quando un unità informativa viene ricevuta in modo corretto allora R = R+1 Quando una trama viene ricevuta in modo non corretto viene ignorata e R non viene modificato La corretta ricezione viene confermata dal ricevitore inviando al trasmettitore il proprio valore di R R rappresenta un puntatore al valore di S atteso da ricevitore 9 ARQ: controllo dell errore Cerca di garantire un corretto trasferimento dei dati se la rivelazione degli errori di trasmissione è corretta Il protocollo prevede che: Sia possibile individuare trame errate, utilizzando codici di canale a rivelazione d'errore trame replicate o fuori sequenza utilizzando la numerazione delle unità informative Il ricevitore Ignora le trame errate Scarta le trame replicate o fuori sequenza Può far partire le procedure di ritrasmissione Il trasmettitore Ritrasmette le trame non correttamente ricevute Su indicazione del ricevitore Alla scadenza di un time-out 10 5

Conferma o Acknowledge (ACK) La conferma può essere Esplicita Ad ogni trama ricevuta correttamente deve corrispondere una trama di conferma Implicita (cumulativa) L invio di R conferma tutte le unità informative fino ad R In piggybacking Viaggia inserita (a cavalluccio ) in una trama contenente dati utili I protocolli ARQ tipicamente Confermano la ricezione delle unità informative Non confermano la ricezione delle conferme Non è necessario numerare le conferme A S R 0 0 1 0 2 1 3 1 B S R 0 1 0 2 0 3 0 4 11 Finestra di trasmissione e Numerazione Finestra di trasmissione W W = numero massimo di unità informative che il trasmettitore può inviare senza ricevere alcuna conferma La numerazione viene effettuata modulo M M = 2 n dove n è il numero di bit utilizzati per la numerazione La numerazione scorre nel tempo (sliding window) 0 7 1 0 7 1 0 7 1 6 2 6 2 6 2 5 4 3 5 4 3 5 4 3 Finestra W=4 Trasmetto 0, 1, 2, 3 Ricevuto ACK 1 Trasmetto 4 Ricevuto ACK 2 Trasmetto 5 12 6

Time out Il protocollo può entrare in stallo (deadlock) Se le unità informative informative sono perdute Se gli ACK sono perduti È necessario un time out per riprendere il dialogo Un orologio parte al termine della trasmissione di ciascuna unità informativa Se si raggiunge il time out senza avere conferma si ritrasmette Time out X X 13 Quanto deve essere lungo il Time out? Time out troppo breve Non si attende l arrivo dell ACK Invio duplicato Time out troppo lungo Inutile attesa prima di ritrasmettere Time out Troppo presto Time out Tempo perso In entrambi i casi Si spreca capacità di trasmissione (banda) Degradano le prestazioni 14 7

La finestra Per quale motivo imporre W finito e sospendere la trasmissione delle trame? Garantire unicità di numerazione in una finestra temporale Le PCI hanno dimensioni finite Lo spazio di numerazione ha necessariamente dimensioni limitate Le unità informative di uguale numero sono indistinguibili Garantire controllo di flusso automatico Le velocità di trasmettitore e ricevitore possono essere molto diverse Il trasmettitore non deve saturare il ricevitore La capacità della rete a disposizione della connessione può modificarsi nel tempo Il trasmettitore non deve congestionare la rete 15 Dimensione della finestra Quale deve essere la dimensione della finestra? Deve essere dimensionata in modo congruente con le memoria di trasmissione e ricezione Il ricevitore deve comunicare al trasmettitore le dimensioni della sua memoria di ricezione Deve essere dimensionata in modo congruente con la banda disponibile Il trasmettitore deve stimare le condizioni della rete 16 8

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 17 Adattatività del controllo di flusso B RTT/2 Tx Rx 18 9

Controllo del canale in TCP Prof. Franco Callegati DEIS Università di Bologna http://deisnet.deis.unibo.it 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 (W) 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 MSS = w 20 10

Attuazione del controllo Come un ricevitore lento blocca un trasmettitore più 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 21 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 22 11

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 23 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 24 12

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) Ad ogni ACK ricevuto W = W+1/W w = w + MSS 2 /w Ad ogni ACK ricevuto W = W+1 w = w + MSS 25 Scade RTO RTO scade quando un segmento non viene riscontrato oppure il relativo Ack non giunge in tempo utile Tale evento viene viene interpretato 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 Si riparte da capo ponendo W = 1 Si diminuisce ssthr TCP in Congestion Avoidance Termina la fase di Congestion Avoidance e riparte lo Slow Start Si diminuisce ssthr 26 13

Esempio di evoluzione della CW Da A.S. Tanenbaum, Reti di Calcolatori 27 Il segmento TCP Prof. Franco Callegati DEIS Università di Bologna http://deisnet.deis.unibo.it 14

Formato del segmento TCP (1) 32 bit Source Port Destination Port Sequence number Acknowledge number TCP header length Reserved U R G A C K P S H R S T S Y N F I N Window Checksum Urgent Pointer Opzioni Padding Dati 29 Formato del segmento TCP (2) Source (Destination) port: numero della porta sorgente (destinazione) Sequence number: numero di sequenza del primo byte del pacchetto; se è presente il bit SYN questo è il numero di sequenza iniziale su cui sincronizzarsi Acknowledge number: se il bit ACK è a 1 allora questo numero contiene il numero di sequenza del blocco di dati che il ricevitore si aspetta di ricevere TCP Header Length (4 bit): numero di parole di 32 bit dell intestazione TCP; indica dove iniziano i dati Reserved: sei bit riservati per uso futuro 30 15

Formato del segmento TCP (3) Control bit: sono 6 bit di controllo - URG posto a 1 se si deve considerare il campo Urgent Pointer - ACK posto a 1 se si deve considerare il campo Acknowledge - PSH posto a 1 serve per la funzione di push - RST posto a 1 per resettare la connessione - SYN posto a 1 per sincronizzare i numeri di sequenza - FIN posto a 1 per indicare la fine dei dati 31 Formato del segmento TCP (4) Window: finestra del ricevitore, cioè il numero di byte che il ricevitore è disposto a ricevere, partendo dal numero di sequenza di quello contenuto nel campo acknowledge Checksum: controllo dell errore sul segmento Urgent Pointer: contiene puntatore a dati urgenti eventualmente presenti nel pacchetto (es. per abortire programma remoto in esecuzione), ha senso se il bit URG è posto ad 1 Options: contiene opzioni per la connessione Padding: bit aggiuntivi per fare in modo che l intestazione sia multipla di 32 bit 32 16

Checksum Viene calcolato utilizzando Pseudo-header (psedo-intestazione) Indirizzi IP sorgente e destinatario Protocol Lunghezza in byte del segmento TCP (payload IP) Non viene trasmessa ma viene calcolata in trasmissione e in ricezione Intestazione TCP Con campo checksum posto a 0 Dati del segmento TCP Se il numero di byte è dispari viene aggiunto un byte di padding con tutti i bit a 0 Il padding non viene trasmesso 33 Calcolo del checksum The checksum field is the 16 bit one's complement of the one's complement sum of all 16 bit words in the header and text One s complement Converte tutti gli 1 in 0 e tutti gli 0 in 1 Il calcolo Somma fra loro tutte le parole di 16 bit utilizzando l operazione di EX-OR Effettua il complemento ad 1 del risultato Se il segmento è corretto il checksum calcolato al ricevente risulta di tutti 0 34 17

Funzionamento di TCP Prof. Franco Callegati DEIS Università di Bologna http://deisnet.deis.unibo.it La macchina a stati finiti del TCP Linee tratteggiate Azioni tipiche di un server Linee nere Azioni tipiche di un client Linee chiare Eventi inusuali Transizioni Causa/effetto Da A.S. Tanenbaum, Reti di Calcolatori 36 18

Dialogo su rete inaffidabile Se il mezzo di comunicazione è inaffidabile risulta sostanzialmente impossibile avere uno scambio di informazioni con conferma certa Problema logico delle 3 armate A invia un messaggio e B lo conferma Se A non riceve la conferma non può sapere se B abbia ricevuto il messaggio o meno Perdita del messaggio o della conferma? Il ragionamento si può proseguire sulla conferma della conferma ecc. È necessario decidere dove fermarsi per raggiungere un determinato grado di affidabilità 37 Apertura della connessione TCP Invio di dati SIN=1, SeqN=x ACK=0 SIN=1, SeqN=y ACK=1, AckN=x+1 SIN=0, SeqN=x+1 ACK=1, AckN=y+1 SeqN=x+1 ACK=1, AckN=y+1 L apertura della connessione è critica I segmenti di segnalazione possono essere persi, duplicati e ritardati Three ways handshake Si è dimostrato molto robusto alla prova dei fatti Utilizza sinergicamente i bit di flag e quelli di numerazione Si noti che il primo pacchetto dati ha numero di sequenza uguale all ACK precedente (ACK non occupa spazio di numerazione) 38 19

Caratteristiche del TWH Il three-ways handshake resiste alla instaurazione contemporanea di due connessioni ignora pacchetti di apertura ritardatari SIN=1, SeqN=x SIN=1, SeqN=z SIN=1, SeqN=x ACK=0 SIN=1, SeqN=y ACK=0 SIN=1, SeqN=y ACK=1, AckN=x+1 SIN=1, SeqN=x ACK=1, AckN=y+1 SIN=0, SeqN=x+1 ACK=1, AckN=y+1 ACK=0 SIN=1, SeqN=y ACK=1, AckN=z+1 RST=1, SeqN=z+1 SIN=1, SeqN=y ACK=1, AckN=x+1 SIN=0, SeqN=x+1 ACK=1, AckN=y+1 39 Chiusura della connessione TCP Soft release Il TCP cerca di realizzare la chiusura ordinata della connessione, garantendo che non vadano persi dati Anche questo problema non può essere risolto in modo rigoroso su una rete inaffidabile TCP sceglie di realizzare la chiusura con modalità simplex Le due direzioni vengono rilasciate in modo indipendente Il TCP che intende terminare la trasmissione emette un segmento con FIN=1 Quando questa entità riceve l Ack la direzione si considera chiusa Se dopo un certo tempo non arriva l Ack il mittente del FIN rilascia comunque la connessione L altra direzione può continuare a trasmettere dati finché non decide di chiudere 40 20

Esempio di chiusura normale TCP A decide di chiudere Inizia la procedura inviando un segmento con FIN=1 TCP B rileva la richiesta di chiusura Procede anche lui all invio di un segmento con FIN=1 TCP A TCP B 1. ESTABLISHED ESTABLISHED 2. (Close) FIN-WAIT-1 --> <SEQ=100><ACK=300><CTL=FIN,ACK> --> CLOSE-WAIT 3. FIN-WAIT-2 <-- <SEQ=300><ACK=101><CTL=ACK> <-- CLOSE-WAIT 4. (Close) TIME-WAIT <-- <SEQ=300><ACK=101><CTL=FIN,ACK> <-- LAST-ACK 5. TIME-WAIT --> <SEQ=101><ACK=301><CTL=ACK> --> CLOSED 6. (2 MSL) CLOSED 41 I timer del TCP Il TCP mantiene attivi 4 contatori per ogni una connessione Time-out di trasmissione (retransmission timer o RTO) Persist timer Keepalive timer 2MSL timer utilizzato per lo stato TIME-WAIT I contatori sono utilizzati per Evitare situazioni di deadlock Evitare possibili malfunzionamenti in incarnazioni diverse della stessa connessione 42 21

Time out di trasmissione Ogni volta che si trasmette un segmento viene fatto partire il Retransmission Timer (RTO) Se il timer scade prima che sia stato ricevuto l ACK si assume che il segmento non sia stato ricevuto RTO deve essere dimensionato in relazione al tempo di andata e ritorno (Round Trip Time o RTT) RTT è una variabile aleatoria che dipende dalle condizioni della rete (diversamente a quello che avviene sul canale sequenziale) È molto difficile scegliere un corretto valore per il Timeout Il timeout deve essere determinato in modo dinamico L idea base e di mantenere aggiornato un valore medio del RTT e di calcolare il time out in funzione di esso Per avere un valore medio di RTT è necessario utilizzare una qualche procedura di numerazione 43 22