Salta il menu

Modello OSI

Notizia del 23/11/2006

Premessa: La spiegazione sarà forzatamente lacunosa e poco tecnica, perché io stessa sono agli inizi e perché comunque non è certo possibile sviscerare un argomento tanto complesso in poche righe: il suo proposito è semplicemente quello di soddisfare la curiosità di qualche navigatore a cui non interessano particolari approfondimenti, ma che si accontenta di capire a grandi linee come funziona.

Come già fatto in precedenza, anche stavolta ho creato un glossario a fondo pagina per aiutare meglio la comprensione del testo.

***

Quando ci si inoltra nel campo delle reti, uno dei primi incontri è con il modello OSI, cioè lo schema di riferimento a cui si ispira tutto quel che riguarda le reti di computers per la comunicazione dall'uno all'altro. Ho trovato particolarmente affascinante capire cosa succede quando premo il tasto Invia dopo aver scritto una mail a qualcuno e mi piacerebbe riuscire a spiegarlo da inesperta a chi come me prova curiosità per l'argomento.

Come ho detto, il modello OSI (Open Systems Interconnection) suddivide i passaggi in sette differenti livelli; un livello dipende da quello precedente e serve quello successivo, ma lavora secondo regole e protocolli a se stanti.

Ogni livello ospita una serie di protocolli, ognuno dei quali si occupa di un determinato passaggio. Vediamo i nomi e le funzioni dei livelli dall'alto [7] in basso [1]:

  • 7 - Applicazione: è il livello con cui noi interagiamo e ad esso fanno riferimento i programmi di posta, di navigazione, le applicazioni per ufficio, di chat eccetera.
  • 6 - Presentazione: si occupa di trasformare la nostra mail, la foto delle vacanze o il file mp3 della nostra band in una serie di impulsi (bit); inoltre crittografa i dati quando comunichiamo con il sito della nostra banca.
  • 5 - Sessione: quando accendiamo il browser iniziamo una sessione e così quando contattiamo un amico in chat, mentre quando chiudiamo il browser la terminiamo e questa fase è gestita appunto dal livello 5.
  • 4 - Trasporto: qui dentro si trova la suite di protocolli che si occupa del trasporto dei dati: li suddivide in piccoli pacchetti e aggiunge una serie di dati (quanti saranno in totale i pacchetti, applicativo che effettua la spedizione etc) tra cui il tipo di protocollo usato:
    • UDP per gli applicativi che hanno bisogno di arrivare subito e quanto più fluidamente possibile (es. un filmato visto su YouTube)
    • TCP per gli applicativi che hanno bisogno di arrivare integri indipendentemente dal tempo impiegato (una mail, un'immagine etc)
  • 3 - Rete: è il livello in cui opera il protocollo IP; riceve i dati dal livello di trasporto e tra le informazioni che aggiunge ci sono:
    • l'indirizzo IP del computer di origine
    • l'indirizzo IP del computer di destinazione
  • 2 - Datalink: aggiungere le informazioni che permettono di raggiungere il nodo successivo della rete come ad esempio l'indirizzo MAC
  • 1 - Livello fisico: il connettore della scheda di rete a cui è collegato il cavo attraverso il quale passano gli impulsi (bit) che permettono la comunicazione tra due macchine

I sette livelli sono rappresentati nell'immagine qui sotto e le frecce indicano il percorso fatto dai dati per passare da un computer all'altro:

Schema del modello OSI per le reti di computers

Il percorso più o meno è questo: il livello (poniamo il livello di trasporto) riceve i dati dal livello superiore, vi aggiunge le informazioni che gli competono e invia il nuovo pacchetto (quanto ricevuto dal livello superiore e quanto aggiunto da esso stesso) al livello inferiore che provvederà a fare altrettanto.

A ogni passaggio sono aggiunte delle informazioni: quel che si riceve "da sopra" è considerato contenuto e quel che si spedisce "sotto" è considerato pacchetto (definizione imprecisa, ma sufficiente per comprendere il meccanismo); le informazioni inserite dai vari livelli saranno interpretate dal livello speculare dell'altro computer, cioé i dati inseriti a livello di trasporto sono pensati per fornire informazioni al livello di trasporto del computer di destinazione.

Allo stesso modo, ma facendo il percorso contrario, si procederà al ricevimento del pacchetto: il livello inferiore interpreta i dati che gli servono e li elimina, provvedendo poi a passare la parte restante al livello superiore: figuratevi una specie di cipolla a cui a ogni passaggio viene aggiunto (in fase di spedizione) o tolto (in fase di ricevimento) uno strato.

Ogni singolo pacchetto è grande al massimo 1,5kb circa, perciò quando spediamo un file non lo spediamo tutto assieme, ma "sezionato" in una serie di piccoli pezzi (è il livello di trasporto - come detto - che si occupa del sezionamento).

In tutta questa serie di passaggi, una delle parti che più mi hanno incuriosita e stupita è quella che riguarda la spedizione vera e propria; PRIMA di trasmettere un singolo pacchetto, il computer d'origine procede all'handshaking, la stretta di mano:

  • invia un messaggio di richiesta di comunicazione al nodo successivo
  • riceve un messaggio di conferma
  • invia un messaggio di avviso del tipo "conferma ricevuta, ora inizia la trasmissione"

I passaggi sono ripetuti di nodo in nodo (il nostro computer al server del nostro provider, questo al nodo di rete successivo a cui fa riferimento etc) per ogni pacchetto. Il pacchetto (quello creato dal livello 3) rimane sempre lo stesso fino a raggiungere il computer a cui è destinato, il frame (quello creato al livello 2 e che contiene il pacchetto creato al livello 3) a ogni nodo che raggiunge viene interpretato, scartato e sostituito da uno che "vivrà" fino al nodo successivo e così via.

Poco? Ok, allora aggiungete che ogni pacchetto può arrivare a destinazione per percorsi diversi (la nostra foto arriverà al collega negli Stati Uniti in parte passando per la Francia, in parte passando per l'Inghilterra, in parte facendo il giro per la Cina o l'Australia) e che per ogni pacchetto (almeno di quelli spediti con il protocollo TCP che devono arrivare integri) c'è una conferma di ricevimento o una richiesta di ritrasmissione e come se non bastasse a tutto ciò si aggiungono una serie di pacchetti (che a questo livello si chiamano frames) spediti per conoscere la situazione della rete e scegliere una strada diversa nel caso che il percorso usato fino a poco prima si fosse interrotto per qualche motivo e tutto questo tra il momento in cui premete Invio e quello in cui il collega riceve il file che gli avete spedito mentre stavate chattando con lui: tempo totale una manciata piccolissima di secondi e tutto usando SOLO 0 e 1 o meglio impulso-silenzio!

Ecco, forse ora vi è più chiaro come mai l'argomento mi ha lasciato letteralmente a bocca aperta ;)

Per chi volesse saperne di più, oltre al moltissimo materiale che si trova in rete (lo stesso Wikipedia è ben fornito!), esistono manuali più o meno specifici e con diversi gradi di difficoltà.

***

Glossario

  • Bit: l'unità di misura dei computer è il bit, generalmente rappresentato come 0 e 1; relativamente alle reti e prendendo la spiegazione con le pinze, possiamo paragonarlo all'alfabeto morse: impulso - silenzio - impulso - silenzio etc; la serie di impulsi e silenzi (o di luce - buio nel caso della fibra ottica o ancora di onde alte - onde basse nel caso delle trasmissioni analogiche e delle reti wi-fi) sono il modo di comunicare tra un nodo e l'altro; normalmente si ragiona in termini di byte, cioè un'unità di misura composta da 8 bit
  • Frame: il pacchetto nel formato di trasferimento attraverso il cavo di rete
  • Indirizzo IP: ogni computer collegato in rete ha un indirizzo univoco che gli permette di essere rintracciato; questo indirizzo è formato da 4 serie di numeri divisi da un punto, ad esempio uno degli IP di google.it è 216.239.59.147 (provate a scrivere questo numero sulla barra degli indirizzi del vostro browser e a dare invio: sarete collegati con uno dei server di Google)
  • Indirizzo MAC: la parte di computer a cui è collegato il cavo di rete (il doppino telefonico, il cavo del modem ADSL etc) si chiama scheda di rete; ogni scheda di rete ha un suo identificativo univoco che si chiama MAC (es. 00-0E-77-OC-67-3B)
  • Nodo: per nodo si intende una delle macchine collegate in rete: un computer, un server, un router etc
  • Pacchetto: è ciò che prepara un livello per il livello sottostante; quello che per un livello è il pacchetto confezionato si trasforma per il livello successivo che lo riceve in payload o contenuto.
  • Protocollo: un protocollo è [formato da] una serie di regole e norme e quando correttamente seguito permette la comunicazione tra due macchine; non esiste un singolo protocollo, ma una serie di protocolli ognuno dei quali gestisce uno dei passaggi; i protocolli sono creati e regolamentati da enti internazionali indipendenti dalle case produttrici di hardware che hanno tutto l'interesse a implementarli e usarli in modo che macchine di costruttori diversi possano comunicare fra loro (chi acquisterebbe un server incompatibile con il resto della rete perché usa protocolli diversi!?)
  • Suite di protocolli: gruppo di protocolli che interagisce nello stesso livello del modello OSI

Commenti

Non ci sono ancora commenti a questa news!

Aggiungi il tuo commento

I campi con * sono obbligatori.

Torna a inizio pagina