Modello OSI

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Il modello di riferimento OSI

Ininformaticaetelecomunicazioni,ilmodello OSI(acronimo diOpen Systems Interconnection,conosciuto impropriamente anche come "modello ISO/OSI" ) è unostandardarchitetturale perreti di calcolatoriinteroperabili,ufficializzato nel 1984 dall'Organizzazione internazionale per la normazione(ISO) sotto il nome ISO 7498.[1]

Il modello venne sviluppato nell'ambito dell'omonima iniziativaOpen Systems Interconnection,avviata nel 1977 e portata avanti congiuntamente daISOeITU-T.[2][3]

Tale modello stabilisce per l'architetturalogica di rete, ovvero per le funzioni di comunicazione delletelecomunicazionio disistemi informatici,una struttura a strati composta da una pila diprotocolli di comunicazione di retesuddivisa in 7 livelli diversi di astrazione, i quali insieme eseguono tutte le funzionalità della rete, seguendo un modello logico-gerarchico.[4][5]

Fra gli anni sessanta e settanta, le reti informatiche erano gestite soprattutto a livello governativo (ARPANETnegliStati Uniti,CYCLADESinFrancia) o tramite standard proprietari (come laSystems Network Architecture(SNA) diIBMoDECnetdellaDigital Equipment Corporation).

Essendoci un vasto consenso sulla necessità di standard comuni, un primo tentativo di unificazione fu tentato nel 1972 con la formazione dell'International Network Working Group(INWG), con a capoVint Cerf.[6]L'INWG cercò di promuovere l'idea dicommutazione a pacchettobasata suldatagramma,invenzione diLouis Pouzin.Il gruppo, guidato da Cerf e Pouzin, sottopose il proprio protocollo nel 1975 alComité Consultatif International Téléphonique et Télégraphique,che respinse l'idea giudicandola troppo rischiosa e mal testata.[6]

Subito dopo Cerf lasciò il suo incarico nell'INWG, segnando una rottura all'interno del gruppo. Fu seguito daBob Kahn,con il quale pose le basi per lasuite TCP/IP.Altri membri, invece, intrapresero il progetto Open Systems Interconnection.[6]

L'OSI venne portato avanti da vari informatici del Regno Unito, Francia e Stati Uniti. Nel 1977 fecero richiesta all'Organizzazione internazionale per la normazione(ISO) di poter sviluppare un nuovo standard per le reti a commutazione di pacchetto, la quale accettò ponendoCharles Bachman(giàpremio Turing) a capo del progetto.[6]

Il modello OSI, sviluppato da Bachman assieme ad altri informatici comeHubert Zimmermann(INWG) e John Day (ARPANET), introdusse l'idea di un unico modello diprotocollisuddivisi in più livelli, puntando a garantire l'interoperabilitàfra i vari dispositivi e software di rete. Il modello divenne standard ISO nel 1984.[6]

La suite di protocolli OSI venne considerata da alcuni, fra i quali l'informaticoAndrew S. Tanenbaum,troppo complicata e inefficiente, e per grande parte non implementabile.[7]Con l'approccio "forklift upgrade",in ciascun livello dello stack ogni protocollo già esistente dovette essere sostituito, rendendo l'implementazione molto difficoltosa. Inoltre, i protocolli includevano talmente tante caratteristiche opzionali che talvolta le varie implementazioni non risultavano essere interoperabili.[7]

Nonostante ci si riferisca sempre al modello OSI come standard, nella pratica viene spesso applicata lasuite di protocolli Internet.L'approccio pragmatico della suite TCP/IP l'ha resa lo standardde facto.[7]A tal proposito rimase famosa la frase del pioniere di InternetEinar Stefferud"OSI è un bellissimo sogno, e TCP/IP lo sta vivendo".[6][8]

Lo standard ISO/IEC 7498 è suddiviso come segue:

  • ISO/IEC 7498-1: Modello base[9]
  • ISO 7498-2: Sicurezza[10]
  • ISO/IEC 7498-3: Denominazione e indirizzamento[11]
  • ISO/IEC 7498-4: Gestione[12]

Caratteristiche

[modifica|modifica wikitesto]
Parallelo fraimprese(livelli superiori) e sistema postale (livelli inferiori) e il modello ISO/OSI.

Il modello ISO/OSI, concepito perreti di telecomunicazioniacommutazione di pacchetto,è costituito da una pila (o stack) di protocolli attraverso i quali viene ridotta la complessità implementativa di un sistema di comunicazione per il networking. In particolare ISO/OSI è costituito da strati (o livelli), i cosiddettilayer,che definiscono e racchiudono in sé a livello logico uno o più aspetti fra loro correlati della comunicazione fra duenodidi una rete. I layer sono in totale 7[13]e vanno dal livello fisico (quello del mezzo fisico, ossia delcavo,delleonde radio,fibra otticao qualsiasi altro sistema trasmissivo) fino al livello delle applicazioni, attraverso cui si realizza la comunicazione dialto livello.[3]

Ogni layer individua un protocollo di comunicazione del livello medesimo. ISO/OSI realizza unacomunicazione per livelli,cioè dati due nodie,il livellodel nodopuò scambiareinformazionicol livellodel nodo,ma non con gli altri. Ogni livello in trasmissione realizza la comunicazione col livello corrispondente sui nodi di transito o destinatari usando ilSAP(service access point) del livello immediatamente sottostante. Sicché ISO/OSIincapsulai messaggi di livelloin messaggi del livello.Così sedeve inviare, ad esempio, unae-maila,l'applicazione (liv. 7) dipropagherà il messaggio usando il layer sottostante (liv. 6) che a sua volta userà il SAP del layer inferiore, fino ad arrivare alla comunicazione ovvero allatrasmissionesulcanaleomezzo fisico trasmissivo.

In tal modo si realizza una comunicazionemultilivelloche consente, ad esempio, di implementarealgoritmidiversi per l'instradamentoin rete pur disponendo di protocolli di trasporto connessi e scegliere ed adattare protocolli e relativi algoritmi alla particolarerete di telecomunicazionida realizzare. Tutto ciò conferisce modularità al sistema con maggiore semplicità diprogettazionee gestione della rete ovvero possibilità di migliorare, sviluppare e dunque eventualmente sostituire i protocolli dei vari strati cioèimplementaree reimplementare con dei protocolli ciascuna delle rispettive funzionalità logiche lasciando inalterate le funzioni altrui.

Al fine di ottenere un miglioramento dell'attuale modello può risultare interessante la possibilità di trarre vantaggio da uno scambio di informazioni nell'ambito della stessa pila protocollare, tra gli strati non adiacenti.[14] Questa possibilità prende il nome dicross-layer(CL)ed è interessante soprattutto nellecomunicazioni radioper la natura stessa variabile del mezzo trasmissivo; sta riscuotendo un notevole interesse negli ultimi anni soprattutto per la riduzione dei consumi di energia nelle comunicazioni wireless.[15]L'idea fondamentale del concettocross-layerè di introdurre la capacità, nei vari protocolli di comunicazione, di scambiarsi informazioni per adattarsi agli specifici stati del collegamento della rete. A differenza del modello OSI classico, non si vogliono più prendere solo delle contromisure preventive o meccanismi di controllo successivi ad un determinato evento verificatosi nella rete, bensì si cerca di decidere in modo interattivo con essa sfruttando le informazioni comuni a tutti gli strati.

Elenco e funzioni dei livelli

[modifica|modifica wikitesto]

Livello 1: fisico (Physical Layer)

[modifica|modifica wikitesto]
Lo stesso argomento in dettaglio:Livello fisico.
Obiettivo: trasmettere un flusso di dati non strutturati attraverso un collegamento fisico, occupandosi della forma e dei livelli di tensione del segnale. Ha a che fare con le procedure meccaniche ed elettroniche necessarie a stabilire, mantenere e disattivare un collegamento fisico.[16]

Semplicemente: si occupa di controllare la rete, glihardwareche la compongono e i dispositivi che permettono la connessione.

In questo livello si decidono:

A questo livello lavorano imodeme glihub.

[modifica|modifica wikitesto]
Lo stesso argomento in dettaglio:Livello di collegamento dati.
Obiettivo: permettere il trasferimentoaffidabiledi dati attraverso il livello fisico. Invia frame di dati con la necessaria sincronizzazione ed effettua uncontrollo degli errorie delle perdite di segnale. Tutto ciò consente di far apparire, al livello superiore, il mezzo fisico come unalinea di trasmissioneesente da errori di trasmissione.[16]

Questo livello si occupa in primis di formare i dati da inviare attraverso il livello fisico,incapsulandoil pacchetto proveniente dallo strato superiore in un nuovopacchettoprovvisto di un nuovoheader(intestazione) etail(coda), usati anche per sequenze di controllo. Questa frammentazione dei dati in specifici pacchetti è dettaframinge i singoli pacchetti sono iframe(trame).

Comecontrollo di errore,per ogni pacchetto ricevuto, il destinatario invia al mittente un pacchettoACK(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 degliACK,si usa una tecnica dettaPiggybacking,che consiste nell'accodare ai messaggi in uscita gli ACK relativi ad unaconnessionein 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 dellavelocità di trasmissionetra mittente e destinatario, si occupa di rallentare l'operazione della macchina più veloce, accordandola all'altra e minimizzando così le perdite dovute a sovraccarico sul destinatario.

La sua unità dati fondamentale è ilframe.

A questo livello lavorano gliswitche ibridge.

Livello 3: rete (Network Layer)

[modifica|modifica wikitesto]
Lo stesso argomento in dettaglio:Livello di rete.
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.[16]

È responsabile di:

  • routing:scelta ottimale del percorso di rete da utilizzare per garantire la consegna delle informazioni dal mittente al destinatario, scelta svolta dalrouterattraverso dei particolarialgoritmi di Routingetabelle di routing;
  • conversione dei dati nel passaggio fra una rete ed un'altra con diverse caratteristiche, come il protocollo di rete utilizzato (internet-working). Deve, quindi:
    • tradurre gli indirizzi di rete;
    • valutare la necessità di frammentare i pacchetti dati se la nuova rete ha una diversaMaximum Transmission Unit(MTU);
    • valutare la necessità di gestire diversi protocolli attraverso l'impiego digateway.

La sua unità dati fondamentale è ildatagram.

A questo livello lavorano irouter.

Livello 4: trasporto (Transport Layer)

[modifica|modifica wikitesto]
Lo stesso argomento in dettaglio:Livello di trasporto.
Obiettivo: permettere un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra duehost.È il primo livello realmenteend-to-end,cioè da host sorgente a destinatario.[16]

Si occupa di:

  • stabilire, mantenere e terminare unaconnessione,garantendo il corretto e ottimale funzionamento della sottorete di comunicazione;
  • controllo della congestione:evitare che troppi pacchetti dati arrivino allo stessoroutercontemporaneamente 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, dettisegmenti,e trasmetterli in modo efficiente e affidabile usando il livello rete e isolando da questo i livelli superiori. Inoltre, si preoccupa di ottimizzare l'uso delle risorse di rete e di prevenire la congestione.

La sua unità dati fondamentale è ilsegmento,user datagramopacchetto.

Livello 5: sessione (Session Layer)

[modifica|modifica wikitesto]
Lo stesso argomento in dettaglio:Livello di sessione.
Obiettivo: controllare la comunicazione tra applicazioni. Instaurare, mantenere e abbattere connessioni (sessioni) tra applicazioni cooperanti. Si occupa anche della sincronia di invio/ricezione messaggi.[16]

Esso consente di aggiungere ai servizi forniti dal livello di trasporto servizi più avanzati, quali la gestione del dialogo (mono o bidirezionale), la gestione deltoken(per effettuare mutua esclusione) o la sincronizzazione (inserendo dei checkpoint in modo da ridurre la quantità di dati da ritrasmettere in caso di gravi malfunzionamenti).

Si occupa anche di inserire dei punti di controllo nel flusso dati: in caso di errori nell'invio dei pacchetti, la comunicazione riprende dall'ultimo punto di controllo andato a buon fine.

Livello 6: presentazione (Presentation Layer)

[modifica|modifica wikitesto]
Lo stesso argomento in dettaglio:Livello di presentazione.
Obiettivo: trasformare i dati forniti dalle applicazioni in un formato standardizzato e offrire servizi di comunicazione comuni, come lacrittografia,lacompressionedel testo e la riformattazione.[16]

Esso consente di gestire la sintassi dell'informazioneda trasferire. E 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).

Livello 7: applicazione (Application Layer)

[modifica|modifica wikitesto]
Lo stesso argomento in dettaglio:Livello di applicazione.
Obiettivo: funzione di interfaccia tra utente e macchina.[16]

Fornisce un insieme di protocolli che operano a stretto contatto con leapplicazioni.Potrebbe essere errato identificare un'applicazione utente come parte del livello applicazione.

I protocolli delle applicazioni tipiche di questo livello realizzano operazioni come ad esempio:

Elenco protocolli per livello

[modifica|modifica wikitesto]
Il Modello ISO-OSI completo con l'attraversamento deirouternellarete di accessoetrasportocon glihostagli estremi

Elenco non esaustivo di protocolli di rete e/o tecnologie appartenenti ai vari livelli ISO/OSI:

Livello 1: fisico

[modifica|modifica wikitesto]
[modifica|modifica wikitesto]

Livello 3: rete

[modifica|modifica wikitesto]

Livello 4: trasporto

[modifica|modifica wikitesto]

Livello 5: sessione

[modifica|modifica wikitesto]

Livello 6: presentazione

[modifica|modifica wikitesto]

Livello 7: applicazione

[modifica|modifica wikitesto]

I livelli visti precedentemente sono una suddivisione concettuale, ma la loro implementazione non è uniforme; infatti il livello fisico e quello di collegamento di solito sono presenti sullascheda di interfaccia della rete,mentre il livello di rete ha un'implementazione mista hardware-software.

Confronto con il TCP/IP

[modifica|modifica wikitesto]
Lo stesso argomento in dettaglio:Suite di protocolli Internet.
Confronto tra ISO/OSI eTCP/IP

ISO/OSI è stato progettato per permettere la comunicazione in reti a "commutazione di pacchetto",del tutto simili al paradigma TCP-UDP/IP usato inUnixe nella reteARPAnet,precorritrice diInternet,paradigma quest'ultimo affermatosi come standard nell'ambito networking.

Il modello ISO/OSI non è rigido: costituisce, piuttosto, un punto di riferimento per learchitetture di retea pacchetto, che possono distanziarsi più o meno da esso. La differenza sostanziale fra TCP/IP e ISO/OSI consiste nel fatto che nel TCP/IP i livelli di presentazione e di sessione sono esterni alla pila di protocolli (cioè è un'applicazionestand-aloneche "usa" TCP/IP per comunicare con altre applicazioni). I livelli sono dunque solo quattro:

  1. ^ISO 7498,suiso.org.
  2. ^ (EN) Baskar Zimmermann,OSI Reference Model—The ISO Model of Architecture for Open Systems Interconnection,inIEEE Transactions on Communications,vol. 28, n. 4, aprile 1980, pp. 425–432,DOI:10.1109/TCOM.1980.1094702.
  3. ^ab Roberto Alfieri,Il modello ISO/OSI,sufis.unipr.it.URL consultato il 17 novembre 2023(archiviato dall'url originaleil 31 maggio 2016).
  4. ^Denenberg, 1990.
  5. ^Davey e Houghton, 2016.
  6. ^abcdef(EN) Andrew L. Russell,OSI: The Internet That Wasn't,suspectrum.ieee.org,IEEE Spectrum, 30 luglio 2013.URL consultato il 27 settembre 2017(archiviatoil 27 settembre 2017).
  7. ^abcTanenbaum, 2002,§ 1.4.4.
  8. ^(EN) Richard Zurawski (a cura di),32.2 SNMP: History,inThe Industrial Information Technology Handbook,South San Francisco, CRC Press, 2014,ISBN0-8493-1985-4.
  9. ^(EN)ISO/IEC 7498-1:1994,suiso.org.
  10. ^(EN)ISO 7498-2:1989,suiso.org.
  11. ^(EN)ISO/IEC 7498-3:1997,suiso.org.
  12. ^(EN)ISO/IEC 7498-4:1989,suiso.org.
  13. ^(EN)Internetworking Basics,suCisco.URL consultato il 28 agosto 2016(archiviato dall'url originaleil 12 giugno 2018).
  14. ^(EN)Cross-Layer(PDF), suNetlab.URL consultato il 1º settembre 2018(archiviato dall'url originaleil 1º settembre 2018).
  15. ^(EN)Cross-Layer Optimization for Energy-Efficient Wireless Communications(PDF), suliye.ece.gatech.edu.URL consultato il 17 maggio 2019(archiviato dall'url originaleil 16 novembre 2017).
  16. ^abcdefgI livelli del sistema OSI,suTechTarget,29 gennaio 2007(archiviato dall'url originaleil 3 gennaio 2010).

Collegamenti esterni

[modifica|modifica wikitesto]
Controllo di autoritàGND(DE)4201284-3