Il modello OSI (Open Systems Interconnection), chiamato anche modello di riferimento OSI, è un modello concettuale che divide la comunicazione di rete e l'interoperabilità in sette livelli astratti. Fornisce un modello standardizzato che consente la comunicazione tra diverse applicazioni, sistemi informatici e reti.
Il modello OSI è emerso come soluzione alle incompatibilità di comunicazione tra i diversi protocolli di rete in uso all'inizio del secolo. I livelli di OSI hanno fornito a sviluppatori e ingegneri un framework per la costruzione di hardware e software interoperabili tra le reti, fornendo un approccio categorico al networking.
In ogni livello dello stack, in genere mostrato in ordine inverso per illustrare come i dati si spostano attraverso una rete, il modello OSI fornisce linee guida e criteri per i componenti di rete e le loro funzioni di elaborazione uniche.
I livelli sono:
Il modello OSI si concentra sulla fornitura di un elenco di attività che gli ingegneri devono completare nella creazione di ogni livello di un'architettura di rete, invece di specificare i protocolli per la comunicazione tra i livelli. Il suo approccio teorico consente agli sviluppatori di visualizzare e costruire reti di calcolo altamente complesse, anche senza una conoscenza preliminare del sistema di rete stesso. Inoltre, aiuta i team a comprendere meglio il modo in cui i dati attraversano una rete e a personalizzare le funzioni di rete con una codifica specifica per livello.
Sebbene il modello OSI non costituisca la base diretta delle moderne tecnologie di rete informatica, ha avuto un profondo impatto sullo sviluppo degli standard informatici, contribuendo a plasmare la comprensione contemporanea dell'architettura di rete.
Alla fine degli anni '70 e all'inizio degli anni '80, i sistemi informatici stavano diventando sempre più interconnessi, ma i produttori spesso sviluppavano le proprie soluzioni di rete, creando un mosaico di sistemi proprietari e non interoperabili.
Diversi primi sforzi di rete hanno tentato di affrontare i problemi di compatibilità con ARPANET (che ha gettato le basi per l'Internet moderno) e la suite di protocolli TCP/IP (commissionata dal Dipartimento della Difesa). Entrambi hanno rappresentato progressi significativi, ma hanno anche evidenziato la necessità di un approccio più completo e universalmente accettato.
Riconoscendo la crescente importanza del networking e la necessità di un framework universale, l'International Organization for Standardization (ISO) e l'International Telegraph and Telephone Consultative Committee (CCITT) hanno avviato lo sviluppo di un modello di rete standardizzato.
L'ISO ha pubblicato formalmente il modello OSI, un framework fondamentale per lo sviluppo di soluzioni di rete interoperabili, nel 1984. A differenza dei precedenti tentativi di standardizzazione, la configurazione a più livelli dell'OSI consente a sistemi diversi di comunicare nonostante le differenze nelle architetture e nei protocolli sottostanti.
Il modello OSI rimane parte integrante della comprensione dell'architettura di rete anche quando le tecnologie si evolvono ed emergono nuovi modelli. Che un team stia progettando una semplice rete locale (LAN) o gestendo una rete globale complessa, i principi del modello OSI forniscono un approccio chiaro e strutturato al networking.
Il modello OSI comprende sette livelli distinti. Il livello di applicazione (livello 7), il livello di presentazione (livello 6) e il livello di sessione (livello 5) comprendono i livelli software di un OSI, in cui avvengono tutte le trasmissioni da e verso le app software (inclusi i sistemi operativi e le Utility, come browser web e client di posta elettronica).
Il livello di trasporto (livello 4) è il "cuore dell'OSI" e gestisce tutte le comunicazioni di dati tra reti e sistemi. Infine, il livello di rete (livello 3), il livello dati (livello 2) e il livello fisico (livello 1) comprendono i livelli hardware dell'OSI, in cui i dati si spostano attraverso i componenti fisici della rete durante l'elaborazione.
I dati si spostano in modo bidirezionale attraverso il modello OSI; ogni livello comunica con i livelli sottostanti e superiori nello stack. Inoltre, sia i dispositivi di invio che quelli riceventi trasmettono i dati attraverso i livelli di dati; e mittenti e destinatari spesso cambiano ruolo nel processo.
Ad esempio, se un utente desidera inviare un'e-mail a un'altra persona, l'utente deve prima scrivere l'e-mail e inviarla. Quando l'utente preme "invio", l'e-mail passa al livello dell'applicazione, che sceglierà il protocollo corretto (in genere SMTP) e invierà l'e-mail al livello di presentazione. Il livello di presentazione comprime quindi i dati del messaggio e li invia al livello di sessione, che avvia una sessione di comunicazione e invia i dati al livello di trasporto per la segmentazione.
Poiché l'e-mail va a un'altra rete, i dati dell'e-mail devono andare al livello di rete, dove vengono divisi in pacchetti e quindi al livello di collegamento dati, dove vengono ulteriormente suddivisi in frame. Questi frame vengono successivamente trasmessi attraverso il livello fisico (il Wi-Fi del destinatario), a quel punto il dispositivo del destinatario riceve il flusso di bit e i dati dell'e-mail attraversano gli stessi livelli al contrario. Al termine del processo, i dati dell'e-mail arrivano al livello di applicazione del dispositivo del destinatario dove vengono consegnati, in forma leggibile dall'uomo, alla casella di posta del destinatario.
Il modello OSI è fondamentale per lo sviluppo del protocollo, in cui ogni livello del framework gestisce specifici processi di rete.
Il livello di applicazione è il livello OSI più vicino all'utente finale. Fornisce servizi di rete direttamente alle applicazioni utente e facilita la comunicazione tra gli endpoint API e i livelli inferiori del modello OSI. In altre parole, le applicazioni software utilizzano il livello di applicazione per avviare la comunicazione con la rete e inviare i dati al livello di presentazione.
Le applicazioni stesse non fanno parte di questo livello. Piuttosto, il livello di applicazione fornisce i protocolli (HTTP, FTP, DNS e SMTP, ad esempio) che consentono al software di inviare e ricevere dati. È responsabile di processi quali:
Servizi di directory. Il livello di applicazione fornisce servizi di directory, ovvero un database condiviso di informazioni su dispositivi e utenti di rete, per facilitare la gestione delle risorse di rete.
Il livello di presentazione trasforma i dati in un formato che il livello di applicazione può accettare per la trasmissione in rete (ad esempio, da un file di testo codificato EBCDIC a un file codificato ASCII). A causa del suo ruolo nella conversione di dati e grafici in un formato visualizzabile per il livello di applicazione, a volte viene definito livello di sintassi.
Supporta i protocolli Secure Sockets Layer/Transport Layer Security (SSL/TLS), i protocolli JPEG (per la compressione delle immagini) e i protocolli MPEG (per la compressione video Il livello di presentazione trasforma i dati in un formato che il livello di applicazione può accettare per la trasmissione in rete (ad esempio, da un file di testo codificato EBCDIC a un file codificato ASCII). A causa del suo ruolo nella conversione di dati e grafici in un formato visualizzabile per il livello di applicazione, a volte viene definito livello di sintassi.
Supporta i protocolli SSL / TLS (Secure Sockets Layer/Transport Layer Security), i protocolli JPEG (per la compressione delle immagini) e i protocolli MPEG (per la compressione video). Il livello di presentazione ha le seguenti responsabilità:
Traduzione dei dati. Il livello di presentazione converte i dati nel formato corretto (specificato dal livello di applicazione) durante il processo di incapsulamento, poiché i messaggi in uscita si spostano lungo lo stack del protocollo dal mittente al destinatario.
Compressione dei dati. Il livello di presentazione riduce le dimensioni di un flusso di dati per le trasmissioni e lo decomprime per l'uso.
A volte la formattazione e la traduzione vengono invertite durante il processo di deincapsulamento, man mano che i messaggi in arrivo salgono nello stack del protocollo. In questi casi, i messaggi in uscita vengono convertiti nel formato specificato durante l'incapsulamento, mentre i messaggi in arrivo subiscono una conversione inversa durante il deincapsulamento.
Il livello di sessione è responsabile della gestione delle sessioni, il processo di stabilimento, gestione e terminazione delle connessioni, denominate "sessioni", tra due o più computer. Avvia le connessioni tra applicazioni locali e remote, mantenendo la sessione aperta abbastanza a lungo da trasmettere i dati necessari e chiudendole una volta completata per preservare le risorse di rete.
Le funzioni chiave del livello di sessione includono:
Interazioni di sessione. Il livello di sessione gestisce il logon dell'utente (creazione) e il logoff dell'utente (terminazione), compresi eventuali protocolli di autenticazione integrati nel software client.
Recupero della sessione. Il livello di sessione gestisce gli errori di sessione e ristabilisce le connessioni in caso di problemi di rete.
Stabilisce inoltre protocolli per connettere e disconnettere sessioni tra flussi di dati correlati, come audio e video nelle conferenze web. Per questo motivo, il livello di sessione è spesso implementato in modo esplicito negli ambienti di rete che utilizzano chiamate di procedura remota.
Il livello di trasporto utilizza protocolli come il protocollo TCP (Transmission Control Protocol) e il protocollo UDP (User Datagram Protocol) per gestire il recapito end-to-end di messaggi completi. Prende i messaggi dal livello della sessione e li suddivide in unità più piccole (chiamate "segmenti"), ognuna con un'intestazione associata. A destinazione, il livello di trasporto riassembla i segmenti nell'ordine corretto per ricostruire il messaggio originale.
Il livello di trasporto gestisce anche:
Indirizzamento del punto di servizio. Il livello di trasporto aiuta a garantire che i messaggi vengano recapitati al processo corretto allegando un'intestazione del livello di trasporto (incluso un punto di servizio o un indirizzo di porta).
Multiplexing. Il livello di trasporto consente a più applicazioni di rete di utilizzare contemporaneamente la stessa connessione.
Dal lato del mittente, il livello di trasporto riceve i dati formattati dai livelli superiori, esegue la segmentazione e implementa il controllo del flusso e degli errori per garantire una trasmissione accurata dei dati. Aggiunge i numeri di porta di origine e di destinazione all'intestazione e poi inoltra i dati segmentati al livello di rete.
Alla fine del ricevitore, il livello di trasporto legge il numero di porta dall'intestazione e inoltra i dati ricevuti all'applicazione appropriata. Gestisce anche il sequenziamento e il riassemblaggio dei dati segmentati e ritrasmette i dati se vengono rilevati errori.
Il livello di trasporto fornisce due tipi di servizio.
Con il servizio orientato alla connessione, un processo in tre parti che include la creazione della connessione, il trasferimento e la cessazione (o disconnessione) dei dati, il destinatario dei dati invia una conferma di ricezione al mittente al momento della consegna del pacchetto di dati. Il servizio senza connessione, tuttavia, comporta solo il trasferimento di dati. Il destinatario non conferma la ricezione, il che accelera la comunicazione ma può essere meno affidabile del servizio orientato alla connessione.
Il livello di rete del modello OSI è responsabile della facilitazione del trasferimento dei dati da un nodo all'altro su reti diverse. Il livello di rete determina il percorso migliore (routing) per il trasferimento dei dati tra i nodi. Se i segmenti sono troppo grandi, il livello di rete li suddivide in "pacchetti" più piccoli per il trasporto e li riassembla sul lato ricevente.
Una rete funge da mezzo in cui più nodi (ciascuno con un indirizzo univoco) possono connettersi. Il livello di rete consente ai nodi di inviare messaggi a nodi su altre reti fornendo il contenuto del messaggio e l'indirizzo di destinazione, lasciando che sia la rete a determinare il percorso di consegna ottimale (che può comportare il routing attraverso nodi intermedi).
Il livello di rete utilizza principalmente Internet Protocol v4 (IPv4) e IPv6 ed è responsabile di:
Frammentazione e riassemblaggio dei pacchetti. Il livello di rete suddivide i pacchetti di grandi dimensioni (quelli che superano i limiti di dimensione del livello di collegamento dati) in pacchetti più piccoli per la trasmissione e li riassembla a destinazione.
L'affidabilità non è garantita a livello di rete; mentre molti protocolli a livello di rete offrono una consegna affidabile dei messaggi, altri no. Inoltre, la segnalazione degli errori non è obbligatoria a questo livello di OSI, quindi i mittenti dei dati possono ricevere o meno la conferma della consegna.
La funzione principale del livello di collegamento dati (DLL) è quella di gestire il trasferimento di dati senza errori tra più dispositivi che interagiscono sulla stessa rete.
Il livello è suddiviso in due sottolivelli.
Il livello di controllo dei collegamenti logici (LLC), che funge da interfaccia tra il livello di controllo dell'accesso ai media (MAC) e il livello di rete, gestisce il controllo del flusso, la sincronizzazione e il multiplexing (quando due o più flussi di dati condividono una singola connessione all'host). Il livello MAC controlla il modo in cui i dispositivi accedono ai supporti di rete e trasmettono i dati.
Quando il DLL riceve un pacchetto dal livello di rete, lo divide in "frame" di dati, in base alla dimensione del frame della scheda di interfaccia di rete (NIC), e lo trasmette all'host utilizzando il suo indirizzo MAC.
Le funzioni del DLL includono:
Framing. Il DLL consente al mittente di trasmettere un insieme di bit (dati) significativi per il destinatario collegando speciali schemi di bit all'inizio e alla fine del frame.
Controllo degli errori. Il DLL rileva i frame danneggiati o persi e gestisce la ritrasmissione (se necessario) per garantire l'integrità dei dati.
Controllo degli accessi.Quando più dispositivi condividono un unico canale di comunicazione, il sublayer MAC determina quale dispositivo ha il controllo del canale in un dato momento.
Il livello fisico è costituito dai componenti della rete responsabili della trasmissione di dati non elaborati, sotto forma di "bit" o stringhe di 1 e 0, tra dispositivi (connettori, router, ripetitori e cavi in fibra ottica, ad esempio) e un supporto fisico (come il Wi-Fi).
Il livello fisico è responsabile di:
Controllo del bit rate. Il livello fisico definisce le velocità di trasmissione dei dati, spesso in bit al secondo.
Modalità di trasmissione. Il livello fisico definisce il modo in cui i dati fluiranno tra i dispositivi collegati (come trasmissione simplex, half duplex o full duplex).
Il livello fisico definisce anche il modo in cui avviene la codifica su un segnale fisico (utilizzando tensione elettrica, impulsi radio o luminosi, ad esempio).
Il modello di riferimento OSI fornisce una base teorica che aiuta ingegneri e sviluppatori a comprendere le complessità della comunicazione di rete. Tuttavia, a volte viene confrontato con un altro modello di rete: il modello TCP/IP (Transmission Control Protocol/Internet Protocol).
A differenza del modello OSI, il modello TCP/IP si basa su protocolli standardizzati che sono ampiamente e direttamente implementati e nelle reti del mondo reale. È costituito da quattro livelli, invece di sette, ma ogni strato corrisponde a uno o più livelli del modello OSI.
Livello di accesso alla rete. Chiamato anche livello di collegamento dati o livello fisico, il livello di accesso alla rete di una rete TCP/IP include sia i componenti hardware che software necessari per l'interfacciamento con il supporto di rete, combinando i livelli fisici e di collegamento dati del modello OSI. Si occupa della trasmissione fisica dei dati, utilizzando l'Ethernet (per le LAN) e i protocolli ARP, tra i dispositivi della stessa rete.
Livello di trasporto. Il livello di trasporto TCP/IP svolge la stessa funzione del livello di trasporto del modello OSI; consente un trasferimento affidabile dei dati tra i livelli superiore e inferiore. Utilizzando i protocolli TCP e UDP, fornisce anche meccanismi per il controllo degli errori e del flusso.
Il valore principale del modello OSI risiede nella sua utilità educativa e nel suo ruolo di framework concettuale per la progettazione di nuovi protocolli, assicurandosi che possano interagire con i sistemi e le tecnologie esistenti.
Tuttavia, l'obiettivo pratico e l'applicabilità nel mondo reale del modello TCP/IP lo hanno reso la spina dorsale delle reti moderne. Il suo design robusto e scalabile e l'approccio a stratificazione orizzontale hanno guidato la crescita esplosiva di Internet, ospitando miliardi di dispositivi e enormi quantità di traffico dati.
Il suo approccio astratto e stratificato verticalmente al networking consente la progettazione di protocolli modulari, in cui ogni livello può essere sviluppato e aggiornato in modo indipendente.
La modularità del modello OSI favorisce un'innovazione più rapida nello sviluppo dei protocolli, in quanto gli ingegneri del software possono integrare nuove tecnologie senza rivedere l'intero stack di rete.
Consente inoltre agli sviluppatori di astrarre i livelli inferiori del modello per semplificare lo sviluppo.
Gli ingegneri del software possono separare i livelli operativi di ciascun componente della rete e organizzarli in base ai loro ruoli principali nella rete. Questa scomponibilità rende più facile per gli sviluppatori concettualizzare una rete e condividere modelli semplificati tra i team di sviluppo.
Quando un dispositivo in rete si guasta o un'app perde la connessione, il modello OSI consente ai team di individuare e isolare il livello problematico per indirizzare eventuali problemi di sicurezza o vulnerabilità di rete senza interrompere l'intero framework.
IBM Cloud Infrastructure Center è una piattaforma software compatibile con OpenStack per gestire l'infrastruttura di cloud privati su IBM zSystems e IBM LinuxONE.
Scopri i server, lo storage e il software progettati per l'hybrid cloud e la strategia AI della tua azienda.
Trova la soluzione di infrastruttura cloud adatta alle esigenze della tua azienda e scala le risorse on-demand.