RM1p1
1. Mrežni sustavi: pojmovi i načela
U ovom poglavlju iznijeti su temeljni elementi i načela rada računalnih mreža. Pritom se u prikazima raznih elemenata govori o njihovim funkcijskim osobinama, više nego o podrobnostima njihove tehničke realizacije. Poglavlje počinje s opisom metode klijent-server, koju ilustriramo na primjeru traženja i nalaženja jedne web stranice. Zatim govorimo o čvorovima, vezama i putovima, o metodama prijenosa podataka i o tvorbi sastavljene mreže. Dijeljenje resursa je jedan od temeljnih načina rada u računalnim sustavima; u računalnim mrežama je takav način rada izrazito prisutan. U četvrtom odjeljku govorimo o "arhitekturi" računalne mreže, odnosno o slojevima i protokolima koji definiraju strukturu mrežnih čvorova, a time i strukturu računalne mreže koja se sastoji od takvih čvorova. Ovdje govorimo i o inkapsulaciji, kao metodi višestrukog "pakiranja" sadržaja koji se prenose računalnom mrežom. Slijede prikazi OSI modela i Internet (TCP/IP) modela, kao dvaju dominantnih modela strukture mrežnih čvorova, odnosno računalnih mreža. Prvi od tih modela je rezultat teorijskog oblikovanja strukture mrežnih čvorova (i mreže), dok drugi model opisuje strukturu čvorova u sastavljenoj mreži Internet, koja je razvijena uglavnom praktičkim radom na razvoju jednog računalnog komunikacijskog sustava. U zadnjem odjeljku dan je prikaz još nekoliko temeljnih pojmova iz prostora računalnih mreža, kao što su propusnost, širina frekventnog pojasa, zadržavanje, otkrivanje grešaka u prijenosu podataka i pouzdanost prijenosa podataka.
1
1.1 Klijent i opslužitelj Mnogi procesi u računalnim sustavima odvijaju se prema metodi klijent-server (clientserver). Klijenti i serveri su obično softverski sustavi (programi). Klijent je sustav koji šalje neki zahtjev serveru, a server je sustav koji izvršava taj zahtjev; pritom, server obično predaje klijentu rezultat izvršenja njegova zahtjeva, ali ne mora uvijek biti tako. Naprimjer, ako web preglednik (browser) kao klijent, traži neku web stranicu od web servera, onda server dostavlja tu stranicu klijentu. Međutim, u situaciji kad neki klijent traži od servera koji upravlja bazom podataka, da izvrši upis nekih sadržaja (podataka) u bazu, onda se rezultat izvršenja tog zahtjeva ne šalje klijentu; server tada klijentu obično šalje obavijest o izvršenju tražene operacije. Pojam klijent (client) se obično ne prevodi, pa onda nije neophodno prevoditi ni pojam server. Inače, taj pojam može se prevesti sa opslužitelj, jer server opslužuje klijente u smislu u kojem opskrbljivači (robama i uslugama) opskrbljuju svoje klijente. Pojam "poslužitelj" nije dobar, ali je postao široko poznat i korišten; čini se da ono što nije dobro, izgleda nekako privlačnije. U ovom tekstu koristiti ćemo pojam opslužitelj, ali ćemo isto tako koristiti i pojam server. Softverskim sustavom nazvali smo ono što se obično naziva "programom". Softverski (ili programski) sustavi se obično sastoje od više programa, pa i od više tisuća programa. Svaki od tih programa obavlja neke specifične operacije, pri čemu često poziva (pokreće) druge programe. U načelu, moguće je svaki softverski sustav (poput uređivača teksta) zvati "programom"; ali u praksi, to je redovito sustav programa, koji ima osobine mrežne i hijerarhijske strukture. Objašnjenja koja ovdje iznosimo, često ne sadrže sve ono što bi jedan potpun opis nekog entiteta trebao sadržavati. Ovdje iznosimo ono što je relevantno za prikaz entiteta kojeg opisujemo, ali svaki takav opis mora negdje stati, a mora i izostaviti neke pojedinisti. Naprimjer, rekli smo da su klijent i server obično softverski sustavi; u nekim sustavima, klijent i server mogu biti realizirani hardverski, ali to ovdje nije bitno, tako da se tim stvarima ovdje ne bavimo. Dakle, objašnjenja koja ovdje iznosimo, trebala bi biti točna u smislu onog što ta objašnjenja kazuju; ali ta objašnjenja su često (i neizbježno) nepotpuna u smislu da neke stvari nisu rečene. Ilustrirajmo način rada prema metodi klijent-server na primjeru web preglednika koji treba prikazati neku web stranicu na ekranu korisnika koji želi vidjeti tu stranicu. Web preglednik je ovdje klijent, koji od web servera traži da mu dostavi kopije onih datoteka (HTML i drugih) koje su potrebne da bi preglednik iz njih sastavio traženu web stranicu. Na slici 1.1 prikazani su osnovni elementi mrežnog sustava, koji sudjeluju u realizaciji te operacije.
WSj
WSi
Di
Globalna mreža (sa DNS)
Dj
K WP
Slika 1.1 Klijent i opslužitelj 2
Klijentom smo nazvali web preglednik (WP) koji radi na osobnom računalu korisnika (K), koje je vezano na domaćina Di. Često se i računalo K naziva klijentom domaćina Di, jer su procesi koji se izvode na računalu K često klijenti od servera koji se nalaze na domaćinu Di, ali valja razlikovati računala od procesa (softvera) koji se izvode na njima. Neki klijentski procesi na K rade sa serverima na Di, ali neki klijentski procesi na K rade (i) sa serverima koji se nalaze na drugim (udaljenim) domaćinima Dj. Uzmimo da korisnik računala K želi vidjeti web stranicu koja se nalazi na web adresi http://inf.uniri.hr/~mradovan/index.html. Da bi to učinio, korisnik pokreće na svom računalu K softverski sustav (program, alat) nazvan preglednik (browser), koji traži web stranice na zadanim web adresama i vrši prikaz njihovog sadržaja na ekranu korisnika (klijenta). Inače, "to browse" znači "pasti (travu)" ili "brstiti", ali u figurativnom smislu znači "prelistavati" novine, letimično pregledati (pročitati), i slično. Da bi izvršio traženu operaciju, pregledniku treba dati adresu web stranice koju želimo da nađe i prikaže. Pogledajmo najprije strukturu onog što smo iznad nazvali web adresom. Zvanični naziv te adrese je Uniform Resource Locator (URL); nazivi često nisu naročito sretno odabrani; čini se da "uniform" ovdje znači da je struktura te adrese "uniformna" u smislu da sve web (URL) adrese imaju istu osnovnu strukturu. "Resource" bi se moglo odnositi na web stranicu koju tražimo, jer ona je onaj "resurs" kojeg tražimo; "locator" bi moglo značiti da ta adresa "locira" mjesto (domaćina, datoteku) na kojem se nalazi tražena web stranica (HTML datoteka). Prijenos kopije dane web stranice na preglednik počinje od datoteke koja je navedena u URL adresi, ali može uključivati i prenošenje drugih datoteka. Objasnimo strukturu URL (web) adrese na primjeru adrese koju smo naveli iznad: http://inf.uniri.hr/~mradovan/index.html - http - oznaka HTTP protokola (o protokolima govorimo kasnije). Taj protokol definira jezik i procese komuniciranja između web preglednika i web servera; time ujedno određuje osnovne funkcije i operacije web servera i web preglednika. Dakle, oznaka "http" određuje da se ova adresa odnosi na web sustav i da taj posao treba biti upućen (predan) odgovarajućem web serveru. - :// - čini se da ti znakovi samo razdvajaju oznaku protokola (http) od Internet adrese domaćina i adrese datoteke na tom domaćinu. - inf.uniri.hr - mnemoničko (tekstualno) ime domaćina (mrežnog čvora) na kojem se nalazi tražena web stranica; ta stranica (HTML datoteka) pohranjena je u sustavu datoteka kojim upravlja web server na tom domaćinu. Spomenimo da web stranice (HTML datoteke) često nisu izravno pohranjene, nego se dinamički generiraju u trenutku kad su tražene, ali to ovdje nije bitno. - /~mradovan/index.html - put do tražene HTML datoteke index.html na danom domaćinu; prvi dio je ime direktorija, a drugi dio je ime tražene HTML datoteke. Web stranica se općenito oblikuje na temelju zapisa (sadržaja, naredbi) iz jedne polazne datoteke. Tu datoteku naziva se HTML datotekom, a za njen sadržaj kaže se da je zapisan pomoću HTML jezika. "HTML" je kratica od HyperText Markup Language. Nazivi često ne kazuju puno, tako da ih često nema smisla prevoditi. Hiper-tekst bi valjda trebalo biti nešto "više od teksta"; u stvari, HTML jezik/uređivač omogućava da se u web stranicu ugrade razni sadržaji, poput slika i zvuka. Rječnik od Britannica navodi dva značenja za pojam "markup", ali nijedno od njih nije primjereno onome o čemu ovdje govorimo; "to mark", inače znači "označiti". HTML je zapravo jedan jezik za uređivanje (slaganje) informacijskih sadržaja raznih vrsta. Pritom su ti sadržaji obično zapisani u zasebne datoteke; polazna HTML datoteka (jedne web stranice) određuje koji sadržaji (datoteke) su potrebni za tvorbu jedne web stranice, i kako ti sadržaji trebaju biti uređeni (složeni) na danoj web stranici. Dakle, jedna web stranica je obično proizvod sadržaja većeg broja datoteka. Osnovu jedne web stranice čini odgovarajuća HTML datoteka, čiji zapisi određuju koji sadržaji (datoteke) čine 3
jednu web stranicu i kako su ti sadržaji smješteni na toj web stranici. Ti sadržaji mogu biti zapisani u zasebne datoteke koje sadrže digitalne zapise slika ili zvuka, kao i programe (poput Java apleta). Da bi preglednik (kao klijent) mogao prikazati traženu web stranicu, "pozvani" server treba mu dostaviti osnovnu HTML datoteku te web stranice, kao i sve one datoteke (sa zapisima slika i drugih sadržaja) čiji sadržaji čine dio tražene web stranice. Spomenimo ovdje da web preglednik i server spadaju u sustave aplikacijske razine mrežnog sustava; o sustavima te razine biti će više riječi u kasnijim poglavljima. Nadalje, postoje uređivači (editori) koji omogućuju izradu web stranica (HTML datoteka) na sličan način kako uređivači teksta omogućuju tvorbu i oblikovanje tekstualnih sadržaja. Takve HTML datoteke pohranjuju se na servere (sa svojim URL adresama), gdje onda "čekaju" da ih neki preglednik potraži ("pozove"). Preglednik kojem je zadana adresa web stranice, radi na računalu K koje je vezano na mrežu preko domaćina Di, tako da se njegova komunikacija s mrežom odvija "preko" tog domaćina. Datoteke koje tvore traženu web stranicu nalaze se na udaljenom domaćinu Dj. Moglo bi se očekivati da preglednik WP preda URL adresu "svom" web serveru WSi (na Di) i prepusti tom serveru da "dobavi" traženu web stranicu (datoteke) od svog kolege WSj koji radi na domaćinu Dj. Međutim, u literaturi je rečeno da preglednik WP sam uspostavlja komunikaciju sa udaljenim serverom WSj na domaćinu Dj. Pritom, uspostava veze i prijenos sadržaja jedne web stranice može iziskivati uspostavu više drugih veza u mrežnom sustavu, kao i razmjenu većeg broja poruka i datoteka, kako je to opisano iznad. Za dobavu jedne web stranice potrebno je najprije zamijeniti tekstualni naziv (adresu) domaćina Dj na kojem se ta stranica nalazi, sa binarnom adresom (IP adresom) toga domaćina. IP adresa (u IP verziji 4) ima 32 bita; ta adresa prikazuje se sa četiri broja dekadskog sustava, pri čemu su ti brojevi međusobno odvojeni (ili spojeni) točkama. Svaki od tih brojeva prikazuje (redom) dekadsku vrijednost od jednog 8-bitnog dijela IP adrese. Takav zapis jedne IP adrese izgleda ovako: 126.211.82.156. Posao pretvaranja tekstualne adrese u numeričku (binarnu) IP adresu izvodi sustav imena domena (Domain Name System - DNS) o kojem govorimo kasnije. To pretvaranje može iziskivati uspostavu većeg broja veza u mreži, zavisno od adrese. Kad na temelju dane tekstualne adrese domaćina (iz URL), sustav DNS nađe binarnu adresu toga domaćina, preglednik uspostavlja TCP vezu sa web serverom na tom domaćinu na kojem se nalazi tražena web stranica (o TCP vezi govorimo kasnije). Preglednik zatim šalje tom vezom svoj zahtjev serveru, koji na to dostavlja pregledniku (kao klijentu) tražene sadržaje. Svaki od tih koraka iziskuje razmjenu više poruka između klijenta i servera; sam raskid veze (po završetku prijenosa) iziskuje da se razmjene četiri poruke. Po primitku traženih datoteka, preglednik prikazuje na ekranu web stranicu koja je određena (proizvedena) sadržajima tih datoteka. Preglednik obično počinje sa prikazivanjem web stranice prije nego primi sav njen sadržaj, ali ne može dovršiti prikaz bez da primi sav sadržaj. Web stranice obično sadrže veze (links) na druge web stranice. Pritiskom tipke miša ("klikom") na takvu vezu, pregledniku se daje zahtjev da donese novu web stranicu, sa adrese na koju pokazuje ta veza; time se pokreće novi proces uspostave komunikacije sa nekim (drugim) udaljenim serverom i prijenosa sadržaja; taj proces jednak je onome kojeg smo opisali iznad. Pored web sustava, računalne mreže (Internet) nude brojne druge mogućnosti prijenosa informacijskih sadržaja. Taj prijenos se u pravilu odvija prema metodi klijent-server, ali svaka od mrežnih komunikacija (usluga) ima svoje specifičnosti. Kod računalne pošte, poruke se pišu i čitaju pomoću klijentskih programa, a o njihovom prijenosu mrežom i isporuci primateljima vode računa serveri za računalnu poštu, koji rade na domaćinima. Video (filmski) i zvučni zapisi mogu se prenositi mrežom isto kao i web stranice. Kada su zapisani u digitalnom obliku, svi informacijski sadržaji postaju u osnovi jednaki sa stanovišta njihovog prijenosa mrežom, ali prijenos svake vrste sadržaja ima svoje specifičnosti. Prijenos "pokretnih slika" je općenito tehnološki zahtjevniji od prijenosa statičkih web stranica, iz više razloga. Prvo, kod izravnog prijenosa događaja (koji se upravo odvija), potrebno je imati vezu 4
dovoljne propusnosti (throughput) koja omogućava prijenos dovoljnog broja snimki u sekundi. Kod prijenosa snimljenih događaja (filmova), kada propusnost veze nije dovoljna za izravno gledanje filma, onda se najprije prenese dio filma sa servera na stroj klijenta, a zatim se može početi s njegovim prikazivanjem. Pritom dio filma koji je prenijet na stroj klijenta treba biti dovoljno velik da veza uspije prenijeti ostatak filma prije nego taj dio dođe na red za prikazivanje. Drugim riječima, na početku se stvori određena zaliha sadržaja; dok se ta zaliha troši, mrežom se donose novi sadržaji; zaliha treba biti dovoljna da potrošnja sadržaja (prikaz na ekranu), uz raspoloživi dotok novih sadržaja, ne dovede do toga da se nema što prikazati. Najsigurniji način gledanja filma je taj, da se sav sadržaj filma kopira s mreže na računalo klijenta, a zatim počne s njegovim prikazivanjem, ali obično nije potrebno odgađati početak prikazivanja filma toliko dugo. Kopiranje postojećih video zapisa s mreže (web sjedišta) naziva se video-na-zahtjev (video-on-demand). Preuzimanje nekog video sadržaja s mreže i njegovo izravno prikazivanje, naziva se streaming ("stream" znači tok, vodena struja, i slično); dakle, sadržaji "dotiču" poput toka vode i odmah se troše (prikazuju). Metoda rada streaming koristi se kod izravnog prijenosa događaja koji se upravo odvijaju. Uz određeno kašnjenje u prikazu, i kod streaminga se može održavati određena zaliha sadržaja na stroju klijenta, ali ta zaliha je vrlo mala. Zato je za uspješan prijenos sadržaja metodom streaming, neophodno da veza ima određenu propusnost koju taj prijenos iziskuje. Izrazito veliku propusnost veza obično iziskuje telekonferencija, koja omogućava da međusobno udaljeni učesnici takve konferencije izravno vide i čuju jedni druge. Svaki učesnik konferencije snima se (slika i zvuk) i te snimke šalju se svim učesnicima konferencije. Učesnik ovdje ne mora biti pojedinac, nego može biti skupina ljudi koju snima jedna kamera. Kod takve konferencije potrebno je ostvariti prijenos video i zvučnih sadržaja od svakog učesnika konferencije do svih ostalih učesnika te konferencije. S porastom broja učesnika - točnije, broja kamera čije se snimke prenose - općenito raste količina sadržaja (prometa) koji se prenosi u toj komunikaciji, ali taj porast ne mora biti velik (linearan ili još veći). Naime, kod komunikacija u kojima sudjeluje više izvora i odredišta, koristi se multicast način prijenosa, o kojem govorimo kasnije. Spomenimo samo da kod takvog načina rada, izvor šalje jedan primjerak paketa podataka, bez obzira na broj primatelja toga paketa; prijenosni sustav (usmjerivači) pravi kopije takvih paketa (koji su upućeni na neku multicast adresu) i dostavlja po jednu kopiju svakog paketa u svaku fizičku mrežu u kojoj se nalazi neki domaćin koji je član dane multicast adrese, odnosno grupe. Ako propusnost kod video prijenosa nije dovoljna, onda se snimke komprimiraju (smanjuje se broj boja) i smanjuje se broj snimki u sekundi; pritom, prijenos zvuka treba sačuvati, čak i kad se snimka sasvim zaustavi (smrzne). Telekonferencija treba omogućiti komunikaciju bez znatnijeg kašnjenja (zadržavanja), tako da učesnici mogu promptno reagirati na govor i postupke drugih učesnika; u suprotnom, to ne bi bila konferencija. O sustavima (uslugama, servisima) aplikacijske razine računalne mreže govorimo u poglavlju o aplikacijskoj razini mrežnog sustava, u predmetu (i knjizi) "Računalne mreže (2)". U ovom odjeljku opisali smo samo metodu rada klijent-server.
1.2 Čvorovi, veze i putovi Dobra definicija računalne mreže nije jako važna za uspješan rad računalne mreže, a takvu definicinu nije ni lako oblikovati. Recimo ovako: računalna mreža je sustav koji omogućava prijenos informacijskih sadržaja između dvaju ili više samostalnih računala. Za govor o mreži poželjno je da sustav sadrži više računala (ne samo dva); međutim, nema osnove za to da se mrežu definira počevši od nekog većeg broja računala, tako da moramo početi od minimalnog broja koji je potreban za prijenos sadržaja, a to znači od dva računala. Računala koja su uključena u mrežu nazivano čvorovima mreže. Čvorove dijelimo na dvije osnovne vrste i to prema njihovim ulogama, odnosno prema vrstama poslova koje obavljaju. 5
Računala na kojima rade serveri i na koje se izravno vezuju klijenti (korisnici), nazivamo domaćinima (hosts). Domaćine međusobno povezuje sustav čvorova i veza, koji ostvaruje prijenos sadržaja (podataka) između domaćina. Čvorove čija je primarna namjena da ostvaruju prijenos podataka u mreži, možemo nazvati prijenosnim čvorovima, ili kraće prijenosnicima. Postoji više vrsta prijenosa i prijenosnika; čvorovi te vrste imaju posebne nazive koji zavise od funkcija koje obavljaju; o tome će biti više riječi u nastavku. Na slici 1.2 dan je prikaz osnovne strukture jednog mrežnog sustava koji sadrži spomenute vrste čvorova.
...
...
Slika 1.2 Domaćini i prijenosnici Mrežu se općenito označava simbolom oblaka; na slici 1.2 oblakom smo obuhvatili samo "unutrašnjost mreže" zato da istaknemo razliku u ulogama računala koja ostvaruju prijenos od uloge računala koja koriste usluge prijenosa i sa kojima izravno rade korisnici. Čvorove mreže unutar oblaka nazvali smo prijenosnicima, a čvorovi izvan oblaka su domaćini. Naziv "prijenosnik" uveli smo zato što nedostaje jedan zajednički naziv za sve uređaje koji izvode "usmjeravanje i prijenos jedinica podataka" u mrežnim sustavima, bez obzira na vrstu jedinica i razinu prijenosa. Mrežni čvorovi mogu se promatrati na više razina (pojmovno i operativno) o čemu podrobnije govorimo kasnije. U zavisnosti od razine promatranja (i rada), naprave koje izvode usmjeravanje i prijenos jedinica podataka nazivaju se preklopnicima (switches), mostovima (bridges), usmjerivačima (routers) i vratima (gateways). Pritom se na drugoj razini (OSI modela mreže) obično govori o preklopnicima i mostovima, a na trećoj razini o vratima i usmjerivačima. Kod općenitih objašnjenja sve te naprave nazivamo zajedničkim (općim) nazivom "prijensonik". U nastavku ćemo većinom koristiti onaj pojam (preklopnik, most, usmjerivač, vrata) koji odgovara konkretnoj situaciji. U tom smislu, možemo reći da se u oblaku na slici 1.2 nalaze usmjerivači koji (1) usmjeravaju i prenose sadržaje i/ili (2) uspostavljaju putove kroz mrežu, zavisno od načina rada dane mreže.
6
Na domaćinima rade razni serveri, a na njih se vezuju korisnici (sa svojim računalima), što im omogućava da "koriste mrežu", odnosno da svojim klijentskim sustavima koriste mrežne usluge koje ostvaruju (pružaju) odgovarajući serveri. Posao prijenosnika je da izvode prijenos sadržaja između domaćina. Općenito se kaže da sustav prijenosnika ostvaruje prijenos (ili usluge prijenosa), dok domaćini (serveri i klijenti) koriste prijenos (ili usluge prijenosa). Čvorovi su međusobno povezani vezama. Za veze koje izravno povezuju dva čvora (ili procese na tim čvorovima), kažemo da su tipa od-točke-do-točke (ili točka-točka; point-to-point). Na taj način povezani su čvorovi A i B te čvorovi B i C sa slike 1.3a. Pojam točka-točka obično se koristi kod izravnih fizičkih veza; s druge strane, moguće je ostvariti izravnu komunikaciju između procesa na čvorovima koji nisu izravno fizički povezani; naprimjer, između čvorova A i C sa slike 1.3a. U tom slučaju govori se o komunikaciji s-kraja-na-kraj (end-to-end). O tim stvarima biti će više riječi kasnije. Niz veza tipa točka-točka treba omogućiti prijenos sadržaja između bilo koja dva čvora mreže. Pritom, prijenosnici imaju ulogu da prenose sadržaje, dok su domaćini (i njihovi klijenti) izvori sadržaja koji se prenose i konačni primatelji tih sadržaja.
A
B
C
(a)
…...
(b)
Slika 1.3 Čvorovi i veze Kod lokalnih mreža obično se koriste veze s višestrukim pristupom (multiple access). To znači da se na isti kabel vezuje više čvorova, kako to ilustrira slika 1.3b. Lokalne mreže prostiru se na relativno malom prostoru; postoje razne vrste lokalnih mreža, ali većina takvih mreža koristi višestruki pristup nosiocu podataka (kabelu, nosivom signalu) i prostire se na prostoru od nekoliko kilometara (ili manjem). Ukupna dužina spojnog kabela kod najpoznatije lokalne mreže (Ethernet) iznosi dva i pol kilometra. Takve mreže mogu sadržavati par stotina čvorova, ali neke mreže toga tipa omogućuju vezivanje i preko tisuću čvorova. Lokalne mreže u praksi obično imaju znatno manje čvorova od maksimalnog broja čvorova koji smiju imati, jer s porastom broja čvorova obično opada kvaliteta prijenosa (brzina) koju čvorovi te mreže mogu ostvariti. O lokalnim mrežama govorimo u slijedećem poglavlju. Čvorove koji se nalaze unutar oblaka na slici 1.2 nazvali smo općenito prijenosnicima (ili ovdje usmjerivačima), dok smo čvorove izvan oblaka (na rubu mreže) nazvali domaćinima. Sustav prijenosnika treba omogućiti prijenos sadržaja između domaćina koji su spojeni na neki od čvorova toga sustava. Da bi se razmjena sadržaja mogla odvijati normalno, svaki od čvorova u mreži treba imati jedinstvenu adresu u toj mreži. Čvorovi mogu istodobno spadati u više nego jednu mrežu, pri čemu u svakoj od mreža imaju jedinstvenu adresu u toj mreži. Prijenos sadržaja između pošiljatelja i primatelja vrši se na temelju njihovih jedinstvenih adresa. Postoji više metoda (ili načina) prijenosa informacijskih sadržaja u računalnim mrežama; 7
dvije osnovne metode su (1) prijenos sadržaja sa usmjeravanjem paketa (packet switching), i (2) prijenos sadržaja sa uspostavljanjem putova (circuit switching). Opišimo najprije paket (packet) podataka. Paketom podataka naziva se niz bitova određene strukture, koji se kreće (prenosi) računalnom mrežom kao jedna cjelina (jedan paket). Paket se sastoji iz dva osnovna dijela, i to od (1) zaglavlja, i od (2) podatkovnog sadržaja kojeg se prenosi tim paketom (ili u tom paketu). Zaglavlje se sastoji od adrese čvora koji šalje paket, adrese čvora kojem je paket namijenjen, i od niza drugih podataka koji su namijenjeni upravljanju prijenosom i kontroli ispravnosti prijenosa. Podatkovni (ili informacijski) sadržaj koji se prenosi u paketu, naziva se i tijelom paketa, korisnim teretom, i plaćenim teretom (payload). Payload je onaj teret na brodu čiji se prijevoz plaća; posada, voda, hrana i slično su isto tako teret, ali se njihov prijevoz ne naplaćuje. Oni su potrebni za ostvarenje prijevoza; isto vrijedi za zaglavlje paketa podataka. U ovom poglavlju govorimo uglavnom o paketima podataka; međutim, u računalnim mrežama postoje i drugi nazivi za jedinice podataka slične strukture; ti nazivi su okvir (frame), ćelija (cell), i drugi. Nazivi i jedinice podataka zavise od razine promatranja računalne mreže; o tim stvarima biti će više riječi u nastavku i u slijedećim poglavljima; ovdje koristimo pojam paket kao opći naziv za jedinicu podataka koja se prenosi računalnom mrežom. Kod prijenosa sadržaja prema metodi s usmjeravanjem paketa, domaćin predaje pakete podataka onom prijenosniku na kojeg je izravno vezan. Na temelju adrese primatelja, koja je zapisana u zaglavlju paketa, taj prijenosnik odlučuje u kojem smjeru treba proslijediti taj paket da bi se kretao prema svom odredištu na optimalan način (najkraćim putem). Kod prijenosa sadržaja prema metodi s uspostavljanjem putova, prvi paket kojeg pošiljatelj upućuje u mrežu uspostavlja put do odredišta na koje je taj paket adresiran. Taj prvi paket kreće se od izvora do odredišta na temelju adrese odredišta (koja je sadržana u njegovom zaglavlju); taj paket kreće se po metodi usmjeravanja paketa, jer nema drugog načina da stigne do odredišta. Pritom taj paket uspostavlja jedan put kroz prijenosnike kroz koje prolazi, od svog polaznog čvora (izvora) do svog konačnog odredišta. Paketi koji se zatim prenose u toj komunikaciji, kreću se od pošiljatelja do primatelja tim virtualnim putem, a ne više na temelju adrese primatelja. O tim dvjema metodama prijenosa sadržaja biti će više riječi kasnije. Rad Interneta zasniva se na metodi prijenosa s usmjeravanjem paketa. Dakle, u Internetu svaki paket putuje od izvora do odredišta na temelju adrese odredišnog čvora (koju nosi zapisanu u svom zaglavlju); pritom je kretanje svakog paketa nezavisno od kretanja drugih paketa iz iste komunikacije. Paketi koji se kreću između dva čvora u okviru jedne komunikacije u mreži Internet, obično se kreću istim putem, ali ne moraju. Klasični telefonski sustavi rade prema metodi s uspostavljanjem putova. Pozivom nekog telefonskog broja uspostavlja se jedan (virtualni) put između telefona pozivatelja (izvora komunikacije) i pozvanog telefona (odredišta komunikacije); tim putem se zatim odvija nastavak te komunikacije. Po završetku komunikacije, taj put se prekida (prestaje postojati); zato se takvi putovi nazivaju virtualnima; u stvari, takvi putovi nisu trajni, ali dok traju, jesu postojani (stvarni). Paketi podataka prenose informacijske sadržaje zapisane u digitalnom obliku. Ti digitalni zapisi mogu biti bilo koje vrste: tekst, slika, ili zvuk. Za sam paket, kao i za sustav prijenosnika koji ga prenosi, svejedno je kako pošiljatelj i primatelj interpretiraju nizove bitova koji se prenose mrežom. Prijenosnici i veze ne promatraju sadržaje paketa koje prenose. Različite računalne mreže koriste pakete različitih struktura i veličina (dužina). U mreži Internet, paketi mogu biti veliki do 64 KB. Međutim, stvarni (fizički) prijenos sadržaja preko veze odvija se isključivo u paketima (točnije, okvirima; frames) te veze. Zato se Internet paketi, da bi "prošli" kroz neku vezu ili podmrežu, umeću u pakete (okvire) te veze ili podmreže. S obzirom da su paketi raznih mreža i veza često znatno manji od maksimalne veličine Internet paketa (64 KB), polazni Internet paketi moraju se lomiti (fragmentirati) na više manjih Internet paketa, da bi mogli proći kroz te veze i podmreže. Po prolasku kroz te veze i podmreže, od fragmenata se 8
ponovno sastavlja polazni Internet paket. Takvo sabiranje fragmenata obično se izvodi tek kad fragmenti stignu na konačno odredište, tako da se izbjegne eventualno ponovno lomljenje i sabiranje istih paketa na putu. Vjerojatnost da će Internet paket (IP paket) trebati fragmentirati može se smanjiti tako, da izvor šalje znatno kraće IP pakete od njihove maksimalno dopuštene dužine. U svakom slučaju, izvor ne pravi veće IP pakete od onih koje može prenijeti veza kojom je taj izvor (domaćin) izravno vezan na prijenosni sustav. Postoji tvrdnja da je prosječni IP paket dug svega 300 bajtova; o tim stvarima govorimo u četvrtom poglavlju. Kod prijenosa podataka metodom usmjeravanja paketa, prijenosnik pohranjuje dolazeće pakete te ih zatim prosljeđuje dalje, najbrže što može. Koliko je to brzo, zavisi od kapaciteta prijenosnika, kao i od toga koliko je taj prijenosnik opterećen dolazećim paketima. Kod prijenosa podataka metodom uspostavljanja putova, prijenosnici uspostavljaju jedan virtualni put od pošiljatelja do primatelja na početku svake komunikacije; tim putem zatim prosljeđuju sve pakete od te komunikacije. Potonja metoda omogućava učinkovitiji (kvalitetniji) prijenos, ali ta metoda ima i svoje slabosti. Tim pitanjima bavimo se u trećem poglavlju. Simbolom oblaka možemo općenito predstaviti računalnu mrežu bilo koje vrste. To može biti neka mreža globalnih razmjera, ali isto tako i samo jedna veza tipa točka-točka koju se (iz nekog razloga) želi promatrati kao jednu zasebnu mrežu. Na slici 1.2 prijenosnici ostvaruju prijenos podataka unutar jedne mreže; prijenosnici mogu isto tako povezati više mreža u jednu sastavljenu mrežu, na način kako je to pokazano na slici 1.4.
M1
P1
M2
P4
P5
P2
M4
P3
M3
Slika 1.4 Sastavljena mreža Takvim povezivanjem mreža ostvaruje se mogućnost komunikacije između domaćina (korisnika) koji pripadaju različitim mrežama. Pritom komunikacija između mreža može biti uspostavljena izravnom vezom (preko prijenosnika), ili se može odvijati preko prijenosnika i drugih mreža. Domaćini iz mreža M1 i M4 mogu izravno komunicirati preko prijenosnika P4; 9
domaćini iz mreža M1 i M3 mogu komunicirati preko prijenosnika P1, mreže M2 i prijenosnika P2. U takvim sastavljenim mrežama obično postoji više mogućih putova između dviju mreža. Prijenosnike koji imaju ulogu kakvu ilustrira slika 1.4 naziva se vratima (gateways). O tim stvarima govorimo u četvrtom poglavlju. Računalna mreža koja se sastoji od više računalnih mreža, naziva se internetwork, ili kraće, internet. Pritom se najpoznatija (najstarija i najveća) mreža takve vrste naziva Internet (sa veliko "i"); u engleskom se tome dodaje i određeni član "the"; dakle, "the Internet". Središnji dio računalne mreže Internet čine protokoli IP i TCP, odnosno njihove softverske realizacije; o tim protokolima biti će više riječi u nastavku i u slijedećim poglavljima. Za čvor koji povezuje dvije ili više mreža može se reći da usmjerava promet između tih mreža, te se općenito naziva usmjerivačem (router). Takav čvor naziva se i vratima (gateways) jer vodi iz jedne mreže u drugu. Neki preferiraju jedan naziv, a neki koriste drugi naziv. Ovdje smo usmjerivačima nazvali one prijenosnike koji tvore jedan složen prijenosni sustav. S druge strane, prijenosnike koji izravno povezuju dvije mreže obično nazivamo vratima. U načelu, računalna mreža može se širiti neograničeno, odnosno koliko to dopušta adresni prostor (a to može biti praktički neograničeno). Širenjem sustava usmjerivača, dodavanjem novih mreža i vrata, sastavljena mreža postaje sve veća i složenija. Mreže koje tvore takvu sastavljenu mrežu nazivamo podmrežama te sastavljene mreže. Podmreže mogu isto tako biti sastavljene; na dnu te hijerarhijske strukture nalaze se fizičke mreže sa svojim domaćinima. U tom kontekstu, pojam internet može se prevesti sa sastavljena mreža - ili opsežnije, kao mrežni sustav u kojem je međusobno povezano više mreža. U mrežnoj komunikaciji, pošiljatelj obično šalje poruke jednom primatelju. Takav način slanja naziva se unicast (jedno-slanje). U engleskom jeziku pojam "cast" (ili "to cast") ima mnoga značenja, od baciti (svjetlo, pogled), do lijevati (taljeno željezo u kalupe). Pošiljatelj može poslati isti sadržaj na više adresa; takav način slanja sadržaja naziva se multicast (mnogo-slanje). Kod tog načina slanja paketi podataka jednaki su kao i kod unicast slanja: paketi sadrže samo jednu adresu primatelja. Međutim, to nije adresa jednog specifičnog primatelja nego jedne unaprijed definirane grupe primatelja. Kad neki pošiljatelj uputi paket na neku multicast adresu, tada mrežni sustav (usmjerivači) dostavlja kopiju tog paketa na adresu svakog primatelja koji je član te grupe. Spomenimo da je multicast slanje relativno jednostavan proces kod lokalnih mreža; kod globalnih mreža je taj problem zahtjevniji. Ako pošiljatelj šalje poruku na sve čvorove neke mreže, onda se to naziva broadcast načinom slanja. "Broad" znači široko, ali izraz "široko-slanje" ne zvuči naročito dobro (kao ni prethodna dva prijevoda); "to broadcast" znači emitirati (kao radio stanica), tako da bismo ovdje mogli govoriti o emitivnom načinu slanja, ali ni taj prijevod nije naročito dobar. Broadcast način slanja koristi jednu unaprijed određenu adresu; pakete koji su upućeni na tu adresu, mrežni sustav prenosi na sve čvorove u mreži. Taj način rada obično se koristi u okviru poslova održavanja računalne mreže i upravljanja njenim radom, tako da taj način može koristiti prvenstveno osoba koja je zadužena za upravljanje nekim mrežnim sustavom. Uvedimo ovdje i standardnu podjelu mreža prema njihovoj opsežnosti. Sa promjenom opsežnosti mreže, obično se mijenja i način rada (prijenosa) koji se koristi u toj mreži. To se obično naziva "tehnologijom (rada)" mreže, ali ovdje nismo naročito skloni tom izrazu. U tom kontekstu može se reći da opsežnost mreže ujedno određuje njene strukturne osobine (svojstva i način rada), kao i strukturne osobine (svojstva i način rada) njenih čvorova. Prema opsegu, mreže se obično dijeli na nekoliko vrsta, pri čemu u praksi dominiraju tri vrste: mreže lokalnog dosega (od jedne institucije), mreže srednjeg dosega (gradske) i mreže globalnog dosega. Spomenimo da su takve podjele načelne, jer u istu vrstu spadaju mreže prilično različitih svojstava. LAN - (Local Area Network) - doslovno, to znači "mreža lokalnog prostora"; te mreže nazivamo lokalnim mrežama ili LANovima. Lokalnost mreže je ovdje određena ukupnom dužinom spojnih kablova mreže (ili dosegom elektromagnetskog signala kod bežičnih mreža). Ta dužina 10
obično iznosi par kilometara, ali kod nekih mreža lokalnog tipa može biti veća. Maksimalan broj čvorova u takvim mrežama kreće se od par stotina do tisuću, zavisno od konkretne vrste lokalne mreže. O LANovima govorimo u slijedećem poglavlju. MAN - (Metropolitan Area Network) - to je mreža koja se (načelno) prostire na prostoru jednog grada, tako da se naziva i gradskom mrežom. Takve mreže mogu se prostirati na području od par desetaka kilometara (u dijametru), što može činiti prostor jednog grada. Neke mreže toga tipa koriste specifične metode prijenosa podataka, koje se razlikuju od metoda prijenosa kod LAN i WAN mreža. Mrežama tipa MAN posvećuje se u literaturi manje pažnje nego lokalnim i globalnim mrežama, bez da se navode konkretni razlozi za to. Čini se da su LANovi raznih veličina i globalne mreže (Internet) dovoljno dobra kombinacija za ostvarenje svih potreba po prijenosu podataka, tako da "nešto između" (mreže tipa MAN) ne izgleda naročito potrebno. Promjenu u tome mogle bi donijeti bežične mreže o kojima govorimo u petom poglavlju. WAN - (Wide Area Network) - to je mreža širokog (globalnog) prostora. Kod tih mreža nema specifičnih ograničenja fizičkog prostora njihovog širenja, osim mogućnosti da se fizički dospije u neke prostore na Zemlji ili izvan nje. Najstarija i najpoznatija mreža te vrste je Internet. Dakle, za WAN mreže može se reći da su fizički neograničene veličine. Međutim, i te mreže su ograničene brojem raspoloživih adresa čvorova, jer broj tih adresa ograničava broj čvorova koji mogu biti uključeni u mrežu. Taj problem prisutan je u Internetu, ali broj adresa može se povećati tako da se poveća broja bitova koji tvore adresu, te se stoga može reći da su mreže te vrste praktički neograničene. O novoj verziji Internet protokola (IPv6) sa kojom se rješava problem nedostataka adresa u Internetu, govorimo u četvrtom poglavlju. U biti, mreže tipa WAN nastaju i mogu se širiti povezivanjem mreža na način kako to ilustrira slika 1.4. Više o tome biti će rečeno u nastavku ovog teksta, posebno o elementima i načinu rada mreže Internet. Kod govora o bežičnim mrežama uvodimo i mreže tipa PAN (Personal Area Network); te mreže nazivaju se i pico mrežama (piconet). To su mreže koje povezuju komponente jednog sustava (u vrlo ograničenom prostoru) bežičnim vezama. Primjer takve mreže je Bluetooth o kojoj govorimo u petom poglavlju.
1.3 Dijeljenje resursa U računalnim mrežama odvija se velik broj komunikacija istodobno. Da bi to bilo moguće, elementi računalne mreže trebaju podržavati (opsluživati) velik broj komunikacija istodobno (ili paralelno). U tom kontekstu govori se o dijeljenju resursa, čime se misli na dijeljenje kapaciteta elemenata koji tvore računalnu mrežu. Dakle, više procesa i tokova podataka dijeli kapacitete istih elemenata mrežnog sustava, odnosno odvija se preko istih elemenata toga sustava istodobno ili paralelno. Multipleksiranjem se općenito naziva način rada kada jedna brza jedinica opslužuje više sporijih jedinica. Taj naziv zvuči nezgrapno i koristi se neprecizno, ali je prilično raširen pa ćemo ga ovdje koristiti. Slika 1.5 ilustrira na koji način prijenosnici P1 i P2 multipleksiranjem podržavaju više komunikacija istodobno, koje se odvijaju preko jedne fizičke veze. Za vezu između tih dvaju prijenosnika može se isto reći da radi na multipleksan način jer prenosi sadržaje više komunikacija istodobno.
11
D4
D1
D2
P1
P2
D5
D6
D3
Slika 1.5 Multipleksiranje Prijenosnik P1 opslužuje tri domaćina koji su izravno vezani na njega. Uzmimo da ova tri domaćina trebaju istodobno komunicirati sa tri domaćina koja su vezana na prijenosnik P2 i da pritom svaki od domaćina vezanih na P1 komunicira sa jednim domaćinom vezanim na P2. Tada prijenosnik P1 treba raditi na multipleksan način, čime se ujedno postiže da i veza preko koje se vrši prijenos podataka radi na multipleksan način. Kaže se da prijenosnik P1 koji prima više sporijih tokova (sa domaćina), multipleksira te tokove na jednu brzu fizičku vezu. S druge strane, prijenosnik P2 koji prima tako sastavljen tok podataka sa brze veze, demultipleksira (dijeli) taj tok na više sporijih tokova prema domaćinima kojima su namijenjeni i koji su izravno vezani na P2. Komunikacije su često dvosmjerne (dupleks); tada oba dva prijenosnika istodobno multipleksiraju sadržaje koje šalju u vezu i demultipleksiraju sadržaje koje primaju sa veze. U ovom primjeru multipleksiranje se izvodi na jednoj vezi; prijenosnici su često vezani na više drugih prijenosnika, tako da izvode multipleksiranje na više veza i demultipleksiranje sa više veza istodobno. Postoje razne metode multipleksiranja više sporijih tokova podataka na jednu bržu fizičku vezu. Dvije osnovne metode nazivaju se multipleksiranje s podjelom vremena i multipleksiranje s podjelom frekvencija. Kod multipleksiranja s podjelom vremena (time-division multiplexing - TDM), prijenosnik stalno prima u svoju prijemnu memoriju pakete svih čvorova koje opslužuje. Prijenosnik upućuje u vezu pakete koje je primio od tih čvorova; to čini na taj način da pakete svakog od čvorova koje opslužuje, šalje u vezu jedno određeno vrijeme; zatim na isti način upućuje u vezu pakete drugog čvora jedno vrijeme, i tako redom i u krug. Na taj način svaki od čvorova koji su vezani na taj prijenosnik može konstantno komunicirati, bez obzira što pritom dijeli procesne kapacitete prijenosnika i prijenosne kapacitete veza sa drugim čvorovima koje taj prijenosnik opslužuje. Takvo dijeljenje resursa ne ometa komunikacije sve dok sporiji elementi ne preopterete (zasite, zaguše) prijenosnik ili vezu. Ako se takvo zagušenje dogodi, onda je prijenosnik prisiljen odbacivati pakete jer je priliv paketa veći nego što ih prijenosnik uspijeva proslijediti dalje, a njegov memorijski prostor (u kojem privremeno pohranjuje pakete) je već ispunjen. Mrežni sustav treba sprječavati zagušenja prijenosnika i veza; o tome na koji način se to izvodi govorimo u predmetu "Računalne mreže 2". Kod multipleksiranja s podjelom vremena, vezom teče samo jedan tok podataka kojeg tvore paketi većeg broja komunikatora. Taj tok sastoji se od paketa jednog pošiljatelja (izvora), iza kojeg slijede paketi drugog pošiljatelja, i tako redom i u krug. S druge strane, kod multipleksiranja s podjelom frekvencija (frequency-division multiplexing - FDM) vezom istodobno teče veći broj 12
tokova podataka na različitim frekvencijama, tako da se ti tokovi međusobno ne ometaju. Na takav način radio stanice prenose sadržaje istom vezom (prostorom) na različitim frekvencijama; radijski prijemnik može razlučiti svaku od tih frekvencija i primati sadržaje koji se njome prenose. Kod multipleksiranja s podjelom frekvencija, prijenosnik istodobno šalje u vezu (multipleksira) različite tokove podataka na različitim frekvencijama. Na prijemnoj strani prijenosnik demultipleksira takav sastavljeni tok (kojeg prima) i dijeli ga na više tokova različitih frekvencija, pri čemu su sadržaji svakog od tih tokova namijenjeni određenom primatelju. Prijenosnici koji rade na multipleksan način, mogu davati određene prioritete pojedinim od procesa i tokova podataka koje multipleksiraju (opslužuju). Naprimjer, prijenosnik P1 može prenositi (upućivati u vezu) pakete domaćina D2 duže vrijeme nego što to prosječno čini za ostale domaćine. Isto tako, pakete domaćina D2 može prenositi češće nego što prosječno prenosi pakete ostalih domaćina. S druge strane, kod sustava sa podjelom frekvencija, nekim komunikacijama (čvorovima) mogu se dodijeliti veće širine frekventnog pojasa u fizičkoj vezi; to omogućava veću propusnost (u tom pojasu), i time intenzivniji prijenos podataka. Onim čvorovima (domaćinima i procesima na njima) koji se nalaze u procesu komunikacije ali nisu aktivni (trenutno ne prenose sadržaje), može se smanjiti prioritet u odnosu na druge čvorove (procese) koji jesu aktivni. Prijenosnici koji izvode multipleksiranje (i demultipleksiranje) mogu opsluživati velik broj sporijih čvorova (točnije, procesa na tim čvorovima), ali taj broj je obično ograničen. Zato prijenosnici mogu postaviti u stanje mirovanja one procese (komunikacije) koji drže zauzete određene prijenosne kapacitete (vremenske intervale ili frekvencije) ali ih ne koriste. Na taj način prijenosnici oslobađaju neke svoje kapacitete (i kapacitete veza), i time omogućuju drugim čvorovima (procesima) koji čekaju da se oslobode kapaciteti prijenosnika i veza, da se uključe u proces prijenosa i da dobiju mogućnost slanja podataka. Jedan oblik multipleksiranja s podjelom vremena naziva se statističko multipleksiranje. Kod tog načina rada vrijeme za prenošenje (to jest, kapacitet veze) dodjeljuje se onim procesima koji to traže, a ne svakom procesu neko zadano vrijeme, bez obzira da li trenutno ima potrebu da prenosi podatake ili nema. Ime te metode nije naročito prikladno, ali je načelo rada jasno. Postoje razne druge mogućnosti modifikacije osnovnih metoda multipleksiranja s podjelom vremena i s podjelom frekvencija; zajednički cilj takvih modifikacija je postići optimalno dijeljenje prijenosnih kapaciteta mrežnih resursa i optimalnu iskorištenost tih resursa. Pritom svaka od tih modifikacija treba ostaviti neku minimalnu mogućnost svakom od procesa (domaćina) da prenosi podatke, ali se to nastoji činiti na način koji teži optimalnom iskorištenju resursa i optimalnom funkcioniranju mrežnog sustava kao cjeline. U računalnim mrežama događa se da na neki prijenosnik stiže više paketa nego što ih taj prijenosnik može trenutno prihvatiti i proslijediti dalje (preko jedne ili više veza). U primjeru sa slike 1.5 to se može dogoditi ako domaćini koji su vezani na prijenosnik P1 duže vrijeme intenzivno šalju pakete, tako da na P1 nema više slobodnog prostora za prihvaćanje tih paketa. Prijenosnik je računalo (ili proces na računalu), tako da ima ograničen kapacitet primanja i prosljeđivanja paketa. Veze preko kojih prijenosnik šalje pakete dalje u mrežu imaju ograničenu propusnost. Prijenosnici imaju memorijski prostor u koji pohranjuju pakete koji stižu na njih, dok ih ne proslijede dalje, ali taj prostor je ograničene veličine. Zato ako paketi duže vrijeme stižu na prijenosnik većim intenzitetom nego što ih prijenosnik uspijeva proslijediti dalje, onda taj prijenosnik biva zagušen (congested). To znači da je njegov memorijski prostor ispunjen, tako da neke od paketa koji stižu na njega mora odbacivati. Zagušenje prijenosnika bitno ugrožava rad mreže, tako da postoje metode i postupci pomoću kojih prijenosnici nastoje spriječiti vlastito zagušenje prije nego što do njega dođe. U osnovi, to se postiže tako, da se uspori dotok paketa na prijenosnik koji se približava točki zagušenja. Postoji više načina da se to učini; prijenosnik može upozoravati pošiljatelje na opasnost (približavanje) zagušenja; to može učiniti eksplicitno ili implicitno; upozoravati se može onaj izvor koji šalje pakete najvećim intenzitetom, ili se izvori 13
upozoravaju nasumce; o tim stvarima govorimo u predmetu "Računalne mreže 2".
Aplikacije i usluge prijenosa Strukturu računalne mreže može se opisati (definirati) sa raznih gledišta i na više načina, o čemu govorimo u drugom dijelu ovog poglavlja. Osnovni opis strukture računalne mreže dijeli mrežu (kao cjelinu) na aplikacije i usluge prijenosa. U aplikacije spadaju oni mrežni entiteti koji korisniku izravno omogućuju da izvodi operacije sa računalnom mrežom. Takvi su naprimjer web preglednik i web server. Aplikacije se naslanjaju na usluge prijenosa, koje ostvaruju brojni elementi računalne mreže, koje korisnik ne vidi niti izravno radi s njima. Takvi su razni protokoli (IP, TCP) koji ostvaruju prijenos sadržaja za potrebe raznih aplikacija. Općenito se kaže da mrežne aplikacije koriste usluge prijenosa, dok prijenosni sustav računalne mreže ostvaruje usluge prijenosa za potrebe raznih aplikacija. Različite aplikacije često trebaju različite vrste prijenosa; kažemo da prijenosni sustav mreže ostvaruje (nudi) razne prijenosne kanale (channels) za potrebe različitih aplikacija. Neki od tih kanala mogu biti pouzdani (otklanjaju greške u prijenosu) dok drugi mogu ostvarivati maksimalnu brzinu prijenosa, ali nisu pouzdani (ne otklanjaju greške u prijenosu). U oba slučaja, fizički prijenos sadržaja (paketa/okvira, kao nizova bitova) izvodi se na isti način; pitanje pouzdanosti i nepouzdanosti prijenosa je stvar kontrole ispravnosti prijenosa i otklanjanja grešaka. Kod pouzdanih kanala (načina rada), sustav otklanja greške u prijenosu, i to ponovnim slanjem onih paketa kod kojih je došlo do grešaka (iskrivljenja ili gubitaka); kod nepouzdanog načina rada, greške se ne otklanjaju. Pouzdan način rada koristi se kod prijenosa preciznih sadržaja (brojeva, tekstova, programa), dok se nepouzdan način rada koristi uglavnom kod prijenosa video sadržaja, gdje gubitak ponekog paketa nema veliki utjecaj na kvalitetu sadržaja koji se prenose. Slika 1.6 ilustrira odnos aplikacija i usluga prijenosa. D2
D1
A1
A1
A2 A3
A3
D3
D4 A2
A3 A3
Slika 1.6 Aplikacije i usluge prijenosa
14
Na istom domaćinu izvodi se više aplikacija koje komuniciraju sa istovrsnim aplikacijama na drugim domaćinima. Takvim komunikacijama ostvaruju se prijenosi poruka računalne pošte, traženje i donošenja web stranica, i druge mrežne usluge. Mrežni sustav pruža svakoj aplikaciji prijenosni kanal određenih osobina između dva krajnja čvora (procesa) koji komuniciraju u okviru izvođenja te aplikacije. Kanal je ovdje logička (pojmovna) kategorija; njime su određena svojstva prijenosa sadržaja između dvaju procesa (aplikacija), a ne način fizičkog izvršenja toga prijenosa. Osobine kanala su propusnost, pouzdanost, zaštita tajnosti sadržaja i slično. Dakle, prijenosni dio mrežnog sustava pruža više vrsta prijenosnih (ili komunikacijskih) kanala (usluga); aplikacije biraju one vrste kanala koji odgovaraju njihovim potrebama. Ako mreža (trenutno) ne nudi kanal kakav je potreban nekoj aplikaciji, onda ta aplikacija treba prihvatiti ono što mreža trenutno može pružiti (naprimjer, manju propusnost), ili odustati od prijenosa podataka. Između dvaju domaćina može istodobno postojati više prijenosnih kanala; takva situacija može nastati kad različite aplikacije sa jednog domaćina istodobno komuniciraju sa istovrsnim aplikacijama na drugom domaćinu. Na slici 1.6 između domaćina D2 i D4 postoje dva prijenosna kanala, za potrebe aplikacija A2 i A3. Postoje dvije osnovne vrste komunikacijskih kanala, koje se nazivaju request/reply (zahtjev/odgovor) i message stream (tok poruka ili sadržaja). Kod prve vrste kanala, klijent šalje neki zahtjev serveru, a server odgovara na taj zahtjev (i izvršava ga). Pritom, server može dostaviti klijentu rezultat izvršenja njegova zahtjeva, ili samo potvrdu da je taj zahtjev izvršen. To zavisi od vrste zahtjeva. Naprimjer, ako je klijent poslao serveru zahtjev da mu dostavi neku web stranicu, onda server šalje klijentu datoteke koje tvore tu web stranicu. Ako pak klijent pošalje serveru zahtjev da izbriše neki podatak iz baze podataka, onda server izvršava taj zahtjev i šalje klijentu potvrdu da je zahtjev izvršen. Kanali tipa message stream obično se koriste kad klijent prima sa servera jedan kontinuirani tok podataka (sadržaja). To se događa kod gledanja televizije preko računalne mreže (Interneta); taj tip kanala koristiti se kod izravnih video prijenosa preko računalne mreže, kod kopiranja filmova i glazbe sa mreže, kao i kod telekonferencija. Svaka od tih aplikacija ima neka specifična svojstva, tako da prijenosni kanali trebaju biti prilagođeni njihovim potrebama. Gledanje televizije je čisti slučaj message stream prijenosa: komunikacija je jednosmjerna i nema unaprijed zadanu dužinu trajanja ili količinu sadržaja koju treba prenijeti; isto vrijedi i za video prijenos. Kopiranje filmova sa mreže (servera) razlikuje se od televizije i video prijenosa po tome što su filmovi unaprijed zadani sadržaji određene veličine, tako da mogu biti u cijelosti prenijeti na računalo klijenta prije početka njihovog korištenja (reproduciranja). Kod telekonferencija potrebno je modificirati osnovnu message stream metodu, tako da se omogući tok podataka u oba smjera, jer članovi konferencije nisu samo primatelji sadržaja, nego trebaju imati mogućnost da reagiraju i da time postanu izvori sadržaja koje sustav onda treba prenositi u suprotnom smjeru. Kanal tipa message stream koji se uspostavlja za potrebe neke telekonferencije, treba omogućavati multicast način rada, tako da se sadržaji (slika i zvuk) svakog od učesnika te konferencije mogu istodobno slati svim učesnicima te konferencije. Kanal treba imati takve osobine (propusnost, zadržavanje) da ne dovodi do prevelikih kašnjenja između trenutka nastanka nekog sadržaja (na izvoru) i trenutka njegova primitka (kod učesnika konferencije). Veliko kašnjenje otežalo bi dvosmjernu komunikaciju (razgovor, raspravu).
1.4 Slojevi i protokoli Strukturu čvorova koji tvore računalnu mrežu obično se opisuje pod naslovom "arhitektura računalne mreže"; bolji naslov mogao bi biti arhitektura (ili struktura) mrežnih čvorova. Međutim, može se reći da arhitektura (struktura) čvorova koji tvore računalnu mrežu ujedno tvori arhitekturu računalne mreže. Ili obrnuto: strukturne osobine računalne mreže određuju strukturu njenih 15
čvorova. Drugim riječima, elementi koji definiraju način rada neke računalne mreže ujedno određuju koje elemente (svojstva, funkcije) trebaju sadržavati čvorovi te mreže. Složene sustave obično se dijeli na podsustave, jer se time olakšava njihovo oblikovanje i razvoj, kao i kasnije mijenjanje i održavanje. Kod računalnih mreža, čvorove (kao sustave) obično se opisuje u terminima slojeva i protokola. Načelno govoreći, svaki sloj možemo smatrati jednim podsustavom mrežnog čvora, koji ostvaruje jedan određeni skup operacija. Protokol je precizan opis jednog entiteta (elementa); jedan sloj može sadržavati više takvih entiteta, ali ponekad sadrži samo jedan entitet (i naziva se prema tom entitetu). Protokolom se naziva i realizacija onog entiteta koji je tim protokolom opisan. Naprimjer, kod mreže Internet, IP (Internet Protokol) je opis jednog elementa te mreže; ali tako se naziva i softver koji realizira element koji je opisan tim protokolom. Radi razlikovanja tih dviju stvari, opis entiteta naziva se specifikacijom protokola, a realizacija tog opisa (to jest, element mreže) naziva se protokolom. Međutim, u praksi se često koristi pojam protokol za obje stvari, uzimajući pritom da se zna (iz konteksta) da li je riječ o opisu elementa ili o elementu. Protokoli mogu biti realizirani softverski ili hardverski; protokoli nižih slojeva često se realiziraju hardverski, dok se protokoli viših slojeva realiziraju softverski. Kod dijeljenja složenih sustava na podsustave (ili slojeve) uvijek se postavlja pitanje na koliko podsustava podijeliti dani sustav. Jer sustav se može promatrati (opisati) na razne načine, pri čemu se sustav kao jednu cjelinu može dijeliti na više ili manje podsustava (slojeva). Računalna mreža, odnosno njeni čvorovi na kojima rade razni serveri (aplikacije, usluge, servisi), ima barem dva sloja, i to aplikacijski sloj i fizički sloj (hardver). Struktura i način rada računalne mreže ukazuju da bi tome trebalo dodati još barem dva sloja, kako je to učinjeno na slici 1.7.
Aplikacije (usluge) Povezivanje procesa Povezivanje čvorova Fizički sloj (hardver)
Slika 1.7 Slojevi mrežnog sustava Opisivanje slojeva obično počinje odozdo. Fizički sloj ili hardver je ono što fizički izvršava sve što računalna mreža radi. Slojevi iznad fizičkog sloja koriste usluge (operacije) toga sloja; ti slojevi ujedno upravljaju njegovim radom. Sloj kojeg smo nazvali povezivanjem čvorova treba ostvariti vezu između čvorova u mreži. To znači da treba ostvariti prijenos nizova bitova (paketa podataka) između tih čvorova. Ovdje treba razlikovati uspostavu veza (i prijenosa podataka) između čvorova koji su izravno vezani i između čvorova koji to nisu. U prvom slučaju govorimo o vezama (tipa točka-točka), a u drugom slučaju o putovima (ili vezama tipa s-kraja-na-kraj). U ovom uvodnom prikazu računalne mreže zanemariti ćemo tu razliku i uzeti da proces povezivanja čvorova omogućava prijenos paketa podataka između krajnjih točaka komunikacije, odnosno između dvaju domaćina koji međusobno komuniciraju. Sloj kojeg smo nazvali povezivanjem procesa povezuje odgovarajuće (istovrsne) procese na čvoru (domaćinu) pošiljatelja i na čvoru primatelja, i time ostvaruje jedan prijenosni kanal čija svojstva odgovaraju potrebama određene aplikacije (mrežne usluge). Ti procesi vode računa o 16
propusnosti (brzini) kanala i o pouzdanosti prijenosa, te upravljaju tokom prijenosa. Aplikacijama smo nazvali one softverske entitete koji izravno omogućuju korisniku da izvrši određene operacije "pomoću mreže" (klijentski sustavi), te one softverske entitete (servere) koji obavljaju poslove na zahtjeve klijenata. Sustavi aplikacijske razine su naprimjer web preglednik i web server. Za sustav koji je podijeljen na podsustave (ili slojeve) može se reći da je modularan. Moduli općenito ne moraju biti uređeni hijerarhijski, nego mogu biti "ravnopravni", ali slojevi mrežnih sustava (čvorova) jesu hijerarhijski uređeni. Pritom svaki modul prima određene ulaze (podatke i zahtjeve) od drugih modula, obavlja određene operacije i proizvodi određene izlaze; ti izlazi mogu biti neki podaci, ili zahtjevi upućeni drugim modulima. Dakle, svaki modul ima određena ulazna i izlazna komunikacijska sučelja, te obavlja određene funkcije (operacije). Odlika modularnog sustava je da svaki modul može biti realiziran na različite načine, bez da to iziskuje promjene drugih modula. Jer sama realizacija modula ne mijenja njegova ulazna i izlazna sučelja, niti njegove funkcije, osim utoliko što ih može učiniti efikasnijima (bržima). Naprimjer, IP je jedan modul (protokol) mreže Internet. Taj modul je precizno definiran na razini ulaza, funkcija i izlaza; međutim, netko bi mogao realizirati te ulaze, funkcije i izlaze na način koji je različit od sadašnjeg; mreža Internet bi sa tim novim entitetom radila jednako kao i sa sadašnjim, s tim da bi brzina njezinog rada zavisila od toga koliko je nova realizacija dobra u usporedbi sa sadašnjom. Novu softversku realizaciju istog IP modula moglo bi se instalirati samo na neke čvorove mreže, ili na sve čvorove. To bi bilo lako učiniti, za razliku od uvođenja novog (različitog) protokola iste namijene, kao što je to IPv6 u odnosu na IPv4; o tome govorimo u četvrtom poglavlju. Slojevi mogu sadržavati više protokola. Na slici 1.8 dana je četveroslojna struktura mrežnog čvora, pri čemu sloj povezivanja procesa sadrži dva protokola. Prvi protokol ostvaruje prijenosne kanale tipa request/reply (zahtjev/odgovor) a drugi ostvaruje prijenosne kanale tipa message stream (tok poruka).
Aplikacije (usluge) Request/reply kanal
Message stream kanal
Povezivanje čvorova Fizički sloj (hardver)
Slika 1.8 Slojevi i protokoli Protokoli koji opisuju mrežne entitete općenito sadrže definicije triju vrsta sučelja. To su sučelje usluga koje protokol pruža entitetima sa sloja iznad sebe, sučelje usluga koje tom protokolu pružaju entiteti sa sloja ispod njega, i sučelje prema istovrsnom (peer) entitetu na drugom čvoru. Svako sučelje definira (1) oblike podataka koji se preko njega mogu razmjenjivati, i (2) zahtjeve za izvršenjem određenih funkcija, koji se mogu postaviti preko tog sučelja. Naravno, najniži sloj nema sloja ispod sebe, a najviši nema sloja iznad sebe; istovrsnim (peer) entitetom nazvali smo isti protokol na drugom čvoru sa kojim promatrani čvor komunicira. Slika 1.9 ilustrira položaj entiteta i spomenuta sučelja. 17
Domaćin 2
...
...
Domaćin 1
sučelje usluga
Si+1
sučelje prema
Pij
Pij sučelje usluga
Si
sučelje usluga
Si+1
istovrsnom entitetu
Si-1
sučelje usluga
Si
...
...
Si-1
Slika 1.9 Slojevi i sučelja Protokol Pij iz sloja Si pruža usluge protokolima iz sloja Si+1iznad sebe; pružati usluge ovdje znači izvršavati određene operacije koje su potrebne da bi protokoli kojima se pružaju usluge izvršili svoje operacije (zadatke). Protokol Pij iz sloja Si pritom koristi usluge protokola iz sloja Si-1 ispod sebe. Protokol Pij izvodi određene operacije sa odlazećim paketom podataka, i postavlja određene bitove u određena polja zaglavlja, čime daje neke informacije istovrsnom protokolu koji radi na čvoru na kojeg se taj paket šalje. Definicije poruka koje razmjenjuju istovrsni protokoli na različitim čvorovima, naziva se sučeljem prema istovrsnom entitetu. Istovrsni protokoli na različitim čvorovima međusobno komuniciraju na taj način da protokol Pij na strani pošiljatelja dodaje svoje zaglavlje sadržaju (paketu) kojeg je primio sa sloja iznad sebe; istovrsni protokol na čvoru primatelja skida to zaglavlje i postupa u skladu sa "uputama" koje je u njemu primio od svog kolege sa drugog čvora. U hijerarhiji protokola, samo protokoli (entiteti) sa najniže (fizičke) razine čvora Pi izravno komuniciraju sa istovrsnim protokolima na čvoru Pj sa kojim je čvor Pi izravno vezan. Protokoli viših razina komuniciraju sa istovrsnim protokolima na drugom čvoru na taj način da dodaju svoja zaglavlja odlazećim paketima; na čvoru primatelja, protokoli na svakom sloju skidaju ona zaglavlja koja su postavili istovrsni protokoli na čvoru pošiljatelja, i postupaju u skladu sa naredbama koje su im dostavljene u tim zaglavljima. Strukturu (stablo) protokola na jednom čvoru može se zorno predstaviti pomoću grafa protokola (protocol graph). Predstaviti strukturu ovdje znači navesti sve protokole koji postoje na čvoru, te sa vezama među njima pokazati koji protokoli koriste usluge kojih protokola, odnosno koji protokoli pružaju usluge kojim protokolima. Slika 1.10 daje primjer jednog takvog grafa protokola. U stvarnosti bi takav graf bio složeniji jer se čvorovi obično sastoje od većeg broja protokola; to posebno vrijedi za domaćine koji imaju velik broj protokola na aplikacijskoj razini.
18
HTTP
SMTP
RRP
...
SNMP
MSP
HHP
NET
Slika 1.10 Graf protokola Graf protokola prikazuje protokole (sve ili neke) jednog čvora, te koji protokoli koriste usluge kojih protokola sloja ispod sebe. Naprimjer, prema slici 1.10 protokol web sustava (HTTP) iz aplikacijskog sloja koristi usluge RRP (request/reply) protokola iz sloja ispod sebe; taj protokol ostvaruje prijenosne kanale između domaćina koji međusobno komuniciraju. RRP protokol koristi usluge HHP (host-to-host) protokola koji ostvaruje prijenos paketa između domaćina. Tom sloju pruža usluge fizički (hardverski) sloj ispod njega, koji izvodi fizički prijenos nizova bitova (paketa, okvira) od čvora do čvora, prema konačnom odredištu (domaćinu), pri čemu put do konačnog odredišta određuje HHP protokol. Fizički sloj smo ovdje označili sa NET, misleći na fizičku mrežu (network) koja stvarno vrši prijenos nizova bitova. Graf protokola može se čitati i odozdo prema gore. Nizovi bitova (paketi, okviri) koje fizički sustav donosi na neki čvor, predaju se HHP protokolu. Na temelju sadržaja HHP zaglavlja koje je HHP protokol dodao podacima na strani pošiljatelja, HHP protokol na strani primatelja zna koje operacije treba izvršiti sa primljenim paketom, i kojem protokolu sa sloja iznad sebe treba predati taj paket. Isto se događa na svakom sloju sve do sloja aplikacija, gdje određena aplikacija prima "čisti" podatkovni sadržaj kojeg joj je uputila istovrsna aplikacija sa drugog domaćina sa kojim ta aplikacija komunicira. Spomenimo da se opisani proces odnosi na domaćine; prijenosnici nemaju sloja aplikacije; umjesto da prosljeđuje primljene pakete "prema gore", sloj HHP na tim čvorovima prosljeđuje pakete dalje, prema konačnom čvoru (domaćinu) kojem su namijenjeni. Podsjetimo da se pojam protokol koristi sa dva značenja. To je definicija (tehnički opis) nekog entiteta, ali tako se naziva i realizacija (softverska ili hardverska) toga entiteta. Definicija entiteta definira sva sučelja entiteta, to jest oblike njegovih ulaznih i izlaznih sadržaja, te operacije koje taj entitet izvodi. Opis entiteta se obično naziva specifikacijom protokola, a njegova realizacija se onda naziva protokolom. Specifikacija pojedinih protokola može biti vrlo opsežna i sadržavati više stotina stranica; neke specifikacije imaju i više od tisuću stranica. Specifikacije protokola izrađuju se pomoću grafičkih elemenata i tekstualnih opisa; ovamo spadaju dijagrami, sheme, definicije, opisi i slično. Pomoću tih sredstava definiraju se strukture ulaznih i izlaznih podataka koje dani entitet prihvaća i koje proizvodi, te operacije (procesi) koje taj entitet izvodi. Protokol ne treba striktno definirati način fizičke realizacije (softverske ili hardverske) danog protokola. Isti protokol može biti realiziran na različite načine. Protokoli se razvijaju i mijenjaju, ali ne tako brzo kao razni drugi hardverski i softverski proizvodi. Središnji protokoli mreže Internet (TCP i IP) ostali su praktički jednaki od početaka 19
Interneta; na promjeni (i zamjeni) IP protokola radi se puno godina, ali ta zamjena još nije provedena u cijelosti. Razvojem i mijenjanjem mrežnih sustava i njihovih protokola bave se institucije kao što su The Internet Society (radne grupe Internet Engineering Task Force - IETF i Internet Research Task Force - IRTF), International Telecommunication Union (ITU), i International Standards Organization (ISO).
Inkapsulacija Inkapsulacija (encampuslation) ovdje znači umetanje nekog sadržaja u neko pakiranje, koje se zatim umeće u neko drugo pakiranje, i tako nekoliko puta. Takvo višestruko pakiranje sadržaja koji se upućuju u mrežu, odvija se na domaćinu pošiljatelju. Višestruko pakirani sadržaj prenosi se mrežom; kad takav paket stigne na odredište, onda se na svakom sloju skida jedno pakiranje; na kraju tog procesa, čisti sadržaj predaje se odgovarajućoj aplikaciji na domaćinu primatelju. Proces pripreme sadržaja za prijenos (to jest, proces inkapsulacije), te njegovog procesiranja na domaćinu primatelju, ilustriran je na slici 1.11. D1
D2
Ai
Ai
Sadržaj
Sadržaj
RRP RRP
RRP
Sadržaj
RRP
Sadržaj
HHP HHP
RRP
Sadržaj
HHP HHP
RRP
Sadržaj
Mreža
Slika 1.11 Inkapsulacija Aplikacija Ai sa domaćina D1 šalje neki sadržaj istovrsnoj aplikaciji Ai na domaćinu D2. Aplikacija Ai predaje taj sadržaj protokolu RRP koji se nalazi u sloju ispod nje, i koji je uspostavio odgovarajući prijenosni kanal između aplikacije Ai na domaćinu D1 i istovrsne aplikacije na domaćinu D2. Time počinje proces inkapsulacije: RRP umeće primljeni sadržaj u svoje pakete 20
(koje se naziva segmentima), čija je struktura definirana sa RRP protokolom. Ono što ovdje nazivamo umetanjem svodi se na to da protokol RRP dodaje svoje zaglavlje sadržaju kojeg je primio. Protokol RRP predaje svoj paket protokolu HHP sloja ispod sebe; HHP protokol umeće primljeni paket u svoj paket; umetanje se opet svodi na izvođenje određenih operacija sa primljenim paketom i na dodavanje HHP zaglavlja tom paketu. Tako zapakiran sadržaj predaje se sustavu za fizički prijenos nizova bitova (NET) koji izvodi fizički prijenos tog niza bitova (paketa, sadržaja) do slijedećeg čvora, i tako do konačnog odredišta. O fizičkom prijenosu od čvora do čvora (point-to-point) i od izvora do odredišta (end-to-end) govorimo podrobnije (preciznije) u slijedećim poglavljima. Za sada recimo da se paket podataka upućuje u mrežu tako, da se preda hardverskoj razini čvora, koja ga onda prenosi na usmjerivač na kojeg je taj domaćin vezan. Taj usmjerivač zatim prosljeđuje paket do slijedećeg čvora (usmjerivača), prema njegovom konačnom odredištu; u danom primjeru, prema domaćinu D2. Prosljeđivanje prema odredištu izvodi se na osnovu sadržaja zaglavlja paketa (taj sadržaj uključuje adresu odredišta) i prema tablicama prosljeđivanja na usmjerivačima, koje pokazuju kojim putem treba proslijediti paket koji je upućen na određeno odredište (adresu). Jedinice podataka koje šalje aplikacija nazivamo porukama. Poruka aplikacije može biti (i često jest) mnogo veća od veličine paketa koji se prenose mrežom. U tom slučaju se jednu poruka dijeli u više (mnogo) paketa podataka. Preciznije rečeno, poruke se dijele na više segmenata (RRP razina), dok je veličina segmenata takva da se mogu uvrštavati u pakete (HHP razina). O tim stvarima govorimo podrobnije u poglavljima koja slijede. O inkapsulaciji se govori kao o "umetanju" primljenog sadržaja u novi paket. Međutim, točnije je reći da se polaznom podatkovnom sadržaju na pošiljatelju D1, na svakom sloju dodaje po jedno zaglavlje koje sadrži upravljačke sadržaje koji su namijenjeni istovrsnom entitetu na primatelju D2; ti upravljački sadržaji kazuju odgovarajućim entitetima na D2 što trebaju učiniti (na danoj razini) sa primljenim paketom. Zaglavlja općenito sadrže upravljačke sadržaje, među koje spadaju adresa pošiljatelja i adresa primatelja tog paketa. Kod nekih sustava, na nekim razinama upravljački sadržaji dodaju se na kraj paketa, ali to ne mijenja bit stvari; takve dodatke možemo zvati repom (trailer) paketa. Podatkovni sadržaj koji se prenosi u HHP paketu naziva se tijelom (body) tog paketa, bez obzira što to tijelo sadrži i zaglavlje RRP paketa. Tijelo paketa se često naziva i korisnim teretom (payload); taj pojam izvorno znači teret (na brodu) za čiji se prijevoz plaća; ostali tereti na brodu postoje zato da omoguće prijevoz onog tereta za kojeg se plaća; slično vrijedi i za niz zaglavlja sa slike 1.11; svako od tih zaglavlja služi tome da ostvari prijenos tijela toga paketa. Dakle, sadržaj kojeg aplikacija Ai šalje "u mrežu" umeće se u pakete RRP protokola; na sloju ispod njega, ti paketi umeću se u pakete HHP protokola. HHP paketi se onda predaju razini fizičkog prijenosa (Mreža, NET) koja izvodi fizički prijenos paketa (nizova bitova; signala) do slijedećeg čvora na putu do konačnog odredišta. Postoje razni sustavi fizičke razine prijenosa; neki od tih sustava lome primljene pakete u niz svojih (manjih) paketa (okvira, ćelija) i prenose ih na odredište, gdje onda iz tih okvira (ćelija) ponovno formiraju izvorni (polazni) paket. Fizički prijenos izvodi se između dvaju čvorova koji su izravno međusobno povezani. Kad paket na svom putu od izvora do odredišta prolazi kroz prijenosnike (usmjerivače), onda se proces fizičkog prijenosa izvodi (i oblikuje) na svakoj dionici puta zasebno. Jednu dionicu čini veza između izvora i prvog prijenosnika, između svaka dva prijenosnika, te između zadnjeg prijenosnika i konačnog odredišta. To oblikovanje odnosi se samo na niže razine (ovdje HHP i Mreža) jer prijenosnici nemaju (i ne trebaju) viših razina. Kad dospiju na konačno odredište, sadržaji se "penju" od fizičke razine prema gore, do razine aplikacije. Najprije se iz nizova bitova koje je prenio sustav za fizički prijenos sadržaja (Mreža) formira paket HHP sloja, kakav je bio predan sustavu Mreža na strani pošiljatelja. Protokol HHP sloja "skida" HHP zaglavlje sa tog paketa i izvršava ono što mu je tim zaglavljem 21
poručio (naredio) istovrsni entitet sa čvora pošiljatelja. Tijelo toga paketa prosljeđuje sloju iznad sebe; u ovom primjeru, protokolu RRP. Taj protokol postupa na sličan način kao protokol ispod njega, i predaje tijelo paketa ("Sadržaj") aplikaciji Ai na domaćinu D2, kojoj je taj sadržaj bio upućen (od aplikacije Ai na D1). Dakle, aplikacije ne vide zaglavlja (pakiranja) koje slojevi (protokoli) ispod aplikacijske razine dodaju njenim sadržajima (na strani pošiljatelja) i skidaju ih nakon prijenosa tih sadržaja na odredište. Na strani pošiljatelja, svaki protokol upisuje u zaglavlje koje dodaje paketu i podatak o tome kojem protokolu iz sloja iznad sebe treba istovrsni protokol na primatelju predati tijelo primljenog paketa. Protokoli na razinama nižim od aplikacijske ne promatraju (interpretiraju) sadržaje (tijela paketa) koje prenose. Ali ti protokoli ponekad izvode neke operacije sa tim sadržajima i mijenjaju neke zapise u određenim zaglavljima paketa koje prenose. Nadalje, ako uzmemo da komprimiranje i šifriranje (enkripcija) sadržaja nisu dijelovi same aplikacije koja šalje sadržaje, onda se može reći da se izvorni sadržaji mogu transformirati u procesu prijenosa. Prijemna strana izvodi inverzne (obrnute) transformacije, i time dobiva izvorne sadržaje koji su joj bili upućeni. To vrijedi za šifriranje sadržaja, ali ne uvijek i za komprimiranje sadržaja; neka komprimiranja sadržaja uključuju nepovratne gubitke, naprimjer nekih nijansi boja na slici. O tim stvarima biti će više riječi u drugom dijelu ovog teksta.
1.5 OSI arhitektura mreže International Standards Organization (ISO) ima više tisuća radnih grupa koje se bave poslovima razvoja standarda (standardizacije) za mnoge vrste proizvoda. ISO je definirala jedan (teorijski) model strukture ("arhitekture") računalnog sustava koji omogućava međusobnu razmjenu sadržaja s drugim takvim sustavima. Struktura takvog sustava (čvora) ujedno određuje vertikalnu arhitekturu računalne mreže, kako je to ranije rečeno. Taj model nazvan je OSI arhitekturom. OSI je akronim (kratica) od Open Systems Interconnection, što znači "međusobno povezivanje otvorenih sustava". OSI model razvijao se otprilike u isto vrijeme (ili malo kasnije) kada je razvijana računalna mreža Internet, koja se tada zvala ARPANET. U nastavku ovog poglavlja iznosimo OSI model i model mreže Internet; ta dva modela imaju bitne sličnosti, ali se i razlikuju u nekim stvarima, tako da je teško reći u kojoj su mjeri utjecali jedan na drugog. OSI model sastoji se od sedam slojeva, pri čemu svaki sloj može sadržavati jedan ili više protokola. Na slici 1.12 dan je grafički prikaz OSI modela, oblikovan na način kako se taj model obično prikazuje. Pritom po sedam slojeva imaju domaćini, dok prijenosnici (usmjerivači) imaju samo tri sloja, jer su preostala četiri sloja vezana uz rad aplikacija, koje rade na domaćinima, ne na prijenosnicima. Prijenosnici (usmjerivači) koji tvore prijenosni sustav mrežnog sustava kao cjeline, imaju tri sloja koja su dovoljna za ostvarenje prijenosa.
22
D1
D2
Aplikacije
Aplikacije
Prezentacija
Prezentacija
Sesija
Sesija
Kontrola prijenosa
Kontrola prijenosa
Mrežni sloj
Mrežni sloj
Mrežni sloj
Mrežni sloj
Sloj veze podataka
Sloj veze podataka
Sloj veze podataka
Sloj veze podataka
Fizički sloj
Fizički sloj
Fizički sloj
Fizički sloj
...
Slika 1.12 Slojevi OSI modela OSI model se obično opisuje počevši od najniže razine. Fizički sloj (physical layer) čini hardver od kojeg se mreža sastoji. Taj hardver ostvaruje fizički prijenos nizova bitova (ili signala) između čvorova mreže. Na tom hardveru radi sav softver koji omogućava mrežnu komunikaciju. Prije slanja u vezu prema susjednom čvoru, nizovi bitova uređuju se u cjeline određene strukture; tako uređeni nizovi bitova nazivaju se okvirima (frames). Okviri su "paketi" niže (fizičke) razine; okvir ima zaglavlje sa adresom čvora na kojeg se šalje, ali to je fizička adresa čvora (mrežne kartice), a ne logička adresa čvora (kakva je IP adresa). Slaganje bitova u okvire izvodi se na sloju (veze) podataka (data link). Valjda se tim nazivom htjelo reći da se na toj razini sustava uspostavlja razmjena podataka između čvorova, a ne samo razmjena niza signala, kako je to slučaj na fizičkoj razini. Taj sloj realizira se hardverski, u mrežnoj kartici sa kojom se računalo vezuje na mrežu i time postaje čvorom te mreže. Radom mrežne kartice upravlja program (drajver) koji se izvodi na tom čvoru. O fizičkom sloju i o sloju veze podataka govorimo u drugom poglavlju. Kod mreža sa usmjeravanjem paketa, zadatak mrežnog sloja (network layer) je da usmjerava pakete od izvora do odredišta. Na toj razini, jedinice podataka koje putuju mrežom nazivaju se paketima (packets), ali pojam paket se često koristi kao opći naziv za jedinice podataka i na drugim razinama mrežnog sustava. Fizički sloj i sloj veze podataka uspostavljaju veze i prenose pakete (okvire) između dvaju čvorova koji su izravno međusobno povezani. Međutim, da bi stigli od izvora do odredišta, paketi često trebaju proći kroz više prijenosnika (usmjerivača), što znači kroz više međusobno povezanih čvorova. Uloga mrežnog sloja je da omogući prijenosnicima da prosljeđuju pakete prema njihovom odredištu; drugim riječima, mrežni sloj je onaj sloj koji određuje put paketa kroz mrežu, od izvora do odredišta. Kod mrežnih sustava koji rade po načelu 23
uspostavljanja putova, uloga mrežnog sloja je ista. Ovdje taj sloj omogućava uspostavu virtualnog (privremenog) puta od izvora do odredišta u danoj komunikaciji; tim putem se zatim odvija sav prijenos sadržaja u toj komunikaciji. O mrežnom sloju govorimo u trećem poglavlju. Prva tri sloja (odozdo) trebaju postojati na svakom čvoru sastavljene mreže da bi taj čvor mogao funkcionirati kao element takve mreže. Preostala četiri sloja odnose se na ostvarenje određenih osobina prijenosa (pouzdanost, brzinu), te na rad aplikacija, tako da ti slojevi postoje samo na domaćinima, na kojima rade aplikacije. Sloj kojeg smo nazvali kontrola prijenosa obično se naziva transportnim slojem; puni naziv toga sloja glasi Transport Control Layer (ili Protocol), s tim da je naglasak ovdje na "control". Fizički prijenos podataka odvija se na najdonja dva sloja, dok mrežni sloj (treći odozdo) usmjerava pakete prema konačnom odredištu. Sloj "kontrole prijenosa" bilo bi dobro zvati slojem upravljanja prijenosom, jer taj sloj ne izvodi fizički prijenos podataka, nego upravlja procesom prijenosa; to upravljanje uključuje kontrolu ispravnosti onog prijenosa kojeg su ostvarili slojevi ispod ovog sloja. Englesku riječ "control" treba češće prevoditi sa "upravljanje" nego sa "kontrola"; u ovom slučaju, četvrti sloj OSI modela odnosi se na upravljanje prijenosom i na kontrolu njegove ispravnosti. O tom sloju govorimo opširnije u predmetu "Računalne mreže 2". Za upravljanje prijenosom podataka potrebno je uspostaviti izravnu komunikaciju između odgovarajućih procesa (protokola) na domaćinu pošiljatelja i na domaćinu primatelja. Na temelju te komunikacije utvrđuju se svojstva konkretnog procesa prijenosa i provjerava se ispravnost tog prijenosa. Postoji više protokola razine kontrole prijenosa. Neki od tih protokola jamče pouzdanost (točnost) prijenosa, dok drugi ne jer u nekim situacijama to nije nužno ni korisno. Pouzdanost prijenosa obično se postiže na slijedeći način. Kad protokol razine kontrole prijenosa na domaćinu primatelja utvrdi da je došlo do greške u prijenosu, onda postupa na način da istovrsni entitet na domaćinu pošiljatelja pokrene ponovno slanje onih paketa kod kojih je došlo do grešaka u procesu prijenosa (do iskrivljenja ili gubitaka). Sloj kontrole ispravnosti prijenosa je najniži sloj mrežnog sustava na kojem istovrsni procesi sa domaćina pošiljatelja i sa domaćina primatelja međusobno izravno komuniciraju. Zato se kaže da su protokoli te razine end-to-end protokoli. O preostala tri sloja OSI modela postoje različita mišljenja. Sloj aplikacija (application layer) treba svakako postojati; na toj razini rade aplikacije (serveri i klijenti) koje korisnicima pružaju razne mogućnosti rada sa računalnom mrežom (usluge, servise). Najpoznatije su aplikacija za rad sa računalnom poštom (protokol SMPT) i ona za rad sa web stranicama (protokol HTTP). Postoje brojne druge aplikacije i njihov broj stalno raste. Međutim, pitanje je što sve spada na aplikacijsku razinu, odnosno koliko "duboko" ta razina treba sezati. Sloj predstavljanja (presentation layer) namijenjen je rješavanju problema koji mogu nastati zbog različitih načina (fizičkog) zapisivanja sadržaja na čvoru pošiljatelja i na čvoru primatelja. Brojevi, boje i drugi sadržaji mogu biti zapisani na različite načine na računalu (domaćinu) koje šalje neki sadržaj i na računalu koje taj sadržaj prima i na kojem se taj sadržaj treba prikazati (na ekranu). O tom sloju govori se relativno malo; tu se javlja i problem kako razdijeliti poslove između sloja predstavljanja i aplikacijskog sloja. U osnovi, sve ono što ne ostvaruje prijenos, može se svrstati na aplikacijsku razinu; s druge strane, postoje razlozi da se ono što ne ostvaruje prijenos razdijeli na više slojeva. Za sloj sesije (session layer) kaže se da povezuje različite sadržaje koji su dio iste komunikacije. Naprimjer, taj sloj treba ujedinjavati video sadržaje (snimke) i zvukovne sadržaje (glas), koji zajedno čine "sadržaj" kojeg proizvodi jedan učesnik telekonferencije, i koji (sadržaj) treba biti prenijet na domaćine ostalih učesnika te telekonferencije. O sloju sesije govori se relativno malo i njegova uloga nije sasvim jasno definirana; postoje mišljenja da se funkcije toga sloja mogu svrstati na aplikacijsku razinu. Dakle, opisi slojeva predstavljanja i sesije su obično kratki i nisu naročito precizni. Postoje tvrdnje da ta dva sloja ne trebaju postojati kao zasebni slojevi, i da su funkcije koje oni obavljaju 24
(ili trebaju obavljati) zapravo stvar (dio) aplikacijskog sloja. U Internet modelu (arhitekturi) mreže, ti slojevi ne postoje kao zasebni, a njihove funkcije svrstane su na aplikacijsku razinu. Međutim, slojevi se ponekad dijele na dva ili više podsloja, tako da podjelu na slojeve treba općenito shvatiti kao okvirnu podjelu funkcija na grupe, pri čemu u nekim situacijama postoje razlozi da se ta podjela mijenja.
1.6 Arhitektura Interneta Računalna mreža Internet nastala je 1983. godine iz prvotne računalne mreže ARPANET čiji je razvoj počeo 1969. godine. Početak rada na razvoju računalne mreže financirala je agencija Advanced Research Projects Agency (ARPA), prema kojoj je prva mreža dobila ime. ARPA je jedna od agencija Ministarstva obrane SADa, koja se bavi financiranjem raznih istraživačkih i razvojnih projekata koji su zanimljivi za Ministarstvo obrane. Agencije ne izvode poslove, nego ugovaraju poslove sa institucijama koje izvode poslove. Rad na razvoju računalne mreže ARPANET (a time i Internet) započeo je prije nego što je bio definiran OSI model. Arhitektura Internet čvorova (a time i Internet mreže) razvijena je kroz praksu i u skladu sa konkretnim potrebama koje je nalagao razvoj računalne mreže koja funkcionira dobro. Arhitektura Internet čvorova obično se naziva TCP/IP arhitekturom, prema njenim glavnim protokolima, IP (Internet Protocol) i TCP (Transmission Control Protocol). Arhitektura (ili hijerarhijska struktura) Internet čvorova prikazana je na slici 1.13. D1
D2
Aplikacije
Aplikacije
Kontrola prijenosa
Kontrola prijenosa
Mrežni sloj
Mrežni sloj
Fizički sloj
Fizički sloj
...
Mrežni sloj
Mrežni sloj
Fizički sloj
Fizički sloj
Slika 1.13 Slojevi Internet modela
Za razliku od OSI modela (arhitekture) koji se sastoji od sedam slojeva, Internet model (arhitektura) sastoji se od četiri sloja. Drugim riječima, mrežni čvor (kao jedan sustav) podijeljen je na četiri podsustava (sloja) umjesto na sedam. Time je i mreža Internet postala sustav čija vertikalna arhitektura ima četiri sloja. Najniži, fizički sloj, ili sloj fizičkog prijenosa podataka, sastoji se od hardvera i softvera koji zajedno ostvaruju fizički prijenos sadržaja (nizova bitova, signala) između čvorova. Hardver obuhvaća sve fizičke elemente mreže. Ovamo spada mrežna kartica, čijim radom upravlja softver (drajver) koji se izvodi na čvoru (računalu) kojeg ta kartica vezuje na mrežu. Za prijenos podataka 25
potrebni su i nosioci podataka koji povezuju čvorove (to jest, njihove mrežne kartice); nosioci su bakrene žice, optička vlakna, i elektromagnetski valovi kod bežične komunikacije. Internet model ne opisuje podrobno fizički sloj; ovdje se uzima da čvor mreže Internet predaje svoje IP pakete fizičkom sloju ispod sebe i da taj sloj prenosi svaki paket na onaj susjedni čvor na kojeg mu je to zadano (na temelju IP adrese iz zaglavlja tog IP paketa). Procesi fizičkog prijenosa izvode prijenos paketa od čvora do čvora, počevši od izvora pa do konačnog odredišta paketa. Postoje razni sustavi koji pružaju usluge fizičkog prijenosa danih nizova bitova (kao što su IP paketi) na zadanu fizičku adresu čvora, tako da pitanje fizičkog prijenosa ovdje nije problem, a nije ni predmet Internet modela. O fizičkom prijenosu podataka (nizova bitova, nizova signala) govorimo u drugom poglavlju. U načelu, može se reći da sloj fizičkog prijenosa u Internet arhitekturi (modelu) računalne mreže obuhvaća ono što kod OSI modela spada u fizički sloj i u sloj veze podataka. Dakle, najdonji sloj Internet modela "potrošio" je dva najdonja sloja OSI modela. Drugi sloj odozdo u arhitekturi Interneta naziva se Internet protokolom (Internet Protocol IP). Po svojstvima i funkcijama koje obavlja, taj sloj odgovara mrežnom sloju u OSI modelu. Mrežni sloj može se smatrati središnjim (glavnim) elementom računalne mreže. Dakle, IP je središnji element mreže Internet, kako na razini modela, tako i na razini funkcioniranja te računalne mreže. IP definira strukturu paketa podataka koji se prenose mrežom, adresni prostor (način adresiranja čvorova) u kojem se paketi kreću, i način prenošenja (prosljeđivanja) paketa od izvora do odredišta. U operativnom smislu, možemo reći da IP sloj (sadržaj zaglavlja IP paketa i funkcije na usmjerivačima) vodi IP pakete od izvora do odredišta. To je glavni zadatak mrežnog sloja u OSI modelu, tako da se IP sloj može nazvati mrežnim slojem u računalnoj mreži Internet. Sloj upravljanja prijenosom, kojeg se obično naziva transportnim slojem, u Internet modelu sadrži dva protokola: TCP (Transmission Control Protocol) i UDP (User Datagram Protocol). Za protokole te razine kaže se da su tipa s-kraja-na-kraj (end-to-end) jer uspostavljaju komunikaciju između istovrsnih procesa na krajnjim čvorovima (na izvoru i na odredištu) jedne komunikacije, odnosno jednog prijenosnog kanala preko kojeg se ta komunikacija odvija. Na temelju te komunikacije, krajnji čvorovi (izvor i odredište) upravljaju radom prijenosnog kanala, odnosno prijenosom podataka za potrebe one aplikacije koja je tražila uspostavu toga prijenosnog kanala. TCP protokol ostvaruje pouzdan prijenos sadržaja. To čini na taj način da kod nastanka greške u prijenosu ne potvrđuje primitak onih paketa čiji su sadržaji iskrivljeni ili izgubljeni u procesu prijenosa ("na putu"); time zahtijeva od istovrsnog entiteta na domaćinu pošiljatelja da pokrene ponovno slanje tih paketa. UDP to ne čini; taj protokol ne ispravlja greške u prijenosu; zato se kaže da kod primjene tog protokola transportne razine, prijenos nije pouzdan. UDP se koristi kod onih prijenosa kod kojih je brzina prijenosa važnija od potpune točnosti; to je obično slučaj kod video sadržaja, pogotovo kod izravnog prijenosa događaja, gdje ispravljanje grešaka obično ne bi imalo smisla jer događaj se odvija dalje. U oba slučaja, sam proces prijenosa IP paketa (na IP i fizičkoj razini) odvija se jednako, ali TCP ispravlja greške koje nastaju na tim razinama, dok UDP to ne čini. Aplikacijski sloj sastoji se od brojnih softverskih sustava (aplikacija, usluga, servisa) koji korisnicima pružaju razne mogućnosti rada sa računalnom mrežom. Poznati protokoli aplikacijske razine su SMPT (Simple Mail Transfer Protocol), koji definira rad sustava računalne pošte, i HTTP (HyperText Transport Protocol), koji definira rad web sustava. Već smo rekli da imena nekih mrežnih entiteta nisu sasvim prikladna; pojmovi "transfer" i "transport" u nazivima ovih protokola ne znače da su to protokoli "transportne" razine (to jest, razine upravljanja prijenosom); usprkos nazivima, to su protokoli aplikacijske razine. Podsjetimo da protokol, ili točnije, specifikacija protokola, definira svojstva i funkcije nekog mrežnog entiteta (ulaze, izlaze, operacije), ali ne i način njegove realizacije. Različiti 26
softverski sustavi mogu realizirati neki entitet definiran nekom specifikacijom protokola, na različite načine. Naprimjer, postoji više preglednika kao softverskih proizvoda (Firefox, Internet Explorer, Lynx, i drugi). Isto tako postoje razni softverski sustavi koji rade kao web serveri. Da bi svi ti proizvodi omogućavali rad sa web stranicama, treba biti definiran jedinstven sustav za komunikaciju i prijenos sadržaja između web servera i preglednika; ovdje je taj sustav definiran sa protokolom HTTP. Arhitektura Interneta se često prikazuje na način kako je to učinjeno na slici 1.14. Međutim, takav prikaz je zapravo graf protokola, koji na razini aplikacija navodi protokole nekih aplikacija, a na transportnoj i na mrežnoj razini navodi konkretne protokole Interneta, što sam model ne mora činiti, kao što to ne čini OSI model koji je dan na slici 1.12.
HTTP
SMTP
FTP
TCP
SNMP
UDP
IP
NET1
NET2
...
NETn
Slika 1.14 Slojevi i protokoli
Elemente (protokole i simbole) sa slike 1.14 objasnili smo ranije. Podsjetimo samo da su NET1, ..., NETn razni sustavi za fizički prijenos uređenih nizova bitova. IP razina mreže Internet koristit usluge tih prijenosnih sustava, za fizičku realizaciju prijenosa IP paketa podataka. Internet je u stvari softverski sustav koji se oslanja na usluge (softverske i hardverske) računalnih sustava na kojima radi. Kaže se da Internet arhitektura omogućava aplikacijama da "zaobiđu" transportni sloj (protokole TCP i UDP) i da izravno koriste usluge IP sloja (protokola). Štoviše, aplikacija može zaobići i IP protokol, i izravno koristiti usluge sloja fizičkog prijenosa, kako to pokazuje slika 1.15.
27
Aplikacije TCP
UDP IP Fizički sloj
Slika 1.15 Obilaženje slojeva/protokola Dakle, aplikacija može koristiti protokole transportnog sloja (ispod sebe), ili pak zaobići taj sloj i "sjesti" izravno na IP sloj; nadalje, aplikacija može zaobići i IP sloj i "sjesti" izravno na fizički sloj. Aplikacija je softverski sustav i taj sustav može biti napravljen na razne načine. Ovdje je mišljeno da se kod izrade (oblikovanja i programiranja) neke aplikacije može zaobilaziti (to jest, ne koristiti) usluge nekih protokola mreže Internet. Međutim, programer koji izrađuje neku aplikaciju trebao bi imati valjane razloge za to da zaobilazi neke slojeve Interneta (ti razlozi se u literaturi ne navode). Nadalje, ako programer aplikacije ne koristi standardne protokole mreže Internet, onda treba programski napraviti one funkcije (operacije) koje ti protokoli izvode. Konačno, ako neka aplikacija zaobiđe IP protokol, onda tu aplikaciju ne bi trebalo smatrati Internet aplikacijom. S druge strane, tu aplikaciju može se smatrati Internet aplikacijom ako pruža one usluge aplikacijske razine koje pruža neka standardna Internet aplikacija. U svakom slučaju, ne vidi se zašto zaobilaziti one usluge (funkcije) koje postoje i koje su temeljni elementi računalne mreže Internet. S druge strane, slika 1.15 može sugerirati da aplikacije mogu koristiti usluge fizičkog sloja pored usluga TCP/UDP i IP sloja; ali to je druga stvar i takva mogućnost izgleda korisnom. IP protokol je središnji element Internet arhitekture (sustava, mreže). Iznad IP sloja mogu postojati razni protokoli za upravljanje prijenosom, te brojne aplikacije na sloju iznad tih protokola. Ispod IP sloja mogu postojati razni sustavi za fizički prijenos uređenih nizova bitova (paketa). S druge strane, IP definira jedinstvenu strukturu paketa podataka (IP paket) i jedinstven sustav adresiranja (IP adresni prostor); ta dva elementa čine suštinu mreže Internet i omogućuju uspostavu jedinstvenog sustava za prijenos podataka između različitih računala i mreža. Svako računalo (čvor) u mreži Internet može "interno" raditi na svoj način, ali svaki čvor u mreži treba procesirati IP pakete i koristiti IP adrese na jednak (ekvivalentan) način, da bi bio član mreže Internet. Ranije smo opisali kako se paketi prenose sa sloja na sloj, "prema dolje" na strani pošiljatelja, a "prema gore" na strani primatelja. Takvo prenošenje stvara dojam da se sadržaji paketa kopiraju iz memorijskog prostora jednog sloja u memorijski prostor drugog sloja, i tako nekoliko puta. Međutim, mrežni sustavi napravljeni su na način koji minimizira takva kopiranja. Procesori postaju sve brži; memorije isto postaju sve brže, ali je porast brzine rada memorija mnogo manji nego porast brzine rada procesora. Zato se složeni (višeslojni) sustavi nastoje realizirati na način koji iziskuje čim manje kopiranja memorijskih sadržaja. Kod mrežnih sustava, to se može postići na taj način da svi protokoli izvode svoje operacije na istom memorijskom zapisu paketa (sadržaja), bez da taj zapis kopiraju (negdje drugdje). Dakle, načelno govoreći, sadržaj paketa memorira se jednom, a svi protokoli onda dodaju zaglavlja i izvode razna računanja i kontrole na istom zapisu, koji se na kraju šalje u mrežu. Na isti način postupa se na čvoru primatelja, s tim da protokoli ovdje skidaju zaglavlja koja su postavili istovrsni protokoli na čvoru pošiljatelja; na 28
kraju se "čisti" podatkovni sadržaj predaje aplikaciji kojoj je namijenjen.
1.7 Kapacitet mreže i pouzdanost Dva osnovna pojma koja se javljaju u govoru o performansama računalnih mreža su propusnost (throughput) i zadržavanje (latency, delay). Propusnost veze je broj bitova koje ta veza može prenijeti u jedinici vremena, pri čemu se kao jedinica vremena uzima jedna sekunda. Ako neka veza može prenijeti 10 milijuna bitova u sekundi, onda je njena propusnost 10 Mbps. Ovdje "M" znači "mega", a "p" znači "u" (ili "po"; per). Propusnosti veza stalno rastu; taj porast se u velikoj mjeri postiže smanjenjem vremenskog trajanja signala sa kojima se prenose bitovi. Slika 1.16 pokazuje na koji način se to postiže.
(a) 1 sekunda
(b) 1 sekunda
(c) 1 sekunda
Slika 1.16 Trajanje/širina signala Čim kraće traje jedan signal (čim "uži" je njegov zapis), tim više signala može "stati" u jednu sekundu, a to praktički znači biti prenijeto u jednoj sekundi. Porast preciznosti tehnoloških elemenata omogućava generiranje i čitanje sve užih (kraćih) signala, a time i stalni porast propusnosti veza. Propusnost veza općenito zavisi od njihovih fizičkih svojstava i od procesa kroz koje prolaze nizovi bitova (signala) koji se prenose tom vezom. Propusnost veze između dvaju čvorova koji su međusobno vezani izravnom vezom određena je fizičkim svojstvima te veze (i čvorova), može se utvrditi mjerenjem, i obično je stabilna (postojana). S druge strane, propusnost veza (putova) između čvorova koji su povezani preko drugih čvorova (preko prijenosnika) je teže utvrditi i ona je općenito nestalna. Propusnost takvih (neizravnih) veza zavisi od toga koliko se nizovi bitova (paketi) zadržavaju na čvorovima (prijenosnicima) kroz koje prolaze na putu od izvora do odredišta. To zadržavanje na prijenosnicima zavisi od toga koliko je pojedini prijenosnik opterećen prilivom paketa u trenutku kad na njega stigne neki promatrani paket: čim više je 29
prijenosnik opterećen, tim više će paket čekati u prijemnoj memoriji toga prijenosnika prije nego bude proslijeđen dalje. Pojam širina frekventnog pojasa (bandwith) blizak je pojmu propusnost i mjeri se istim mjernim jedinicama, to jest, brojem bitova koje veza prenosi u sekundi. Širina frekventnog pojasa izražava neki raspon frekvencija; naprimjer, klasične telefonske veze prenose frekvencije od 300 Hz do 3300 Hz; dakle, širina njihovog frekventnog pojasa iznosi 3000 Hz. Jedan Hz (Hertz) je jedan "njihaj" (promjena signala) u sekundi; 100 Hz je 100 njihaja u sekundi. Čini se da je pojam širine frekventnog pojasa dospio u računalne mreže zato što veća širina frekventnog pojasa nekog nosioca signala općenito znači da taj nosioc može prenijeti veći broj bitova u sekundi. U praksi, pojam širina frekventnog pojasa neke veze obično označava broj bitova u sekundi, koje ta veza može prenijeti (prema svojim fizičkim i tehničkim svojstvima). Međutim, u nekoj konkretnoj realizaciji, veza može ne postizati te (teorijski moguće, maksimalne) vrijednosti; broj bitova koje veza stvarno prenosi u sekundi (u danom trenutku), je propusnost te veze. Propusnost može biti manja od širine frekventnog pojasa (nominalnog kapaciteta) iz više razloga. Veza može ne biti napravljena dobro; to vrijedi za njene hardverske i softverske komponente. Vanjske elektromagnetske smetnje mogu ometati rad veze (izazivati iskrivljenja bitova koji se prenose) i time umanjivati učinkovitost njena rada. Tako se događa da veza čija širina frekventnog pojasa iznosi 10 Mbps, ima propusnost 8 Mbps, ili samo 3 Mbps. Razlika između širine frekventnog pojasa i propusnosti je obično veća kod veza koje nisu izravne, nego prolaze kroz više čvorova. Zadržavanje Zadržavanje neke veze je vrijeme koje je potrebno da signal (kao nositelj sadržaja) stigne s jednog kraja veze na drugi kraj. Kao i kod propusnosti, razlikujemo zadržavanje u pojedinačnim vezama (tipa točka-točka) između dvaju izravno vezanih čvorova, i zadržavanje u sastavljenim vezama (tipa s-kraja-na-kraj) koje prolaze kroz više čvorova. U prvom slučaju, zadržavanje se dade precizno odrediti, dok u drugom slučaju zadržavanje zavisi od više faktora koji se mijenjaju, tako da se i zadržavanje mijenja s vremenom. Kod sastavljenih veza zadržavanje bitno zavisi od stanja (opterećenosti) čvorova kroz koje te veze prolaze. Zadržavanje se mjeri u milisekundama (ili u sekundama). Naprimjer, minimalno vrijeme koje je potrebno signalu (električnom ili optičkom) da stigne sa istočne obale SAD na zapadnu, iznosi 24 milisekunde. Stvarno zadržavanje na tako dugom putu je veće, jer ako signal i ne prolazi kroz prijenosnike, potrebno je da prođe kroz veći broj obnavljača signala; obnavljači zamjenjuju signal koji pomalo gubi oblik na putu, sa novim signalom. Zato se obično uzima da zadržavanje na putu iznosi otprilike dvostruko (ili više) od vremena koje je teorijski potrebno signalu da stigne s jednog kraja veze na drugi. Prijenos podataka obično iziskuje dvosmjernu komunikaciju između čvorova pošiljatelja i primatelja; vrijeme koje je potrebno da signal stigne od pošiljatelja do primatelja i natrag, naziva se povratnim vremenom ili vremenom povratnog puta (round-trip time RTT). Kao i kod putovanja u jednom smjeru, obično se uzima da je stvarno vrijeme povratnog puta dvostruko veće od njegove teorijski minimalne vrijednosti. Takvo povećavanje očekivanog zadržavanja na vezama potrebno je zato jer signali na putu obično prolaze kroz razne naprave (prijenosnike i obnavljače signala), što izaziva njihova dodatna zadržavanja (procesiranja i čekanja), čime stvarno zadržavanje na nekoj vezi postaje znatno veće od onog zadržavanja koje slijedi iz same brzine širenja signala u danom nosiocu signala. Minimalno (teorijsko) zadržavanje određeno je fizikalnim svojstvima stvarnosti (materijala) i ne može se promijeniti. Najveća poznata brzina širenja signala je brzina svjetlosti, koja iznosi nešto manje od 300 tisuća kilometara u sekundi. Tom brzinom može se napraviti sedam i pol krugova oko Zemlje (na ekvatoru) u jednoj sekundi. Električni signal u bakrenom vodiču kreće se 30
brzinom od 230 tisuća kilometara u sekundi, a optički signal u optičkom vlaknu kreće se brzinom od 200 tisuća kilometara u sekundi. Između čvorova se obično ne prenosi samo jedan signal (bit), nego se prenose jedinice podataka (paketi, okviri). Vrijeme koje je potrebno da jedan paket stigne od izvora do odredišta zavisi od vremena zadržavanja (na vezi između njih), od propusnosti veze, i od veličine toga paketa. Ako veza između čvorova nije izravna, nego prolazi kroz druge čvorove, onda vrijeme putovanja paketa može biti znatno veće, zbog čekanja paketa (da budu proslijeđeni dalje) na čvorovima kroz koje prolaze na putu od izvora do odredišta. Svaki čvor (prijenosnik, usmjerivač) kroz kojeg paketi prolaze, pohranjuje te pakete u svoj memorijski prostor i zatim ih prosljeđuje dalje odgovarajućom vezom. Čvor prosljeđuje primljene pakete najbrže što može, a koliko je to brzo, uvelike zavisi od opterećenosti toga čvora (prijenosnika), to jest, od toga koliko intenzivno paketi pristižu na taj čvor. Dakle, ukupno zadržavanje na nekoj vezi može se izračunati na slijedeći način: Zadržavanje = Širenje + Prijenos + Čekanje Širenje = Udaljenost / BrzinaSignala Prijenos = VeličinaPaketa / Propusnost Udaljenost je ovdje dužina veze (puta) između čvorova između kojih se vrši prijenos podataka (paketa). Čekanje je ukupno vrijeme koje paket koji putuje tom vezom provede čekajući na prijenosnicima da bude proslijeđen dalje; to vrijeme može znatno varirati. Ostale veličine iz gornjih izraza opisali smo ranije. Za rad nekih aplikacija bitna je propusnost veza, dok je za druge aplikacije važnije vrijeme zadržavanja te veze. Općenito, kod komunikacija kod kojih se prenose velike količine podataka, bitnija je propusnost. Kod komunikacija u kojima se razmjenjuju male količine podataka, bitnu ulogu igra zadržavanje. Naprimjer, prijenos 100 MB podataka vezom od 10 Mbps na udaljenost od 10 metara i na udaljenost od 10 tisuća kilometara može trajati praktički jednako. Jer zadržavanje je relativno malo u odnosu na vrijeme koje je potrebno da se tom vezom prenese toliki broj bajtova; to vrijeme iznosi otprilike 100 sekundi, dok zadržavanje na 10 tisuća kilometara može biti manje od jedne sekunde (zavisno od Čekanja, kako je to rečeno iznad). S druge strane, prijenos 100 bajtova (vezom od 10 Mbps) na udaljenost od 10 metara traje mnogo kraće nego prijenos 100 bajtova (takvom vezom) na udaljenost od 10 tisuća kilometara. Jer u potonjem slučaju, zadržavanje na 10 tisuća kilometara je znatno veće od vremena koje je potrebno da se prenese 100 bajtova. Govoreći o bajtovima (memorijski kapacitet) i o bitovima u sekundi (brzina prijenosa), iznesimo ovdje standardne (uobičajene) interpretacije nekih simbola (jedinica) koje se koriste u okviru toga govora. Veličinu memorije i veličinu podataka mjeri se u bajtovima; pritom se uzima da jedan bajt ima 8 bitova (kao najmanjih jedinica podataka); bajt se označava simbolom "B". Veće jedinice od bajta su kilobajt (KB), megabajt (MB), i gigabajt (GB); postoje i veće jedinice ali nam ovdje nisu potrebne. "Kilo" nominalno znači tisuću, "mega" znači milijun, a "giga" znači milijardu. Međutim, veličina memorijskog prostora se standardno izražava u "mjerama" koje su potencije broja 2. Tako u tom kontekstu KB znači 210 bajtova, što daje 1024 bajta; MB znači 220 bajtova, što daje (1024 x 1024) bajtova; GB znači 230 bajtova, što iznosi (1024 x 1024 x 1024) bajtova. Dakle, kod govora o memorijskom prostoru i o veličini podatkovnih sadržaja, "kilo" je više od tisuću, "mega" je više od milijun, i "giga" je više od milijardu. S druge strane, propusnost veza (brzina prijenosa) izražava se u bitovima u sekundi (bps); pritom se bit označava simbolom "b". Ovdje "kilo" znači 103 (tisuću), "mega" znači 106 (milijun), a "giga" znači 109 (milijardu). Tako 1 KB ima 1024 bajta, dok propusnost veze od 1 Kbps znači da se tom vezom može prenositi 1000 bitova u sekundi. Ta dvojnost u interpretaciji pojmova "kilo", "mega", i "giga" ne bi trebala praviti probleme, ali tu razliku treba imati na umu 31
kada se govori o veličini i prijenosu podataka (u bajtovima) vezom određene propusnosti (u bitovima u sekundi). Kod približnih računanja, obično se uzima da je 103 jednako 210 (tisuću), da je 106 jednako 220 (milijun), i da je 109 jednako 230 (milijarda), ali to nije sasvim točno. Kod približnih računanja, često se uzima i da bajt ima deset bitova, tako da se binarne mjere "usklade" sa dekadskima (radi lakšeg računanja); ali takva "usklađivanja" može se raditi samo kod približnih kalkulacija. Veza kojom se odvija neka komunikacija (prijenos podataka), u svakom trenutku sadrži u sebi određenu količinu bitova; za te bitove kažemo da su na putu, ili "u letu" (in flight). Produkt Zadržavanje x Propusnost daje količinu bitova koji mogu biti na putu u danoj vezi. Vezu (prijenosni kanal) između dvaju procesa možemo prikazati kao cijev; pritom presjek cijevi predstavlja propusnost, a dužina cijevi predstavlja zadržavanje. Takav prikaz veze ilustrira slika 1.17. zadržavanje propusnost
Slika 1.17 Propusnost i zadržavanje Produkt (Propusnost x Zadržavanje) daje "volumen" te veze ("cijevi"), koji se izražava brojem bitova koji se nalaze u vezi kad ta veza radi (vrši prijenos) punim kapacitetom. Naprimjer, ako propusnost veze iznosi 100 Mbps, a zadržavanje iznosi 100 milisekundi, onda veza može sadržavati u sebi slijedeći broj bitova: (100 x 106 bitova/sekundi) x (100 x 10-3 sekundi) = 107 bitova. Dakle, veza može sadržavati 10 milijuna bitova; ako svaki bajt ima 8 bitova, to iznosi 12,5 MB. Usporedbe radi, kod dial-up veze (između klijenta i servera), koja ima propusnost 56 Kbps, u vezi (letu) može biti svega nekoliko bitova. Naprimjer, ako uzmemo da na udaljenosti od desetak kilometara zadržavanje iznosi 100 mikrosekundi, onda broj bitova na putu kod te dial-up veze iznosi: (56 x 103 bitova/sekundi) x (100 x 10-6 sekundi) = 5,6 bitova, što je manje od jednog bajta. Zadržavanje na izravnim vezama određeno je fizičkim svojstvima stvarnosti (materije, elektromagnetske radijacije) i ono se na toj razini ne mijenja; ali ukupno zadržavanje neke veze (posebno sastavljene veze) može se smanjiti smanjenjem zadržavanja na prijenosnicima i na obnavljačima signala. Nadalje, propusnost veza povećava se poboljšanjem nekih tehničkih osobina zapisa podataka; naprimjer, sužavanjem pojedinačnih signala, kako je to objašnjeno ranije. Porast propusnosti uz isto zadržavanje znači, da se sve veća količina podataka može nalaziti na putu - to jest, u vezi između izvora i odredišta. Naprimjer, 10 gigabitna veza (veza propusnosti 10 Gbps) koja vodi s jedne strane kontinenta na drugu, sa zadržavanjem (u jednom smjeru) od 50 milisekundi, može sadržavati u sebi 500 milijuna bitova, odnosno 62,5 MB. Činjenicu da veze mogu sadržavati u sebi (na putu) tako velike količine podataka, treba uzeti u obzir kod oblikovanja protokola komunikacije između međusobno udaljenih procesa. Produkt (Propusnost x Zadržavanje) pokazuje koliko bitova može pošiljatelj poslati primatelju prije nego primatelj primi prvi bit sadržaja koji mu je poslan. Ako primatelj smjesta potvrdi početak primanja (povratnom porukom), dok ta potvrda stigne do pošiljatelja, pošiljatelj može uputiti primatelju još jednu količinu (Propusnost x Zadržavanje) bitova. Te veličine su važne zato što pošiljatelj često treba znati reakciju (stanje) primatelja da bi znao na koji način (i da li) treba 32
nastaviti sa slanjem podataka. Ukratko, porast propusnosti i nemogućnost smanjenja zadržavanja čine sve težim postići dva cilja istodobno: (1) maksimalno iskorištenje prijenosnih kapaciteta veza, i (2) optimalan način komunikacije (razmjene sadržaja u pravo vrijeme) između komunikatora. Postaje sve lakše slati ogromne količine bitova; ali bez odgovarajuće reakcije primatelja, ti bitovi mogu često biti poslani uzalud. Jer poslani sadržaji mogu ne biti prihvaćeni, ili mogu ne odgovarati potrebama (trenutnom stanju) primatelja; s druge strane, reakcije primatelja postaju relativno sve sporije u usporedbi sa prijenosnim kapacitetima veza. Reakcije nisu sporije u milisekundama, ali jesu sporije mjereno megabitovima koje pošiljatelj može poslati prije nego primatelj može reagirati. Obično se uzima da svaka aplikacija želi imati na raspolaganju vezu (prijenosni kanal) čim veće propusnosti, ali to nije uvijek tako. Neke aplikacije trebaju određenu propusnost i ne više od toga, jer više od toga ne mogu iskoristiti. Naprimjer, izravan video prijenos zahtijeva relativno veliku propusnost veze; ta propusnost (potreba) određena je brojem bitova po snimci i brojem snimaka u sekundi. Ako takva aplikacija nema vezu dovoljne propusnosti, onda mora komprimirati snimke i smanjiti broj snimki u sekundi. Međutim, ako takva aplikacija ima na raspolagu vezu (kanal) veće propusnosti nego što joj treba za izravan video prijenos bez komprimiranja i smanjenja broja snimki, onda taj višak kapaciteta veze (kanala) nema čime iskoristiti. Aplikacija ne može prenositi događaje brže nego što se stvarno odvijaju, bez obzira na veliku propusnost veze. Aplikacije često nemaju stabilnu (stalno jednaku) potrebu po prijenosu podataka: u nekim trenucima trebaju veću propusnost, a u nekim trenucima manju. Veza čija je propusnost jednaka prosječnoj potrebi neke aplikacije, ne mora biti dovoljno dobra da udovolji stvarnim potrebama te aplikacije. Naime, kada aplikacija prenosi manje od prosjeka, onda kapacitet veze nije iskorišten u potpunosti; kada pak aplikacija treba prenositi više od prosjeka, onda joj ta veza ne može pružiti tu uslugu. Taj problem nastoji se riješiti tako, da aplikacija pohranjuje sadržaje u onim situacijama (kratkim razdobljima) kada bi trebala intenzivnije slati; takve situacije možemo nazvati naletima (bursts). Aplikacija zatim šalje te pohranjene sadržaje vezom u razdoblju u kojem proizvodi manje podataka za prijenos, nego što veza može prenositi; na taj način se onda izvrši prijenos onog sadržaja kojeg je aplikacija proizvela u vrijeme naleta. Slično se postupa i kod primanja podataka: aplikacija pohranjuje sadržaje koje prima a koje trenutno ne stigne procesirati (ili joj trenutno nisu potrebni); te pohranjene podatke procesira kasnije, kad se za to stvori mogućnost i potreba. Takav način rada ne uspijeva riješiti sve probleme vezane uz neravnomjeran (nestalan) prijenos, ali u mnogim slučajevima se takvim načinom rada uspijeva riješiti taj problem u dovoljnoj mjeri. Kod veza koje prolaze kroz više čvorova (prijenosnika) zadržavanje može znatno varirati, u zavisnosti od trenutne opterećenosti tih čvorova i veza među njima. Nestalnost u zadržavanju neke veze naziva se podrhtavanjem (jitter); ili bolje rečeno, nestalnost zadržavanja veze može dovesti do podrhtavanja u radu aplikacije. To se doslovno događa kod video prijenosa. Propusnost veze može biti takva da omogućava kvalitetan video prijenos; ali ako je zadržavanje veze nestalno, onda neke snimke mogu kasniti i time izazvati podrhtavanje slike na ekranu onog koji gleda taj prijenos. Taj problem nastoji se riješiti tako, da se sadržaj prikazuje uz određeni vremenski pomak u odnosu na njegov nastanak. Uz dovoljnu propusnost veze, to omogućava primatelju da prispjele sadržaje pohranjuje u memoriju, a zatim ih od tamo ravnomjerno uzima i prikazuje. Na taj način otklanja se negativan učinak podrhtavanja koje izaziva promjenljivo zadržavanje veze (kanala). Međutim, takav vremenski pomak u prikazivanju primljenih sadržaja ima nepovoljan učinak kod telekonferencija jer onemogućava brzu (pravodobnu) reakciju učesnika konferencije na nečiji govor ili na neki događaj. Učesnik može reagirati brzo, ali on vidi događaj (i čuje govor) sa zakašnjenjem, tako da je sa stanovišta izvora, njegova reakcija uvijek zakašnjela. Ukratko, zadržavanje se ne može eliminirati; povećanjem propusnosti i osiguranjem 33
stabilnog (postojanog) zadržavanja, nastoji se umanjiti nepovoljne posljedice zadržavanja.
Pouzdanost Za sustav kažemo da je pouzdan ako možemo biti sigurni da svoje funkcije (operacije) izvršava na ispravan način. Tehnološki sustavi nisu nikad apsolutno pouzdani; greške su uvijek moguće, a ponekad se i događaju. Međutim, neki sustavi sadrže komponente koje otkrivaju greške u njihovom radu i pokreću postupke kojima se te greške otklanjaju. Kod nekih takvih sustava, vjerojatnost da se dogodi neotkrivena i neotklonjena greška u radu je izuzetno mala. Dakle, greške se događaju, ali pouzdan sustav je oblikovan tako, da te greške otkriva i zatim izvodi operacije sa kojima se te greške otklanjanju. Ovdje kažemo da se greške otklanjaju (umjesto ispravljaju) jer se greške u prijenosu podataka obično otklanjaju ponovnim slanjem istih paketa podataka; izvorna greška nije time "ispravljena", ali su njene posljedice otklonjene ponovnim slanjem istih paketa podataka. Na takav način - otkrivanjem i otklanjanjem grešaka - ostvaruje se pouzdan prijenos podataka u računalnim mrežama, odnosno ostvaruju se pouzdani prijenosni kanali između aplikacija. Drugi prijenosni kanali ne ispravljaju greške, sa ciljem da ostvare veću brzinu prijenosa; takvi kanali nazivaju se nepouzdanima. Nepouzdani kanali koriste se kod onih prijenosa kod kojih potpuna točnost prijenosa nije izrazito važna; to je slučaj kod audio i video prijenosa. Pouzdanost je bitna kod prijenosa tekstualnih i numeričkih sadržaja, programa i drugih egzaktnih sadržaja. S druge strane, kod audio i video prijenosa, bitnija je brzina nego potpuna točnost, tako da se kod takvih prijenosa obično koriste nepouzdani kanali za prijenos podataka. Iskrivljenje sto bitova neke snimke obično nema bitne posljedice; s druge strane, iskrivljenje jednog bita u zapisu novčanog iznosa ili nekog programa može imati drastične posljedice. Greške u prijenosu mogu nastati iz raznih razloga i mogu se manifestirati na razne načine. Prvo, može doći do iskrivljenja nekog bita u nizu bitova (paketu) koji se prenosi vezom. Zbog nekih smetnji (unutarnjih ili vanjskih), neki signal sa kojim se predstavlja (zapisuje) vrijednost bita "1" može biti iskrivljen i postati jednak (ili sličan) signalu sa kakvim se predstavlja bitovna vrijednost "0". U računalima i mrežama nema "nula i jedinica"; postoje samo signali (električki, optički, elektromagnetski) i stanja (naponska, magnetska). U binarnim sustavima postoje dva signala (stanja), odnosno signal/stanje može poprimiti dvije vrijednosti. Pritom jedna vrijednost signala predstavlja binarnu vrijednost "0", a druga vrijednost signala predstavlja binarnu vrijednost "1". Te dvije vrijednosti dovoljne su da se zapiše svaki informacijski sadržaj, od brojeva i slova, do boja i zvukova. To se čini na način da se znakovi "abecede" (slova, boje, tonovi) predstave nizovima "nula i jedinica" i da se zatim od tih znakova abecede sastavljaju opsežnije priče i slike. Greške u bitovima mogu biti izazvane vanjskim elektromagnetskim smetnjama, ali i unutarnjim greškama sustava koji vrši prijenos nizova bitova (paketa). Smetnje (greške) obično izazivaju iskrivljenje većeg broja bitova (u nizu), a ne samo jednog bita, što omogućava da se grešku lakše otkrije. Statistički gledano, iskrivljenja bitova događaju se vrlo rijetko. Međutim, "rijetko" je relativan pojam. Osobno računalo koje bi pravilo jednu grešku na svakih milijardu osnovnih operacija, moglo bi izgledati vrlo pouzdano; međutim, s obzirom da takvo računalo izvodi milijardu osnovnih operacija u sekundi, onda bi to računalo pravilo jednu grešku svake sekunde, tako da uopće ne bi radilo. Kod prijenosa informacijskih sadržaja, u bakrenom vodiču iskrivi se jedan bit (u prosjeku) na svakih 106 do 107 prenijetih bitova. U optičkim kablovima iskrivljenja bitova su mnogo rjeđa; iskrivi se po jedan bit na svakih 1012 do 1014 prenijetih bitova. Takve varijacije (od-do) vjerojatno se navode zato što postoje različite vrste bakrenih vodiča i optičkih kablova.
34
Za ostvarenje pouzdanog prijenosa bitova (paketa) neophodno je prije svega imati pouzdan sustav za otkrivanje iskrivljenja bitova (grešaka). Takvi sustavi nisu nikad apsolutno pouzdani, ali današnji sustavi su dovoljno visoko pouzdani da omoguće uspješan rad računalnih mreža, od najmanjih (lokalnih) do najvećih (globalnih). Dakle, da bi se moglo otklanjati greške, potrebno ih je najprije uspješno otkrivati. Otklanjanje grešaka izvodi se uglavnom tako, da se ponovi prijenos onih paketa (okvira) u kojima je došlo do iskrivljenja bitova, kao i onih paketa (okvira) koji su izgubljeni u procesu prijenosa. Postoje metode ispravljanja grešaka (na manjem broju bitova) bez ponovnog prijenosa iskrivljene jedinice podataka, ali te metode iziskuju posebne načine zapisivanja sadržaja, tako da se sa njima ovdje ne bavimo. Takve metode zapisa obično sadrže znatnu količinu dodatnih (redundantnih, nekorisnih) bitova, na temelju kojih sustav primatelja može izračunati što je trebalo stajati ("0" ili "1") na onim mjestima na kojima je došlo do iskrivljenja bitova. Greške u prijenosu nastaju i zbog gubitaka jedinica podataka (paketa, okvira). Paket može biti izgubljen iz raznih razloga. Ako se u prijenosu iskrivi neki bit od adrese primatelja (koja je zapisana u zaglavlju paketa), taj paket ne može više stići na odredište na koje je bio upućen. Ako paket na svom putu stigne do nekog prijenosnika koji je zagušen, taj prijenosnik ga odbacuje, čime taj paket biva izgubljen. Paket može biti izgubljen i zbog greške u radu nekog prijenosnika, zbog koje je paket proslijeđen u krivom smjeru. Takav paket bi još mogao stići do svog odredišta (nekim drugim putem) ako ga drugi prijenosnici prosljeđuju prema njegovom odredištu; ali takav paket može lako zastarjeti (zbog lutanja), i zbog toga onda biti odbačen na nekom prijenosniku. Jer paketi imaju vijek trajanja, koji se može računati vremenski ili brojem prijenosnika kroz koje paket smije proći na putu od izvora do odredišta. Po isteku njegova vijeka trajanja, paket biva odbačen. Greške i gubici paketa mogu nastati zbog fizičkih poremećaja u radu čvorova ili veza od kojih se sastoji računalna mreža; takvi poremećaji su gubitak napona i mehanička oštećenja. Jedna od temeljnih odlika računalne mreže (kao sustava) je da zna "obilaziti kvarove" i da omogućava komunikaciju sve dok je to operativno moguće činiti. Ako se pokvari neki čvor ili prekine neka veza, ostali (okolni) čvorovi smjesta mijenjaju svoje tablice prosljeđivanja i na taj način nastavljaju iste komunikacije drugim putovima koji obilaze mjesto kvara. Naravno, mreža to može činiti samo dotle dok postoje drugi putovi; ako se prekine jedina veza koja vodi do domaćina Di, onda mreža nema načina da taj kvar obiđe. +
35