1 Sistemi e Tecnologie della Comunicazione Lezione 22: transport layer: introduzione, funzionalita’

Slides:



Advertisements
Presentazioni simili
Livello 1 - fisico linsieme dei dispositivi per il collegamento dei vari sistemi (cavi, modem, apparecchiature di tx e rx)linsieme dei dispositivi per.
Advertisements

Stack TCP/IP - Socket Douglas E. Comer, "Internetworking con TCP/IP, principi, protocolli, architettura.", Gruppo Editoriale Jackson W. Richard. Stevens,
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Il livello di trasporto
Modello ISO/OSI Un metodo di studio Vallì Rossella Carando 2006 SIS.
I modelli di riferimento OSI e TCP/IP
La rete in dettaglio: rete esterna (edge): applicazioni e host
Sistemi e Tecnologie della Comunicazione
Sistemi e Tecnologie della Comunicazione
ESEMPI DI PRIMITIVE.
TCP Transmission Control Protocol. Programmazione II: Programmazione su Reti -- Prof. G. Persiano 2 TCP TCP fornisce un servizio di connessione –orientato.
EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Modello di riferimento OSI AICA © 2005.
Concetti introduttivi
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO TRASPORTO Protocolli TCP e UDP.
Reti di Calcolatori MODELLI ISO/OSI e TCP/IP.
ADSL VOIP Voice Over IP.
Delay Tolerant Networking Service per SAMOA. Il framework SAMOA SAMOA è un framework che consente di gestire e popolare la rete sociale e propagare a.
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 di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Dal calcolatore al deposito di informazioni anche da condividere. Cè nessuno?
Corso di Informatica per Giurisprudenza Lezione 7
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.
Il modello di riferimento OSI
Una rete locale o LAN è un insieme di sistemi informatici connessi tra loro nellambito di uno spazio limitato (una stanza o un edificio). Si utilizza per.
Modulo 2 - U.D. 3 - L.4 Ernesto Damiani - Sistemi di eleborazione dell'informazione.
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)
Corso di Reti di Calcolatori A.A Prof. D. Rosaci
Informatica Lezione 9 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
L’architettura a strati
Internet: una panoramica
FTP File Transfer Protocol
RETI DI CALCOLATORI Domande di riepilogo Prima Esercitazione.
Creato da Riccardo Nuzzone
Reti Stratificazione del Protocollo. 2 Andrea Asta I protocolli oSpecificano e Rendono Comprensibile la comunicazione oNon è necessario conoscere.
TESINA DI SISTEMI.
Greco Rodolfo 2002 Application Trasport Network Phisic HTTP IP UDPTCP DNS SNAP MAC ARP L’utente fa una richiesta di pagina.
Livello di trasporto Protocolli TCP e UDP.
1 Sistemi e Tecnologie della Comunicazione Lezione 13: data link layer: protocolli go-back-n e selective reject; esempi: HDLC, PPP.
Reti di calcolatori Modulo 2 -Protocolli di rete TCP/IP Unità didattica 2 – Il protocollo TCP/IP Ernesto Damiani Università degli Studi di Milano - SSRI.
Progetto di un sistema di comunicazione di gruppo con multicast causale Reti di Calcolatori L-S Marco Canaparo Matricola
Flusso TCP (parte II). Trasferimento di grandi quantità di dati (1) Spesso il mittente deve inviare grandi quantità di dati. Genera un numero elevato.
Progetto di un Gestore di Nomi Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2003/2004 Autore: Molesini Ambra.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
Servizi Internet Claudia Raibulet
Prof. ing. Paolo Bidello AA 2005/2006 Laboratorio Informatico Promemoria degli argomenti: Reti locali (LAN)
Reti di Calcolatori LS - Fabio Poli 15 Giugno 2006 Sviluppo di un player di Campo Minato multigiocatore con supporto di Chat MultiCast.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 6 -User Datagram Protocol Ernesto Damiani Lezione 2 – UDP.
Strato di accesso alla rete (network access layer); comprende le funzioni che nel modello OSI sono comprese negli strati fisico, di collegamento e parte.
1 Sistemi e Tecnologie della Comunicazione Lezione 23: transport layer: TCP e UDP.
Sistemi e Tecnologie della Comunicazione
Sistemi e Tecnologie della Comunicazione
Sistemi e Tecnologie della Comunicazione Lezione 2: architettura delle reti e modello OSI.
1 Sistemi e Tecnologie della Comunicazione Lezione 12: data link layer: controllo di flusso, protocolli stop-and-wait e sliding window.
I sistemi operativi Funzioni principali e caratteristiche.
1 Sistemi e Tecnologie della Comunicazione Lezione 13: data link layer: protocolli go-back-n e selective reject; esempi: HDLC, PPP.
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:
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
Risultati Leapfrog IP per una comunicazione sicura e affidabile Cristiano Novelli ENEA, XML-Lab.
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.
Raccogliere informazioni ALCUNE DOMANDE FONDAMENTALI È stato modificato qualche componente HW o SW? Il sintomo si presenta regolarmente o ad intermittenza?
Transcript della presentazione:

1 Sistemi e Tecnologie della Comunicazione Lezione 22: transport layer: introduzione, funzionalita’

2 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

3 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

4 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)

5 Primitive di servizio Le primitive di servizio costituiscono l’interfaccia che lo strato di trasporto rende disponibile allo strato superiore Per il servizio connection oriented si possono elencare in LISTEN: lo strato superiore notifica al trasporto che e’ pronto a ricevere una connessione CONNECT: lo strato superiore chiede allo strato di trasporto di effettuare una connessione (si traduce nell’invio da parte del trasporto di un messaggio “Connection Request” al destinatario) SEND: lo strato superiore chiede al trasporto di inviare dati RECEIVE: lo strato superiore chiede allo strato di trasporto di trasmettergli i dati in arrivo DISCONNECT: lo strato superiore chiede di chiudere la connessione (si traduce nell’invio da parte dello strato di trasporto di un messaggio “Disconnection Request”) Per il servizio connection less, le due primitive SEND e RECEIVE possono essere sufficienti

6 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

7 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

8 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

9 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

10 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)

11 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

12 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

13 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

14 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)

15 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

16 Rilascio simmetrico (cont.)

17 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

18 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

19 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

20 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

21 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’

22 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

23 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

24 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)

25 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 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