Il Modello ISO-OSI
Modello OSI

Prime specifiche pubblicate nel ’78 da ISO, il modello ISO-OSI rappresenta uno standard di comunicazione tra reti.
Livello paritario => livello che svolge su ogni macchina la stessa funzione.
Quando un utente invia un messaggio, questo attraversa tutti gli strati, a partire dal livello di Applicazione, fino al livello Fisico. Per fornire l’accesso ad un livello, il livello adiacente, deve essere fornito di un apposito programma, che prende il nome di interfaccia.
Inoltre un programma detto N_entità, si preoccupa di trasformare il messaggio aggiungendo ad esso tutte le informazioni necessarie. I primi tre livelli (a partire dal basso) sono livelli fisici, mentre gli altri sono livelli logici.
Livello di Application
- Funzione: interagisce in modo diretto con le applicazioni fornendo i servizi di rete.
- Fornito di due interfacce:
- Interfaccia diretta che comprende lo scambio di file, mail e protocolli quali FTP, HTTP, SMTP, DNS e TFTP.
- Interfaccia indiretta ed un redirector: forniti per le applicazioni standalone; redirector + comuni:
- Apple File Protocol
- Netbios
- Novell IPX/SPX
- Network File System (NFS)
- Nella comunicazione il server mantiene la comunicazione solo per il tempo necessario ad effettuare il trasferimento. Terminata la transazione viene abbattuta connessione tranne che per il protocollo Telnet.
Livello di Presentation
Funzioni: si occupa di preparare le informazioni alla trasmissione trasformando il formato in modo da renderlo compatibile con la stazione ricevente, effettuando la conversione e codifica del set di caratteri, comprimendo i dati e crittografandoli; alcuni standard adottati sono ASCII, JPEG, MPEG…
Livello di Sessione
- Funzione: si occupa di attivare la connessione e mantenerla per tutta la durata del trasferimento dei dati e abbatterla a fine trasmissione (processo chiamato sessione).
- Dati trasmessi su una rete a commutazione di pacchetto
- Il livello ha il compito di:
- Sincronizzare il dialogo tra host
- Definire la durata del collegamento
- Effettuare il controllo del dialogo.
- Trasmissione simultanea dati tuttavia può provocare collisioni all’interno della trasmissione e se persistono per troppo tempo si opta per la comunicazione alternata, utilizzando un data token che ha il compito di stabilire il turno di trasmissione e comunicazione di ciascun host.
- Esso introduce anche dei checkpoint dove gli host effettuano backup dati.
- Protocolli:
- RPC: necessita di approvazione connessione remota.
- ASP:
- DNA SCP
- X-Windows System
Livello di Trasporto
- Funzioni: si occupa di stabilire una connessione logica con i livelli paritari, incapsulare i dati in segmenti e riassemblarli in fase di ricezione.
- Controlla anche il flusso delle informazioni controllando che i pacchetti siano stati ricevuti in maniera corretta senza duplicati, nel caso contrario recupera i pacchetti persi.
- Livello detto connection – oriented in quanto apre, mantiene e chiude il circuito virtuale.
- Protocolli:
- TCP: incentrato sull’invio e ricezione di dati in maniera sicura.
- UDP: invio pacchetti e basta.
Livello di Rete
Funzioni:
- Traduce nome logico host destinatario in indirizzo fisico.
- Definisce instradamento pacchetti determinando il percorso + breve attraverso tabelle di instradamento statiche (Instradamento manuale) o dinamiche (Instradamento automatico).
- Dati incapsulati e organizzati in pacchetti o datagramma
- Attua il commutamento del messaggio determinando se il cammino deve essere lo stesso per tutti i pacchetti o no.
- Protocolli:
- ICMP: attivato per fare in modo che si riceva il ping ad esempio.
- ARP: prende indirizzo IP e lo traduce in MAC ADDRESS.
- RARP: idem a ARP ma al contrario (reverse).
- X-25: fisicamente invia segnali su metodo trasmissivo.
Livello di Collegamento
Funzioni:
- Verifica che la trasmissione sul mezzo fisico sia affidabile.
- Si preoccupa dell’indirizzamento fisico del dispositivo di destinazione.
- Incapsula dati in trama o frame (struttura logica).
- Ad ogni frame vengono aggiunti dei bit:
- Start ed End
- Parity: basato su ASCII puro 6, 7, 8 bit assicurandosi che tutti i caratteri siano codificati in tale forma aggiungendo il bit di parità in caso di correzione o lasciando il messaggio invariato.
- CRC:
- A messaggio associato polinomio.
- Macchina ricava poi il suo generatore.
- Divide polinomio per il generatore ottenendo risultato e resto (op. XOR).
- Invia messaggio composto da polinomio di partenza meno il resto della divisione.
- Macchina ricevente divide poi il polinomio generatore per il messaggio e se viene resto 0 significa tutto a posto, altrimenti che c’è un errore nel messaggio.
- Livello gestisce inoltre la sincronizzazione tra mittente e destinatario e comunica con livello sovrastante con l’LLC e con il livello inferiore attraverso il MAC
- Protocolli:
- BSC: orientato al carattere.
- HDLC
- SDLC
- PPP
- Dispositivi utilizzati in questo livello: Bridge e Switch.
Livello Fisico
Funzioni:
- Si occupa della gestione del mezzo trasmissivo (Cavi STP, UTP, fibra).
- Definisce inoltre le modalità di connessione tra cavo e scheda di rete attraverso:
- Caratteristiche fisiche
- “ elettriche
- “ funzionali
- Esistono diversi standard come l’X-21 e RS-232-C che definisce il collegamento tra DTE (Data Terminal Equipment) e DCE (Data Communication Equipment).
- Dispositivi utilizzati in questo livello: Hub e ripetitori.
Terminologia Specifica Modello ISO-OSI
- Punto di accesso tra due livelli: SAP (Service Access Point).
- Messaggio: IDU, composto da due parti:
- ICI (Interface Control Unit): contiene richieste livello adiacente.
- SDU (Service Data Unit): contiene dati veri e propri e le loro relative informazioni.
- Ad ogni livello viene aggiunto poi il PCI (Protocol Control Information).
- PCI + SDU = PDU (Protocol Data Unit).
Trasmissione di un messaggio tra i livelli
- Per far si che il messaggio transiti dal livello superiore a quello sottostante viene richiamata la funzione SAP.
- Il livello N+1 contiene il messaggio + l’IDU per comunicare con il sottostante e aggiunge ad esso il PDU per comunicare invece con il paritario.
- Quando il messaggio arriva al livello N il pacchetto viene suddiviso in N+1_ICI e nell’N+1_SDU e mentre il livello esegue le operazioni richieste dall’ICI esso lascia inalterato l’SDU.
- A fine operazioni livello produce nuova ICI e l’N_PCI viene quindi impacchettato con l’SDU, per generare il nuovo N_PDU da trasferire al livello paritario.
La Funzione Delle Primitive
Per far transitare il messaggio da un determinato livello al livello superiore o inferiore, si utilizzano 4 primitive:
- Request
- Indication
- Response
- Confirm
- Affinché l’IDU possa passare da un livello a quello sottostante è necessario che il livello N+1 invochi la primitiva R
- Il livello N invia quindi l’N_PDU al livello paritario, che, tramite l’invocazione della primitiva Indication, lo passa al livello superiore, trasferendo quindi il PDU al livello N+1 del sistema ricevente.
- Se tutto è andato a buon fine, deve inviare una conferma alla macchina trasmittente attraverso la primitiva Response, con cui invia la conferma di ricezione al livello sottostante, che poi la invia al livello paritario.
- Il livello paritario N invoca la primitiva Confirm per confermare appunto al livello superiore, che la trasmissione dell’informazione è avvenuta correttamente.