Nel nostro articolo La storia di internet abbiamo visto come Eisenhower, il presidente americano che da generale aveva guidato lo sbarco in Normandia per sconfiggere i nazisti di Hitler, preoccupato che l’America perdesse la propria egemonia scientifica, tecnologica, economica e militare dopo il lancio nello spazio dello Sputnik sovietico nel 1957, riunì attorno a sé i migliori cervelli dell’epoca dando inizio ad una escalation di intuizioni che portò nel 1969 ad ARPANET.
L’originale ARPANET diventa successivamente Internet. Internet si basava inizialmente sull’idea che ci sarebbero state più reti indipendenti dal design piuttosto arbitrario, iniziando con ARPANET come rete pionieristica a commutazione di pacchetto, ma presto includendo reti satellitari a pacchetto, reti radio terrestri a pacchetto ed altre reti.
Internet, come la conosciamo oggi, incarna un’idea tecnica chiave di fondo, vale a dire quella della rete ad architettura aperta. Con questo approccio, la scelta di ogni singola tecnologia di rete non era dettata da una particolare architettura di rete ma, piuttosto, poteva essere selezionata liberamente da un fornitore e fatta interagire con le altre reti attraverso un meta-livello di Internetworking Architecture.
Fino a quel momento c’era solo un metodo generale per federare le reti. Questo era il metodo tradizionale di commutazione di circuito in cui le reti si interconnettevano a livello di circuito, passando singoli bit su base sincrona lungo una porzione di un circuito end-to-end tra una coppia di località finali.
Leonard Kleinrock aveva dimostrato nel 1961 che la commutazione di pacchetto era un metodo di commutazione più efficiente. Insieme alla commutazione di pacchetto, gli accordi speciali di interconnessione tra reti erano un’altra possibilità. Mentre c’erano altri modi limitati per interconnettere reti diverse, essi richiedevano che una fosse usata come componente dell’altra, piuttosto che agire come un peer dell’altra nell’offrire un servizio end-to-end.
In una rete ad architettura aperta, le singole reti possono essere progettate e sviluppate separatamente e ciascuna può avere la propria interfaccia unica che può essere offerta agli utenti e/o altri fornitori, compresi altri fornitori di Internet. Ogni rete può essere progettata in conformità con l’ambiente specifico e le esigenze degli utenti di quella rete. Non ci sono generalmente vincoli sui tipi di rete che possono essere inclusi o sulla loro portata geografica.
L’idea di una rete ad architettura aperta è stata introdotta da Robert Kahn poco dopo essere arrivato alla DARPA nel 1972. Questo lavoro era originariamente parte del programma Packet Radio, ma successivamente divenne un programma separato a sé stante. All’epoca il programma era chiamato “Internetting”.
La chiave per far funzionare il sistema Packet Radio era un protocollo end-end affidabile che potesse mantenere una comunicazione efficace di fronte al jamming e ad altre interferenze radio oppure sopportare un blackout intermittente come quello causato dall’essere in un tunnel o schermato dall’orografia del territorio.
Kahn dapprima contemplò lo sviluppo di un protocollo locale solo per la rete radio a pacchetti, poiché questo avrebbe evitato di avere a che fare con la moltitudine di sistemi operativi diversi, continuando ad usare NetWare Core Protocol (NCP).
Tuttavia, NCP non aveva la capacità di indirizzare le reti e le macchine più a valle di un IMP di destinazione su ARPANET e quindi sarebbe stato necessario anche qualche cambiamento a NCP. Il presupposto era però che ARPANET non fosse modificabile in questo senso. NCP faceva affidamento su ARPANET per fornire affidabilità end-to-end. Se qualche pacchetto fosse andato perso, il protocollo, e presumibilmente qualsiasi applicazione supportata, si sarebbe fermata bruscamente. In questo modello, NCP non aveva alcun controllo degli errori dell’host end-end, poiché ARPANET doveva essere l’unica rete esistente e sarebbe stata così affidabile che non sarebbe stato necessario alcun controllo degli errori da parte degli host.
Così, Kahn decise di sviluppare una nuova versione del protocollo che potesse soddisfare le esigenze di un ambiente di rete ad architettura aperta. Questo protocollo sarebbe poi stato chiamato Transmission Control Protocol/Internet Protocol (TCP/IP).
Mentre NCP tendeva ad agire come un driver di dispositivo, il nuovo protocollo sarebbe stato più simile ad un protocollo di comunicazione.
Quattro regole di base erano fondamentali per Kahn:
Altre questioni chiave che dovevano essere affrontate erano:
Kahn iniziò a lavorare su una serie di principi di sistema operativo orientati alla comunicazione mentre era alla BBN e documentò alcuni dei suoi primi pensieri in un memorandum interno alla BBN intitolato “Communications Principles for Operating Systems”.
A questo punto si rese conto che sarebbe stato necessario imparare i dettagli di implementazione di ogni sistema operativo per avere la possibilità di incorporare qualsiasi nuovo protocollo in modo efficiente. Così, nella primavera del 1973, chiese a Vint Cerf di lavorare con lui sulla progettazione dettagliata del protocollo.
Cerf era stato coinvolto nella progettazione e nello sviluppo dell’NCP originale e aveva già la conoscenza dell’interfacciamento con i sistemi operativi esistenti. Così, armati dell’approccio architettonico di Kahn al lato delle comunicazioni e dell’esperienza di Cerf nel NCP, si unirono per definire i dettagli di quello che divenne il TCP/IP.
La prima versione del TCP/IP fu distribuita come INWG#39 ad una riunione dell’International Network Working Group (INWG), gruppo creato all’ottobre 1972 alla International Computer Communications Conference organizzata da Bob Kahn, alla Sussex University nel settembre 1973 e successivamente raffinata nel 1974.Alcune assunzioni di base emersero da questa collaborazione tra Kahn e Cerf:
Anche se Ethernet era in fase di sviluppo allo Xerox PARC a quel tempo, la proliferazione delle LAN non era allora prevista, tanto meno i PC e le workstation. Il modello originale era costituito da reti di livello nazionale come ARPANET, di cui ci si aspettava solo un numero relativamente piccolo. Così fu usato un indirizzo IP di
32 bit di cui i primi 8 bit indicavano la rete e i restanti 24 bit designavano l’host su quella rete. Quando le LAN cominciarono ad apparire alla fine degli anni ’70, il presupposto che 256 reti sarebbero state sufficienti per il futuro prevedibile, fu chiaramente da riconsiderare.
Il documento originale di Cerf e Kahn su Internet descriveva un protocollo, chiamato TCP, che forniva tutti i servizi di trasporto e inoltro in Internet. Kahn aveva previsto che il protocollo TCP supportasse una gamma di servizi di trasporto, dalla consegna sequenziale totalmente affidabile dei dati (modello di circuito virtuale) a un servizio di datagrammi in cui l’applicazione faceva uso diretto del servizio di rete sottostante, che potrebbe implicare occasionalmente pacchetti persi, corrotti o riordinati.
Tuttavia, lo sforzo iniziale per implementare il TCP ha portato ad una versione che permetteva solo circuiti virtuali. Questo modello funzionava bene per il trasferimento di file e le applicazioni di accesso remoto, ma alcuni dei primi lavori su applicazioni di rete avanzate, in particolare la voce a pacchetto negli anni ’70, hanno reso chiaro che in alcuni casi le perdite di pacchetti non dovrebbero essere corrette dal TCP, ma dovrebbero essere lasciate all’applicazione.
Questo portò ad una riorganizzazione del TCP originale in due protocolli, il semplice IP che prevedeva solo l’indirizzamento e l’inoltro dei singoli pacchetti, e il TCP, che si occupava delle caratteristiche di servizio come il controllo del flusso e il recupero dei pacchetti persi.
Per quelle applicazioni che non volevano i servizi del TCP, fu aggiunta un’alternativa chiamata User Datagram Protocol (UDP) per fornire un accesso diretto al servizio base dell’IP.
Una delle principali motivazioni iniziali sia per la creazione di ARPANET che per la creazione di Internet era la condivisione delle risorse. Collegare era molto più economico che duplicare computer molto costosi. Tuttavia, mentre il trasferimento di file e il login remoto (Telnet) erano applicazioni molto importanti, la posta elettronica ha probabilmente avuto l’impatto più significativo rispetto alle innovazioni di quell’epoca. La posta elettronica ha fornito un nuovo modello di come le persone potevano comunicare tra loro, e ha cambiato la natura della collaborazione, prima nella costruzione di Internet stesso e più tardi per la gran parte delle persone.
Ci sono state altre applicazioni proposte nei primi giorni di Internet, tra cui la comunicazione vocale basata su pacchetti (il precursore della telefonia Internet), vari modelli di condivisione di file e dischi, e i primi programmi “worm” che hanno mostrato il concetto di agenti (e, naturalmente, virus).
Un concetto chiave di Internet è che non è stato progettato per una sola applicazione, ma come un’infrastruttura generale su cui potevano essere concepite nuove applicazioni, come visto più tardi con l’emergere del World Wide Web. È la natura generale del servizio fornito da TCP e IP che rende questo possibile.
Il 24 ottobre 1995, la FNC ha approvato all’unanimità una risoluzione che definisce il termine Internet. Questa definizione è stata sviluppata in consultazione con i membri delle comunità di Internet.
Internet si riferisce al sistema informativo globale che è logicamente collegato da uno spazio di indirizzi unico a livello globale basato sul Protocollo Internet (IP) o le sue successive estensioni ed è in grado di supportare le comunicazioni utilizzando la suite Transmission Control Protocol/Internet Protocol (TCP/IP) o le sue successive estensioni e/o altri protocolli IP-compatibili. Esso inoltre fornisce, usa o rende accessibili, pubblicamente o privatamente, servizi di alto livello stratificati sulle comunicazioni e sulle relative infrastrutture qui descritte.
Internet è cambiato molto dalla sua nascita. È stata concepita nell’era del time-sharing, ma è sopravvissuta nell’era dei personal computer, del client-server, del peer-to-peer computing, e del network computer.
È stato progettato prima che esistessero le LAN, ma ha accolto quella nuova tecnologia di rete, così come i servizi ATM e frame switched.
È stata concepita per supportare una serie di funzioni, dalla condivisione dei file e il login remoto alla condivisione delle risorse e la collaborazione, ha generato la posta elettronica e, più recentemente, il World Wide Web.
Ma soprattutto, è iniziata come la creazione di un piccolo gruppo di ricercatori dedicati, ed è cresciuta fino a diventare un successo commerciale con miliardi di dollari di investimenti annuali.
Non si deve concludere che Internet ha finito di cambiare. Continuerà, anzi deve, continuare a cambiare ed evolversi alla velocità dell’industria informatica se vuole rimanere rilevante. Ora sta cambiando per fornire nuovi servizi come il trasporto in tempo reale, per supportare, per esempio, i flussi audio e video.
La disponibilità di una rete pervasiva insieme a potenti computer e comunicazioni a prezzi accessibili in forma portatile (computer portatili, telefoni cellulari, IoT), sta rendendo possibile un nuovo paradigma di computer e comunicazioni nomadiche.
Si sta evolvendo per permettere forme più sofisticate di tariffazione e recupero dei costi. Sta cambiando per accogliere un’altra generazione di tecnologie di rete sottostanti con caratteristiche e requisiti diversi, per esempio l’accesso residenziale a banda larga. Nuove modalità di accesso e nuove forme di servizio genereranno nuove applicazioni, che a loro volta guideranno un’ulteriore evoluzione della rete stessa.
La domanda più pressante per il futuro di Internet non è come cambierà la tecnologia, ma come sarà gestito il processo di cambiamento ed evoluzione stesso. L’architettura di Internet è sempre stata guidata da un gruppo centrale di progettisti, ma la forma di quel gruppo è cambiata man mano che il numero di parti interessate è cresciuto. Con il successo di Internet è arrivata una proliferazione di parti.
Ora vediamo, nei dibattiti sul controllo dello spazio dei nomi di dominio e sulla forma della prossima generazione di indirizzi IP, una lotta per trovare la prossima struttura sociale che guiderà Internet in futuro.
La forma di questa struttura sarà più difficile da trovare, dato il gran numero di parti interessate. Allo stesso tempo, l’industria lotta per trovare il razionale economico per i grandi investimenti necessari per la crescita futura, per esempio per aggiornare l’accesso residenziale a una tecnologia più adatta. Se Internet inciampa, non sarà perché ci manca la tecnologia, la visione o la motivazione, sarà perché non siamo in grado di stabilire una direzione e marciare collettivamente verso il futuro.