Gli strati di Internet

16 lug

Questo nostro universo è fatto a strati, l’abbiamo già detto in un paio di post, il significato della scoperta del bosone Higgs è aver trovato un ulteriore strato più in profondità. La stratificazione è una diretta conseguenza (una “proprietà emergente” questo è il termine che usano i fisici)  dell’interazione ripetuta tra un gran numero di “agenti” (qualunque cosa possa far qualcosa). Sembra qualcosa di molto astratto e filosofico. Nulla di più lontano dal duro mondo della gente che deve lavorare sul serio per mandare avanti la baracca.
E invece no. La prima cosa che viene insegnato agli ingegneri elettronici è che i sistemi di comunicazioni (e in particolare internet) hanno una struttura a strati e il progettista deve stare ben atento a rispettarli. Vediamo perché. Per far questo non abbiamo neppure bisogno di saper nulla di tecnico, basta riferirsi a una normale comunicazione tra un gruppo di amici in una stanza.
Innanzi tutto se ci sono degli amici che parlano tra loro ci sarà dell’aria in cui si propagano le onde sonore, corde vocali che emettono suoni e orecchie che le rilevano. Tutto questo è il livello più basso (il corrispondente dei bosoni Higgs nella stratificazione dell’universo). Questo livello è detto dagli ingegneri livello fisico. Sopra a questo livello c’è il livello detto di “connessione (link)”.  Il fatto che in una stanza ci siano aria, corde vocali e orecchie non significa che ci sia una connessione tra qualcuno che emette suoni e qualcun altro che ascolta. Gli amici nella stanza potrebbero fischiettare soprapensiero, ognuno immerso nei fatti propri. Che cosa stabilisce una connessione tra un gruppo di amici? E’ una di quelle cose che sembrano evidenti solo a prima vista. In realtà tutta una serie di piccoli segnali di feedback. Tizio che guarda Caio che sta parlando. Oppure Sempronio che annuisce con la testa. Nel mondo di internet il livello di connessione, molto più prosaicamente, sono gli indirizzi MAC (Media Access Control) che identificano chi fisicamente (quale computer) sta trasmettendo e chi sta ricevendo. Ma in una rete non è detto che chi sta trasmettendo sia effetivamente chi ha qualcosa da dire e non sia invece un “passaparola” e analogamente, chi riceve non è detto che sia il destinatario finale dell’informazione e non sia invece un destinatario intermedio. Il livello che gestisce tutti queste connessioni intermedie che determinano l’effettiva connessione tra il vero mittente e il destinario è detto “livello di rete (network)”. Si noti come questo livello sia gerachicamente superiore al livello di connessione e questo sia superiore al livello fisico. Per fare un analogia con la stratificazione del mondo reale, il livello fisico delle comunicazioni potrebbe essere il livello degli atomi, il livello di connessione potrebbe essere il livello dei singoli neuroni, il livello di rete è come l’informazione possa passare da un capo all’altro del nostro sistema nervoso passando attraverso più neuroni.
Aver reso possibile la comunicazione tra un mittente e un destinatario non basta per avere un’effettiva comunicazione. Il passo successivo è organizzare l’informazione in modo gestibile, di solito ciò significa farne dei pacchetti. Quando due persone parlano tra di loro, non emettono un flusso indistinto di suoni, ma suddividono il flusso in parole, ecco questi sono i pacchetti del livello detto di “trasporto” (la scelta del termine è piuttosto infelice, ma questo è piuttosto tipico  dei termini tecnici, d’altra parte se gli ingegneri sapessero usare le parole farebbero un altro mestiere… magari gli scrittori).
Ma torniamo alla comunicazione. Un tizio che sta comunicando potrebbe voler gestire più comunicazioni allo stesso tempo. Ad esempio gli amici che discorrono in una stanza potranno avere un telefono cellulare che nel bel mezzo di una frase si mette a squillare. Questo evento va gestito. Il tizio che parla potrebbe semplicemente prendere il cellulare e spegnerlo, oppure iniziare una nuova comunicazione al cellulare terminarla e poi riprendere quello che stava dicendo. Il livello che gestisce tutto ciò è detto livello di sessione (anche in questo caso la scelta del termine non è proprio felicissima, ma l’idea è che la comunicazione verbale e quella telefonica sono due “sessioni” diverse).
Stabilito quindi che tra un mittente e un destinatario c’è un flusso di parole, bisogna aver chiaro in che lingua sono queste parole: italiano, inglese, tedesco… Nel mondo di internet il livello del linguaggio è detto livello di “presentazione” (e qui la ben nota tendenza degli ingegneri di usare termini fuorvianti dà proprio il suo meglio: ma cosa c’entra “presentazione”?!). Se è necessario introdurre una codifica (per rendere sicura la trasmissione, ovvero per rendere inintellegibile il messaggio ad estranei), questo è il livello alla quale si inserisce. In effetti una codifica non è altro che usare un linguaggio privato che solo il mittente e il destinatario conoscono.
E finalmente arriviamo in cima alla catasta: il livello dell’applicazione. L’applicazione è nel mondo di internet l’equivalente della persona fisica che ha qualcosa da dire o che vuole ascoltare. In informatica chi genera un flusso di dati è sempre un “applicazione” che gira in un computer, così come chi riceve e usa quei dati.
E questo è il cosiddetto “modello a strati della comunicazione”, una delle prime cose che vengono insegnate ai nostri ingegneri. Ma anche un’idea molto più profonda e generale sulla comunicazione e sull’universo stesso.

9 COMMENTI A “Gli strati di Internet”

  1. Gioia 16 luglio 2012 alle 17:34

    Bellina l’analogia prof!

  2. Giacomo dabisias 17 luglio 2012 alle 10:33

    Mmm non saprei bene cosa dire..ieri ho visto un link che parlava della stratificazione di internet, ma risultava piuttosto ridicolo, data la scarsa presenza di livelli in quell’ambito. Ecco internet direi che segue poco questo approccio..inoltre direi che in generale i livelli servono a standardizzare, ma si potrebbe farne anche a meno.

    • Massimiliano Pieraccini 17 luglio 2012 alle 13:33

      Le stratificazione delle comunicazioni è una necessità, il problema è che ogni protocollo l’ha realizzata come meglio ha creduto (definendo un numero diverso di strati, internet in realtà ne usa solo 5, e specifiche diverse di interfacce). Il modello a 7 strati ISO/OSI, a cui faccio riferimento nel post, è più una linea guida che una realtà. Resta il fatto che la stratificazione è intrinseca alla comunicazione, non se ne può fare a meno, però si può sottintendere, come spesso si fa, soprattutto nei protocolli meno recenti.

  3. giacomo dabisias 18 luglio 2012 alle 17:14

    No, la comunicazione usa i famosi livelli iso/osi, internet non ha dei propri livelli. I livelli non sono necessari. Potrei benissimo fare un protocollo di comunicazione che ingloba 3 livelli in uno solo. Questo si vede bene nei protocolli tipo ATM ecc dove addirittura sono stati aggiunti livelli per poter adattare meglio la struttura già esistente alle necessità.(un pò il contrario ma si capisce il senso) I livelli servono a facilitare la costruzione di nuovi protocolli e di avere una interfaccia comune per tutti gli utenti, ma non sono fondamentali allo scopo di comunicare.

    • Massimiliano Pieraccini 19 luglio 2012 alle 10:20

      Dalla antenna del tuo cellulare si irradia un’onda elettromagnetica, nello schermo del mio cellulare compaiono le parole di un sms. Non sono roba allo stesso livello di realtà. Poi in base ai protocolli (ovvero alle convezioni tra ingegneri) tra onda e.m. e “ciao, come stai” puoi inserire 2, 7 o 100 livelli, o magari nessuno esplicitamente definito.

  4. giacomo dabisias 19 luglio 2012 alle 15:09

    ecco infatti, sono cose a livelli differenti di realtà ma questo non significa che vadano codificati per forza in tali livelli. Come ha detto lei il numero di livelli è convenzionale.

    • Massimiliano Pieraccini 19 luglio 2012 alle 17:02

      Non vanno codificati per forza i livelli e c’è molto di convenzionale su dove stabilire i confini. Ma questo, a ben vedere, è tipico di tutti i sistemi che si evolvono (tecnologia, vita, universo…). Si chiamano: “accidenti congelati”. Faccio un esempio: la tastiera qwert, quella che usiamo. Non c’è nessuna ragione per cui debba avere questa specifica disposizione, ma molti anni fa una macchina da scrivere con questa particolare disposizione di tasti ebbe un gran successo commerciale ed è diventato uno standard, la stessa cosa vale per il passo dei bulloni che usiamo e un sacco di altre cose tecnologiche. Nella natura succede lo stesso. La vita è basata sul DNA non perché sia l’unica molecola replicante, ma perché è quella che ha avuto successo per prima (come la tastiera qwert), le piante si basano sulla clorofilla per la stessa ragione ecc. DNA e clorofilla non sono scelte obbligate (come non lo sono i livelli della comunicazione), ma “accidenti congelati”, esattamente come le “convenzioni”. Le parole che usiamo sono certamente convenzioni, avremmo potuto fare altre scelte (per questo ci sono tante lingue), ma una volta fatta la scelta su di essa si coagula con il tempo un livello e non si torna più indietro: è come se acquistassero una consistenza fisica.

  5. Onofrio Filoramo 9 agosto 2012 alle 11:01

    Per migliorare la velocità di scrittura, i tasti delle lettere dell’alfabeto inglese più frequenti, occupano la parte centrale della tastiera, dando luogo alla disposizione di tipo QWERTY.
    Se questa disposizione ha avuto successo è per motivi darwiniani.
    Gli altri competitori sono stati sconfitti perchè meno adatti a sopravvivere nell’ambiente commerciale che si è sviluppato.
    Anche per gli altri esempi riportati forse si può fare la stessa considerazione.

    • Massimiliano Pieraccini 27 agosto 2012 alle 11:21

      In realtà è forse vero il contrario. Al tempo in cui fu introdotta la disposizione QWERTY le macchine da scrivere si inceppavano continuamente perché non riuscivano a seguire la velocità di battitura dei dattilografi. Il successo della QWERTY fu proprio dovuto al fatto che quando fu introdotta era la PEGGIORE possibile, ovvero quella che impacciava di più i movimenti dei dattilografi impedendo alla macchina di incepparsi. Queste macchine acquistarono subito grande fama di affidabilità e funzionalità (in realtà erano solo più scomode e quindi più lente) ed ebbero successo. Con il progresso della meccanica quell’assurda disposizione non ebbe più scopo, ma ormai era divenuta uno standard e i molti tentativi di introdurre disposizioni più razionali e veloci sono falliti. Il risultato è quello che si chiama un “accidente congelato”. Ovvero una soluzione non ottimale, conservata perché ormai non più eliminabile. L’evoluzione (naturale o tecnologica) è piena di cose di queste genere. L’esempio classico è la disposizione nell’occhio umano dei nervi ottici SOPRA i coni e i bastoncelli e non SOTTO, come sarebbe più logico e naturale. In generale i processi darwiniani non portano necessariamente alla soluzione migliore, anche se spesso ci vanno piuttosto vicino. Come dico spesso a lezione: quando un ingegnere capisce un meccanismo, lo realizza molto meglio di madre natura (la stessa cosa non vale per la tecnologia nel suo complesso che non è determinata dal singolo progettista, ma da un processo sociale essenzialmente darwiniano). Le nostre piccole telecamere (che tutti ci portiamo in tasca nel cellulare) sono molto migliori del nostro ottico (uno smartphone ha oggi 8 megapixel, il nostro occhio meno di 1megapixel, giusto per fare un confronto brutale), i nostri aerei volano più veloci e più in alto di qualunque uccello, i nostri farmaci sintetici sono più efficaci di qualunque rimedio naturale e così via..

LASCIA IL TUO COMMENTO