Sistemi e Tecnologie della Comunicazione

Documenti analoghi
R. Cusani F. Cuomo, Telecomunicazioni - Transport layer: Introduzione e funzionalità, Maggio 2010

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

Le Reti Informatiche

Lezione n.3 LIVELLO TRASPORTO

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

MODELLI ISO/OSI e TCP/IP

Corso di Reti di Calcolatori

MODELLI ISO/OSI e TCP/IP

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

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

Parte II: Reti di calcolatori Lezione 13 (37)

molteplici problemi e la realizzazione di una gran quantità di servizi, da parte

Le reti di tipo A garantiscono un servizio impeccabile in cui è trascurabile la

2: Architettura delle reti e modello OSI

2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Terminologia e concetti fondamentali La struttura di Internet (hardware e software):

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

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano

3: Architettura TCP/IP

Lo strato di Trasporto

Le Reti Informatiche

Il livello Trasporto si occupa di come avviene lo scambio dei dati tra mittente e destinatario, gestisce quindi l invio e la ricezione dei dati.

Controllo di congestione

TECN.PROG.SIST.INF. I Socket Roberta Gerboni

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

Il livello trasporto: Introduzione e protocollo UDP

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

ISO- OSI e architetture Client-Server

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

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

Il livello trasporto: Introduzione e protocollo UDP

Internet Protocol Cenni introduttivi

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

Il livello trasporto: tecniche di trasmissione affidabile dei dati

Architettura di rete. Modelli di Riferimento: TCP/IP e OSI. Modello di riferimento OSI. Modelli di riferimento. architettura di rete

UD 3 PROTOCOLLO ISO-OSI

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

Protocolli e Architetture. Dr. Greco Polito Silvana

Internet (- working). Le basi.

Sistemi e Tecnologie della Comunicazione

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Reti a commutazione di circuito

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

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

Livello di trasporto: meccanismi trasferimento dati affidabile

Transport Layer & TCP/UDP

Modello OSI (Open System Interconnection) Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

MODELLO OSI. Caratteristiche generali

14/12/2018 Informatici e di Telecomunicazioni

Corso di Informatica

Università degli Studi di Bergamo

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

01/12/2018 Informatici e di Telecomunicazioni

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

Esercitazione. Livello di Trasporto [Capitolo 3]

Gestione delle Reti di Telecomunicazioni

Modi di Trasferimento

R. Cusani - F. Cuomo, Telecomunicazioni - Data link layer: controllo di flusso, Aprile 2010

Livello trasporto. Controllo del flusso e della congestione

- 5 - Controllo a finestra

R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010

Reti di Calcolatori. IL LIVELLO TRASPORTO Protocolli TCP e UDP

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Reti di Calcolatori:

Livello di trasporto:

LABORATORIO DI RETI. 03 Controllo a Finestra

Corso di. Reti di Telecomunicazioni a.a

Lo strato di applicazione in Internet

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

Sistemi distribuiti e reti di calcolatori

Reti di Calcolatori e Laboratorio

Sistemi e Tecnologie della Comunicazione

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

Programma del corso

Telematica di Base. Il livello di trasporto

Le Reti Informatiche

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

Corso di Sistemi di Misura Distribuiti. Ing. Domenico Capriglione

Reti di Calcolatori e Laboratorio - Compito del 12 Gennaio 2012

11. Protocollo di trasporto a datagramma: User Datagram Protocol (UDP)

Introduzione alla rete Internet

Lezione 1. Sistemi di telecomunicazione. Gianluca Reali

Politecnico di Milano Scuola di Ingegneria Industriale e dell Informazione. Modelli Funzionali

Corso di Alfabetizzazione Informatica

Modello a scambio di messaggi

Indirizzamento IP. Politecnico di Milano Facoltà di Ingegneria dell Informazione

Architetture di rete. 4. Le applicazioni di rete

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci

Standard OSI MODELLO OSI. Caratteristiche generali PRINCIPALI OBIETTIVI DEL MODELLO OSI

Livello di trasporto: TCP, controllo flusso, controllo congestione

Esame completo - 8 Luglio 2016

ESERCIZI SVOLTI. Eserczio

Introduzione a Internet e World Wide Web

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

Il protocollo UDP; DatagramPacket. 10/11/2009 Vincenzo Gervasi

Reti di Calcolatori in Tecnologia IP

Controllo della congestione

MODELLO TCP/IP LIVELLO 4 Trasporto. Il protocollo per il controllo della trasmissione. La gestione degli errori di trasmissione

Lo strato di Trasporto

Transcript:

Sistemi e Tecnologie della Comunicazione Lezione 22: transport layer: introduzione, funzionalita 1 Funzione del livello di trasporto Il livello di trasporto ha lo scopo di fornire allo strato superiore un servizio di trasferimento dei dati end to end, mascherando completamente al livello superiore il fatto che tra i due host terminali esista una rete di qualsiasi tipo, topologia, tecnologia e complessita per OSI lo strato superiore e il livello di sessione per TCP/IP lo strato superiore e il livello di applicazione Per assolvere le sue funzioni lo strato di trasporto utilizza i servizi dello strato di rete 2 1

Necessita dello strato di trasporto Perche introdurre un nuovo strato? lo strato di rete opera su tutte le macchine attraversate dai dati, indipendentemente in mancanza di uno strato che operi esclusivamente sui nodi terminali della comunicazione l utente della rete non puo tenere sotto controllo cosa accade ai dati una volta che lasciano l host sorgente lo strato di trasporto rende trasparente allo strato superiore la complessita (l esistenza!) della sottorete La presenza di uno strato intermedio tra applicazione e rete puo offrire un meccanismo per rendere affidabile una comunicazione su sottoreti inaffidabili Inoltre offre al suo utente una interfaccia indipendente dalle diverse tecnologtie dello strato di rete 3 Servizi forniti allo strato superiore Lo strato di trasporto puo offrire servizio affidabile orientato alla connessione servizio inaffidabile non orientato alla connessione In modo analogo ai servizi equivalenti dello strato di rete: il servizio orientato alla connessione realizza un trasferimento dei dati affidabile (controllo della integrita, della completezza, dell ordine) e permette di gestire controllo di flusso; i dati vengono trasferiti con un procedimento in tre fasi si stabilisce la connessione si inviano i dati attraverso la connessione si chiude la connessione il servizio non orientato alla connessione fornisce un meccanismo di trasferimento dati best-effort : ogni blocco di dati viene inviato e ci si dimentica di lui; se arrivano, bene, se no l applicazione dovra farsi carico di operare azioni correttive (se necessarie) 4 2

Protocollo di trasporto Il livello di trasporto realizza le sue funzioni comunicando con il processo paritario secondo un protocollo definito Le informazioni vengono scambiate tramite la trasmissione di blocchi di dati in OSI si chiamano TPDU (Transport Protocol Data Unit) in TCP/IP si chiamano segmenti (ma spesso anche pacchetti) Il protocollo si dovra occupare dei meccanismi per gestire i diversi eventi (ove necessari): come si stabilisce la connessione come si chiude una connessione controllo di flusso controllo degli errori, ritrasmissioni e acknowledge ordinamento in sequenza dei dati Le problematiche sono simili a quelle del livello di data link 6 Differenze rispetto al data link Il fatto che a livello di trasporto i due terminali siano separati da una rete provoca complicazioni a livello 2 un pacchetto o arriva o non arriva, mentre a livello 4 la sottorete provoca ritardi e riapparizione di pacchetti che si credevano perduti e quindi ritrasmessi, con conseguente duplicazione il numero delle connessioni cui il livello di trasporto deve far fronte e molto piu elevato che nel caso del data link layer: non sara possibile dedicare a tutte i buffer necessari alle comunicazioni 7 3

Ritardo dei pacchetti e numeri di sequenza Come visto a livello di data link, la gestione delle funzioni di acknowledge e ritrasmissione prevede di utilizzare numeri di sequenza sulle TPDU inviate in una connessione Il fatto che la rete possa ritardare il recapito dei pacchetti comporta delle necessita sulla scelta dei numeri di sequenza Vediamo un esempio che mostra come partire sempre da 0 puo comportare dei problemi: si stabilisce una connessione e si iniziano ad inviare TPDU con seq = 0 dopo 10 secondi la TPDU con seq = X si ferma in un router congestionato; viene reinviata dopo il tempo di timeout e la connessione si chiude si apre subito un altra connessione, nuovamente con seq = 0 a questo punto la TPDU originaria si sblocca ed arriva a destinazione prima che una TPDU con seq = X della nuova connessione venga inviata la vecchia TPDU verra accettata e si ha un errore 8 Ritardo dei pacchetti e numeri di sequenza Per ovviare a questo problema, si devono prendere delle precauzioni: lo strato di rete deve essere in grado di invalidare pacchetti troppo vecchi in questo modo un numero di sequenza gia utilizzato puo essere riutilizzabile dopo un tempo pari o superiore al tempo di vita massimo dei pacchetti la assegnazione dei numeri di sequenza iniziali deve essere fatta in modo da essere sicuri che non esistano sulla rete TPDU con numerazione valida solitamente i numeri di sequenza iniziali di una connessione vengono scelti (da chi inizia la connessione) con un valore legato ad un orologio una scelta opportuna rende impossibile avere ritardati con numeri di sequenza validi che possano essere interpretati in modo errato 9 4

Stabilire la connessione Il problema della inaffidabilita della sottorete e dei duplicati ritardati si presenta anche nella fase di inizializzazione della connessione Per risolverli e stato sviluppato un meccanismo detto handshake a 3 vie: il client invia una TPDU di Connection Request in cui propone un certo valore iniziale di sequenza il server risponde con un acknowledge che riporta il valore iniziale di sequenza proposto dal client, ed il valore di sequenza proposto dal server per il traffico in senso inverso il client invia una terza TPDU che riporta l acknowledge per il numero di sequenza iniziale proposto dal server, e riporta nuovamente il proprio numero di sequenza iniziale (eventualmente questa TPDU puo anche trasportare i primi dati) 10 Handshake a tre vie Il meccanismo visto risponde positivamente ai problemi di duplicati sulla rete sempre nella ipotesi che non possano esistere contemporaneamente sulla rete TPDU con lo stesso numero di sequenza (vedi slide precedenti) In figura a sinistra la procedura normale, a destra cosa accade se arriva una Connection Request ritardata relativa ad una vecchia connessione 11 5

Handshake a tre vie (cont.) In figura e mostrato cosa accade se arriva una Connection Request ritardata relativa ad una vecchia connessione, seguita dalla TPDU di acknowledge finale, anch essa ritardata Poiche host 2 ha proposto come seq il valore y e riceve l acknowledge per z si accorge che deve scartare la TPDU 12 Rilascio della connessione Anche qui ci sono problemi da affrontare La connessione puo essere rilasciata in modo asimmetrico o simmetrico Nel modo asimmetrico la disconnessione viene decisa da uno dei due, che invia una TPDU Disconnect Request e chiude Questo puo comportare la perdita di dati, come mostrato in figura: dopo la disconnessione l host 2 non accetta piu i dati in ingresso 13 6

Rilascio simmetrico Il rilascio simmetrico richiede che le parti siano entrambe consapevoli e daccordo Sorge il problema (insolubile) di essere entrambi sicuri che l altro sia daccordo (problema dei due eserciti) 14 Rilascio simmetrico (cont.) La soluzione adottata usualmente e un handshake a tre vie con timeout: il primo invia una TPDU Disconnect Request, ma lascia la connessione aperta in ricezione ed avvia un timer il secondo invia in risposta una TPDU Disconnect Request lasciando aperta la connessione, ed avvia un timer il primo risponde alla DR ricevuta con una TPDU di ACK e chiude la connessione in caso di perdita delle TPDU i timeout provocheranno, a seconda dei casi, una ritrasmissione o il rilascio definitivo della connessione anche in assenza di riscontro Questa soluzione garantisce quasi sempre che nessun dato venga perduto 15 7

Rilascio simmetrico (cont.) 16 Controllo di flusso e buffering Come visto per il data link layer, il controllo di flusso puo essere gestito tramite un protocollo sliding window Questo protocollo richiede che vengano dedicati buffer in trasmissione per contenere le TPDU inviate e non ancora riscontrate, e buffer in ricezione per contenere dati ricevuti in ordine non corretto Tuttavia il livello di trasporto presenta problemi che non affliggono il data link layer un host puo dover gestire a livello di trasporto centinaia di connessioni contemporanee: si devono trovare le risorse per i buffer la dimensione dei buffer e un altro problema: le applicazioni possono richiedere di trasferire blocchi dati di dimensioni molto differenti (dal singolo carattere di una sessione telnet a svariati KB di un file transfer); allocare buffer di dimensioni definite puo costituire un problema lo strato applicativo potrebbe liberare i buffer in ricezione in modo lento, generando una situazione in cui una TPDU e stata riscontrata in quanto ricevuta, ma il buffer allocato dalla TPDU non e ancora libero 17 8

Alternative in funzione della sottorete In caso di sottorete inaffidabile, il trasmittente deve mantenere i dati nei buffer in questo caso il ricevente potrebbe non utilizzare buffer specifici per la connessione, ma ad esempio un pool di buffer per tutti, richiedendo la disponibilita di buffer dinamicamente e scartando le TPDU in caso di indisponibilita (comunque il trasmittente conserva i dati) Se la sottorete offre un servizio affidabile: se il ricevente rende disponibili buffer in ricezione, il trasmittente potrebbe farne a meno se pero il ricevente non puo garantire spazio sufficiente di buffer, l affidabilita della sottorete garantisce il recapito ma non l accettazione, quindi la risorsa di buffer deve essere allocata anche in trasmissione 18 Alternative in funzione della TPDU size Se le TPDU hanno generalmente una dimensione simile si puo allocare un pool di buffer uguali In caso contrario questa soluzione rappresenta uno spreco di risorse utilizzare buffer di dimensioni medie puo essere piu efficiente, ma le TPDU di grosse dimensioni vanno a occupare piu buffer, complicandone notevolmente la gestione possono essere utilizzati buffer a dimensione variabile, ma anche questo complica la gestione dei dati una terza possibilita e l utilizzo di un grosso buffer circolare per ogni connessione in questo caso si semplifica la gestione dei buffer, ma di nuovo si ha spreco di risorse per connessioni a basso carico trasmissivo 19 9

Alternative in funzione della applicazione Applicazioni che utilizzano TPDU piccole possono essere efficientemente gestite tramite un pool comune ed allocazione dinamica dei buffer in trasmissione e ricezione (TPDU piccole significa buona probabilita di trovare buffer disponibili) Applicazioni tipo file transfer richiedono invece la disponibilita in ricezione di un pool di buffer pari alla window size (come nel caso del data link layer), per sfruttare al meglio la banda disponibile 20 Gestione dinamica dei buffer Poiche le caratteristiche delle diverse connessioni possono cambiare rapidamente, e le esigenze sono differenti, la soluzione adottata e che le due parti regolino dinamicamente le allocazioni ad esempio, se due stazioni dedicano un pool comune di buffer alle connessioni attive tra i due host, e ad un certo punto il numero di connessioni aumenta, il ricevitore potra comunicare al trasmittente che il numero di buffer per una singola connessione e diminuito Il protocollo di trasporto deve prevedere questa possibilita 21 10

Buffer dinamici come window size L utilizzo della gestione dinamica dei buffer permette al ricevente di regolare la velocita del trasmittente in funzione della quantita di buffer disponibili in ricezione; di fatto il numero di buffer disponibili in ricezione definisce la window size Quello che viene fatto dal protocollo e sostanzialmente la seguente cosa: il trasmittente (all atto dell attivazione della connessione) richiede un certo numero di buffer in funzione delle sue esigenze il ricevente risponde concedendo il numero di buffer che puo offrire, ed il ricevente memorizza il numero e tiene conto della disponibilita di buffer in ricezione durante tutta la trasmissione ad ogni TPDU inviata il trasmittente riduce il numero di buffer che il ricevente ha disponibili quando arriva a zero il trasmittente si ferma ad ogni acknowledge, il ricevente comunica quanti buffer ha disponibili 22 Separazione ack/window size Tuttavia, come gia detto, gli eventi TPDU riscontrata e buffer liberato nello strato di trasporto non sono contemporanei questo e essenzialmente dovuto al fatto che chi libera il buffer e un applicativo scritto dall utente (non dal progettista della rete), che magari riceve 4 KB di TPDU ma le legge un byte per volta Questo fatto obbliga a separare la funzione dell acknowledge dalla definizione della window disponibile (cioe dei buffer disponibili in ricezione) Di fatto il ricevente puo inviare un riscontro relativo a tutte le TPDU trasmesse, ma comunque indicare disponibilita di buffer a zero (quindi bloccare il trasmittente) Quando l applicativo libera uno o piu buffer, il ricevente inviera un nuovo ack (relativo sempre all ultima TPDU rucevuta) ma comunicando la nuova disponibilita di buffer questo puo generare uno stallo, perche le TPDU di controllo non vengono riscontrate e non hanno timeout: se l ultima TPDU (ack+nuovi buffer liberi) si perde, il trasmittente resta fermo ed il ricevente pure per risolvere questa situazione ogni host deve periodicamente trasmettere una TPDU di controllo per fornire l ack e la situazione dei buffer 23 11

Controllo della congestione Quando il collo di bottiglia e la rete, il controllo di flusso non e sufficiente Il controllo di questa situazione nel livello di trasporto e compito del trasmittente Il livello di trasporto non definisce meccanismi; generalmente a livello pratico si utilizza la tecnica seguente: il trasmittente utilizza come parametro di misura il numero di TPDU che non hanno ricevuto un ack prima del timeout ciclicamente viene effettuata una analisi di questo dato quando si verifica un aumento dei timeout, il trasmittente riduce la velocita di trasmissione, ad esempio riducendo la window size (anche se c e disponibilita di buffer in ricezione) 24 Modifica dinamica dei timeout La definizione del valore dei timeout ha conseguenze sulla efficienza del trasporto i tempi di intervallo tra trasmissione e ricezione di ACK variano in funzione del carico sui router attraversati valori efficienti in condizioni di scarico possono generare ritrasmissioni in condizioni di carico, anche in assenza di congestione valori troppo lunghi sono inefficienti Il trasporto puo utilizzare la misura continua del rtt per calibrare dinamicamente i valori di timeout utilizzati si utilizza sempre una soglia che identifica una condizione di congestione della sottorete 25 12

Indirizzamento: TSAP Un processo applicativo deve specificare a quale applicazione remota vuole connettersi Lo strato di trasporto puo servire contemporaneamente diverse applicazioni quando riceve una connection request, (o dati in una trasmissione connection less) deve sapere a quale applicazione trasmetterli E necessario quindi associare univocamente ad una applicazione un punto di accesso al trasporto In pratica si devono utilizzare indirizzi a livello di trasporto, per identificare l applicazione destinataria dei dati Questi indirizzi in OSI sono chiamati TSAP (Transport Service Access point) in TCP/IP esiste una cosa equivalente: in questo caso gli indirizzi sono chiamati porte 26 Quale TSAP? Un applicativo server deve quindi registrarsi presso il protocollo di trasporto (tramite la primitiva LISTEN) per creare la associazione applicazione-tsap L applicativo client, per connettersi con il server, deve sapere a priori a quale TSAP remoto (di quale NSAP remoto, cioe di quale indirizzo di rete) connettersi Per conoscere l NSAP, generalmente esiste un applicativo di conversione nome-indirizzo che risolve questo problema (si presuppone che almeno si conosca il nome) in OSI si chiama servizio di directory (X.500) in TCP/IP si chiama Domain Name System Per conoscere il TSAP si puo (parzialmente) utilizzare un sistema simile 27 13

TSAP ben noti La soluzione adottata usualmente e quella di associare sempre lo stesso TSAP a tutte le applicazioni server (sui diversi host) che svolgono la stessa funzione server web server di posta elettronica server di connessione remota server di sincronizzazione oraria server di file transfer L applicativo client in questo modo puo specificare al livello di trasporto a quale TSAP di quale host deve essere fatta la connessione, in quanto il TSAP e predefinito dallo standard dell applicativo server 28 TSAP ad hoc I TSAP ben noti sono quelli che offrono servizi standardizzati servizi che rispondono ad un protocollo ben definito generalmente lo standard specifica il TSAP da utilizzare (piu spesso si limita a suggerirlo) in TCP/IP esiste un sistema che, analogamente al DNS, associa una stringa di caratteri alle porte dei servizi, ma a differenza del DNS non e distribuito: le associazioni si trovano in un file di testo residente sull host e letto dagli applicativi (/etc/services in unix-linux) Se si devono utilizzare applicativi sviluppati per funzioni specifiche, la strategia da utilizzare e quella di definire un TSAP per questo servizio sulle sole macchine interessate dalla applicazione il client in qualche modo deve essere messo al corrente del TSAP da utilizzare buona norma e quella di non utilizzare TSAP assegnati ai servizi standardizzati 29 14