Ostatnio za sprawą użytkowników serwisu Wykop.pl doszedłem do wniosku, że warto byłoby zebrać w jedną całość faktyczny zakres informacji o tym w jaki sposób faktycznie powstał Internet. Oczywiście całkiem zgrabny artykuł przedstawia Wikipedia (szczególnie wersja anglojęzyczna) – niemniej jednak dla zupełnego laika informacje te będą raczej zlepkiem mało interesujących zdań. Za swój cel postanowiłem opisać jak najbardziej przystępnie to w jakich bolączkach powstawał Internet i skąd się wziął bo moim zdaniem – naprawdę nie wiele osób jest w stanie w pewnym sensie oddać genezę tego wynalazku.
To czym jest Internet zawiera się już w samej nazwie. Słowo „Internet” pochodzi od angielskich słów „Interconnection Networking” – oznaczających w języku polskim „między sieć”. Często też samo słowo „Internet” tłumaczone jest w podręcznikach dla gimnazjalistów jako „sieć sieci”. Paradoksalnie ten ostatni termin chyba najbardziej w rzeczywistości oddaje główne własności Internetu.
Żeby zrozumieć historię Internetu należy przede wszystkim uściślić pierwotne znaczenie „sieci komputerowej”. W swojej prostej definicji sieć komputerowa oznacza po prostu co najmniej dwa komputery połączone za pomocą jakiegoś medium między sobą pozwalając w ten sposób na przekazywanie jakiejkolwiek informacji. Oczywiście połączenie to może być zrealizowane za pomocą kabla lub bezprzewodowo – formalnie nie ma to znaczenia. Dzisiaj definicja „sieci komputerowej” może być zdecydowanie bardziej rozbudowana – bo chyba nie trzeba nikomu tłumaczyć, że obecne telefony komórkowe czy też konsole do gier, sprzęt audio (a jak!) mogą być budulcami sieci komputerowej – przy czym „komputer” należy rozważać jako wyspecjalizowaną jednostkę – ot tak ładnie to nazwę. Oczywiście „sieć komputerowa” może być również tworem całkowicie niefizycznym – a np. zwirtualizowanym. To oczywiście dodatkowo komplikuje definicję „sieci komputerowych” – ale z grubsza chyba mniej więcej pokazuje o co mi chodzi.
Wróćmy jednak do przeszłości i cofnijmy się do czasów prehistorycznych, żeby nie powiedzieć przedpotopowych. Pierwsze komercyjnie dostępne komputery pokroju DEC PDP-10 czy VAX były olbrzymimi maszynami które niejednokrotnie zajmowały cały pokój. Oczywiście takie komputery nie tylko były duże, ale również pioruńsko drogie i trudno dostępne dla typowego zjadacza chleba. W odróżnieniu od pospólstwa – dostęp do takich wielkich maszyn miały ośrodki uniwersyteckie a przede wszystkim wojskowe. Z uwagi, że chętnych do siedzenia przed monitorem nawet dzisiaj nie brakuje – wtedy też było ich bez liku. To powodowało pewien odwieczny problem – kto zasiądzie przed klawiaturą… twuu maszyną do pisania – bo ówczesne komputery nie dysponowały tradycyjnymi klawiaturami i monitorem – ale to już chyba nikomu nie muszę tłumaczyć. Jako, że maszyny były drogie i pożerały olbrzymie ilości prądu – bardzo szybko zauważono, że dostęp do maszyn jest raczej mało efektywny – jeśli nawet każdy z użytkowników mógł „posiedzieć” przy sprzęcie jakiś fragment czasu to zawsze większą część czasu pochłaniało wklepywanie kodu programu który miał zostać uruchomiony. Powodowało to, że faktycznie większość mocy obliczeniowej tych drogich maszyn skupiała się na wykonywaniu instrukcji IDLE. Wtedy też nawet i w USA nie brakowało „racjonalizatorów” którzy szybko stworzyli oprogramowanie a dokładniej systemy operacyjne pozwalające na pracę wielu użytkowników na tej samej maszynie. Oczywiście w głównej mierze nie mam tutaj na myśli Windowsa – a systemy których nazwy zapewne nikt nie kojarzy jak chociażby MULTICS czy WAITS – ale nie ma to w tej chwili większego znaczenia. Ważnym elementem który łączyły te systemy – była możliwość pracy wielu użytkowników na jednej maszynie w tym samym czasie. Dzisiaj praca wielu użytkowników na jednym komputerze raczej nie wchodzi w grę – bo każdy dzisiaj ma swój komputer – ale kiedyś był to chleb powszedni. I tutaj właśnie pojawiają się pierwsze elementy które dały podstawy do tego, aby komputery zaczęły się łączyć między sobą. Podstawą większości ówczesnych systemów komputerowych była jedna duża centralna maszyna – i wiele niewielkich prostych terminali tekstowych – na samym początku były to często zmodyfikowane dalekopisy służące wklepywaniu kolejnych komend i wypluwaniu w postaci tekstu rezultatów. Z czasem wraz z rozwojem układów scalonych powstawały terminale tekstowe składające się z tradycyjnej klawiatury w układzie QWERTY oraz monitora kineskopowego – takim topowym rozwiązaniem był terminal np. DEC VT100 wyposażony w interfejs szeregowy wpinany do stosownej magistrali. W ten sposób z jednego komputera mogło korzystać bardzo wiele osób – skutecznie walcząc o zasoby głównej jednostki centralnej 😉 Wtedy też dzięki możliwościom systemu Unix – można było tworzyć np. plik na dysku komputera z wiadomością – która następnie mogła być odczytana przez innego użytkownika. Ot taka forma poczty elektronicznej. Z uwagi, że terminale bardzo szybko zaadaptowały się na rynku – zaczęto myśleć o tym, żeby pozwolić na pracę zdalną z dużym komputerem. Naturalnym w tym momencie wyjściem (skoro za terminale służyły dalekopisy) było wykorzystanie linii telefonicznych – i tym samym narodzenie się kolejnego bardzo ważnego wynalazku w postaci modemu. O modemach zapewne wielu z Was słyszało, więc nie będziemy zaprzątać sobie tym głowy – ważnym elementem jest tu tylko fakt, że to właśnie modemy pozwoliły wykorzystać coś co istniało już od dziesięcioleci – mianowicie infrastrukturę telefoniczną.
Ok. Zasadniczo mając już do dyspozycji całkiem rozsądne zasoby sprzętowe – odpowiednie wynalazki pozwalające na transmisję danych przez łącza telefoniczne – to nic nie stoi na przeszkodzie, żeby wykorzystać ten fakt i połączyć powiedzmy kilka komputerów. Tak też się właśnie stało – projekt ARPANET o którym zawsze wspomina się jeśli zaczynamy mówić o historii Internetu był jednym właśnie z wielu projektów takich sieci – przy czym głównym wyróżnikiem ARPANETu była próba połączenia ze sobą różnych systemów – wszak w skład sieci wchodziły maszyny o zupełnie różnych architekturach – żeby nie powiedzieć „bebechach” – stąd też ARPANET był w pewnym sensie heterogeniczny. Zapytacie się pewnie – To były jakieś inne projekty? Tak. I wbrew pozorom była ich całkiem niezła ilość – jednym z takich projektów był chociażby BITNET (rozwijany co prawda znacznie później niż ARPANET), francuski projekt CYCLADES czy pierwsza radiowa sieć ALOHANet. Zanim jednak ARPANET powstawał pod koniec lat 50 ubiegłego wieku istniała sieć SAGE łącząca 56 wielkich maszyn połączonych z radarami która służyć miała obronie przeciw lotniczej w okresie zimnej wojny. Pomysły więc na budowę sieci nie były aż tak nowe – jednak to co wyróżniało ARPANET od innych projektów w gruncie rzeczy było całkowite odejście od pewnych utartych schematów znanych chociażby z sieci telefonicznych.
Sieci telefoniczne w ówczesnych latach 60 głównie bazowały na łączach tzw. komutowanych – czyli obwodach które na czas rozmowy były zestawiane od punktu A do punktu B. Nawet jeśli rozmowa była zestawiana dłuższe odległości np. między Nowym Yorkiem i Los Angeles – transmisja głosu wymagała połączenia obwodów między jedną lokalizacją a drugą. W prehistorii telefonii obwody takie były zestawiane ręcznie – jednak wraz z rozwojem telefonii powstały systemy automatyczne jak np. centrale Strowger’a z wybierakami sterowanymi mechanicznie. Jednak rozwiązania te nie były w pełni efektywne, gdyż mechaniczne przełączanie obwodów skutecznie blokowało innym abonentom zestawienie rozmowy. Dopiero wprowadzenie rozwiązań zwanych multiplekserami oraz rozbudowa kabli wieloparowych w pewnym sensie rozwiązywało problemy. Dopiero rozwój systemów cyfrowych a w szczególności cyfrowej transmisji danych pozwoliło na nie tylko na zwiększenie pojemności sieci telefonicznej ale również na uproszczenie struktury telefonicznej. Rozwój telefonii cyfrowej przyczynił się w dużej mierze do rozwoju Internetu – niemniej jednak to ARPANET zapoczątkował pewne mechanizmy z którego czerpały oba te wynalazki. Pierwszym najważniejszym elementem jaki wprowadzał ARPANET była transmisja danych w oparciu o przełączanie pakietów (packet switching) aniżeli jak ma to miejsce w przypadku sieci telefonicznej przełączanie obwodów (circuit switching). Sama idea przełączania pakietów i podziału transmisji na małe paczki danych to koncepcja wymyślona przez Paula Barana z firmy RAND Corporation, który w 1964 roku opublikował stosowne opracowania. ARPANET czerpał dość mocno z tej koncepcji odpowiednio dzieląc sieć na dedykowane urządzenia o nazwie IMP (Interface Message Processor) oraz na urządzenia korzystające formalnie z sieci. Urządzenia IMP to były tak naprawdę komputery (zwykle były to maszyny Honeywell DDP-516) które łączyły poszczególne elementy sieci. Dzięki rozproszonej strukturze oraz koncepcji automatycznemu trasowaniu drogi do poszczególnych węzłów sieci – sieć ARPANET była odporna na ew. przerwy lub uszkodzenia. Dzięki brakowi pojedynczego miejsca uszkodzenia – sieć ta mogła nadal pracować i obchodzić ew. obszar uszkodzenia. Często też mówi się, że sieć taka mogłaby przetrwać wojnę nuklearną – co nie jest do końca prawdą – gdyż protokoły dynamicznego trasowania praktycznie nie istniały.