Let’s work IT out 02 — Internet

Come è nato, cosa è e come funziona.

Antonio Antonino
Let’s work IT out
10 min readMar 13, 2021

--

Se c’è una cosa che utilizziamo ancora più spesso delle password, è decisamente Internet. Ci scambiamo email, utilizziamo Google Maps quando siamo persi in un’altra città (almeno prima della pandemia, adesso al massimo nel tragitto casa-supermercato), ci scambiamo like, guardiamo serie su Netflix… Internet, e avrete quasi sicuramente sentito già dirvelo, è dappertutto, e molto spesso non siamo consapevoli di quello che succede quando mettiamo un like o mandiamo una email. In più, possiamo essere tentati di pensare che il like o l’email arrivino in un batter d’occhio dritti al destinatario, ma in realtà la nostra email viene scomposta in tanti piccoli pezzettini che vengono mandati ognuno “all’avventura” con solo ed esclusivamente un indirizzo di arrivo, potenzialmente seguendo ognuno un percorso diverso. Eppure, dopo qualche secondo, voilà: pronti immediatamente a pentirci di averla mandata così presto perché piena di errori, ma l’email è arrivata puntuale al destinatario che ha già provveduto a leggerla, facendo magari qualche smorfia o qualche risata, a seconda dei casi. Tuttavia, come questo processo di scomposizione alla sorgente e ricomposizione alla destinazione avvenga, sarà materia di un articolo futuro. In questo articolo, ci focalizzeremo sulla storia di Internet e su come esso funzioni, in maniera abbastanza semplice.

Le origini

Come molti sapranno, inizialmente Internet non aveva questo nome e nemmeno questo scopo. In principio vi era ARPANET Una rete utilizzata nella seconda metà degli anni ’60 dall’agenzia americana per i progetti di ricerca avanzata di difesa, in inglese abbreviato come ARPA. Lo scopo di questa rete era quello di mettere in comunicazione computer che non erano fisicamente vicini l’uno all’altro, ma che risiedevano in diversi centri di ricerca sparsi sul territorio americano. I primi computer connessi alla rete che non risiedevano sul suolo americano appartenevano a Norvegia e Inghilterra, che si unirono agli inizi degli anni ’70. Inizialmente, non esistevano le pagine web come le conosciamo oggi, ma la rete, che permetteva solo connessioni lentissime per gli standard attuali, rendeva possibile per questi computer geograficamente distribuiti di scambiare dati generalmente riguardanti esperimenti scientifici.

Non appena l’idea di poter connettere computer fisicamente distanti e di poter praticamente abbattere le barriere fisiche iniziò a diffondersi, diversi gruppi di lavoro/ricerca sparsi nel mondo diedero vita a diverse altre reti, molto spesso non compatibili tra loro. Solo alla fine degli anni ’70 i rappresentanti dei diversi gruppi si riunirono per definire uno standard che permettesse alle diverse reti di comunicare tra di loro: da qui il nome internet, ovvero un sistema che permetteva la comunicazione tra diverse reti, non per forza omogenee tra loro. Verso la fine degli anni ’80 nacquero, sparse per il mondo, le prime aziende, denominate Internet Service Provider (ISP), che fornivano accesso a Internet a utenti esterni a questi istituti di ricerca: da questo momento, anche grazie allo sviluppo di tecnologie più avanzate che hanno permesso di scambiare informazioni a velocità sempre più elevate, il numero di persone capaci di potersi connettere a Internet ha iniziato a crescere esponenzialmente.

La diffusione di una qualsiasi tecnologia, sia essa Internet, il cellulare, o la televisione, porta con sé lo sviluppo di modi innovativi e creativi per sfruttare tale tecnologia per soddisfare i bisogni più disparati: ed è così che, all’inizio degli anni ’90, un tizio di nome Tim Berners-Lee, professore inglese di informatica presso l’università di Oxford, rilascia la prima versione del protocollo HTTP e il primo browser, antenato di Google Chrome e Safari. Da questo momento in poi, era possibile sviluppare e pubblicare siti web che chiunque nel mondo connesso a Internet poteva visitare, sebbene all’inizio la grafica non era decisamente il punto forte di questi siti, dato che era molto “basica” e le funzionalità piuttosto limitate e si riducevano per lo più a contenuti di testo, senza la possibilità di poter includere immagini, video, o animazioni di alcun genere. Tuttavia, l’utilizzo di ipertesti permetteva a una pagina web di poter “puntare” ad altre pagine web, creando di fatto una “rete”, o web in inglese, con pagine puntanti e pagine puntate.

La prima pagina web ad essere mai stata pubblicata (origine).

Da cosa è formato Internet?

Internet, con la I maiuscola, è una rete di reti, ovvero un’infrastruttura che permette a diverse reti, eterogenee e autonome tra di loro, di poter comunicare senza la supervisione di un ente centralizzato. Non c’è nessuno che possa dire di poter “controllare Internet”, perché significherebbe avere il controllo di ogni singola rete che fa parte di questa rete di reti. Tuttavia, per garantire interoperabilità, un ente di collaborazione internazionale, denominato ICANN, si occupa di pubblicare standard (per esempio HTTP, IP, o DNS) che le diverse reti devono “seguire” se vogliono essere in grado di comunicare da e verso l’esterno con le altre reti che fanno parte dell’ecosistema.

Come le reti che creiamo nelle nostre case, dove tipicamente c’è un router/modem che permette ai dispositivi connessi di navigare su Internet, l’intera infrastruttura di Internet è basata sullo stesso concetto. A differenza di una rete domestica, i router utilizzati per collegare, per esempio, le reti di due Paesi diversi come Italia e Spagna, sono chiaramente molto più grossi e più potenti, ma utilizzano gli stessi protocolli di comunicazione che i nostri iPhone utilizzano quando usiamo l’app di Instagram.

I diversi router sono collegati tra di loro in maniera eterogenea: alcuni tramite i tradizionali cavi telefonici ormai quasi scomparsi, alcuni tramite la più recente fibra ottica, altri tramite onde radio, e altri ancora addirittura tramite collegamenti satellitari. Questa è probabilmente la più grande qualità di Internet: dispositivi appartenenti a enti diversi possono essere connessi tra di loro utilizzando tecnologie diverse, ma finché utilizzando lo stesso protocollo di comunicazione, sono in grado di comunicare.

Come detto in precedenza, le compagnie che permettono a individui non connessi di “allacciarsi” a Internet e avere finalmente una connessione prendono il nome di ISP, o Internet Service Provider. Tuttavia, questi provider non hanno una quantità infinita di banda da poter vendere ai loro potenziali clienti, bensì a loro volta “affittano” accesso a Internet da altre compagnie, in genere più grandi. Affittare accesso a Internet si concretizza in genere in due step distinti, che chiaramente avvengono dopo che le controparti si siano accordate legalmente, tipicamente tramite contratti con valenza legale, sui termini dell’affitto. Il primo step è quello di creare un canale fisico di comunicazione (sia esso basato su cavi telefonici, fibra ottica, onde radio, o altro) tra i dispositivi di connessione (router) delle due compagnie, in maniera tale da essere in grado di scambiarsi dati tra di loro. Il secondo step consiste nel configurare i dispositivi della compagnia A, che ora offre connettività alla compagnia B, affinché permettano al traffico destinato alla compagnia B di arrivare, appunto, a destinazione.

Percentuale di persone connesse nel mondo, per ogni singolo Paese.

Un esempio… coi fiocchi

Per aiutarci a capire meglio come funzione esattamente Internet, facciamo un paragone utilizzando come caso d’uso la consegna di un fiocco personalizzato, un regalo decisamente invidiabile. In termini pratici, mandare un fiocco (appositamente impacchettato) da un mittente A, in Italia, a un destinatario B, per esempio in Giappone, equivale al visitare, da casa nostra in Italia, una pagina web che risiede su un server (si pensi a un server come a un computer normale, ma molto molto più potente) in Giappone. Per cui, esattamente, cosa succede quando vogliamo mandare un fiocco?

  • Per prima cosa, ci rechiamo all’ufficio postale, dove specifichiamo l’indirizzo di destinazione, paghiamo una certa somma a seconda della priorità che vogliamo ottenere e della distanza da coprire, lasciamo il pacco e ce ne andiamo, fidandoci (non sempre a ragione) che il servizio postale consegni il fiocco al giusto indirizzo. Nel mondo di Internet, questa operazione corrisponde all’utilizzare il nostro smartphone e comunicare al nostro router di casa (o del centro commerciale, eccetera) a cui siamo connessi l’intenzione di voler visitare un certo sito. Come nel mondo reale utilizziamo un indirizzo, anche nel mondo digitale usiamo un indirizzo: in questo caso si tratta di un indirizzo IP. Ma come facciamo a sapere quale sia l’indirizzo IP del sito che vogliamo visitare se tutto ciò che sappiamo è che si chiami instagram.com? Beh, ci pensa il nostro smartphone per noi, proprio perché è smart. Ma ancora una volta, il mondo digitale ha preso esempio dal mondo reale: questa procedura di traduzione dal nome di un sito al suo indirizzo IP corrisponde al cercare sulle pagine gialle o via altri servizi simili l’indirizzo di residenza di una determinata persona. Per cui se vogliamo mandare un pacco a sorpresa a questa persona, dobbiamo prima essere in grado di capire dove abiti. Per cui, ricapitolando, step 1: depositare all’ufficio postale il pacco da consegnare a un indirizzo specifico -> nel mondo digitale -> chiedere al router di casa di visitare mostrarci il contenuto di una certa pagina web o di un servizio web, per esempio instagram.com
  • È difficile pensare che il nostro ufficio postale abbia contatti diretti con tutti gli altri uffici postali del mondo. Per cui, in genere esso fa affidamento a un servizio terzo con una copertura più ampia e che sia in grado di spostare il pacco più vicino possibile alla destinazione nel minor tempo possibile, per esempio tramite aerei cargo. Tutto ciò che l’ufficio postale comunica a questo partner è l’indirizzo di destinazione: la compagnia di consegne non ha bisogno di sapere quando, da chi, e perché il pacco con il fiocco sia stato lasciato all’ufficio postale. Una volta preso il pacco, la compagnia lo manda prima in un centro di smistamento insieme ai pacchi di altri uffici postali, per poi mandarli tutti all’aeroporto e metterli su un aereo con destinazione Giappone, e bye bye! Nel mondo digitale, le cose sono molto simili. Il nostro router è tipicamente collegato, direttamente o indirettamente, a quello del nostro ISP, che fornisce connettività a tutto il vicinato, per cui il pacchetto dati con la nostra richiesta di visitare Instagram, che ora si trova nel nostro router, viene inviato al router del nostro ISP. Una volta presa in consegna la richiesta, il router del nostro ISP seguirà un processo simile, inoltrando la nostra richiesta a uno dei router a cui esso egli stesso è connesso (simile al centro di smistamento). Il processo secondo cui un router sceglie a quale dei suoi vicini inoltrare la richiesta a seconda dell’indirizzo IP di destinazione prende il nome di routing (da cui il nome router), che in italiano può essere tradotto come “cercare il giusto percorso”. Per cui il router sceglierà a chi inoltrare la richiesta, e così via per il resto dei router, sempre più vicini a destinazione. Ricapitolando, step 2: affidare il pacco a una compagnia di consegne terza per spostarlo più vicino possibile a destinazione -> nel mondo digitale -> inoltrare il pacchetto con la richiesta di visitare instagram.com di router in router, avvicinandosi sempre di più al router collegato al server di Instagram.
  • Una volta che l’aereo atterra sul suolo giapponese, il pacco con il famoso fiocco viene prima smistato in uno dei centri di smistamento presenti sul territorio, e in un secondo momento messo su un camion per la consegna all’indirizzo specificato, con il fattorino che suona esattamente nel minuto in cui non possiamo rispondere. A questo punto, assumendo che sia in grado di aprire la porta, il destinatario rimarrà sorpreso nell’aprire il pacco che abbiamo spedito ormai due mesi prima 😍😍😍. Nel mondo digitale, questo significa che prima o poi la nostra richiesta di visitare Instagram arriverà all’ISP che fornisce connessione al server su cui Instagram è raggiungibile. A questo punto, l’ISP sarà in grado di inoltrare la richiesta a questo server che, a differenza del destinatario del pacco, non rimarrà a bocca aperta ma provvederà a mandare un altro “pacco” (più precisamente un pacchetto) in risposta al nostro, contente le foto dei gattini che ci appaiono sempre nella home. Ricapitolando per un’ultima volta, step 3: consegnare il pacco dall’aeroporto di arrivo all’abitazione del destinatario -> nel mondo digitale -> inoltrare il pacchetto con la richiesta di visitare instagram.com dal router al quale il server di Instagram è connesso al server stesso.
Inviare una richiesta a Instagram è molto simile a mandare un pacco a qualcuno.

In conclusione

Utilizzando il paragone del servizio postale e del pacco spedito, abbiamo visto, molto in superficie, il percorso di un determinato “pacchetto” di dati. Nello specifico, abbiamo visto come i vari router appartenenti a compagnie diverse non siano tutti direttamente connessi l’uno con l’altro, ma attraverso tecniche di “routing”, che danno il nome a questi dispositivi, i vari router sono in grado di capire a quale vicino inoltrare un pacchetto affinché giunga a destinazione. A sua volta, il vicino farà altrettanto, e così via finché qualcuno non si farà carico di consegnare il pacchetto direttamente a destinazione (perché direttamente collegato con esso). Tuttavia, sebbene distribuita su tutto il globo terrestre, l’infrastruttura di Internet, composta da milioni e milioni di router, non ha una gerarchia piatta, ovvero non tutti i router sono uguali. Alcune delle maggiori compagnie di telecomunicazioni formano la cosiddetta dorsale, ovvero connettono i propri router l’uno con l’altro per coprire distanze molto lunghe (per esempio connettendo l’Europa con l’Asia) a velocità elevatissime grazie all’utilizzo di lunghissimi cavi di fibra ottica, spesso adagiati (dopo essere stati opportunamente rinforzati per evitare ai predatori marini come squali e balene di romperli a morsi) sul fondale di oceani e mari di tutto il mondo.

Una mappa dei principali collegamenti che formavano la dorsale di Internet alla fine degli anni 2000.

Come detto in precedenza, Internet è in grado di essere una rete distribuita e funzionare a livello globale perché tutto il mondo adotta lo stesso protocollo di comunicazione, chiamato TCP/IP. Questo protocollo è in realtà una “cipolla” di protocolli divisi in 5 livelli (cosiddetti livelli di astrazione) a seconda di quanto più vicini o lontani dal mondo “fisico” ciascuno di loro sia. I protocolli a livello 1 e 2 si preoccupano di gestire COME la comunicazione avvenga tra due router che comunicano tra di loro, dato che alla fine si riduce a una serie lunghissima di 1 e 0 che viene codificata attraverso variazioni nel flusso di corrente che percorre il filo che collega i due router. I protocolli a livello 5, al contrario, gestiscono esclusivamente il contenuto presente dentro ogni singolo pacchetto senza pensare a come quel pacchetto sia stato consegnato a destinazione, assumendo che i protocolli ai livelli più bassi si facciano carico di quello.

Nei prossimi articoli tratteremo alcuni dei più importanti protocolli, a diversi livelli, che permettono all’Internet che usiamo ogni secondo della nostra esistenza di funzionare, ovviamente sempre con un occhio particolare alla sicurezza e alla privacy 🤓.

Come sempre, potete trovarmi su LinkedIn e su Twitter.

Saluti,

Antonio

--

--

Antonio Antonino
Let’s work IT out

Security-focused software engineer, passionate about privacy and distributed systems.