De ware geschiedenis van het Internet, of hoe is het Internet ontstaan

In de Nederlandse pers kom je bijzonder vaak het sprookje tegen dat Internet ontstaan is in de militaire wereld. Internet zou gebouwd zijn als een super-redundant netwerk dat zelfs een kernaanval moest kunnen doorstaan. Het artikel ``Internet Protocol overvleugelt al zijn voorgangers'' wat op 1 oktober 2000 in de Automatiserings Gids verscheen, is een typisch voorbeeld van zo'n artikel. Dit irriteerde mij zo dat ik besloten hebt de feiten hier kort weer te geven. Mijn gegevens zijn ontleend aan Where wizards stay up late, the origins of the internet, geschreven door Katie Hafner en Matthew Lyon. Dit is het meest definitieve boek op dit gebied en een aanrader voor de Nederlandse journalist die Engels beheerst.

Nogmaals de schrijnende fout: de oorsprong van Internet zou toe te schrijven zijn aan de Amerikaanse Defensie. Internet zou gebouwd zijn als een super-redundant netwerk dat zelfs een kernaanval moest kunnen doorstaan. Zelfs de meest toegewijde pacifist moet toegeven dat kernwapens toch hun nut hebben gehad, of toch niet?

In 1957 gaat er een schok door de Amerika als de Rusland zijn technologisch leiderschap in de ruimte vestigt door de Sputnik I en Sputnik II binnen een maand na elkaar te lanceren. De president van Amerika, Eisenhower, neemt, mede in reactie daarop, het initiatief een R&D bureau (agency) te vestigen: Advanced Research Projects Agency. Tien jaar later, 1968, stuurt Larry Roberts, werkzaam bij ARPA, een verzoek om offertes naar 140 firma's om een IMP te maken. Een IMP, Interface Message Processor, moest een aparte computer zijn, die met andere IMP's via packet switching kon communiceren. Er zijn 3 interessante punten: waarom verzoekt ARPA hierom, waarom packet switching, en waarom een aparte computer:

  1. Hoewel ARPA veel voor Defensie werkte, waren er ook afdelingen met veel meer vrijheid van onderzoek. In 1962 werd John Licklider hoofd van zo'n afdeling. Licklider is onder andere bekend van zijn "Galactic Network" idee, een globaal onderling verbonden netwerk van computers om overal vandaan toegang tot data en programma's te geven waar ook aanwezig. Naast veel visie, speelde ook frustratie wellicht een rol. Roberts baas, Bob Taylor, had 3 verschillende terminals om op 3 verschillende computers te kunnen werken.
  2. Packet switching was een nieuwe techniek, eigenlijk nog niet buiten laboratoria uitgeprobeerd. Packet switching wordt gecontrasteerd met circuit switching. Als twee personen bellen via een circuit geschakeld netwerk, dan hebben zij beide een volledige koperdraad ter beschikking. Andere personen kunnen die koperdraad niet gebruiken. Die koperdraad heeft echter veel meer capaciteit. Via packet switching kan deze benut worden. Om buurten krijgt dan iemand even de beschikking over het koperdraadje. Aan packet switching zijn 2 namen verbonden. De eerste is Paul Baran, wetenschapper bij RAND. Paul Baran werkte van 1960 tot 1965 aan een theorie van een redundant netwerk zonder een centrale host, packet switching (hij noemde dit nog message blocks) als een communicatienetwerk wat een atoomaanval zou moeten kunnen doorstaan. De tweede naam is Donald Watts Davies, werkzaam bij British National Physical Laboratory (NPL). Onafhankelijk van Baran ontwiep en testte hij in 1965/1966 een pakket-geschakelijk netwerk. Ook de term packet komt bij hem vandaan.
  3. Het derde interessante punt aan dit verzoek om offertes is de aparte computer om de communicatie te verzorgen, de IMP. Het was al lang gebruikelijk dat mensen op afstand met computers werken, via terminals. Met een beetje geluk had je er een paar op je bureau, voor elke computer een. Dat een computer gebruikt wordt om op een andere computer in te loggen, is een nieuw concept. Hier zijn een aantal redenen voor aan te wijzen. De toch al schaarse CPU en I/O resources van bedrijven en universiteiten in te zetten voor communicatietaken stuitte op verzet. Communicatieprogrammatuur te schrijven voor de zeer diverse computers in het netwerk, zou zeer veel inspanning en tijd van ARPA vormen en moest voor elke computer opnieuw gedaan worden. Aparte hosts, specifiek voor communicatie, zou betekenen dat ARPA de controle over het netwerk zou kunnen behouden en ook gemakkelijk wijzigingen in de programmatuur aan kon brengen. ARPA was tenslotte een research agency. Een universiteit of bedrijf kon dus een IMP krijgen. De computer in dat bedrijf kon dan tegen de IMP praten terwijl de IMP's tegen de andere IMP's praten. Dus een computer op een universiteit stuurde een bericht naar een computer op een andere universiteit via twee IMP's.

Uiteindelijk kreeg BBN, Bolt Beranek and Newman, een kleine firma in Massachusetts, de opdracht. Het is dan eind 1968. In 1969 wordt daadwerkelijk begonnen met het schrijven van de software voor de IMP. Op 29 oktober wordt voor het eerst door middel van een computer met een andere computer gecommuniceerd. ARPANET is een feit.

In het boek "Where wizards stay up late" is nog veel meer detail te vinden, maar het wel heel duidelijk dat ARPANET niets van doen heeft met defensie. Pas in 1967 leerde Larry Roberts van Paul Baran's werk kennen. De plannen voor een communicatie-netwerk waren toen al in volle gang. En verder is dat alleen al te zien aan de plaatsen waar de eerste IMP's werden geinstalleerd.

Tenslotte is het interessant om ook de historie van TCP/IP te kennen. TCP/IP is de naam van het communicatieprotocol wat tegenwoordig gebruikt door de computers die op het Internet aangesloten zijn. Deze historie laat te meer zien dat er in het begin helemaal geen sprake was van een netwerk dat een atoomaanval zou moeten doorstaan.

Om de historie van TCP/IP te begrijpen, is het nodig eerst eens te kijken wat de IMP's nu precies deden. De enige taak van een IMP was het versturen van pakketjes van de ene naar de andere aangesloten computer (host). Als pakketjes in verkeerde volgorde arriveerden (het laatst verstuurde pakketje arriveert bijvoorbeeld het eerst), dan zorgen de IMP's ervoor dat de pakketjes uiteindelijk in de juiste volgorde aan de host werden doorgegeven. De communicatie tussen twee hosts werd vastgelegd met NCP (Network Control Protocol). NCP ging ervanuit dat het onderliggende netwerk betrouwbaar was. De IMP's zorgden hier immers voor. In 1974 publiceerden Vint Cerf en Bob Kahn over een protocol wat ze TCP noemden. Het grote verschil met NCP was dat TCP er vanuit ging dat het onderliggende netwerk onbetrouwbaar was. Cerf en Kahn richten zich namelijk op een heel ander probleem. Eind 1972 werd duidelijk dat er veel meer soorten netwerken zouden komen en al waren. Hoe was het nu mogelijk om die netwerken nu met elkaar praten? Om satellietverbinden, packet radio, netwerken in andere landen en ARPANET met elkaar te laten communiceren? Het idee van Cerf en Kahn was om de betrouwbaarheid niet in het netwerk in te bouwen, maar in de hosts. In 1977 wordt de eerste werkende versie van TCP getoond waarbij drie netwerken, een packet radio netwerk, ARPANET en SATNET, aan elkaar geknoopt zijn. In 1978 komen Vint Cerf, Jonathan B., Postel en Danny Cohen met het cruciale idee om het gedeelte van TCP dat zich bezig houdt met het routeren van pakketjes af te splitsen en dat IP ofwel Internet Protocol te noemen. TCP zou zich dan bezig houden met pakketjes die niet of in de verkeerde volgorde aankomen, transmissiefouten, e.d. IP zou zich bezig houden met het versturen van individuele pakketjes. Naast TCP kennen we ook UDP, vrijwel gelijk aan IP. Met UDP kan een pakketje verstuurt worden zonder de overhead van een bevestiging. Bijvoorbeeld RealAudio en RealVideo kunnen UDP gebruiken. Met deze afsplitsing is TCP/IP is een feit. In 1983 gaat ook ARPANET over op TCP/IP.

O wee als nu nog een journalist het fout durft te doen...

5 December 2012: de lezer wordt tevens verwezen naar ``Why the Arpanet Was Built'' door Stephen J. Lukasik. Dat artikel geeft een bredere kijk op de achtergrond en doelstelling van ARPA.