LEZIONI DI .....

INFORMATICA PER TUTTI - LEZIONE 11


 Il modello ISO/OSI è basato su 7 strati (layer): ogni livello può in generale comunicare solamente con il livello inferiore e fornisce servizi solo a quello superiore.I livelli comunicano fisicamente tra di loro attraverso una interfaccia standardizzata, la quale consiste in un set di operazioni che ogni livello offre al livello superiore.Da un punto di vista logico la comunicazione avviene tra livelli identici ignorando il modo di operare dei livelli sottostanti.Il messaggio da trasferire è suddiviso in frame (al livello trasporto) che transitano da un livello all'altro.In trasmissione ogni livello aggiunge una intestazione (header) destinata al corrispondente livello del ricevitore, il quale la eliminerà prima di passare il pacchetto al livello superiore.
1. Livello di collegamento fisico (phisical layer)Si occupa delle funzioni basilari della connessione fisica, fino a definire nei particolaricome instaurare la connessione, mantenere un flusso i dati e come terminare la comunicazione e quindi la connessione. Gestisce le caratteristiche hardware e la sua unità di scambio è il bit.2. Livello di collegamento dati (data link layer)Obiettivo: permettere il trasferimento affidabile di dati attraverso il livello fisico. Invia frame di dati con la necessaria sincronizzazione ed effettua un controllo degli errori e delle perdite di segnale. Tutto ciò consente di far apparire, al livello superiore, il mezzo fisico come una linea di trasmissione esente da errori di trasmissione.Questo livello si occupa in primis di formare i dati da inviare attraverso il livello fisico, incapsulando il pacchetto proveniente dallo strato superiore in un nuovo pacchetto provvisto di un nuovo header (intestazione) e tail (coda), usati anche per sequenze di controllo. Questa frammentazione dei dati in specifici pacchetti è detta framing,i singoli pacchetti sono i frame.Come controllo di errore, per ogni pacchetto ricevuto, il destinatario invia al mittente un pacchetto ACK (acknowledgement, conferma) contenente lo stato della trasmissione: il mittente deve ripetere l'invio dei pacchetti mal trasmessi e di quelli che non hanno ricevuto riscontro/risposta. Per ottimizzare l'invio degli ACK, si usa una tecnica detta Piggybacking, che consiste nell'accodare ai messaggi in uscita gli ACK relativi ad una connessione in entrata, per ottimizzare l'uso del livello fisico. I pacchetti ACK possono anche essere raggruppati e mandati in blocchi.Questo livello si occupa anche di controllare il flusso di dati (controllo di flusso): in caso di sbilanciamento della velocità di trasmissione tra mittente e destinatario, si occupa di rallentare l'opera della macchina più veloce, accordandola all'altra e minimizzando così le perdite dovute a sovraccarico sul destinatario.3. Livello di controllo della rete (network layer)L’obiettivo è rendere i livelli superiori indipendenti dai meccanismi e dalle tecnologie di trasmissione usate per la connessione e prendersi carico della consegna a destinazione dei pacchetti. È responsabile di:routing: scelta ottimale del percorso di rete da utilizzare per garantire la consegna delle informazioni dal mittente al destinatario, scelta svolta dal router attraverso dei particolari algoritmi di Routing e tabelle di routing.conversione: dei dati nel passaggio fra una rete ed un'altra con diverse caratteristiche, come il protocollo di rete utilizzato (internet-working). 4. Livello del trasporto (transport layer)L’obiettivo è permettere un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra due host. È il primo livello realmente end-to-end, cioè da host sorgente a destinatario.Si occupa di:stabilire, mantenere e terminare una connessione, garantendo il corretto e ottimale funzionamento della sottorete di comunicazione.controllo della congestione: evitare che troppi pacchetti dati arrivino allo stesso router contemporaneamente con effetto di perdita di pacchetti stessi.A differenza dei livelli precedenti, che si occupano di connessioni tra nodi contigui di una rete, il Trasporto (a livello logico) si occupa solo del punto di partenza e di quello finale.Si occupa anche di effettuare la frammentazione dei dati provenienti dal livello superiore in pacchetti, detti "segmenti" e trasmetterli in modo efficiente ed affidabile usando il livello rete ed isolando da questo i livelli superiori. Inoltre, si preoccupa di ottimizzare l'uso delle risorse di rete e di prevenire la congestione. 5. Livello di sessione (session layer) L’obiettivo è di controllare la comunicazione tra applicazioni. Instaurare, mantenere ed abbattere connessioni (sessioni) tra applicazioni cooperanti. Si occupa anche della sincronia di invio/ricezione messaggi; si controllano gli aspetti strettamente legati alla struttura del sistema informativo,fornendo le funzioni utili a porre il sistema operativo di ogni nodo. Il livello di sessione realizza soprattutto l'interfaccia tra l'utente e la rete.6. Livello di controllo di presentazione (presentation layer)Obiettivo: trasformare i dati forniti dalle applicazioni in un formato standardizzato e offrire servizi di comunicazione comuni, come la crittografia, la compressione del testo e la riformattazione.Esso consente di gestire la sintassi dell'informazione da trasferire.Sono previste tre diverse sintassi:astratta (definizione formale dei dati che gli applicativi si scambiano);concreta locale (come i dati sono rappresentati localmente); di trasferimento (come i dati sono codificati durante il trasferimento).Le varie informazioni subiscono a questo livello una particolare decodifica, che letrasforma in modo da renderle visualizzabili nei normali dispositivi di output adisposizione degli utenti.7. Livello applicativo/utente (application layer)Obiettivo:  interfacciare utente e macchina.Fornisce un insieme di protocolli che operano a stretto contatto con le applicazioni; fanno parte di questo livello tutte le applicazioni funzionanti in rete.Qui sono implementate le procedure utilizzate dalle applicazioni scritte dai programmatori, in particolare nella gestione di risorse che devono essere condivise fra i vari utenti della rete, quali basi di dati e periferiche di output.