ARPANET, nebo Advanced Research Projects Agency Network, byla první fungující síť se switchováním paketů a předchůdcem moderního internetu. ARPANET používal síťový protokol zvaný Network Control Protocol (NCP) k usnadnění komunikace mezi počítači na síti. Úspěch ARPANETu umožnil vývoj dalších sítí a růst internetu, jak ho známe dnes.
Historie ARPANET
Historicky byly hlasové a datové komunikace založeny na metodách přepojování okruhů, jak je tomu například v tradiční telefonní síti, kde je každému telefonnímu hovoru přiděleno vyhrazené koncové elektronické spojení mezi dvěma komunikujícími stanicemi. Toto spojení je navázáno přepojovacími systémy, které po dobu trvání hovoru propojily několik mezilehlých částí hovoru mezi těmito systémy.
Tradiční model telekomunikační sítě s přepojováním okruhů zpochybnil na počátku 60. let minulého století Paul Baran z RAND Corporation, který se zabýval výzkumem systémů, jež by mohly udržet provoz i během částečného zničení, například v důsledku jaderné války. Vyvinul teoretický model distribuovaného adaptivního přepínání bloků zpráv, který však telekomunikační establishment odmítl ve prospěch stávajících modelů. K podobnému konceptu dospěl v roce 1965 nezávisle Donald Davies z britské Národní fyzikální laboratoře (NPL).
První myšlenky na počítačovou síť, která by umožňovala všeobecnou komunikaci mezi uživateli počítačů, formuloval počítačový vědec J. C. R. Licklider ze společnosti Bolt Beranek and Newman (BBN) v dubnu 1963 v memorandech, v nichž se diskutovalo o konceptu „mezigalaktické počítačové sítě“. Tyto myšlenky zahrnovaly mnoho rysů současného internetu.
V říjnu 1963 byl Licklider jmenován vedoucím programů Behaviorální vědy a Velení a řízení v Agentuře ministerstva obrany pro pokročilé výzkumné projekty (ARPA). Přesvědčil Ivana Sutherlanda a Boba Taylora, že tato koncepce sítě je velmi důležitá a zaslouží si vývoj, ačkoli Licklider opustil ARPA dříve, než byly přiděleny zakázky na vývoj.
Sutherland a Taylor se i nadále zajímali o vytvoření sítě, částečně proto, aby umožnili výzkumným pracovníkům sponzorovaným ARPA na různých firemních a akademických pracovištích využívat počítače poskytnuté ARPA, a částečně proto, aby mohli rychle distribuovat nový software a další výsledky počítačových věd.
Taylor měl ve své kanceláři tři počítačové terminály, každý připojený k samostatným počítačům, které financovala ARPA: jeden pro System Development Corporation (SDC) Q-32 v Santa Monice, jeden pro Project Genie na Kalifornské univerzitě v Berkeley a další pro Multics na Massachusettském technologickém institutu.
Taylor na to vzpomíná: „Pro každý z těchto tří terminálů jsem měl tři různé sady uživatelských příkazů. Takže když jsem s někým v S.D.C. mluvil online a chtěl jsem si o tom promluvit s někým, koho jsem znal z Berkeley nebo z M.I.T., musel jsem vstát od terminálu v S.D.C., jít k němu, přihlásit se do druhého terminálu a spojit se s ním. Řekl jsem si: „Ty vole!“, to je přece jasné, co mám dělat: Pokud máte tyto tři terminály, měl by existovat jeden terminál, který vede kamkoli chcete. Ten nápad je ARPANET.“
ARPANET byl vyvinut v pozdních 60. letech Spojenými státy Agenturou pro pokročilé projekty obrany (DARPA) jako způsob, jak umožnit výzkumníkům sdílet výpočetní prostředky a data.
První zpráva byla odeslána přes ARPANET v roce 1969, když počítač na UCLA odeslal zprávu do počítače na Stanford Research Institute.
Během následujících několika let bylo k síti připojeno stále více počítačů a byl vyvinut síťový protokol Network Control Protocol (NCP) k usnadnění komunikace mezi nimi. V raných 70. letech byl pro ARPANET vyvinut první program na odesílání elektronické pošty a do roku 1975 zahrnovala síť přes 200 počítačů.
ARPANET se dále vyvíjel a rozšiřoval a v 80. letech se stal základem pro moderní internet
Co vše přinesl projekt ARPANET
Funkce IMP
Protože cílem sítě ARPANET nikdy nebyla podpora IMP od jiných dodavatelů než BBN, nebyly protokol IMP-to-IMP a formát zpráv standardizovány. Nicméně IMP mezi sebou komunikovaly, aby prováděly směrování stavu linky, spolehlivé předávání zpráv a poskytovaly funkce vzdáleného monitorování a správy řídicímu středisku sítě ARPANET.
Zpočátku měl každý IMP 6bitový identifikátor a podporoval až 4 hostitele, kteří byli označeni 2bitovým indexem. Adresa hostitele sítě ARPANET se tedy skládala jak z indexu portu na jeho IMP, tak z identifikátoru IMP, který byl zapsán buď v notaci port/IMP, nebo jako jeden bajt; například adresa MIT-DMG (pozoruhodná tím, že na ní probíhal vývoj hry Zork) mohla být zapsána jako 1/6 nebo jako 70. Upgrade na začátku roku 1976 rozšířil číslování hostitelů a IMP na 8bitové, respektive 16bitové.
Kromě primárních úkolů směrování a předávání běhalo na IMP několik programů na pozadí s názvy TTY, DEBUG, PARAMETER-CHANGE, DISCARD, TRACE a STATISTICS. Ty dostaly čísla hostitelů, aby mohly být přímo adresovány, a zajišťovaly funkce nezávisle na jakémkoli připojeném hostiteli. Například „TTY“ umožňoval operátorovi na místě ručně odesílat pakety ARPANETu prostřednictvím dálnopisu připojeného přímo k IMPu.
Protokol 1822
Výchozím bodem pro komunikaci mezi hostiteli v síti ARPANET byl v roce 1969 protokol 1822, který definoval přenos zpráv do IMP. Formát zpráv byl navržen tak, aby jednoznačně fungoval s širokou škálou počítačových architektur.
Zpráva 1822 se v podstatě skládala z typu zprávy, číselné adresy hostitele a datového pole. Pro odeslání datové zprávy jinému hostiteli zformátoval vysílající hostitel datovou zprávu obsahující adresu cílového hostitele a odesílanou datovou zprávu a poté zprávu přenesl přes hardwarové rozhraní 1822. IMP pak zprávu doručil na cílovou adresu, a to buď doručením místně připojenému hostiteli, nebo doručením jinému IMP. Když byla zpráva nakonec doručena cílovému hostiteli, přijímající IMP předal odesílajícímu, hostitelskému IMP potvrzení Ready for Next Message (RFNM)
Network Control Protocol
Na rozdíl od moderních internetových datagramů byl ARPANET navržen tak, aby spolehlivě přenášel zprávy 1822 a informoval hostitelský počítač pokud zprávu ztratil. Současný IP je nespolehlivý, zatímco TCP je spolehlivý. Přesto se ukázalo, že protokol 1822 není vhodný pro obsluhu vícenásobných spojení mezi různými aplikacemi umístěnými v hostitelském počítači.
Tento problém byl vyřešen protokolem NCP (Network Control Protocol), který poskytl standardní metodu pro navázání spolehlivých, tokem řízených obousměrných komunikačních spojení mezi různými procesy v různých hostitelských počítačích. Rozhraní NCP umožnilo aplikačnímu softwaru připojit se přes ARPANET implementací komunikačních protokolů vyšší úrovně, což byl raný příklad koncepce vrstvení protokolů, která byla později začleněna do modelu OSI.
Rozhraní NCP bylo vyvinuto pod vedením Stephena D. Crockera, tehdy postgraduálního studenta na Kalifornské univerzitě. Crocker vytvořil a vedl pracovní skupinu Network Working Group (NWG), kterou tvořil soubor postgraduálních studentů na univerzitách a ve výzkumných laboratořích sponzorovaných agenturou ARPA, aby prováděli vývoj sítě ARPANET a softwaru pro hostitelské počítače, které podporovaly aplikace. Byly vyvinuty různé aplikační protokoly, jako například TELNET pro vzdálený přístup ke sdílení času, protokol FTP (File Transfer Protocol) a základní protokoly elektronické pošty, které byly nakonec přeneseny na protokolovou sadu TCP/IP nebo v případě elektronické pošty nahrazeny protokolem Simple Mail Transfer Protocol.
TCP/IP
Steve Crocker vytvořil v roce 1969 spolu s Vintem Cerfem pracovní skupinu „Networking Working Group“, která se v roce 1972 připojila k mezinárodní pracovní skupině „International Networking Working Group“.
Tyto skupiny se zabývaly tím, jak propojit sítě s přepínáním paketů s různými specifikacemi, tedy internetworkingem. Stephen J. Lukasik řídil agenturu DARPA, aby se na počátku 70. let zaměřila na výzkum internetworkingu. Výzkum vedený Bobem Kahnem v DARPA a Vintem Cerfem na Stanfordově univerzitě a později v DARPA vyústil ve formulaci programu Transmission Control Program, který zahrnoval koncepty francouzského projektu CYCLADES vedeného Louisem Pouzinem. Jeho specifikaci napsal Cerf s Yogenem Dalalem a Carlem Sunshinem v prosinci 1974 (RFC 675).
Následujícího roku začalo testování prostřednictvím souběžných implementací ve Stanfordu, BBN a University College London. Zpočátku monolitický software byl ve verzi 3 v roce 1978 přepracován na modulární zásobník protokolů. Verze 4 byla do ARPANETu pro produkční použití instalována v lednu 1983 a nahradila NCP. Vývoj kompletní sady internetových protokolů do roku 1989, jak je uvedeno v RFC 1122 a RFC 1123, a partnerství s telekomunikačním a počítačovým průmyslem položily základ pro přijetí TCP/IP jako komplexní sady protokolů jako základní součásti vznikajícího internetu.
Síťové aplikace
Protokol NCP poskytoval standardní sadu síťových služeb, které mohlo sdílet několik aplikací běžících na jednom hostitelském počítači. To vedlo k vývoji aplikačních protokolů, které fungovaly víceméně nezávisle na základní síťové službě a umožňovaly nezávislý pokrok v základních protokolech.
Telnet byl vyvinut v roce 1969 počínaje RFC 15, rozšířený v RFC 855.
Původní specifikaci protokolu pro přenos souborů napsal Abhay Bhushan a zveřejnil ji jako RFC 114 16. dubna 1971. Do roku 1973 byla definována a implementována specifikace protokolu FTP (File Transfer Protocol) (RFC 354), která umožňovala přenos souborů po síti ARPANET.
V roce 1971 Ray Tomlinson ze společnosti BBN odeslal první síťovou elektronickou poštu (RFC 524, RFC 561). Během několika let začala elektronická pošta představovat velmi významnou část celkového provozu sítě ARPANET.
V roce 1977 byly definovány specifikace síťového hlasového protokolu (NVP) (RFC 741), které byly implementovány. Kvůli technickým nedostatkům však konferenční hovory přes síť ARPANET nikdy dobře nefungovaly; současný protokol Voice over Internet Protocol (paketový hlas) byl vzdálen několik desetiletí.
Ochrana hesel
Purdyho polynomiální hashovací algoritmus byl vyvinut pro ARPANET k ochraně hesel v roce 1971 na žádost Larryho Robertse, tehdejšího šéfa agentury ARPA. Vypočítával polynom stupně 224 + 17 modulo 64bitového prvočísla p = 264 – 59. Algoritmus později použila společnost Digital Equipment Corporation (DEC) k hašování hesel v operačním systému VMS a k tomuto účelu se používá dodnes.