Skip to content

Il modello ISO/OSI

Questo è un mio blog post del 2013. Ancora attuale al punto che in Ottobre 2013 uno dei più grandi esperti di networking e cybersecurity a livello internazionale, Robert Graham, ha scritto The OSI Deprogrammer, un libro di 240 pagine con il solo scopo di spiegare che"The OSI model, the common way of describing the Internet, needs to be abandoned. It’s not just a lie, but unhelpful. It needs to be removed everywhere, except as a historic footnote about 1970s mainframes.".

Qualcuno si ricorda del modello ISO/OSI ?

Fino a qualche anno fa ogni testo o corso di Reti di Calcolatori iniziava immancabilmente con la descrizione del cosiddetto "modello ISO/OSI". Per molti, molti anni chiunque avesse a che fare con il networking si trovava a che fare con la cosiddetta "pila dei 7 livelli ISO/OSI".

Oggi del modello OSI non se ne parla più, giustamente (Update 2023: non è vero, altrimenti non ci sarebbe stata la necessità di scrivere The OSI Deprogrammer; io faccio parte della numerosissima comunità che non ne parla per niente). Quando ho iniziato a tenere il corso di Reti ne ho parlato anch'io molto brevemente, se non ricordo male solo per le prime due edizioni. Poi ho smesso completamente di farlo---e devo dire di sentirmi orgoglioso per avere smesso di trattarlo così presto. Un articolo su IEEE Spectrum racconta la storia del modello OSI in modo molto ameno e leggibile ("The Internet that wasn't", accessibile solo dalla rete di ateneo).

Io sono, diciamo così, passato attraverso tutte le fasi del modello. Quando ero uno studente dell'ultimo anno di Ingegneria Elettronica (1988/89) il modello OSI ci veniva presentato come un mondo fantastico ed inevitabile, appena dietro l'angolo---non esisteva ancora ma sarebbe esistito molto presto ed ovunque.

Per capire perché OSI avrebbe creato un mondo fantastico, occorre tenere presente che a quei tempi Internet era praticamente inesistente:

  1. Pochissime organizzazioni avevano una network. C'erano solo i minicomputer (macchine con una decina di terminali a caratteri) ed i primissimi PC o Mac. Quasi mai erano collegati ad una network.
  2. Inoltre, network diverse erano quasi sempre isolate tra loro.

L'invio di messaggi da una network ad un'altra era complicatissimo perché era difficile trovare un protocollo adatto ad entrambe le network e del quale esistessero due implementazioni (una per ogni network) in grado di essere eseguite sul nodo gateway (oggi lo chiamiamo router).

Inoltre, perché mai uno doveva fare una cosa così complicata e costosa ? La comunicazione tra nodi è utile solo se i nodi eseguono applicazioni in grado di cooperare tra di loro, il che richiede altri protocolli ed altre implementazioni. A quei tempi non c'era nulla di tutto questo. In pratica, il massimo che si riusciva a fare era trasferire un file da un nodo all'altro. Qualcosa che si riusciva a fare anche con i floppy disk.

OSI era la promessa di un mondo fantastico, in cui magicamente tutte le network avrebbero potuto essere collegate tra di loro ed i relativi software avrebbero potuto cooperare a tutti i livelli di astrazione. Qualcosa che oggi è normalissimo ma a quei tempi era, appunto, una sorta di sogno.

Una precisazione: Internet esisteva, ma collegava solo alcune network di alcuni enti di ricerca. In questi enti, erano pochissimi i calcolatori collegati ad Internet, tipicamente solo alcuni minicomputer. L'uso pratico di Internet non era neanche paragonabile a quello odierno, serviva solo per trasferire file, leggere le news USENET ed inviare mail. La mail non era neanche paragonabile a quella odierna: pochissimi avevano un account mail e trovare l'indirizzo mail di qualcuno che non si conosceva personalmente era un'impresa---il web non esisteva.

Il sogno di OSI, questo mondo fantastico appena dietro l'angolo, è rimasto tale per anni. Ormai ci siamo, ormai ci siamo...ma non accadeva mai. Nel frattempo, Internet ed i protocolli TCP/IP prosperavano e si diffondevano. I libri di testo ed i corsi continuavano a parlare di OSI. Ma nessuno lo vedeva in pratica. Nessuno capiva quasi nulla di OSI, anche perché chi aveva una qualche esperienza pratica aveva usato ftp o la email su Internet; chi aveva più esperienza conosceva gli indirizzi IP, Ethernet ed un pò di routing IP. Mettere in corrispondenza queste entità con il modello OSI era un'impresa.

In estrema sintesi, ed in modo impreciso: il modello OSI era un elenco di funzionalità da implementare ad ognuno dei 7 livelli di astrazione definiti dal modello; ed un elenco di protocolli che implementavano quelle funzionalità. Internet invece era un piccolo insieme di protocolli molto semplici, senza alcun "modello". Il modello OSI non si diffondeva perché, molto banalmente, le implementazioni dei protocolli erano poche, complicate, inefficienti e costose. Le implementazioni dei protocolli Internet invece erano molte, semplici, rapide e gratuite.

Quando, nel 2000/2001, ho tenuto per la prima volta il corso di Reti di Calcolatori era ormai chiaro che Internet aveva sconfitto definitivamente OSI. Non ho avuto il coraggio di omettere completamente OSI perché se ne parlava ancora molto nei libri di testo. Mi sembra di averlo cassato completamente nella terza edizione.

Concludo con un aneddoto (divertente solo per chi conosce i docenti coinvolti, penso nessuno tra quelli che leggeranno questo blog). Quando ero studente del quinto anno, il docente del corso di "Macchine per l'elaborazione dell'informazione" (corso che verteva sull'hardware dei sistemi multiprocessore...le reti non erano parte dei programmi) organizzò dei seminari tenuti da una persona coinvolta nella definizione del modello OSI. I seminari erano quasi incomprensibili perché il modello OSI era, appunto, un "modello" e nessuno di noi sapeva nulla di reti. L'unica cosa che capivamo era l'enfasi sulla interoperabilità tra i sistemi. La cosa era divertente (e, ripeto, lo possono capire solo quelli che conoscono i due docenti) perché il docente del seminario pomeridiano ci esaltava il fantastico modello OSI, poi la mattina successiva il docente a lezione ci diceva "tanto di OSI non è vero nulla...se avete un computer Digital vi servono i protocolli Digital e se avete un IBM vi servono i protocolli IBM...fra loro non si parlano..non c'è niente da fare, OSI non funziona..."