En kort version av internets historia

Av Jonas Wahlund (jonas.w@nmugroup.com)

Internet tog några av sina första steg i USA på 1960-talet, under ledning av ARPA (Advanced Research Projects Agency) under Pentagon. Idag heter myndigheten DARPA där det tillkomna "D" står för "Defense". Vid den tiden fanns ett antal stordatorer runt om i USA. De var naturligtvis inte helt billiga och antalet som hade möjlighet att dra nytta av deras beräkningskraft var begränsat. Eftersom datorerna var kostsamma, var det av intresse för ägarna att hyra ut oanvänd datortid till andra användare. Användarna anslöt via den infrastruktur som var väl utbyggd och fanns tillgänglig över hela USA, nämligen telefonlinjer. Den som ville koppla upp sin terminal anslöt genom att ringa ett telefonnummer som stordatorn var ansluten till. Användaren knappade instruktioner på sin terminal, stordatorn utförde beräkningar och svarade med ett resultat. Den här typen av uppkoppling hade dock sina begränsningar.

Störningar kan uppstå på en telefonlinje, särskilt på större avstånd. Vid ett vanligt telefonsamtal gör det inte så mycket om ett ord eller två skulle falla bort: den som i samtalet lyssnar i andra änden, kan be den som talar upprepa något oklart. Stordatorerna och terminalerna var däremot lite kinkigare på den punkten. En dataöverföring som stördes av för mycket oljud på linjen skulle inte vara till någon nytta utan behöva startas om.

Ett helt avbrott på stordatorns telefonlinje ledde till att den inte alls var tillgänglig för anrop över huvud taget. Under 1960-talet var kalla kriget ständigt närvarande och det ansågs då mycket viktigt att kunna hålla viktiga system tillgängliga för den amerikanska försvarsledningen. Om ryssen skulle anfalla, ville man ha tillgång till system för tidig information om attacken samt möjlighet till snabb vedergällning. Om en uppkoppling mellan dessa system skulle ha slagits ut, hade det inneburit att USA kunde stått försvarslöst.

Vidare var telefontid dyrt på den tiden, särskilt samtal över långa distanser. Det gick att hyra dedikerade telefonlinjer mellan två punkter vilket var fördelaktigt om man ofta var i behov av trafik, men det var fortfarande kostsamt jämfört med den mängd data som skickades. Vid kommunikation mellan terminal och stordator var det endast stötvisa kommunikationer: terminalen skickade sina instruktioner, stordatorn tog emot och behandlade data, sedan skickades resultatet tillbaka. Mellan överföringarna var det alltså tyst på linjen. Ett sådant utnyttjande är långt ifrån optimalt. Helst av allt skulle den dyra linjen fyllas med så mycket datatrafik som möjligt, men för att kunna nå dit var man tvungen att hitta på sätt att låta flera användare dela på samma linje. Så kallad time sharing infördes där datorresursen delades upp mellan flera anslutande användare. Om flera användare vid säte A ville nå stordatorn hos B, så var man då tvungen att hålla isär kommunikationen så att data från olika användare inte krockade och blandades ihop. Allt mer beräkningskraft hos stordatorn gick åt till att just den uppgiften.

Ett första steg mot lösning av problemen ovan togs i samband med lanseringen av BITNET i början av 80-talet, vilket är ett så kallat store and forward network. Flera anslutningspunkter sattes upp med kortare avstånd mellan dem. Många användare kunde ansluta till respektive punkt och skicka vidare data i nätverket. Varje punkt tog emot data och skickade vidare i den ordning den kom in. Ett problem med denna tidiga anslutningsdelning, var kösystemet. Först skickade användare A all data som behövdes, därefter användare B och så vidare. Det blev naturligtvis extra frustrerande om användare B, C, D endast hade en liten mängd data var att skicka, kanske någon kort instruktion till stordatorn, men A satt och skickade en stor fil. Då fanns det inget annat att göra för dem än att snällt vänta på att linjen skulle bli ledig.

Med beaktande av problemen ovan kom man fram till en mycket sinnrik lösning. Ett nätverk av datorer byggdes upp vars enda syfte var att skyffla runt data över hyrda, dedikerade telefonlinjer. De här datorerna sparade inte några data utan såg alltså endast till att skicka vidare informationen så att den till slut nåde rätt destination. De kallades för IMP (Interface Message Processor) och var föregångare till dagens routrar. Med ett korrekt konfigurerat nätverk kan riskerna för totalt avbrott mellan två punkter minimeras. Det ordnades så att varje IMP hade fler än en anslutning till nätverket. Om något hände med en IMP -eller telefonlinje mellan två IMP:ar - kunde informationen ta en annan väg och till slut hamna rätt. IMP:arna kommunicerade med varandra och informerade om avbrott, belastning och annan prestanda. Om någon linje var särskilt belastad, kunde trafiken ta en annan väg. Även om informationen på så vis fick ta en längre väg, kom den ändå fram snabbare än om den behövt vänta på minskad belastning. På så vis optimerades alltså trafikflödet efter rådande situation.

Den andra viktiga pusselbiten i lösningen, var att dela upp informationen som skulle skickas i mindre enheter, så kallade paket. En stor datamängd ger fler paket än en liten. Med den konstruktionen uppnådde man två viktiga fördelar. Med ett kösystem som tar hänsyn till dessa förutsättningar, kan paketen som utgör ett litet meddelande få slinka emellan paketen för det stora meddelandet. För det första slapp nu användare som endast behövde skicka mindre mängder data, vänta på att en storanvändare skulle bli klar. För det andra löste man det så att alla paket som tillhör ett visst meddelande inte nödvändigtvis måste ta samma väg. Har systemet bara koll på ordningen, så kan de sorteras och sättas ihop i rätt ordning vid slutdestinationen, även om de anlänt i oordning. Det gör också att ett paket kan komma bort utan att hela meddelandet behöver skickas på nytt. Det räcker med att just det borttappade paketet skickas om. Tekniken kallas packet switching och var viktigt för framgången hos ARPANET som nätverket kom att kallas.

Det är ARPANET är det som i flera steg skulle omvandlas till det vi idag känner som internet. När flera olika typer av kommunikationsvägar senare började användas (såsom telefon, satellit och annan radioöverföring) och flera olika nätverk behövde kopplas samman, utvecklades tekniken till vad vi idag i stor utsträckning använder för kommunikation över internet: TCP (Transfer Control Protocol) som i sin tur använder det underliggande lagret IP (Internet Protocol) vilket tillsammans blir TCP/IP, en betäckning som du kanske stött på. Det finns ett annat protokoll som inte tar hänsyn till borttappade paket eller ordningen på dem och det kallas UDP (User Datagram Protocol). UDP används i de fall snabbhet efterfrågas (på bekostnad av bland annat dataförlust) och används bland annat för IP-telefoni.

Själva ARPANET är idag nedstängt, men termen lever idag kvar i domännamnssystemet genom toppdomänen .arpa som används för uppslag av IP-nummer till domännamn (medan övriga toppdomäner används för uppslag åt andra hållet, det vill säga domännamn till IP-nummer).

Ett viktigt steg från ARPANET mot internet togs via NSFNet (National Science Foundation Network). Det var tänkt att vara ett akademiskt nätverk, byggt på TCP/IP som utvecklats i ARPANET och syftet var att knyta samman universitet i USA. Det startade 1988 och var i drift fram till 1995 då USA:s regering beslutade att släppa nätverket fritt för kommersiella intressen och efter det tog utvecklingen ytterligare fart mot det internet vi känner idag.





Källor:
Hafner, K. and M. Lyon (1999). Where Wizards Stay Up Late: The Origins Of The Internet, Simon and Schuster: 304.
Charles Severance, Internet History, Technology and Security, University of Michigan / Coursera, 2013, (https://www.coursera.org/course/insidetheinternet).