Kako radi Internet?
· Kako je nastao Internet
· Klijentsko-poslužiteljska koncepcija mreže
· Adresiranje računala, IP i FQDN adrese, domene
· DNS poslužitelji i obrnuto DNS mapiranje
· Mrežne usluge i portovi
· Kako radi TCP/IP: osnovni protokoli
· Prenošenje paketa s podacima mrežom
Koliko god to čudno zvučalo, nije nimalo lako definirati Internet. I najveći stručnjaci stalno se natežu oko toga kako precizno odrediti ovaj komunikacijski fenomen, no do danas nisu smislili ništa revolucionarno novoga. Da sada mi ne bismo otkrivali toplu vodu (odnosno, barem ne odmah na početku ove knjige), poslužit ćemo se dijelom jednog javno dostupnog dokumenta koji daje neke mogućnosti odgovora na pitanje o tome što je Internet.
“Često je pitanje ’Što je Internet?’ Razlog zašto se to pitanje tako često postavlja jest upravo u tome što se nitko ne može složiti oko odgovora koji bi ukratko opisao Internet. Internet se može promatrati kao skup osnovnih komunikacijskih protokola, kao fizička zbirka raznog hardvera, poput usmjernika i drugog mrežnog hardvera, ili čak i kao zasebna ideja o povezivaju ljudi i komuniciranju. Neke češće definicije kažu da je Internet:
Mreža koja se sastoji od manjih mreža računala koje koriste protokole iz skupine TCP/IP
Ljudska zajednica koja razvija i koristi te mreže
Zbirka resursa i podataka do kojih možete doći na tim mrežama”
E. Krol, User Services Working Group, Internet Engineering Task Force (IETF), FYI 20
Sve tri definicije su sasvim dobre i ispravne. U tehničkom pogledu, Internet zaista jest mreža svih nacionalnih, akademskih, znanstvenih, komercijalnih i drugih svjetskih mreža. Tako povezan, Internet omogućava pojedincima iz svih tih mreža da međusobno komuniciraju i razmjenjuju informacije. Druga je definicija u sociološkom smislu također prihvatljiva: Internet, osim hardvera, čine i pojedinci koji takvu globalnu mrežu primjenjuju za pristup do udaljenih podataka ili za korištenje usluga nekog drugog računala u svijetu. Stoga je i treća definicija potpuno OK.
…ministarstvo s najvećim prilivom novca u svoje džepove, američko Ministarstvo obrane (Department of Defense, DoD) odlučilo je, u nedostatku pametnije ideje, uložiti taj novac u razvoj svoje nove mreže. On je povjeren organizaciji Advanced Research Projects Agency (ARPA). (Zanimljivo je u ovom trenutku reći kako je uopće nastala sama ARPA: Amerikanci su osnovali tu agenciju za “napredna istraživanja” nakon što je 1957. Sovjetski Savez lansirao Sputnika, nadajući se da će im ta agencija pomoći da dostignu Ruse u svemirskoj utrci.) Tako je 1968. nastala mreža ARPAnet, koja se smatra prethodnicom današnjeg Interneta. ARPAnet je bio eksperimentalni projekt, na kojemu je trebalo provjeriti mnoge stvari vezane uz mreže. Sama mreža bila je zasnovana na tada novoj, a danas opće prihvaćenoj tehnologiji paketnog prespajanja (zainteresirani će malo više o tome saznati na kraju poglavlja). Smatra se da je Internet nastao onoga dana kada je Ministarstvo obrane odlučilo svoj ARPAnet povezati s nekim drugim javnim mrežama, sveučilištima i znanstvenim institucijama. Stvoren je protokol kojim se paketi prenose mrežom i nazvan je IP - Internet Protocol. “Internet” u tom trenutku još nije bilo ime mreže, već je taj pojam predstavljao skraćenu riječ internetworking, povezivanje mreža. Razvojem takvog protokola omogućeno je da međusobno komuniciraju različiti tipovi računala: bilo je samo važno da se međusobno dobro “razumiju”. U početku, ARPAnet je spajao samo četiri institucije (uglavnom sveučilišne), dok ih je 1972. bilo oko dvadeset. Autori ove knjige još nisu bili rođeni…
Do velikog buma dolazi početkom osamdesetih, točnije 1983., kada nastaju prve lokalne mreže jer je Ethernet mrežna tehnologija postala svima dostupna. To je omogućilo priključivanje mnogih novih radnih stanica na Internet, a sve su one većinom koristile tada vrlo popularni operativni sustav Berkeley BSD Unix i protokol IP za komunikaciju s drugim računalima. Skupina protokola TCP/IP (pazite, sada s ovim TCP ispred) razvijena je početkom osamdesetih, dok je upravo 1983. prihvaćena kao standardni komunikacijski protokol na ARPAnetu. Na mrežu se nisu priključivale samo pojedine radne stanice, već i cijele lokalne mreže: svatko je htio u ARPAnet. ARPAnet je tako postajao medij komuniciranja i za mnoge komercijalne organizacije, a ne samo za vojne i sveučilišne ustanove, kako je prvotno bilo zamišljeno. Prednosti su bile sasvim očite: korisnik s jedne mreže mogao bi bez problema komunicirati s korisnikom za nekim drugim računalom, bilo gdje na ARPAnetu.
Tako su nastajale neke namjenske lokalne mreže, poput NSFneta. NSF (National Science Foundation) je agencija američke vlade koja se bavi znanošću i ona je stvorila NSFnet s namjerom da nudi računalne usluge drugim korisnicima. Konkretno, napravljeno je nekoliko centara sa super-računalima (iako danas ono što se onda zvalo “super-računalom” stane u jedan sasvim prosječni Pentium) koji su trebali pružati usluge složenih matematičkih izračunavanja i slične usluge drugim obrazovnim ustanovama. Napravljeno je samo pet takvih centara, jer je stvar ipak bila malo preskupa čak i za Amere.
Značaj NSFneta je u tome što je započeo s organiziranjem Internetove komunikacijske infrastrukture. Isprva, NSFnet je bio povezan s drugima preko ARPAneta. To rješenje nije bilo najbolje: najveća prepreka bila je birokracija i administracija, jer je trebalo urediti odnose između takve dvije mreže čiji su vlasnici dvije sasvim različite vladine ustanove. Stoga su u NSF-u odlučili napraviti svoju vlastitu mrežu, ali su pritom koristili ARPAnetovu IP tehnologiju za komuniciranje. Pojedine čvorove u NSFnetu spojili su zakupljenim telefonskim linijama koje su prenosile oko 7 KB podataka u sekundi. U usporedbi s današnjim propusnostima to je bilo dosta malo, ali sasvim zadovoljavajuće za zahtjeve koji su se tada postavljali pred mrežu.
Međutim, trebalo je rješiti još jedan problem: kako povezati udaljena računala na novu mrežu? Iznajmljene telefonske linije vrlo su skupe u cijelom svijetu, te si je rijetko tko mogao dopustiti plaćanje stotina ili tisuća kilometara posebne telefonske linije do nekog zamišljenog centra mreže. Zbog toga je Internet od prvih trenutaka zamišljan kao potpuno decentralizirana mreža. Problem je riješen tako da su stvorene regionalne mreže u državama i po većim gradovima. Zatim su se one međusobno povezivale, čime su troškovi umrežavanja znatno pali, jer bi svaka od mreža bila povezana samo s njoj najbližom. Na taj način, svako računalo može doći do bilo kojeg drugog računala. Doduše, ne neposredno, ali ARPAnetov razvijeni protokol IP već je predviđao da druga računala moraju znati kako isporučiti neku poruku na ispravno odredište. Do današnjih dana, Internet upravo tako radi. Mnoge druge mreže koje su tada postojale (primjerice, DECnet, Bitnet i slične) povezale su se s Internetom iako tada nisu koristile protokol IP. Pomoću posebnih hardversko-softverskih rješenja, nazvanih pristupnici (gateway), one su spojene na tu, sad već veliku, globalnu mrežu računala.
Godine 1986. započeo je rad na intenzivnoj komercijalizaciji mreže. Odlučeno je da se sva vojna računala isključe u zasebnu podmrežu, a zastarjeli i spori ARPAnetov sustav zamijenjen je boljim, NSFnetovim. Tako nam je ostao vrlo dobro organizirani Internet, s NSFnetom kao kralješnicom. (Kralješnicom mreže - backbone - smatra se struktura mreže na koju su spojeni svi drugi dijelovi mreže.) U travnju 1995., NSFnet je zasluženo “umirovljen”, a kralješnicom Interneta postale su sve do tada povezane mreže. Zanimljivo je da tako Internet danas odlično radi bez dva osnovna početna dijela: ARPAneta i NSFneta. U međuvremenu je osnovana i organizacija CIX (Commercial Internet Exchange) putem koje su povezane sve tvrtke koje pružaju pristup Internetu na komercijalnoj osnovi.
Upravo smo rekli da je Internet decentraliziran u svojoj tehničkoj organizaciji, pa tako ne postoji niti jedno vrhovno nadzorno tijelo koje bi nadziralo cijelu mrežu. Umjesto toga, poslovi oko održavanja mreže, definiranja novih pravila, standarda i komunikacijskih protokola povjereni su većem broju organizacija u cijelom svijetu. Pogledajmo sliku 1-1 i idemo redom.
Kada bi službeno postojao vrh, na njemu bi se našlo neprofitabilno društvo koje sebe naziva The Internet Society (ISOC; http://www.isoc.org). Njegove su zadaće promicanje Interneta i komunikacijske tehnologije. U njemu su članovi koji se uglavnom bave tehničkim razvojem Interneta, planiranjem njegove budućnosti, razvojem protokola i arhitektura, te donošenjem osnovnih pravila za rad mreže. Tu su uglavnom bistri i pametni ljudi iz mnogih tvrtki i organizacija, pa je ISOC tijelo kojem se može povjeriti tako važan zadatak.
Slika 1-1: Organizacije uključene u razvoj Interneta
Godine 1983. osnovan je Internet Activities Board (IAB). Njegova je dužnost, kako kažu u njegovom statutu, “da bude nezavisni odbor istraživača i profesionalaca čiji je tehnički interes rad i razvoj Internet sustava”, a bavi se osmišljavanjem tehničkih pojedinosti Interneta. IAB ima dva odjela: Internet Research Task Force (IRTF) i Internet Engineering Task Force (IETF). IETF se dalje, kao što je vidljivo sa slike, bavi mnogim drugim aspektima Interneta, poput određivanja načina komunikacije među mrežama, prenošenja podataka mrežom, pisanja dokumentacije i tako dalje. Radne grupe sastavljaju izvještaje o pojedinim temama i javno ih objavljuju na Internetu u obliku tekstualnih datoteka. Važno je napomenuti da bilo tko može prisustvovati sastancima IETF-a, jer je to sasvim otvorena organizacija.
U razvoju Interneta sudjeluju i neke druge organizacije, poput InterNICa (Internet Network Information Center). Njegova je zadaća, primjerice, da vašoj tvrtki dodijele mrežnu adresu (preciznije rečeno, ime domene; o tome govorimo malo kasnije u ovom poglavlju) koju ćete koristiti na Internetu za svoja računala.
Zbog takve decentralizacije, mnogi u šali nazivaju Internet jedinim primjerom anarhije koja odlično funkcionira.
Kao što vidite, nitko s vrha ne prikuplja novac zato da bi cijela stvar radila. IAB, ISOC, IRTF, IETF i InterNIC su sasvim neprofitabilne organizacije. U tome i jest čar organizacije Interneta: organizacija (tvrtka) A sama financira svoju vlastitu mrežu, a organizacija (tvrtka) B svoju. Zatim se te dvije organizacije same dogovore kako će povezati svoje dvije mreže, i troškove te veze također same plate. Upravo tako je stvoren cijeli Internet.
Korištenje usluga drugih računala i mreža se ne naplaćuje: one se smatraju javnim dobrom. Da pojasnimo: ako su organizacije A i B povezale svoju mrežu, a u međuvremenu se organizacija C povezala s mrežom organizacije B, to ne znači da organizacija B ima pravo naplaćivati organizacijama A i C, koje koriste njenu mrežnu infrastrukturu za međusobnu komunikaciju, troškove te komunikacije. Kada pošaljete poruku preko Interneta, vi zapravo nikako ne možete znati kojim će putem i preko čije mreže ona proći na putu do svog odredišta. Postavljanje nekih dodatnih uvjeta oko toga tko s kim smije komunicirati samo bi uništilo ljepotu Interneta.
Pojavili su se komercijalni davatelji usluga, koji se jednostavno bave poslom umrežavanja i naplaćuju korištenje svoje mrežne infrastrukture za pristup Internetu drugim tvrtkama i pojedincima koji žele doći do Interneta. To je, pak, sasvim zdrav i komercijalan način razmišljanja. Danas priključivanje na Internet nije naročito veliki trošak. Čak i u Hrvatskoj, sve više institucija i tvrtki može si priušititi neposrednu vezu s Internetom preko nekog od davatelja usluga.
Kažu da jedna slika vrijedi tisuću riječi, a dvije još i više: pogledajte slike 1-2 i slike 1-3. Na prvoj je prikazana pokrivenost svijeta Internetom (čak su i Grenland i Antarktik odavno spojeni na Internet), a na drugoj porast broja računala do sada i predviđeni rast. Bolje je da sami zaključite kako se brzo stvar razvija, nego da vam mi to još jednom ponavljamo. Kao da to ne znate.
Više o istraživanju broja korisnika Interneta i World Wide Weba govorit ćemo na početku četvrtog poglavlja, pa zavirite i tamo.
Kovanica client/server jedna je od onih koje se najčešće čuju posljednjih godina. Stvar ne bi bila toliko čudna kada bi negdje postojala točna definicija što to znači - ali nje nema. Različiti pojedinci i različite tvrtke tumače ovaj pojam na sasvim različite načine kada pričaju o svojoj mreži. Neki tu krilaticu koriste tek tako, zato jer je cool i u trendu. No, kada u ovoj knjizi spomenemo klijentsko-poslužiteljski model ili koncepciju mreže, a posebice kasnije u ovom poglavlju kada ćemo na brzinu secirati TCP/IP skupinu protokola, sasvim je precizno određeno na što mislimo.
Zamislite bilo kakvu mrežu računala. Mrežu valjda ne trebamo definirati: čuli ste za takve stvari? Valjda jeste, nešto su jako popularne u zadnje vrijeme… Svako računalo koje pruža neku vrstu usluge ili koje nudi neke svoje resurse na korištenje (npr. ispis na priključenom pisaču ili korištenje podataka s njegovog tvrdog diska) naziva se poslužiteljem. S druge strane, svako računalo koje koristi usluge poslužitelja naziva se klijentom.
Tako jednostavno? Khm… Pazite sad.. Klijenti mogu biti poslužitelji, a poslužitelji mogu biti klijenti. Moramo malo zakomplicirati da vam ne bude dosadno. U općenitom slučaju, poslužiteljem nazivamo bilo koje računalo koje daje neke svoje usluge na korištenje drugim računalima. Jednako tako, klijent je bilo koje računalo koje “posuđuje” i koristi uslugu ili neki resurs drugog računala. Zbog toga svako računalo može biti ili klijent ili poslužitelj, i jedno i drugo, ili ništa od toga. Slika 1-4 ovo vrlo jasno ilustrira. Središnje računalo na našoj slici je poslužitelj za ispis na laserski pisač, ali je istovremeno klijent za pristup velikom datotečnom poslužitelju.
Slika 1-4: Jedno računalo može biti istovremeno i klijent za jednu uslugu i poslužitelj za neku drugu
Druga važna stvar je način komunikacije između klijenta i poslužitelja. To je posebice važno nama koji se bavimo Internetom i World Wide Webom, jer se svi komunikacijski protokoli, uključujući i TCP/IP (predstavljen na kraju ovog poglavlja) i HTTP (opisan u trećem poglavlju), sporazumijevaju upravo na taj način. Kada klijent želi zatražiti pristup nekoj usluzi ili resursu poslužitelja, šalje mu zahtjev za pristup usluzi. Nakon toga poslužitelj šalje odgovor klijentu i omogućava mu korištenje zatražene usluge. Na taj se način zahtjevi i odgovori razmjenjuju sve do završetka komunikacije. Ovo najbolje objašnjava slika 1-5.
Slika 1-5: Komunikacija u klijentsko-poslužiteljskom okruženju
Klijentsko-poslužiteljski model nije danas tek tako prihvaćen kao jedno od najboljih rješenja za realizaciju računalne mreže. Međutim, postoje mnoge njegove prednosti. Za početak, taj je model mreže vrlo ekonomičan, jer se veliki računalni kapaciteti i kapaciteti za pohranjivanje podataka traže samo na strani poslužitelja. Osim toga, pokazao se dosta praktičnim u svakodnevnom radu, jer je moguće rasporediti opterećenje jednog računala (npr. glavnog poslužitelja u tvrtki) na više njih.
U ovoj knjizi susrest ćete se i s terminima klijentski program i poslužiteljski program. Klijentski program je jednostavno program kojim pristupate nekoj određenoj usluzi na poslužitelji. Primjerice, pretraživač za World Wide Web je primjer klijentskog programa.. Poslužiteljski program izvršava se na poslužiteljskom računalu i opslužuje zahtjeve klijenata. Bitno je jedino da klijent i poslužitelj razmjenjuju podatke po istim pravilima; informatičari bi rekli: koristeći se istim protokolom. Više o tome što su protokoli naći ćete na kraju ovog poglavlja, prije no što ukratko prikažemo kako radi protokol TCP/IP.
Na velikoj mreži kakva je Internet, najveći je problem bio osmisliti sustav imenovanja računala, koji će koristiti svi protokoli, usluge i - na kraju krajeva - sami korisnici da bi komunicirali s nekim računalom. Sustav IP adresa koji je razvijen imao je mnogo prednosti nad nekim drugim tada predloženim sustavima, pa je prihvaćen za korištenje na ARPAnetu i, kasnije, NSFnetu i Internetu.
Svako računalo na mreži dobiva adresu u obliku četiri broja odvojena točkama - to je ono što ćemo zvati IP adresom. Kako računala najbolje rade s binarnim brojevnim sustavom, adrese su zapravo predstavljene s 32 bita. Primjerice, mrežna adresa nekog računala može biti
10100001 00110101 00000011 00101000
Ljudima takav format, iz sasvim očitih razloga, nije baš prihvatljiv, pa se takav 32-bitni niz binarnih znamenki pretvara u četiri dekadska broja koja su odvojena točkom (tzv. dotted quad, iliti “istočkana četvorka” ako to pokušamo prevesti na hrvatski). Dekadska adresa dobiva se tako da se svaka grupa od 8 bitova zasebno pretvori u svoj dekadski brojni ekvivalent. Adresa gornjeg računala je tako
161.53.3.40
što je našim malim sivim stanicama već malo prihvatljivije za pamćenje. Nije još uvijek “naj”, ali lakše je upamtiti 4 nego 32 broja. Budući da dekadska vrijednost svakih 8 bitova može biti između 0 i 255, spretni matematičari u času će dići broj 255 na četvrtu potenciju i izračunati da bi se na taj način moglo adresirati nešto preko četiri milijarde računala. Ali…
Numerička adresa ima dva važna dijela, koja nisu baš očita ako je promatrate samo kao niz od četiri broja. Međutim, važno je znati da dio adrese predstavlja broj mreže na koje je priključeno računalo, a da drugi dio adrese predstavlja broj računala u toj mreži. Naravno, postavlja se pitanje “što je što” ako imate adresu od četiri broja: postoje barem tri mogućnosti.
Upravo se sve te tri mogućnosti koriste. Već smo rekli da je Internet velika mreža manjih, lokalnih mreža koje se nalaze u tvrtkama ili organizacijama. Kada se razmišljalo o načinu izvedbe IP adresiranja, pretpostavilo se da će postojati:
· mali broj samostalnih mreža s jako velikim brojem računala
· određen broj mreža koje imaju srednji broj računala
· vrlo velik broj mreža koje povezuju manji broj računala
Zbog toga su osmišljene klase adresa. Ako opći format adrese napišemo kao
aaa . bbb . ccc . ddd
Klasa A su one adrese kojima je dio aaa adresa mreže, a ostali brojevi adresa računala. Tako može postojati samo nešto više od 120 takvih mreža, ali svaka može imati preko 16 milijuna računala (jer posljednja tri broja označavaju samo računalo). U klasi B, dio aaa.bbb predstavlja adresu mreže. Budući da su brojevi do 126 već zauzeti za klasu A, u klasi B prvi broj je veći od 128. Tako može postojati 16 tisuća mreža u toj klasi, a svaka od njih ima do 65 tisuća računala (jer računalo predstavljaju posljednja dva broja). U klasi C, prva tri broja, aaa.bbb.ccc, označavaju mrežu i zato je moguće imati oko 2 milijuna mreža u toj klasi. Broj aaa mora biti veći od 192. Samo zadnji broj, ddd, koristi se za oznaku računala, pa mreža klase C može u sebi imati samo malo više od 250 računala.
Pogledajte tablicu 1-1 i sve će vam biti jasnije. U prvom stupcu je oznaka klase, u drugom i trećem prvi brojevi iz IP adrese između kojih se nalazi ta klasa, a posljednja dva stupca pokazuju koliko mreža može biti u toj klasi i koliko svaka od tih mreža može imati računala.
Tablica 1-1: Raspoložive IP adrese
|
Klasa |
Prvi broj: od |
Prvi broj: do |
Broj mreža u klasi |
Broj računala u mreži |
|
A |
1 |
126 |
126 |
16,777,214 |
|
B |
128 |
191 |
16,384 |
64,534 |
|
C |
192 |
223 |
2,097,152 |
254 |
Neke IP adrese ne smiju se koristiti za označavanje broja mreže ili računala. Broj računala ili mreže ne smije biti 0, zato jer nula označava “ovu mrežu”. Primjerice, ako napišete adresu 161.53.0.0, to označava mrežu čija je adresa 161.53. (Usput, recimo da mreža 161.53 predstavlja hrvatski akademski ogranak Interneta, CARNet.)
Broj 255 koristi se za slanje nekih podataka na sva računala. Primjerice, adresa 161.53.255.255 odnosi ne na sva računala u mreži 161.53. Ako pošaljete neke podatke na tu adresu, oni će doći do svih računala u mreži 161.53.
Oznaka mreže 127 također je rezervirana (nema je u tablici 1-1 i ne radi se o našoj greški). Adrese koje počinju sa 127 imaju posebnu primjenu; radi se o tzv. loopback adresama (povratnim adresama) koje se koriste samo za testiranje rada mreže. Mrežne poruke i paketi koji su adresirani na mrežu 127 nikada neće otići dalje u mrežu, već će se vratiti natrag. Posebno je zanimljiva adresa 127.0.0.1, jer ona uvijek označava to isto računalo.
Zadnji broj u IP adresi ne smije biti 0 ili 255 (osim u gornja dva posebna slučaja). Prvi broj također ne smije biti veći od 223; brojevi 224 i 225 rezervirani su za neke posebne slučajeve i najčešće se uopće ne susreću.
Ova su ograničenja ujedno razlog zašto su brojevi mogućih računala i mreža u tablici 1-1 takvi kakvi jesu.
Ako ste “običan” korisnik koji samo pristupa Internetu preko modema, ovo vas ne zanima, pa pređite na sljedeći odjeljak. No, ako želite lokalnu mrežu svoje tvrtke spojiti na Internet, čitajte dalje. Organizacija koja je zadužena za dodjeljivanje imena domena jest već spomenuti InterNIC. Adresu klase A ne možete dobiti jer su već odavno razgrabljene: takve su adrese dobile tvrtke i organizacije koje imaju jako mnogo umreženih računala, poput IBM-a, MIT-a i sličnih. Postoji tek malo broj klasa B na raspolaganju, ali ćete ih teško dobiti jer su rezervirane samo za preostale velike “manje” tvrtke i organizacije i eventualno koju novu državicu. Dakle, možete bez problema jedino dobiti adresu u C klasi.
Da biste od InterNIC-a dobili svoju grupu IP adresa i registrirali je kao domenu, morate popuniti poseban formular. Do njega možete doći pomoću FTP-a na adresu ftp.internic.net, pomoću World Wide Weba na adresi http://www.rs.internic.net ili elektroničkom poštom s adrese hostmasterŽinternic.net. Želite li pak pisati u Ameriku i čekati tjednima na odgovor, adresa je Network Solutions, InterNIC Registration Services, 505 Huntmar Park Drive, Herndon, VA 22070, USA. Odgovor na elektronički zahtjev dobit ćete u roku od dva dana. InterNIC će provjeriti je li vaša domena jedinstvena i tada odobriti njeno korištenje. Baza InterNIC-ovih domena svakodnevno se kopira na DNS poslužitelje u svijetu, kako bi se domene i računala uspješno pronalazili.
IP adrese u dekadskom obliku (četiri broja s točkama) u svakom slučaju ljudi lakše pamte od binarnih adresa, ali to još uvijek nije to. Zato su mrežama i računalima nadjevena sasvim normalna imena. Ime se također sastoji od nekoliko riječi, koje su opet odvojene točkama. Primjerice, pogledajte adresu:
jagor.srce.hr
Posljednja oznaka, hr, predstavlja oznaku države u kojoj se računalo nalazi. Oznaka prije nje, u našem slučaju srce, ime je organizacije u kojoj se računalo nalazi. Ime organizacije i oznaka države zajedno se nazivaju domena. Konačno, jagor je ime računala koje se nalazi u domeni srce.hr. Adresa računala napisana u tom obliku naziva se Fully Qualified Domain Name (FQDN). Gotovo uvijek kada se radi o Webu, susretat ćete se upravo s ovakvim, a ne s IP adresama.
Broj oznaka u ovakvoj adresi nije ograničen, ali ih je obično između tri i pet. Primjerice, moguća je i adresa poput
fly.cc.fer.hr
Ovdje je fly ime računala, a sve ostalo predstavlja domenu. Kao što vidite, domena ima tri dijela: osim zemlje i imena institucije (fer), u njoj se nalazi i oznaka odjela (cc) te institucije gdje se računalo nalazi.
Zadnja oznaka u ovakvom imenu najčešće je oznaka države (hr za Hrvatsku, si za Sloveniju, de za Njemačku, uk za Veliku Britaniju, fr za Francusku, au za Australiju itd; pogledajte dodatak D u kojemu su popisane sve zemljopisne domene). No, u slučaju računala koja se nalaze u Sjedinjenim Američkim Državama najčešće nema oznake us, već na tom mjestu stoji oznaka tipa mreže u kojoj se nalazi računalo. Primjerice, edu označava obrazovnu ustanovu, com komercijalnu organizaciju, gov vladinu ustanovu, mil vojno računalo, org neku međunarodnu organizaciju, net neku mrežu koja se prostire na većem području i tako dalje.
Ovakav način imenovanja računala ostavlja mogućnost dodavanja aliasa, odnosno alternativnih zamjenskih imena za svako računalo. Primjerice, ako računalo regoc.srce.hr služi kao Web poslužitelj, ono obično dobiva dodatno ime www.srce.hr, ili kada bi na njemu bila FTP arhiva s programima, ftp.srce.hr. Na taj je način olakšan pristup korisnicima pojedinih usluga. Numerička IP adresa i dalje ostaje ista, ali računalo ima nekoliko FQDN imena. U poglavlju 19, koje će vas uvesti u svijet Web poslužitelja, vidjet ćete koje su još prednosti korištenja aliasa ako pokrećete svoj vlastiti Web poslužitelj.
Što sada? Vidite da jedno računalo ima IP adresu i FQDN adresu. Jedini način adresiranja koji je pogodan harvderu i softveru su IP adrese; FQDN adresiranje izmišljeno je samo zbog ljudskih stvorenja. Kako Internet “zna” da je računalo kojemu želite pristupiti, recimo jagor.srce.hr, označeno IP adresom 161.53.2.120?
U ranim danima ARPAneta, problem se rješavao trivijalno, jednom običnom tekstualnom datotekom (koja se nazivala hosts) koja se održavala na mreži. U njoj je pisalo, recimo, u dva stupca:
161.53.2.120 jagor.srce.hr
115.214.4.44 neko.računalo.edu
… … …
Razlog zašto se to više ne koristi je sasvim očit: da bi računala mogla ispravno pretvarati jedan tip adrese u drugi, moraju uvijek imati posljednju, najnoviju verziju takve datoteke. Broj računala na Internetu davno je prešao broj nakon kojega je održavanje takvog popisa ne samo nepraktično, već je i organizacijski i fizički nemoguće prenositi takve popise mrežom. Ipak, hosts datoteke se i dalje vrlo često koriste u lokalnim mrežama za definiranje IP adresa i pripadajućih im FQDN imena računala.
Na Internetu danas taj posao uglavnom obavljaju DNS-ovi. DNS je skraćenica od Domain Name Server, poslužitelj za imenovanje domene. (Neki kažu da je S iz skraćenice i Service ili System, no to nije toliko bitno.) To je računalo koje zna pretvoriti IP adresu u FQDN ime računala za računala iz svoje domene. Svaki od DNS poslužitelja brine se o održavanju tablice s IP i FQDN adresama za svoju domenu, a za ostale domene zna kojem drugom DNS poslužitelju treba proslijediti zahtjev. Na primjer, ako neko računalo želi znati IP adresu računala jagor.srce.hr i pošalje zahtjev DNS poslužitelju, moguća su tri rezultata:
· DNS poslužitelj odmah zna odgovor, jer ga pronalazi u svojoj bazi podataka o računalima te domene.
· DNS poslužitelj nema pojma koja je IP adresa i mora pitati drugog poslužitelja.
· DNS poslužitelj zna odgovor zato što je netko već ranije tražio adresu tog računala, pa ju je on sačuvao nakon što ju je saznao od drugog poslužitelja (rekli bismo da ju je keširao).
Tako razlikujemo primarne i sekundarne DNS poslužitelje. Primarni su odgovorni za cijelu svoju domenu. Često se primarni poslužitelji rasterećuju tako da dio posla prepuštaju sekundarnim DNS poslužiteljima. Sekundarni DNS poslužitelj, primjerice, može obavljati posao oko pretvaranja adresa za mrežu neke tvrtke, a primarni je na višoj razini i zna da informacije o računalima u toj tvrtki može dobiti od tog sekundarnog poslužitelja. Primarni DNS poslužitelj predstavlja “krajnju istinu”: sve informacije i podaci koji se nalaze na njemu odgovaraju stvarnom stanju mreže.
Najveća razlika između primarnih i sekundarnih DNS poslužitelja je u tome gdje pronalaze svoje informacije o adresama. Primarni ih imaju zapisane u bazama podataka, a sekundarni ih dobivaju od primarnih, ili od drugih sekundarnih poslužitelja. Pogledajte sliku 1-6.
Slika 1-6: Komunikacija primarnog i sekundarnog DNS poslužitelja
I obična računala mogu se smatrati malim DNS poslužiteljima, iako ne u pravom smislu te riječi. Naime, nakon što računalo pita DNS poslužitelja (primarnog ili sekundarnog) za IP adresu nekog drugog računala, ono će je upamtiti u nekoj svojoj datoteci kako sljedeći put ne bi moralo pitati DNS za adresu. Ako malo razmislite, problem je očit: što ako se promijeni IP adresa nekog računala i podatak zapisan na lokalnom računalu postane pogrešan? Pogledajte sliku 1-7. Računalo se želi povezati s računalom kojemu je promijenjena IP adresa, a ono zna samo staru. Zbog toga najčešće te keširane adrese imaju “rok trajanja”, nakon čega se brišu s običnog računala, pa ono ponovno mora kontaktirati DNS poslužitelj da bi dobilo adresu.
Slika 1-7: Promijenjena je IP adresa nekog računala u mreži, pa dolazi do neusklađenosti podataka između DNS poslužitelja i stare adrese koju je upamtilo neko drugo računalo
Naravno, evo i suprotnog slučaja. Znate IP adresu, ali željeli biste znati i ime računala. Primjerice, Web poslužitelj može poželjeti saznati ime računala s kojeg se javljate pomoću vaše IP adrese koju je dobilo prilikom uspostavljanja veze s vašim klijentom. DNS zato može ustanoviti i ime nekog računala ako zna njegovu IP adresu. Taj se proces naziva reverse lookup ili obrnuto mapiranje adresa, a ima i drugih naziva.
Slika 1-8 pokazuje kako to u načelu radi. Da bi se podržalo obrnuto mapiranje, na Internetu postoji posebna domena, in-addr.arpa, koja se u prikazanom stablu adresa nalazi na vrhu. Čvorovi u imenu te domene su zapravo IP adrese. Tako domena in-addr.arpa ima 256 poddomena, koje odgovaraju prvom broju IP adrese. Svaka od tih poddomena dalje opet može imati 256 poddomena koje odgovaraju drugom broju IP adrese, a svaka od njih opet ima sljedećih 256 poddomena za treći broj IP adrese. Konačno, one se dijele na još 256 poddomena za četvrti broj iz IP adrese. U toj krajnjoj grani nalazi se FQDN ime računala.
Slika 1-8: Način pretvorbe IP adrese u FQDN adresu: obrnuto DNS mapiranje
Pogledajmo kako to radi: pretpostavimo da želite saznati koje se računalo krije iza adrese 161.53.2.120. DNS kreće od vrha stabla in-addr.arpa. On počinje pretraživati stablo od domene 161.in-addr.arpa. Zatim ide dalje u dubinu do 53.161.in-addr.arpa, i tako sve dok ne dođe do konačnih 120.2.53.161.in-addr.arpa. U toj grani stabla zapisana je adresa jagor.srce.hr, što znači da je navedenoj IP adresi odgovaralo upravo to računalo. Ovakva stabla adresa održavaju se na DNS poslužitelju paralelno s bazama podataka koje pretvaraju FQDN adresu u IP adresu, pa su tako moguće pretvorbe adresa u oba smjera.
Sada ste upoznati s organizacijom Interneta i adresiranjem računala. Vjerojatno ste već čuli da se za komuniciranje među računalim povezanim u Internet koristi protokol TCP/IP. On je toliko važan da smo mu odlučili posvetiti jedan malo veći odjeljak u ovom poglavlju, za one koje takve stvari zanimaju. Ako još ne znate što je i kako radi TCP/IP, jednostavno ga za sada zamislite kao “zajednički jezik” kojim komuniciraju sva računala na mreži. I u stvarnosti je tako: osoba koja govori engleski neće se uopće razumjeti s osobom koja priča na kineskom.
Povrh tog protokola, izvršavaju se mnoge mrežne usluge i njihovi protokoli više razine koji su najzanimljiviji samim korisnicima: prenosi se elektronička pošta, prenose se datoteke, pristupa se bazama podatka ili World Wide Web stranicama. Za svaku od tih usluga ponovno se brine poseban protokol komunikacije. No, taj protokol na višoj razini može razgovarati s drugim računalom koje koristi isti protokol samo ako se komunikacija odvija preko osnovnog protokola, TCP/IP-a. Kao što vidite, TCP/IP je i dalje osnova svega, jer je on odgovoran za prenošenje svih podataka mrežom: ako smo TCP/IP nazvali “zajedničkim jezikom”, tada su mrežne usluge jednostavno razgovori o različitim temama. Ponovno primjer iz stvarnog života: nuklearni fizičar koji govori engleski i nuklearni fizičar koji govori kineski neće se razumjeti, mada razgovaraju o istoj temi (nuklearna fizika), ali im osnovni “protokol” - jezik - nije zajednički i razumljiv obojici.
Značaj World Wide Weba je upravo u tome što ujedinjuje sve mrežne usluge: za pristup pojedinim uslugama i dalje se koriste različiti, već ustanovljeni protokoli, no program kojim pristupate World Wide Webu “zna” da treba razgovarati s WWW poslužiteljem na jedan, a s nekim drugim poslužiteljem na drugi “način”. Kako to u praksi izgleda i kako World Wide Web pretraživači pristupaju drugim uslugama, te kako se one adresiraju, vidjet ćete u trećem poglavlju, a sada ćemo vas ukratko upoznati s najznačajnijim Internetovim uslugama i vidjeti kako se njima inače pristupa, ako se ne koristi WWW pretraživač.
Savjet
Ovo je kratak prikaz postojećih mrežnih usluga, kako bi novi korisnici Interneta i World Wide Weba lakše shvatili svestranost WWW-a i njegov sustav URL adresa, objašnjen u trećem poglavlju. Detaljno objašnjavanje mrežnih usluga, osim naravno World Wide Weba, izlazi iz okvira ove knjige. Znakova knjiga InternetŽHR: Kako na Mrežu iz Hrvatske detaljan je i opširan vodič kroz baš sve mrežne usluge i programe za njihovo korištenje. Prošetajte do svoje knjižare i kupite ovaj bestseler. (Da, da, možda malo pretjerujemo s autorskom samoreklamom, ali...)
Ako ste razgovarali s nekim iskusnijim Internautom, možda ste od njega čuli da je njegov “Web poslužitelj na nestandardnom portu 8080”, da je upravo “igrao interaktivne igre na portu 7755” ili “razgovarao s drugim korisnicima Interneta na portu 6667”. Vjerojatno ste se pitali o čemu tip priča i nema li uopće nekih normalnih zanimacija u životu.
Portovi su, međutim, sasvim jednostavna stvar. Kad smo, na početku ovog poglavlja, govorili o klijentsko-poslužiteljskom modelu mreže, rekli smo da jedno računalo može istovremeno biti poslužitelj za više usluga. Primjerice, jedno računalo na Internetu može istovremeno služiti i kao arhiva korisnog softvera i kao poslužitelj za World Wide Web. Iako vam se na prvi pogled čini da ovdje nema nikakvih problema i prepreka da se takvo nešto osvari, zapravo nije tako.
Klijentski programi - programi pomoću kojih se pristupa poslužitelju za određenu uslugu - koriste različite protokole (komunikacijske “jezike”) za obraćanje poslužitelju. Klijentski program za prenošenje datoteke razgovara s poslužiteljem na jedan, a klijentski program za prikaz Web stranice razgovara s poslužiteljem na drugi način. Problem je, dakle, u tome što je sasvim opravdana potreba da jedno računalo bude poslužitelj za više stvari odjednom. Kada dva programa pokušaju komunicirati preko Interneta, očito nije sasvim dovoljno da znaju samo IP adresu računala na kojemu se izvršava onaj drugi program. Kako klijent za World Wide Web može znati da će se, ako pristupi računalu s IP adresom 161.53.2.40, povezati upravo s poslužiteljem za Web, a ne s nečim sasvim desetim?
Tako je nastao i termin port. Zapravo, tu nema velike mudrosti: radi se jednostavno o nekoj identifikacijskoj oznaci pojedine usluge. Ili, još slikovitije, radi se o “vratima” neke usluge na pojedinom poslužitelju. Port se označava brojem između 0 i 65535. Neke osnovne i uobičajene usluge na Internetu imaju brojeve do 1000, dok se druge koriste na pojedinim operativnim sustavima ili za neke ne toliko standardizirane usluge.
Evo i kako stvar radi: kada se pokrene poslužiteljski program za neku uslugu, on za sebe rezervira neki broj porta (pogledajte tablicu 1-2) i čeka da mu pristignu zahtjevi upravo na taj port. Kada tome poslužitelju pristignu neki paketi s podacima od nekog klijenta, osnovni protokol za komunikaciju - TCP/IP - prvo pogleda koji je broj porta u tim paketima, a zatim proslijedi zahtjev odgovarajućem poslužitelju na navedeni port. Tako se na jednom računalu može izvršavati više poslužiteljskih programa, pod uvjetom da svi oni rade na različitim portovima. Klijentski programi znaju na kojem se od portova izvršava poslužiteljski program i tako mu znaju pristupiti. Stvar je riješena, lako i jednostavno.
Tablica 1-2: Osnovni portovi i usluge koje se na njima izvršavaju
|
Broj porta |
Osnovni protokol |
Aplikacijski protokol/usluga |
Opis usluge |
|
13 |
TCP/UDP |
daytime |
Daje trenutno lokalno vrijeme |
|
17 |
TCP |
qotd |
Quote of the Day |
|
21 |
TCP |
ftp |
Prenošenje datoteka |
|
23 |
TCP |
telnet |
Terminalsko povezivanje |
|
25 |
TCP |
SMTP |
Prenošenje elektroničke pošte |
|
37 |
TCP/UDP |
timserver |
Time server |
|
42 |
TCP |
nameserver |
Nameserver |
|
43 |
TCP |
whois |
Dobivanje podataka o korisniku/ računalu |
|
53 |
TCP/UDP |
DNS |
Domain Name Server |
|
69 |
UDP |
tftp |
Trivial File Transfer Protocol |
|
70 |
TCP |
gopher |
Gopherski poslužitelji |
|
79 |
TCP |
finger |
Dobivanje podataka o korisniku/ računalu |
|
80 |
TCP |
HTTP |
World Wide Web poslužitelji |
|
110 |
TCP |
POP3 |
Post-Office-Protocol (elektronička pošta) |
|
119 |
TCP |
NNTP |
Pristup novinskim grupama |
|
210 |
TCP |
WAIS |
Pristup bazama podataka |
|
517 |
UDP |
talk |
Razgovor s drugim korisnikom |
|
518 |
UDP |
ntalk |
Nova verzija talka |
|
540 |
TCP |
UUCP |
Zastarjeli protokol Unix-to-Unix Copy |
Pogledajte sliku 1-9. Na toj slici, jedno je računalo (ono s IP adresom 161.53.3.40) istovremeno poslužitelj za tri usluge: World Wide Web (HTTP), prenošenje datoteka (FTP) i Gopher. Ti se poslužiteljski programi izvršavaju na portovima 80, 21 i 70, respektivno. Ako klijent (s adresom 119.218.44.12) želi pristupiti Web poslužitelju, upućuje svoj zahtjev na port 80. Istovremeno, neki sasvim drugi klijent na sasvim drugom kraju svijeta (191.113.77.18) može komunicirati s portom 70 na istom poslužiteljskom računalu i tako pristupati poslužiteljskom programu za Gopher. Više poslužiteljskih programa na jednom računalu tako ne smetaju jedan drugome i u idili poslužuju svaki svoje klijente.
Slika 1-9: Primjer komunikacije klijenta i poslužitelja, gdje klijenti pristupaju različitim portovima na istom poslužitelju kako bi koristili različite usluge
Pogledajmo još na trenutak tablicu 1-2. U prvom se stupcu nalaze brojevi portova nekih važnijih usluga na Internetu. U drugom je stupcu tip protokola pomoću kojega se pristupa pojedinom portu. Kao što vidite, ovdje stoji ili oznaka TCP, ili oznaka UDP, ili u nekim slučajevima obje. Ta se oznaka zapravo odnosi na osnovni komunikacijski protokol niske razine pomoću kojega se pristupa tom portu. Skupina komunikacijskih protokola TCP/IP zapravo sadrži dva takva protokola niske razine, TCP i UDP. O njima će biti više riječi na kraju ovog poglavlja, ali za sada je važno da znate da ta dva protokola samo prenose podatke mrežom i da uočite da oni mogu bez problema dijeliti jedan isti broj porta, zato što je za uspješno uspostavljanje veze s poslužiteljskim programom potrebno osim IP adrese i broja porta znati i tip osnovnog protokola pomoću kojega mu se pristupa.
U trećem stupcu nalazi se ime aplikacijskog protokola (protokola više razine) koji se koristi za komunikaciju s pojedinom uslugom. Ponovno, u ovom trenutku nije bitno da razumijete razliku između “protokola niske razine” i “aplikacijskog protokola”, jer će vam to biti jasnije nakon što pročitate kako radi TCP/IP na kraju ovog poglavlja. Za sada, recimo samo da se pomoću osnovnih protokola niske razine mrežom prenose podaci pomoću kojih komuniciraju specifični aplikacijski protokoli. Konačno, u četvrtom je stupcu samo kratak opis usluge koja se izvršava na navedenom portu.
Rad na udaljenom računalu jedna je od osnovnih Internetovih usluga. Program kojim se to omogućuje standardni je dio Unixa i naziva se Telnet. Ovdje nema mnogo mudrovanja: Telnet vam omogućava da se, sa računala na kojemu radite, povežete s računalom u susjednoj sobi ili na drugom kraju svijeta i koristite njegove usluge. Vaše računalo tada postaje terminal, koji na svom ekranu samo prikazuje rezultate izvršavanja programa na udaljenom računalu, a sve što otipkate također odmah prosljeđuje udaljenom računalu. Da biste se povezali s udaljenim računalom, trebate samo znati njegovu adresu i napisati nešto poput telnet veliko.računalo.hr, a za prekid veze možete jednostavno pritisnuti Ctrl+D, ili Ctrl+], pa nakon toga upisati quit. Ako koristite grafički program za Telnet (npr. u Windowsima), jednostavno zatvorite njegov prozor.
Slika 1-10: Rad na udaljenom računalu preko Telneta
Naravno, ne dopuštaju sva računala da se na njih tako povezujete: neka uopće ne primaju korisnike (nisu otvorena za javnost), dok ćete za pristup drugima trebati korisničko ime i lozinku. Treća možda nude neke javne usluge preko Telneta, pa vas neće čak niti pitati za korisničko ime i lozinku. Jedna od takvih javnih usluga je i Archie, sustav za pronalaženje datoteka na Internetu, a preko Telneta se često može pristupati i raznim bazama podataka, katalozima knjižnica, meteorološkim sustavima i raznim drugim informacijskim servisima. S druge strane dočekuje vas neki program sa svojim vlastitim korisničkim sučeljem i radite kao da se taj program izvršava na vašem računalu.
Napomena
Nemojte se pokušavati nasumce povezivati s drugim računalima koristeći Telnet. Nećete im moći pristupiti ako nemate korisničko ime i lozinku, a svaki pokušaj pogađanja ta dva podatka može se tumačiti kao pokušaj provaljivanja u sustav. Dakle, Telnetom samo na poznata mjesta!
Druga značajna mogućnost Telneta jest da se neposredno povežete na neki određeni port udaljenog računala. (U prethodnom odjeljku objasnili smo što su portovi.) Ta će nam mogućnost dobro doći da bismo u trećem poglavlju pogledali i provjerili kako rade WWW poslužitelji: jednostavno ćemo se povezati s portom 80 na kojem se najčešće nalazi WWW poslužitelj. Ponekad se, povezivanjem na druge portove, može pristupati i drugim uslugama na Internetu ili specijaliziranim sustavima. Nekada se možete i igrati na udaljenom računalu ako se povežete na određeni port. No, ponovno važi slično upozorenje:
Napomena
Ne pokušavajte eksperimentirati s brojevima portova. Na nekim portovima izvršavaju se “osjetljivi” programi (poput programa za rukovanje elektroničkom poštom, sendmail), pa bi administratori računala vaše petljanje s portovima i pokušaje prijavljivanja ponovno mogli shvatiti kao pokušaj provaljivanja u sustav. Standardni port za Telnet, koji se podrazumijeva ako ga ne navedete, je 23. Povezujte se samo s poznatim računalima, za koja znate što vas tamo očekuje.
Većina korisnika zatražila je pristup Internetu upravo zbog elektroničke pošte, pa teško da je ona nekome danas još uvijek nepoznat pojam. Elektronička pošta je danas najbrži, najsigurniji i najelegantniji način za komunikaciju s cijelim svijetom. Ona je prilično sretna kombinacija najboljih svojstava telefona i pisma: poput telefona, ona je gotovo trenutna u svom dosezanju primatelja, ali primatelj ima priliku odgoditi komunikaciju za neki kasniji trenutak, kada ga to neće prekinuti u kuhanju ručka, tuširanju, poslijepodnevnom odmoru ili gledanju Dnevnika. (Ili vremenske prognoze, koja je u većini obitelji svetinja za vrijeme koje se ne razgovara. Nama se u cijeloj toj priči o vremenu jedino dopadaju Sanja Mikulić i Aleksandra Mindoljević. Lijevi polukružni zaokret i onda… “A u federaciji Bosne i Hercegovine sutra će biti...”).
Najveća vrijednost elektroničke pošte jest što je potpuno automatizirana: bez obzira dopisujete li se s nekim preko BBS-a, Interneta ili koristite neki drugi sustav, u načelu vas ne zanima kako će ta poruka doći do svog primatelja. Na Internetu se posebni programi, nazvani sendmail daemoni (koji se izvršavaju na portu 25) brinu da elektronička pošta mirno i neprimjetno teče mrežom bez ljudske intervencije. Također, Internetu je uspjelo ono što drugim mrežama nije: povezati sve, bez obzira na njihov hardver i softver, pa tako i na sustav elektroničke pošte koji koriste. Dok je nekoć bilo važno na kojem sustavu ili mreži osoba s kojom se želite dopisivati ima elektroničku adresu, danas zahvaljujući gateway sustavima možete preko Interneta odaslati poruku bilo kome, na bilo kojoj mreži.
Elektronička pošta rasterećuje i primatelja i pošiljatelja utoliko što pošiljatelj može biti siguran da je poruka stigla na odredište (na Internetu su zaista rijetki slučajevi gubljenja poruka, zbog načina realizacije same mreže, dok su BBS-ovi ovdje ipak nešto nepouzdanije sredstvo), a primatelj ne mora brinuti o tome što radi u trenutku kad mu dolazi poruka. Njegovo računalo čak ne mora biti uključeno, ali poruka se ipak neće zagubiti već će čekati trenutak isporuke primatelju. Primatelj može imati dvije ili više elektroničkih adresa (poput nas, recimo), ali pošiljatelj se ne mora time zamarati jer primatelj može sam odrediti na koju od njih će primati poštu, pa može preusmjeravati poruke na drugu adresu ili narediti računalu da ih automatski razvrsta po nekom kriteriju koji mu najviše odgovara. Ne smijemo zaboraviti niti globalnu učinkovitost e-maila: mnogo je jeftinije poslati nekome u svijetu poruku nego ga zvati telefonom, a preko pošte danas možete nekome u svijetu poslati i telefaks. Konačno, elektronička pošta može, zahvaljujući MIME proširenjima (što je MIME, pročitat ćete u trećem poglavlju) osim teksta sadržavati i slike, zvučne ili video zapise, te dokumente stvorene u nekoj od poznatih aplikacija.
Da biste poslali nekome poruku, potrebna vam je samo njegova adresa, primjerice dsusanj@public.srce.hr. Adresa za elektroničku poštu tvori se od korisničkog imena korisnika na računalu, znaka @ (čita se “et”, a mnogi ga, zbog oblika, nazivaju i “monkey”, tj. “majmun”), te adrese računala na Internetu. Ako niste sigurni koje je korisničko ime osobe kojoj pišete, možete napisati njeno ime i prezime odvojeno točkom: Dario.Susanj@public.srce.hr. Na Internetu postoje sustavi koji vam omogućavaju da pronađete elektroničku adresu neke osobe ako je ne znate (X500, Whois, Netfind), a čak i jedna Unixova naredba može ovdje dobro poslužiti (finger).
Slanje elektroničke pošte vrlo je jednostavno. Za to postoje mnogi programi: čak su i Unixovi Elm i Pine prilično jednostavni za uporabu, a tu su i mnogi programi koji rade pod grafičkim sučeljima, poput Eudore, WinQVT-a i E-mail Connectiona za Windowse. Windowsi 95 uključuju Microsoft Exchange, sustav koji vam osim slanja faksova omogućava i slanje elektroničke pošte u okviru vaše lokalne mreže u tvrtki i na Internet. I pretraživači World Wide Weba Netscape Navigator i Internet Explorer imaju ugrađene module za slanje i primanje elektroničke pošte.
FTP je jedna od najpopularnijih usluga jer omogućava prenošenje datoteka između dva računala povezana na Internet. Tako ne samo da možete prenositi datoteke između dva računala na kojima imate korisničke račune, već možete pristupati i velikim arhivama besplatnog softvera i drugih datoteka koje se nalaze posvuda u svijetu. FTP je skraćenica za File Transfer Protocol (protokol za prenošenje datoteka: rijetki su protokoli čija je skraćenica tako precizna i nedvosmislena) i u ovom slučaju označava i ime samog protokola, ali i ime klijentskog programa kojim se pristupa FTP poslužitelju. Program ftp također je standardni dio svih Unixa, a postoje i mnogi programi koji omogućavaju udobno korištenje iz ljuske koja sliči programima za rukovanje datotekama na lokalnom računalu: lijevo vidite sadržaj lokalnog diska, a desno sadržaj diska na udaljenom računalu. Pretraživači za World Wide Web mogu direktno pristupati FTP poslužiteljima i s njih prenositi datoteke, ali ih ne mogu slati. Susret s FTP-ovima bit će, kod surfanja po Webu, vrlo čest, no o tome više u 3. poglavlju.
Slika 1-11: WS-FTP je popularan program za pristup FTP poslužiteljima iz Windowsa
Slično kao i Telnet, prilikom prijavljivanja na udaljeno računalo s FTP-om također ćete biti priupitani za korisničko ime i lozinku. Ako na tom računalu posjedujete korisnički račun, tada su korisničko ime i lozinka za FTP isti kao i oni za povezivanje s Telnetom na to računalo. No, najčešće se koristi anonimni FTP za pristup javnim arhivama softvera. Da biste pristupili nekoj takvoj arhivi softvera, upisat ćete riječ anonymous ili ftp umjesto korisničkog imena, a svoju elektroničku adresu umjesto lozinke. FTP dopušta prenošenje datoteka s ili na udaljeno računalo, stvaranje direktorija, brisanje datoteka i druge osnovne operacije s datotekama. Ako ste FTP-om povezani na svoj korisnički račun, sve će vam naredbe biti dostupne. No, ako ste povezani s nekim javnim FTP poslužiteljem, sasvim je očito da vam nije dopušteno bilo kakvo mijenjanje ili brisanje datoteka, već samo uzimanje i, ponekad, slanje datoteka. FTP također omogućava povezivanje na različite portove računala, no rijetko kada se FTP poslužitelj izvršava na portu različitom od uobičajenog (21).
Razvijena je i usluga nazvana Archie, koja vam olakšava pronalaženje datoteka na FTP poslužiteljima u cijelom svijetu. Čak se i njoj može pristupiti preko WWW-a, iako ne neposredno, već pomoću posebnih formulara. O tome više u desetom poglavlju, koje će govoriti o alatima za pretraživanje Weba i nekih drugih sadržaja na Internetu.
Dok se nije pojavio World Wide Web, Gopher je suvereno vladao Internetom. Zamišljen na sveučilištu u Minnesoti, Gopher je sustav koji, baš poput World Wide Weba, omogućava jednostavan pristup dokumentima različitog tipa. Kada se pomoću klijentskog programa povežete s Gopher poslužiteljem (koji se, usput, izvršava na portu 70, iako to nije naročito bitno za korisnike), dočekat će vas izbornik s numeriranim popisom raspoloživih opcija. Tipkanjem brojke ili pomoću kursorskih tipaka ili miša jednostavno odaberete što želite vidjeti. Dokumenti mogu biti razvrstani u podizbornike, a za prikazivanje formata datoteka koje Gopher klijent ne prepoznaje (poput slika ili video zapisa) pozivaju se vanjski programi. Tipičan izgled Gophera možete vidjeti na slici 1-12.
Značaj Gophera je upravo u tome što je bio prvi koji je pokušao ujediniti sve usluge Interneta: opcija u izborniku može biti i najobičniji prikaz tekstualnog dokumenta, ali i povezivanje s FTP poslužiteljem ili udaljenim računalom pomoću Telneta. Tako neiskusnog korisnika zapravo ne zanima kako se pristupa do nekog dokumenta, već se pristup svodi na odabir odgovarajuće stavke. Budući da World Wide Web radi sve to i još više, i to na daleko elegantniji, inteligentniji i za oko ljepši način, Gopher je ispao iz igre. To, međutim, ne znači da će Gopher izumrijeti: World Wide Web pretraživači mogu, kao što ćemo vidjeti u trećem poglavlju i drugom dijelu knjige, pristupati i gopherskim poslužiteljima kojih još uvijek ima mnogo u svijetu, te čitati njihove izbornike. Razvijena je i usluga Veronica, koja se koristi za pretraživanje Gopherovih stabala izbornika.
Posljednjih nekoliko godina, otkako promičemo Internet i aktivno se bavimo njime, odgovarali smo na pitanja mnogih korisnika o mogućnostima Interneta i ponudi dokumenata koji se mogu pronaći na Mreži. Kad bismo nekoga pitali zašto ga zanima pristup Internetu, osim standardnih odgovora “radi elektroničke pošte” i, u zadnje dvije godine, “zbog World Wide Weba”, odgovor “radi pretraživanja baza podataka” obično bi bio među nekoliko prvih. Ljudi iz nekog razloga očekuju da će na Internetu bez problema pronaći informacije o svakoj mogućoj temi. I, makar je sasvim vjerojatno da se na Internetu možete informirati o svemu što vam padne na pamet, do pojave WAIS-a (Wide Area Information Servers) to nije bilo baš jednostavno.
Ruku na srce, nije postalo jednostavno niti nakon pojave WAIS-a. Zamisao je zaista bila jednostavna: omogućiti korisniku da pretražuje baze podataka po različitim temama i pronalazi članke i informacije koje ga zanimaju. Na žalost, WAIS je razvijan u akademskom okruženju gdje nikoga nije previše zanimalo kako stvar izgleda i je li logična za korištenje, pa WAIS nikad nije, iako je vrlo moćan, stekao širu popularnost. Većina korisnika ne snalazi se dobro s njegovim naredbama i logikom razmišljanja. Doduše, razvijeni su grafički klijenti, poput WinWAIS-a (na slici 1-13), no to je i dalje ostala usluga koja je zanimljiva samo uskom krugu ljudi. U međuvremenu su mnoge baze podataka komercijalizirane i možete im pristupati samo nakon pretplate, a razvojem WAIS-a dalje se bavi tvrtka istoga imena, a i kupovanje poslužitelja za WAIS nije mala investicija. Sve to zajedno ne znači da je WAIS beskoristan: sasvim suprotno, zna biti vrlo koristan, ali ga mnogi jednostavno ne koriste jer im se čini “dalek” po svom načinu rada. Pojavom atraktivnijeg i za uporabu jednostavnijeg World Wide Weba i jakih alata za pretraživanje sadržaja dokumenata objavljenih na Webu (poput Lycosa, Alta Viste i Yahooa, predstavljenih u 10. poglavlju), WAIS je još jače potisnut.
Koncepcija mrežnih novina je vrlo slična konferencijama na BBS-ovima, samo što je publika mnogo veća. Novinska grupa je, najkraće rečeno, skupina članaka (poruka) na neku temu. Umjesto da ostane na jednom, lokalnom računalu, neka novinska grupa prenosi se na sva računala u svijetu koja to zatraže. Tako u svijetu postoji veći broj novinskih poslužitelja koji čuvaju mnogo poruka podijeljenih u novinske grupe s vrlo precizno određenim temama. Korisnik pomoću svog računala pristupa udaljenom poslužitelju i čita poruke iz grupe koja ga zanima, te ujedno ima priliku odgovoriti na njih. Novinski poslužitelji u svijetu i po nekoliko puta dnevno međusobno razmjenjuju poruke (ta je razmjena u potpunosti automatizirana), pa su one u pravilu vrlo svježe i dostupne su korisnicima iz svih dijelova svijeta.
Razlika između elektroničke pošte i novinskih grupa vrlo je očita: dok pomoću elektroničke pošte neposredno komunicirate samo s jednom osobom (ili manjom grupom), broj korisnika koji će pročitati vašu poruku na mrežnim novinama nemoguće je procijeniti; potencijalno se radi o cijelom svijetu. Dakle, nema privatnosti, a jedna od očitih prednosti je mogućnost da u vrlo kratkom roku dobijete odgovor na neko svoje pitanje ili mišljenja drugih korisnika. Broj novinskih grupa u svijetu nemoguće je točno utvrditi, jer se sve one ne prenose na sve poslužitelje, no brojka se kreće oko pet tisuća. Mnoge su grupe regionalnog karaktera i u njima se razgovara na lokalnom jeziku (npr. hrvatskom) dok je inače službeni jezik kojim se piše engleski. U slučaju da novinski poslužitelj kojem pristupate ne prenosi grupu koja vas zanima, morate potražiti neki drugi poslužitelj.
Novinske grupe imenuju se po temama i podtemama, tako da je izuzetno lako pronaći onu koja vas zanima. Primjerice, ime grupe comp.os.ms-windows znači da se ona bavi Windowsima općenito, grupa comp.os.ms-windows.setup specijalizirana je za podešavanje Windowsa, a comp.os.ms-windows.announce najavljuje nove aplikacije za taj operativni sustav. Čitači novinskih grupa posjeduju napredne mogućnosti pretraživanja zaglavlja poruka (u kojima piše sažetak teme) i njihovih sadržaja, te su vrlo jednostavni za uporabu. Novinske grupe prenose se mrežom pomoću protokola NNTP (Network News Transport Protocol), a novinski poslužitelji koriste port broj 119 za komunikaciju. Pomoću WWW pretraživača također možete pristupati novinskim grupama, no o tome više u trećem poglavlju.
Postoje još neke Internetove usluge, no spomenuli smo najpopularnije i one do kojih ćete moći pristupiti preko World Wide Weba koristeći upute iz trećeg poglavlja. Nove mrežne usluge svakodnevno se razvijaju, jer to dopušta otvorena koncepcija Interneta: nakon što se napišu klijentski i poslužiteljski program za neku namjenu, te se odredi broj porta, nova je usluga stvorena. Od ostalih poznatijih usluga spomenimo samo one koje se koriste za pronalaženje imena računala i korisnika na Internetu (X.500, Whois i Netfind), te sustav za globalno čavrljanje s drugim korisnicima, IRC (Internet Relay Chat). Tim uslugama ne možete neposredno pristupati preko Weba, iako su razvijena neka sučelja koja omogućavaju pronalaženje elektroničkih adresa korisnika i čavrljanje i preko pretraživačkih programa za Web.
TCP/IP je nevjerojatna skraćenica. Rijetki znaju što ona zapravo znači, ali ih to nimalo ne smeta da žustro i “stručno” pričaju o tom nevjerojatnom “novom” izumu. No, kao što smo već vidjeli u priči o nastanku Interneta, TCP/IP je sve samo ne nov: star je skoro trideset godina, te je od samih početaka bio osnovni protokol ARPAneta, NSFneta i Interneta. TCP/IP nije samo jedan protokol, već cijela skupina protokola za mrežne komunikacije. Protokoli koji čine TCP/IP stalno se nadopunjavaju i mijenjaju da udovolje novim potrebama, a razvijaju se i novi protokoli koji postaju dio paketa TCP/IP. Dakle, jedina stvar koja je sasvim sigurna jest da se na Internetu sve mijenja - i to brzo. Još je stari mudrac dobro rekao panta rhei…
TCP/IP, vidimo, postoji, već odavno, no njegova primjena, osim primjene na računalima povezanim u Internet, bile je dosada prilično ograničena. Lokalne mreže u malim i velikim tvrtkama dosada su se najčešće oslanjale na druge protokole. Međutim, danas, zahvaljujući naglom širenju Interneta, poželjno je da lokalne mreže tvrtki također rade na TCP/IP-u. Time će buduće povezivanje vaše tvrtke s Internetom biti mnogo lakše. Ako planirate lokalne mreže za vašu tvrtku, imajte to na umu. Ako netko drugi projektira vašu mrežu, priupitajte ga postoji li mogućnost nadogradnje na TCP/IP i hoće li vam za to biti potrebna dodatna hardverska ili softverska oprema. Teoretski, vaša lokalna mreža može raditi na nekom drugom protokolu, no tada ćete za povezivanje s Internetom trebati koristiti posebne hardverske uređaje - mostove - koji “posreduju” u komunikaciji TCP/IP-a s vašom mrežom. Danas to više nema smisla; za novu lokalnu mrežu za koju je sasvim vjerojatno da će jednog dana postati dio Interneta, najbolje je odmah usvojiti TCP/IP kao standardni protokol. Mnogi operativni sustavi (poput Windowsa 95, Windowsa NT i OS/2 Warp), te mrežni operativni sustavi (Novell Netware), imaju ga standardno ugrađenog ili se on može dokupiti.
Da konačno otkrijemo tajnu: TCP/IP je ime izvedeno iz imena dvaju osnovnih protokola iz te skupine: TCP-a i IP-a. Za ovog drugog znate da je jednostavno Internet Protocol, dok je TCP Transmission Control Protocol, odnosno protokol za nadziranje prijenosa podataka. Oba se koriste u komunikaciji dvaju računala na Internetu, jer i jedan i drugi imaju svoje određene zadaće.
Ovaj, zadnji odjeljak u ovom poglavlju namijenjen je onima koji žele saznati malo više o načinu rada Interneta i protokolu TCP/IP. Nećemo previše ulaziti u dubinu (o TCP/IP-u su napisane knjižurine koje su i do dva puta deblje od ove naše), ali ćemo dotaknuti neke važnije i zanimljive stvari. Budući da uglavnom nije važan za razumijevanje ostatka knjige, možete sada preskočiti ovaj dio i vratiti mu se kasnije. Prije no što pogledamo kako radi cijeli skup protokola TCP/IP, objasnit ćemo što su to uopće komunikacijski protokoli.
Komunikacijske protokole koje koriste računala najjednostavnije je usporediti s ljudskom komunikacijom. To smo već i učinili na početku priče o mrežnim uslugama, pa ćemo se samo nadovezati na taj primjer.
Tada smo usporedili osnovni komunikacijski protokol s jezikom, i ta usporedba vrijedi i dalje. Osnovni komunikacijski protokol je ono što omogućava prenošenje potrebnih informacija, odnosno razgovor. Da bi se dva čovjeka mogla sporazumjeti, moraju govoriti istim jezikom i razumjeti ga. Jednako tako, dva računala mogu komunicirati samo ako “govore” istim protokolom. Osnovni protokol, “jezik”, koji se na Internetu koristi jest TCP/IP.
Pošto je ispunjen osnovni preduvjet za komunikaciju, a to je poznavanje istog osnovnog komunikacijskog protokola, može se razgovarati o drugim temama. Teme su protokoli “više razine”, a kod Interneta su to razne mrežne usluge, koje smo već predstavili. Recimo, ako želite pozvati kolegicu s posla na pizzu, “protokol više razine” kaže vam da biste je trebali ljubazno zamoliti za izlazak, ali poruku će joj prenijeti osnovni komunikacijski protokol, koji će taj vaš poziv “upakirati” tako da bude razumljiv; konkretno, odabrat ćete jezik koji ona poznaje i nećete koristiti riječi koje su joj sasvim nepoznate.
Ako želite porazgovarati s nekom osobom, procedura koja se gotovo uvijek poštuje je sljedeća:
· Jedna osoba potiče razgovor, na primjer pozdravom. Tom prilikom možda će se osobe morati dogovoriti i koji “komunikacijski protokol”, odnosno jezik, žele koristiti.
· Druga osoba potvrđuje poziv na razgovor i komunikacija je uspostavljena.
· Osobe naizmjenično govore, tj. šalju jedna drugoj informacije. Dok jedna osoba govori, druga sluša i ne prekida. Ako obje govore istovremeno, komunikacija je praktično nemoguća.
· Na kraju, jedna osoba pristojno upućuje poziv za kraj razgovora. Nakon prihvaćanja druge osobe, razgovor je završen.
Ta se procedura, koja sadrži precizno definirana pravila komunikacije, naziva protokolom. U gornjem primjeru dijaloga možete slobodno riječi “prva osoba” zamijeniti s “klijent”, a “druga osoba” s “poslužitelj” i evo vam modela za komuniciranje dvaju računala u klijentsko-poslužiteljskom sustavu.
Naravno, u ljudskoj komunikaciji ovdje ima iznimaka. Ako želite nekoga upozoriti da će mu crijep pasti na glavu, nećete se upoznavati i dogovarati o detaljima, već ćete samo uzviknuti “Pazi, crijep!”. No, međutim, to čovjeka možda neće spasiti: ako vi govorite hrvatski, a on taj jezik ne poznaje, ništa od komunikacije i upozorenja. Možete radije odmah nazvati 94.
Zamislite sada da onu istu kolegicu želite pismeno (ah! kako je to hladno i formalno!) pozvati na pizzu: četiri koraka za komunikaciju neće vam nikako biti dovoljna. Morate uzeti papir i olovku, napisati pismo, staviti ga u omotnicu, adresirati, kupiti i zalijepiti marku, poslati poštom. Nakon što ona primi pismo, mora ga otvoriti, izvaditi iz omotnice i pročitati. (Ako skuplja marke, mora ga još staviti i na paru da bi odlijepila marku.)
Međutim, nas najviše zanima onaj dio “poslati poštom” i što se događa u trenucima između vašeg predavanja pisma na pošti i trenutka kada ga ona prima. Vi ne znate kojim će putem vaše pismo putovati. Vas ne zanima kojim putem ono putuje već je samo bitno da pristigne primateljici u dogledno vrijeme. Iz vaše lokalne pošte ono obično ide u središnju gradsku, pa odande opet do odredišta, po nekoj hijerarhiji poštâ. Prije no što uopće pismo krene iz vaše lokalne pošte, netko u pošti provjerava je li pismo možda namijenjeno istom gradu i treba li ga uopće slati nekoj drugoj regionalnoj pošti. Sličan proces odvija se na svakoj od usputnih pošta, gdje neka službenica, tek da razbije tipičnu predodžbu o službenici koja stalno lakira svoje duge nokte, također razvrstava i usmjerava poštu.
Internet koristi sličan način za slanje paketa s podacima između računala koja su povezana u mrežu. Taj način slanja podataka nazvan je paketno prespajanje (packet switching) i agencija ARPA počela ga je istraživati krajem šezdesetih, da bi konačno svoju primjenu našao u ARPAnetu.
Podaci koji se trebaju poslati udaljenom računalu dijele se u više dijelova. Svaki od paketa s podacima stavlja se u “omotnicu” - protokol TCP/IP - koja sadrži adresu računala i druge podatke neophodne da bi paket stigao do odredišta. Nakon toga, svaki paket samostalno putuje mrežom, pri čemu nikoga ne zanima kojim je putem išao ako je stigao do odredišta. Svaki od čvorova kroz koje paket prolazi odlučuje kamo će ga dalje poslati: taj se postupak naziva usmjeravanje i obično je povjeren posebnim uređajima, usmjernicima (routerima). Budući da su paketi s podacima numerirani, nije važno da stignu na odredište ispravnim redoslijedom, jer ih primatelj može posložiti onako kako treba. Slika 1-14 prikazuje kako radi paketno prespajanje.
Slika 1-14: Paketno prespajanje, osnovni način prenošenja podataka po Internetu
Paketno je prespajanje zgodno i iz još nekoliko razloga. U kombinaciji s drugim načinima prenošenja podataka (npr. s multipleksiranjem, koje omogućava dijeljenje komunikacijskog medija, kabela ili satelitske veze, te se tako jednom vezom istovremeno može prenijeti veći broj paketa), ono omogućava optimalno dijeljenje mrežnih resursa. Svaki čvor kroz koji prolaze paketi može odlučiti kojim će putem poslati podatke prema odredištu na temelju informacija koje ima o propusnostima pojedinih dijelova mreže. Cijepanjem podataka u pakete onemogućeno je monopoliziranje Interneta ili njegovih pojedinih dijelova, a što bi svakako prije ili kasnije nekome palo na pamet da mreža nije ovako zamišljena.
Povrh svega, dijeljenje podataka u pakete praktično je u slučajevima kada dolazi do pogrešaka u prijenosu: ako primatelj primi sve podatke veličine 100 KB odjednom i ustanovi da se negdje nalazi greška, pošiljatelj mora sve ponovno odaslati. Kada su podaci podijeljeni u pakete, primatelj može reći “pošalji mi samo paket broj 47” i zadržati sve ostale koji su ispravno stigli.
Dosta neobičan naslov, ali tu ne možemo ništa. Krivac je Međunarodna organizacija za standardizaciju, ISO (International Standards Organization), koja je osmislila stvar nazvanu OSI - Open Systems Interconnect, odnosno sustav za povezanje otvorenih računalih sustava. Iza te čudne skraćenice OSI krije se priča o modelu mreže koji je zasnovan na sedam strukturiranih razina. OSI bi trebao predstavljati “standardni” i najbolji način za planiranje i izgradnju bilo kakve mreže. Jedno od ključnih svojstava OSI-a jest modularnost i mogućnost da svaku razinu osmislite kako vama odgovara.
|
Aplikacijska razina (application layer) |
|
Prezentacijska razina (presentation layer) |
|
Dijaloška razina (session layer) |
|
Transportna razina (transport layer) |
|
Mrežna razina (network layer) |
|
Podatkovna veza (data link layer) |
|
Fizička razina (physical layer) |
|
Proces/Aplikacija |
|
Komunikacija između dva računala (host-to-host layer) |
|
Mrežna razina |
|
Mrežni pristup (network access) |
Slika 1-15: Sedam razina, sedam “modula” koji čine dobru mrežu, prema OSI specifikaciji. S desne strane, taj model primijenjen je na Internet.
Pogledajte sliku 1-15 koja s lijeve strane prikazuje kako izgleda tih sedam mrežnih razina po OSI standardu. S desne strane na istoj slici vidite kako je OSI model primijenjen u slučaju Interneta. Ukratko ćemo objasniti čemu služe pojedine razine, a nakon toga ćemo pogledati neke od važnijih protokola iz skupine TCP/IP.
· Razina 1: Fizička razina. Najniža, fizička razina je čisti hardver i uključuje sve ono što se koristi za prenošenje podataka mrežom: kablovi, sateliti, optički kablovi, radioveze, mikrovalne veze, mrežne kartice i slično. Na fizičkoj razini, svi ovi uređaji jednostavno rade onako kako su napravljeni i ne bismo se trebali time previše zamarati.
· Razina 2: Podatkovna veza. Ovdje se također događaju dvije stvari, koje nas u načelu ne zanimaju jer na njih nemamo utjecaja, ali one postoje. Na razini podatkovne veze nalazi se sav hardver i softver koji se brine o komunikaciji između dva čvora u mreži. Primjerice, hardver na ovoj razini cijepa podatke koji se šalju mrežom (a primio ih je od viših razina) u pakete i nakon toga ih prosljeđuje razini 1, koja jednostavno prenosi te pakete. Na razini podatkovne veze nalaze se obično i mehanizmi za adresiranje računala.
· Razina 3: Mrežna razina. Ovdje se nalazi prvi protokol iz skupine TCP/IP, a to je protokol IP. On radi na ovoj razini i brine se o tome da dobro adresira pakete, tj. da ih uputi na dobro mjesto. Zatim ih prosljeđuje razini 2. Razina 2 i razina 3 usko surađuju, jer razina 3 također određuje koji je najbolji put za pakete. Bez razine 3, od vaše mreže neće biti ništa jer paketi neće moći nikamo odlaziti.
· Razina 4: Transportna razina. Na ovoj razini u priču uskaču protokoli koju se brinu o tome da podaci na odredište stižu dobrim redoslijedom i bez pogrešaka. Takvi su protokoli TCP i UDP, a oba su dio TCP/IP-a.
· Razina 5: Dijaloška razina. Svi ostali protokoli iz skupine TCP/IP (dakle, s izuzetkom TCP-a, IP-a i UDP-a), rade na razini 5 i većoj. Ova razina uspostavlja vezu (dijalog) s nekim drugim računalom i zadužena je za uspostavljanje veze s drugim računalom, razmjenu podataka i zatvaranje veze prema njemu.
· Razina 6: Prezentacijska razina. Prezentacijska razina obavlja neke predradnje za sljedeću, aplikacijsku razinu. Primjerice, ona može pretvarati datoteke među različitim formatima, načinima kodiranja znakova ili komprimirati i dekomprimirati podatke. To je najmaglovitije definirana razina, pa je ona u praktičnoj primjeni vrlo često objedinjena s aplikacijskom razinom.
· Razina 7: Aplikacijska razina. Ovdje se događaju sve one stvari koje vas zapravo zanimaju: prenošenje elektroničke pošte, prenošenje datoteka, pristup World Wide Webu. Na toj se razini izvršavaju aplikacije za pojedine mrežne usluge. To su “teme razgovora” koje će nižih šest razina uobličiti u format prihvatljiv primatelju i poslati mu ga.
Pogledajte sada još jednom sliku 1-15 i usporedite upravo opisani sedmoslojni model mreže s onim koji se primjenjuje na Internetu (na slici desno). Najniže dvije razine u slučaju Interneta predstavljaju jednu razinu koja se tiče načina pristupa mreži, odnosno načina povezivanja mreže s drugom mrežom. Razina mrežnog pristupa objedinjuje funkcije razina 1 i 2 standardnog OSI modela. Nakon toga, mrežne razine odgovaraju jedna drugoj.
Stepenicu više, vidite da komunikacija između dva računala na Internetu odgovara transportnoj razini (broj 4). Ako ste preskočili ove točkice gore, jer je stvar izgledala dosadna, pogledajte što smo napisali za razinu 4 i vidjet ćete da je tamo zaista spomenut protokol TCP koji podatke prenosi po Internetu između dva računala. Konačno, najviša Internetova razina obuhvaća najviše OSI-eve razine - 5, 6 i 7. Ovdje se izvršavaju svi mrežni procesi i aplikacije, baš kao što smo spomenuli u točkama 5, 6 i 7. I, eto - svi dijelovi slagalice lijepo su se složili.
Sada ćemo ukratko opisati najvažnije protokole koji su uključeni u paket TCP/IP. Ponovno ćemo se vratiti na spomenute mrežne razine, jedino što ih sada imamo samo četiri jer govorimo o Internetu, a ne općenito o mrežama. Protokoli iz skupine TCP/IP rade na svim, osim na najnižoj razini, gdje se nalazi sam hardver i odabrano mrežno rješenje povezivanja računala (ATM, ISDN, telefonska veza, Ethernet itd). Na najvišoj razini izvršavaju se aplikacijski protokoli koji su dio TCP/IP-a, ali i svi ostali aplikacijski protokoli koji nisu dio te skupine protokola, poput HTTP-a za pristup World Wide Web poslužiteljima ili, recimo, IRC-a za globalno čavrljanje s drugim korisnicima.
|
Proces/Aplikacija |
|
Komunikacija između dva računala |
|
Mrežna razina |
|
Mrežni pristup |
|
FTP Telnet SMTP TFTP DNS SNMP NFS Drugi aplikacijski protokoli |
|
TCP UDP |
|
ARP RARP IP (ICMP) |
|
Fizički načini povezivanja (telefonska linija, modem, ISDN, ATM, Frame Relay, Ethernet…) |
Slika 1-16: TCP/IP protokoli koji se izvršavaju na pojedinim razinama
Protokol IP odgovoran je za osnovno povezivanje računala. Osnovni dio IP-a rukuje s mrežnim adresama, o kojima smo govorili ranije u ovom poglavlju. Svako računalo na Internetu ima svoju numeričku adresu, a protokol IP “zna” kako slati poruke (pakete s podacima) na tako adresirana računala.
Slika 1-17: Zaglavlje IP paketa i podaci sadržani u njemu
Zaglavlje IP paketa sastoji se od najmanje pet 32-bitnih riječi (slika 1-17). Paketi koje stvara IP često se nazivaju datagramima i sadrže podosta identifikacijskih podataka:
· verziju zaglavlja,
· tip usluge i zahtjeve za posebnim rukovanjem (hitno, veći prioritet, normalno…),
· duljinu zaglavlja (najmanje 5 riječi od 32 bita),
· ukupnu duljinu paketa, zajedno s ovim zaglavljem i podacima koji slijede,
· identifikacijsku oznaku koja će pomoći da se dijelovi (fragmenti) paketa nakon primanja poredaju ispravnim redoslijedom,
· zastavice koje označavaju je li paket bio dijeljen na fragmente i je li trenutni fragment posljednji ili ih ima još,
· numerički redoslijed trenutnog fragmenta u cijelom paketu,
· vrijeme “preživljavanja” (prilikom svakog prolaska kroz neki mrežni čvor, ova se vrijednost smanjuje za 1; ako dođe do nule, znači da se paket ne može isporučiti),
· oznaku protokola više razine koji podatke prenosi mrežom (npr. FTP, Telnet, HTTP),
· kontrolni zbroj za provjeru ispravnosti zaglavlja,
· IP adresu pošiljatelja i primatelja.
Ukupna veličina jednog datagrama nije određena, ali se preporučuje da bude najmanje 576 bajtova, iako bi teoretski mogla biti i do 65536 bajtova. Najčešće se koristi vrijednost 576, koja je preporučena mnogim standardima, te bi sva računala na Internetu trebala biti spremna prihvatiti paket te veličine. Nakon IP zaglavlja, slijedi podatkovni dio datagrama.
Ono što IP ne zna raditi jest brinuti se o tome da paketi zaista i dođu tamo kamo trebaju, da dođu bez pogrešaka i onako kako su poslani. Baš ga briga ako se paketi izgube ili uopće svi ne stignu: on će pokušati isporučiti sve što su mu dali, ali ako ne ide - onda ništa. To vam je kao kad bi poštar bacio preporučena pisma, koja ne može isporučiti, u koš za smeće bez da obavijesti pošiljatelja. (Izraelski humorist Ephraim Kishon u jednoj se pripovijetki zezao na račun izraelske pošte, pa je pretpostavio da pisma putuju tjednima zato što svaki poštar, kad mu je dosta raznošenja pisama, potraži najbliži poštanski sandučić i istrese sadržaj svoje vreće u njega.) Zato postoji sljedeći protokol, TCP, koji će se pobrinuti da paketi nakon pristizanja budu poredani dobrim redoslijedom, da ne sadrže pogreške i da svi stignu.
TCP će se pobrinuti da podaci stignu na ispravno mjesto na mreži, da budu ispravno preneseni i da, ako su podaci bili dijeljeni u više paketa, ti podaci budu ispravno rekonstruirani iz dijelova paketa nakon primanja. Dakle, provjera ispravnosti i numeriranje paketa dva su najvažnija svojstva TCP-a. TCP koristi protokol IP da bi prenosio podatke mrežom; dakle, TCP je na višoj razini od IP-a (a to se vidi i sa slike 1-16). Nakon što IP prenese podatke, u igru uskače TCP. Pomoću njega komuniciraju dva računala koja su tako razmijenila pakete.
Evo kako TCP radi u kombinaciji s IP-om. Prvo, TCP od neke aplikacije ili protokola više razine dobiva niz podataka koji treba odaslati na neko drugo mjesto na mreži. TCP zatim može razlomiti taj niz podataka u pakete koji odgovaraju najvećoj dopuštenoj veličini datagrama koje koristi protokol IP (slika 1-17), a to je obično oko 64 KB. Nakon toga, IP može pakete ponovno fragmentirati kako bi ih prilagodio duljini datagrama koja se koristi na mreži (to može biti spomenutih 576 bajtova ili više) i mrežnim uvjetima. Konačno, takvi fragmentirani paketi šalju se do drugog računala, na kojemu IP ponovno iz primljenih datagrama stvara početni TCP-ov paket, a TCP iz njega izdvaja informacije koje proslijeđuje protokolu više razine, s kojim se zapravo i komunicira.
Zaglavlje TCP paketa prikazano je na slici 1-18 i također sadrži nekoliko zanimljivih i neophodnih informacija:
Slika 1-18: Zaglavlje TCP paketa
· port s kojega podaci dolaze i odredišni port; sada, pošto već znate kako radi protokol TCP, možemo portove jednostavno definirati kao način komunikacije između protokola TCP i određene mrežne usluge,
· mjesto od kojega u originalnom nizu s podacima od kojega počinju podaci koji kasnije slijede u TCP-ovom paketu (sequence number); to vam je kao kada s ARJ-om rastavite arhivu na više dijelova, pa na početku svake arhive ARJ “zna” od kojeg se bajta nastavlja neka datoteka,
· mjesto od kojega se treba nastaviti sljedeći paket (acknowledgment number),
· broj 32-bitnih riječi u zaglavlju TCP paketa,
· šest kontrolnih bitova (hitno slanje, potvrda primitka, resetiranje veze, sinkronizacija i slične “tehničke” stvari),
· broj bajtova koji se mogu primiti odjednom,
· kontrolni zbroj koji se koristi za provjeru ispravnosti TCP zaglavlja i podataka koji slijede,
· razne opcije i popunjavanje nulama, kako bi veličina TCP zaglavlja u bitovima bila višekrekratnik broja 32 (tj. kako bi se slao cijeli broj 32-bitnih riječi).
Nakon TCP zaglavlja, slijede i sami podaci. Teoretski, mogli biste imati TCP bez IP-a, jer bi se neki drugi protokol ili kombinacija hardvera i softvera mogla koristiti za prenošenje podataka mrežom umjesto IP-a, ali TCP se u praksi uvijek koristi zajedno s IP-om.
Ako se sjećate priče o portovima ranije u ovom poglavlju, vjerojatno se sjećate da su se tamo spominjala dva protokola: TCP i UDP. TCP smo već opisali; to je pouzdani protokol za prenošenje podataka mrežom. Nekada vam, ipak, nije potrebno da se nešto pouzdano prenese, već brzo i bez suvišnog petljanja sa svim kontrolnim informacijama, čega je - mora se priznati - kod TCP-a bilo podosta. Zato neke mrežne usluge radije koriste protokol UDP umjesto TCP-a. UDP nema baš nikakve mogućnosti provjere pogreške ili numeriranja redoslijeda paketa, pa će takve informacije morati stvarati sama aplikacija koja se koristi UDP-om. Mada biste se sada mogli upitati čemu može poslužiti UDP, evo nekoliko primjera: može se koristiti kada nije potrebna potvrda primitka ili kada aplikacije same vode brigu o ispravnosti podataka koje razmjenjuju. Konačno, nemojte zaboraviti niti na činjenicu da je zaglavlje UDP-a (pogledajte sliku 1-19) mnogo kraće od onoga koje stvara TCP. Ako se podaci između dva računala razmjenjuju samo povremeno i u nejednakim intervalima, TCP stvara previše “viškova” koji se prenose mrežom, pa bi u takvom slučaju UDP bio mnogo bolje rješenje.
Slika 1-19: Zaglavlje protokola UDP mnogo je kraće od TCP-ovog, pa on upravo zbog toga nalazi svoje primjene
Budući da IP nema ugrađena nikakva svojstva za otkrivanje pogrešaka, zbog toga potencijalno može doći do mnogih problema. Zato je razvijen protokol ICMP. Iako se njegovi podaci ne prenose u zaglavlju IP paketa, već u njegovom podatkovnom dijelu, ICMP je sastavni dio protokola IP (pogledajte opet sliku 1-16). ICMP može otkriti probleme poput nemogućnosti pristupa računalu, nemogućnosti isporuke paketa (datagrama) u nekom određenom vremenu i slične.
ARP je usko povezan s IP-om: nakon što znate adresu računala kojemu treba poslati podatke, a IP je zna, ARP-ova je dužnost da pronađe udaljeno računalo na mreži. Ako ste sada shvatili da ovo ima mnogo veze s DNS-ovima koje smo objasnili kad smo govorili o mrežnim adresama - čestitamo, u pravu ste, pažljivo čitate našu knjigu…
Ako znate samo koje računalo vam nešto šalje, a željeli biste znati i njegovu IP adresu, RARP je ovdje da vam pomogne. Ponovno, sličnost s obrnutim DNS pretraživanjem (reverse lookup) je upravo zapanjujuća.
To je protokol koji se koristi za preusmjeravanje paketa mrežom. On uvijek zna odredišnu IP adresu, zbroj potrebnih koraka mrežom za prenošenje paketa do nje, IP adresu sljedećeg usmjernika (čvora, routera) na putu do odredišta, te vrijeme koje je paket proveo na putu.
Teško je povjerovati da postoji protokol koji nema “protocol” u imenu - pa ipak: ovo je još jedan protokol za usmjeravanje podataka mrežom. Ima određenih prednosti nad RIP-om; primjerice, zahvaljujući načinu rada, manje “zagušuje” mrežu jer hardverski uređaji - usmjernici - manje međusobno komuniciraju i ta je komunikacija rjeđa. No, ipak, detaljnija diskusija ovog protokola, kao ni RIP-a, ne bi nas trebala zanimati u ovoj knjizi.
Njega smo već spominjali. To je protokol koji prenosi binarne ili tekstualne datoteke mrežom. Također, to je i osnovna mrežna usluga. Posljednje, ali ne najmanje važno, to je i ime programa koji se koristi za prenošenje datoteka.
Ovo je skresana verzija FTP-a, slično kao što bismo za UDP mogli reći da je skresana verzija TCP-a. Usporedba nije niti tako bezvezna, jer TFTP koristi upravo UDP za prenošenje podataka mrežom. Budući da nema nikakvih sigurnosnih opcija, korištenje TFTP-a na mreži je prilično riskantno i većina administratora ga je onemogućila. Danas se najčešće koristi u lokalnim mrežama kada, primjerice, jedna radna stanica treba prilikom uključivanja prenijeti dio operativnog sustava s poslužitelja u svoju memoriju. Protokol je mali i zato je praktičan za takve primjene.
SMTP prenosi elektroničku poštu između računala zasnovanih na Unixu. Programi koji koriste SMTP za isporučivanje elektroničke pošte nazivaju se još jednom ružnom troslovnom skraćenicom, MTA, što bi trebalo značiti Mail Transfer Agent, ili “program koji jednostavno prenosi poštu”. Najpoznatiji za Unix je svakako sendmail; već smo ga spomenuli kad smo govorili o mrežnim uslugama. S druge strane, programi koji pristupaju e-mailu s korisničke strane nazivaju se UA, ili - pretpostavljate - User Agent. Oni najčešće koriste neke druge protokole za preuzimanje i čitanje elektroničke pošte, poput protokola POP3 (Post Office Protocol 3) koji nije dio TCP/IP paketa.
SMTP je razvijen za prenošenje 7-bitnih ASCII znakova: tamo u šezdesetim i sedamdesetim nitko nije razmišljao o slici, zvuku i multimediji. No, uz pomoć posebnih kodiranja i MIME standarda, o kojemu ćete više saznati u 3. poglavlju, a koji je značajan i za rad World Wide Weba, omogućeno je slanje i prenošenje poruka koje se ne sastoje od čistog teksta.
Ovaj protokol jednostavno usklađuje vremena na računalima koja su povezana u mrežu. Ako se pitate kako to radi, sjetite se jedne pričice o portu broj 13 i porta broj 37 iz jedne tablice…
Ovaj protokol prenosi članke (poruke) iz novinskih grupa među novinskim poslužiteljima i između novinskog poslužitelja i klijentskog programa za pristup novinskim grupama. To je dosta složen protokol, jer se moraju razmjenjivati samo najnoviji članci koji još nisu razmijenjeni, a osim toga treba pripaziti i na to koja poruka je odgovor na neku raniju poruku i treba li se uopće neka poruka prenositi na neki drugi poslužitelj (npr. izvan organizacije, grada ili zemlje).
DHCP je inteligentna nadgradnja IP-a, jer omogućava jednu zgodnu stvar. Naime, nije potrebno da svako računalo u mreži ima svoju fiksnu IP adresu. Umjesto toga, jednom DHCP poslužitelju, primjerice onom u vašoj tvrtki, dodjeljuje se zbirka IP adresa koje može slobodno dodjeljivati računalima u toj mreži. Na taj način, kada neko računalo (klijent) želi koristiti neku mrežnu uslugu, prvo od DHCP poslužitelja traži da mu dodijeli IP adresu, a zatim je koristi. Ovo je dosta praktično rješenje jer nije potrebno da sva računala imaju fiksne adrese, a djelomično se rješavaju i problemi s najvećim mogućim brojem računala u nekoj mreži, koje smo spomenuli kad smo govorili o mrežnim adresama. Operativni sustavi poput Windowsa NT 4.0 Server uključuju podršku za DHCP dodjeljivanje adresa.
Slika 1-20: Prikaz rada protokola DHCP
Ovaj je protokol zanimljiv uglavnom samo osobama koje održavaju neku mrežu, a obično ih nazivamo administratorima ili, onako od milja, sistemcima. SNMP omogućava prikupljanje informacija o radu mrežnih uređaja, usmjernika, mostova, računala i sveg ostalog hardvera. Primjerice, administrator može, koristeći SNMP, sa svog računala saznati kakvo je opterećenje nekog poslužitelja, ili ga taj poslužitelj može sam upozoriti kada opterećenost prijeđe neku kritičnu vrijednost. SNMP zapravo nije ovisan o protokolu TCP/IP, već se vrlo često izvršava i nad drugim osnovnim komunikacijskim protokolima, poput Novellovog IPX/SPX u Netware mrežama. U slučaju kada radi s TCP/IP-om, koristi protokol UDP za komuniciranje među računalima.
NFS omogućava dijeljenje datoteka na mreži i jedan je od zanimljivijih protokola, posebno za lokalne mreže u nekoj tvrtki. NFS poslužitelj može dozvoliti NSF klijentima da koriste dio njegovog stabla s direktorijima i datoteke koje se nalaze u njima. Primjerice, korisnici DOS-a vidjet će takav direktorij samo kao novi disk. NFS je vrlo pouzdan, fleksibilan i često korišten. Zbog učinkovitosti komunikaciju obavlja preko protokola UDP, ali sam ima ugrađena dodatna svojstva za povećavanje pouzdanosti. Razvila ga je tvrtka Sun.
Savjet
Pogledajte spomenute RFC dokumente, koji se nalaze i na CD-u uz ovu knjigu. U njima ćete pronaći mnogo informacija o svim protokolima (pa čak i o onima koji još nisu prihvaćeni) i vrlo detaljne opise njihova rada.
Ovo je kraj općenite priče o Internetu, adresama, mrežnim uslugama i protokolima. U sljedećem poglavlju pogledat ćemo nekoliko najčešćih scenarija za povezivanje vašeg računala s Internetom, ovisno o tome jeste li privatni korisnik koji će koristiti modem ili tvrtka koja želi svoju lokalnu mrežu povezati na Internet. Nakon toga, bacit ćemo se na intenzivno proučavanje glavne teme naše knjige - World Wide Weba.