Kuidas töötab Internet?
Internet on võrkude kogum
Interneti tööpõhimõtte selgitamiseks täpsustan enne, mida selle termini all mõistetakse. Algselt tähistas Internet “võrkude võrku” (network of networks). Internet on moodustis, kus suuremaid ja väiksemaid kohtvõrke moodustavad arvutid omavahel infot vahetavad. Seetõttu pole tehniliselt korrektne väita, et arvuti on ühendatud Internetiga. Arvutid on ühendatud kohtvõrku, millel on juurdepääs Internetti. Vastupidiselt levinud arvamusele ei “tule Internet kaablist”, alati on arvuti ja Internetiühenduse vahel veel mõni seade, mis tekkinud arvutivõrgud omavahel kokku seob.
Termin internet tähistab inglise keeles suvalist kahe arvutivõrgu vahel toimivat ühendust. Varem kasutati võrkude sidumiseks näiteks ARPANET, UUCP, Fidonet lahendusi, neid kõiki võis väikese tähega internetiks nimetada. Populaarseks sai aga ARPANET-ist välja kasvanud praegu ülemaailmne Internet – suure tähega, sest tegemist on võrgu nimega, mitte üldmõistega. Internet muutus populaarseks, sest:
- Ülesehitus oli suhteliselt lihtne, võrguga liitumiseks pole vaja keerulisi tehnoloogilisi lahendusi ega erilist riistvara.
- Võrk on hajutatud, võrgus töötamiseks ei pea omama täielikku ülevaadet selle ülesehitusest. Näiteks pole vaja teada kõiki võrku ühendatud arvutite nimesid ega aadresse. Hajusvõrk tagab ka selle, et ühe võrgusõlme rikkimineku korral ei ole häiritud kogu võrgu töö.
- Interneti kaudu pääses ligi kasutajate jaoks olulistele teenustele.
Teenused olid just need, mis suurendasid võrgukasutajate arvu ja seega liideti järjest rohkem juba eksisteerivaid väiksemaid kohtvõrke Internetiga. Kõige populaarsemaks võrguteenuseks lisaks e-postile muutus WWW (World Wide Web). 90. aastatel oli veebiteenus muutunud kasutajatele Interneti sünonüümiks. Lause “Ma otsisin Internetist” on pärit just sellest ajast ja tähendab tegelikult veebi otsingumootorite kasutamist. Sisuliselt on tegemist ikkagi WWW-leheküljega, mille kaudu saab märksõnade kaudu otsida viiteid teistele WWW-lehekülgedele.
Tänapäeval on Internetiühendus muutunud nii elementaarseks, et selle rõhutamist ei peeta enam vajalikuks. Varasem tehniline vaatenurk on muutunud äriliseks ning seetõttu mõeldakse sageli nimetuse Internet all hoopis mistahes teenuseid, mida võrgus võimalik kasutada on. Samal põhjusel on senini propageeritud kirjaviis kirjutada Internet suure algustähega asendunud lihtsalt sõnaga internet, mis tähistab (sõltumata kasutatavast tehnoloogiast) üldmõistena suvalisi kokkuühendatud arvutivõrke.
Interneti teenused
Ükski tehniline lahendus pole muutunud populaarseks lahenduse enda pärast. Kasutajad ei otsi mitte tehnilisi realisatsioone vaid ikka teenuseid. Ka Internetis on oluline just mitte kasutatav tehnoloogia, vaid see, mida tehnoloogia abil kasutajatele pakkuda saab. Veebitehnoloogiad HTML, PHP, AJAX, SOAP ja teised on vaid vahendid selleks, et pakkuda nende abil erinevaid kasutajale atraktiivseid lahendusi. Interneti algusaegadel oli väga lihtne eristada seal pakutavaid teenuseid:
- E-mail elektronposti vahetamiseks
- Gopher (tänapäeval ei kasutata) ja WWW kodulehekülgede lugemiseks
- Usenet uudisgruppides info vahetuseks
- FTP failiedastuseks
- Telnet kaugtöö tarbeks
- Lisaks veel mitmed tugiteenused, mis on vajalikud võrgu toimimiseks
- Nimelahendusteenus DNS, mis teisendab arvutite nimed numbrilisele IP-kujule
- WHOIS, vajalik võrguinfo küsimiseks
- NTP, kasutatakse arvuti kellaaja sünkroonimiseks
Tänapäeval on erinevate teenuste loetlemine palju keerulisem. Mitmed lahendused kasutavad juba olemasolevaid tehnoloogiaid, kuid samas võimaldavad tavapäraseid asju teha palju mugavamalt. Tekkinud on erinevaid teenuseid ja tehnoloogiaid ühendavad nn. veebirakendused. 90. aastate algusega võrreldes on Internet tundmatuseni muutunud. Tolle aja lihtsad ja lakoonilised veebilehed on asendunud erinevat multimeediat kasutavate interaktiivsete kodulehekülgedega ning ilmunud on mitmed teenused, mille kasutamine meenutab tööd varem arvutis olnud programmidega. Näiteks Google’i teenused on kõik veebirakendused (brauseris kuvatavad interaktiivsed veebilehed), kuid nad on muutunud väga kasutajasõbralikuks. Kadunud on varasematele veebiteenustele omased probleemid – lehekülje kuvamise aeglus, iga hiirevajutus tingib terve lehe uuestilaadimise, kasutaja automaatne väljalogimine kui lehte piisavalt kiiresti uuesti ei laadita jne.
Interneti tööpõhimõttest
Kuigi Interneti all mõeldakse nüüdisajal sageli just pakutavaid teenuseid, püüan siiski pigem kirjeldada seda, kuidas arvutitevaheline infovahetus toimub.
Kahe Internetti ühendatud masina vahel toimub infovahetus pakettide kaupa. Arvutid tükeldavad edastatava informatsiooni väiksemateks sõnumiteks, mida siis üle võrgu kohale toimetatakse. Kohaletoimetamisest annab saaja omakorda märku vastava sõnumiga. See tagab, et kõik infopaketid ikkagi sihtkohta jõuavad ning vahepeal teel kaduma ei lähe. Kõige olulisem ongi Internetis just infovahetuse korraldamine:
- Kuidas leida võrgust üles sihtkoht, kellele sõnum mõeldud on. Artikli alguses märkisin, et Internet on hajusvõrk, kus ükski arvuti ei oma täielikku ülevaadet kõikidest võrku ühendatud masinatest. Sihtkoha otsimise all pean silmas sihtkoha aadressi leidmist.
- Kuidas teha kindlaks teekond (võrgusõlmed), mille kaudu on võimalik sõnum adressaadini toimetada.
On selge, et võrgu toimimiseks peab igale arvutile eraldama mingisuguse unikaalse tunnuse, mille abil oleks võimalik see arvuti vajadusel võrgust üles leida. Sarnaselt suurlinnas tänavanimede ja majanumbrite abil paika pandud aadressile on ka arvutil oma nn. võrguaadress, mida nimetatakse IP aadressiks. IP aadress koosneb neljast punktiga eraldatud arvust vahemikus 0-255. Kui igale arvutile määrata kindel võrguaadress, ongi andmevahetuse esimene eeltingimus täidetud: konkreetne sihtkoht on saanud endale unikaalse numbrikombinatsiooni, mida on võimalik andmevahetusel kasutada.
Teise probleemi, teekonna, kindlaks tegemiseks kasutatakse samm-sammulist teekonna läbimist. Internet on üles ehitatud selliselt, et igas sellega ühendatud kohtvõrgus eksisteerib üks seade, kes on suuteline andmepakette edasi toimetama mõnda naabervõrku. Säärast seadet nimetatakse marsruuteriks (route – teekond, marsruut) ning ta on ühendatud kahe või enama kohtvõrguga. Marsruuter omab ülevaadet kõikidest arvutitest, mis on nendesse kohtvõrkudesse ühendatud. Seega on ta võimeline edasi toimetama ühest alamvõrgust teise suunatud infopakette. Eelduseks on, et iga kohtvõrgu arvuti peab teadma tema alamvõrgus asuva marsruuteri aadressi. Kogu info, mis ei ole mõeldud selles võrgus asuvatele arvutitele, saadetakse edasi marsruuterile. Marsruuter otsustab infopaketis oleva sihtaadressi järgi, kuhu andmed edasi saata. Ka marsruuter ei oma ülevaadet kogu võrgust, vaid ainult sellest osast, mille külge ta ühendatud on. Mõnes sellises arvutivõrgus võib olla omakorda veel mõni marsruuter, mis ühendab kohtvõrku mõne järgmise arvutivõrguga. Sellele võrgusõlmele saadabki vaadeldav marsruuter info edasi, kes siis omakorda toimetab selle järgmise marsruuterini jne.
Kui andmepakett jõuab marsruuterini, millega ühendatud kohtvõrgus info saaja asub, saadab marsruuter paketi saajale otse edasi. Vastuse saatmiseks läbitakse kogu protsess vastassuunas.
Marsruuterid teevad oma otsuseid andmepaketis asuva saaja IP aadressi alusel. On mõeldamatu, et igas marsruuteris oleks kirjas kõikvõimalikud IP aadressid, kuhu kohaletoimetamisega
marsruuter hakkama saab. Kohtvõrgus, kus marsruuter asub, võib olla kümneid või sadu arvuteid. Ühekaupa aadresside kontrollimine võtaks meeletult aega. Seetõttu eraldatakse arvutitele IP-aadresse vahemike kaupa. Ühe kohtvõrgu moodustavatel arvutitel on reeglina IP-aadressid alati ühest ja samast vahemikust. Sellisel moel on marsruuteril palju lihtsam otsustada, kas infopakett kuulub temaga otseühenduses olevasse kohtvõrku ja selle võib otse sihtkohta toimetada või tuleb see edastada mõnele järgmisele marsruuterile.
Internetis olevaid arvuteid, mis peamiselt tegelevad mitmesuguste teenuste osutamisega, nimetatakse võrguserveriteks. Võrguserverites töötavad programmid, mis tegelevad teenuste osutamisega. Näiteks kodulehekülje kuvamiseks töötab serverarvutis vastav programm, mis võrgust tuleva infopäringu (pakettide) peale küsijale vastuseks kodulehekülje saadab. Nagu näha, ei koosta kasutajad ise sääraseid infopäringuid, selleks on arvutites kasutusel klientprogrammid, mis kasutaja valikute alusel ise serveritega andmevahetust teostavad ja tulemust sobival kujul ekraanil näitavad. Eelmises näites kirjeldatud infopäringu valmistab ette brauser (Internet Explorer, Firefox, Opera vms.), kes edastab selle veebiserverile ning näitab oma aknas vastusena saabunud kodulehekülje andmeid.
Kuidas brauser aga teab, millisel IP aadressil server asub? Selle otsustuse teeb tegelikult ära kasutaja, kes trükib brauserisse veebiaadressi. Veebiaadressis on kirjas server, kuhu ühenduda tuleb. Tõsi, see on kirjas tavalise tekstina (www.risk.ee, study.risk.ee vms.), mitte IP-aadressi kujul. Põhjus on lihtsalt selles, et kasutajal on palju kergem meelde jätta serveri nimelist, mitte numbrilist aadressi. Brauser kasutab numbrilise aadressi leidmiseks DNS-võrguteenust, saates kasutaja poolt sisestatud teksti päringu vormis spetsiaalsetele serveritele, kes oskavad nimelisi aadresse numbrilisteks teisendada. Seega on kogu tehniline protsess kasutaja eest brauseri poolt varjatud. Kuna kõik üldkasutatavad teenused on avalikud, on kasutajal alati võimalus ka ise brauserit “mängida”, kasutades ühenduse loomiseks mõnda muud tarkvara, kus päring ise koostada ja edastada tuleb.
Lisaküsimusi
Interneti hajususe tõttu on andmevahetus kahe võrguseadme vahel suhteliselt keeruline. Lisaks eelpool kirjeldatule tekivad mitmedki muud probleemid:
- Arvestades Interneti suurust ja seda, et ühes alamvõrgus võib olla mitu marsruuterit ning ühe marsruuteriga ühendatud ka mitu alamvõrku, tekib varem või hiljem võimalus jõuda sihtpunkti mitut erinevat teed mööda. Analoogiliselt läbi linna liikudes võib kohalejõudmiseks valida mitu erinevat marsruuti, millest mõned on kiiremad ja teised aeglasemad. Seetõttu võib ka Internetis esineda olukordi, kus pakettideks tükeldatud info võib kohale jõuda vales järjekorras. Hiljem saadetud pakett liigub mööda kiiremat marsruuti ja jõuab kohale enne kui varem teele pandud pakett. Järjekorra määramiseks saadetakse iga infopaketiga kaasa ka järjekorranumber, mitmendana vaadeldav osa infost teele pandi. Seega on saaja ülesanne paigutada paketid õigesse järjekorda, et edastatud info korrektne oleks.
- Marsruuterid peavad olema suutelised otsustama, millist teekonda oleks mõistlikum info edastamisel kasutada. Samuti tuleb marsruut läbi vaadata juhul, kui andmete edastamise ajal mõni võrguseade üles ütleb või ühendus seadmega katkeb. Kui enam vana teekonda kasutada ei saa, peab marsruuter üritama leida alternatiivseid kohaletoimetamise marsruute.
- Võib juhtuda, et saatja kasutab väga kiiret ja suure läbilaskevõimega ühendust, saaja või mõni vahepealne arvutivõrk aga aeglast ja piiratud mahuga kanalit. Sellisel juhul võib juhtuda et saatja poolt valmis tehtud infopakett ei pruugi oma suuruse tõttu aeglasemast kanalist “läbi mahtuda”: info edastamine nurjub või võtab saatmine niivõrd kaua aega, et vastuvõtja loobub ootamast ning peab infopaketti kadunuks. Selle vältimiseks võidakse pakett oma teekonnal omakorda tükeldada ning pärast uuesti kokku tagasi panna. Säärast tegevust nimetatakse fragmenteerimiseks.