Il livello di trasporto Appunti di Sistemi per la classe V sez. H A cura del prof. ing. Mario...

Post on 01-May-2015

220 views 0 download

Transcript of Il livello di trasporto Appunti di Sistemi per la classe V sez. H A cura del prof. ing. Mario...

Il livello di trasporto

Appunti di Sistemi

per la classe V sez. H

A cura del prof. ing. Mario Catalano

Cosa fa il livello di trasporto:

Fornisce una procedura per il trasporto dei dati dalla sorgente alla destinazione.

La rete di comunicazione è vista dal livello come un tutto unico che collega sorgente e destinazione.

Il livello di trasporto è gestito in modo che sia indipendente dalla rete di comunicazione.

Rete e livello di trasporto

L’utente non ha alcun controllo sulla rete gestita dalla società di comunicazione.

Non può fare nulla se la rete è inaffidabile (perde pacchetti o li duplica) o inadeguata alle esigenze di trasporto (troppo lenta).

Allora occorre che il livello di trasporto faccia in modo da risolvere i problemi del trasporto, o almeno di ridurli.

I compiti del livello di trasporto:

1. Gestione degli errori2. Recupero dei guasti3. Gestione dei collegamentiA seconda della qualità del servizio offerto

dalla rete di comunicazione, il livello di trasporto dovrà “negoziare” le caratteristiche (per esempio la velocità) della trasmissione.

La qualità del servizio (QoS):

La QoS offerta dalla rete di telecomunicazione è valutata da una serie di parametri:

1. Ritardo alla connessione: tempo che intercorre tra la richiesta di connessione e la ricezione della conferma,

2. Probabilità di fallimento di connessione: la connessione ha un tempo massimo per stabilirsi,

Altri parametri di QoS (1):

3. Produttività: Numero di bit di dati trasferiti al secondo,

4. Ritardo di transito: tempo tra l’invio e la ricezione,

5. Tasso d’errore: percentuale di messaggi persi o rovinati (sul totale),

6. Probabilità di fallimento del transito: in termini di produttività, ritardo e tasso d’errore.

Altri parametri di QoS (2):

7. Ritardo alla disconnessione: come per la connessione,

8. Probabilità di fallimento di disconnessione: come per la connessione,

9. Resilienza: probabilità che avvenga una disconnessione a causa di problemi tecnici o di congestione della rete.

La Negoziazione delle opzioni (1):

I parametri QoS sono indicati al momento della richiesta della connessione.

Il livello di trasporto può dedurre immediatamente l’impossibilità di connettersi se sono troppo bassi.

Oppure si connette al massimo delle opzioni se la rete garantisce il massimo delle prestazioni richieste.

La Negoziazione delle opzioni (2):

Nella maggior parte dei casi, invece, la rete se sa di non poter raggiungere gli obiettivi indicati, fa una controproposta, indicando i valori che riesce a garantire (abbassando, per esempio, la velocità).

Se la proposta è accettata dall’utente, la connessione può essere attivata.

In alternativa è l’utente a fare una controproposta a livelli più bassi e così via.

La Negoziazione delle opzioni (3):

E’ importante sottolineare che i parametri QoS negoziati alla fine della trattativa restano validi e fissati per tutta la durata della connessione.

Poiché le reti di comunicazione hanno prestazioni diverse, esistono diversi protocolli di trasporto che garantiscono diversi servizi (esempio: TCP e UDP).

Le primitive del livello di trasporto:

Si dicono primitive le funzioni del livello di trasporto.

Il livello di trasporto si gestisce con un modello Server – Client.

Dal Server al Client le primitive sono Comandi.

Dal Client al Server le primitive sono Richieste.

Alcuni esempi di primitive:

Attivazione delle connessioni Rifiuto della connessione Trasferimento di dati Rilascio normale della connessione Trattamento di errori Rilascio della connessione per errori Trasferimento di dati prioritari Controllo di flusso Reset Risincronizzazione dopo un reset Multiplexing

Attivazione della connessione

Questa operazione può sembrare facile, ma non lo è, perché la rete può perdere o duplicare (a causa dei ritardi interni) dei pacchetti.

Il problema di fondo sta nella possibile presenza dei duplicati ritardatari.

Ma durante il colloquio si può controllare il numero di sequenza: quindi i doppioni ritardatari sono automaticamente scartati.

Three-way hand-shaking

Resta il problema dei doppioni ritardatari in fase di connessione.

Se arriva una richiesta connessione duplicata e ritardata, come si fa a distinguerla da una nuova “vera” richiesta di connessione?

Il problema è stato risolto dal “three-way handshaking” ( letteralmente: stretta di mano a tre vie).

Threeway handshaking: I° fase

Il mittente invia una richiesta di connessione con un numero x proposto come inizio della sequenza.

Threeway handshaking: 2°fase

Il destinatario invia un ack contenente:

La conferma di x La proposta di un

proprio numero identificativo y.

Threeway handshaking: 3°fase

Il mittente invia un pacchetto contenente:

La conferma di y I primi dati.

Three-way hand-shaking: x e y

I valori x e y che identificano la connessione possono essere generati ad esempio sfruttando l’orologio di sistema in modo da avere ogni volta valori diversi.

I valori x e y sono generati da entrambi i dispositivi in colloquio e quindi non c’è possibilità d’errore (una connessione aperta in un altro istante avrebbe un x diverso e una connessione accettata in un altro istante avrebbe un y diverso.)

3-way handshaking in caso di duplicazione e ritardi

Se arriva una richiesta di connessione duplicata e in ritardo, il destinatario rimanda l’ack al mittente coi numeri x, y.

Il mittente però sa di non aver attivato una nuova richiesta di connessione e risponde con un reject (rifiuto) della connessione x,y.

3-way handshaking in caso di duplicazione e ritardi (2)

Se invece arriva in ritardo una richiesta di connessione, il mittente rimanda l’ack al mittente coi numeri x, y.

Se al destinatario arriva (in ritardo) anche l’accettazione della connessione avrà due numeri identificativi diversi: il mittente non li accetta e li scarta.

Disconnessione

Il problema della disconnessione non è meno importante di quello della connessione. A causa di disconnessioni brusche, infatti possono perdersi pacchetti e restare vaganti in rete senza destinazione (congestionandola).

Esistono due modi di disconnettersi: Asimmetrico, Simmetrico

Disconnessione asimmetrica (brusca)

La connessione cade quando uno dei dispositivi si disconnette indipendentemente dall’altro. In questo caso i dati inviati che non sono ancora arrivati si perdono.

Disconnessione simmetrica (negoziata)

La connessione è considerata come la coppia di due “semiconnessioni” indipendenti: l’una dal destinatario al mittente, l’altra dal mittente al destinatario.

Se un dispositivo chiude una “semiconnessione”, l’altra resta aperta: in questo modo i dati inviati hanno il tempo di arrivare a destinazione (si stabilisce un tempo massimo, dopo di che anche l’altra direzione si chiude).

Negoziazione della disconnessione:

1° fase: il mittente invia un comando di disconnessione (disconnect)

2° fase: il destinatario riceve il disconnect dal mittente, se ha finito invia un disconnect (che fa da ack per il mittente)

3° fase: il mittente invia il suo ack e si disconnette.

4° fase: il destinatario riceve l’ack e si disconnette a sua volta.

Disconnessione negoziata (quando va tutto bene).

1: Lascia la connessione Mittente-Destinatario 2: Lascia la connessione Destinatario-Mittente

Disconnessione in caso di guasti (1): Se si perde

l’ack, il destinatario aspetta un timeout e poi chiude la connessione

Disconnessione in caso di guasti (2): Se invece si perde il

disconnect del destinatario, il mittente aspetta un timeout e re-invia il suo disconnect.

Questa operazione si può ripetere più volte (se il disconnect si perde sempre), finchè il mittente non chiude bruscamente.

Ultime notizie sulle connessioni:

Ovviamente occorre stabilire opportunamente i time out in modo che non siano troppo corti o troppo lunghi.

I timeout si stabiliscono in genere intorno a 60 secondi.

Se trascorre il timeout senza che arrivino dati, le connessioni si chiudono automaticamente.

Se non si vuole far cadere la connessione, anche senza che si trasmetta nulla, occorre trasmettere dei “DUMMY”, cioè dei pacchetti vuoti.

FINE