La madre della rete Internet come oggi la conosciamo è nata su sollecitazione della DARPA, agenzia del Dipartimento della Difesa degli Stati Uniti responsabile dello sviluppo di nuove tecnologie ad uso militare di cui anche gli accademici potevano fare uso.
Si chiamava ARPANET e nacque nell’ottobre 1969, ormai quasi 52 anni fa, quando fu trasmesso un primo messaggio tra due elaboratori informatici fisicamente situati a circa 500 chilometri di distanza.
Abbiamo già parlato di ARPANET e della sua storia: durante la guerra fredda collegò due importanti poli universitari statunitensi per poi essere utilizzata per finalità legate alla sicurezza nazionale solo successivamente.
Oggi si celebrano però i primi 40 anni dei protocolli TCP/IP ancora oggi la spina dorsale per il funzionamento della rete Internet.
La suite di protocolli per la rete Internet, successore di ARPANET, fu infatti approvata dalla DARPA nel mese di settembre 1981: per interconnettere calcolatori eterogenei si utilizzarono due protocolli – TCP (Transmission Control Protocol) e IP (Internet Protocol) – che sono stati conservati fino ai giorni nostri.
La rete che raccolse l’eredità di ARPANET, Internet, fu infatti pensata come una rete a commutazione di pacchetto in cui l’informazione da trasferire viene “spezzettata” in pacchetti trasmessi individualmente e in sequenza. Il trasferimento si attiene a un meccanismo di instradamento definito attraverso apposite tabelle di routing.
La suite TCP/IP fu ideata dai “padri della rete” Vint Cerf e Bob Kahn già nel 1973: IP si occupa di indirizzamento e routing ovvero di come i pacchetti dati fluiscono attraverso la rete; TCP gestisce le connessioni e si accerta che i pacchetti arrivino alla giusta destinazione.
Se le informazioni non arrivassero a destinazione oppure risultassero corrotte, TCP si occupa di inviare nuovamente i pacchetti persi o danneggiati. La ricezione di un pacchetto ACK (acknowledgment) inviato dal destinatario conferma che la trasmissione del singolo dato è andata a buon fine.
Quando il mittente non riceve l’ACK, la trasmissione viene temporaneamente sospesa e se l’attesa supera un certo limite si procede con una nuova trasmissione del pacchetto dati.
Prima di TCP/IP veniva utilizzato un altro protocollo NCP (Network Control Program) che però si rivelò rapidamente inadeguato nel momento in cui le dimensioni della rete cominciarono a cresce con oltre 1.000 host connessi.
Durante gli anni ’70 aziende come IBM, DEC, AT&T e Xerox avevano creato le loro reti di computer proprietarie e non interoperabili. La suite TCP/IP fu subito percepita come un immenso balzo in avanti perché si trattava di una soluzione non proprietaria, esente da royalty, ad architettura aperta che permetteva a computer di qualsiasi tipo di comunicare attraverso qualsiasi mezzo purché lo stack TCP/IP supportato.
L’approvazione della soluzione TCP/IP del duo Cerf-Kahn di settembre 1981 (RFC 791 e RFC 793) diede il via a una serie di eventi che hanno portato a realizzare le fondamenta della moderna rete Internet.
Nel 1981 Cerf apparse sulla copertina della rivista Boardwatch Magazine con una maglietta sul quale era stampato lo slogan “IP on everything“.
Il 1° gennaio 1983, in particolare, si concluse la migrazione a TCP/IP con i tecnici che collaborarono al progetto che indossarono una storica spilletta sulla quale campeggiava il messaggio “sono sopravvissuto alla transizione TCP/IP“.
In combinazione con il protocollo IP veniva e viene oggi utilizzato anche UDP (User Datagram Protocol), ideato nel 1980 da David P. Reed.
La differenza rispetto a TCP è che UDP è inaffidabile ma consente di ottenere performance ottimali: si utilizza ad esempio per veicolare contenuti in streaming nelle situazioni in cui la perdita di pochi pacchetti dati non rappresenta affatto un problema.
Più di recente Google ha lavorato sul protocollo QUIC che mira ad accantonare TCP per le comunicazioni web su HTTP unendo i vantaggi di TCP a quelli di UDP.
Gli ingegneri di rete chiamano il design modulare della suite di protocolli per la rete Internet “stack di protocolli” perché i livelli inferiori possono essere gestiti indipendentemente nel modo più appropriato. È proprio questa struttura che ha permesso ad esempio di conservare IP sostituendo al bisogno il protocollo TCP con UDP.
Semplificando, nella pila ISO/OSI al di sopra del mezzo fisico utilizzato per far fluire i dati (ad esempio Ethernet) ci sono il livello di collegamento (link) appunto rappresentato dal protocollo IP e al di sopra ci sono ad esempio TCP, UDP e il moderno QUIC (livello di trasporto).
Al di sopra del livello di trasporto troviamo il livello applicativo con tutti i protocolli che si occupano del funzionamento delle applicazioni e dei servizi che usiamo ogni giorno (si pensi ad esempio, tra i tantissimi protocolli, a HTTP, FTP, DNS, DHCP, SSH, POP, IMAP, SMTP, SNMP).
Uno stack così flessibile e versatile è la ragione per cui la proposta di Cerf e Kahn ha riscosso così tanto successo ed è il motivo per cui ancora oggi rappresenta la spina dorsale della rete Internet.
Attualmente la porzione più ampia degli host collegati alla rete Internet utilizza Internet Protocol versione 4 (IPv4) risalente proprio a settembre 1981. C’è però una versione più recente chiamata IPv6 introdotta nel 1998 e che si sta lentamente diffondendo per sopperire alla penuria di indirizzi nel formato IPv4.
Nell’articolo in cui spieghiamo cos’è e come funziona IPv6 abbiamo visto che mentre IPv4 permette di usare al massimo 4,3 miliardi di indirizzi IP (che oggi non bastano più), con IPv6 sono utilizzabili 2128 indirizzi (dalla notazione a 32 bit di IPv4 si passa a indirizzi IPv6 che sono a 128 bit).
IPv4 e IPv6 restano interoperabili quindi gli operatori di rete stanno progressivamente passando alla nuova versione del protocollo IP, anche in Italia nonostante ritardi pluriennali.
In un altro articolo approfondiamo il tema indicando come capire se state usando un indirizzo IPv4 o IPv6.
Pensate che se ormai da gennaio 2011 gli indirizzi IPv4 risultano esauriti il successo planetario della rete Internet cominciò proprio in quel mese di settembre 1981. Pensate qual è stata la portata dell’invenzione di Cerf, oggi 78enne, e del collega Kahn, classe 1938.
Diversi anni dopo, tra il 1989 ed il 1990 fu poi Tim Berners-Lee a scrivere il primo client/server web e la prima versione di quello che sarebbe poi divenuto il linguaggio HTML utilizzando come piattaforma per lo scambio delle comunicazioni proprio la rete Internet basata sul protocollo TCP/IP. La prima pagina Web della storia fu pubblicata trent’anni fa: era l’agosto 1991.