Pregled posta

Adresa bloga: https://blog.dnevnik.hr/urs1

Marketing

Upravljanje računalnim sustavima

URS-1


Upravljanje računalnim sustavima
Mario Radovan (2010)



U ovim radnim materijalima dan je kratak prikaz osnova operacijskih sustava i računalnih mreža. Operacijskim sustavima posvećeno je više prostora na vježbama, gdje se rade osnove operacijskih sustava Unix, Windows XP i Linux. Ovi radni materijali sastavljeni su uglavnom prema A. Tenenbaum: Modern Operating Systems, i L. Peterson, B. Davie: Computer Networks: A System Approach. Zadnje poglavlje napisano je prema knjizi A. Clemm: Network Management Fundamentals,



1. Onove operacijskih sustava


1.1 Struktura računalnog sustava

Računalni sustav sastoji se od hardvera (materijalnih elemenata) i softvera (programa); materijalni elementi izvode procese koji su definirani (opisani) pomoću programa. Hardver računalnog sustava sastoji se od jedog ili više procesora, radne memorije, mamorija sa trajnim zapisima (fiksnih i prenosnih), zaslona (ekrana), tipkovnice, pisača, mrežnih kartica, veza i niza ulazno-izlaznih uređaja.
Korisnički programi koji izvode neke konkretne poslove za potrebe korisnika, nazivaju se i aplikativnim (primjenjenim) programima ili aplikacijama. Da bi korisnički programi mogli koristiti mogućnosti hardvera, potrebno da postoji neki jezik u kojem ti programi mogu komunicirati sa hardverskim elementima, i razmjenjivati sa njima podatkovne sadržaje. Takav jezik naziva se i sučeljem (interface). Operacijski sustav je jedan takav jezik koji omogućava svim programima da se "obraćaju" hardverskim komponentama u toku svog izvođenja na sustavu. Operacijski sustav ujedno omogućava korisniku da izravno daje naredbe računalnom sustavu, pomoću kojih može pokretati procese (programe) stvarati i mijenjati datoteke i mape (direktorije) podataka, i izvoditi niz drugih operacija.
Slika 1 pokazuje položaj operacijskog sustava u strukuri jednog računalnog sustava.




Slika 1. Položaj OS-a u računalnom sustavu

Prema slici 1, u hardver spadaju "fizičke naprave", "mikroarhitektura računala" i "strojni jezik". To nije najbolja formulacija; iznad smo naveli što spada u hardver. Ovom podjelom hardvera na tri podsloja htjelo se odvojiti fizičke jedinice (devices) poput pisača, ekrana, i slično, od elektronike koja je ovdje nazvana mikroarhitekturom. Strojni jezik je jezik kojim se izravno upravlja hardverom; striktno govoreći, to i nije dio hardvera nego naprosto jezik koji se sastoji od niza naredbi koje upravljaju radom hardvera.
Softverski dio sustava podjeljen je na sistemski softver i na aplikativni softver. U sistemski softver se obično ubrajaju svi oni softverki elementi (programi) koji ne obavljaju neki konkretan posao za korisnika, već opslužuju korisnikove programe. Korisnički programi pak spadaju u aplikativni softver. Na slici 1, kao primjeri sistemskih programa navedeni su prevoditelj, uređivač teksta i interpreter naredbi.
Operacijski sustav je dio sistemskog softvera. Njegova uloga je da korisniku i svim drugim programima pruži jedan nabor (skup) naredbi pomoću kojih oni mogu upravljati radom hardvera i koristiti njegove mogućnosti obrade podataka. Očito, očekuje se da operacijski sustav bude takav skup naredbi koji omogućava lakše (jednostavnije) upravljanje hardverom nego što to omogućava sam strojni jezik.

Još neka objašnjenja uz sliku 1. Podjela između sistsemskih i aplikativnih programa nije sasvim jednoznačna. Prevoditelj je sustav koji prevodi programe pisane u korisničkim jezicima na strojni jezik, tako da stroj (hardver) može izvesti te programe. Jer hardver "razumije" samo strojni jezik. Uređivač teksta (editor) je ovdje smješten u sistemski softver, dok je preglednik web stranica (browser) smješten u aplikativni softver. Postoje razlozi za takav postupak, ali nije sigurno da je preglednik web stranica bliskiji sustavu za rezervaciju avionskih karata (koji sigurno jest aplikativni program) nego uređivaču tekstova.

Svaki hardver ima svoj strojni jezik, pri čemu si ti jezici obično međusobno sliče, pogotovo jezici istog proizvođača hardvera. Postoji mnogo operacijskih sustava, pri čemu jedan operacijski sustav može raditi na više vrsta strojeva; isto tako, na jednom stroju može biti instalirano više operacijskih sustava.
Operacijski sustavi razvijali su se zajedno sa razvojem hardvera. Među najpoznatije operacijske sustave spadaju DOS (Disk Operating System) i MS-DOS, UNIX, Windows (više verzija), Linux i Macintosh.


1.2 Operacijski sustav

Operacijski sustav sastoji se od mnogo programa koji se nazivaju i procedurama. Procedure koje tvore operacijski sustav obično se dijele u više slojeva. Slika 2 prikazuje jedno takvo slojno uređenje procedura jednog operacijskog sustava.
Na razinu "main" spadaju one procedure koje izravno komuniciraju sa programima za koje operacijski sustav izvodi neke operacije, kao i sa samim korisnikom sustava. Procedure te razine pozivaju "uslužne" (service) procedure sa razine ispod sebe, koje mogu izravno izvršiti neku traženu operaciju, ili pak pozvati "pomoćne" (utility) procedure sa razine ispod sebe.




Slika 2. Slojevita struktura operacijskog sustava

Na većim računalima na kojima istodobno radi više korisnika, operacijski sustav omogućava svakom korisniku (odnosno, njegovoj obradi) da vidi računalo kao da je on jedini korisnik, i da koristi sve njegove resurse. Kažemo da operacijski sustav pruža svakom korisniku mogućnost rada na virtualnom (ne-stvarnom) stroju jer iako računalo ima samo jedan procesor, operacijski sustav omogućava da svaki korisnik vidi računalo na način kao da procesor radi upravo za njega; slično vrijedi i za ostale jedinice računala. Ta virtualnost se ostvaruje na taj način što operacijski sistem stavlja na raspolagu sve elemente sustava svakom korisniku, ali obično ne istodobno, već opslužuje svakog korisnika jedno kratko vrijeme (nekoliko milisekundi), i tako u krug. Na nekim jedinicama, kao što su printeri, takvo naizmjenično dodjeljivanje resursa u kratkim vremenskim razmacima nije moguće, ali na većini ostalih jedinica jest moguće. Na taj način operativni sustav omogućava da se izvode operacije svakog programa jedno određeno vrijeme; nakon toga se izvode operacije drugog programa, i tako u krug.

Prigorom prekida izvođenja jednog procesa, operacijski sustav u cijelosti memorira stanje toga procesa (vrijednosti svih varijabli) u tablicu procesa; na temelju tih memoriranih podataka, operacijski sustav kasnije pokreće nastavak izvođenja toga procesa. Kad se na stroju izvodi više procesa istodobno, onda se takvi podaci memoriraju za svaki proces kod svakog njegovog prekida. Te tablice posebno memoriraju podatke o stanju samog procesa računanja, o stanju memorije koju koristi taj proces, i o datotekama podataka koje taj proces koristi.
Upravljanje istodobnim radom velikog broja procesa (programa, korisnika) na istom sustavu je izrazito zahtjevno. Operacijski sustav treba prije svega garantirati ispravnost izvođenja svakog procesa, kao i ispravnost rada sustava u cjelini. Povrh toga, potrebno je da optimalno dijeli resurse za koje se nadmeće više procesa, tako da sustav u cjelini dosegne čim veću efikasnost rada. Kada se više programa nadmeće za iste resurse - naprimjer, za pristup bazi podataka - onda to može dovesti do toga da se programi međusobno blokiraju. Takvu blokadu naziva se zastojem. Ako programi P1 i P2 trebaju podatke D1 i D2, i ako je P1 uspio "zauzeti" podatke D1, a program P2 podatke D2, onda nijedan od ta dva programa ne može nastaviti rad jer svakome nedostaju po jedni podaci da bi to mogao učiniti. Operacijski sustav mora spriječavati da dođe do takvih međusobnih blokada; a ako do takvih situacija dođe, onda ih mora rješavati.

Općenito, zastoji (blokade) su nepoželjne pojave koje mogu nastati kad više procesa koristi iste resurse. Za nastanak zastoja bitni su djeljivi resursi kojima može pristupati više procesa, za razliku od nedjeljivih resursa koje može koristiti samo jedan proces. Kad se na stroju izvodi istodobno (paralelno) više procesa, onda se svaki od tih procesa izvodi neko vrijeme a zatim se prekida, i izvodi se slijedeći proces. Stanje svakog porocesa se memorira, i kasnije se njegovo izvođenje nastavlja. Ako neki procesi ne uspiju rezervirati sve resurse potrebne za izvršenje neke operacije u kratkom vremenu koje im je bio dodjeljen procesor, onda ti procesi zadržavaju one resurse koje jesu uspjeli rezervirati, da bi nastavili rad kod slijedeće dodjele procesora. Na taj način može se dogoditi da neki procesi zadržavaju resurse koji trebaju drugim procesima da bi mogli izvršiti neke operacije, dok ti drugi procesi zadržavaju neke resurse koji trebaju prethodnim procesima da bi oni mogli izvršiti neke operacije i nastaviti sa dalnjim radom. Naime, ako svi procesi zadržavaju neke resurse koje su stekli sve dotle dok ne obave neku operaciju, onda mogu nastajati zastoji kako je to opisano iznad. Operacijski sustav mora spriječavati i rješavati niz takvih problema.


1.3 Upravljanje memorijskim prostorom

Upravljanje memorijskim prostorom je jedna od temeljnih funkcija operacijskog sustava, koja je neophodna za uspješan rad računalnog sustava. Postoji niz metoda i algoritama (postupaka) prema kojima operacijski sustavi dodjeljuju memorijske prostore i upravljaju njihovim korištenjem. U nastavku iznosimo osnovna načela prema kojima operacijski sustav obavlja te funkcije, i kriterije prema kojima to obavlja; pritom ne zalazimo u one tehničke detalje (ima ih mnogo) koji nam ovdje nisu potrebni. Ukratko, operacijski sustav treba voditi izvršenje nekog procesa (programa) na računalnom sustavu. To uključuje učitavanje procesa (programa) sa vanjske memorije u radnu memoriju sustava, pokretanje učitanog procesa, pohranu rezultata koje proces proizvodi, i spremanje tih rezultata na vanjsku memoriju, odnosno njihov prikaz na nekoj izlaznoj jedinici (naprimjer, na ekranu ili printeru). U tom kontekstu kažemo da operacijski sustav upravlja vanjskim memorijama (datotekama), radnom memorijom (u koju se program učitava iz neke datoteke), i procesom izvođenja programa (koji uključuje upotrebu radne memorije i vanjskih memorja).

Načini upravljanja memorijom razlikuju se u zavisnosti od načina rada i od nekih svojstava sustava; pogledajmo neke od tih mogućnosti:
1. Upravljanje memorijom kod mono-programskih sustava
2. Upravljanje memorijom kod multi-programskih sustava
3. Rad sa primjenom virtualne memorije

Mono-programskim sustavom nazvali smo onaj sustav na kojem se izvodi jedan proces od početka do kraja, nakon čega se na sustavu može izvoditi novi proces; takav način rada naziva se batch (beč) načinom rada (ili obradom podataka). Kod batch načina, operacijski sustav učitava prgram sa vanjske memorije u radnu memoriju i pokreće njegovo izvođenje; nakon zarvšetka toga programa, operacijski sustav oslobađa radnu memoriju koju je zauzimao taj program (i rezultati njegova rada). Pritom, onaj dio operacijskog sustava koji izvodi te operacije, treba i sam biti smješten u radnoj memoriji. Slika 3 ilustrira opisanu situaciju.




Slika 3. Učitavanje programa u batch obradi

Operacijski sustav može biti smješten u radnu memoriji koja je tipa RAM (random access memory); to je memorija koja omogućava izravan pristup svakoj jedinici (lokaciji) nezavisno od drugih lokacija. Operacijski sustav se obično smješta jednim dijelom u memoriju tipa ROM (read only memory); takva memorija omogućava samo čitanje sadržaja, ali ne i njegovo mjenjanje; time se onemoguća izmjena (izopačenje) dijelova operacijskog sustava koji je zapisan u takvu vrstu memorije.
Na slici 3a, operacijski sustav nalazi se u radnoj memoriji tipa RAM, u kakvu učitava i korisnički program (sa vanjskih memorija) koji se treba izvesti na računalu. Na slici 3b, operacijski sustav je zapisan u memoriju tipa ROM, dok se korisnički program učitava u radnu memoriju tipa RAM. Na slici 3c, jedan dio operacijskog sustava smješten je u memoriju tipa ROM a jedan dio u memoriju tipa RAM. U memoriju tipa ROM, smješteni su oni programi koji upravljaju radom raznih jedinica (devices), poput printera, diskova, i sličnih. Takvi programi nazivaju se "drajverima" (drivers).

Multi-programskim sustavom nazvali smo one sustave koji omogućavaju istodobno izvođenje većeg broja korisničkih programa. Kod tih sustava, radna memorija dijeli se na više dijelova koji se nazivaju particijama; u načelu, svaku od tih particija smješta se po jedan program. Izvođenje tih programa se zatim odvija na taj način, da operacijski sustav upravlja izvođenjem jednog od programa jedno kratko vrijeme (npr. 20 milisekundi), zatim prekida taj proces (i zapisuje njegovo stanje), pa jednako postupa sa slijedećim programom, i tako ciklički, sve dok se pojedini programi ne izvedu u cijelosti. Na taj način, svaki korisnik ima dojam da računalni sustav stalno izvodi upravo njegov program; to je točno, s tim da se to odvija sa prekidima u kojima računalo izvodi programe drugih korisnika.

Slika 4 ilustrira dva načina kako operacijski sustav može uvrštavati korisničke programe iz vanjske memorije u radnu memoriju.



Slika 4. Upravljanje memorijom u multi-programskih sustava

Proces upravljanja memorijom i procesima kod multi-prgramskog načina rada je znatno složeniji nego kod jedno-programskih sustava. Ovdje ćemo spomenuti osnovne probleme koje operacijski sustav treba rješavati, ne zalazeći u tehničke datalje postupaka kojima se takvi problemi rješavaju.
Prvo, radnu memoriju treba podijeliti na više particija. Broj particija i njihovu veličinu trebalo bi prilagoditi broju procesa koje korisnici žele izvoditi istodobno, kao i veličini tih procesa.
Procesa može biti više nego što ima particija; u tom slučaju, neki procesi moraju čekati na red da bi mogli biti uvršteni u radnu memoriju i izvedeni. Pritom se čekanje može organizirati za svaku particiju posebno, kako to ilustrira slika 4a, ili pak na razini cijelog sustava radne memorije kako to ilustrira slika 4b.
Kod prvog slučaja, procese je moguće svrstavati u redove čekanja za one particije čije veličine odgovaraju tim procesima. To je povoljno sa stanovišta iskoristivosti kapaciteta particija, ali je nepovoljno zato što se može dogoditi da za neke particije čeka puno procesa, dok druge particije stoje prazne.
Kod drugog načina organizacije čekanja, javlja se problem nesklada između veličine programa koji je na redu za uvrštenje u radnu memoriju, i veličine prve slobodne particije. Ta particija može ne biti dovoljno velika, ili pak može biti znatno veća od veličine programa, tako da će uvrštenjem tog programa u tu particiju, ta particija biti slabo iskorištena.

Metoda rada sa virtualnom memorijom koristi se u onim slučajevima kada raspoloživi kapacitet radne memorije (npr. jedna particija) nije dovoljan da se u njega smjesti sav program koji se treba izvršiti. Virtualna memorija formira se tako da se jedan dio vanjske memorije podjeli na blokove određene veličine, koji se nazivaju stranicama. U taj dio vanjske memorije zapisuje se korisnički program (razdijeljen na stranice). Raspoloživa radna memorija sustava dijeli se na blokove (stranice) jednake veličine. S obzirom na pretpostavku da je program veći od raspoloživog prostora u radnoj memoriji, vanjska memorija koja sadrži taj program ima veći broj stranica nego što ih ima raspoloživa radna memorija. Program se tada izvodi na taj način, da se sa vanjske memorije kopira u radnu memoriju onoliko stranica koliko stranica ima radna memorija; pritom, treba kopirati one stranice programa sa kojima počinje njegovo izvođenje.
Na taj način, izvođenje programa može otpočeti bez obzira što se u radnoj memoriji ne nalazi sav program. Kada izvođenje programa dovede do toga da treba izvršiti neki njegov dio koji nije u radnoj memoriji, onda se neka stranica iz radne memorije kopira natrag na vanjsku memoriju, a na njeno mjesto donosi se (sa vanjske memorije) ona stranica koja se treba izvesti slijedeća. Takav postupak ponavlja se sve do potpunog izvršenja programa. Takvo načelno objašnjenje je ovdje dovoljno; kod stvarnih sustava, proces upravljanja virtualnom memorijom i izvođenjem programa koji koriste virtualnu memoriju je tehnički znatno složeniji, i mora voditi računa o mnogim parametrima da bi se ostvario pouzdan i optimalan način rada računalnog sustava.

Slika 5 ilustrira situaciju koju smo opisali iznad. Ovdje je uzeto da je za smještaj programa potrebno 64 KB; dakle, virtualna memorija (na disku) treba biti velika 64 KB. Prostor jedne virtualne memorije naziva se i virtualnim adresnim prostorom (virtual address space). Ta memorija podjeljena je na stranice veličine 4 KB; dakle, virtualna memorija (za neki dani korisnički prgram) ima ukupno 16 stranica.
Raspoloživa radna memorija ima samo 32 KB, koji se isto tako dijele na stranice veličine 4 KB; dakle, ima 8 stranica. S obzirom da je radna memorija u kojoj se fizički nalaze oni djelovi programa koji se zaista izvode, taj prostor naziva se i fizički adresni prostor (physical address space).



Slika 5. Rad sa virtualnom memorijom

Strelice koje pokazuju od blokova u virtualnom adresnom prostoru prema blokovima u fizičkom adresnom prostoru pokazuju koji se od virtualnih blokova smješta u koji od fizičkih blokova. Kako je rečeno iznad, prenošenje blokova iz virtualnog u fizički prostor (to jest, sa diska u radnu memoriju) izvodi se onako kako to nalaže izvođenje programa. Blok koji se treba izvesti, treba biti prethodno donijet u radnu memoriju; da bi se takvom bloku napravilo mjesta, jedan blok treba vratiti na vanjsku memoriju.

Napomenimo da je gornji prikaz načina ostvarenja virtualne memorije i načina rada sa takvom memorijom vrlo načelan. Kod stvarnih sustava, za ostvarenje takve mogućnosti rada, operacijski sustav mora voditi računa o velikom broju elemenata sustava i njihovih trenutnih stanja, te voditi potpunu evidenciju o tome što gdje uzima, kamo prenosi, i kamo vraća. Naprimjer, poželjno je da one stranice programa koje se često izvode budu stalno prisutne u radnoj memoriji računala. Zato je potrebno da operacijski sustav vodi evidenciju o tome koja se od stranica koje se trenutno nalaze u radnoj memoriji koliko intenzivno koristi, te da prostor za nove stranice oslobodi tako, da na disk vrati one stranice koje se najmanje koriste. Operacijski sustav može "prepoznati" i redoslijed izvođenja stranica, te kod biranja koju će stranicu vratiti na disk, voditi računa da ne izbaci onu stranicu koja će uskoro biti aktivna. Operacijski sustav treba voditi računa i o tome da li je izvršenje neke stranice izmijenilo njen sadržaj (podatke); jer ako nije, onda se stranica ne mora vraćati na disk (gdje već stoji njena kopija) već se može jednostavno brisati i time osloboditi prostor u radnoj memoriji za stranicu koju treba unijeti. Postoje mnogi drugi parametri koje operacijski sustav bilježi o svakoj stranici kod rada sa virtualnim memorijama, i na temelju kojih odlučuje kako postupati.

Stranice mogu biti raznih veličina; obično su to veličine od 1, 4, i 8 KB. Postoje razne strategije rada sa virtualnim memorijama. Ako se želi omogućiti istodoban rad većeg broja programa, onda se svakom programu dodjeljuje manji broj stranica u radnoj memoriji, odnosno manje particije; no, u tom slučaju raste broj potreba po prekidu aktivnih procesa zbog prenosa tražene stranice sa vanjske memorije u radnu memoriju. Takvo (prečesto) prenošenje stranica umanjuje efikasnost rada računalnog sustava; zato operacijski sustav treba naći neki optimalan broj stranica radne memorije koje valja dodijeliti pojedinom programu, da bi se izvođenje toga programa - i rad računalnog sustava u cijelini - odvijali na optimalan način.

Efikasnost rada sa virtualnim memorijama može se povećati i na taj način da se program podijeli na segmente, pri čemu svaki segment tvori jednu relativno potpunu funkcionalnu cjelinu. Tada se u radnu memoriju unose pojedini segmenti, i zatim izvode (kao funkcionalne cjeline) što onda iziskuje manji broj prekida procesa radi unošenja drugih stranica u memoriju. Takve segmente nazivamo i modulima; veći moduli sačinjeni su od manjih modula, a od njih se mogu graditi (još) veći moduli. Modularno oblikovanje programa poželjno je iz više razloga; time se povećava razumljivost programa i olakšava njegovo mjenjanje. Nadalje, isti moduli mogu se koristiti kod izrade različitih programa.


1.4 Upravljanje ulaunim i izlaznim jedinicama

Ulaznim jedinicama nazivamo one jedinice sa kojih se podaci unose u proces obrade; izlaznim jedinicama nazivamo one jedinice kojima se predaju rezultati procesa obrade. Jedinice se nazivaju ulazno-izlaznima kada se sa njih mogu unositi podaci u proces obrade, i na njih ispisivati rezultati procesa obrade. Primjer ulazne jedinice je tastatura, izlazne jedinice printer, a ulazno-izlazne jedinice magnetni disk. Jedan od poslova operacijskog sustava jest da upravlja radom ulaznih i izlaznih jedinica, i da na taj način omogućava da te jedinice obavljaju one operacije koje od njih zahtjeva korisnički program, odnosno sam korisnik. Sustav ulaznih i izlaznih jedinica je slojevit i složen; slika 6 ilustrira osnovnu strukturu toga sustava.



Slika 6. Sustav za rad sa ulaznim i izlaznim jedinicama

Dakle, struktura sustava ulaznih i izlaznih jedinica, kao i način njihova rada, prikazani su na slijedeći način. Na vrhu se nalaze korisnički programi koje računalni sustav treba izvoditi; to izvođenje uključuje i izvođenje određenih operacija sa ulaznim i izlaznim jedinicama. Korisnički program ne radi izravno sa hardverskim elementima računalnog sustava, već svoje zahtjeve za izvršenjem pojedinih operacija postavlja operacijskom sustavu koji onda vodi komunikaciju sa fizičkim elementima sustava.
Radom svake ulazne i izlazne jedinice upravlja odgovarajući program koji se naziva drajverom te jedinice. Drajveri (kao programi) pokreću hardverske komponente zvane kontroleri koje izravno upravljaju radom ("mehanikom") ulaznih i izlaznih jedinica. Drajveri spadaju u sistemski softver; prema slici 6, oni su prikazani i kao posebni dijelovi operacijskog sustava; na nekim drugim slikama, drajveri su prikazani kao izdvojen softverski sloj između operacijskog sustava i hardvera. Kontroleri su svrstani u hardver. Na dnu sustava nalaze se fizičke jedinice koje fizički realiziraju određene operacije ulaza i izlaza podataka.

Ulazne i izlazne jedinice mogu procesirati podatke po blokovima određenog formata, ili pak u nizu (bez formatiranja). Podacima koji su zapisani po blokovima, može se naknadno pristupiti i čitati ih kao ulazne podatke; takvi su naprimjer podatki koji se zapisuju na disk. S druge strane, podaci ispisani u nizu obično idu na izlazne jedinice, i sustav ih naknadno ne može izravno čitati kao ulazne podatke; takvi su obično razni ispisi (na papir ili ekran).
Jedinice računalnog sustava su međusobno povezane pomoću sustava sabirnica koje omogućavaju prenos podataka. Taj prenos može se izvoditi pod izravnom kontrolom središnje procesne jedinice (CPU) ili pak pomoću posebnih kontrolera za prenos podataka. Potonjim načinom rada povećava se ukupna efikasnost sustava; ovdje CPU zadaje kontroleru početnu adresu u memoriji i broj bajtova koji treba prenijeti (na neku jedinicu ili sa nje), te kontroler izvršava taj zadatak.


1.6 Upravljanje sustavom datoteka

Podaci koji se nalaze u radnoj memoriji "traju" dok se izvode pripadni procesi (ili dok se ne ugasi računalo); podaci koji se trajno čuvaju, pohranjeni su na vanjskim memorijama koje mogu biti izrađene na razne načine, a dominiraju memorije sa magnetskim zapisima. Dio operacijskog sustava koji upravlja radom sa vanjskim (trajnim) memorijama naziva se upravljačem sustava datoteka. To upravljanje uključuje vođenje evidencije o slobodnim i zauzetim dijelovima memorije, dodjeljivanje fizičkog prostora pojedinim datotekama podataka, izvođenje raznih operacija sa sadržajima tih datoteka, zaštitu datoteka od neovlaštenog pristupa (i rada), pohranu rezervnih kopija sadržaja datoteka (ili njihovih djelova) na temelju kojih se mogu izbjeći gubici podataka u slučaju kvara sustava ili greške u radu sa sustavom.

Datoteke podataka određene su sa nekoliko parametara, među koje spadaju:
- oblik imena datoteke
- atributi datoteke
- struktura datoteke
- operacije sa datotekom

Ime datoteke određeno je brojem i vrstom znakova od kojih se smije sastojati; kojom vrstom znakova smije ime otpočeti, i da li sustav razlikuje velika i mala slova. Imena datoteka sastoje se od dva dijela; prvi dio dodjeljuje korisnik kod stvaranja datoteke, a drugi dio (odvojen točkom) dodaje aplikacijski (ili sistemski) program koji radi sa tom datotekom (i koji je kreira). Drugi dio imena naziva se ekstenzijom; na slici 7 dan je niz tipičnih ekstenzija koje ukazuju na vrstu sadržaja datoteke, odnosno na to koji aplikacijski (ili sistemski) programi rade sa tim datotekama.



7. Ekstenzije datoteka

Ekstenzija "bak" znači da je to "rezervna kopija" sadržaja datoteke, na temelju koje se može ponovno uspostaviti sadržaj izvorne datoteke, ako je došlo do njegova oštećenja. Datoteke te vrste mogu sadržavati kopiju cjelokupne izvorne datoteke, ili pak kopiju onog njenog dijela koji je bio mijenjan nakon zadnje izrade "bak" datoteke za neku datoteku.
Ekstenzija "c" znači da ta datoteka sadrži neki izvorni (source) program koji je napisan u programskom jeziku C. Izvornim programom naziva se svaki program koji je napisan u nekom "visokom" programskom jeziku; prije njegova izvođenja na računalu, takav program treba prevesti na strojni jezik računala na kojem će se program izvoditi. Ekstenzija "o" označava da datoteka sadrži neki objektni (object) program; to je program koji je nastao prevođenjem nekog izvornog programa, i koji se onda (preveden) izvodi na računalu. Rečeno je da objektni prograni nisu "linkani" (povezani); to znači, da za njih nisu određene (uspostavljene) veze između imena varijabli (iz programa) i konkretnih adresa u memoriji računala, koje će sadržavati vrijednosti tih varijabli. Takve veze ("linkanje") određuju se kod unosa prevedenog (objektnog) programa u radnu memoriju, prije početka njegova izvođenja na danom računalu. Pojedinosti vezane uz "linkanje" (povezivanje) ovdje nisu bitne. Dakle, izvorni (source) program je čitljiv za onog tko poznaje programski jezik u kojem je program napisan, dok prevedeni (object) program nije čitljiv čovjeku (ili je teško čitljiv) jer su to uglavnom nizevi naredbi strojne ("niske") razine (ili vektori "nula i jedinica"), koji upravljaju radom hardvera, a ne lako čitljive naredbe od kakvh se satoje izvorni programi pisani u visokim programskim jezicima.

Ekstenzije "gif" i "jpg" pokazuju da te datoteke sadrže digitalne zapise slika. Ekstenzija "mpg" pokazuje da datoteka sadrži zapis pokretnih slika (filma). Statičke slike i pokretne slike mogu se zapisivati na isti način, ali ne moraju. Za ostvarenje pokreta potrebno je mnogo statičkih slika; zato zapisi tipa "mpg" nastoje štediti prostor (obično na račun kvalitete pojedinačnih slika); postoje i razne metode uštede memorijskog prostora kod "mpg" zapisa, kojima se ovdje ne možemo baviti. Ekstenzija "mp3" ukazuje da datoteka sadrži digitalni zapis zvuka, kod kojeg je stupanj komprimiranja 3; taj standard se najviše koristi ali postoje i zapisi zvuka tipa "mp1" i "mp2" kod kojih je stupanj komprimiranja niži, što znači da zapisi istog sadržaja zauzimaju više memorijskog prostora, ali je zapis zvuka kvalitetniji.

Ekstenzija "html" ukazuje da datoteka sadrži zapis web stranice u jeziku HTML. Jezik HTML možemo smatrati jednim uređivačem teksta; web stranica može sadržavati i slike, pokretne slike i zvuk, ali zapisi takvih sadržaja bivaju pohranjeni u zasebne datoteke, dok HTML datoteka sadrži samo pokazatelje (veze, adrese) na te datoteke. HTML datoteke kreiraju razni programi (npr. FrontPage) a čitaju ih razni preglednici (brawsers) za web sustav (npr. Internet Exploret i Netscape).
Ekstenzije "pdf", "ps", "tex", i "txt" isto tako ukazuju na vrstu sadržaja datoteka, odnosno na to koji softver je proizveo te datoteke i koji softver ih može koristiti. Ekstenzija "hlp" pokazuje da je to datoteka nekog sustava "Help", dok ekstenzija "zip" pokazuje da je to neki komprimiran sadržaj. Komprimirati se može sadržaj svake datoteke.

Komprimiranje izvodi posebni softver koji je tome namjenjen. Komprimirati se može bez gubitaka izvornog informacijskog sadržaja, ili uz neki gubitak izvornog informacijskog sadržaja. Komprimiranje bez gubitaka koristi se kod komprimiranja egzaktnih sadržaja kao što su numerički i tekstualni zapisi; komprimiranje sa gubitkom izvodi se kod komprimiranja grafičkih zapisa; gubitak se sastoji u smanjenju broja boja koje se koriste u zapisu, čime slika obično postaje manje oštra. Komprimiranjem bez gubitaka ne mora dati veće učinke, tako da komprimirani sadržaj može zauzimati neznatno manji memorijski prostor nego izvorni sadržaj. Komprimiranje sa gubicima sadržaja može omogućiti da se neki zvučni i grafički zapisi (slike) zapišu sa 10ak puta manje bitova; slike se ponekad komprimira i znatno više od toga (i do 100 puta) ali uz znatan gubitak kvalitete slike. Komprimiranje je posebno bitno kod prenosa podataka (slika) jer kapaciteti prenosnih veza predstavljaju veći problem nego sam memorijski prostor za pohranu sadržaja. Programi za komprimranje uz gubitak informacijskog sadržaja obično nude korisniku mogućnost da bira stupanj kompresije, a time i utošak memorijskog prostora, ali i gubitak kvalitete (oštrine i boja) izvorne slike.

Datoteke sadrže velik broj atributa koji pokazuju razna svojstva tih datoteka. Slika 8 sadrži jedan nabor atributa koje mogu imati (i obično imaju) razne vrste datoteka podataka. Značenja pojedinih atributa ukratko su opisana u tablici na slici 8. Atributi određuju tko je vlasnik datoteke, kada je stvorena, tko je smije koristiti, kada je zadnji put netko pokušao pristupiti sadržaju te datoteke, kada je zadnji put mijenjan njen sadržaj, i niz drugih podataka o datoteci, o tome što se sa njom događa, i tko smije sa njom raditi. Korisnik ne mora eksplicitno voditi računa o svim atributima datoteke, ali sistem treba imati sve te podatke za svaku datoteku.



Slika 8. Atributi datoteka

Struktura datoteke ukazuje na to kako je uređen njen sadržaj. Sadržaj datoteke može biti uređen naprosto kao niz bajtova (koji se obično sastoje od 8 bitova). Sadržaj datoteke može biti uređen i kao niz zapisa (records) određene dužine i strukture. Ti zapisi mogu biti podaci o jednom entitetu (osobi, stvari) ili zapisi veličine jednog retka teksta na printeru. Sadržaj datoteke može biti uređen i u strukturu stabla. Slika 9 ilustrira navedene tri strukture datoteka, odnosno tri vrste unutarnjeg uređenja njihovih sadržaja.




Slika 9. Struktura datoteka: (a) bajtna, (b) zapisna, (c) stablasta

Datoteka ima zaglavlje koje sadrži podatke o njenoj strukturi (uređenju) koja ujedno određuje na koji način se može pristupiti pojedinim djelovima njena sadržaja. Postoje dva osnovna načina pristupanja djelovim asadržaja datoteka, i to sekvencijalni i izravni (random) način.
Kod sekvencijalnog pristupa, sadržaj datoteke se čita od nekog početnog mjesta (obično od početka datoteke) pa sve do traženog sadržaja. Kod izravnog pristupa, sadržaj datoteke uređen je tako, da se određenom dijelu njena sadržaja može pristupiti izravno, bez da se čitaju drugi sadržaji koji mu prethode. To se obično postiže primjenom sustava indeksiranja, pri čemu svaki dio sadržaja (jedan zapis) ima svoj indeks koji pokazuje na kojem mjestu je taj sadržaj fizički zapisan, tako da sustav može izravno pristupiti tom sadržaju, bez da čita ostale sadržaje.

Sa datotekama se izvode slijedeće osnovne operacije:
- Stvaranje (kreiranje) - da bi datoteka postojala, treba ju stvoriti, odnosno definirati je u sustavu; u programima se to obično radi naredbama tipa "create ime-datoteke", koje onda operacijski sustav izvršava. Prigodom njena stvaranja, sustav dodjeljuje datoteci neki memorijski prostor i jedan nabor vrijednosti atributa. Vrijednosti atributa koje sam sustav dodjeljuje nekoj datoteci prigodom njena kreiranja, nazivaju se "difoltnima" (default); difoltne su one vrijednosti koje sustav dodjeljuje nekom entitetu ako nije zahtjevano drukčije. Difoltne vrijednosti mogu se kasnije mijenjati ako za to postoje potrebe i mogućnosti.
- Brisanje - datoteku se može brisati sa sustava, čime se ujedno oslobađa memorijski prostor koji je ona zauzimala. Datoteku se obično briše naredbom tipa "deleate".
- Otvaranje - da bi se moglo izvoditi neke operacije sa sadržajem datoteke, tu datoteku treba prvo otvoriti. U programskim jezicima, to se radi operacijom tipa "open" koju onda realizira operacijski sustav.
- Zatvaranje - po završetku rada sa datotekom, datoteku valja zatvoriti. Zatvaranje se vrši operacijom tipa "close".
- Čitanje - sadržaj datoteke može se čitati na razne načine, od njena početka ili pak od određenog mjesta, zavisno od vrste datoteke i konkretne funkcije koja izvodi operaciju čitanja. Čitanje se vrši naredbama tipa "read".
- Pisanje - u datoteku se mogu upisivati novi sadržaji; način zapisa tih sadržaja zavisi od strukture datoteke i od konkretne funkcije koja izvodi operaciju pisanja. Upisivanje novih sadržaja može iziskivati da operacijski sustav poveća memorijski prostor koji je bio prvotno dodjeljen toj datoteci. Pisanje se izvodi naredbama tipa "write".
- Pretraživanje - sadržaj datoteke može se pretraživati radi nalaženja određenih podataka, ili radi utvrđivanja da li su ti podaci sadržani u toj datoteci. Pretraživanje se može smatrati nadgradnjom operacije čitanja jer pretraživanje ukjučuje i čitanje sadržaja.
- Čitanje atributa - postoje funkcije za čitanje trenutnih atributa (svojstava) datoteke, bez da se čita njen sadržaj.
- Postavljane atributa - atribute datoteke može se i mijenjati, u mjeri u kojoj datotečni sustav, struktura i sadržaj datoteke to dopuštaju.
- Preimenovanje - datoteci se može promijeniti ime, bez da se pritom zadire u njen sadržaj i ostala svojstva.

Datoteke se smještaju u direktorije. Direktorij (folder, mapa) je posebna datoteka koja sadrži podatke o tome kako su uređene ("posložene") datoteke podataka u sustavu datoteka. Sustav datoteka ima glavni (root) direktorij; "root" znači korjen (stabla) čije se "grane" onda granaju (na slici) prema dolje. Direktoriji mogu sadržavati datoteke i pod-direktorje koji sadrže svoje datoteke i pod-direktorije, kako to ilustrira slika 10.




Slika 10. Sustav direktorija i datoteka

Direktorij može sadržavati proizvoljan broj pod-direktorija i datoteka. Datoteke i pod-direktoriji mogu se premještati sa jedne pozicije u stablu na drugu. U različitim pod-direktorijima mogu se koristiti ista imena pod-direktorija i datoteka. Na direktorijima se može izvoditi niz operacija među koje spadaju: stvaranje i brisanje, otvaranje i zatvaranje, čitanje i preimenovanje.

Operacijski sustavi koristi razne metode dodjeljivanja memorijskog prostora pojedinim datotekama na fizičkim jedinicama (obično diskovima). Ovdje ne možemo detaljnije opisivati te metode; spomenimo samo neke osnovne elemente. Memorijski prostor se obično dijeli na particije i dalje na blokove. Jedna datoteka ne mora biti zapisana na jednom kontinuiranom dijelu memorije, već njen sadržaj može biti zapisan u više particija i u blokove koji ne tvore fizički niz, već su fizički udaljeni jedni od drugih. Do takvog ne-kontinuiranog fizičkog zapisa sadržaja jedne datoteke dolazi kada operacijski sustav hoće iskoristiti redom slobodne blokove memorije; operacijski sustav pritom vodi računa na koja mjesta je pohranio djelove jedne datoteke, tako da korisnik ne mora o tome voditi računa. Međutim, ne-kontinuiran fizički zapis jedne datoteke može usporiti proces njenog kasnijeg čitanja i pretraživanja.

Dio operacijskog sustava koji upravlja datotečnim sustavom i izvodi operacije sa vanjskim memorijama, sadrži i komponente koje su namjenjene ostvarenju pouzdanosti datotečnog sustava. Osnovna operacija koja se izvodi u te svrhe jest izrada rezervnih kopija sadržaja sustava datoteka podataka. Takve kopije se nazivaju "backup" (bekap) kopijama, i služe za "ponovno podizanje" (back up) sadržaja sustava podataka u slučaju da je došlo do njegova oštećenja. Takve kopije mogu se praviti u raznim vremenskim intervalima, od jednom godišnje, do nekoliko puta na dan, zavisno od vrste podataka i od inteziteta njihova mjenjanja. Kod vrlo osjetljivih tehnoloških sustava, backup se provodi konstantno, tako da se svi podaci stalno pohranjuju na dvije ili više memorijskih jedinica, tako da u slučaju zastoja radnog datotečnog sustava, obrada može biti nastavljena uz upotrebu rezervnog (backup) datotečnog sustava.
Backup podataka može sadržavati potpunu kopiju svih podataka sustava ili samo kopiju onih podataka koji su mjenjani nakon prethodnog backupa; kod potonjeg načina rada govorimo o inkrementalnom backupu.

Jedan od temeljnih zadataka operacijskog sustava jest da spriječava neovlaštenu upotrebu resursa, i to procesa (programa) i podataka. Takva zaštita provodi se pomoću sustava ovlasti, koji korisnicima (i programima) ograničava prava dostupa do određenih sadržaja i izvođenje određenih operacija. Za svaki resurs postoji prstupna lista koja sadrži popis korisnika koji smiju koristiti taj resurs, pri čemu je za svakog korisnika zadano koje vrste operacija smije izvoditi sa tim resursom. Naprimjer, korisnici Ivo, Mara, itd. smiju koristiti datoteku Proizvodi, pri čemu Ivo smije samo čitati tu datoteku, dok Mara ima ovlast da i mjenja njen sadržaj.
Sigurnost i zaštita sustava i podataka koje sustav sadrži je vrlo zahtjevan problem sa kojim se ovdje ne možemo podrobnije baviti. Problemi sigurnosti i zaštite su posebno izraženi kod mrežnih sustava koji su izloženi širem spektru mogućih napada i zloupotreba. O problematici sigurnosti i zaštite mrežnih sustava govorimo u poglavlju 4.
--- (/1) ------












URS-2



2. 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 otpočinje 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.



2.1 Klijent i opslužitelj

Mnogi procesi u računalnim sustavima odvijaju se prema metodi klijent-server (client-server). 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 primjeren te je stoga postao široko poznat i opće prihvaćen. U ovom tekstu nastojati ćemo koristiti 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. Tim pitanjem ne možemo se ovdje podrobnije baviti. Općenito, objašnjenja koja ovdje iznosimo, često nisu potpuna jer ne sadrže sve ono što bi jedan potpun opis nekog entiteta trebao sadržavati. Ovdje nastojimo iznijeti prvenstveno ono što je relevantno za prikaze koje ovdje iznosimo. Naprimjer, rekli smo da su klijent i server obično softverski sustavi; u nekim sustavima i situacijama, 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 tvrde; ali ta objašnjenja su često (i neizbježno) nepotpuna u smislu da neke stvari nisu rečene. Vrijeme i prostor za pisanje, kao i znanje autora su obično ograničeni.

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 2.1 prikazani su osnovni elementi mrežnog sustava, koji sudjeluju u realizaciji te operacije.



Slika 2.1 Klijent i opslužitelj

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 obično klijenti procesa (servera) na domaćinu Di. Klijentski sustavi obično komuniciraju sa serverima na domaćinima na koje su izravno vezani, ali komuniciraju i sa serverima koji se nalaze na drugim (udaljenim) domaćinima.
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 njihova 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 (naziv) HTTP protokola (o protokolima govorimo kasnije). Taj protokol definira strukturne elemente i operacije web sustava; time ujedno određuje funkcije i strukturne osobine 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 dijele 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, već 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 ni 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 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ćavaju izradu web stranica (HTML datoteka) na sličan način kako uređivači teksta omogućavaju 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. S druge strane, 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 (i usmenoj predaji) kaže se 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 tog 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 razmjenu četiriju poruka. 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 njihova 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 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 skine s mreže na stroj klijenta, a zatim otpočne s njegovim prikazivanjem, iako obično nije potrebno odgađati početak prikazivanja filma toliko dugo. Skidanje s mreže postojećih video zapisa 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, već 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 u nastavku. 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 biti će više riječi u posebnom poglavlju o aplikacijskoj razini mrežnog sustava, koje je planirano za drugi dio ovog teksta o računalnim mrežama. U ovom odjeljku pokušali smo samo opisati i ilustrirati osnovnu metodu rada klijent-server.


2.2 Čvorovi, veze i putovi

Savršena definicija računalne mreže nije od presudnog značaja za uspješan rad mreže, a nije nam ni poznata. 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, 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. 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 2.2 dan je prikaz osnovne strukture jednog mrežnog sustava koji sadrži spomenute vrste čvorova.





Slika 2.2 Domaćini i prijenosnici

Mreža se općenito označava simbolom oblaka; čvorovi izvan oblaka su domaćini, a čvorove unutar oblaka nazvali smo prijenosnicima. Taj naziv uveli smo zato što nam nije poznat neki drugi opći 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. U zavisnosti od razine promatranja (i rada), naprave koje izvode usmjeravanje i prijenos jedinica podataka nazivaju se preklopnicima (switches), mostovima (bridges), vratima (gateways) i usmjerivačima (routers). 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. Problem je u tome što kod općih objašnjenja nedostaje jedan opći naziv koji obuhvaća sve naprave za usmjeravanje i prijenos, bez obzira na razinu promatranja i rada. U nedostatku općeg naziva za "naprave za usmjeravanje i prijenos jedinica podataka", smislili smo jedan takav naziv: dakle, sve te naprave nazvali smo prijenosnicima. U nastavku ćemo većinom koristiti onaj pojam (preklopnik, most, usmjerivač, vrata) koji je primjeren konkretnom kontekstu govora. U tom smislu, možemo reći da se u oblaku na slici 2.2 nalaze usmjerivači koji (1) usmjeravaju i prenose sadržaje, i/ili (2) uspostavljaju putove kroz mrežu, zavisno o načinu rada dane mreže.

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 u ostvaruju 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 2.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 2.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.




Slika 2.3 Čvorovi i veze

Kod lokalnih mreža obično se koriste veze sa višestrukim pristupom (multiple access). To znači da se na isti kabel vezuje više čvorova, kako to ilustrira slika 2.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 2.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; 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 potrebi 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 kojim putem 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 njegovu 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); pitom 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. Standardni 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 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. Kaže se da potonja metoda omogućava učinkovitiji (kvalitetniji) prijenos, ali ta metoda ima i svoje slabosti. Tim pitanjima bavimo se u trećem poglavlju. Metoda prijenosa s uspostavljanjem putova pogodna je za prijenos sadržaja kod tokovnih (streaming) prijenosa, kao što je izravni video prijenos nekog događaja, te gledanje filmova i televizije preko računalne mreže.

Sustav čvorova (prijenosnika) i veza unutar oblaka na slici 2.2, ostvaruje prijenos sadržaja u mreži. Čvorovi izvan oblaka (domaćini) koriste taj prijenosni sustav, odnosno usluge koje on pruža. Na tim čvorovima rade razni serveri koji realiziraju razne mrežne usluge; na te čvorove (i servere) vezuju se korisnici sa svojim računalima i na taj način koriste usluge koje ti serveri pružaju.
Simbolom oblaka možemo općeniti 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 2.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 2.4.





Slika 2.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; 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 2.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 njihova softverska realizacija; 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. Kada 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čiti 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. Broadcsat 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 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 nekoliko desetaka kilometara (u radijusu), š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 njihova š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 4.1. 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.


2.3 Dijeljenje resursa

U računalnim mrežama odvija se ogroman 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 mislim 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 2.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 ta dva preklopnika može isto reći da radi na multipleksan način jer prenosi sadržaje više komunikacija istodobno.





Slika 2.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 od P1 komunicira sa jednim domaćinom od P2. Tada prijenosnik P1 treba raditi na multipleksan način, čime ujedno čini 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 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. Istodobno, prijenosnik upućuje u vezu (ili na 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 vez 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 čini govorimo u drugom dijelu ovog teksta.
Kod multipleksiranja s podjelom vremena, vezom teče samo jedan tok podataka. 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 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.
Jedna 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 potrebe po prijenosu podataka ili ne. 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 uspijeva proslijediti dalje (preko jedne ili više veza). U primjeru sa slike 2.5 to se može dogoditi ako domaćini koji su vezani na prijenosnik P1 duže vrijeme intenzivno šalju pakete, tako da P1 ne uspijeva prosljeđivati sve te pakete dalje u mrežu (prema njihovu odredištu). 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 i taj prostor je ograničen. 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 upozoravaju nasumce; o tim stvarima govorimo u kasnijim poglavljima.


Aplikacije i usluge prijenosa

Strukturu računalne mreže može se opisati (definirati) sa raznih stanoviš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ćavaju da izvodi operacije sa računalnom mrežom. Takvi su na primjer 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 kreira 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). Spomenimo da se stvarni (fizički) prijenos sadržaja (paketa/okvira, kao nizova bitova) uvijek izvodi na isti način; pitanje pouzdanosti i nepouzdanosti prijenosa je stvar kontrole ispravnosti prijenosa i otklanjanja grešaka. Kod pouzdanih kanala (načina rada), čvorovi otklanjaju eventualne greške u prijenosu, i to ponovnim slanjem onih paketa u kojima je došlo do grešaka; 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 2.6 ilustrira odnos aplikacija i usluga prijenosa.




Slika 2.6 Aplikacije i usluge prijenosa

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, 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 2.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 skidanja filmova i glazbe sa mreže, kao i kod telekonferencija. Svaka od tih aplikacija ima neke specifične osobine, 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. Skidanje 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 njihova 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, već 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).


2.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 č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 2.7.


Aplikacije (usluge)
Povezivanje procesa
Povezivanje čvorova
Fizički sloj (hardver)


Slika 2.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 koji 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 valja razlikovati uspostavu veza (i prijenosa podataka) između čvorova koji su izravno vezani i između čvorova koji to nisu. U prvom slučaju obično 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 slojeva mrežnog sustava 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 koji smo nazvali povezivanjem procesa povezuje odgovarajuće (istovrsne) procese na čvoru (domaćinu) pošiljatelja i primatelja, i time ostvaruje određeni prijenosni kanal čija svojstva odgovaraju potrebama određene aplikacije (mrežne usluge). Ti procesi vode računa o propusnosti (brzini) kanala i o pouzdanosti prijenosa, te upravljaju tokom prijenosa.
Aplikacijama smo nazvali one softverske entitete koji izravno omogućavaju korisniku da izvrši određene operacije "pomoću mreže" (klijentski sustavi), i one softverske entitete (servere) koji obavljaju poslove na zahtjeve klijenata. Sustavi aplikacijske razine su na primjer 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, već 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. 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 njena rada zavisila od toga koliko je nova realizacija dobra u usporedbi sa sadašnjom. Novu softversku realizaciju istog IP modula trebalo bi instalirati na čvorove mreže. Ali to bi bilo lako učiniti, za razliku od uvođenja novog protokola iste razine i funkcije, kao što je to IPv6 u odnosu na IPv4; o tome govorimo u četvrtom poglavlju .
Slojevi mogu sadržavati više protokola. Na slici 2.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 2.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 2.9 ilustrira položaj entiteta i spomenuta sučelja.




Slika 2.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 is sloja Si-1 ispod sebe. Protokol Pij isto tako izvodi određene operacije sa odlazećim paketom podataka, čime daje neke informacije (instrukcije) istovrsnom protokolu na čvoru (domaćinu) na koji se taj paket podataka upućuje. Definicije poruka koje istovrsni protokoli (na različitim čvorovima) međusobno razmjenjuju, nazvali smo sučeljem prema istovrsnom entitetu. U nastavku ovog poglavlja pokazati ćemo na koji način istovrsni protokoli međusobno komuniciraju. To se izvodi tako, 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 zaglavlja koje 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 koriste usluge kojih protokola. Slika 2.10 daje primjer jednog takvog grafa protokola. U stvarnosti bi takav graf bio znatno 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.



Slika 2.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 2.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 vrši 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 paketu podataka na strani pošiljatelja, HHP protokol 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 koji 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 u dva značenja. To je definicija (tehnički opis) nekog entiteta, ali tako se naziva i realizacija (softverska ili hardverska) tog 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 Interneta; na promjeni (i zamjeni) IP protokola radi se puno godina, ali ta zamjena još nije provedena u cijelosti. Razvojem, vrednovanjem i mijenjanjem mrežnih sustava i njihovih protokola upravljaju uglavnom međunarodne institucije kao što su International Telecommunication Union (ITU), International Standards Organization (ISO) i Internet Engineering Task Force (IETF).


Inkapsulacija

Inkapsulacija (encampuslation) ovdje znači umetanje 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 pakiran sadržaj prenosi se mrežom; po prispijeću takvog (višeslojnog) paketa na odredište, na svakom sloju skida se jedno pakiranje; na kraju tog procesa, čisti sadržaj predaje odgovarajućoj aplikaciji na domaćinu primatelju. Proces pripreme sadržaja za prijenos (to jest, proces inkapsulacije), te njegova procesiranja na domaćinu primatelju, ilustriran je na slici 2.11.




Slika 2.11 Inkapsulacija

Aplikacija Ai sa domaćina D1 šalje neke sadržaje istovrsnoj aplikaciji Ai na domaćinu D2. Aplikacija Ai predaje te sadržaje protokolu RRP iz sloja ispod sebe, koji je uspostavio odgovarajući prijenosni kanal između aplikacije Ai na domaćinu D1 i istovrsne aplikacije na domaćinu D2. Tu počinje proces inkapsulacije: RRP umeće primljene sadržaje u svoje pakete, čija je struktura definirana sa RRP protokolom. Ono što se ovdje naziva umetanje, 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 izvršava 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 šalje na usmjerivač na koji je taj domaćin vezan. Taj usmjerivač zatim prosljeđuje paket do slijedećeg čvora, prema njegovom konačnom odredištu; u danom primjeru, prema domaćinu D2. Prosljeđivanje prema odredištu izvodi se na temelju sadržaja zaglavlja paketa (taj sadržaj uključuje adresu odredišta) i na temelju tablica prosljeđivanja na usmjerivačima, koje kazuju kuda treba proslijediti paket koji je upućen na određeno odredište (adresu).

U procesu inkapsulacije jedinica podataka koja dolazi sa višeg sloja treba se ponekad lomiti na više dijelova koji se uvrštavaju u više jedinica podataka (paketa) nižeg sloja, jer su jedinice podataka nižih slojeva obično maje (kraće) nego što to mogu biti jedinice podataka viših slojeva. O inkapsulaciji se govori kao o umetanju primljenog sadržaja u novi paket. Međutim, može se isto tako reći da se polaznom sadržaju na pošiljatelju D1, u svakom sloju dodaje po jedno zaglavlje koje sadrži odgovarajuće upravljačke podatke za entitete istog sloja na primatelju D2; ti podaci kazuju odgovarajućim entitetima na D2 što trebaju učiniti (na danoj razini) sa primljenim sadržajem.
Zaglavlja općenito sadrže upravljačke i kontrolne sadržaje, među koje spadaju adresa pošiljatelja i adresa primatelja tog sadržaja (paketa). Kod nekih sustava, na nekim razinama upravljački sadržaji dodaju se na kraj primljenog 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. Podsjetimo da se tijelo paketa č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 koji se plaća; slično vrijedi i za niz zaglavlja sa slike 2.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 (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; takvi sustavi obično lome primljene pakete u niz svojih (manjih) paketa (okvira, ćelija) i prenose ih na odredište, gdje se onda iz tih okvira (ćelija) ponovno formira izvorni (polazni) paket. Fizički prijenos odvija se između dvaju čvorova koji su izravno 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; jednu dionicu čini veza između dvaju prijenosnika, odnosno između zadnjeg prijenosnika i konačnog odredišta. To oblikovanje odnosi se samo na niže razine (ovdje HHP i NET) jer prijenosnici nemaju (i ne trebaju) viših razina.
Po prispijeću 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 (NET) formira paket HHP sloja, kakav je bio predan sustavu NET na strani pošiljatelja. Protokol HHP sloja "skida" HHP zaglavlje sa tog paketa i izvršava ono što mu je tim zaglavljem 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 (ili 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. Zaglavlje svakog protokola sadrži i informaciju (od strane pošiljatelja) o tome kojem protokolu (sa 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 često vrše 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, na primjer nekih nijansi boja na slici. O tim stvarima biti će više riječi u drugom dijelu ovog teksta.


2.5 OSI arhitektura mreže

International Standards Organization (ISO) ima više tisuća radnih grupa koje se bave poslovima razvoja standarda (standardizacije) za skoro sve 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 kasnije) kada je razvijana računalna mreža Internet (tada se zvala ARPANET), tako da postoje tvrdnje da je konkretan rad na razvoju te mreže utjecao na razvoj OSI modela. 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 2.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.




Slika 2.12 Slojevi OSI modela

OSI model se obično objašnjava počevši od najniže razine. Ukratko, fizički sloj (physical layer) je sustav (hardverske razine) koji ostvaruje prijenos nizova bitova (ili signala) između dvaju čvorova; točnije, između onih elemenata (mrežnih kartica) koji te čvorove vezuju "na mrežu".
Prije slanja u vezu (prema susjednom čvoru), nizovi bitova uređuju se u "komade" zadane 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 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 izravno vezanih čvorova. 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 vezanih čvorova. Uloga mrežnog sloja je da omogući prijenosnicima da prosljeđuju pakete prema njihovu 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 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 te mreže. Preostala četiri sloja odnose se na ostvarenje određenih osobina prijenosa (pouzdanost, brzinu), ta 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 tog sloja glasi Transport Control Layer (ili Protocol), s tim da je naglasak ovdje na "control", a ne na "transport". Prijenos podataka odvija se na najdonja dva sloja, dok mrežni sloj (treći odozdo) usmjerava pakete prema konačnom odredištu. Zato bi sloj kontrole prijenosa trebalo zapravo zvati slojem upravljanja prijenosom, a ne transportnim slojem, kako se obično naziva. Taj sloj ne vrši prijenos, nego upravlja njegovim tokom; to upravljanje uključuje kontrolu ispravnosti prijenosa kojeg su ostvarili slojevi ispod ovog sloja. Uzgred, englesku riječ "control" treba češće prevoditi sa "upravljanje" nego sa "kontrola" (kako se to redovito čini); u ovom slučaju, četvrti sloj OSI modela odnosi se na upravljanje prijenosom i na kontrolu njegove ispravnosti. Više o tome biti će rečeno u drugom dijelu ovog teksta.
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 osobine 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 često istič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, ali biti će još riječi u kasnijim poglavljima. Tu se javlja problem kako razlučiti 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 konferencije. O sloju sesije govori se relativno malo i njegova uloga nije sasvim jasno definirana; postoje mišljenja da se funkcije tog 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 (ili trebaju obavljati) zapravo stvar (dio) aplikacijskog sloja. Takve tvrdnje postoje već puno godina; valjda će razvoj novih aplikacija pokazati trebaju li ta dva sloja postojati (kao zasebni) ili ne. U Internet modelu (arhitekturi) mreže, ti slojevi ne postoje, što zapravo znači da su njihove funkcije svrstane 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 modificira.


2.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, već 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 2.13.




Slika 2.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 arhitekture 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. U hardver ovdje spada mrežna kartica, čijim radom upravlja softver (drajver) koji se izvodi na čvoru kojeg ta kartica vezuje na mrežu. Za fizički prijenos potreban je i nosioc podataka koji povezuje dva čvora (to jest, njihove mrežne kartice); takvi 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 koji 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.
Mnogi ne vole uspoređivati slojeve sedmo-slojnog OSI modela i četveroslojnog Internet modela. Okvirno, 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 njegove realizacije kao 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) vode 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 kontrole prijenosa (ili upravljanja prijenosom), koji se u OSI modelu (krivo) naziva transportnim slojem, u Internet modelu sadrži dva protokola, TCP i UDP. TCP (Transmission Control Protocol) i UDP (User Datagram Protocol) su protokoli tipa s-kraja-na-kraj (end-to-end) jer uključuju 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 tokom podataka tim kanalom, 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 zahtjeva 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 kontrolne 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 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ćnost 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 HTML (HyperText Transport Protocol), koji definira rad sustava web stranica. Već smo rekli da imena raznih mrežnih entiteta često nisu naročito prikladna; pojmovi "transfer" i "transport" u nazivima ovih protokola ne znače da su to protokoli "transportne" razine (to jest, razine kontrole prijenosa); 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 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 jednak (ekvivalentan) rad sa web stranicama, trebaju biti oblikovani prema istom "nacrtu"; u ovom slučaju to je protokol HTTP.

Arhitektura Interneta se često prikazuje na način kako je to učinjeno na slici 2.14. Međutim, takav prikaz je zapravo graf protokola koji na razini aplikacija navodi neke konkretne aplikacije, a na razini upravljanja prijenosom konkretne protokole, što sam model ne mora činiti, kao što to ne čini OSI model koji je dan na slici 2.12.




Slika 2.14 Slojevi i protokoli

Elemente (protokole i simbole) sa slike 2.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" sloj kontrole prijenosa (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 2.15.




Slika 2.15 Obilaženje slojeva/protokola

Dakle, aplikacija može koristiti protokole sa sloja kontrole prijenosa (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, da bi programer koji izrađuje neku aplikaciju zaobilazio neke slojeve Interneta, za to treba imati valjane razloge (koji se u literaturi ne navode). Nadalje, ako programer aplikacije ne koristi standardne protokole mreže Internet, onda mora programski napraviti one funkcije (operacije) koje ti protokoli izvode. Konačno, ako neka aplikacija zaobiđe IP sloj (protokol), onda tu aplikaciju ne bi trebalo smatrati Internet aplikacijom. S druge strane, tu aplikaciju treba smatrati Internet aplikacijom ako pruža one usluge aplikacijske razine koje pruža neka standardna Internet aplikacija. Naprimjer, netko bi mogao napraviti web preglednik koji ne koristi usluge IP sloja, ali koji radi kao i oni preglednici koji koriste usluge tog sloja. 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 2.15 može sugerirati da aplikacije mogu koristiti usluge fizičkog sloja pored usluga TCP/UDP i IP sloja; to je već druga stvar i takva mogućnost izgleda korisnom.
IP sloj (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 kraju se "čisti" podatkovni sadržaj predaje aplikaciji kojoj je namijenjen.


2.7 Kapacitet i pouzdanost

Dva temeljna 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 2.16 pokazuje na koji način se to postiže.




Slika 2.16 Trajanje/širina signala

Dakle, č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 i biti prenijeto u jednoj sekundi. Porast preciznosti tehnoloških elemenata omogućava kreiranje i čitanje sve užih (kraćih) signala, i time stalni porast propusnosti veza.
Propusnost veza općenito zavisi od njihovih fizičkih osobina 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 osobinama 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, usmjerivača) 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 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. Doslovno, š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. Ukratko, 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, koji ta veza nominalno prenosi (prema svojim tehničkim osobinama). Međutim, u nekoj konkretnoj realizaciji, veza može ne postizati te (teorijski moguće, očekivane) 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 2 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 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 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) već 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), o propusnosti veze, i o veličini toga paketa. Ako veza između čvorova nije izravna, već 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 koji 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 (obično 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 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 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 vrlo okvirnih 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 2.17.




Slika 2.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 (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 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 je određeno 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 (kanalu) 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.
Činjenica da veze mogu sadržavati u sebi (na putu) tako velike količine podataka, bitno utječe na način kako treba oblikovati komunikaciju između procesa, odnosno na to kako treba oblikovati protokole koji definiraju te procese i načine razmjene podataka među njima. 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 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 raspolagu 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 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 njihovu 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 izostavljaju pouzdanost (ne ispravljaju greške), sa ciljem da ostvare veću brzinu prijenosa. Takvi nepouzdani kanali koriste se kod onih prijenosa podataka kod kojih potpuna točnost prijenosa nije izrazito važna; to je slučaj prvenstveno kod video prijenosa. Pouzdanost je bitna kod prijenosa tekstualnih i numeričkih sadržaja, programa i drugih egzaktnih sadržaja. S druge strane, kod 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 nekom vezom. Uslijed nekih smetnji (unutarnjih ili vanjskih), neki signal 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". Uzgred, u računalima i mrežama nema "nula i jedinica"; postoje samo signali (električki, magnetski, optički). U binarnim sustavima postoje dva signala, odnosno signal može poprimiti dvije vrijednosti; pritom jedna vrijednost signala označava binarnu vrijednost "0", a druga vrijednost signala označava 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 samog 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, izgledalo bi 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.

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 mogu biti napravljeni dovoljno visoko pouzdanima 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 bitova, tako da se njima ovdje ne bavimo. Takve metode zapisa obično sadrže znatnu količinu "dodatnih" (redundantnih) 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 njegovu odredištu; ali takav paket može lako "zastarjeti" (zbog lutanja), i zbog toga onda biti odbačen na nekom od prijenosnika. 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.

+



























URS-3



3. Mreže sa izravnim vezama



U ovom poglavlju opisani su elementi koji tvore fizički sloj računalne mreže i sloj veze podataka u OSI modelu mreže. Ovdje govorimo o hardverskim elementima čvorova, o nosiocima podataka, o zapisivanju sadržaja (kodiranju) na nosioce, te o metodama prijenosa uređenih nizova bitova između čvorova koji su međusobno povezani izravnom vezom.
U drugom dijelu poglavlja opisano je više mreža lokalnog i gradskog tipa, kod kojih se prijenos podataka izvodi preko zajedničkog nosioca podataka (medija, veze). Uzima se da su čvorovi takvih mreža izravno međusobno povezani, bez obzira na oblik zajedničkog nosioca podataka kojeg koriste. Dan je prikaz mreže Ethernet koja koristi sabirnicu, kao i prikaz mreža (lokalnih i gradskih) kod kojih zajednički nosioc podataka ima strukturu prstena.




3.1 Povezivanje čvorova

Da bi se napravilo računalnu mrežu potrebno je najprije uspostaviti vezu između dva čvora. Uspostaviti vezu ovdje znači ostvariti mogućnost razmjene signala između dva čvora pomoću nekog nosioca signala. Ukratko rečeno, signal je neka fizička veličina; znak je značenje koje se dodjeljuje toj veličini u okviru nekog sustava značenja. Na ovom papiru nalaze se signali koji sami po sebi ne znače ništa. Međutim, ljudi su dodijelili neka značenja signalima određenih oblika, i time su stvorili slova, odnosno znakove abecede; nizovi znakova abecede tvore riječi, od kojih nastaju rečenice i priče.
U računalnim mrežama, nosioci signala mogu biti metalni vodiči, optička vlakna, prostor kojim se šire elektromagnetski valovi, i druga sredstva. Pitanjem kako se elektromagnetski valovi šire prostorom (i vakuumom) ne možemo se ovdje baviti. Spomenimo samo da se i svjetlo smatra elektromagnetskim signalom (ali postoji i drukčija teorija svjetla). Električni signali šire (kreću) se u metalnim vodičima (obično bakrenim), dok se optički signali šire u optičkim vlaknima.

Za prijenos podataka (informacijskih sadržaja) između dva računala nije dovoljno samo ostvariti mogućnost prijenosa signala među njima, već treba napraviti još niz drugih stvari.
(1) Treba definirati način kodiranja. Kodirati ovdje znači dodijeliti značenja signalima. Na toj razini dovoljno je odrediti koje stanje signala označava vrijednost "0", a koje stanje označava vrijednost "1". Znakovi "0" i "1" dovoljni su da se u binarnom sustavu zapiše svaki informacijski sadržaj, i to pomoću određenih nizova binarnih znakova.
(2) Treba definirati strukturu nizova podataka određene dužine, koji se prenose vezom. Takve nizove naziva se raznim imenima; ovdje ćemo ih nazvati okvirima (frames). Dakle, između dvaju izravno povezanih čvorova prenose se okviri (bitova, signala); pritom jedan dio okvira sadrži upravljačke sadržaje (adrese i drugo), a drugi dio prenosi podatke koje jedan čvor šalje drugome.
(3) U prijenosu bitova (okvira) događaju se greške. Takve greška mogu nastati iz raznih razloga i mogu se manifestirati kao iskrivljenje bitova u okviru, ili kao gubitak okvira. Sustav koji ostvaruje komunikaciju između dvaju čvorova, treba definirati način otkrivanja grešaka.
(4) Sustav za razmjenu sadržaja između čvorova, treba definirati način otklanjanja grešaka koje su nastale u prijenosu i koje su otkrivene.
(5) Kod lokalnih mreža (s kojima se bavi veći dio ovog poglavlja), čvorovi komuniciraju preko istog fizičkog nosioca podataka. Kod tih mreža, zajednički fizički nosioc podataka (točnije, signala) prenosi sadržaje samo jednog pošiljatelja istodobno. Zato kod takvih mreža treba definirati način pristupanja mediju, odnosno postupak kojim neki čvor stječe mogućnost (pravo) zauzimanja zajedničkog nosioca podataka i njegove (isključive) upotrebe za prijenos svojih podataka.
Navedenih pet osnovnih stvari koje su potrebne za ostvarenje prijenosa podataka između dvaju čvorova, realizira se uglavnom hardverski, i to u elementu koji se naziva mrežna kartica ili mrežni adapter (network adaptor). To je onaj hardverski element koji vezuje računalo "na mrežu" i time ga čini čvorom te mreže. Slika 3.1 pokazuje osnovnu strukturu računala, i pokazuje na koji način mrežna kartica povezuje računalo u mrežu.




Slika 3.1 Osnovna struktura računala

Ovdje iznosimo načela prema kojima se ostvaruje komunikacija između čvorova, odnosno između računala i mreže; konkretne realizacije imaju svoje specifičnosti na razini hardvera i softvera, sa kojima se nastoji postići čim veću učinkovitost rada mrežnog čvora, u zavisnosti od specifičnih poslova koje obavlja. Na primjer, domaćini i prijenosnici (usmjerivači) su čvorovi mreže, ali obavljaju različite vrste poslova (operacija). Računala poput usmjerivača, koja obavljaju neku specifičnu vrstu poslova, obično se oblikuju (hardverski i softverski) na specifičan način koji je primjeren poslovima koje obavlja.
U osnovi, mrežna kartica vezuje računalo na mrežu i obavlja operacije koje su potrebne za izravno slanje sadržaja u mrežu, kao i za izravno prihvaćanje sadržaja sa mreže. Radom mrežne kartice upravlja program (softverski sustav) koji se naziva drajverom (driver), a možemo ga zvati upravljačkim programom ili upravljačem mrežne kartice. Druge jedinice računalnog sustava (poput printera) imaju isto tako svoje upravljačke programe (drajvere).
Postoje različite vrste mreža i različite vrste veza na mrežu, pa tako i različite vrste mrežnih kartica. Mrežna kartica obično ima svoj memorijski prostor i procesor. Prigodom slanja podataka u mrežu, mrežna kartica uzima sadržaje koje treba poslati u mrežu (iz memorije čvora, ili iz vlastite memorije), uređuje te sadržaje (nizove bitova) u okvire (mreže kojoj pripada) i upućuje te okvire u vezu prema čvoru na koji ta veza vodi. Pritom uređivati sadržaj u okvire znači praviti okvire čije tijelo sadrži (i prenosi) podatkovni sadržaj, dok zaglavlje okvira čine upravljački i kontrolni zapisi (adrese i drugo) koje dodaje mrežna kartica i koji su potrebni za izvršenje prijenosa, te za otkrivanje i otklanjanje grešaka u prijenosu.
Kod sustava sa višestrukim pristupom nosiocu podataka (vezi), mrežna kartica rješava i pitanje prava pristupa vezi. Ukratko, mrežna kartica obavlja poslove koje treba obaviti da bi neki sadržaji (paketi podataka) bili prenijeti sa danog računala "u mrežu", prema zadanom odredištu. Pritom, mrežna kartica vrši prijenos samo do slijedećeg čvora; o putu toga sadržaja do konačnog odredišta, vodi računa mrežni sloj sustava, koji u hijerarhiji slojeva (i protokola) dolazi iznad razine poslova koje obavlja mrežna kartica. U OSI modelu taj sloj naziva se mrežnim slojem; u mreži Internet je to IP sloj (protokol).
Na sličan način, mrežna kartica obavlja poslove prihvaćanja sadržaja (okvira) iz mreže, koji na nju stižu preko dane veze. Pritom mrežna kartica provjerava ispravnost prispjelih okvira i izvodi odgovarajuće operacije ako utvrdi da je sadržaj okvira iskrivljen na putu; te operacije se uglavnom svode na "primoravanje" pošiljatelja da određene (skrivljene) okvire pošalje ponovno. Mrežna kartica pohranjuje sadržaje (primljene u ispravnom stanju) u memoriju (svoju ili od čvora), odakle te sadržaje onda preuzimaju viši slojevi mrežnog sustava i nastavljaju s njihovim procesiranjem, obično sve do razine aplikacija, za čije potrebe je dani prijenos podataka izvršen.

Mrežna kartica ima dva sučelja: jedno prema računalu koje ta kartica vezuje na mrežu, a drugo prema vezi preko koje kartica vezuje (uključuje) to računalo u mrežu. Prijenos podataka preko mrežne kartice odvija se tako, da čvor upisuje u određeni memorijski prostor one sadržaje koje treba prenijeti na neku adresu (čvor) u mreži; mrežna kartica čita te sadržaje, formira iz njih okvire upućene na danu adresu i prenosi te okvire danom vezom do slijedećeg čvora, koji onda nastavlja s prijenosom sadržaja tih okvira prema njihovu odredištu.
Kod primanja sadržaja, postupak je obrnut: mrežna kartica prima sadržaje iz mreže (sa veze) i smješta ih u određeni memorijski prostor, odakle ih zatim preuzimaju određeni procesi sa čvora. Radom mrežne kartice upravlja njen upravljački program koji se izvodi na čvoru kojeg ta kartica vezuje na mrežu.
Za više slojeve mrežnog sustava, poslati podatke u mrežu (na neku adresu) znači upisati te sadržaje u odgovarajući memorijski prostor, odakle ih mrežna kartica preuzima i šalje u mrežu. To se posebno odnosi na mrežni sloj (sloj IP u Internetu) koji se nalazi izravno iznad fizičkog sloja čije se funkcije realiziraju pomoću mrežne kartice. Govoreći u terminima OSI modela, ispod mrežnog sloja je sloj veze podataka (data link), koji obavlja one poslove koji se ostvaruju u mrežnoj kartici.
Na isti način, primati podatke sa mreže (sa neke adrese), za više slojeve mrežnog čvora znači preuzimati sadržaje iz određenog memorijskog prostora u koji mrežna kartica zapisuje sadržaje koje prima sa mreže. Pritom svaki od slojeva, uključujući fizički sloj i sloj veze podataka, koji su realizirani u mrežnoj kartici, izvodi određene procese sa primljenim sadržajima, prije nego ih preda sloju iznad sebe, kako je to objašnjeno u prvom poglavlju.
Razmjena sadržaja između računala i mrežne kartice može biti ostvarena na razne načine. Mrežna kartica može uzimati sadržaje za prijenos izravno iz memorije čvora, bez da u tome sudjeluje CPU čvora. Isto tako, mrežna kartica može upisivati prispjele sadržaje izravno u memoriju čvora. U tom slučaju, upravljač (drajver) mrežne kartice zadaje kartici memorijsku adresu sa koje treba početi uzimati sadržaj za prijenos, odnosno adresu od koje treba početi upisivati sadržaj koji stiže na tu karticu. Mrežna kartica ima svoj procesor, tako da može obavljati takve poslove, bez izravnog sudjelovanja CPU čvora. Drugi način rada je da se razmjena sadržaja izvodi u memoriji mrežne kartice. Tada CPU čvora upisuje sadržaje koji su za prijenos, u memoriju mrežne kartice; isto tako, preuzima prispjele sadržaje iz memorije mrežne kartice.


3.2 Nosioci podataka i veze

Veze između čvorova ostvaruju se pomoću raznih nosioca signala. To može biti opletena parica (twisted pair) kakvu obično nalazimo u fiksnim telefonskim sustavima na lokalnoj razini. Nosioc signala je i koaksijalni kabel (coaxial cable), poput onog kojim se povezuje televizor na antenu, ili na kabelski sustav za prijenos televizijskih programa. Kod dugih veza obično se koriste optički kablovi koji imaju izrazito veliku propusnost. Prostorom se mogu prenositi elektromagnetski signali raznih vrsta i frekvencija. Elektromagnetski signali nazivaju se valovima i prikazuju (crtaju) se kao promjenljiva stanja koja se ciklički ponavljaju (poput valova na moru); ali to ne znači da elektromagnetski valovi zaista izgledaju poput valova na moru. Stvari se često imenuje slikovitim nazivima, ali ih često nije lako predočiti.
Signali koji su valne prirode imaju određenu frekvenciju i valnu dužinu. Frekvencija je broj "vrhova" signala (ili valova) u sekundi. Frekvencija se mjeri u Hertzima (Hz), a može se opisati i kao broj "njihaja" signala u sekundi. Valna dužina je udaljenost (mjerena u metrima) između dva susjedna vrha vala. Ta udaljenost (valna dužina) zavisi od frekvencije signala i od brzine kojom se signal (val) širi. Na primjer, ako je frekvencija nekog signala 1000 Hz, a signal se širi brzinom od tisuću metara u sekundi, onda njegova valna dužina iznosi 1 metar; dakle, valna dužina je vrijednost izraza BrzinaSignala / Frekvencija.
Za prijenos signala u komunikacijskim sustavima uglavnom se koriste elektromagnetski signali. Postoje elektromagnetski signali vrlo različitih frekvencija i valnih dužina. Svi ti signali kreću se otprilike istom brzinom, koja donekle zavisi od medija kojim se šire. Na slici 3.2 dan je jedan prikaz spektra elektromagnetskih signala; pritom je navedeno koji mediji (fizički nosioci) se obično koriste za prijenos elektromagnetskih signala određenih frekvencija.




Slika 3.2 Spektar elektromagnetskih valova

Problematika zapisivanja bitova (vrijednosti "0" i "1") na elektromagnetske valove je složena. Zapisivanje bitova na valove naziva se modulacijom; postoje razne vrste modulacija; najpoznatije su amplitudna, frekventna i fazna. Tom problematikom se ovdje ne trebamo baviti; možemo samo ilustrirati na koji način se mogu zapisivati bitovi na elektromagnetske valove kod amplitudne modulacije, kod koje to izgleda jednostavnije nego kod drugih metoda moduliranja. Kod amplitudne modulacije, "0" se zapisuje na jedan vrh vala tako, da se smanji visinu (amplitudu) toga vrha vala; dakle, tako da se smanjiti jačinu vala na tom mjestu. Na sličan način, "1" se zapisuje tako, da se poveća visinu (amplitudu, jačinu) nekog vrha vala. Na taj način val-nositelj (kod kojeg su svi vrhovi jednako visoki) biva "izobličen" tako, da amplitude nekih valova budu niže a drugih valova više; pritom niže amplitude zapisuju (i prenose) znakove "0", a više amplitude zapisuju (i prenose) znakove "1". Frekvencija signala ostaje ista. Frekventna i fazna modulacija postižu iste učinke na druge načine.
Danim primjerom ilustrirali smo način zapisivanja korisnih signala (informacijskih sadržaja) na elektromagnetski signal (val) koji onda služi kao nosioc tih zapisa. Tehnički elementi koji to rade u stvarnim komunikacijskim sustavima, koriste složenije postupke, sa ciljem da optimalno iskoriste prijenosne mogućnosti elektromagnetskih valova (kao nositelja bitovnih zapisa), te da postignu optimalnu pouzdanost rada prijenosnih sustava.
Opis amplitudne modulacije sugerira da se na valove viših frekvencija može zapisati veći broj bitova u sekundi: na svaki vrh vala po jedan bit. To ujedno omogućava prijenos većeg broja bitova u sekundi, odnosno daje veću propusnost veze. Tako slika 3.2 sugerira da je propusnost optičkih vlakana daleko veća od propusnosti koaksijalnih kablova i satelitskih sustava, jer optička vlakna mogu prenositi elektromagnetske signale daleko većih frekvencija nego prethodna dva medija. Frekvencija (u Hz) nekog elektromagnetskog signala (vala) nije isto što i propusnost veze (u bps) koja taj signal prenosi (koristi); ali propusnost veze bitno zavisi od frekvencije signala-nositelja kojeg ta veza može prenositi.

Veze mogu prenositi signale u jednom smjeru, naizmjenično u jednom i u drugom smjeru, i u oba smjera istodobno. Veze prve vrste naziva se simpleks vezama, veze druge vrste naziva se polu-dupleks vezama, a veze treće vrste naziva se dupleks vezama. Za pouzdan prijenos podataka između čvorova koji su izravno vezani potrebno je da čvor primatelj povremeno šalje određene povratne informacije čvoru pošiljatelju. Zato ovdje uzimamo da su sve izravne veze između čvorova tipa dupleks, ne zalazeći u pojedinosti na koji način je (tehnički) ostvarena mogućnost dvosmjerne komunikacije. To se obično ostvaruje pomoću iste fizičke veze, čiji se kapacitet dijeli vremenski ili po frekvencijama, kako je to objašnjeno u odjeljku 3.3. Dakle, jedan kratki vremenski interval prijenos teče u jednom smjeru, a drugi interval u drugom smjeru; pritom ti intervali obično nisu jednako veliki. Kod podjele frekvencija, ukupni frekventni pojas jedne veze dijeli se na dva dijela; u jednom dijelu prijenos teče u jednom smjeru, a u drugom dijelu teče u drugom smjeru.

Postoje razne vrste kablova, koji imaju razne širine frekventnih pojaseva i omogućuju prijenos sadržaja na razne udaljenosti (bez obnavljanja signala). Na slici 3.3 dan je jedan izbor tipičnih vrsta kablova, zajedno sa njihovim prijenosnim karakteristikama.



Kabel Širina frekventnog pojasa
Udaljenost
Opletena parica kategorije 5 10-100 Mbps 100 m
Tanki koaksijalni
kabel 10-100 Mbps 200 m
Debeli koaksijalni
kabel 10-100 Mbps 500 m
Multimode optička vlakna 100 Mbps 2 km
Single-mode optička vlakna 0.1-10 Gbps 40 km

Slika 3.3 Vodiči i propusnosti

Opletena parica kategorije 5 (Category 5 twisted pair) slična je opletenoj parici kod lokalnih telefonskih veza, ali je nešto deblja; koristi se unutar zgrada, za vezivanje računala na mrežu. Tanki koaksijalni kablovi (Thin-net coax) i debeli koaksijalni kablovi (Thick-net coax) koriste se isto tako za izradu veza unutar zgrada. Navedeni kablovi mogu se koristiti i za veze između zgrada. Optički kablovi (kablovi s optičkim vlaknima) tipa "multimode" obično se koriste za povezivanje zgrada, dok se optički kablovi tipa "single-mode" koriste za ostvarenje veza najvećih dužina.
Veze se mogu iznajmljivati od tvrtki koje se bave gradnjom i iznajmljivanjem prijenosnih (komunikacijskih) sustava. Takve veze imaju svoje tehničke (i komercijalne) nazive i određena svojstva. Na slici 3.4 dana je jedna lista takvih veza i njihovih širina frekventnog pojasa (to jest, najveće propusnosti).


Vrsta veze/usluge Širina frekventnog pojasa
DS1 1,544 Mbps
DS3 44,736 Mbps
STS-1 51,840 Mbps
STS-3 155,520 Mbps
STS-12 622,080 Mbps
STS-24 1,244160 Gbps
STS-48 2,488320 Gbps

Slika 3.4 Veze i propusnosti

Kaže se da širina frekventnog pojasa veze tipa DS1 (1,544 Mbps) iznosi 24 širine frekventnog pojasa glasovne digitalne telefonske linije (koja iznosi 64 Kbps); međutim, 24 puta 64 Kbps ne daje točno 1,544 Mbps. Kaže se da veza tipa DS3 ima 28 puta veću širinu frekventnog pojasa od veze tipa DS1, ali množenje ne daje točno taj rezultat. Veza STS-1 je osnovna veza u nizu veza toga tipa. Veza STS-i ima i puta veću širinu frekventnog pojasa od veze STS-1. Dakle, veza STS-12 ima 12 puta veću širinu frekventnog pojasa (propusnost) od veze STS-1; množenje ovdje odgovara vrijednostima u tablici.
Veze tipa DS mogu biti ostvarene bakrenim vodičima ili optičkim kablovima; veze tipa STS ostvarene su pomoću optičkih kablova. Postoje i veze većih širina frekventnog pojasa (propusnosti) od onih koje su navedene na slici 3.4.

Osobe koje koriste mrežu (Internet) od doma, koriste vezu (na poziv; dial-up) od svog doma do čvora (domaćina) svog davatelja Internet usluga (Internet Service Provider - ISP). Za te svrhe, davatelji Internet usluga obično nude nekoliko vrsta veza, koje su navedene na slici 3.5.

Veza/usluga Širina frekventnog pojasa
POTS 28,8 - 56 Kbps
ISDN 64 - 128 Kbps
xDSL 128 Kbps - 100 Mbps
CATV 1 - 40 Mbps

Slika 3.5 Usluge i propusnosti

Veza tipa POTS (Plain Old Telephone Service) veže osobno računalo na domaćina davatelja Internet usluga preko modema. Modem (modulator-demodulator) je naprava koja pretvara digitalne zapise u analogne, i obrnuto. Računala rade sa digitalnim zapisima podataka, ali vezom se prenose analogni zapisi, za koje se kaže da su manje podložni smetnjama u prijenosu.
Veza tipa ISDN (Integrated Services Digital Network) ostvaruje se preko istih žica (telefonskih) kao i veza tipa POTS, ali ima veću širinu frekventnog pojasa. Ta veza sastoji se od dva kanala širine 64 Kbps; jednim kanalom mogu se prenositi podaci a drugim kanalom mogu se istodobno prenositi digitalni zapisi zvuka (telefonskog razgovora). Kad se kanal za prijenos zvuka (za razgovor) ne koristi, onda se kapacitet tog kanala pribraja kapacitetu drugog kanala, što onda omogućava prijenos podataka ukupnom širinom frekventnog pojasa od 128 Kbps.
Veze tipa DSL (Digital Subscriber Line) dosežu velike propusnosti, i to koristeći klasične telefonske linije (opletene parice). Postoji više vrsta veza tipa DSL, na što ukazuje znak "x" u općem nazivu. Jedna od tih vrsta je ADSL; kod veza te vrste, širina frekventnog pojasa veze od davatelja usluga do korisnika je znatno veća nego širina frekventnog pojasa veze od korisnika prema davatelju usluga. Jedan od razloga za takvo rješenje je taj što korisnici više skidaju (gledaju) sa mreže nego što šalju u mrežu. Širina frekventnog pojasa u oba smjera znatno zavisi od dužine veze: širina pojasa opada sa porastom dužine veze; s porastom udaljenosti raste broj grešaka u bitovima, što iziskuje ponavljanja slanja i time smanjuje propusnost.
Veze tipa CATV ostvaruju se preko prijenosnog sustava kabelske televizije. To se čini tako, da se neki kanali kabelske televizije (jedan ili više) koriste za uspostavu veze između računala (kod kuće) i čvora (domaćina) davatelja Internet usluga. Svaki kanal u sustavu kabelske televizije ima širinu frekventnog pojasa od 6 MHz. Kod veza tipa CATV, širina frekventnog pojasa od korisnika prema davatelju usluga je znatno manja od širine frekventnog pojasa od davatelja usluga prema korisniku. Rečeno je, da se u smjeru od davatelja usluga prema korisniku postiže širina frekventnog pojasa od 40 Mbps preko jednog kanala kabelske televizije (čija širina frekventnog pojasa iznosi 6 MHz), ali nije rečeno na koji način se to ovdje postiže. Postoje razni načini da se zapiše više bitova po jednom valu (Hertzu) signala-nositelja; to se obično postiže primjenom složenijih metoda modulacije.


3.3 Kodiranje i tvorba okvira

Fizičkim vezama (nosiocima podataka) kreću se signali; to mogu biti električni impulsi u bakrenim vodičima, optički signali u optičkim vlaknima, elektromagnetski valovi u prostoru, i slično. Da bi mogli prenositi binarne zapise, koji se sastoje od znakova "0" i "1", signali trebaju imati (barem) dva jasno razlučiva stanja. To mogu biti neki viši i neki niži napon, jači i slabiji svjetlosni signal, i slični parovi stanja raznih signala. Kodirati ovdje znači zapisati binarni sadržaj na nosivi signal. U načelu, to izgleda jednostavno: znakove "0" zapisuje se sa jednim stanjem signala (nižim), znakove a "1" sa drugim stanjem signala (višim). Takva metoda se ponekad koristi, ali postoje tehnički razlozi zbog kojih ta metoda nije dovoljno dobra, tako da se većinom koriste druge, složenije metode kodiranja; u nastavku iznosimo prikaze nekoliko takvih metoda.


Kodiranje

Kodiranje se izvodi u mrežnoj kartici koja povezuje računalo na računalnu mrežu. Mrežna kartica na čvoru pošiljatelja uzima bitovne sadržaje iz memorije čvora, slaže ih u nizove određene strukture (okvire) i upućuje ih u vezu prema čvoru primatelja. Pritom se svaki bit iz niza zapisuje određenim signalom kojeg se šalje u vezu. Mrežna kartica na čvoru primatelja prima nizove signala i zapisuje bitovne sadržaje koje ti signali predstavljaju i prenose; pritom te sadržaje uređuje u okvire kakvi su bili poslani sa kartice pošiljatelja, i zapisuju ih u memoriju čvora primatelja. Opisani sustav i proces rada ilustrira slika 3.6.




Slika 3.6 Bitovi i signali

Mrežna kartica sadrži jednu komponentu koja pretvara bitove u signale na ulazu u vezu, i signale u bitove na izlazu iz veze. Možemo se reći da se vezom između tih komponenata prenose signali, a da se time između kartica (i čvorova) prenose bitovi, i to uređeni u nizove odgovarajuće strukture.

Zapisivanje binarnih znakova "0" sa nižim (slabijim) signalom, a binarnih znakova "1" sa višim (jačim) signalom, je jednostavna metoda zapisivanja znakova (sadržaja) pomoću signala. Ali u praksi, kod te metode javljaju se dva problema. Prvi problem vezan je uz raspoznavanje signala na strani primatelja, a drugi uz sinkronizaciju satova (ritma rada) pošiljatelja i primatelja.
Jedinica koja pretvara signale u bitove (na strani primatelja), interpretira kao znak "0" one signale koji su znatno niži (slabiji) od prosjeka vrijednosti signala koje prima; po istom načelu, ta jedinica interpretira kao "1" one signale koji su znatno viši (jači) od prosjeka signala koje prima. U situaciji kada se prenosi dugi niz jednakih znakova ("0" ili "1") to dovodi do problema. Na primjer, ako jedinica (pretvornik) prima dugi niz niskih signala (koji predstavljaju znak "0"), onda će prosječna vrijednost signala koje je pretvornik primio (u određenom vremenu) postati vrlo niska, tako da daljnji niski (slabi) signali koji dolaze na taj pretvornik nisu više "znatno niži od prosjeka", te ih pretvornik više ne prepoznaje kao nosioce znaka "0". Sličan problem stvaraju dugi nizovi znakova "1". Ukratko, da bi pretvornik signala u bitove radio dobro, potrebne su mu česte promjene stanja (veličine, jačine) signala, bez obzira na to koji sadržaji (nizovi bitova) se prenose. Zbog toga su pored jednostavne metode kodiranja, koju smo ovdje opisali, razvijene i druge metode.

Digitalni uređaji rade na sat/ritam: promjene stanja (operacije) izvode se na "udarac sata". Da bi dvije digitalne naprave mogle raditi zajedno (komunicirati) moraju imati dobro usklađene satove. To je posebno važno kod mrežnih uređaja kao što su mrežne kartice, između kojih se izvodi intenzivna razmjena signala (podataka). Takvu sinkronizaciju rada mrežnih kartica pošiljatelja i primatelja nije lako postići i održavati cijelo vrijeme trajanja prijenosa podataka. Jedan od načina uspostave i održavanja sinkronog rada kartice pošiljatelja i kartice primatelja mogao bi biti da pošiljatelj posebnom vezom stalno šalje primatelju otkucaje svog sata (ritam rada). Ali ta metoda se ne koristi jer to bi iziskivalo postojanje dvostruke veze između kartica: jedne veze sa prijenos sata (ritma), a druge veze za prijenos podataka. Umjesto toga, jedinice koje međusobno komuniciraju, stalno usklađuju svoje satove na temelju sadržaja koje razmjenjuju. Na svaki otkucaj sata od kartice pošiljatelja, njen pretvornik pretvara jedan bit u signal i šalje ga u vezu; na svaki otkucaj sata od kartice primatelja, njen pretvornik prima jedan (dolazeći) signal sa veze i pretvara ga u odgovarajući bit. Pritom kartica primatelja treba stalno usklađivati svoj sat prema ritmu rada kartice pošiljatelja, jer u suprotnom prijenos signala/bitova neće se odvijati uspješno. Dugi nizovi jednakih vrijednosti signala (bitova "0" ili "1", svejedno) znače da na pretvornik mrežne kartice primatelja ne stižu nikakve promjene veličine signala. Tada pretvornik nije više u mogućnosti usklađivati svoj sat (ritam) sa satom pošiljatelja. Dakle, potreba po stalnoj sinkronizaciji satova primatelja i pošiljatelja je drugi razlog zbog kojeg se podaci koje se prenosi kodiraju na načine koji čine da se stanja signala mijenjaju i onda kada se vezom prenosi dugi niz jednakih vrijednosti bitova. Slika 3.7 ilustrira nekoliko takvih načina kodiranja.




Slika 3.7 Metode kodiranja

Metoda NRZ vrši kodiranje na način koji smo opisali iznad; taj način kodiranja je najjednostavniji, ali taj način povezan je s problemima koje smo opisali iznad. Metoda NRZI kodira bit "0" kao zadržavanje onog stanja u kojem se signal trenutno nalazi, a bit "1" kao prelazak iz tog stanja u drugo stanje. Slika 3.7 ilustrira učinak te metode. Tim načinom kodiranja riješen je problem javljanja dugih nizova znakova "1": svaki znak "1" kodira se promjenom stanja signala, a promjene su dobre za prepoznavanje signala i za usklađivanje satova, kako je to objašnjeno iznad. Međutim, metoda NRZI ne rješava problem dugih nizova znakova "0", jer se znak "0" kodira zadržavanjem postojećeg stanja signala (bilo visokog, bilo niskog). Dakle, kod dugih nizova "0", nema promjena stanja signala.
Metoda kodiranja Manchester rješava problem promjena stanja signala na najbolji način: kod te metode, svaki bit zapisuje se promjenom stanja signala. Bitovne vrijednosti (znakovi) "0" zapisuju se skokom (prelaskom) signala od vrijednosti "nisko" na vrijednost "visoko", a bitovne vrijednosti "1" padom signala sa vrijednosti "visoko" na vrijednost "nisko". Kod ove metode, sa svakim bitom (signalom) kojeg šalje u vezu, kartica pošiljatelja šalje jednu promjenu stanja, a time i otkucaj svog sata. U stvari, skokovi i padovi signala kod metode Manchester su XOR (ekskluzivna disjunkcija) signala sata kartice pošiljatelja i bitovne vrijednosti interpretirane na način kako se to čini kod NRZ metode. Dakle, treći redak (signal) na slici 3.7 (Manchester zapis) je XOR drugog retka (signala u NRZ kodnom zapisu) i signala sata; to ujedno znači da je u svakom bitu koji je kodiran metodom Manchester sadržan i signal sata kartice koja ga je kodirala. Otkucaj sata je pritom signal koji "skače" sa vrijednosti nisko stanje na vrijednost visoko stanje; svaki takav skok signala (par nisko-visoko) je jedan otkucaj (ciklus) sata.
Slabost metode Manchester je u tome što iziskuje dvostruko promjena stanja signala nego što prenosi bitova: kod te metode svaki bit prenosi se sa dva stanja signala. To praktički znači da naprava koja kreira signale i naprava koja prima signale mogu razmijeniti dvostruko manje bitova u jedinici vremena nego što bi to bio slučaj da se svaki bit zapisuje jednim stanjem signala (kao kod metoda NRZ i NRZI). Broj promjena stanja signala u vezi (u jedinici vremena) naziva se baud rate; analogno, broj bitova koji se time prenesu vezom naziva se bit rate. Čini se da pojam "baud" dolazi od imena jednog izumitelja po imenu Baudot; "rate" znači razmjer ili mjera. Kod primjene metode Manchester, "mjera bitova" je dvostruko manja nego "mjera bauda". To znači da prijenosni sustav koji radi prema metodi NRZ ili NRZI, može uz istu "mjeru" (količinu) bauda prenijeti dvostruko bitova nego sustav koji radi prema metodi Manchester.

Metode kodiranja su zanimljive, ali tom temom ne trebamo se ovdje podrobnije baviti. Spomenimo još samo metodu koja je nazvana 4B/5B; ta metoda nastoji postići dobre osobine metode Manchester, a izbjeći njene slabosti; to i postiže u velikoj mjeri. Dakle, dugi nizovi jednakih bitova (signala) dovode do problema koje smo opisali iznad. Metodom 4B/5B nastoji se riješiti te probleme tako, da se svaka 4 bita izvornog sadržaja kodira za prijenos pomoću 5 bitova. Mrežna kartica primatelja dekodira 5 primljenih signala, i na temelju tako nastalih 5 bitova, zapisuje (u okvir kojeg formira) onaj niz od 4 bita kojeg tih 5 bitova predstavlja.
Zapisivanje nizova od 4 bita sa nizovima od 5 bitova omogućava da se izbjegnu dugi nizovi jednakih bitova; na primjer, kod metode 4B/5B, niz bitova 0000 zapisuje se (za prijenos) kao niz od 5 bitova 11110. Takvi pet-bitni nizovi se zatim pretvaraju u signale (kodiraju) prema NRZI metodi i prenose se vezom na pretvornik mrežne kartice primatelja. Na toj kartici signali se pretvaraju u nizove bitova, pri čemu se pet-bitni nizovi zapisuju sa onim četiri-bitnim nizovima čije su sadržaje prenijeli vezom. Tako se polazni niz 0000 prenosi vezom kao niz 11110, a kartica primatelja ga zatim interpretira (zapisuje) kao niz 0000.
Metoda 4B/5B iskorištava prijenosni kapacitet sustava 80%: sa svakih pet prenijetih bitova, prenese se četiri bita korisnog (informacijskog) sadržaja. To je znatno bolji razmjer nego kod metode Manchester, kod koje se za prijenos informacijskog sadržaja iskorištava samo 50% prijenosnog kapaciteta sustava. Ideja metode 4B/5B je jednostavna i učinkovita. Niz od 4 bita daje 16 kombinacija, od 0000 do 1111; niz od 5 bitova daje 32 kombinacije, od 00000 do 11111. To daje mogućnost da se svaki od 4-bitna niza zapiše sa jednim 5-bitnim nizom koji ima relativno mali broj vrijednosti "0" za redom. Konkretno, kod te metode uzeto je da 5-bitni nizovi smiju imati najviše jedan bit "0" na početku niza i najviše dva bita "0" na kraju niza; to znači da svaki 5-bitni niz koji se koristi u ovom prijenosnom sustavu, sadrži barem dva bita "1". To isto tako znači da dva susjedna 5-bitna niza ne mogu stvoriti niz koji ima više od tri nule za redom (1 + 2).
Podsjetimo, dugi nizovi jednakih bitova prave probleme u prijenosu signala jer ne proizvode nikakve promjene signala. Međutim, kod metode NRZI (koja se koristi u paru sa 4B/5B), nizovi znakova (signala) "1" ne prave problem; zato se metodom 4B/5B ograničava samo dužina nizova znakova (signala) "0". Šesnaest 5-bitnih nizova (od 32 moguća) koristi se za kodiranje šesnaest 4-bitnih nizova, kako je to rečeno iznad. Neki od preostalih šesnaest 5-bitnih nizova koriste se kao indikatori stanja čvorova i veza, odnosno za upravljačke svrhe.

Kod metoda kodiranja kao što je Manchester, količina bauda (broj promjena stanja signala) je veća nego količina bitova koja se tim promjenama stanja zapisuje i prenosi. Moguće je napraviti sustav koji prenosi više bitova nego što ima bauda, odnosno promjena stanja signala; dakle, sustav kod kojeg je "bit rate" veći nego "baud rate". To se može postići tako, da se umjesto dvaju stanja (veličina) signala koristi prijenosni sustav sa četiri stanja (veličine) signala. Tada svako stanje signala može kodirati dva bita (00, 01, 10, 11), tako da je tada broj prenijetih bitova dvostruko veći od broja stanja (vrijednosti) signala koji se prenose vezom. Međutim, s porastom broja stanja signala u sustavu, raste i mogućnost (vjerojatnost) greške u interpretaciji signala. To je jedan od glavnih razloga što se u digitalnim sustavima većinom koriste samo dva stanja signala (i binarni sustav) za zapisivanje sadržaja. Čim manje različitih stanja ima, tim manja je mogućnost da se neko od stanja interpretira (pročita) pogrešno. Ako postoje samo stanja visoko i nisko, onda je mogućnost greške manja nego ako postoje četiri stanja, ili osam stanja; sa porastom broja stanja postaje relativno lako interpretirati (pročitati) na primjer šestu veličinu kao petu, ili obrnuto.


Tvorba okvira

Između pretvornika mrežnih kartica, vezom se prenose nizovi signala; tim nizovima signala prenose se nizovi bitova između mrežnih kartica; između čvorova koje te kartice povezuju, prenose se uređeni nizovi bitova određene strukture, koje nazivamo okvirima (frames). Ovdje govorimo o razinama sustava koje se u OSI modelu nazivaju fizičkim slojem i slojem veze podataka. Ukratko rečeno, na tim razinama, nizovi bitova uređuju se (u okvire) za fizički prijenos, bitovi se kodiraju na nosive signale, izvodi se prijenos tih signala i njihov prihvat, te dekodiranje sadržaja koji su njima prenijeti.
Čvor A zadaje svojoj mrežnoj kartici mjesto (u njegovoj radnoj memoriji) s kojeg treba uzeti sadržaje koje treba prenijeti na adresu čvora B. Mrežna kartica slaže te sadržaje u okvire zadane strukture; zatim "signalna jedinica" na sučelju mrežne kartice prema vezi (žici, vlaknu) kodira te nizove bitova na nosioc signala (prema nekoj od metoda koje smo opisali iznad). Signali putuju vezom prema mrežnoj kartici čvora B; "signalna jedinica" na toj kartici prima signale i zapisuje bitove koje ti signali prenose; od tih bitova formira okvire kakve je čvor A uputio u mrežu, i te okvire zapisuje na određeno mjesto u memoriji čvora B. Razmjena podataka koju smo ovdje opisali odvija se između dva računala koji su izravno međusobno povezani. Sav prijenos podataka u računalnoj mreži sastoji se od takvih prijenosa između parova čvorova koji su međusobno izravno vezani.

Postoje razni načini tvorbe okvira bitova. U nastavku iznosimo kratke opise okvira nekih konkretnih prijenosnih sustava, koji ilustriraju nekoliko mogućih načina definiranja strukture okvira. Okviri se mogu definirati kao nizovi bitova ili kao nizovi bajtova. Zato se govori o bajtno orijentiranim protokolima (definicijama okvira) i o bitovno orijentiranim protokolima.
Pogledajmo najprije neke bajtno orijentirane okvire. Bajtni pristup korišten je kod nekih starijih protokola kao što su BISYNC, kojeg je razvila tvrtka IBM, i DDCMP, kojeg he razvila tvrtka DEC. Noviji i široko korišten protokol PPP (Point-to-Point Protocol) isto tako koristi bajtno orijentiran pristup oblikovanju okvira. Na slici 3.8 dane su sheme (strukture) okvira tih triju protokola.



(a) Struktura okvira BISYNC sustava



(b) Struktura okvira PPP sustava



(c) Struktura okvira DDCMP sustava

Slika 3.8 Strukture okvira

Shema prikazuje okvir kao niz imenovanih polja (nizova bitova) od kojih se okvir sastoji. Iznad polja obično se navodi njegova dužina izražena u bitovima. Paket počinje na lijevoj strani; sadržaj paketa kreće se vezom počevši od prvog bita slijeva pa do zadnjeg bita slijeva. Ovdje ne iznosimo opise triju sustava čiju su okviri prikazani na slici 3.8; na primjerima tih okvira samo ilustriramo osnovne načine oblikovanja (definiranja) okvira.
Protokol BISYNC koristi posebne znakove za označavanje početka i završetka nekih dijelova okvira, kao i okvira u cjelini. Prva dva bajta SYN (2 puta 8 bitova) označavaju početak okvira; njihovi sadržaji ujedno služe za početnu sinkronizaciju satova pošiljatelja i primatelja okvira. Polje SOH (start of header) označava početak zaglavlja okvira; zaglavlja općenito sadrže razne upravljačke sadržaje; točan sadržaj zaglavlja danog okvira nije ovdje bitan. Polje STS (start of text) označava početak tijela (sadržaja) okvira; tijelo završava znakom (poljem) ETX (end of text). Sadržaj polja CRC (cyclic redundancy check) izračunava mrežna kartica pošiljatelja okvira, u procesu tvorbe okvira i njegove pripreme za slanje. Na temelju sadržaja tog polja, mrežna kartica primatelja može utvrditi da li je došlo do iskrivljenja bitova u prijenosu okvira; o tome govorimo kasnije. Sadržaj polja CRC zvati ćemo kontrolnim zapisom, a proces njegova izračunavanja zvati ćemo izračunavanjem kontrolnog zapisa, bez obzira prema kojoj metodi se taj zapis izračunava.
Kod oblikovanja okvira pomoću graničnika, znak (niz od 8 bitova) koji se koristi kao graničnik na početku i na kraju okvira (ili između pojedinih polja okvira), može se pojaviti unutar okvira (kao dio njegova sadržaja) i tako dovesti do greške u radu prijenosnog sustava. Na primjer, ako bi se niz bitova ETX pojavio u tijelu okvira BISYNC, kao dio sadržaja koji se tim okvirom prenosi, onda bi kartica primatelja interpretirala taj dio sadržaja (8 bitova) kao znak za kraj tijela okvira, što bi dovelo do greške. Taj problem rješava se tako, da kartica koja tvori i šalje okvire, umeće poseban znak (niz od 8 bitova) ispred onog znaka (niza od 8 bitova) koji je jednak znaku ETX, ali nije stvarni ETX, već je dio tijela (sadržaja) okvira. Taj poseban znak naziva se znakom za izbjegavanje na razini veze podataka (data link escape - DLE). Ako se znak DLE (niz od 8 bitova) pojavi u tijelu okvira kao dio njegova sadržaja, onda mrežna kartica pošiljatelja dodaje ispred toga znaka još jedan takav znak čime poručuje mrežnoj kartici primatelja da DLE koji slijedi nije pravi znak za izbjegavanje.

Prijenosni sustav PPP (Point-to-Point Protocol) obično se koristi za prijenos IP paketa preko raznih vrsta fizičkih veza tipa točka-točka, to jest između čvorova koji su međusobno izravno povezani. Struktura okvira sustava PPP dana je na slici 3.8b. Graničnik okvira (koji se ovdje naziva Flag), je zadani niz od 8 bitova kojeg se postavlja na početak i na kraj okvira. Flag doslovno znači zastava (ili zastavica); u danom kontekstu bolje zvuči naziv Oznaka, te smo taj naziv upotrijebili na slici 3.8b. Tri polja koja slijede iza prvog graničnika (oznake) s lijeva, tvore zaglavlje okvira čiji nas podroban sadržaj ovdje ne zanima. Polje Tijelo sadrži niz bajtova informacijskog sadržaja kojeg se prenosi jednim okvirom. U sustavu PPP, polje Tijelo dugo je 1500 bajtova po difoltu, ali njegova dužina može se mijenjati. Polje kontrolnog zapisa (ovdje se naziva Checksum), može biti dugo 2 ili 4 bajta (16 ili 32 bita).

Umjesto pomoću graničnika, veličinu (granice) okvira može se odrediti tako, da se tu veličinu (izraženu u bajtovima) zapiše u zaglavlje okvira. Ta metoda oblikovanja okvira koristi se kod protokola DDCMP; struktura okvira toga sustava dana je na slici 3.8c. U polje Veličina zapisuje se veličina tijela okvira (u bajtovima). S obzirom da su ostala polja fiksne (zadane) dužine, iz tog zapisa slijedi koliko je točno dug (u bajtovima) dani konkretan okvir. U DDCMP sustavu, okvir počinje sa dva bajta za početnu sinkronizaciju pošiljatelja i primatelja; ta dva bajta ujedno označavaju početak okvira.
Kod ovakvog načina zapisivanja veličine okvira, problem nastaje ako se u procesu prijenosa dogodi greška u polju Veličina; tada primatelj dobiva krivi podatak o dužini tijela okvira, a time i o dužini okvira u cjelini, što dovodi do greške. Ta greška može dovesti do gubitka jednog okvira (u kojem je greška nastala) ili više okvira (ako je vrijednost u polju Veličina povećana). Primatelj otkriva grešku u prijenosu na temelju toga što se njegov izračun kontrolnog zapisa za dani okvir razlikuje od one vrijednosti kontrolnog zapisa koju je izračunao pošiljatelj okvira (i upisao je u okvir). Kada dođe do greške, primatelj nastavlja s primanjem okvira počevši od prvog para SYN bajtova, koji čine početak novog okvira.
Prema OSI modelu mrežnog sustava, zapisivanje (kodiranje) bitova na nosivi signal i prijenos kodiranih sadržaja sa mrežne kartice pošiljatelja na mrežnu karticu primatelja, spada na najnižu razinu mrežnog sustava, koja se naziva fizičkim slojem. Tvorba okvira spada na razinu iznad fizičke, koja je u OSI modelu nazvana slojem veze podataka. Uređenjem u okvire, nizovi bitova poprimaju preciznu strukturu i značenja, te ih se stoga može zvati podacima. Komunikacija na razini veze podataka odvija se između susjednih čvorova. Put od izvora do konačnog odredišta nekog sadržaja (paketa) nalazi (određuje) mrežni sloj mrežnog sustava; takav put može se sastojati od mnogo dionica tipa točka-točka, koje su izravne fizičke veze između susjednih čvorova na tom putu. Na svakoj takvoj dionici uspostavlja se jedna komunikacija na razini sloja veze podataka, odnosno jedan prijenos okvira odgovarajuće strukture sa jednog čvora na drugi. O mrežnom sloju i o usmjeravanju paketa (ili biranju dionica puta) govorimo u poglavljima koja slijede.

Kod bitovno orijentiranih protokola, okvir se promatra kao niz bitova, a ne kao niz bajtova; ali razlika je samo u mjernim jedinicama, dok ostalo ostaje uglavnom jednako. Na slici 3.9 dana je struktura okvira prijenosnog sustava SDLC, kojeg je razvio IBM, čiji je protokol bitovno orijentiran. Protokol SDLC je kasnije postao ISO standard, pri čemu je malo promijenjen njegov naziv u HDLC. Spomenimo da prva kratica dolazi od Synchronous Data Link Control, a druga of High-level Data Link Control. Puna imena protokola (i njihove prijevode) često ne navodimo, zato što obično nisu naročito informativni.



Slika 3.9 Struktura okvira HDLC sustava

U sustavu HDLC, početak i završetak okvira označavaju se jednim zadanim nizom od osam bitova; to je niz 01111110. Kod HDLC protokola, taj niz bitova naziva se "početnom sekvencijom" i "završnom sekvencijom", ali ovdje smo taj niz nazvali oznakom, jer to je ono što takvi nizovi zaista jesu: oznake početka i/ili završetaka. Ta oznaka (niz od osam bitova) prenosi se vezom i onda kad se vezom ne prenosi nikakav podatkovni sadržaj (okviri); to se čini zato da se drži usklađene satove mrežnih kartica onih čvorova koji su međusobno izravno povezani.
Dani niz bitova (oznaka) ima ulogu graničnika. To znači da i ovdje postoji problem javljanja toga niza bitova u tijelu okvira, kako je to opisano ranije. Taj problem je ovdje riješen na slijedeći način. Ako se u tijelu okvira javi pet znakova "1" za redom, onda mrežna kartica dodaje iza tog niza jedan znak "0" i time sprječava da se u tijelu okvira pojavi niz koji označava završetak okvira (koji sadrži šest znakova "1" za redom). Mrežna kartica primatelja odbacuje znak "0" koji slijedi iza pet znakova "1" jer zna da je ta nula dodana iz razloga koje smo naveli iznad. Ako pak iza pet znakova "1" slijedi šesti znak "1" (a ne "0"), onda je to pravi znak za kraj okvira.
Ako dođe do iskrivljenja bitova sadržaja (Tijela) okvira, onda to iskrivljenje može proizvesti graničnik na krivom mjestu; ako pak dođe do iskrivljenja u bitovima graničnika, onda je graničnik time izgubljen što dovodi do greške u prijenosu. U takvim situacijama, mrežna kartica primatelja čeka prvi slijedeći niz 01111110, koji vjerojatno označava početak novog okvira, i nastavlja s prijenosom. Da li je nađeni niz zaista početak novog okvira i da li je taj okvir primljen u ispravnom stanju, mrežna kartica može utvrditi na osnovu sadržaja polja CRC toga okvira. Nastavak prijenosa može uključivati ponavljanje prijenosa onih okvira koji su izgubljeni (zbog iskrivljenja), ako je rad prijenosnog sustava definiran da postupa na takav način.

IP paket je nominalno veća jedinica podataka nego što su to okviri (na razini veze podataka) kod većine fizičkih mreža. Zato se jedan IP ponekad prenosi u više okvira. Proces ispravljanja grešaka - to jest, ponavljanja slanja iskrivljenih i izgubljenih jedinica podataka - može se izvoditi i na višim razinama mrežnog sustava. Tako se na mrežnoj razini može ponavljati slanje iskrivljenih i izgubljenih IP paketa. IP paket je iskrivljen ako je iskrivljen barem jedan od okvira sa kojima su prenošeni dijelovi tog IP paketa. Kontrola ispravnosti i otklanjanje grešaka može se izvoditi na više razina mrežnog sustava, ali čini se da je bolje otklanjati greške na nižim razinama. Bolje je ponoviti slanje jednog iskrivljenog okvira, nego jednog cijelog IP paketa (koji se prenosi sa više okvira), zbog jednog iskrivljenog okvira.
Dodavanje jednog bita "0" (nakon niza od pet znakova "1") čini da u sustavu HDLC, dužina okvira zavisi od njegova sadržaja. Isto vrijedi za one bajtno orijentirane protokole čiji okviri imaju graničnike; kod tih protokola, u tijelo okvira dodaje se znak DLE na ona mjesta gdje je to potrebno, kako je ranije objašnjeno. Rad sa sadržajima (okvirima) varijabilne dužine je obično tehnički zahtjevniji ali se takvi sustavi koriste.

Za prijenos podataka na velike udaljenosti obično se koriste optička vlakna (kao nosioci); pritom se prijenos obično izvodi pomoću sustava SONET (Synchronous Optical Network). Taj sustav obuhvaća sve elemente koji ostvaruju prijenos na fizičkoj razini i na razini veze podataka, među koje spadaju kodiranje i tvorba okvira. SONET obavlja i poslove multipleksiranja više sporijih veza (manje širine frekventnog pojasa) u jednu bržu vezu. Sustav SONET je izrazito opsežan i složen; njegov opis (specifikacija) navodno ima preko tisuću stranica, tako da ovdje iznosimo samo temeljna svojstva tog sustava. Osnovna struktura okvira sustava SONET prikazana je na slici 3.10.



Slika 3.10 Struktura okvira sustava SONET kod STS-1

Sustav SONET ostvaruje veze tipa STS-1 do STS-48, o kojima smo govorili ranije; na slici 3.10 dan je prikaz okvira sustava SONET koji ostvaruje veze tipa STS-1; kod veza većih širina frekventnog pojasa, struktura (oblik) okvira je isti, ali se njegove dimenzije (broj bajtova) mijenjaju.
Kod SONETa (STS-1), okvir se prikazuje kao matrica koja ima 9 redova i 90 stupaca, što daje ukupno 810 bajtova. Prva tri bajta u svakom retku namijenjena su zapisu raznih upravljačkih i kontrolnih sadržaja, tako da te bajtove (3 x 9 = 27) možemo zvati zaglavljem okvira; preostala 783 bajta su tijelo okvira i prenose koristan teret. Prva dva bajta okvira sadrže jedan poseban sadržaj (oznaku) koji označava da je to početak okvira; drugi graničnici nisu potrebni jer je okvir fiksne strukture i dužine (810 bajtova), tako da se zna (primatelj zna) do kuda seže koje polje, i do kuda seže jedan okvir.
Prijenosni sustav SONET ostvaruje veze tipa STS-1 do STS-48, o kojima smo govorili ranije. Slika 3.10 prikazuje strukturu okvira prijenosnog sustava SONET sa kojim se ostvaruje veza tipa STS-1, čija širina frekventnog pojasa iznosi 51,84 Mbps. Okvir se ovdje prikazuje kao matrica, ali u stvarnosti, okviri su uvijek nizovi bitova; ti nizovi mogu biti prikazani i procesirani (prenošeni) na razne načine (različitim redoslijedom).

Prijenosni sustav SONET omogućava multipleksiranje, koje se ovdje izvodi na slijedeći način: okviri više veza tipa STS-i smještaju se u jedan okvir veze tipa STS-j, pri čemu j treba biti višekratnik od i. Na primjer, tri veze tipa STS-1 mogu se multipleksirati u jednu vezu tipa STS-3. Multipleksiranje se izvodi tako, da se okviri tih triju veza tipa STS-1 smještaju u jedan okvir veze tipa STS-3; to ujedno pokazuje da okvir veze STS-3 ima 2430 bajtova (3 x 810). Općenito, okvir veze tipa STS-n ima n x 810 bajtova, a širina frekventnog pojasa te veze iznosi n x 51,84 Mbps. Dakle, svaku vezu tipa STS-n karakteriziraju veličine koje su n puta veće od onih veličina koje su ostvarene kod osnovne veze tipa STS , (to jest, kod STS-1) u SONET sustavu.
Kad veza tipa STS-3 multipleksira tri veze STS-1, onda se tom vezom prenosi po jedan bajt redom iz okvira svake od tih triju sporijih veza, a ne najprije svi bajtovi iz jednog okvira prve veze, pa svi bajtovi iz jednog okvira druge veze, i tako redom. Kod takvog načina rada, na čvor primatelja stižu bajtovi svake od triju multipleksiranih veza ravnomjerno, i to onom brzinom kojom ih svaka od multipleksiranih veza (tipa STS-1) može normalno prihvaćati i prenositi dalje.
Kaže se da je svaki SONET okvir "dug" 125 mikrosekundi. Čini se, da se takva veličina izračunava na osnovu broja bitova u sekundi koji se mogu prenijeti najsporijom SONET vezom (STS-1, sa 51,84 Mbps), na temelju brzine širenja optičkog signala, i na temelju širine (trajanja) signala sa kojim se kodira jedan bit. Okviri veza tipa STS-n sadrže n x 810 bajtova, ali njihovo trajanje u vremenu je isto, 125 mikrosekundi. To znači da se STS veze većih širina frekventnog pojasa vjerojatno ostvaruju pomoću kraćih ("užih") zapisa signala, što omogućava da se zapiše (i prenese) veći broj signala (a onda i bitova) u jedinici vremena.
Ukratko, SONET je opsežan i složen sustav koji izvodi fizički prijenos podataka. Prema OSI modelu, funkcije i operacije koje obavlja sustav SONET spadaju u fizički sloj mrežnog sustava i u sloj veze podataka. Prema Internet modelu mreže, SONET obavlja poslove fizičkog sloja, odnosno poslove fizičkog prijenosa podataka, pri čemu ti poslovi ovdje podrazumijevaju i poslove sloja veze podataka, odnosno uređivanja bitove u okvire.


3.4 Otkrivanje i otklanjanje grešaka

U procesu prijenosa signala i njihove pretvorbe u bitove, ponekad se događaju greške. Takve greške mogu biti izazvane vanjskim smetnjama (elektromagnetskim, termičkim), kvarovima, nestabilnošću napajanja, i sličnim uzrocima. Greške u prijenosu događaju se relativno rijetko (posebno kod optičkih kablova), ali za pouzdan rad prijenosnog sustava potrebno je definirati način njihova otkrivanja i otklanjanja.
Otkrivanje grešaka u prijenosu zasniva se na izračunavanju i prijenosu određene količine bitova koji su redundantni sa stanovišta prijenosa sadržaja, ali omogućavaju otkrivanje grešaka u prijenosu. Niz takvih bitova, koji se izračunava iz jednog okvira (i za taj okvir), općenito nazivamo kontrolnim zapisom. Kontrolni zapisi koji služe za otkrivanje grešaka su relativno kratki u odnosu na veličinu okvira. Na primjer, kontrolni zapis za okvir mreže Ethernet, čije tijelo može imati do 1500 bajtova, odnosno 12 tisuća bitova , ima 32 bita, što je zanemarivo malo.
Otkrivene greške se obično otklanjaju ponovnim prijenosom onog okvira u kojem je otkrivena greška. Postoje metode zapisivanja podataka (za prijenos), koje omogućuju ispravljanje grešaka u prenijetom okviru (bez da se taj okvir ponovno prenosi). Ali zapisi podataka koji omogućuju ispravljanje okvira bez njihovog ponovnog prijenosa, moraju sadržavati velike količine redundantnih sadržaja koji su potrebni da bi bilo moguće ispravljanje grešaka. Takvi redundantni sadržaji prisutni su u svakom okviru, a ne samo u onim okvirima u kojima je došlo do greške, jer ne može se unaprijed znati kod kojih okvira će doći do greške. Zato se se taj način rada koristi samo u iznimnim situacijama.
Dakle, neophodno je razviti čim pouzdanije metode i sustave otkrivanja grešaka koje nastaju u prijenosu podataka računalnom mrežom. Otklanjanje grešaka se u pravilu svodi na ponavljanje prijenosa onih okvira u kojima je otkrivena greška.

Metode otkrivanja grešaka i njihova otklanjanja su u osnovi jednostavne, ali se u njihovoj realizaciji često koriste složeni algoritmi. Otkrivanje grešaka izvodi se na slijedeći način. Mrežna kartica pošiljatelja, koja formira okvir za slanje, izračunava iz sadržaja toga okvira (iz tijela i eventualno iz zaglavlja) jedan kontrolni zapis (niz bitova) prema zadanom algoritmu. Kartica uvrštava taj zapis u odgovarajuće polje okvira i zatim šalje taj okvir primatelju. Kontrolni zapisi mogu biti raznih dužina, ali većinom su dugi 16 bitova ili 32 bita. Kontrolni zapisi se obično izračunavaju hardverski u mrežnoj kartici, u procesu formiranja okvira za prijenos.
Mrežna kartica primatelja okvira izvodi jednak proces računanja kontrolnog zapisa za primljeni okvir. Rezultat svog računanja uspoređuje sa kontrolnim zapisom kojeg je primila (zajedno s okvirom) od mrežne kartice pošiljatelja. Ako je izračunata vrijednost kontrolnog zapisa jednaka primljenoj vrijednost kontrolnog zapisa, onda prenijeti okvir vrlo vjerojatno nije iskrivljen u procesu prijenosa. Ako se pak izračunata vrijednost i primljena vrijednost kontrolnog zapisa razlikuju, onda je sigurno došlo do neke greške u procesu prijenosa ili računanja, ali vrlo vjerojatno u prijenosu. Otkrivena greška otklanja se u pravilu tako, da se ponovi prijenos onih okvira kod kojih je greška otkrivena.
Tako bi izgledao jedan kratak opis procesa otkrivanja i otklanjanja grešaka u prijenosu podataka (okvira). Međutim, realizacija tog procesa uključuje složene algoritme za izračunavanje kontrolnih zapisa. Takvi algoritmi nastoje približiti se slijedećem idealnom cilju: svaka promjena u danom okviru (jednog bita ili više), treba dovesti do izračunavanja drukčijeg kontrolnog zapisa. Jer jedino u tom slučaju, kontrolni zapis jamči mogućnost otkrivanja svake promjene (iskrivljenja) u ostatku okvira. Taj cilj nije moguće postići, ali razvijeni su algoritmi za izračunavanje kontrolnih zapisa, kod kojih postoji visoka vjerojatnost da će promjena u bitovima okvira dovesti do promjene kontrolnog zapisa koji se iz tog okvira izračunava. To ujedno znači da je vjerojatnost otkrivanja greške (iskrivljenja bitova) u prijenosu visoka.
U svakom slučaju, nije jednostavno postići da velika većina promjena na jednom ili više bitova u okviru koji sadrži 12 tisuća bitova (ili više), izazove promjenu kontrolnog zapisa koji ima svega 32 bita (ili manje). Zato su algoritmi za izračunavanje kontrolnih zapisa (sa kojima se to nastoji postići), često prilično složeni. Iskrivljenja (promjene) bitova u zapisu okvira, koja se ne odraze na izračun kontrolnog zapisa za taj okvir (kojeg izvodi mrežna kartica primatelja), neće biti otkrivena na razini fizičkog prijenosa sadržaja, odnosno na razini veze podataka, o kojima govorimo u ovom poglavlju. Iskrivljenja koja nisu otkrivena ne mogu biti ispravljena. Međutim, iste metode kontrole ispravnosti prijenosa koriste se i na višim razinama mrežnog sustava; na primjer, na razini upravljanja prijenosom, tako da postoje dobri izgledi da greška koju sustav ne otkrije na nižoj razini, bude otkrivena na višoj razini.

Kontrolni zapisi mogu se računati prema raznim metodama i algoritmima, ali pitanje je koliko su neka metoda i algoritam uspješni u postizanju onih učinaka kojima se ovdje teži. Jedna klasa takvih algoritama zasniva se na raznim operacijama zbrajanja, tako da se njihovi rezultati zovu kontrolnim zbrojevima (checksum). Računanje kontrolnog zbroja pomoću operacija zbrajanja može se izvoditi na načine koji su vrlo jednostavni, ali može se izvoditi i pomoću vrlo složenih algoritama pomoću kojih se postiže mnogo veću vjerojatnost otkrivanja grešaka. Pogledajmo jedan vrlo jednostavan način izračunavanja kontrolnog zapisa (zbroja). Uzmimo da okvir ima 160 bitova (20 bajtova); razdijelimo taj okvir u nizove od 16 bitova, počevši od lijeva (početak okvira) u desno (kraj okvira), kako je to učinjeno na slici 3.11.



0111 0101 1100 1001
.......
.......
.......

1001 1001 0101 1010

xxx ... ... xxx

Slika 3.11 Kontrolni zbroj/zapis

Binarnim zbrajanjem (bez prijenosa) po svakom stupcu matrice sa slike 3.11 formira se jedan 16-bitni kontrolni zapis. Takav kontrolni zapis formira mrežna kartica pošiljatelja okvira i šalje ga mrežnoj kartici primatelja okvira, zajedno sa okvirom, odnosno u jednom polju okvira, kako to ilustrira slika 3.12. Binarno zbrajanje bez prijenosa svodi se na brojanje jedinica: rezultat takvog zbrajanja parnog broja jedinica je "0", a neparnog broja jedinica je "1".


Sadržaj okvira Kontrolni zapis
0111 0101 ...... 0101 1010 xxx ... xxx

Slika 3.12 Okvir i kontrolni zapis

Kod prikaza strukture okvira, kontrolni zapis (polje CRC ili Checksum) crta se kao dio okvira, ali to je zapravo dodatak kojeg mrežna kartica izračunava iz sadržaja okvira. Zato se za kontrolni zapis kaže da je redundantan sa stanovišta prijenosa informacijskog sadržaja.
Algoritam izračunavanja kontrolnog zapisa, kojeg smo upotrijebili na slici 3.11, je vrlo jednostavan. Ipak, taj kontrolni zapis omogućava da se otkrije svako iskrivljenje samo jednog bita u danom okviru; ali taj algoritam ne uočava parove iskrivljenja na istoj vertikali, jer parovi promjena ne mijenjaju kontrolni zapis. Mnoge druge kombinacije promjena isto tako ne bi bile uočene. Ali postoje mnogo složeniji algoritmi računanja koji daju mnogo "osjetljivije" kontrolne zapise. U svakom slučaju, prema ovoj metodi može se lako izračunati kontrolni zapis dužine x bitova za niz bitova (okvir) proizvoljne dužine (veće od x). Dovoljno je razdijeliti taj niz na dijelove dužine x, urediti ih na način kako je to učinjeno na slici 3.11 i izračunati kontrolni zapis dužine x, na način kako je to učinjeno u primjeru sa slike 3.11.
Metoda koja se zasniva na izračunavanju dvodimenzionalne parnosti je relativno jednostavna, ali daje dobre rezultate ako se algoritam (sa kojim se ta metoda realizira) oblikuje dovoljno dobro. Prema toj metodi, kontrolni zapis za dani niz bitova (okvir) izračunava se računanjem u dva smjera, "vodoravno" i "vertikalno". Uzmimo kao primjer da se okvir sastoji od osam bajtova, pri čemu svaki bajt ima osam bitova, i poredajmo tih osam bajtova okomito, jedan iznad drugog, kako je to učinjeno na slici 3.13.


1000 0001
1101 0110
1010 1011
1011 0010
0100 1101
0110 1001
0010 0101
1100 0011 0
1
1
0
0
0
1
0
1000 1110

Slika 3.13 Dvodimenzionalna parnost

Metoda dvodimenzionalne parnosti izračunava kontrolni zapis na slijedeći način. Vodoravno, ako je broj znakova "1" u bajtu (od 8 bitova) paran, onda se za taj bajt (redak) uvrštava znak "0" u desni stupac na slici 3.13; u suprotnom, uvrštava se znak "1". Jednako se računa po vertikali: ako je broj jedinica u stupcu paran, uvrštava se znak "0" u dodatni redak na dnu slike 3.13; u suprotnom, uvrštava se znak "1".
Ako sad vratimo okvir u polazno stanje - dakle, poredamo danih osam bajtova u niz, jednog iza drugog, od vrha prema dolje - onda tom zapisu okvira možemo dodati dva 8-bitna niza kontrolnog zapisa sa slike 3.13, koji su izračunati prema metodi dvodimenzionalne parnosti. Na primjer, možemo dodati prvo donji niz koji je izračunat po vertikali, a zatim desni niz koji je izračunat po horizontali; tako prikazan okvir, zajedno sa 16-bitnim kontrolnim zapisom, dan je na slici 3.14 (bjeline su dodane radi preglednosti).

Okvir Kontrolni zapis
1000 0001 1101 ........ 1100 0011 1000 1110 0110 0010

Slika 3.14 Okvir i kontrolni zapis

Dani algoritam nije naročito inventivan, a nije ni učinkovit jer proizvodi relativno velik kontrolni zapis u odnosu na broj bitova okvira; ali opisani postupak ilustrira jedan način računanja kontrolnog zapisa. Taj način računanja nazvan je metodom dvodimenzionalne parnosti, prema načinu na koji se kontrolni zapis ovdje izračunava. Metoda dvodimenzionalne parnosti može se koristiti u okviru složenijih algoritama. Niz bitova danog okvira može se urediti ("složiti") na razne načine, i na tako uređenim strukturama bitova mogu se izvoditi složene (iterativne) opetracije. Cilj takvih operacija je da proizvedu čim kvalitetniji (i relativno kratak) kontrolni zapis, koji omogućava učinkovito otkrivanje promjena (iskrivljenja) na izvornom zapisu okvira.

Jedna od metoda koje se često koriste za izračunavanje kontrolnih zapisa naziva se metodom cikličke redundance (cyclic redundancy check - CRC). Ta metoda zasniva se na prilično složenim (polinomskim) računanjima sa kojima nema potrebe da se ovdje bavimo, jer ovdje nas zanima prvenstveno učinak tih računanja: kontrolni zapis. Kontrolni zapis izračunat prema metodi CRC je vrlo osjetljiv na promjene sadržaja okvira, tako da pruža veliku vjerojatnost otkrivanja promjena (iskrivljenja; grešaka) na polaznom sadržaju okvira. Takav zapis može imati od 8 do 32 bita, zavisno od konkretnog prijenosnog sustava; duži CRC zapisi općenito povećavaju vjerojatnost otkrivanja greške.
Sa stanovišta prijenosa informacijskih sadržaja, kontrolni zapis je redundantan; zato je poželjno da taj zapis bude čim kraći. S druge strane, kontrolni zapis treba biti dovoljno dug da omogućava otkrivanje grešaka s dovoljno velikom vjerojatnošću. Pritom, vrijede neka osnovna načela: čim duži je okvir podataka, tim teže je definirati algoritam koji čini da promjene u zapisu okvira dovedu do promjena kontrolnog zapisa. Nadalje, čim kraći je kontrolni zapis, tim teže je naći algoritam koji čini da promjene u sadržaju okvira dovedu do promjena kontrolnog zapisa.

Jedan od načina kontrole ispravnosti prijenosa mogao bi biti da se svaki okvir prenese dva puta za redom. Ako su dvije kopije prenijetog okvira sasvim jednake, onda je vjerojatno (ali ne i sigurno) da u procesu prijenosa nije došlo do iskrivljenja okvira; ako dvije prenijete kopije okvira nisu sasvim jednake, onda je sigurno došlo do neke greške u prijenosu. Pritom se ne zna koji je od dvaju okvira iskrivljen u prijenosu, i jesu li iskrivljena oba; izvjesno je samo to da prijenos okvira treba ponoviti. Međutim, takva metoda kontrole ispravnosti nije dobra, iz više razloga. Ta metoda iziskuje dvostruki prijenos svakog okvira, i nije naročito pouzdana jer iste bitovne greške mogu se dogoditi na obje prenijete kopije okvira; u tom slučaju, ova metoda ne bi otkrila te greške. Metode sa računanjem kontrolnog zapisa, poput one koju smo opisali iznad, pružaju dovoljno visoku vjerojatnost da će greške biti otkrivene, i iziskuju prijenos zanemarivo male količine redundantnih bitova (kontrolnog zapisa). Kod tih metoda, redundantan sadržaj čini par bajtova kontrolnog zapisa po svakom okviru, što je neusporedivo manje redundantnog prijenosa nego što bi to bilo u slučaju dvostrukog prijenosa cijelih okvira.
Okviri lokalne mreže Ethernet (o kojoj govorimo kasnije) mogu sadržavati do 1500 bajtova podataka, odnosno do 12 tisuća bitova; istodobno, kontrolni zapis za te okvire, koji se izračunava metodom CRC, ima svega 32 bita. Dobar algoritam za izračunavanje kontrolnog zapisa treba pružati veliku vjerojatnost da će promjena u sadržaju okvira dovesti do izračunavanja drukčijeg kontrolnog zapisa, i time omogućiti otkrivanje iskrivljenja bitova (okvira) u prijenosu. Ali nijedan algoritam ne može računati kratke kontrolne zapise iz mnogo dužih sadržaja, na način da svaka promjena u velikom sadržaju sigurno izazove promjenu u kratkom kontrolnom zapisu. Nadalje, pojam "velike vjerojatnosti" nije lako odrediti jer različiti algoritmi mogu biti različito uspješni u otkrivanju različitih vrsta iskrivljenja (jednog bita ili mnogo bitova). U svakom slučaju, ako se u prijenosu okvira dogodilo neko iskrivljenje njegova sadržaja, pri čemu to iskrivljenje ne dovodi do izračuna drukčijeg kontrolnog zapisa, onda mrežna kartica primatelja okvira ne može znati da je došlo do iskrivljenja okvira, tako da takva iskrivljenja (greške) ostaju neotkrivena. Takve stvari mogu se događati, ali (1) greške se događaju relativno rijetko, (2) velika većina grešaka na razini fizičkog prijenosa biva otkrivena i otklonjena, (3) kod onih prijenosa podataka kod kojih je točnost podatak izrazito važna, kontrola ispravnosti prijenosa izvodi se na više razina mrežnog sustava, tako da je mogućnost da greška promakne svim kontrolama vrlo mala. Ovdje bi bilo zanimljivo znati neke statističke podatke o otkrivanju i propuštanju grešaka na razini veze podataka, ali takvih podataka nemamo pri ruci.

Da zaključimo; kod oblikovanja algoritma koji izračunava kontrolni zapis za neki niz bitova (okvir), teži se tome da algoritam bude takav, da se svaka promjena na nizu bitova vrlo vjerojatno odrazi (kao promjena) na kontrolnom zapisu kojeg taj algoritam izračunava (iz tog niza/okvira). Na taj način kontrolni zapis omogućava (primatelju okvira) da otkrije da je došlo do nekih promjena u okviru, koje su vrlo vjerojatno nastale kao greške u prijenosu, i da poduzme korake na otklanjanju tih grešaka. Algoritmi koji se koriste u praksi, zasnivaju se na matematičkim metodama i teorijama, kao što su kombinatorika i teorija vjerojatnosti, koje omogućavaju oblikovanje algoritama za formiranje kontrolnih zapisa, kod kojih postoji velika vjerojatnost da će se svaka promjena na okviru odraziti (kao promjena) na kontrolni zapis. To onda omogućava otkrivanje da je došlo do greške u prijenosu toga okvira, kako je to objašnjeno iznad.
Na razini veze podataka, odnosno na razini fizičkog prijenosa okvira, algoritmi računanja kontrolnih zapisa su zahtjevniji nego algoritmi takve vrste koji se koriste na višim razinama mrežnog sustava. Na razini veze podataka, većinom se koristi algoritam CRC, u raznim varijantama. Način rada tog algoritma nismo opisali zato jer je složen (zasniva se na raznim računanjima s polinomima), kao i zato što ovdje nije potrebno znati taj algoritam. Dovoljno je znati da algoritmi tipa CRC računaju kontrolne zapise raznih dužina (od 8 do 32 bita), koji omogućuju (s relativno velikom vjerojatnošću) otkrivanje grešaka u prijenosu podataka, i koji se većinom koriste na razini veze podataka, što praktički znači na razini fizičkog prijenosa uređenih nizova bitova (signala) između dvaju čvorova koji su izravno međusobno povezani.

Kontrole ispravnosti prijenosa izvode se i na višim razinama mrežnog sustava; to se često čini na razini upravljanja prijenosom, odnosno na "transportnoj razini", kako se obično naziva. Kod Interneta, takva kontrola izvodi se u okviru TCP protokola, koji je protokol "transportne" razine, kako to njegov naziv kazuje (Transmission Control Protocol). U vezi s nazivima, spomenimo dvije stvari. Mnogi puni nazivi entiteta ne daju informativne opise onoga što imenuju; takve nazive često izostavljamo, i koristimo samo kraticu (akronim). Za razliku od većine drugih, naziv "Transmission Control Protokol" jest informativan: to je protokol kontrole prijenosa, ili bolje protokol upravljanja prijenosom. Drugo, ono što ovdje nazivamo prijenosom, u raznim nazivima izražava se pojmovima "transport", "transfer", i "transmission". Ti pojmovi nemaju sasvim jednako značenje (i konotacije), ali ovdje se koriste u istom značenju, tako da ako se ti pojmovi ponegdje zamijene, takva greška nije relevantna.
Na razini fizičkog prijenosa (ili na razini veze podataka) kontrolira se ispravnost fizičkog prijenosa okvira (nizova signala/bitova) između dvaju čvorova koji su izravno fizički povezani. Takve veze nazvali smo vezama tipa točka-točka, ili od-točke-do-točke (point-to-point). Na razini upravljanja prijenosom podataka između izvora i odredišta ("transportni sloj"), kontrola ispravnosti provodi se u okviru komunikacije između krajnjih čvorova (izvora i odredišta) u tom prijenosu. Takvu vezu (komunikaciju) nazivamo vezom s-kraja-na-kraj (end-to-end). Ako je proces kontrole ispravnosti (i otklanjanja grešaka) dobro definiran (i realiziran) na razini veze podataka (to jest, na razini fizičkog prijenosa), onda na razini upravljanja prijenosom ne bi trebalo biti praktički nikakvih grešaka. Ali grešaka može biti i na toj razini, jer se greška može dogoditi na svakom koraku procesiranja i prijenosa sadržaja.
Na razini veze podataka, algoritmi za računanje kontrolnih zapisa realiziraju se hardverski, u mrežnoj kartici, zajedno sa ostalim procesima koje ta kartica izvodi. Na višim razinama (slojevima) mrežnog sustava - obično na "transportnoj" razini (TCP) - ti algoritmi realizirani su softverski, kao i većina drugih funkcija (operacija) na tim razinama.

U računalnim mrežama, ispravljanje grešaka u prijenosu okvira (paketa) svodi se na ponavljanje prijenosa. Druge mogućnosti mogu postojati, ali općenito nisu naročito učinkovite. Postoji mogućnost je da se ispravlja (mali broj) iskrivljenja na (dugom) okviru, bez da se ponavlja prijenos toga okvira. Ali pitanje je na temelju čega napraviti takve ispravke. Da bi bilo moguće ispraviti neku grešku u okviru (bez ponavljanja prijenosa), taj okvir treba sadržavati kontrolni zapis koji je dovoljno veliki (informacijski sadržajan) da se na temelju njega može utvrditi ne samo da je nastala neka greška, već točno koja greška (na kojim mjestima) i na koji način treba tu grešku popraviti. Takovo ispravljanje grešaka na prenijetom okviru je vrlo zahtjevan proces i koristi se samo u nekim posebnim situacijama. Taj proces je zahtjevan iz dva razloga. Prvo, treba definirati algoritam koji proizvodi takav kontrolni zapis, koji omogućava da se utvrdi točno na kojim mjestima (bitovima) je nastala greška. Takav algoritam je teško definirati, jer broj grešaka nije poznat, pa je greške utoliko teže locirati. Nadalje, kontrolni zapis koji bi omogućavao ispravljanje grešaka (bez ponovnog prijenosa) trebao bi biti velik i trebao bi se prenositi sa svakim okvirom, bez obzira da li se kod prijenosa tog okvira dogodila neka greška ili nije. Prijenosom prema takvoj metodi, vjerojatno bi se prenosilo više redundantnih bitova - to jest, dugih kontrolnih zapisa - nego što se redundantnih bitova prenosi kod ponovnog slanja onih okvira kod kojih je došlo do nekih iskrivljenja sadržaja.
Za otkrivanje grešaka dovoljni su relativno kratki kontrolni zapisi; na primjer, CRC zapis kod mreže Ethernet ima 32 bita, za okvir koji može imati do 12 tisuća bitova sadržaja. Kontrolni zapis koji bi omogućavao ispravljanje grešaka morao bi biti daleko duži; takav zapis prenosi se sa svakim okvirom, tako da bi to iziskivalo prijenos velike količine redundantnih bitova, odnosno bitova koji su redundantni sa stanovišta korisničkog sadržaja. Konačno, ako se u nekom okviru iskrivi velik broj bitova, onda je praktički nemoguće ispraviti sve te greške (bitove); okvir bi trebao sadržavati vrlo veliku količinu redundantnih bitova (kontrolnog zapisa) da bi bilo moguće ispraviti velik broj grešaka u okviru. Ali kaže se da postoje situacije u kojima se može (pokušati) ispravljati greške umjesto ponavljanja prijenosa. Kaže se da to vrijedi činiti onda kad su greške u okvirima česte, tako da ponavljanje prijenosa ne rješava problem: ponovno prenijeti okvir vjerojatno isto sadrži greške. Taj argument je zanimljiv, ali ne djeluje uvjerljivo: tamo gdje su greške u prijenosu izrazito česte, greške se događaju i u prijenosu kontrolnog zapisa. Na temelju takvog zapisa, mrežna kartica bi mogla dodatno kvariti primljeni okvir, umjesto da ga ispravlja. Tamo gdje su greške vrlo česte, trebalo bi (na primjer) slati svaki okvir tri puta; na temelju te tri kopije okvira, mrežna kartica primatelja (ili neki softverski entitet) pokušava rekonstruirati (čim točnije) zapis izvornog okvira. Na onim bitovnim mjestima gdje sve tri kopije okvira imaju istu vrijednost, ta vrijednost je vjerojatno točna; na onim mjestima gdje nije tako, uzima se onu vrijednost koja se javlja u dvije (od tri) kopije okvira. U praksi, situacija je znatno složenija od toga; nizovi bitova (i cijeli okviri) mogu biti potpuno izgubljeni, tako da okviri više nisu jednako dugi; ali tim problemima ne možemo se ovdje podrobnije baviti.
Ponavljanje prijenosa povećava zadržavanje (latency) veze. Tamo gdje povećanje zadržavanja izaziva izrazite teškoće u radu aplikacije (na primjer, kod telekonferencija), izbjegava se ponavljanje slanja. To se može učiniti tako, da se poveća količina redundantnog (kontrolnog) sadržaja u okvirima, koji onda omogućava (djelomično) ispravljanje prenijetih okvira, bez njihovog ponovnog slanja. Druga mogućnost (koja obično prevladava) je da se greške kod takvih prijenosa ne ispravljaju.


3.5 Metode prijenosa okvira

Kod tvorbe okvira, mrežna kartica pošiljatelja izračunava kontrolni zapis za taj okvir i dodaje ga okviru, te tako oblikovan niz bitova kodira i upućuje vezom primatelju okvira. Mrežna kartica primatelja prima niz signala, pretvara ih u bitove i tvori (rekonstruira) iz njih primljeni okvir i kontrolni zapis. Pritom ujedno izračunava kontrolni zapis za primljeni okvir. Ako taj izračun daje niz bitova koji je jednak primljenom kontrolnom zapisu, onda je vrlo vjerojatno da je okvir (kao i kontrolni zapis) prenijet u ispravnom stanju; u suprotnom, izvjesno je da je došlo do neke greške u prijenosu toga okvira i/ili njegova kontrolnog zapisa. U oba slučaja, primatelj obavještava o tome pošiljatelja. U prvom slučaju, pošiljatelj treba ponoviti slanje okvira kod čijeg prijenosa je došlo do greške; u drugom slučaju, pošiljatelj nastavlja sa daljnjim slanjem (novih) okvira. Na taj način ostvaruje se pouzdan prijenos okvira između mrežnih kartica, a time i sadržaja između čvorova.
Ovdje opisujemo proces prijenosa (okvira) na fizičkoj razini, odnosno na razini sloja veze podataka, prema OSI modelu mrežnog čvora. Na sličan način ostvaruje se pouzdanost prijenosa na višim razinama (slojevima) mrežnih čvorova, posebno na razini upravljanja prijenosom (transportni sloj, odnosno TCP), o čemu govorimo u kasnijim poglavljima. Potpuno pouzdan prijenos na nižim razinama (u sloju veze podataka) trebao bi jamčiti pouzdanost prijenosa i na višim razinama, jer stvarni prijenos (bitova/signala) je samo jedan, ali se isti sadržaji promatraju (obrađuju) na različite načine na različitim razinama mrežnog sustava (čvora). Ali poneka greška može ostati neotkrivena na najnižoj razini, tako da je za pouzdan prijenos potrebno provoditi kontrolu ispravnosti i na nekoj od viših razina; obično se to čini na razini upravljanja prijenosom (transportni sloj). Nadalje, neke greške koje se mogu dogoditi na višim razinama sustava, nisu vidljive na razini fizičkog prijenosa (ili veze podataka), jer ta razina samo prenosi nizove bitova koje dobiva od viših razina (na stroju pošiljatelja). Greške sa viših razina obično nisu greške za najnižu razinu, tako da ta razina ne može otkriti neke greške koje se mogu dogoditi u procesima koji se odvijaju na višim razinama. Na primjer, ako se dogodi neka greška kod tvorbe IP paketa (na višoj razini), kojeg zatim prenosi razina veze podataka, onda ta razina ne "vidi" tu grešku; njen zadatak je samo da ispravno prenese onaj sadržaj (IP paket) kojeg joj je proslijedila viša razina sustava. Zato se neke kontrole ispravnost provode i na višim razinama mrežnog sustava.
Vratimo se prijenosu okvira, odnosno najnižoj razini mrežnog sustava; dakle, fizičkoj razini, odnosno razini veze podataka. U ovom odjeljku govorimo o tome na koji način čvorovi (mrežne kartice) međusobno komuniciraju, sa ciljem da ostvare pouzdan i učinkovit prijenos okvira od pošiljatelja do primatelja. Postoje dva osnovna načina (metode) odvijanja te komunikacije; prvi način naziva se stani-i-čekaj (stop-and-wait), a drugi klizni prozor (sliding window).


Stani-i-čekaj

Ova metoda je vrlo jednostavna: čvor šalje okvir drugom čvoru na koji je izravno fizički vezan, i čeka njegov odgovor. Točnije rečeno, mrežna kartica jednog čvora šalje okvir mrežnoj kartici drugog čvora. Ako primi potvrdan odgovor da je okvir primljen u ispravnom stanju, onda šalje slijedeći okvir na isti način. Ako takav odgovor ne primi (u zadanom vremenu), onda pošiljatelj to interpretira kao obavijest da okvir nije primljen u ispravnom stanju; tada šalje ponovno isti okvir, i tako sve dok ne primi potvrdu o njegovu primitku u ispravnom stanju. Mrežna kartica primatelja potvrđuje primitak ispravnog okvira tako, da pošiljatelju uputi potvrdu (acknowledgment - ACK) o primitku toga okvira. Po primitku takve potvrde, pošiljatelj šalje slijedeći okvir i čeka potvrdu o njegovu primitku. Pritom primatelj ima neko zadano vrijeme čekanja na odgovor, ili vrijeme isteka (timeout); ako povratna potvrda (ACK) ne stigne u tom vremenu, onda mrežna kartica pošiljatelja to interpretira kao znak da sadržaj okvira nije primljen u ispravnom stanju, te ponavlja slanje toga okvira. Kartica ponavlja slanje istog okvira sve dok ne primi potvrdu da je taj okvir primljen u ispravnom stanju. U praksi, nakon određenog broja neuspjelih pokušaja slanja istog okvira, pošiljatelj zaključuje da sa vezom ili sa primateljem nešto nije u redu, te prekida taj proces slanja.
Povratna potvrda (ACK) je jedan upravljački okvir (control frame) kojeg mrežna kartica primatelja šalje mrežnoj kartici pošiljatelja, i time potvrđuje primitak okvira u ispravnom stanju (bez greške). Takav okvir ne prenosi korisničke podatke, ali pored potvrde o primitku (koju čini sam prazan okvir tipa ACK), takav okvir može sadržavati razne upravljačke podatke koji se odnose na taj proces prijenosa okvira, i koje primatelj šalje pošiljatelju sa ciljem da ovaj prilagodi svoje slanje trenutnim mogućnostima primatelja. Kad dva čvora izvode dvosmjernu razmjenu podataka (komunikaciju), prijenos okvira s podacima odvija se u oba smjera istodobno (dupleks vezom); tada čvorovi mogu slati potvrde o primitku okvira kao dodatak ("na leđima"; piggyback) onim okvirima podataka koje šalju drugom čvoru, ali tom mogućnošću se ovdje ne bavimo.
Na slici 3.15 prikazane su četiri osnovne situacije koje se mogu javiti u prijenosu okvira, odnosno u komunikaciji između njihovih pošiljatelja i primatelja.



Slika 3.15 Okviri i potvrde

Slika 3.15(a) prikazuje situaciju u kojoj se prijenos odvija normalno (bez grešaka). Pošiljatelj šalje okvir; primatelj prima okvir i šalje potvrdu o primitku, koju primatelj prima na vrijeme, to jest prije isteka zadanog vremena čekanja na potvrdu.
Slika 3.15(b) prikazuje situaciju u kojoj primatelj nije primio okvir i/ili njegov kontrolni zapis u ispravnom stanju, tako da ne šalje potvrdu o primitku. Mrežna kartica je vjerojatno primila okvir, jer ovdje govorimo o prijenosu okvira između čvorova koji su izravno fizički vezani, tako da je potpun gubitak okvira na putu malo vjerojatan. Ali na osnovu izračunatog kontrolnog zapisa, mrežna kartica je utvrdila da je sadržaj tog okvira iskrivljen (u prijenosu); zato ga odbacuje i ne potvrđuje njegov primitak. S obzirom da nije primila potvrdu do isteka zadanog vremena, mrežna kartica šalje primatelju ponovno isti okvir. Uzmimo da je ovaj put okvir stigao u ispravnom stanju; stoga primatelj sad šalje potvrdu o primitku; pošiljatelj prima tu potvrdu (na vrijeme) i nastavlja sa prijenosom ostalih okvira.
Slika 3.15(c) prikazuje situaciju kada je okvir primljen u ispravnom stanju, ali povratna potvrda (ACK) nije. Naime, povratna potvrda je isto okvir (upravljački i kratak), tako da može biti iskrivljen ili izgubljen u procesu prijenosa. S obzirom da nije primio potvrdu o primitku poslanog okvira, po isteku vremena čekanja pošiljatelj šalje primatelju ponovno isti okvir. Primatelj je taj okvir već primio, tako da ovu kopiju odbacuje (njeno prihvaćanje značilo ponavljanje sadržaja, što bi se na višim razinama pokazalo kao greška). Ali primatelj ponovno šalje potvrdu o primitku toga okvira, jer činjenica da je pošiljatelj ponovno poslao taj (potvrđeni) okvir, pokazuje da primatelj nije primio prethodnu potvrdu (ACK) za taj okvir. Na slici 3.15(c) uzeto je, da je ponovljena potvrda stigla u ispravnom stanju i na vrijeme, te se proces prijenosa okvira može nastaviti.
Konačno, slika 3.15(d) prikazuje situaciju u kojoj pošiljatelj treba povećati vrijeme čekanja na povratnu potvrdu o primitku okvira, jer se u suprotnom prijenos okvira uopće ne može odvijati. Naime, ovdje primatelj prima okvire u ispravnom stanju i potvrđuje njihov primitak; ali pošiljatelj prima potvrde prekasno, tako da stalno ponavlja slanje istog okvira. Jedini način da se taj problem riješi je povećanje vremena čekanja na potvrdu (ACK).

Da bi primatelj mogao razlikovati novi okvir od ponovljenog slanja istog okvira zbog gubitka povratne potvrde, zaglavlje okvira sadrži jedno polje u koje pošiljatelj upisuje sekventni broj okvira. Polje za upis sekventnog broja obično ima par bajtova, tako da se sekventni broj može kretati od vrijednosti nula do neke maksimalne vrijednosti koju se može upisati u polje te dužine. Nakon što je poslan okvir sa maksimalnim sekventnim brojem, numeriranje okvira kreće opet od početka, tako da slijedeći okvir nosi sekventni broj nula, i tako redom dalje. Dakle, sekventni broj ne mora biti isto što i redni broj okvira; ako se u nekom prijenosu podataka prenese više okvira nego što iznosi maksimalni sekventni broj (u tom sustavu), onda dva li više okvira u tom procesu prijenosa dobiva isti sekventni broj. U nekim situacijama takvo ponavljanje sekventnog broja može dovesti do grešaka u radu, ali kod metode stani-i-čekaj ne dovodi, tako da se tim pitanjem nećemo ovdje baviti. Ukratko, primatelj ovdje zna da je primio ponovljeni okvir (zbog gubitka povratne potvrde) po tome što taj okvir ima isti sekventni broj kao i prethodni okvir. S obzirom da je prethodnu kopiju istog okvira primio u ispravnom stanju, primatelj ponovno potvrđuje primitak tog okvira, ali novu kopiju tog okvira odbacuje, jer je taj okvir već primio i pohranio u svoju memoriju.
Očita slabost metode stani-i-čekaj je u tome što prijenos okvira iziskuje puno stajanja i čekanja. Zbog toga se prijenos okvira odvija sporije nego što bi se mogao odvijati, a prijenosni kapacitet veze nije iskorišten u cijelosti, osim ako se istom vezom ne izvodi više prijenosa okvira istovremeno (multipleksiranjem) za potrebe različitih komunikacija (procesa) između danih dvaju čvorova. Sa ciljem da se otkloni slabosti metode stani-i-čekaj, razvijena je metoda koja se naziva klizni prozor, koju opisujemo u nastavku.


Klizni prozor

Metoda kliznog prozora (sliding window) je u osnovi jednostavna, ali njene realizacije mogu iziskivati relativno puno računanja. Opisi te metode su obično složeniji nego što je potrebno; u nastavku iznosimo jedan jednostavan prikaz te metode, bez puno računanja jer ta računanja nisu neophodna za razumijevanje metode klizni prozor, njenih učinaka i mogućnosti njene realizacije.
Osnovu metode rada klizni prozor čini to, da pošiljatelj šalje primatelju više okvira za redom, bez da čeka potvrdu o primitku za svaki od poslanih okvira. Ta metoda rada može biti realizirana na više načina. Jedan od načina je da potvrde za poslane okvire stižu paralelno (dupleks vezom) sa slanjem novih okvira. Drugi način realizacije te metode je taj, da primatelj potvrđuje ispravan primitak svakog n-tog okvira (n se određuje u komunikaciji između čvorova pošiljatelja i primatelja), čime implicitno potvrđuje primitak svih prethodnih okvira iz tog niza. U literaturi se obično opisuje prvi način rada, ali se isto tako govori o "kumulativnom" potvrđivanju primitka okvira, a to je drugi način rada kojeg smo opisali iznad. Na slici 3.16 dan je grafički prikaz dvaju opisanih načina realizacije metode kliznog prozora.



Slika 3.16 Klizni prozor

Ako se u procesu prijenosa okvira ne događa puno grešaka (a tako bi trebalo biti), onda je drugi način realizacije metode klizni prozor učinkovitiji od prvog načina, jer se ovdje prenosi manje povratnih poruka (ACK). Kod obiju varijanti, proces slanja i primanja okvira i povratnih potvrda metodom klizni prozor je jednostavan. Taj proces postaje složenijim na razini rješavanja onih slučajeva kada neki okvir nije primljen u ispravnom stanju, ili kada neka potvrda o primitku nije primljena u ispravnom stanju (i na vrijeme). Proces postaje još složeniji kada čvorovi, pored okvira i potvrda, razmjenjuju i podatke o svom trenutnom stanju, sa ciljem da usklade ritam (intenzitet) prijenosa sa svojim trenutnim mogućnostima (posebno sa mogućnostima primatelja), tako da se prijenos okvira odvija na optimalan način. O tim stvarima govorimo kasnije; pogledajmo najprije odakle vjerojatno dolazi naziv metode klizni prozor.

Kod metode klizni prozor, svaki okvir ima sekventni broj, tako da se za svaku potvrdu može znati koji okvir potvrđuje. To znači da i potvrde (ACK) trebaju sadržavati sekventni broj okvira čiji ispravan primitak potvrđuju.
U mrežnom čvoru pošiljatelja, razina veze podataka (o kojoj ovdje govorimo) uzima sadržaje koje "proizvode" više razine (slojevi) toga čvora, uređuje te sadržaje u okvire, izračunava kontrolne zapise, kodira sve to i šalje u vezu prema primatelju. Na čvoru koji prima okvire, sloj veze podataka (mrežna kartica) dekodira primljene nizove signala, sastavlja iz njih okvire bitova pri čemu ujedno provjerava njihovu ispravnost (na način kako je to opisano ranije) i predaje te okvire višim slojevima toga čvora.
Na čvoru pošiljatelja, sloj veze podataka treba čuvati "original" svakog okvira kojeg je uputio prema primatelju, sve dok od primatelja ne primi potvrdu o ispravnom primitku toga okvira. Nakon toga sloj veze podataka može brisati taj okvir iz svog memorijskog prostora, jer je prijenos tog okvira uspješno obavljen. Kod metode kliznog prozora, sloj veze podataka ne čeka na potvrdu primitka poslanog okvira prije nego što šalje slijedeći okvir. To znači da taj sloj treba čuvati zapise većeg broja poslanih okvira o čijem primitku (još) nije primio potvrdu. Ti okviri postupno zauzimaju memorijski prostor toga sloja (mrežne kartice) na način na koji klizni prozor (roleta) zatvara otvor prozora (kada se spušta). S druge strane, potvrde ACK koje stižu, omogućuju sloju veze podataka na čvoru pošiljatelja da briše okvire čiji je primitak potvrđen, i time oslobađa svoj memorijski prostor. To oslobađanje memorijskog prostora može se usporediti sa podizanjem rolete na prozoru.
Na strani primatelja odvija se slično spuštanje i dizanje rolete. Dolazeći okviri zauzimaju njegov memorijski prostor (spuštaju roletu); nakon što je potvrdio primitak jednog kontinuiranog niza okvira, sloj veze podataka na primatelju predaje taj niz okvira (primljeni sadržaj) sloju iznad sebe. Tada se taj niz okvira briše iz memorijskog prostora sloja veze podatak primatelja, čime se taj prostor oslobađa za primanje novih okvira, odnosno podiže se roleta na prozoru sloja veze podataka primatelja.
Postoje i drugi razlozi zbog kojih je metoda kliznog prozora mogla dobiti svoje ime. Kod te metode primatelj može obavještavati pošiljatelja (u povratnim potvrdama ACK) o trenutnoj veličini svog slobodnog memorijskog prostora ("prozora" za primanje okvira), tako da pošiljatelj ne šalje okvire većim intenzitetom nego što ih primatelj može primati, jer će u tom slučaju ti okviri biti odbačeni, bez obzira na to da li su ispravni. O tom problemu biti će više riječi u kasnijim poglavljima.

Kod metode kliznog prozora javljaju se razna tehnička (operativna) pitanja koja mogu biti riješena na različite načine, kao i pitanja koje čvorovi mogu rješavati u međusobnoj komunikaciji koju izvode u okviru nekog konkretnog prijenosa podataka. U nastavku ovog odjeljka iznosimo neka od tih pitanja, ne zalazeći pritom u detaljna tehnička rješenja jer ona mogu biti različita i mogu se mijenjati, dok problemi ostaju uglavnom isti.
Prvo pitanje koje se ovdje nameće jest, treba li primatelj potvrđivati primitak svakog okvira zasebno, ili je dovoljno da potvrdi primitak svakog n-tog okvira u nizu, i time implicitno potvrdi i primitak svih prethodnih okvira u tom nizu. Opisi metode kliznog prozora (koji obično nisu sasvim jasni) obično uzimaju da primatelj eksplicitno potvrđuje primitak svakog okvira. Dakle, čini se da je metoda kliznog prozora implementirana na način kako to ilustrira slika 3.16(a). Međutim, čini se da bi implementacija te metode na način kako to ilustrira slika 3.16(b) mogla biti efikasnija, iz razloga koje smo naveli iznad. Ali bez obzira na koji od ta dva načina se ta metoda implementira, potrebno je definirati neke konkretne postupke koji se trebaju izvoditi kod prijenosa okvira metodom kliznog prozora. Prije svega, treba definirati na koji način trebaju postupiti primatelj i pošiljatelj u situaciji kad se otkrije grešku u prijenosu nekog okvira.

Uzmimo da pošiljatelj može poslati 10 okvira u vezu u vremenu jednog RTT veze, to jest u vremenu povratnog puta te veze. To znači da pošiljatelj može poslati u vezu deseti okvir (u nekom nizu) prije nego što primi potvrdu o ispravnom primitku prvog okvira iz tog niza. Ako se u prijenosu ne događaju greške, i ako potvrde o primitku okvira stižu redovito i na vrijeme, onda nema nikakvih problema. Međutim, ako je došlo do greške u prijenosu petog okvira, onda potvrda za taj okvir neće stići. Po isteku vremena čekanja, pošiljatelj će ponoviti slanje tog okvira (koji ima svoj sekventni broj) i zatim nastaviti sa slanjem novih okvira. Ponovljeno slanje okvira ne smije praviti teškoće primatelju. Na temelju sekventnog broja kojeg nosi peti okvir, primatelj utvrđuje da li taj okvir nedostaje u nizu primljenih okvira; ako nedostaje, onda prihvaća taj okvir, uvrštava ga na njegovo mjesto, i šalje potvrdu o njegovu primitku. Ako primatelj utvrdi da već ima peti okvir (iz danog niza), onda njegovu ponovljenu kopiju odbacuje, ali potvrđuje njen primitak (iz razloga koje smo iznijeli ranije).
Opisani postupak odgovarao bi načinu rada kojeg ilustrira slika 3.16(a), gdje primatelj eksplicitno potvrđuje primitak svakog okvira. Kod načina rada kojeg ilustrira slika 3.16(b), umjesto potvrde petog okvira, primatelj treba potvrditi primitak cijelog niza. Ovdje se postavlja pitanje na koji način može pošiljatelj znati da primatelju nedostaje upravo peti okvir u nizu, kad se ovdje ne šalju eksplicitne potvrde za pojedinačne okvire, već samo za cijeli niz. Kod tog načina rada, primatelj može "pozvati" pošiljatelja da ponovi slanje petog okvira (koji mu nedostaje u nizu), na taj način da potvrdi primitak četvrtog okvira (umjesto desetog). Po uspješnom primitku petog okvira, primatelj potvrđuje primitak desetog okvira, i time implicitno svih ostalih okvira iz tog niza. Ako pored petog okvira nedostaje i osmi okvir, onda nakon primitka petog okvira, primatelj potvrđuje primitak sedmog okvira i time poziva pošiljatelja da ponovi slanje osmog okvira.
Ovdje postoje razne mogućnosti konkretnih rješenja. U svakom slučaju, kada se eksplicitno potvrđuje primitak svakog okvira, onda pošiljatelj zna koje okvire treba poslati ponovno: one za koje nije primio potvrdu o primitku. S druge strane, ako se eksplicitno potvrđuje samo primitak svakog n-tog okvira, onda primatelj treba nekako javiti pošiljatelju koji mu okvir nedostaje u nizu (od n okvira). To može učiniti tako, da eksplicitno potvrdi primitak dijela niza do prve "rupe"; dakle, da potvrdi primitak onog okvira koji se nalazi ispred prvog nedostajućeg okvira. Primatelj izvodi isti postupak za svaku "rupu" u nizu, dok se zadani niz ne popuni. Međutim, takve situacije ne bi se trebale događati često, jer u procesu prijenosa okvira, greške bi trebale biti rijetke. Koliko je to "rijetko" može se pokušati izračunati iz statističkih podataka o vjerojatnosti iskrivljenja jednog bita (za danu vrstu veze) i iz broja bitova u jednom paketu. Međutim, takvi izračuni su samo okvirni, jer nije isto da li se iskrivi sto bitova u jednom okviru, ili po jedan bit u sto okvira. Prvi slučaj je u praksi vjerojatniji, ali drugi bi doveo do sto puta većeg broja iskrivljenih okvira nego prvi slučaj. Jer da bi okvir bio iskrivljen (i odbačen) dovoljno je da se iskrivi samo jedan njegov bit.

Kod metode kliznog prozora, polje sekventnog broja (u zaglavlju okvira) treba biti dovoljno veliko da se ne dogodi da okvir koji nosi segmentni broj n, u slijedećem ciklusu segmentnih brojeva, stigne primatelju prije nego što stigne ponovljena kopija okvira n iz prethodnog ciklusa segmentnih brojeva. U suprotnom, događale bi se greške: primatelj bi uvrstio okvir iz novog ciklusa na mjesto starog okvira, a stari (ponovljeni) okvir na mjesto novog okvira. Ako je sekventni broj dovoljno velik - na primjer, dug 16 bitova što omogućava zapis 216 = 65536 brojeva - onda se takve greške (vjerojatno) neće događati. Ali s porastom propusnosti, kod dugih putova (sa velikim RTT), mogu se događati razne stvari koje ne izgledaju vjerojatne.
Ovdje uzimamo da jedan "niz okvira", o kojem smo govorili iznad, sadrži mnogo manje okvira nego što iznosi maksimalni sekventni broj. Kad se na čvoru primatelja formira jedan takav niz okvira (zadane veličine) u kojem nema "rupa" (nedostajućih okvira), onda čvor (to jest, sloj veze podataka) predaje taj niz okvira sloju iznad sebe i briše taj niz iz svog memorijskog prozora; time podiže svoj klizni prozor, kako je to objašnjeno ranije. Dakle, na strani pošiljatelja prozor se spušta s porastom broja poslanih a nepotvrđenih okvira, a podiže brisanjem okvira kada je njihov primitak potvrđen. Na čvoru primatelja, prozor se spušta primanjem okvira, a podiže se njihovim predavanjem višem sloju i brisanjem iz memorijskog prostora sloja veze podataka.

Metoda kliznog prozora omogućava da čvorovi pošiljatelja i primatelja razmjenjuju niz podataka o svom stanju, na temelju kojih nastoje stalno održavati proces prijenosa podataka u optimalnom stanju, u kontekstu njihovih trenutnih mogućnosti, koje se stalno mijenjaju. Pritom je posebno važno da primatelj javlja pošiljatelje podatke o svojim trenutnim mogućnostima primanja okvira, što ovdje znači prvenstveno podatak o veličini svog prozora za primanje - to jest, o veličini slobodnog memorijskog prostora na razini veze podataka. Na temelju takvih podataka, pošiljatelj treba regulirati intenzitet svog slanja. Ne bi imalo smisla da pošiljatelj šalje okvire brže (u jedinici vremena) nego što ih primatelj može trenutno primati, jer bi u tom slučaju primatelj morao odbacivati neke okvire, koje bi pošiljatelj zatim morao slati ponovno. Takvi podaci upravljačke prirode prenose se u ACK okvirima koje primatelj (periodički) šalje pošiljatelju podatkovnih okvira, jer ovdje je bitno prvenstveno to, da pošiljatelj zna trenutno stanje primatelja.

Za metodu kliznog prozora, odnosno za algoritam koji implementira tu metodu, kaže se da omogućava ostvarenje pouzdanog prijenosa podataka preko nepouzdanog prijenosnog sustava. Takva tvrdnja zvuči pomalo zagonetno i nije naročito točna. Prvo, prijenosni sustav o kojem ovdje govorimo je sloj veze podataka, odnosno sustav za fizički prijenos okvira kao uređenih nizova bitova koji se prenose pomoću odgovarajućih signala. Taj sustav općenito nije naročito nepouzdan; točnije, nepouzdan je utoliko što se u njegovu radu mogu dogoditi greške. Ali u tom smislu može se smatrati nepouzdanim svaki tehnološki sustav (barem u nekoj mjeri) jer se u radu svakog takvog sustava može dogoditi greška. Drugo, metoda kliznog prozora ostvaruje pouzdan prijenos sadržaja (preko nepouzdanog sustava) u suradnji sa tim sustavom. Prvo, sam taj prijenosni sustav (razine veze podataka) otkriva vlastite greške (na osnovu kontrolnih zapisa); metoda kliznog prozora samo prisiljava taj sustav da ponavlja prijenos istog okvira sve dok to ne napravi bez greške. Ali ovdje se ne radi o nekoj iznimnoj sposobnosti metode kliznog prozora; to isto je činila i metoda stani-i-čekaj, koju smo opisali ranije. Specifičnost metode kliznog prozora je u tome, da smanjuje ukupno vrijeme čekanja na potvrde o primitku okvira, na način kako je to objašnjeno iznad.

Kao druga odlika metode kliznog prozora navodi se to, da ohranjuje ispravan redoslijed prenijetih sadržaja (okvira, paketa). Tu metodu smo ovdje opisali na primjeru njene primjene na razini sloja veze podataka. Na toj razini, redoslijed primljenih okvira ohranjuje se na temelju toga što svaki okvir ima sekventni broj, kako je to opisano iznad. Pritom, sloj veze podataka primatelja ne predaje nizove primljenih okvira višim slojevima dok ti nizovi nisu potpuni (bez "rupa"). Ali to se ne mora smatrati specifičnom odlikom metode kliznog prozora; to je više stvar protokola (načina rada) sloja veze podataka. U svakom slučaju, na razini veze podataka nije naročito teško održavati ispravan redoslijed prenijetih entiteta (okvira). Ovdje se radi o prijenosu izravnom vezom (tipa točka-točka), tako da okviri ne mogu "pretjecati" jedni druge na putu, jer kreću se istom vezom. Redoslijed okvira (na čvoru primatelja) mogao bi se poremetiti jedino kod ponavljanja slanja iskrivljenih okvira, ali to se izbjegava na osnovu sekventnog broja, kako je to opisano ranije.
Metoda kliznog prozora koristi se i u okviru nekih protokola viših razina mrežnog sustava, o kojima govorimo u kasnijim poglavljima. Na tim razinama, očuvanje ispravnog redoslijeda jedinica podataka (paketa, poruka) koje se prenose mrežom, predstavlja zahtjevniji zadatak. Naime, tu se radi o sastavljenim vezama (tipa s-kraja-na-kraj) koje prolaze kroz više čvorova, i kod kojih paketi od istog procesa prijenosa (od iste komunikacije) mogu putovati različitim putovima, tako da ovdje postoji mogućnost pretjecanja na putu.

Treći zadatak metode kliznog prozora je da omogući upravljanje intenzitetom prijenosa jedinica podataka, i to na izravnim vezama (tipa točka-točka), na vezama koje vode preko više čvorova (tipa s-kraja-na-kraj), i na razini mrežnog sustava kao cjeline. Na razini veze podataka, taj zadatak je relativno jednostavan: primatelj stalno obavještava pošiljatelja (u ACK okvirima) o trenutnoj veličini svog kliznog prozora, što pošiljatelju omogućava da prilagodi intenzitet slanja okvira trenutnom stanju primatelja. Metoda kliznog prozora općenito omogućava čvorovima, uključujući prijenosnike (usmjerivače), da šalju povratne informacije o svom trenutnom stanju izvorima tokova podataka koji bi mogli dovesti do njihova zagušenja. Ako ti izvori postupaju u skladu s tim informacijama, onda vjerojatno neće doći do zagušenja; u suprotnom, ti izvori morati će snositi posljedice zagušenja koje su proizveli. Održavanje optimalnog intenziteta prometa na dužim putovima, kao i na razini (ne-lokalnih) mreža kao cjelina, je zahtjevan zadatak koji se nastoji ostarjeti na razini nekih temeljnih načela, ali čije je učinke teško precizno kvantificirati. U svakom slučaju, metoda kliznog prozora je ovdje sredstvo koje omogućava da se pokuša ostvariti takav cilj, ali ona sama po sebi nije dovoljna za njegovo ostvarenje. O tome će biti više riječi u kasnijim poglavljima.
Da zaključimo, osnovni zadatak metode kliznog prozora je taj, da omogući kontinuirano slanje okvira (paketa), bez čekanja na eksplicitnu potvrdu o primitku prethodno poslanih paketa. Time se ubrzava proces prijenosa podataka u jednoj komunikaciji između dvaju procesa sa različitih čvorova. Time se ujedno omogućava bolje iskorištenje prijenosnih kapaciteta veze između tih dvaju čvorova; to je posebno izraženo kod prijenosa sadržaja između čvorova koji su izravno međusobno povezani, kao što je to slučaj kod prijenosa okvira na razini veze podataka. Ali općenito, prijenosni kapacitet veze može biti potpuno iskorišten i u slučaju kad se komunikacija odvija po metodi stani-i-čekaj; to se može postići tako, da se istom vezom multipleksira prijenos jedinica podataka (okvira, paketa) za veći broj različitih prijenosa podataka (komunikacija). Takvo multipleksiranje može se izvoditi i između dvaju čvorova koji su izravno međusobno povezani, u slučaju kada se između ta dva čvora odvija više različitih komunikacija.


3.6 Lokalna mreža Ethernet

Kaže se da je lokalna mreža Ethernet najuspješnija lokalna mreža, ali se pritom ne precizira način mjerenja te uspješnosti. Ta uspješnost zasniva se na jednostavnosti te mreže, što omogućava relativno niske troškove njene uspostave i održavanja. Mreža Ethernet razvijena je sredinom 1970-tih godina u Xerox Palo Alto Research Center (PARC); dakle, u istraživačkom centru tvrtke Xerox, u gradu Palo Alto. Kasnije su razvijene druge varijante te mreže, ali u praksi prevladava njena osnovna varijanta, poznata kao 10 Mbps Ethernet. U nastavku ćemo tu mrežu zvati samo Ethernet, a kod spomena drugih mreža tipa Ethernet navoditi ćemo njihove pune nazive. Osnovna odlika mreže Ethernet je jednostavnost njene strukture i načina rada, ali ta jednostavnost donosi i neke slabosti o kojima govorimo kasnije. Na slici 3.17 prikazana je osnovna konfiguracija mreže Ethernet.





Slika 3.17 Osnovna struktura Etherneta

Mreža Ethernet koristi jedan vodič na kojeg se spajaju svi čvorovi te mreže. Preko tog vodiča kojeg nazivamo sabirnicom, izvodi se sva komunikacija između čvorova mreže. Slika 3.18 pokazuje na koji način se čvor (domaćin) vezuje na sabirnicu, a time i u mrežu Ethernet, čime postaje čvorom te mreže.



Slika 3.18 Vezivanje na sabirnicu

Svaki čvor ima jedinstvenu Ethernet adresu u lokalnoj mreži; ta adresa je jedinstvena i u svijetu, što kod lokalnih mreža nije nužno da bude. O tome govorimo kasnije; ovdje spomenimo samo to, da je Ethernet adresa čvora zapravo Ethernet adresa mrežne kartice koja taj čvor spaja na mrežu (sabirnicu).
Osnovno načelo rada mreže Ethernet je vrlo jednostavno. Svi čvorovi (domaćini) šalju i primaju podatke preko iste veze (sabirnice). Domaćin A šalje podatke domaćinu B na taj način da njegova mrežna kartica pošalje (preko transivera) na sabirnicu okvire s podacima, pri čemu su ti okviri adresirani na čvor B. Odaslani okviri stižu sabirnicom na sve domaćine u mreži, ali preuzima (kopira) ih samo onaj domaćin (točnije, njegova mrežna kartica) na kojeg su ti okviri adresirani. To čini osnovu mreže Ethernet i njena rada. U nastavku iznosimo niz pojedinosti koje podrobnije opisuju tu mrežu.

Sabirnica u mreži Ethernet je obično koaksijalni kabel, ali mogu se koristiti i drugi vodiči. Sabirnica smije biti ukupne dužine do 2500 metara, ali ne mora biti u jednom komadu (linearna), već se može sastojati iz više segmenata koji mogu biti povezani na različite načine, o čemu govorimo kasnije. Mreža Ethernet smije sadržavati najviše 1024 čvora, ali ih obično sadrži mnogo manje, jer sa porastom broja čvorova obično raste i promet na sabirnici, što dovodi do sudaranja okvira i pada efikasnosti rada mreže, o čemu govorimo kasnije. Minimalna razdaljina između dvaju čvorova - to jest, između njihovih spojnih točaka na sabirnici - iznosi 2,5 metra. Uzgred, nije očito kako se došlo do broja od 1024 čvora, ako (1) sabirnica smije biti duga najviše 2500 metara, i (2) minimalan razmak između dvaju spojeva je 2,5 metra. Prema tim kriterijima, čini se da u mrežu ne može stati više neko 1001 čvor. Ali današnja literatura ne postavlja pitanja: iznose se "podaci", bez obzira da li su konzistentni ili ne.
Za mrežu Ethernet kaže se da je jedna realizacija modela mreže koji se naziva CSMA/CD. Ta kratica sastavljena je od triju naziva koji ujedno opisuju mrežu Ethernet i način njena rada. Počnimo od srednjeg dijela: MA (Multiple Access). To kazuje da mreža Ethernet radi po načelu višestrukog pristupa, što znači da veći broj domaćina ima pristup istom (zajedničkom) nosiocu podataka (sabirnici) i vrši prijenos podataka preko tog nosioca, na način kako je to objašnjeno iznad. Kratica ima puno i često znače različite stvari; ali kratica MA (Media Access, Multiple Access) se najčešće odnosi na način korištenja nosioca podataka.
CS (Carrier Sense) - to možemo prevesti kao osluškivanje ili promatranje (sense) nosioca podataka (carrier). Na spoju mrežne kartice na sabirnicu nalazi se jedan element koji se naziva transiver (transceiver), što dolazi od "transmitter + receiver" (odašiljač i primatelj). Taj element promatra stanje sabirnice i utvrđuje da li je trenutno slobodna, ili se njome izvodi neki prijenos okvira. Kada mrežna kartica treba slati podatke, onda to čini ako njen transiver pokazuje da je sabirnica slobodna; ako nije slobodna, onda mrežna kartica čeka da njen transiver pokaže da se sabirnica oslobodila, i tada šalje podatke. Ovdje govorimo o slanju podataka; međutim, kako je to ranije objašnjeno, mrežna kartica šalje signale, koji (1) kodiraju (zapisuju) bitove, (2) koji (bitovi) su uređeni u okvire, (3) sa/u kojima se prenose podaci. Dakle, svaki od četiriju termina (signali, bitovi, okviri, podaci) je točan, jer prenose se signali, koji zapisuju bitove, koji su složeni u okvire, sa kojima se prenose podaci. Pitanje je samo koji od termina zvuči primjerenije u kojoj situaciji.
Ako je više mrežnih kartica čekalo da se sabirnica oslobodi, onda u trenutku kad se to dogodi, sve te kartice šalju svoje okvire na sabirnicu. Svaki okvir poslan na sabirnicu širi se cijelom sabirnicom, tako da to dovodi do sudara (collision) okvira na sabirnici i do njihova međusobnog iskrivljenja. Da bi se taj problem moglo riješiti, treba postojati neki element koji utvrđuje da je došlo do sudara. To ovdje radi element (dio sustava) opisan sa CD (Collision Detection); dakle, CD se odnosi na onaj dio sustava koji otkriva ("detektira") da je došlo do sudara okvira (collision). Signali okvira koji su se sudarili, iskrivljuju (i miješaju) se međusobno, tako da kod pojave sudara, sve mrežne kartice smjesta prekidaju sa slanjem okvira. Zatim svaki od domaćina (kartica) čiji su se okviri sudarili čeka neko "slučajno vrijeme", pa onda pokuša ponovno, ako je veza slobodna. O tome će biti još riječi u nastavku ovog odjeljka.
Ono što čini osnovu mreže Ethernet realizirano je hardverski u mrežnoj kartici. Radom mrežne kartice upravlja softver (drajver; upravljač) koji se izvodi na domaćinu kojeg ta kartica vezuje u/na mrežu. Lokalna mreža Ethernet koristi metodu kodiranja Manchester, koju smo opisali ranije.

Tvrtke Digital Equipment Corporation i Intel Corporation pridružile su se tvrtki Xerox u radu na razvoju njene lokalne mreže, i 1978. godine zajednički su definirale "standardni" 10 Mbps Ethernet. Taj zajednički standard se ponekad naziva dugim imenom Digital-Intel-Xerox Ethernet standard. Taj standard je zatim poslužio kao osnova prema kojoj je definiran IEEE standard 802.3. Te dva standarda su vrlo slična, ali razlikuju se u nekom stvarima. Standard 802.3 definirao je više nosioca podataka (pored koaksijalnog kabela) pomoću kojih se može ostvariti 10 Mbps mreža tipa Ethernet. Kasnije je taj standard definirao i 100 Mbps Ethernet, nazvan Fast Ethernet, 1000 Mbps Ethernet, nazvan Gigabit Ethernet. Međutim, Fast Ethernet i Gigabit Ethernet rade na drukčiji način nego standardni 10 Mbps Ethernet, te se s njima ovdje ne bavimo. Rečeno je da se Fast Ethernet i Gigabit Ethernet koriste uglavnom za uspostavljanje dupleks veza tipa točka-točka u mrežama sa uspostavljanjem putova, o kojima govorimo u slijedećem poglavlju.

Spajanje na sabirnicu može se izvesti na razne načine, u zavisnosti od toga koja se vrsta vodiča koristi kao sabirnica. U standardnoj varijanti Etherneta, koristi se koaksijalni kabel sličan onom sa kojim se spaja televizijska antena na televizor. Kod koaksijalnog kabela, spajanje se obično izvodi pomoću spojnice koja se zabada u kabel i doseže vodič u njegovoj sredini. Na tom spoju nalazi se transiver, čiju smo ulogu opisali iznad. Standard 802.3 definirao je i drukčije vodiče, kod kojih se mogu koristiti drukčiji načini spajanja, ali se na spojnom mjestu (ili odmah iza njega) uvijek nalazi transiver.
Sabirnica se obično dijeli na segmente. Svaki segment može biti dug do 500 metara. Segmenti se povezuju preko obnavljača signala (repeater). Obnavljač prima digitalne signale koji su djelomično izobličeni na putu, ali su još uvijek prepoznatljivi kao signali ("nisko" i "visoko"), te za svaki primljeni signal šalje novi signal (pravilnog oblika) dalje u vezu. Između dva čvora ne smije se nalaziti više od četiri obnavljača. Taj uvjet ujedno znači da mreža ne smije imati više od pet linearno (uzdužno) povezanih segmenata (dužine do 500 metara), odnosno više od 2500 metara ukupne dužine. Međutim, sabirnica mreže Ethernet se često oblikuje na način kako to ilustrira slika 3.19. U tom slučaju, gornji uvjet o četiri obnavljača ne ograničava ukupnu dužinu sabirnice, ali je ta dužina eksplicitno ograničena i bez toga.



Slika 3.19 Segmenti i obnavljači

Lokalna mreža je obično vlasništvo jedne institucije čije se prostorije mogu nalaziti na nekoliko katova iste zgrade. Svaki segment mreže može povezivati domaćine na jednom katu, dok jedan vertikalan segment povezuje horizontalne segmente, kako to ilustrira slika 3.19. Povezivanja segmenata izvode se preko obnavljača signala. Ovakva konfiguracija mreže ujedno čini da se između dva domaćina ne nalazi više od dva obnavljača. Ta konfiguracija, sama po sebi, ne ograničava broj segmenata: ovakva mreža mogla bi imati više kraćih segmenata, čija ukupna dužina ne prelazi 2500 metara. Isto tako, jedan segment može se prostirati na više katova.
Bez obzira na konfiguraciju sabirnice, svaki signal (bit, okvir) koji je upućen na sabirnicu, širi se cijelom sabirnicom i dospijeva na sve domaćine u mreži. Na kraj svakog segmenta sabirnice postavlja se element zvan terminator, za kojeg se kaže da apsorbira signale; bez toga, signali bi se "odbijali" natrag u vezu (sabirnicu) i sudarali se sa drugim signalima (koji se kreću iz njih). Takvo odbijanje i sudaranje ometalo bi rad mreže; taj problem je riješen sa terminatorom, ali nije rečeno zbog čega se signal odbija od kraja segmenta (ako nema terminatora).
Umjesto pomoću standardnog koaksijalnog kabela koji nosi oznaku 10Base5, mreža Ethernet može se napraviti pomoću kabela 10Base2. Prva vrsta kabela naziva se debeli mrežni kabel (thick-net), a druga se naziva tanki mrežni kabel (thin-net). Obje vrste kabela omogućuju prijenos (propusnost) od 10 Mbps, ali kod debelog kabela segment može biti dug do 500 metara, a kod tankog do 200 metara. Mreža Ethernet se može napraviti i pomoću opletene parice; ta vrsta vodiča nosi oznaku 10BaseT, pri čemu "T" označava opletenu paricu (twisted pair). Maksimalna dužina segmenta kod upotrebe te vrste vodiča (nosioca) iznosi 100 metara. Kod tanjih nosioca, kao što su 10Base2 i 10BaseT, spoj na sabirnicu ne izvodi se ubodom kao kod debelog (standardnog) koaksijalnog kabela, već pomoću posebnog elementa oblika "T", pri čemu jedan krak vodi na mrežnu karticu.

Format okvira mreže Ethernet dan je na slici 3.20. To je okvir "originalne" mreže 10Mbps Ethernet koja se naziva Digital-Intel-Xerox standardom i koja je uzeta kao osnova kod izrade IEEE standarda 802.3, kako je to ranije rečeno. U stvari, ta dva standarda su praktički jednaka, uz neke manje razlike koje iznosimo u nastavku.



Slika 3.20 Struktura okvira mreže Ethernet

Prva 64 bita tvore polje nazvano Preambula; ta 64 bita namijenjena su tome da primatelj sinkronizira svoj sat sa satom pošiljatelja; takva sinkronizacija je neophodna za ispravan prijenos signala između dva čvora (domaćina). Preambula je niz naizmjeničnih signala "nisko" i "visoko" (ili znakova "0" i "1"); takvo intenzivno mijenjanje vrijednosti signala potrebno je za uspješno izvršenje sinkronizacije satova pošiljatelja i primatelja. Preambulu se prikazuje kao dio okvira, ali u nastavku ćemo vidjeti da se Preambulu zapravo ne tretira kao dio okvira, što je razumljivo jer se tim dijelom ne prenose ni upravljački zapisi, ni podaci, ni kontrolni zapis (CRC).

Slijede dva polja koja sadrže adresu primatelja, odnosno adresu pošiljatelja okvira. Svaka od tih adresa duga je 48 bitova. Kažemo da su to adrese dvaju domaćina dane mreže, ali to su zapravo adrese mrežnih kartica koje vezuju te domaćine u mrežu.
Polje Tip sadrži oznaku onog protokola više razine kojem treba predati dani okvir kad stigne na odredište (to jest, na domaćina primatelja). Spomenimo, da se u IEEE standardu 802.3 uloga i sadržaj tog polja razlikuju od onog što je ovdje rečeno za izvorni Ethernet o kojem ovdje govorimo; na to ćemo se vratiti kasnije.
Polje Tijelo sadrži podatkovni sadržaj kojeg taj okvir prenosi. To polje može sadržavati do 1500 bajtova (12000 bitova), a mora sadržavati barem 46 bajtova (368 bitova). Zajedno sa dužinom zaglavlja bez Preambule (6 + 6 + 2 = 14 bajtova) i kontrolnim zapisom CRC (4 bajta), to čini da svaki okvir bude dugačak barem 64 bajta, odnosno 512 bitova. S obzirom na dopuštene dimenzije mreže, tolika dužina okvira neophodna je da bi se osiguralo otkrivanje sudara okvira u mreži.
Konačno, okvir sadrži polje kontrolnog zapisa (CRC) koje je ovdje dugo 32 bita. Uočimo da se kontrolni zapis uračunava u minimalnu dužinu okvira, dok preambula ne.

Sa stanovišta domaćina (koji šalju i primaju podatke), zaglavlje okvira ima 14 bajtova, a rep okvira (polje CRC) domaćini ne vide. Preambulu dodaje mrežna kartica koja formira okvir; mrežna kartica ujedno izračunava kontrolni zapis i dodaje ga okviru kojeg formira i upućuje u mrežu.
Preambula se potroši u procesu sinkronizacije primatelja i pošiljatelja. Mrežna kartica koja prima okvir, troši kontrolni zapis (CRC) od primljenog okvira; kartica to čini u procesu utvrđivanja da li je došlo do iskrivljenja sadržaja okvira u prijenosu, kako je to objašnjeno ranije. Dakle, mrežna kartica predaje ispravne okvire domaćinu, bez preambule i kontrolnog zapisa; kartica odbacuje neispravne okvire.

Okvir od IEEE standarda 802.3 jednak je okviru Ethernet standarda sa slike 3.20 kojeg smo opisali iznad, uz jednu razliku. Kod IEEE standarda, sadržaj polja Tip interpretira se kao zapis broja bajtova u tijelu okvira, umjesto kao oznaka protokola više razine kojem treba predati taj okvir, kako je to ranije bilo rečeno. Ta razlika u sadržaju (značenju, ulozi) danoga polja u ta dva standarda ne predstavlja veći problem. To polje ima 16 bitova, tako da može sadržavati zapise veličine do 216 (više od 64 tisuće). Tijelo okvira može imati najviše 1500 bajtova. Kao oznake protokola više razine uzete su numeričke vrijednosti veće od broja 1500, tako da je lako razlikovati da li sadržaj toga polja znači oznaku protokola (Digital-Intel-Xerox standardni Ethernet) ili pak broj bajtova u tijelu okvira (IEEE standard 802.3). Upravljački program (drajver) mrežne kartice (koji radi na domaćinu) može biti postavljen tako, da sadržaj polja Tip interpretira kao oznaku protokola više razine, ili pak kao broj bajtova u tijelu okvira. Struktura okvira tih dvaju standarda (izvorni Ethernet i IEEE standard 802,3) je ista; stvar je upravljačkog programa kako će mrežna kartica interpretirati sadržaj polja Tip. Za očekivati je da svi čvorovi u jednoj lokalnoj mreži rade prema jednom od dva standarda, ali s obzirom da je struktura okvira ista, čini se da to ne mora biti nužno tako.


Adrese i adresiranje

Svaki čvor u mreži Ethernet ima svoju Ethernet adresu; kako je već rečeno, to je adresa mrežne kartice koja spaja taj čvor na mrežu. Adresa mrežne kartice duga je čak 48 bitova, tako da svaka mrežna kartica ima jedinstvenu Ethernet adresu u svijetu. To je postignuto na taj način što je svakom od proizvođača tih kartica dodijeljen jedan niz od prva 24 bita Ethernet adrese; dakle, kartice od različitih proizvođača sigurno imaju različite adrese: razlikuju se u prva 24 bita. Sa ostala 24 bita, svaki proizvođač dodjeljuje jedinstvenu adresu svakoj od kartica koje on proizvodi. Podjela 24 : 24 bita izgleda neobično, jer vjerojatno ima puno manje proizvođača mrežnih kartica nego što svaki od njih može proizvesti kartica, ali to ovdje nije naročito bitno. Ako neki proizvođač potroši sve svoje adrese u druga 24 bita, može mu se dati još jedan niz od prvih 24 bitova. Inače, 224 je nešto više od 16 milijuna; toliko proizvođača kartica vjerojatno nema; ali toliko kartica bi mogao proizvesti jedan proizvođač, iako ih vjerojatno ne bi mogao toliko prodati.
Adresa mrežne kartice se obično zapisuje kao šest parova heksadecimalnih znakova; parovi se pritom odvajaju dvotočkom i izostavlja se vodeća nula u svakom paru. Pogledajmo primjer jedne Ethernet adrese od 48 bitova; četvorke bitova smo ovdje razdvojili radi preglednosti.
1110 0101 0000 0000 0011 0111 0000 1101 1101 0000 1001 1100
Prema gornjem načelu (šest parova heksadecimalnih znakova), tu adresu zapisuje se na slijedeći način:
e5:0:37:d:d0:9c
Binarni zapis prve četvorke (1110) je heksadecimalno "e", iza kojeg dolazi heksadecimalno "5" kao drugi element prvog para. U drugom paru oba elementa su heksadecimalno "0"; u zapisu toga para, prva (vodeća) "0" se izostavlja. I tako redom.

Svaki okvir koji je upućen u mrežu Ethernet dospijeva na svaku mrežnu karticu te mreže. U standardnom načinu rada, okvir preuzima (kopira) samo ona mrežna kartica na čiju je adresu taj okvir upućen. Međutim, postoje i drukčije mogućnosti adresiranja i prihvaćanja okvira. U mreži Ethernet mogu se definirati multicast adrese. To su adrese grupa domaćina, ili adrese podmreža. Pomoću upravljačkog programa mrežne kartice, mogu se definirati multicast adrese i odrediti da neki domaćin pripada u jednu ili više multicast grupa. Tada će njegova mrežna kartica primati (kopirati) okvire koji su upućeni na adrese onih grupa u koje je taj domaćin uvršten. Dakle, može se odrediti da mrežna kartica, pored okvira koji su upućeni točno na njenu adresu, prima (kopira) i okvire koji su upućeni na određene grupne (multicast) adrese.
Upravljačkim programom može se odrediti i da neka mrežna kartica preuzima (kopira) sve okvire koji su upućeni u mrežu, odnosno koji stižu na tu karticu. Za takvu karticu (i/ili njenog domaćina) kažemo da radi na promiskuitetan način. Lokalna mreža je obično vlasništvo jedne institucije, tako da promiskuitetan način rada vjerojatno ne znači krađu tuđih podataka. U svakom slučaju, takav način rada može služiti nekoj vrsti nadziranja komunikacije u mreži, ali to nije uobičajen način rada.
U mreži Ethernet postoji i mogućnost broadcast načina slanja; dakle, slanja okvira svim domaćinima u mreži. Broadcast adresa sastoji se od samih znakova "1". Okvire koji su upućeni na broadcast adresu prihvaćaju svi čvorovi dane lokalne mreže.


Sudaranje okvira

Kad mrežna kartica treba slati okvire, onda to čini odmah, ako njen transiver pokazuje da je sabirnica slobodna; u suprotnom, mrežna kartica čeka da se veza oslobodi. Kad se veza oslobodi, mrežna kartica šalje svoje okvire u mrežu odmah. Kaže se da u osnovnom načinu rada, mrežna kartica šalje sa vjerojatnošću 1, što znači 100%, i da je stoga protokol slanja okvira u Ethernetu 1-persistentan. To ujedno znači da kad dvije kartice (ili više) istodobno čekaju da se veza oslobodi, onda će sve te kartice poslati svoje okvire u mrežu praktički istodobno, što će dovesti do sudara tih okvira na sabirnici i do njihova međusobnog iskrivljenja.
Mogućnost sudara može se smanjiti na taj način, da se za svaku karticu smanji vjerojatnost da pošalje okvire (kad se veza oslobodi), sa vrijednosti 1 na vrijednost p, pr čemu je 0 < p < 1. Tada kažemo da mreža radi na p-persistentan način. Ako uzmemo da je p jednako 1/3, i da u nekom trenutku tri kartice (domaćina) čekaju da se sabirnica oslobodi, onda bi (statistički gledano) kod oslobođenja sabirnice, okvire trebala poslati jedna kartica, a druge dvije trebale bi odustati od slanja. Na taj način bilo bi izbjegnut sudar okvira, mreža bi radila učinkovito, i uspješno bi prenosila podatke. One dvije kartice koje su odustale od slanja, našle su se opet u stanju čekanja; taj se proces stalno ponavlja (ili odvija); statistički, svaka kartica u jednom trenutku pokuša slati, i tada ima dobre izglede da je druge kartice u tome ne ometu.
Opisani model (protokol) ponašanja ne jamči izbjegavanje sudara; samo smanjuje njihovu vjerojatnost (a onda i učestalost). Na primjer, kad je p jednako 1/3, ponekad se svejedno dogodi da dvije ili više kartica pokuša slati okvire istodobno, i tada dolazi do sudara okvira. Druga slabost dane metode je ta, što kad se veza oslobodi, ponekad nijedna od kartica koje čekaju ne pošalje okvire; ponekad može čekati samo jedna kartica, i kad se veza oslobodi može ne poslati okvire. Ali usprkos spomenutim slabostima, smanjenje persistentnosti je dobar način da se smanji vjerojatnost sudara okvira na sabirnici.

Da bi mrežna kartica A mogla utvrditi da se njen okvir sudario na sabirnici sa okvirom mrežne kartice B, potrebno je da signali okvira od B stignu na karticu A. Ako bi kartica A imala poslati samo jedan okvir i ako bi završila sa slanjem tog okvira prije nego okvir od kartice B stigne do kartice A, onda A ne bi saznala ("detektirala") da je došlo do sudara, da je njen okvir iskrivljen na putu u sudaru sa okvirom od B, i da ga treba poslati ponovno. Isto vrijedi i za mrežnu karticu B.
Da bi se onemogućilo pojavu neotkrivenih sudaranja (a time i pojavu neotklonjenih grešaka u prijenosu), potrebno je da okvir bude dovoljno dug (u bitovima), da mrežna kartica ne može završiti sa njegovim slanjem (i zaključiti taj proces) u kraćem vremenu nego što je potrebo da do te kartice stigne okvir sa najudaljenijeg domaćina u mreži. To mora vrijediti za svakog domaćina u mreži. Dužina okvira koja jamči ispunjenje takvog zahtjeva izračunava se na temelju dužine mreže, brzine širenja signala (zadržavanja), i propusnosti veze. Prvo treba izračunati povratno vrijeme zadržavanja između dva krajnja čvora mreže, koji kod Etherneta mogu biti udaljeni 2500 metara i odvojeni sa četiri obnavljača; izračunato je da to vrijeme iznosi 51,2 mikrosekunde. Kod širine frekventnog pojasa (propusnosti) od 10 Mbps, u tom vremenu može se uputiti u vezu 512 bitova. To znači da svaki Ethernet okvir mora imati barem 512 bitova, tako da proces njegova slanja ne može završiti prije nego do mrežne kartice čvora A koja ga šalje stigne okvir sa najudaljenijeg čvora (B), čije je slanje počelo u vrijeme kad je A već otpočeo sa slanjem svojih okvira. Objasnimo kritičnu situaciju uz pomoć slike 3.21.




Slika 3.21 Sudaranje okvira

Uzmimo da su domaćini A i B krajnji čvorovi mreže i da su međusobno udaljeni 2500 metara. U trenutku kad je sabirnica bila slobodna, A je uputio svoj okvir na sabirnicu. Dok okvir putuje od A do B, protekne vrijeme zadržavanja dane veze u jednom smjeru.
U trenutku kad je okvir od A stigao nadomak transivera od B, sabirnica je za taj transiver još uvijek slobodna. Uzmimo da u tom trenutku B pošalje svoj okvir u sabirnicu. To će smjesta dovesti do sudara okvira, kako to ilustrira slika 3.21(a). Mrežna kartica B će to odmah registrirati, jer će do nje stići okviri od A neposredno nakon što je kartica B počela slati svoj okvir.
Međutim, da bi kartica A saznala da se njen okvir sudario, potrebno je da iskrivljeni okvir od B prođe cijelom dužinom sabirnice i stigne do A, kako to ilustrira slika 3.21(b). To sve zajedno daje povratno vrijeme zadržavanja dane veze, odnosno mogućnost da A pošalje 512 bitova dok na njegov transiver stigne okvir od B, odnosno dok sazna za sudar okvira. Zato je potrebno da svaki okvir bude dugačak barem 512 bitova, odnosno 64 bajta, tako da nijedna kartica ne može završiti sa slanjem svog okvira prije nego što može saznati da se njen okvir sudario s okvirom bilo kojeg čvora u mreži (ako do sudara dođe); veličina okvira od 64 bajta potrebna je da se osigura detekcija sudara u najviše nepovoljnoj situaciji, kakvu ilustrira primjer sa slike 3.21.
Kaže se da su tehničke dimenzije lokalne mreže Ethernet odabrane na osnovu takvih parametara i kalkulacija. To ne znači da mreža nije mogla biti duga 2000 ili 5000 tisuća metara, umjesto odabranih 2500 metara. Međutim, svaka promjena ima svoje povoljne i nepovoljne učinke. Na primjer, s porastom dužine sabirnice, raste vjerojatnost sudara okvira. To se događa zato što udaljeni čvorovi vide vezu kao slobodnu i onda kad to više nije, jer je u vezu već poslao svoj okvir neki udaljeni čvor. Vjerojatnost sudara raste s porastom broja domaćina i sa porastom intenziteta njihova slanja podataka, ali i sa porastom same dužine sabirnice. Na odabir dimenzija mreže utječu i praktički razlozi vezani uz njenu upotrebu; dimenzije (i performanse) mreže trebaju udovoljavati nekim konkretnim potrebama.

Kad pokušaj neke mrežne kartice (domaćina) K da pošalje okvir dovede do sudara, onda jedna funkcija slučajnosti (od te kartice) određuje da li da kartica K pokuša odmah slati ponovno (čekanje je 0) ili da sačeka 51,2 mikrosekundi, pa da onda pokuša ponovno. U prvom slučaju, K se nada da su ostali učesnici u sudaru odlučili sačekati 51,2 mikrosekundi i da se sudar neće ponoviti; u drugom slučaju, K čeka, dajući time priliku drugima da šalju. U oba slučaja, slijedi drugi pokušaj; ako i taj pokušaj dovede do sudara, onda funkcija slučajnosti bira između triju mogućnosti čekanja: 0, 51,2 i 102,4 mikrosekundi. Sa svakim slijedećim sudarom raste broj višekratnika vrijednost 51,2 između kojih funkcija bira jedno vrijeme čekanja. Statistički, to znači da raste vrijeme čekanja. Takav način ponašanja čvora naziva se eksponencijalnim povlačenje (exponential backoff) jer je obrazac prema kojem se povećava broj višekratnika od 51,2 obično takav da se vrijeme čekanja čvora nakon svakog sudara udvostručava.
Takvim povlačenjem domaćina koji se sudaraju, smanjuje se vjerojatnost sudara, jer tako se povlače svi domaćini (mrežne kartice) koji sudjeluju u jednom sudaranju. Konačno, ako mrežna kartica ne uspije poslati svoj okvir ni u šesnaestom pokušaju (zbog sudaranja okvira), onda kartica zaključuje da sa sabirnicom nešto nije u redu, prestaje s pokušavanjem i o tome izvještava svog domaćina.
Za mrežu Ethernet kaže se da radi najbolje kod manjih opterećenja; sa porastom opterećenja, raste vjerojatnost sudara okvira, što dovodi do pada učinkovitosti prijenosa podataka u mreži. Ako je mreža zauzeta (vrši prijenos) preko 30% vremena, onda se smatra da je vrlo opterećena. Broj domaćina u mrežama Ethernet je obično mnogo manji (ispod 200) od maksimalno mogućeg broja (1024). Većina mreža Ethernet je znatno kraća od maksimalno dopuštene dužine (2500 metara). Sve to zajedno čini da lokalne mreže Ethernet rade u praksi izrazito uspješno (učinkovito). Bitna odlika mreže Ethernet je njena jednostavnost, što olakšava njenu uspostavu i održavanje.


3.7 Prstenaste mreže

Prstenaste mreže koriste jednu (zajedničku) sabirnicu kao i mreža 10 Mbps Ethernet, ali sabirnica ovdje tvori prsten. Pritom čvorovi koji tvore mrežu nisu samo vezani na prsten, nego su dio prstena: okviri koji se prenose prstenom prolaze kroz mrežnu karticu svakog od tih čvorova. U ovom odjeljku govorimo o tri mreže prstenastog tipa: IBM Token Ring (odnosno, pripadni IEEE standard), FDDI (Fiber Distributed Data Interface), i RPR (Resilient Packet Ring). Prve dvije vrste mreža su starije i za njih se kaže da nisu naročito uspješne u nadmetanju sa mrežama tipa Ethernet. Treća vrsta (RPR) je novija i za nju se još ne može reći koliko će biti uspješna u tom nadmetanju. Mreže FDDI i RPR mogu biti znatno većih prostornih dimenzija nego standardni 10 Mbps Ethernet, tako da se te mreže obično smatraju MAN mrežama (Metropolitan Area Networks), što znači da se mogu prostirati na području jednog grada. Ali u tom području, prstenastim mrežama konkuriraju druge vrste mreža (kao što je WiMAX) o kojima govorimo u slijedećim poglavljima.


IBM Token Ring

Naziv te mreže može se prevesti sa prsten sa značkom. Riječ "token" ima mnogo značenja, ali ono što se ovdje naziva "token" ima ulogu značke koja se kreće prstenom, od čvora do čvora, u krug; onom čvoru na kojeg stigne, značka daje mogućnost (pravo) da šalje svoje podatke prstenom nekom drugom čvoru te mreže. Na slici 3.22 prikazana je osnovna struktura mreže prstenastog tipa. Različite mreže toga tipa imaju svoje specifičnosti o kojima govorimo kasnije.





Slika 3.22 Prstenasta mreža

Prijenos podataka u mreži Token Ring odvija se na slijedeći način. Prstenom se kreće jedan niz bitova koji se naziva značkom. Značka se kreće od čvora do čvora, na taj način što je svaki čvor prosljeđuje slijedećem čvoru, u krug. Značka i okviri s podacima kreću se uvijek u jednom (istom) smjeru; smjer u kojem čvorovi šalju značku i okvire naziva se nizvodnim, a smjer iz kojeg im stižu značka i okviri naziva se uzvodnim. Kada značka stigne na čvor, ako taj čvor tog trenutka nema potrebu slati podatke, onda značku smjesta prosljeđuje dalje. Kad značka stigne na čvor koji ima potrebu slati podatke, onda taj čvor zadržava značku i time stječe isključivo pravo slanja podataka prstenom na određenu adresu u tom prstenu. Dakle, umjesto da odmah proslijedi značku, čvor šalje (nizvodno) svoje okvire s podacima. Po završetku slanja, ili po isteku nekog zadanog vremena, čvor upućuje značku u prsten (nizvodno) i time daje mogućnost susjednom čvoru da prenosi svoje podatke. I tako redom, i u krug.
Okvir koji je upućen u prsten kreće se kroz sve čvorove prstena, ili točnije, kroz njihove mrežne kartice; dakle, sadržaj svakog okvira mogu vidjeti svi čvorovi, ali kopira ga samo onaj čvor na kojeg je taj okvir adresiran. Taj čvor ujedno prosljeđuje kopirani okvir dalje (nizvodno), tako da se okvir, nakon što napravi puni krug, vraća svom pošiljatelju. Mrežna kartica na koju stigne okvir kojeg je ona uputila u prsten (što se vidi iz adrese pošiljatelja), skida taj okvir sa prstena. Na opisani način značka se kreće prstenom (uz zadržavanja na čvorovima), stiže na svaki čvor i omogućava mu da šalje podatke. Osnovna uloga značke je da omogući održavanje reda u korištenju zajedničkog nosioca, odnosno u prijenosu podataka zajedničkim nosiocem. Kasnije ćemo vidjeti da prstenasta mreža može raditi i bez značke, ali to dovodi do problema koje onda treba rješavati na neki drugi način. Širina frekventnog pojasa u mrežama tipa prsten sa značkom iznosi od 4 do 16 Mbps.

Prstenasta struktura osjetljiva je na kvarove (padove) čvorova. Prsten prolazi kroz svaki čvor mreže (kroz njegovu mrežnu karticu), tako da kvar (ili pad, gašenje) bilo kojeg čvora mreže dovodi do prekida prstena i time do prekida rada mreže. Taj problem riješen je tako, da za svaki čvor postoji mogućnost njegova premošćenja; time se problematičan čvor isključuje iz prstena i mreža nastavlja s radom. Čvorovi (domaćini) se obično vezuju u prsten u posebnim kutijama koje možemo nazvati jedinicama za višestanični pristup (multistation access unit - MSAU). Te kutije omogućavaju spajanje u prsten većeg broja domaćina, kako to ilustrira slika 3.23.



Slika 3.23 Jedinica MSAU

Raspored čvorova (domaćina) na slici 3.23 nalikuje zvijezdi, ali čvorovi su povezani u niz koji tvori jedan dio prstena. Ta slika ujedno pokazuje sklopke koje omogućavaju premošćivanje čvorova; uočimo da je čvor D2 premošćen i time isključen iz prstena. Ovakve jedinice za spajanje pojednostavljuju dodavanje čvorova u mrežu i njihovo skidanje s mreže. Sklopke u spojnoj jedinici omogućavaju da se isključi i dio prstena koji tvori lokalna veza prema čvoru, u slučaju kad dođe do kvara na toj vezi: premošćenjem čvora, premošćuje se i dio prstena koji vodi od spojne jedinice (MSAU) do čvora. Time se isto tako sprječava prekid prstena.
Čvorovi u mreži Token Ring vezani su u prsten preko mrežnih kartica; na spojnim mjestima nalazi se transiver (transmitter + receiver) čiju smo ulogu opisali u okviru prikaza mreže Ethernet. Prsten prolazi kroz sve transivere i mrežne kartice, tako da svaki okvir stiže na svaku mrežnu karticu. Okvire koje šalju drugi čvorovi (domaćini) i koji nisu upućeni na njenu adresu, mrežna kartica samo prosljeđuje prstenom dalje. Okvire koje šalju drugi čvorovi, a koji jesu upućeni na njenu adresu, mrežna kartica kopira (i kopiju predaje domaćinu), a okvir prosljeđuje dalje prstenom. Na taj način svaki okvir vraća se (prstenom) natrag svom pošiljatelju. Kad na mrežnu karticu stigne okvir kojeg je ona uputila u prsten, onda ta mrežna kartica skida taj okvir sa prstena. Pritom na temelju stanja nekih bitova iz okvira, mrežna kartica utvrđuje da li je primatelj okvira primio (kopirao) taj okvir. Ako nije, onda mrežna kartica treba odlučiti da li da nastavi sa slanjem okvira tom primatelju (domaćinu) ili ne; o tome govorimo kasnije.

Kad nijedan domaćin ne šalje okvire (podatke), onda značka kruži prstenom, od domaćina do domaćina, sve dok je neki domaćin ne zaustavi (zadrži) i time stekne isključivo pravo slanja okvira. Dakle, u mreži tipa prsten sa značkom ne može doći do sudara okvira na vezi, kako se to događa kod mreže Ethernet.
Čvor koji je zadržao značku, može slati okvire jedno određeno vrijeme; to vrijeme naziva se vremenom zadržavanja značke (token holding time - THT). To vrijeme može biti neograničeno, tako da čvor koji je počeo slati okvire (podatke) može poslati sve podatke koje želi poslati (u danom trenutku), bez da prekida proces slanja. Međutim, ako neki čvor treba prenijeti veliku količinu podataka, onda kod takvog načina rada svi drugi čvorovi moraju čekati dugo vremena da dobiju mogućnost slanja. Jer drugi čvorovi mogu slati tek kad do njih stigne značka; a značka će krenuti dalje prstenom tek kad čvor koji ju je zadržao završi sa slanjem i pošalje značku u prsten, nizvodno, prema susjednom čvoru. Da bi se izbjeglo preduga čekanja na red za slanje, vrijeme THT se obično ograničava na način koji omogućava domaćinu da pošalje više okvira, ali ne neograničeno mnogo. Po isteku zadanog THT, domaćin koji drži značku, prekida sa slanjem i prosljeđuje značku dalje; kad značka napravi krug i ponovno stigne do njega, onda taj domaćin može nastaviti sa slanjem okvira (podataka).
U mreži Token Ring postoji mogućnost multicast i broadcast slanja okvira; ti načini slanja odvijaju se prema istim načelima kao i u lokalnoj mreži Ethernet koju smo opisali ranije. Dakle, definira se multicast adresa i određuje se koji čvorovi spadaju u grupu čvorova kojoj pripada ta multicast adresa. Tada svaki čvor iz te grupe kopira okvire koji su upućeni na tu multicast adresu.

Prema lokalnoj mreži IBM Token Ring definiran je IEEE standard 802.5. Opisi tih dviju mreža se često miješaju, jer su te dvije mreže iste strukture. Međutim, standard 802.5 uveo je neke novosti koje ukratko opisujemo u nastavku. Jedna od novosti je sustav prioriteta, koji se zasniva na dodjeli određenog značenja nekim bitovima iz značke. Značka koja kruži prstenom je jedan zadani niz bitova (obično dug tri bajta); kod standarda 802.5 određeno je da tri bita iz tog niza označavaju prioritet značke. Tri bita omogućavaju zapis osam različitih prioriteta; da bi domaćin smio zadržati značku, njegovi paketi (koje želi poslati nekome) trebaju imati prioritet koji je barem jednako visok kao onaj prioritet koji je trenutno zapisan u znački. Time se htjelo postići da oni domaćini koji ne moraju hitno slati podatke, ne zadržavaju značku (i vrše prijenos), tako da oni čvorovi koji trebaju slati hitno, imaju veće izglede da značka brže stigne do njih. Prioritet značke se mijenja; ne zalazeći u pojedinosti na koji način se to izvodi, uzmimo da prioritet značke raste sa porastom potražnje za značkom, odnosno sa porastom potrebe po slanju; prioritet opada sa padom intenziteta prometa u prstenu. Na primjer, ne bi imalo smisla onemogućavati nekom čvoru (visokim prioritetom značke) da zadrži značku i šalje podatke, onda kad nijedan drugi čvor ne čeka na značku. Zato je normalno da u takvim situacijama prioritet značke ide prema najnižoj razini, tako da je svaki čvor smije zadržati i slati podatke. Na slici 3.24 dana je struktura okvira prstenaste mreže IEEE standard 802.5.



Slika 3.24 Okvir prstenaste mreže 802.5

Početak okvira označava graničnik (Start delimiter) koji je sadržan u polju Oznaka početka; taj graničnih ima osam bitova. Kod ranijeg govora o graničnicima rekli smo da je graničnik niz bitova 01111110; isto vrijedi za završni graničnik (End delimiter) u polju Oznaka završetka.
Polje Pristup sadrži osam bitova koji se odnose na pravo domaćina na upotrebu prstena (na prijenos podataka); dakle, na pravo pristupa (domaćina) zajedničkom nosiocu podataka. Tri bita iz tog polja pokazuju prioritet okvira: svaki okvir treba sadržavati prioritet i smije biti upućen u prsten samo ako je njegov prioritet barem jednako visok kao i prioritet značke, kako je to rečeno ranije. To znači da čvor smije zadržati značku samo ako okviri koje želi prenositi imaju dovoljno visok prioritet.
Polje Upravljanje sadrži podatke na temelju kojih mrežna kartica utvrđuje o kakvoj vrsti okvira se radi; sadržaj toga polja ujedno određuje kojem protokolu više razine treba predati taj okvir kad stigne na odredište, to jest, na domaćina na kojeg je adresiran.
Slijedeća dva polja sadrže adresu odredišta (primatelja) okvira, odnosno adresu izvora (pošiljatelja) okvira. Kao i kod mreže Ethernet, ta polja su duga po 48 bitova.
Polje Tijelo je varijabilne dužine; postoji mogućnost da okvir bude toliko dug da njegov početak počne stizati prstenom na karticu pošiljatelja (iz uzvodnog smjera) dok kartica još šalje (nizvodno) njegov završni dio. U tom slučaju, kartica skida sa prstena onaj dio okvira koji stiže na nju i nastavlja sa slanjem onog dijela okvira koji još nije poslan.
Polje kontrolnog zapisa ima 32 bita; kontrolni zapis računa se prema metodi CRC, kao i kod mreže Ethernet. Slijedi završni graničnik okvira (Oznaka završetka). Polje Status koje se dodaje okviru, sadrži podatke koji su vezani uz proces prijenosa okvira. To polje sadrži bitove na temelju kojih pošiljatelj utvrđuje da li je primatelj primio njegov okvir; o tome govorimo u nastavku.

Polje Status sadrži (između ostalog) dva bita, označena sa A (active) i C (copied), pomoću kojih pošiljatelj utvrđuje ishod svog pokušaja slanja okvira. Kod tvorbe okvira, mrežna kartica pošiljatelja postavlja ta dva bitovna mjesta na vrijednost 0. Kad okvir stigne na mrežnu karticu primatelja (odredišta), kartica postavlja vrijednost od A na 1; ako kartica pritom preuzme (kopira) sadržaj okvira, onda postavlja i vrijednost od C na 1. Zatim prosljeđuje okvir prstenom dalje. Kad se okvir vrati na čvor pošiljatelja, onda pošiljatelj na temelju stanja tih dvaju bitova vidi da li je njegov okvir primljen na domaćinu primatelju.
Ako su oba bitovna mjesta, A i C, postavljena na 1, onda je primatelj primio (kopirao) taj okvir. Ako vrijednost od A glasi 1, a od C glasi 0, onda je čvor primatelja aktivan, ali primatelj nije primio (kopirao) taj okvir. To može biti zato što je mrežna kartica primatelja utvrdila da je okvir iskrivljen na putu, ili pak zato što primatelj (mrežna kartica) tog trenutka nije imao slobodnog prostora u prijemnoj memoriji. Ako je domaćin aktivan, ali nije primio okvir, onda pošiljatelj može odmah pokušati ponovno poslati taj okvir. Ako pak domaćin nije aktivan (premošten je; A ima vrijednost 0), onda nema smisla odmah pokušati slati ponovno.

Postoje dva načina vraćanje značke u prsten. Po završetku slanja zadnjeg okvira, domaćin može odmah uputiti značku u prsten, ili može to učiniti nakon što njegov zadnji okvir napravi puni krug prstenom i vrati se na tog domaćina. Prvi način rada naziva se ranim oslobađanjem značke (early release), a drugi način odgođenim oslobađanjem značke (delayed release). Standard 802.5 je isprva radio po metodi odgođenog oslobađanja značke, ali je kasnije uvedena metoda ranog oslobađanja. Ranim oslobađanjem značke povećava se propusnost prstena, jer značka ranije kreće prema drugim čvorovima, koji onda mogu ranije početi slati svoje okvire.

U prstenastoj mreži tipa 802.5 jedan od čvorova ima ulogu monitora (nadzornika) mreže. Monitor može biti bilo koji od aktivnih čvorova mreže. Upravljački softver mreže sadrži proceduru prema kojoj se jedan od čvorova određuje kao monitor kad mreža počne s radom. Ako čvor koji ima ulogu monitora prestane s radom, onda se prema toj proceduri, određuje novi monitor. Monitor potvrđuje svoju aktivnost periodičkim slanjem određene poruke u prsten. Kad neki od čvorova ne primi tu poruku u nekom zadanom vremenu, onda pokreće proceduru čijim izvršenjem taj čvor postaje novim monitorom mreže. Postoji mogućnost da više čvorova pokuša to učiniti praktički istodobno; procedura za postavljanje monitora tada daje prednost jednom od njih.
Monitor vodi računa o tome da se značka kreće prstenom na način kako se treba kretati. Značka se može izgubiti zbog iskrivljenja nekog od njenih bitova, čime prestaje biti značkom. Značka može nestati i zbog pada domaćina koji ju je držao (jer je tada slao okvire). Monitor utvrđuje gubitak značke ako značka ne stigne do njega u vremenu koje se izračunava prema slijedećem obrascu:
BrojDomaćina x THT + ZadržavanjePrstena
Dakle, prsten ima određeni broj domaćina; pritom svaki domaćin smije zadržati značku najviše THT vremena; tome se još dodaje vrijeme koje je potrebno da značka napravi jedan krug prstenom. Nakon što protekne toliko vremena bez da značka stigne do njega, monitor zaključuje da je značka izgubljena i šalje u prsten novu značku.
Monitor skida sa prstena one okvire koje su trebali skinuti njihovi pošiljatelji, ali to nisu učinili. To se može dogoditi zbog toga što je došlo do iskrivljenja bitova okvira u polju adrese pošiljatelja, tako da pošiljatelj više ne prepoznaje taj okvir kao svoj (kad se vrati na njega), te ga zato ne skida s prstena, kao što to treba učiniti. Nadalje, domaćin može pasti (prestati raditi iz raznih razloga) nakon što je uputio okvir u mrežu, a prije nego što je taj okvir napravio krug i vratio se na svoj izvor. U tom slučaju, više nema tko skinuti taj okvir s prstena; ako je u trenutku pada, domaćin smjesta premošten, onda bi takav okvir trajno kružio prstenom i time onemogućavao rad mreže. Jedan bit u polju Status koristi se na način koji omogućava monitoru da prepoznaje takve okvire i skida ih sa prstena. Pošiljatelji okvira postavljaju taj bit (M) na vrijednost 0; monitor postavlja taj bit na vrijednost 1 u okviru koji prođe kroz njega. Kad na monitor stigne neki okvir u kojem je vrijednost bita M postavljena na 1, onda monitor zna da je taj okvir već napravio puni krug prstenom, te ga skida sa prstena i time omogućava normalan nastavak rada mreže.
Monitor može utvrditi i druge nepravilnosti u radu pojedinih domaćina i pokrenuti postupak njihova isključenja iz prstena, i to njihovim premošćivanjem (u spojnim jedinicama MSAU), kako je to objašnjeno ranije.


Mreža FDDI

Za mrežu FDDI (Fiber Distributed Data Interface) kaže se da je slična prstenastoj mreži tipa 802.5 koju smo opisali iznad, ali ima neke svoje specifičnosti koje ćemo ukratko opisati. Mreža FDDI je prostorno znatno opsežnija nego lokalne mreže, tako da se obično svrstava u mreže tipa MAN, koje se mogu prostirati na prostoru jednog grada. Lokalne mreže su obično ograničene na prostor jedne ili nekoliko zgrada. FDDI koristi optička vlakna (Fiber), ali postoji i njena varijanta CDDI u kojoj se koriste bakreni vodiči (C dolazi od copper - bakar).
U mreži FDDI, čvorovi su povezani dvostrukim prstenom, pri čemu ta dva prstena mogu prenositi podatke u međusobno suprotnim smjerovima, kako to ilustrira slika 3.25(a). U normalnom radu mreže (kad nema kvara), prijenos se vrši samo jednim od dva prstena, dok se drugi prsten ne koristi. Ako dođe do prekida aktivnog prstena, onda se pomoću drugog (neaktivnog) prstena uspostavlja novi prsten, koji isključuje mjesto prekida; to se čini na način kako to ilustrira slika 3.25(b).



Slika 3.25 Dvostruki prsten

Postoji mnogo vrsta mreža, i svaka od njih sadrži mnogo hardverskih i softverskih elemenata, metoda, protokola i algoritama, tako da ovdje ne možemo opisivati i analizirati sve te stvari u detalje. Na primjer, ne izgleda naročito opravdanim koristiti dva prstena na način kako se to radi kod mreže FDDI. Čini se da bi mogao postojati neki drugi (jeftiniji) način da se obiđe mjesto prekida prstena, iako postoje naznake da premošćivanje čvorova kod optičkih vlakana (i signala) nije jednostavno kao kod električnih signala. Možemo pretpostaviti da postoje valjani praktički razlozi za postojanje dvaju prstena (pri čemu se jedan ne koristi) ali se ti razlozi ne iznose na naročito uvjerljiv način.
U mreži FDDI postoje uglavnom svi oni elementi koje smo opisali u prikazu prstenaste mreže 802.5 ali su ti elementi i postupci oblikovani na specifičan način. Na primjer, umjesto jednog monitora, u mreži FDDI rad mreže nadziru svi njeni čvorovi, i svaki od njih intervenira (kao monitor) onda kad utvrdi da to treba učiniti. Specifičan je i način korištenja značke. Ukratko, značka se mora kretati prstenom određenom brzinom; čvor do kojeg je stigla značka, smije je zadržati i slati svoje podatke ako značka "ima vremena", to jest ako je stigla na čvor ranije od onog trenutka kad taj čvor mora proslijediti značku dalje; u suprotnom, čvor treba smjesta proslijediti značku dalje (bez prenošenja podataka). Dakle, ako su čvorovi uzvodno od čvora A puno prenosili podatke (zadržavali značku), onda kad značka stigne do čvora A, taj čvor će vjerojatno morati odmah proslijediti značku dalje, bez obzira na to da li ima potrebe po slanju podataka, jer značka ne smije kasniti. Takav način rada može dovoditi u nepovoljan položaj neke domaćine, tako da su naknadno uvedena neka dodatna rješenja, sa kojima se ovdje ne trebamo baviti.


Mreža RPR

Prstenasta mreža koja se naziva Resilient Packet Ring (RPR) razvijena je nakon mreža koje smo opisali iznad; dakle, nakon mreža Token Ring (IEEE Standard 802.5) i FDDI. Naziv te mreže možemo prevesti sa elastičan paketni prsten, ali kao i obično, sam naziv ne kazuje mnogo. IEEE je uvrstio mrežu RPR u svoje standarde i dodijelio joj oznaku Standard 802.17. Elastičnost (resilience) mreže je ovdje mišljena u figurativnom smislu; njome se htjelo istaknuti odliku te mreže da se brzo oporavlja nakon pada nekog od čvorova u prstenu, ili prekida veze.
Kao i mreža FDDI, mreža RPR povezuje čvorove sa dva nezavisna prstena koji prenose podatke u međusobno suprotnim smjerovima. Za razliku od mreže FDDI, mreža RPR koristi oba prstena u normalnom radu.
Prstenasta mreža RPR ima niz drugih specifičnosti. Kod te mreže, okvire sa prstena skida primatelj, umjesto da ih prosljeđuje prstenom prema njihovom pošiljatelju (da ih taj čvor skine sa prstena), kako to rade prethodne dvije mreže. Na taj način smanjuje se ukupna količina prometa u prstenu, ali se ujedno gubi povratna informacija (od primatelja prema pošiljatelju) o tome da li je primatelj primio okvir (u ispravnom stanju).
Prstenasta mreža RPR ne koristi značku. Svaki čvor smije slati svoje okvire onda kad nije zauzet prosljeđivanjem tuđih okvira, ili primanjem okvira koji su adresirani na njega. Takvo rješenje izgleda jednostavno i dovitljivo, ali ono dovodi do raznih problema. Na primjer, kada je prsten prazan, može se dogoditi da dva domaćina (koji su međusobno udaljeni) počnu istodobno slati svoje okvire. To smiju učiniti jer nijedan od njih nije (tog trenutka) zauzet prosljeđivanjem tuđih okvira. Slika 3.26 prikazuje jednu takvu situaciju; pritom je uzeto da domaćin A šalje svoje okvire domaćinu D, a domaćin C šalje domaćinu B. Oba prijenosa odvijaju se vanjskim prstenom, u smjeru strelice. Prebacivanjem jednog od tih prijenosa na drugi prsten moglo bi se riješiti slučaj kada dva domaćina počnu slati okvire istodobno. Ali tu opciju ovdje ne razmatramo, jer općenito, kad veći broj domaćina počne slati okvire istodobno, onda dvostruki prsten ne rješava problem o kojem ovdje govorimo.




Slika 3.26 Prstenasta mreža RPR

Okviri od A stižu na C (koji upravo šalje svoje okvire za B), a okviri od C stižu na A (koji upravo šalje svoje okvire za D). Što bi u toj situaciji trebali učiniti domaćini A i C? Opisani "sukob poslova" pokušava se riješiti tako, da A pohranjuje okvire koje prima od C, i nastavlja sa slanjem svojih okvira (čvoru D). C isto tako pohranjuje okvire koji stižu od A, i nastavlja sa slanjem svojih okvira (čvoru B). U načelu, na taj način može se riješit problem: kad A završi sa slanjem svojih okvira, proslijediti će pohranjene okvire od C; na isti način postupiti će i domaćin C. Međutim, takav način rada može dovesti do raznih komplikacija. Uočimo da iako domaćini A i C nastavljaju sa slanjem svojih okvira, ti okviri ne stižu do svojih odredišta, već bivaju zadržani na putu, i to na neodređeno vrijeme. Takvo zadržavanje može bitno poremetiti proces komunikacije između čvorova A i D, odnosno između C i B. Nepovoljan učinak takvih zadržavanja zavisi od vrste komunikacije: da li je komunikacija osjetljiva na velika kašnjenja (zadržavanja) i na neravnomjeran dotok sadržaja (podrhtavanje, jittering), ili nije osjetljiva.
U mreži RPR pokušalo se riješiti opisani problem sukoba poslova (koji dovodi do velikih zadržavanja i do podrhtavanja) na način koji izgleda prilično složenim. U osnovi, sadržaji koji se prenose mrežom dijele se u više klasa koje imaju različite prioritete u procesu prijenosa, na čemu se onda zasniva protokol postupanja čvorova u raznim situacijama. Ovdje smo pokušali ukazati na problem rada prstenaste mreže bez značke; sa pojedinostima (mogućih) rješenja toga problema ne možemo se ovdje baviti.

Elastičnost (resilience) mreže RPR iz njena naziva sastoji se u načinu kako mreža reagira na prekid prstena. U ovoj mreži koriste se dva načina reagiranja na prekid. Prvi način jednak je onom kod mreže FDDI; dakle, kod ispada jednog domaćina i kod prekida veze (prstena), uspostavlja se novi prsten na način kako je to objašnjeno iznad, za mrežu FDDI.
Kod drugog načina rada, kad neki domaćin utvrdi prekid prstena na susjednom čvoru ili na vezi do njega, onda obavještava o tome sve čvorove u mreži, koristeći za to druge veze. Ti čvorovi onda preusmjeravaju svoje komunikacije na način da izbjegnu mjesto prekida prstena. Podsjetimo da u mreži RPR, okvire sa prstena skida primatelj, tako da okviri ne moraju proći cijelim prstenom: dovoljno je da stižu do primatelja; prekid prstena na potencijalnom putu natrag (od primatelja do pošiljatelja) ovdje ne ometa promet od pošiljatelja do primatelja.
Ukratko, kod mreže RPR postoje dva nezavisna prstena, postoji mogućnost da bude prekinut jedan od njih ili oba, i postoje dva načina kako mreža može reagirati na neku nastalu situaciju. Sve to zajedno daje mnogo mogućih načina na koje mreža može pokušati uspostaviti rad kad se dogodi neki pad domaćina ili prekid veze. Na primjer, čvor A sa slike 3.26 šalje okvire čvoru D vanjskim prstenom koji vrši prijenos u smjeru strelice. U slučaju prekida toga prstena kod čvora B, čvor A može preći na drugi (unutarnji) prsten, koji prenosi okvire u suprotnom smjeru, i tako nastaviti slanje okvira čvoru D, bez obzira na prekid vanjskog prstena kod čvora B. U danom primjeru, niti prekid obaju prstena kod B neće onemogućiti komunikaciju između čvorova A i D. Čvor C može isto tako naći neki način slanja okvira do čvora C, bilo u jednom smjeru, bilo u drugom, zavisno od toga na kojoj je strani (od C) i u kojem prstenu nastao prekid.

Zaključimo ovaj odjeljak sljedećim načelnim opaskama. Prstenaste mreže nadmeću se (na tržištu) sa mrežama tipa Ethernet; obično se kaže da u tom nadmetanju nisu naročito uspješne, ali nadmetanje se nastavlja. Smatra se da bi prstenasta mreža tipa RPR mogla biti uspješna kao MAN (gradska) mreža. Kod te mreže postoji mogućnost da se do istog čvora stigne u dva smjera (sa dvije strane); to svojstvo prstenaste mreže RPR je važno, zato što tu mrežu čini relativno otpornom na padove čvorova i prekide veza. Ali postoje i tvrdnje da će "metro Ethernet" prevagnuti na razini MAN mreža, kao što je 10 Mbps Ethernet prevagnuo nad prstenastim mrežama (IBM Token Ring i Standard 802.5) na razini lokalnih mreža. To pitanje ostaviti ćemo otvorenim, jer ovdje se ne bavimo predviđanjima o komercijalnim perspektivama pojedinih vrsta mreža, nego iznosimo temeljna načela njihova rada.

+



















URS-4


4. Mrežne aplikacije




* Aplikacijsku razinu mrežnog sustava tvore oni elementi mrežnog sustava pomoću kojih korisnik izravno izvodi operacije "na mreži" (ili pomoću računalne mreže). Među takve elemente spadaju, naprimjer, sustav za rad sa računalnom poštom, sustav za rad sa web stranicama, i slični.
U prethodnim poglavljima prikazali smo strukturu računalne mreže i opisali njene temeljne elemente, uređene u nekoliko funkcionalnih cjelina, koje smo nazvali slojevima mrežnog sustava. U tom prikazu kretali smo se od najnižeg (fizičkog) sloja mrežnog sustava, "prema gore"; sa ovim poglavljem stigli smo do najviše razine mrežnog sustava: do aplikacijskog sloja (ili sloja aplikacija).
Općenito govoreći, temeljna funkcija ranije opisanih slojeva mreže jest da omoguće uspješan i pouzdan rad elemenata aplikacijske razine; dakle, da izvode one funkcije/operacije koje su neophodne za izvođenje onih operacija koje korisnik pokreće i izvršava pomoću elemenata aplikacijske razine.

* Iako elementi aplikacijske razine izgledaju poput drugih (ne-mrežnih) aplikacija, ti elementi ipak jesu dio mrežnog sustava, jer elementi aplikacijske rezine koji rade na jednom sustavu komuniciraju sa istovrsnim elementima na drugim sustavima koji su vezani na mrežu. Takvu komunikaciju uspostavljaju, naprimjer, sustav za rad sa računalnom poštom, sustav za rad sa web stranicama, i drugi.
Međutim, programe aplikacijske razine mreže može se istodobno promatrati i kao obične aplikacije jer ti programi često izravno rade sa sustavom za upravljanje datotekama na lokalnom stroju, vode komunikaciju sa korisnikom i prikazuju rezultate izvršenja raznih operacija koje korisnik pokreće pomoću njih. ... Spomenimo da na aplikacijsku razinu spadaju razni opslužitelji (serveri) kao što je web-server, koji rade na domaćinu, i klijenti kao što je web-browser (preglednik) koji radi na stroju korisnika.

* U ovom poglavlju iznosimo kraće prikaze nekih tipičnih mrežnih elemenata aplikacijske razine; pritom, se ti prikazi odnose prvenstveno na protokole na temelju kojih su razvijene razne mrežne aplikacije. Podsjetimo, da je protokol detaljan opis temeljnih strukturnih sobina (struktura podataka) i funkcija nekog mrežnog entiteta; pritom, protokol općenito ne pretpisuje način na koji te osobine i funkcije trebaju biti implementirane (to jest, programski realizirane).
Naprimjer, postoji jedan protokol (nazvan SMPT - Simple Mail Transfer Protocol) koji definira temeljne osobine i funkcije sustava za rad sa računalnom poštom; s druge strane, postoji niz softverskih proizvoda koji omogućavaju pisanje, slanje, čitanje, i niz drugih operacija sa računalnom poštom; međutim, svi ti softverski proizvodi moraju implementirati temeljne osobine i funkcije koje su zadane protokolom koji definira sustav za rad sa računalnom poštom; dakle, jedan protokol (ili dio protokola) može biti realiziran na mnogo načina.
Dakle, prikazi mrežnih elemenata aplikativne rezine koji slijede dani su uglavnom na razini protokola, uz osvrt na pojedine softverske proizvode aplikacijske razine koji te protokole realiziraju.


1. Sustav imena domena (Domain Name System - DNS)

* Do sada smo domaćine koji su uključeni u mrežu Internet, označavali sa njihovom jedinstvenom numeričkom IP adresom u sastavljenoj mreži Internet. Jedan primjer takve mrežne IP adrese je 192.12.69.5; dakle, asdresa se satoji od četiri cijela broja (u rasponu od 0 do 255), koji su međusobno odvojeni točkama.
Numeričke IP adrese su fiksne strukture i dužine, što usmjerivačima znatno olakšava rad sa adresama (odnosno, usmjeravanje IP paketa). Međutim, takav način identificiranja domaćina (čvorova) u mreži, ne bi bio ugodan za korisnika jer takve aderse se teško pamte, i ne ukazuju na geografski položaj domaćina. Zato se čvorovima mreže (domaćinima, opslužiteljima, sučeljima) dodjeljuju i mnemonička imena. Naprimjer, domaćinu koji ima jedinstvenu numeričku IP adresu 192.12.69.5 dodjeljeno je mnemoničko ime cs.princeton.edu koje se zacijelo lakše pamti, i više kazuje nego gornja četiri broja.
Međutim, usmjerivači i dalje rade sa jedinstvenim numeričkim IP adresama čvorova mreže; takvo dvojno adresiranje zasniva se na uslugama sustava koji je nazvan sustav imena domena (Domain Name System - DNS); ukratko, za dano mnemoničko ime mrežnog entiteta, DNS nalazi njegovu numeričku mrežnu (IP) adresu.

* Može se reći da DNS nije tipičan element aplikacijske razine jer korisnik u pravilu ne komunicira izravno sa tim elementom, niti svijesno (namjerno) traži njegove usluge. DNS pruža prvenstveno usluge drugim elementima aplikacijske razine; naime, postojanje DNSa omogućava drugim aplikacijama da u komunikaciji sa korisnicima rade sa mnemoničkim adresama, za koje im DNS nalazi odgovarajuće numeričke IP adrese čvorova u mreži (na temelju kojih onda te aplikacije uspostavljaju komunikaciju sa aplikacijama na drugim čvorovima mreže). No, samim time DNS pruža usluge i korisnicima jer im omogućava da rade sa mnemoničkim adresama, što taj sustav onda svrstava na aplikacijsku razinu.
Uzgred, "pružanje usluga korisnicima" nije naročito precizan kriterij prema kojem bi se neki mrežni element trebalo svrstati na aplikacijsku razinu mrežnog sustava: Načelno govoreći, element spada na aplikacijsku razinu ako njegove funkcije nisu izravno vezane za ostvarivanje mogućnosti prenosa podataka, već se one naslanjaju na tu mogućnost, i na temelju nje realiziraju neke usluge koje su izravno vezane za neke operacije koje korisnik izvodi na mreži. Konkretno, računalna mreža Internet mogla bi jednako uspješno vršiti prenos podataka i bez DNSa, ali bi tada korisnici morali raditi sa IP adresama čvorova umjesto sa mnemoničkim adresama. S druge strane, mreža ne bi radila jednako uspješno bez, naprimjer, TCPa; zato TCP ne spada na aplikacijsku razinu (već na transportnu), dok se DNS svrstava na aplikacijsku razinu.

* Mnemonička imena domaćina/čvorova mreže razlikuju se od pripadnih numeričkih IP adresa po nekoliko osnovnih osobina.
- Mnemonička imena su obično informativna za korisnika; takva imena se obično sastoje od naziva sveučilišta, fakulteta, tvrtki, gradova, i sličnog, što olakšava njihovo pamćenje. S druge strane, ta vrsta informacija koje korisnik izravno dobiva iz samog mnemoničkog imena čvora, beskorisna je za usmjerivače jer ne postoji neki jednostavan i efikasan način na koji bi usmjerivač mogao upotrebiti tu informaciju (koju čovjek "izravno vidi" iz imena).
- Mnemonička imena su različitih dužina, što otežava njihovo procesiranje na usmjerivačima; nasuprot tome, brojčane IP adrese su jednake strukture i dužine, što znatno pojednostavljuje njihovo procesiranje na usmjerivačima.
- Numerički zapisi IP adresa se teže pamte, i ne pružaju eksplicitnu informaciju o fizičkoj lokaciji pojedinog čvora. Numeričke IP adrese se obično dodjeljuju na način koji pogoduje njihovu procesiranju na usmjerivačima; naprimjer, iz numeričke IP adrese u paketu, usmjerivač vidi da li se odredišni čvor nalazi daleko ili blizu, i kojom izlaznom linijom treba proslijediti taj paket.
Ukratko, za korisnika su pogodna mnemonička imena, dok su za stojeve mnogo pogodnija numerička imena jedinstvene strukture i dužine; zato je dobro da postoji i jedan i drugi način adresiranja; a tada treba postojati i sustav kao što je DNS, koji vrši pretvorbu adresa iz jednog oblika u drugi.

* U počecima Interneta, kada se mreža sastojala od svega nekoliko stotina domaćina, o "preslikavanju" mnemoničkih imena na numeričke IP adrese vodio je računa jedan "središnji autoritet" nazvan Network Information Center (NIC). Pojednostavljeno govoreći, NIC je održavao jednu datoteku koja je sadržavala po jedan par oblika
< mnemoničko-ime-čvora, numerička-IP-adresa-čvora>
za svaki čvor mreže. Ako je netko želio uključiti novi čvor u mrežu, onda je administrator tog (novog) čvora/domaćina trebao uputiti NICu zahtjev da u spomenutu datoteku uvrsti odgovarajući par za tog novog domaćina.
Uvrštavanje novog para u datoteku parova (u NICu) izvodilo se "ručno", odnosno pomoću nekog standardnog sustava za rad sa datotekama. Nakon svake izmjene datoteke parova (ili svakih nekoliko dana) NIC je slao novi sadržaj te datoteke parova svim mrežnim administratorima, koji su onda instalirali tu novu/ažutiranu datoteku na domaćine/čvorove čijim su radom upravljali. Na temelju te datoteke parova, aplikacijski programi na svakom čvoru mogli su izravno pretvarati mnemoničke adrese u numeričke, i obrnuto.
Opisani način rada ne možemo još nazvati mrežnim sustavom aplikacijske razine, kako to nazivamo DNS (koji ga je nadomjestio). Naime, iako se datoteku parova periodički prenosilo mrežom (od NICa prema svakom domaćinu), sam proces pretvaranja mnemoničkih adresa u numeričke (i obrnuto) nije se oslanjalo na usluge mreže, već se u cijelosti izvodio u čvoru onog domaćina kojem je takva pretvorba u nekom trenutku zatrebala.

* Porast broja čvorova u mreži doveo je da toga da iznad opisani način distribuiranja informacija o parovima ime/adresa postane neprikladan. Sustav DNS, koji je razvijen sredinom 80ih godina, zamijenio je jednu datoteku parova sa više datoteka koje su smještene na različitim čvorovima mreže; ti čvorovi nazivaju se DNS opslužiteljima, i zajednički omogućavaju nalaženje para ime/adresa na mreži. (Dakle, za razliku od svoje preteče, DNS jest mrežna aplikacija.)
Slika 1 ilustrira na koji način druge aplikacije koriste usluge DNS aplikacije.





Slika 1

* Dakle, korisnik piše poruku računalne pošte, koristeći pritom neki softverski sistem aplikacijske razine za rad sa računalnom poštom. Korisnik pritom radi sa mnemoničkom adresom odredišta na koje šalje poruku, tj. sa cs.princeton.edu (korak 1).
Da bi mogao odaslati poruku, sustav za rad sa računalnom poštom (kojeg ćemo u nastavku ovog poglavlja detaljnije opisati), treba znati IP adresu primatelja (točnije, domaćina na koji treba odaslati tu poruku). Zato sustav za rad sa računalnom poštom šalje mnemoničku adresu domaćina-primatelja sustavu DNS (korak 2), koji mu na to dostavlja (kao odgovor) IP adresu toga domaćina (korak3).
Sustav za rad sa računalnom poštom zatim predaje poruku sa IP adresom primatelja transportnom sloju na čije se usluge naslanja (korak 4); transportni sloj predaje poruku dalje, to jest IP sloju na koji se naslanja (korak 5). Koristeći sustav usmjerivača i veza, IP sloj zatim prenosi poruku (u IP paketima) na odredišnog domaćina, kako je to opisano u ranijim poglavljima.

* Prostor imena (name space) od kojih su sastavljene mnemoničke adrese čvorova, uređen je hijerarhijski, kako to ilustrira slika 2. Pritom, na svakoj razini hijerarhije imena, postoje osobe (ili institucije) koje su ovlaštene dodjeljivati imena na toj razini, a time i jednog dijela mnemoničke adrese čvorova.


Slika 2

* Kako to pokazuje slika 9.2, prostor imena u Internetu ima strukturu stabla. Sve čvorove toga stabla, osim listova, nazivamo domenama (domains); listovi su imena domaćina unutar grane kojoj pripadaju, i koja seže od lista pa do (neimenovanog) korijena stabla. Naprimjer, ux01 je ime domaćina koji se nalazi u domeni cs, koja se nalazi u domeni princeton, koja se nalazi u domeni edu. Očito, puno (jedinstveno) mnemoničko ime toga tomaćina glasi ux01.cs.princeton.edu.
Ista imena domaćina (tj. listova) i imena domena mogu se javljati (tj. ponavljati) u različitim domenama; naprimjer, domaćin ux01 može postojati i u domeni mit; isto tako, domena princeton može postojati i u domeni com; ali stablo imena/domena ne smije imati dvije potpuno jednake grane jer bi time bila izgubljena jedinstvenost mnemoničke adrese domaćina.

* Na prvoj razini ispod (neimenovanog) korijena stabla sa slike 2, definirana je po jedna domena za svaku državu (npr. uk, fr, ..., hr, ...), te još šest domena (edu, com, gov, mil, org, net) koje su "zasnovane" (based, P&D, str. 626) u USA. Tih šest domana, koje se odnose na specifična područja djelatnosti (npr. edu = education, itd.), su ujedno jedine domene na toj razini koje se ne odnose eksplicitno na neku državu. Ali se implicitno odnose na USA, koje su na taj način dobile šest domena umjesto jednu.
Unutar svake domene prve razine, definirano je niz domena druge razine, i tako sve do imena domaćina, koja tvore listove stabla imena/domena sa slike 2.

* Hijerarhijski prostor imena (bilo bi bolje reći imenovanja) podjeljen je u zone (zones). Kako to ilustrira slika 3, struktura zona uglavnom prati strukturu prostora imena, ali to ne mora činiti u potpunosti.


Slika 3

* Za svaku zonu postoji jedan "administrativni entitet" koji upravlja onim dijelom hijerahije imena koji spada u tu zonu. Prvom ("vršnom") razinom hijerarhije imena (koja tvori jednu zonu) upravlja organizacija Internet Corporation for Assigned Names and Numbers (ICANN); to znači, da jedino ICANN može uvesti novo ime (ili mijenjati postojeće) na toj (najvišoj) razini.
Na razini ispod prve, nalazimo mnoštvo različitih zona; naprimjer, zonu princeton koja obuhvaća sveučilište Princeton. Odsjeci cs i ee tvore podzone od zone princeton, dok odsjek physics ne tvori zasebnu podzonu, već se njime izravno upravlja na razini zone princeton.

* Podjela prostora imena na zone bitna je iz dva osnovna razloga.
- Unutar zone kojom upravlja, administrator mreže može uvoditi nove podzone i nova imena domaćina (ako ima raspoloživih IP adresa).
- Svaka zona ima svog lokalnog DNS opslužitelja. DNS je čvor mreže, ima svoju IP adresu, i može mu se pristupiti sa bilo kojeg čvora mreže. Ukratko rečeno, DNS opslužitelj sadrži podatke koji omogućavaju da se za danu mnemoničku adresu bilo kojeg od čvorova iz njegove zone, sazna IP adresa toga čvora.

* Dakle, DNS je sustav koji se sastoji od mnoštva DNS opslužitelja, koji su uređeni hijerarhijski; pritom, svaki od DNS opslužitelja sadrži podatke koji se odnose na čvorove iz njegove zone.
Temeljna načela funkcioniranja hijerarhije DNS opslužitelja - to jest, način rada DNS sustava kao cjeline - pojasniti ćemo na primjeru kojeg ilustrira slika 5.



Slika 5

* Uzmimo da neka mrežna aplikacija koja se izvodi na nekom proizvoljnom domaćinu (koji je ovdje nazvan Client) želi pristupiti čvoru/domaćinu čija mnemonička adresa glasi cicada.cs.princeton.edu. Ta mrežna aplikacija može biti sustav za rad sa računalnom poštom, sustav za rad sa web stranicama (web pretraživač), ili slično. Da bi mogla pristupiti (tj. uputiti poruku) čvoru dane mnemoničke adrese, ta aplikacija treba najprije saznati njegovu IP adresu.
Sa tim ciljem, mrežna aplikacija sa domćina Client šalje mnemoničku adresu traženog čvora lokalnom DNS opslužitelju zone u koju spada domaćin Client (korak 1, na slici 5). Ako se traženi domaćin nalazi u istoj zoni u kojoj se nalazi domaćin Client, onda lokalni DNS te zone zna njegovu IP adresu, ili pak zna na koju od svojih podzona (tj. na njenog DNS opslužitelja) treba uputiti tražitelja.
Ali uzmimo da se traženi domaćin cicada.cs.princeton.edu ne nalazi u zoni u kojoj se nalazi domaćin Client koji traži njegovu IP adresu. U tom slučaju, lokalni DNS opslužitelj prosljeđuje primljeni zahtjev DNS opslužitelju odgovarajuće zone najviše razine; ovdje je to DNS opslužitelj zone edu, kako to kazuje zadnje (najdesnije) ime domene iz mnemoničke adrese traženog domaćina (korak 2, na slici 5).
DNS opslužitelj zone edu ne sadrži traženi podatak, tako da ne može izravno odgovoriti na postavljeni upit; međutim, na temelju mnemoničke adrese cicada.cs.princeton.edu koja mu je dostavljena, taj DNS opslužitelj zna da se traženi domaćin nalazi u podzoni princeton od zone edu; zato pošiljatelju upita šalje ime (princeton.edu) i IP adresu 128.196.128.233 od DNS opslužitelja svoje podzone princeton (korak 3).
S obzirom da time još nije dobio odgovor na upit koji mu je postavio domaćin Client, lokalni DNS opslužitelj sada šalje isti upit DNS opslužitelju zone princeton.edu (korak 4). DNS opslužitelj te zone isto tako ne sadrži traženi podataka; ali na temelju mnemoničke adrese cicada.cs.princeton.edu koja mu je poslana zaključuje da bi odgovor na to pitanje mogao znati DNS poslužitelj podzone cs od zone princeton.edu; zato tražitelju vraća ime (cs.princeton.edu) i IP adresu 192.12.69.5 DNS opslužitelja podzone cs (korak 5).
Lokalni DNS opslužitelj (koji još nije našao traženu IP adresu) upućuje sada isti upit DNS opslužitelju zone cs (korak 6); s obzirom da se domaćin čija mnemonička adresa glasi cicada.cs.princeton.edu nalazi u zoni cs, DNS opslužitelj te zone sadrži u svojoj bazi traženi par oblika , to jest, par , te tražitelju šalje traženu IP adresu (korak 7).
Konačno, lokalni DNS opslužitelj šalje dobivenu IP adresu onoj aplikaciji na domaćinu Client, koja je od njega tražila IP adresu za danu mnemoničku adresu cicada.cs.princeton.edu (korak 8).

* U gornjem opisu izostavljene su neke pojedinosti o tome u kojem točno obliku DNS opslužitelji pohranjuju svoje podatke; zapisi zapravo nisu "parovi" oblika nego su "petorke"; pritom, dodatni parametri omogućavaju da se razlikuje da li je neki zapis IP adresa traženog domaćina, ili je to IP adresa DNS opslužitelja podzone, i slično. Ali u te pojedinosti nije ovdje neophodno zalaziti da bi se prikazalo temeljna načela organizacije sustava DNS opslužitelja, i načela rada toga sustava.
Ukratko, DNS sustav sastoji se od mnogo DNS opslužitelja, i radi na temelju podataka koji su distribuirani širom tog mnoštva DNS opslužitelja, pri čemu svaki opslužitelj "zna sve što je potrebno znati" o domaćinima iz one zone koju opslužuje. Povrh toga, zna i koji domaćini ne spadaju u njegovu zonu, te kamo treba proslijediti upit kada traženi domaćin nije u njegovoj zoni.

* O DNS sustavu valja iznijeti i slijedeće.
Prvo, da bi mogao početi tražiti IP adresu nekog domaćina izvan svoje zone, lokalni DNS opslužitelj mora poznavati IP adresu DNS opslužitelja najviše razine, kojem prvom upućuje upit. IP adrese DNS opslužitelja nižih razina (tj. podzona) dobiva kao odgovore od DNS opslužitelja koji su im nadređeni (i koji ga upućuju na njih); ali IP adrese DNS opslužitelja najviših razina (dakle, DNS opslužitelja zona kao što su uk, fr, hr, ... edu, ...) ne može saznati na takav način, već to mora učiniti na neki drugi način.
Taj problem može se riješiti na taj način, da na svakom DNS opslužitelju budu eksplicitno pohranjene IP adrese DNS opslužitelja svake od zona najviše razine. S obzirom da postoji malo zona najviše razine (jedna za svaku državu, plus šest za USA), te s obzirom na ukupan broj čvorova u mreži Internet, radi se o relativno vrlo maloj količini podataka, koji su povrh toga, vrlo rijetko mijenjaju. ... P&D ne kažu na koji se način ti podaci distribuiraju svim DNS opslužiteljima (i prema potrebi, kasnije ažuriraju); ali to se zacijelo može učiniti sa jednog mjesta, i to iz ranije spomenutog središta ICANN (koje upravlja vršnim domenama), pomoću same mreže; naprimjer, jednom multicast porukom koja je upućena svim DNS opslužiteljima u mreži Internet.

* Drugo, iako lokalni DNS opslužitelj ne može sadržavati parove za sve čvorove mreže Internet, DNS opslužitelji obično pohranjuju takve parove, nakon što su ih našli (na zahtjev nekog od domaćina iz svoje zone) uz pomoć sustava DNS opslužitelja; dakle, svaki lokalni DNS opslužitelj pohranjuje IP adrese svih onih čvorova sa kojima je stupio u komunikaciju neki od čvorova iz njegove zone. Na taj način, kada neki od domaćina iz njegove zone kasnije zatraži IP adresu (za neko mnemoničko ime) koju je DNS opslužitelj bio našao kao odgovor na neki raniji zahtjev, onda DNS opslužitelj može naći odgovor na takav (ponovljeni) upit u vlastitoj memoriji, bez da ponovno koristi usluge sustava DNS opslužitelja (i troši vrijeme i prenosne kapacitete mreže).
Količina tako pohranjenih IP adresa zavisiti će od raspoloživog memorisjkog prostora lokalnog DNS opslužitelja. Nadalje, takvi zapisi čuvaju se neko ograničeno vrijeme; nakon toga, lokalni DNS opslužitelj ponovno traži odgovor na zadani upit uz pomoć sustava hijerarhijskog DNS opslužitelja, krečući ptitom od DNS opslužitelja zone najviše razine, kako je to iznad opisano.

* Podsjetimo na kraju, da u mreži kao što je Internet, postoje tri razine adresiranja čvorova.
Prvo, na aplikativnoj razini korisnici rade mnemoničkim adresama čvorova.
Drugo, mrežni programi aplikacijske razine koriste usluge sustava DNS opslužitelja (koji je isto tako sustav aplikacijske razine), koji zadane mnemoničke adrese "prevodi" na pripadne IP adrese. Te IP adrese upisuju se u zaglavlja IP paketa koji se "upućuju u mrežu". Na temelju svoje IP adrese, paket se proslijeđuje kroz mrežu usmjerivača, prema svom konačnom odredištu.
Međutim, za sam fizički prenos sadržaja IP paketa od jednog čvora/usmjerivača do drugog - to jest, za izvršenje "jednog koraka" na putu IP paketa prema njegovu odredištu - sadržaj IP paketa treba biti smješten u okvire (frames) onog fizičkog prenosnog sustava kojim se IP paket (u danom trenutku) kreće. Pritom, ti okviri sadrže (u svom zaglavlju) fizičke adrese strojeva između kojih se kreću (odnosno, adrese mrežnih adaptera preko kojih su ti strojevi vezani na mrežu); te se adrese sastoje od niza bitova, obično niza od 48 bitova. Drugim riječima, IP adresa određuje kamo treba usmjerivač proslijediti IP paket, to jest, na koji slijedeći čvor mreže; ali da bi se izvršilo fizički prenos tog IP paketa na neki čvor, njegov sadržaj treba se uvrstiti u okvire nekog konkretnog fizičkog sustava za prenos podataka; struktura adresa tih okvira zavisi od konkretnog fizičkog sustava koji tvori dani segment mreže, odnosno dio puta kojim se IP paket upravo kreće.


2. Osnovne mrežne aplikacije

* Sustav DNS je od temeljnog značaja za rad Interneta; međutim, taj sustav obično pruža usluge drugim mrežnim aplikacijama, a ne izravno korisnicima. U ovom odjeljku govorimo o nekima od standardnih mrežnih aplikacija koje pružaju usluge izravno korisniku (koji izvodi operacije sa njima). Dvije najpoznatije (i najkorištenije) među takvim aplikacijama su aplikacija za rad sa World Wide Webom (kraće, sa web stranicama), i aplikacija za rad sa računalnom poštom. U nastavku ćemo opisati i jednu aplikaciju koja se odnosi na upravljanje radom računalne mreže; ta aplikacija nije namijenjena običnim korisnicima, već pruža usluge prvenstveno administratorima računalne mreže.

* Sve tri iznad navedene aplikacije rade prema temeljnom modelu klijent/opslužitelj, i komuniciraju prema načelu zahtjev/odgovor; dakle, proces koji ima ulogu klijenta šalje zahtjev procesu koji ima ulogu opslužitelja; opslužitelj izvršava taj zahtjev (ako može), i šalje odgovor/rezultat klijentu.

* Ovdje valja podsjetiti na razliku između protokola (nekog elementa aplikacijske razine) i programa (koji realizira taj protokol, ili neki njegov dio). Kao i kod ostalih razina mrežnog sustava, elementi aplikacijske razine definirani su sa odgovarajućim protokolima; svaki protokol daje precizan opis osobina i funkcija jednog mrežnog elementa.
S druge strane, svaki mrežni element koji je definiran pomoću takvog protokola, može biti programski realiziran na više načina; dakle, može postojati (i redovito postoji) više različitih programa koji realiziraju isti mrežni element; međutim, svaki od tih programa treba slijediti odredbe danog protokola, odnosno treba realizirati osobine i funkcije koje su tim protokolom zadane. Naprimjer, HTTP (HyperText Transport Protocol) je protokol aplikacijske razine mrežnog sustava, koji definira način rada sa web stranicama (tj. sa HTML datotekama); dakle, taj protokol definira i postupak prenosa web stranica sa nekog udaljenog opslužitelja na stroj korisnika (koji želi vidjeti tu web stranicu). Postoje razni programi aplikativne razine - koje nazivamo web pretraživačima (browsers) - kao što su Netscape, Internet Explorer, i drugi, koji izvode operacije nalaženja tražene web stranice (za danu URL adresu), njena prenošenja na stroj korisnika, i njena prikaza na stroju korisnika. Međutim, da bi bila moguća uspješna komunikacija takvih programa (u ulozi klijenta) sa (udaljenim) programima koji imaju ulogu web opslužitelja, svi ti programi trebaju biti oblikovani u skladu sa istim temeljnim zahtjevima koji su definirani HTTP protokolom.

* Govoreći o osnovnim mrežnim aplikacijama, u nastavku iznosimo prvenstveno opise njihovih protokola; pritom, govorimo o slijedeća tri protokola:
1. SMTP (Simple Mail Transfer Protocol) - definira rad sa porukama računalne pošte.
2. HTTP (HyperText Transport Protocol) - definira rad sa web stranicama (HTML datotekama) a time i komunikaciju između web pretraživača (kao klijenata) i web opslužitelja (kao davatelja usluga).
3. SNMP (Simple Network Management Protocol) - definira način ispitivanja (i ograničeng mijenjanja) stanja udaljenih čvorova računalne mreže.

* Sva ta tri protokola aplikacijske razine definiraju komunikaciju između (udaljenih) mrežnih elemenata prema osnovnom modelu klijent/opslužitelj, odnosno komuniciraju prema načelu zahtjev/odgovor. Pritom je ta komunikacija realizirana korištenjem usluga transportnog sloja računalne mreže. Drugim riječima, ti protokoli definiraju postupke razmjene poruka između aplikacija koristeći pritom funkcije (operacije) TCP ili UDP protokola transportne razine mrežnog sustava.

* P&D, str 634, kažu da riječ "simple" u nazivima navedenih protokola dolazi otuda što svaki od tih protokola definira rad sa jednim specifičnim (i relativno ograničenim) skupom zahtjeva, odnosno operacija i stanja procesa komuniciranja; ta specifičnost/ograničenost onda pojednostavljuje i sam protokol, koji treba definirati sve moguće operacije i sva stanja koja mogu nastupiti u procesu komunikacije. Dakle, zbog toga što opisuju neke specifične (ograničene) postupke, ti protokoli neka bi bili relativno "jednostavni". Međutim, valja istaći da je pojam "jednostavnog" ovdje relativan; naime, detaljan/potpun opis bilo kojeg protokola obično ima po nekoliko stotina stranica, a kod manje "jednostavnih" protokola, doseže i tisuću stranica. Naravno, u kratkim prikazima protokola koji slijede, ne zalazimo u sve pojedinosti, već nastojimo iznijedi temeljne osobine i funkcije pojedinog protokola.

* Svaki od navedena tri protokola popraćen je jednim "pratećim protokolom" (P&D, str. 634) koji definira format podataka (tj. moguće oblike zapisa podataka) čiji proces prenosa definira taj protokol.
Takvim zasebnim/odvojenim definiranjem oblika sadržaja koji se prenose, od procesa njihova prenosa dodatno pojednostavljuje osnovne protokole, koji onda definiraju samo procese prenosa.
Protokol SMPT koji definira procese rada (moguće operacije) sa porukama računalne pošte, popraćen je (komplementarnim) protokolom RFC 822 (koji nema "tekstualnog imena") koji definira format (oblik i strukturu) poruka računalne pošte, te protokolom MIME (Multipurpose Internet Mail Extention) koji proširuje ("nadograđuje") protokola RFC 822.
Protokol HTTP koji definira procese rada (moguće operacije) sa web stranicama, popraćen je protokolom (ili definicijom jezika) HTML (HyperText Markup Language) koji definira format (oblik i strukturu) web stranica - to jest, definira način oblikovanja HTML datoteka.
Protokol SNMP koji definira procese (moguće operacije) ispitivanja stanja udaljenih čvorova mreže, popraćen je protokolom MIB (Management Information Base) koji definira format (oblik i strukturu) poruka koje čvorovi mogu razmijenjivati u ukviru komunikacije koju definira SNMP protokol. MIB definira varijable (to jest, parametre koji pokazuju stanja udaljenih čvorova) čije se vrijednosti može ispitivati (i eventualno mijenjati) uz pomoću nekog programa koji implementira SNMP protokol.


2.1. Računalna pošta

* Kako je već naznačeno, ovdje valja razlikovati tri osnovne stvari, i to:
1. Program pomoću kojeg se "radi sa računalnom poštom"; dakle, program koji korisniku omogućava čitanje, pisanje, brisanje, itd. poruka računalne pošte. Takvih programa (ili, softverskih sustava) ima mnogo; takvi su naprimjer, Outlook Express, Eudora, ELM, ... i niz drugih.
2. Protokol SMTP koji definira procese rada sa računalnom poštom (posebno proces prenosa poruka); svaki program za rad sa računalnom poštom mora poštivati odredbe SMTP protokola, odnosno implementirati određen dio definicija i zahtjeva iz toga protokola. Kažemo "određen dio", jer protokol je sveobuhvatan opis entiteta; a program ne mora obuhvaćati sve one poslove koje definira protokol, već može obavljati samo dio toga, prepuštajući druge stvari drugim programima.
3. Protokole-formate RFC 822 i MIME koji definiraju format poruka računalne pošte.

* Pogledajmo najprije format poruka računalne pošte. (* Napomenimo, da prikaz formata poruka računalne pošte koji daju P&D, str. 635-37, djeluje nepotpuno; ali ipak sadrži temeljne elemente formatiranja poruka računalne pošte. *)

* Prema protokolu RFC 822, poruke računalne pošte sastoje se iz dva dijela, i to od zaglavlja (header) i tijela (body). Prema tom protokolu, oba dva dijela poruke trebaju biti "ASCII tekst" (P&D, str.635).
Ovdje valja spomenuti da je ASCII standard (American Standard Code for Information Interchange) pomalo (i nepotrebno) komplicirana stvar. Naime, ASCII koristi 7-bitne bajtove (što omogućava zapis 128 znakova) i 8-bitne bajtove (što omogućava zapis 256 znakova); prvi skup znakova naziva se standardni skup ASCII znakova, a drugi prošireni skup ASCII znakova. P&D o tome ne kažu ništa, što njihov opis čini nedorečenim. U svakom slučaju, standardni skup ASCII znakova (dakle, 128 znakova) je razmjenljiv između računala različitih proizvođača; u taj skup spadaju sva slova i brojke, i još neki znakovi poput zagrada, zareza, i slično; s druge strane, znakovi koji ne spadaju u standardni ASCII skup, a spadaju u prošireni ASCII skup, obično nisu razmjenljivi između kompjutera različitih proizvođača. Drugim riječima, ako se znak "a" (koji spada u standardni ASCII skup) koji je napisan na stroju proizvđača IBM, prenese na stroj proizvođača Apple, ohraniti će svoje izvorno značenje; s druge strane, neki znak koji spada u prošireni ASCII skup ali ne i u standardni ASCII skup, obično neće ohraniti svoje značenje ako se prenese na neki drugi stroj (tj. ako se na taj stroj prepiše njegov izvorni binarni zapis). U prošireni ASCII skup spadaju naprimjer specifična slova pojedinih jezika poput njemačkog, grčkog ("alfa", "beta", itd), i drugi znakovi.

* Vratimo se formatu RFC 822; temelnji zahtjev koji P&D ističu iznad - to jest, da poruke u tom formatu trebaju biti "ASCII tekst" - postavljen je zato što poruke računalne pošte putuju kroz mnoge čvorove mreže - a onda i kroz strojeve različitih proizvođača; zato je za očuvanje značenja poruka računalne pošte neophodno da te poruke budu sačinjene samo iz onih znakova koji jesu prenosivi između strojeva različitih proizvođača. U kontekstu iznad rečenoga, čini se da bi te poruke onda morale biti pisane pomoću standardnog skupa ASCII znakova, koji jest razmijenljiv, i koji koristi 7-bitne kodove. Međutim, P&D ne kažu o tome ništa; u nastavku ćemo vidjeti da format MIME (kao proširenje formata RFC 822) radi sa 7-bitnim bajtovima (dakle, sa standardnim skupom ASCII znakova, što je razumljivo); ali istodobno, MIME prekodira nizeve 8-bitnih bajtova u nizove 6-bitnih zapisa, za što P&D ne daju nikakvo obrazloženje. Zašto u 6-bitne a ne u 7-bitne, ako je 7-bitni ("standardni") ASCII kod razmijenljiv? Možda samo zato što je nizeve 8-bitnih bajtova lakše "preraspodjeliti" u nizeve 6-bitnih zapisa nego u nizeve 7-bitnih zapisa; ali P&D o tome ne kažu ništa.

* Protokol-format MIME proširio (nadopunio) je polazni RFC 822 format, na način koji omogućava da tijelo poruke sadrži/prenosi razne vrste podataka. Sadržaj tijela poruke je i dalje ASCII tekst, ali MIME omogućava da taj tekst bude kodirani zapis slika ili zvuka; naprimjer, ASCII tekst iz tijela poruke može biti (pre)kodirani zapis neke gif datoteke (dakle, grafičke datoteke, odnosno datoteke koja sadrži digitalizirani zapis slike).
"Običan program" za rad sa računalnom poštom (valjda, program koji radi sa formatom RFC 822, ali ne zna raditi sa formatom MIME), prikazati će tijelo takve poruke kao niz ASCII znakova, koji čitatelju ne pruža nikakvu eksplicitnu informaciju. Međutim, program za rad sa računalnom poštom koji podržava format MIME, može prikazati sadržaj tijela takve poruke kao sliku. Dakle, MIME omogućava prenos slika pomoću računalne pošte.

* Pogledajmo najprije osnovne elemente zaglavlja poruke kod formata RFC 822. Zaglavlje se sastoji od nekoliko redaka; svaki od tih redaka završava znakom za kraj retka (Carriage Return + Line Feed). Zaglavlje je odvojeno od tijela poruke jednim praznim retkom (to jest, jednim retkom koji sadrži samo znak za kraj retka, ).

* Jedan od redaka zaglavlja otpočinje sa
To:
u taj redak zaglavlja pošiljatelj poruke upisuje (kao parametar) adresu primatelja poruke.
U redak koji otpočinje sa
Subject:
pošiljatelj upisuje "naslov" poruke (ali taj redak ne mora se ispuniti).
Općenito, neke redove zaglavlja mora se ispuniti; takav je naprimjer redak "To:" jer poruku nije moguće odaslati ako nije dana adresa primatelja poruke.
Neke redova zaglavlja može se, ali ne mora se, ispuniti; takav je naprimjer redak "Cc:" u koji se mogu upisati one adrese na koje se želi uputiti kopiju ("Cc" označava "carbon copy") te poruke.
Konačno, neke redove zaglavlja ispunjava sam sistem za rad sa računalnom poštom; takvi su naprimjer redovi "Date:" (vrijeme slanja poruke) i "From" (adresa pošiljatelja poruke).
Zaglavlje sadrži i redak "Received:" u koji bivaju upisane adrese onih opslužitelja za računalnu poštu kroz koje je ta poruka prošla na svom putu od njena pošiljatelja do njena primatelja. ... P&D su ovdje opet nedorečeni; koliko se dade zaključiti iz konteksta, to nisu adrese usmjerivača kroz koje prolaze IP paketi koji tu poruku prenose, već samo adrese opslužitelja za računalnu poštu. U svakoj razmjeni poruka računalne pošte moraju sudjelovati barem dva takva opslužitelja: opslužitelj za računalnu poštu na domaćinu pošiljatelja poruke, i opslužitelj za računalnu poštu na domaćinu primatelja poruke. Međutim, zavisno od organizacije rada sa računalnom poštom na domaćinima pošiljatelja i primatelja, poruke se mogu i "proslijeđivati" sa jednog domaćina na drugog, tako da na svom putu od pošiljatelja do primatelja poruka može proći preko više opslužitelja za rad sa računalnom poštom.

* Protokol-format MIME proširio je polazni format RFC 822, i omogućio da poruke računalne pošte prenose digitalizirane audio i video zapise, te razne druge dokumente (datoteke) koji su napisani pomoću raznih alata (naprimjer, u Wordu).

* MIME uvodi tri osnovne novosti u odnosu na format RFC 822.
Prvo, MIME uvodi nove podatke (a onda i nove redove) u zaglavlje poruke. Ti redovi uglavnom kazuju kakve se vrste podataka/sadržaja prenose u tijelu te poruke, i na koji način su ti podaci kodirani.
Prvi redak zaglavlja je "MIME-Version:"; u taj redak sistem upisuje verziju formata MIME prema kojoj je oblikovana dana poruka (i MIME se mijenja, kao i sve ostalo).
U retku "Content-Type:" definirana je vrsta sadržaja koji se prenosi u tijelu te poruke. U tom retku definiran je i niz znakova (boundary) sa kojim se razdvajaju pojedini dijelovi tijela poruke; takvo razdvajanje dijelova tijela poruke potrebno je onda kada ti dijelovi sadrže podatke različitih vrsta, odnosno podatke koji su kodirani na različite načine.
U retku "Content-Transfer-Encoding:" rečeno je na koji je način kodiran sadržaj onog dijela tijela poruke koji slijedi tom retku. Dakle, zaglavlje svakog zasebnog dijela tijela poruke sadržava jedan takav redak.
U nastavku ćemo pogledati primjer jedne poruke napisane u formatu MIME, koji će ilustrirati iznad iznijete redove zaglavlja.

* Kao drugu novost u odnosu na RFC 822, MIME definira niz tipova podataka (i njihovih podtipova) koji se mogu prenositi u tijelu poruka. Takvi tipovi su, naprimjer:
- image/gif - tip podataka image (slika), koji su kodirani u gif formatu (koji je ovdje podtip od tipa image).
- image/jpeg - tip podataka image (slika), koji su kodirani u jpeg formatu (koji je ovdje podtip od tipa image).
- text/plain - tip podataka text (tekst), koji su kodirani u standardnom ASCII formatu (podtip plain). Takav način kodiranja koristi se u RFC 822 formatu, ali taj format ne omogućava kodiranja drugih tipova podataka koje se u MIME formatu može kodirati.
- text/richtext - tip podataka text, pri čemu su ti podaci kodirani na način koji uključuje i postojanje kurziva, jače otisnutih slova, i slično; dakle, svega onog što je definirano podtipom richtext.

* Format MIME je uveo i tip podataka application koji omogućava prenos datoteka koje generiraju razne aplikacije. Podtipovi od tipa application su nazivi raznih aplikacija koje mogu proizvesti takve datoteke. Pogledajmo primjer.
- application/postscript - tip podataka application kazuje da je te podatke proizvela neka aplikacija; pritom podtip, ovdje postscript, kazuje koja je aplikacija proizvela te podatke (koji su dio tijela dane poruke). Dakle, onaj dio sadržaja tijela koji slijedi iza takve definicije je izlaz/proizvod neke aplikacije; ovdje je to aplikacija PostScript. Analogmo, definicija application/msword kazuje da je dio tijela koji slijedi proizveden pomoću Microsoftova (ms) uređivača teksta Word (word).
Primjenom aplikacije koja je generirala neku datoteku (kao dio poruke), primatelj može regenerirati izvornu datoteku koju mu je pošiljatelj poslao. No, prije toga, tu je poruku potrebno prenijeti na domaćina primatelja, i to bez iskrivljenja izvornog sadržaja. S obzirom da neke aplikacije koriste prošireni skup ASCII znakova (koji nije prenosiv/razmjenljiv sa stroja na stroj), MIME mora izvršiti neke transformacije podataka prije njihova upućivanja u mrežu, o čemu govorimo u nastavku.

* MIME sadrži i tip podataka multipart, sa podtipom mixed. To je zapravo jedan "meta-tip", koji kazuje da se tijelo te poruke (kao cjeline) sastoji od više dijelova (multipart) koji sadrže podatke različitih tipova (mixed).
Definicija multipart/mixed nalazi se na početku višedjelne poruke; na početku svakog od djelova tijela takve poruke nalazi se definicija "Content-Type:" u kojoj je naveden tip (i podtip) podataka koji su sadržani u tom dijelu tijela poruke.

* Treća novost koju MIME uvodi u odnosu na format RFC 822, je način kodiranja podataka raznih tipova, tako da njihov kodirani zapis bude standardan "ASCII tekst"; dakle, da njihov zapis postane prenosiv/razmjenljiv između različitih strojeva, bez iskrivljenja. Podsjetimo, da je to ovdje od primarne važnosti, jer poruke računalne pošte općenito prolaze kroz brojne usmjerivače (izlaze/vrata, mostove) na svom putu od izvora do odredišta; pritom su to strojevi raznih vrsta i proizvođača.
MIME kodira one dijelove poruka koji su izvorno zapisani pomoću proširenog 8-bitnog ASCII standarda, tako da te zapise prevede na kodni standard nazvan base64. Ukratko, kodiranje se vrši tako što se nizevi od po tri 8-bitna bajta izvornog zapisa pretvaraju u nizeve od četiri 6-bitna zapisa (3 x 8 = 4 x 6 bitova). Šest bitova omogućava zapis 64 ("2 na 6") različitih binarnih sadržaja, počev od 000000 do 111111. Ako se sa tim sadržajima redom predstave velika slova abecede (26 znakova), mala slova abecede (26 znakova), brojke (10 znakova), te znakovi "+" i "/", onda se izvorni 8-bitni zapisi mogu zapisati pomoću navedena 64 znaka, koji spadaju u standardni skup ASCII znakova, te se onda mogu prenositi između različitih strojeva bez da to dovede iskrivljenja tako kodiranog sadržaja.

* Ovdje valja spomenuti dvije nedorečenosti, koje nisu od presudne važnosti, ali čine prikaz nepotpunim. Prvo, kodni zapis slova "A" u standarnom skupu ASCII znakova je 7-bitni niz 1000001 a ne 6-bitni niz 000000; naravno, postoji način da se 64 standardna ASCII znaka predstave sa 64 iznad opisana 6-bitna niza (i time omogući prenos tako kodiranih sadržaja, bez iskrivljenja); ali P&D ne iznose te pojedinosti. ... Drugo, kako smo to ranije spomenuli, ovdje nije rečeno zašto se 8-bitni zapisi ne pretvaraju u 7-bitne zapise, pomoću kojih je kodiran standardni skup ASCII znakova. ...
No, bez obzira na te nedostatke, iz danog opisa očito je na koji načim MIME omogućava prenos raznih zapisa koji koriste prošireni (8-bitni) skup ASCII znakova; MIME to čini tako, da te zapise prekodira u nizeve 6-bitnih zapisa, koji se onda mogu prenositi mrežom.
Naravno, ako se tako kodirane poruke čitaju pomoću nekog sustava za rad sa računalnom poštom koji ne podržava format MIME, onda će taj sustav prikazati kodirani sdržaja poruke kao niz znakova na ekranu, a ne recimo, kao sliku koja je pomoću tog niza znakova kodirana.

* Konačno, MIME ne primorava da se sav sadržaj tijela poruke kodira na iznad opisani način. Naime, dijelovi poruke mogu biti zapisani pomoću 7-bitnog ASCII koda - dakle, pomoću standardnog skupa ASCII znakova; takve dijelove može se onda prenositi mrežom bez kodiranja; štoviše, takvi dijelovi tijela poruke mogu se i čitati pomoću onih programa za rad sa računalnom poštom koji poznaju samo format RFC 822, ali ne i format MIME. Jer format RFC 822 radi sa standardnim 7-bitnim skupom ASCII znakova. Takve programe P&D nazivaju "text-only mail readers"; naravno, takvi programi ne mogu dekodirati one dijelove poruke koji sadrže kodirane zapise (slika, zvuka, ili neke "application" datoteke).

* Pogledajmo jedan primjer poruke zapisane u MIME formatu, čije se tijelo sastoji od tri dijela koji redom sadrže: običan (7-bitni) tekst, kodiranu JPEG sliku, i datoteku koja je generirana pomoću alata/aplikacije PostScript. ... Primjer preuzimamo iz P&D, str. 636-37; P&D to ne kažu, ali čini se da prikaz MIME poruke koji slijedi, prikazuje ono što vidi primatelj koji tu poruku čita sa text-only (to jest, sa RFC 822) programom za rad sa računalnom poštom. Jer jedino u tom slučaju će neki dijelovi tijela poruke biti "unreadable". ... U svakom slučaju, navedeni primjer ilustrira neke od spomenutih elemenata MIME zaglavlja, kao i strukturu MIME poruke.

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="--------417CA6E2DE4ABCAFBC5"
From: Alice Smith
To: Bob@cs.Princeton.edu
Subject: Promised material
Date: Mon, 07 Sep 1988 19:44:19

--------417CA6E2DE4ABCAFBC5
Content-Type: text/plain; charset=usascii
Content-Transfer-Encoding: 7bit

Bob,
Here is the jpeg image and draft report I promised.
Alice

--------417CA6E2DE4ABCAFBC5
Content-Type: image/jpeg
Content-Transfer-Encoding: base64

.... unreadable encoding of a jpeg figure

--------417CA6E2DE4ABCAFBC5
Content-Type: application/postscript; name="draft.ps"
Content-Transfer-Encoding: 7bit

.... readable encoding of a PostScript document

* Dakle, to je bio primjer poruke napisane u MIME formatu; komentari u kurzivu su od P&D. Čini se da PostScript radi sa 7-bitnim (standardnim) ASCII kodom, čim sadržaj njegove datoteke nije kodiran, i jest čitljiv pomoću programa koji ne zna dekodirati zakodiranu jpeg sliku.
Niz znakova koji je dan kao parametar varijable boundary služi kao oznaka za razdvajanje dijelova tijela poruke. O tom nizu znakova rečeno je samo to, da se ne smije javljati u samom sadržaju poruke. Naime, u slučaju da se taj niz javlja u sadržaju, onda bi ga program za čitanje računalne pošte interpretirao kao znak za kraj dijela tijela poruke, čime bi se taj dio poruke prelomio na dva dijela, pri čemu drugi dio ne bi imao zaglavlje. Ovdje nije rečeno na koji način se određuje vrijednost parametra boundary; da li sustav mijenja polaznu (difoltnu) vrijednost tog parametra ako se takav niz znakova slučajno javi u sadržaju poruke. Doduše, taj niz je prilično dug, tako da postoji strahovito mala vjerojatnost da se u sadržaju neke poruke ikad pojavi točno takav niz znakova.


Prenos poruke

* Poruke računalne pošte pišu se pomoću nekog od programa za rad sa računalnom poštom. Taj program može biti napravljen prema standardu RFC 822, ili prema standardu MIME; u zavisnosti od toga, i poruke koje taj program piše moći će biti napisane u RFC 822 formatu ili u MIME formatu.

* Prenos poruka računalne pošte odvija se na slijedeći način. Program pomoću kojeg je poruka napisana, predaje tu poruku programu koji se naziva mail daemon; taj program mora postojati na svakom domaćinu koji radi sa računalnom poštom. P&D kažu da se taj program može promatrati kao "poštanski ured" kojem se predaju poruke da ih proslijedi dalje.
Mail daemon "koristi" SMTP softver (kažu P&D, str. 637), koji pak koristi usluge TCP softvera, da tu poruku prenese daemonu koji radi na čvoru primatelja poruke. Daemon program na čvoru primatelja, smješta primljenu poruku u poštanski pretinac primatelja; dakle, opet ima ulogu "poštanskog ureda" koji razvrstava prispjele poruke u pripadne poštanske sanduke.
Konačno, pomoću svog programa za rad sa računalnom poštom, primatelj poruke može tu poruku pročitati, izbrisati je, odgovoriti na nju (tj. napisati novu poruku), itd.

* Gornji prikaz djeluje šturo; P&D, str 637, uvode program/sustav mail daemon bez popratnog objašnjenja, osim što kažu da taj program "uses SMTP running over TCP". Ni odnos između SMTP i TCP nije podrobnije objašnjen. ... Dakle, daemon "koristi SMTP", koji pak koristi usluge transportnog softvera TCP, da bi tu poruku prenio do daemona na stroju primatelja.
Očito radi se o hijerarhiji elemenata, od kojih svaki koristi usluge elementa ispod sebe. Međutim, nepotpuna objašnjenja ostavljaju nekoliko pitanja. Naprimjer, zašto daemon nije definiran kao dio protokola/sustava SMTP? Nadalje, SMTP "koristi usluge" protokola/sustava TCP; ali iz toga se ne može steći dojam koliko je složen/opsežan sam sustav SMTP. Jer "okolo" tog sustava rade program za pisanje/čitanje poruka, mail daemon, i transportni sustav TCP; odatle se ne vidi "koliko poslova" zapravo obavlja sam sustav SMTP.

* Slika 6 ilustrira način kretanja poruke računalne pošte od pošiljatelja do primatelja. Lijevi dio slike prikazuje situaciju na sustavu pošiljatelja, desni dio slike prikazuje situaciju na sustavu primatelja, dok srednji dio slike prikazuje jednog opslužitelja za računalnu poštu koji se može naći na putu između njih, a koji je nazvan Mail gateway.


Slika 6

* Na stroju pošiljatelja, program za rad sa računalnom poštom predaje poruku svom daemonu, koji tu poruku prosljeđuje prema primatelju koristeći SMPT/TCP sustav, kako je to iznad rečeno. Daemon ujedno pohranjuje tu poruku na disk, za slučaj da dostava poruke trenutno nije moguća (naprimjer, zato što je domaćin primatelja u kvaru). U tom slučaju, odaslana poruka biti će izgubljena jer SMPT/TCP ne pamte poruke (osim eventualno nekoliko sekundi), i ne čekaju da domaćin primatelja ponovno proradi.
Međutim, daemon ("poštanski ured", rekli smo) je sačuvao kopiju poruke na disku; ako mu SMTP javi da pokušaj dostave poruke daemonu na stroju primatelja nije uspio, onda će deamon sa stroja pošiljatelja nakon nekoliko sati ponovno poslati tu poruku; ukoliko ne uspije ranije dostaviti poruku daemonu na domaćinu primatelja, daemon pošiljatelja će ponavljati slanje do pet dana.
Daemon na stroju primatelja poruke, prima prispjelu poruku i pohranjuje je u poštanski pretinac primatelja na kojeg je adresirena; primatelj može zatim odatle čitati poruku, prenijeti je drugdje, brisati, itd.

* Čemu služi sustav Mail gateway između domaćina pošiljatelja i domaćina primatelja? P&D, str. 638, o tome ne govore naročito precizno ni jasno. Čini se da sustav Mail gateway sa slike 6 ilustrira slijedeću situaciju. Korisnik može primati poruke računalne pošte na nekom domaćinu (na kojem ima adresu, na koju se poruke upućuju), i na tom domaćinu (tj. na njegovom opslužitelju za računalnu poštu) definirati da se poruke koje prispiju na njegovu adresu automatski prosljeđuju na nekog drugog domaćina (tj. na drugu adresu) sa kojeg taj korisnik trenutno čita/piše poruke računalne pošte. U tom slučaju, opslužitelj koji je naveden u odredišnoj adresi izvorne poruke, poprima ulogu Mail gateway sustava; taj sustav prima poruke i proslijeđuje ih na zadanog opslužitelja (tj. na novu adresu), na kojem ih primatelj onda čita; pritom, Mail gateway ujedno pohranjuje odaslane poruke, za slučaj da mora ponavljati slanje, kako je to iznad opisano.

* Svaka komunikacija na SMTP razini odvija se između dva daemona, pri čemu jedan od njih ima ulogu klijenta a drugi opslužitelja. U jednoj takvoj komunikaciji može biti preneseno više poruka računalne pošte (između istih domaćina, naravno). Pogledajmo jedan primjer takve komunikacije; poruke SMPT sustava sa domaćina cs.princeton.edu ispisane su normalnim tekstom, dok su poruke SMTP sustava sa domaćina cisco.com ispisane u kurzivu. Prazni redovi umetnuti su radi veće preglednosti.

HELO cs.princeton.edu
250 Hello daemon@mail.cs.princeton.edu [128.12.169.24]

MAIL FROM:
250 OK

RCPT TO:
250 OK

RCPT TO:
550 No such user here

DATA
354 Start mail input; end with .
.... slijedi sadržaj maila za Alicu ...
.
250 OK

QUIT
221 Closing connection


* Komunikacija na SMTP razini izvodi se raznjenom poruka između klijenta i opslužitelja. Sa svakom porukom klijent izdaje neki zahtjev; takvi su naprimjer, zahtjevi HALO, MAIL, FROM, RCPT, DATA, QUIT.
Opslužitelj na to odgovara sa određenom kodom (250, 550, ...) koja je popraćena tekstualnim objašnjenjem njena značenja.

* U danom primjeru, klijent se najprije predstavio, i to sa porukom HELO (sa jedno "L"; sve naredbe imaju četiri slova); parametar te naredbe je mnemoničko/domensko ime (domain name) klijenta, to jest, cs.princeton.edu.
Pozvani opslužitelj provjarava da li to domensko ime odgovara onoj IP adresi koja se nalazi u zaglavlju IP paketa u kojem je tu naredbu primio (od klijenta). Opslužitelj zatim odgovara na takvo predstavljanje klijenta sa kodom 250, iza koje navodi adresu klijentova mail daemona i IP adresu domaćina-klijenta. (Valjda pozvani opslužitelj time potvrđuje uspostavu komunikacije, ali P&D o tome ne kažu ništa.)
Klijent zatim kaže da opslužitelju želi dostaviti poruku od pošiljatelja Bob@cs.princeton.edu; opslužitelj to prihvaća. Klijent kaže da je poruka upućena na adresu Alice@cisco.com; opslužitelj prihvaća.
Klijent zatim kaže da istu poruku želi dostaviti i na adresu Tom@cisco.com; opslužitelj odgovara da kod njega ne postoji takav korisnik (tj. takva adresa). Klijent to prihvaća, i o Tomu ne pita ništa više.
Slijedi naredba DATA sa kojom klijent najavljuje početak slanja sadržaja poruke; opslužitelj na to odobrava početak slanja, te ujedno poručuje klijentu kakav mora biti znak za kraj sadržaja poruke. Poruka mora završiti retkom koji sadrži samo točku; zapis . kazuje upravo to. Prvi znak za kraj retka (tj. ) čini da se znak "." (koji slijedi) zapiše u novi redak; znak iza znaka "." čini da se u taj redak ne piše ništa više; dakle, u tom retku nalaziti će se samo znak ".".
Klijent zatim šalje najavljenu poruku, koja završava na zadani način; opslužitelj potvrđuje uspješan primitak poruke.
Konačno, klijent zaključuje komunikaciju, što opslužitelj potvrđuje.

* Postoji niz drugih naredbi/poruka koje mogu razmijeniti klijent i opslužitelj u okviru procesa prenosa poruka računalne pošte. Naprimjer, opslužitelj može odgovoriti klijentu da primatelj (kojem klijent želi dostaviti poruku) nema poštanski pretinac na tom domaćinu, ali da opslužitelj za računalnu poštu sa tog domaćina proslijeđuje poruke za tog primatelja na nekog drugog domaćina (na kojem taj primatelj ima poštanski pretinac). Kako je to ranije rečeno, opslužitelj time postavlja sebe u ulogu Mail gateway sustava, koji proslijeđuje primljene poruke prema njihovu odredištu. ... (Uzgred, ovdje nije objašnjeno što zapravo znači da neki korisnik "nema poštanskog pretinca" na nekom domaćinu (koji zna prosljeđivati poruke za tog korisnika na nekog drugog domaćina); znači li to da taj korisnik uopće nema adresu računalne pošte na tom domaćinu, ili samo da se poruke za tog korisnika ne pohranjuju na tom domaćinu, već se samo proslijeđuju dalje?)


2.2. World Wide Web

* Sustav World Wide Web omogućava da korisnik donosi na svoj stroj web stranice - to jest, HTML datoteke, i druge datoteke koje su potrebne za formiranje web stranica - sa drugih (udaljenih) strojeva na svoj stroj, i da ih na svom stroju prikazuje/gleda. Taj prenos datoteka odvija se prema osnovnom modelu rada klijent/opslužitelj; pritom je proces komunikacije između klijenta i opslužitelja ovdje definiran sa HTTP protokolom; drugim riječima, tu komunikaciju izvodi softver koji implementira HTTP protokol. Na strani klijenta, taj se softver naziva web pretraživačem (browser). Da bi web pretraživač mogao pristupiti nekoj web stranici, ta web stranica treba se nalaziti "na" nekom web opslužitelju.

* Svaka web stranica ima jedinstvenu URL adresu. URL je akronim od Uniform Resource Locator, što bi značilo uniformni (jedno-oblični) odreditelj mjesta/pozicije (lokator) izvora (tj. HTML datoteke koja sadrži web stranicu).
Pojmom "uniform" (jedno-obličan) je rečeno da sve URL adrese imaju istu strukturu, i to:
http://ime-web-opslužitelja/ime-datoteke
Naprimjer,
http://www.cs.princeton.edu/index.html

* "Otvaranjem URL adrese" nazivamo pokretanje procesa donošenja i prikaza sadržaja HTML datoteke koja se nalazi na toj URL adresi.
URL adrese se otvara pomoću web pretraživača, koji je jedna mrežna aplikacija. Web pretraživač, koji je oblikovan u skladu sa definicijama HTTP protokola (ili, implementira definicije dane HTTP protokolom) uspostavlja TCP vezu sa web opslužiteljem čije je ime sadržano u danoj URL adresi (npr. www.cs.princeton.edu), i šalje tom web opslužitelju zahtjev da mu dostavi određenu HTML datoteku (web stranicu) koja se nalazi na tom web opslužitelju.
Web opslužitelj na to dostavlja web pretraživaču-klijentu traženu datoteku/stranicu; web pretraživač onda prikazuje njen sadržaj (na ekranu stroja korisnika).

* Većina web stranica sadrži u sebi i URL adrese drugih web stranica ... Takve adrese nazivaju se hipertekst vezama (hypertext links). Na zahtjev (tj. pritiskom miša na takvoj adresi) web pretraživač pokreće proces donošenja nove web stranice (HTML datoteke), i to sa one URL adrese na kojoj je bio pritisnut miš. Prikaz sadržaja nove web stranice "pregaziti" (zamijeniti) će na ekranu korisnika prethodnu web stranicu iz koje je nova stranica bila pozvana.

* URL adrese koje su sadržane u jednoj web stranici, često referiraju na web stranice koje su smještene na različitim domaćinima. Stoga, pritiskanjem na hipertekst veze (tj. na URL adrese) korisnik čini da njegov web pretraživač uspostavlja komunikaciju (i prenos podataka) sa raznim domaćinima širom mreže Internet. Pritom, fizički (geografski) položaj domaćina (sa kojima se uspostavlja komunikaciju/prenos) nije bitan, osim utoliko što može eventualno utjecati na brzinu prenosa (donošenja) tražene web stranice na stroj tražitelja.

* Radi pojednostavljenja objašnjenja, u dosadašnjem govoru smo (implicitno) izjednačavali pojamove "web stranica" i "HTML datoteka". U suštini, svaka web stranica jest HTML datoteka, i sadržaj svake HTML datoteke jest (prikazuje se kao) web stranica; međutim, jedna web stranica može se sastojati od više datoteka; dakle, jedna HTML datoteka ne mora sadržavati sve ono što je potrebno za izradu jedne web stranice. Konkretno, web stranice često sadrže slike, a digitalni zapisi slika pohranjuju se u zasebne datoteke, koje nisu HTML datoteke, već su oblikovane u gif ili jpeg formatu.
Drugim riječima, za prikaz jedne web stranice koja sadrži slike, web pretraživač mora zatražiti (i dobiti) od web opslužitelja HTML datoteku te stranice, i sve one datoteke koje sadrže "zasebne dijelove" te stranice; URL adrese tih datoteka-dijelova sadržane su u toj HTML datoteci; takve su naprimjer datoteke tipa gif i jpeg koje sadrže grafiku, i datoteke tipa class koje sadrže prevedene aplete (koji se izvode u okviru neke web stranice).
Datoteke koje sadrže dijelove web stranice imaju svoje URL adrese; u osnovnu HTML datoteku web stranice upisane su URL adrese svih onih datoteka čiji je sadržaj potreban za formiranje te web stranice. Iste gif/jpeg/class datoteke mogu biti korištene za izradu raličitih web satranica; dakle, njihove URL adrese mogu biti sadržane u raznim HTML datotekama; štoviše, te adrese mogu biti sadržane više puta i u okviru iste HTML datoteke; to činimo naprimjer onda kada želimo da se ista slika (ili aplet) javlja više puta u okviru iste web stranice.

* Dakle, da bi mogla postati dijelom neke web stranice, slika treba biti zapisana u gif/jpeg formatu i biti pohranjena u zasebnu datoteku; ta datoteka treba biti postavljena na nekog web opslužitelja i imati svoju jedinstvenu URL adresu. Pritom se datoteke sa slikama (ili apletima) ne moraju nalaziti na istom web opslužitelju na kojem se nalazi HTML datoteka koja sadrži "pozive" tih slika.
Na svaki zahtjev klijenta (web pretraživača) da mu dostavi sadržaj neke gif/jpeg datoteke, web opslužitelj dostavlja klijentu jednu kopiju te datoteke; kopije iste datoteke mogu biti dostavljene mnogim klijentima. Isto vrijedi i za HTML datoteke; dakle, istu web stranicu može istodobno gledati više korisnika, koji rade na raličitim domaćinima, jer svaki korisnik gleda svoju kopiju izvornih datoteka koje sačinjavaju tu stranicu.

* Komunikacija između web pretraživača (kao klijenta) i web opslužitelja odvija se pomoću niza naredbi (zahtjeva i odgovora) koje su definirane HTTP protokolom. Definicija i softverska realizacija naredbi toga protokola aplikacijske razine naslanjaju se na usluge/funkcije TCP protokola (odnosno, TCP softvera) sa transportne razine mrežnog sustava. Dakle, naredbe HTTP softvera realizirane su uz upotrebu funkcija/naredbi TCP softvera; to znači, da izvođenje HTTP naredbi "pokreće" određene funkcije/operacije TCP softvera (transportnog sloja), koji onda "pokreće" funkcije/operacije IP sloja ispod sebe, i tako do razine fizičkog sloja (na kojoj se odvija fizički prenos zapisa/signala).

* Poruke koje u okviru HTTP komunikacije razmjenjuju klijent i opslužitelj, sastoje se od više takvih naredbi, i imaju slijedeću osnovnu strukturu.

START_LINE
MESSAGE_HEADER

MESSAGE_BODY

* START_LINE kazuje da li je ta poruka zahtjev, ili je to odgovor na neki zahtjev.
Ako je to zahtjev, onda se u tom retku ujedno zadaje operaciju koju bi primatelj zahtjeva trebao izvršiti. Ako je to odgovor, onda se u tom retku šalje odgovor tražitelju o stanju (izvršenju) njegova zahtjeva.

* MESSAGE_HEADER može se sastojati od više redaka, koji pobliže opisuju dani zahtjev, odnosno odgovor. P&D, str. 642, kažu samo to, da MESSAGE_HEADER sadrži niz "opcija i parametara" koji pobliže specificiraju (qualify) zahtjev odnosno odgovor koji se tom porukom prenosi. Pritom, te specifikacije nalikuju onima koje smo iznijeli u okviru prikaza zaglavlja poruke formata MIME. Dakle, možemo reći da MESSAGE_HEADER sadrži parametre (definicije) koje opisuju strukturu i vrstu sadržaja koji dana poruka prenosi.
MESSAGE_HEADER završava jednim praznim retkom (znak ).

* MESSAGE_BODY (tj. tijelo poruke) otpočinje nakon praznog retka koji označava završetak od MESSAGE_HEADER.
Ako je poruka zahtjev, onda je tijelo poruke obično prazno; ako je poruka odgovor (na neki zahtjev), onda tijelo poruke sadrži traženi odgovor. Takav odgovor može biti sadržaj tražene HTML datoteke, ili neke gif/jpeg/class datoteke.


Poruka-zahtjev

* Prvi redak HTTP poruke kojom klijent (web pretražitelj) šalje neki zahtjev web opslužitelju sadrži/određuje tri osnovne stvari:
- Operaciju koju treba izvršiti (da bi pozvani opslužitelj odgovorio na taj zahtjev).
- URL adresu sa kojom treba izvršiti traženu operaciju; obično je to URL adresa datoteke koju klijent traži, i koju bi mu opslužitelj trebao dostaviti.
- Verzija HTTP protokola koju koriste pošiljatelj poruke (tj. klijent).

* Dvije osnovne operacije čije izvršenje klijent obično zahtjeva od web opslužitelja su: GET i HEAD.
Naredbom/operacijom GET klijent traži od opslužitelja da mu dostavi onu datoteku (tipa HTML, gif, jpeg, ili class) čiju je URL adresu naveo kao parametar te naredbe.
Naredbom/operacijom HEAD klijent traži od opslužitelja da mu dostavi "osnovne podatke" o onoj datoteci čiju je URL adresu naveo kao parametar te naredbe. Među osnovne podatke takvih datoteka spadaju naslov web stranice (koji je zapisan o dijelu HEAD njene HTML datoteke), veličinu datoteke (u KB), datum zadnje izmjene datoteke, i slično.

* Pogledajmo primjer retka START_LINE jedne poruke kakvu klijent šalje web opslužitelju.
GET http://www.cs.princeton.edu/index.html HTTP/1.1
Dakle, klijent (web pretraživač) sa nekog proizvoljnog domaćina, šalje poruku web opslužitelju koji se nalazi na domaćinu cs.princeton.edu, da mu dostavi datoteku koja se nalazi na danoj URL adresi; dakle, datoteku index.html koja se nalazi na tom domaćinu, kako to pokazuje njena URL adresa.
Pritom, klijent ujedno obavještava opslužitelja da je on (klijent) napravljen prema HTTP protokolu, verzija 1.1; dakle, da "podržava naredbe" (kako se to obično kaže) te verzije protokola, odnosno da može komunicirati jezikom dane verzije HTTP protokola, ali ne i sa naredbama iz eventualnih novijih verzija istog protokola.

* U tablici 1 navedene su sve naredbe HTTP protokola pomoću kojih se mogu izražavati zahtjevi; P&D donose opis samo za one dvije koje smo izložili iznad.


Operation Description
OPTIONS
GET
HEAD
POST
PUT
DELETE
TRACE
CONNECT request information about available options
retrieve document identified in URL
retrieve metainformation about document identified in URL
give information (e.g.,annotation) to server
store document under specified URL
delete specified URL
loopback request message
for use by proxies

Tablica 1

* Iako naredbe/definicije koje spadaju u MESSAGE_HEADER ovdje nismo eksplicitno opisali, pogledajmo jedan primjer takve naredbe.
If-Modified-Since: datum
Ta naredba iz MESSAGE_HEADERa uvjetuje izvršenje naredbi GET i HEAD iz START_LINE, i to na taj način da se te naredbe izvršavaju samo ako je datoteka koja se nalazi na URL adresi navedenoj u tim naredbama, bila mijenjana nakon datuma koji je naveden kao parametar naredbe If-Modified-Since.


Poruka-odgovor

* Kao i poruka-zahtjev, poruka-odgovor počinje retkom kojeg smo nazvali START_LINE. Taj redak ovdje kazuje koju verziju HTTP protokola koristi odgovaratelj (to jest, web opslužitelj), i obavijest o stanju klijentova zahtjeva na koji se ovom porukom odgovara. Obavijest se satoji od troznamenkaste kode, i tekstualnog opisa njena značenja.
Pogledajmo primjere.
HTTP/1.1 202 Accepted
Ovaj odgovor kaže da je zahtjev klijenta uspješno prihvaćen, i da će biti izvršen.
HTTP/1.1 404 Not found
Ovaj odgovor kaže da zahtjev ne može biti izvršen, jer tražena datoteka (tj. zadana URL adresa) ne postoji na tom web opslužitelju.

* HTTP protokol definira pet osnovnih tipova odgovora. Numeričke kode (različitih) odgovora istog tipa otpočinju istom brojkom. U tablici 2 navedeni su ti tipovi, uz kratki tekstualni opis "općeg stanja stvari" (situacije) na koje se svaki od tih tipova poruka odnosi (ili, na koje se odnose poruke pojedinog tipa).


Code Type Example Reasons
1xx
2xx
3xx
4xx
5xx International
Success
Redirection
Client Error
Server Error request received, continuing process
action successfully received, understood, and accepted
further action must be taken to complete the request
request contains bad syntax or cannot be fulfilled
server failed to fulfill an apparently valid request

Tablica 2

* Očito, odgovor iz prvog primjera koji smo naveli iznad (sa kodom 202) je tipa "2"; dakle, "upućeni zahtjev (ili, zatražena akcija) je uspješno primljen, shvaćen, i prihvaćen". Opslužitelj bi tada trebao izvršiti primljeni zahtjev.
Odgovor iz drugog primjera (sa kodom 404) je tipa "4"; dakle, "zahtjev sadrži loše oblikovane dijelove (bad syntax) ili ne može biti izvršen". U taj tip odgovora spada više konkretnih odgovora, pri čemu svaki od tih odgovora opisuje stanje stvari preciznije nego što to čini sam tip odgovora; ali svi odgovori toga tipa obavještavaju o nemogućnosti izvršenja nekog zahtjeva. Pritom, razlog što taj zahtjev nije moguće izvršiti može biti u tome što je sam zahtjev loše oblikovan, ili pak u tome što se tim zahtjevom traži izvršenje neke operacije koju taj opslužitelj ne može izvršiti. Naprimjer, od opslužitelja se zahtjeva da dostavi neku datoteku koja na tom opslužitelju ne postoji.

* U dijelu poruke MESSAGE_HEADER, poruka-odgovor može sadržavati razne dodatne obavijesti koje opslužitelj želi uputiti klijentu. Naprimjer, u retku zaglavlja Location, opslužitelj može poslati klijentu URL adresu na koju je prenijeta ona datoteka koju je klijent tražio. Uzmimo da je klijent tražio datoteku sa URL adrese
http://www.cs.princeton.edu/index.html
i da opslužitelj zna (ima evidenciju o tome) ta je ta datoteka premještena na URL adresu
http://www.princeton.edu/cs/index.html
onda opslužitelj može uputiti klijentu slijedeći odgovor:
HTTP/1.1 301 Moved Permanently
Location: http://www.princeton.edu/cs/index.html

* Pomoću poruke-odgovora, opslužitelj dostavlja klijentu i traženu datoteku. Sadržaj datoteke prenosi se u dijelu poruke nazvanom MESSAGE_BODY. ... (* Uzgred, P&D ne kažu da li se datoteka prenosi u istom odgovoru sa kojim opslužitelj odgovara da je zahtjev prihvaćen ("202 Accepted"), ali moglo bi biti tako. *)

* Kako je to ranije rečeno, klijent (web pretraživač) traži od web opslužitelja razne vrste datoteka (gif, jpeg, class), a ne samo HTML datoteke. Zbog toga se tijelo poruke-odgovora zapisuje u MIME formatu koji omogućava prenos svih vrsta kodiranih sadržaja, kako je to pokazano u odjeljku 9.2.1. Moglo bi se reći da je tijelo poruke-odgovora (kao cjelina) naprosto jedan zapis koji je oblikovan u MIME formatu.
Kada poruka-odgovor sadrži neprazno tijelo - to jest, kada sadrži neku traženu datoteku - onda MESSAGE_HEADER te poruke sadrži niz redaka sa podacima (parametrima) koji govore o formalnim svojstvima toga sadržaja. Među takve podatke spadaju veličina tijela (Content-Length), datum zadnje izmjene datoteke (Last-Modified), i slično. ...
Očito, format poruke-odgovora u HTTP protokolu uvelike sliči formatu poruka MIME; međutim, P&D ne daju preciznu informaciju o odnosu ta dva formata. Naprimjer, rečeno je da tijelo poruke prenosi datoteke u formatu MIME; istodobno se kaže da kada je tijelo HTTP poruke neprazno, onda MESSAGE_HEADER te poruke govori o formalnim svojstvima sadržaja tijela: znači li to da MESSAGE_HEADER te HTTP poruke tada koristi iste definicije (tipove podataka, itd.) kao i MIME, ili pak ima neke svoje "slične" definicije? ... Ovdje nije od većeg značaja jesu li te definicije/naredbe iste ili slične, ali to ovdje nije rečeno.


TCP veza

* Jedna web stranica može se sastojati od jedne HTML datoteke, i od nekoliko gif/jpeg/class datoteka koje sadrže slike ili aplete. Prema prvoj verziji protokola HTTP (verzija 1.0), klijent i opslužitelj uspostavljali su zasebnu komunikaciju (novu TCP vezu) za prenos svake pojedine od datoteka koje (zajedno) tvore jednu web stranicu. Po završetku prenosa jedne datoteke, ta se komunikacija (i TCP veza) prekidala, i uspostavljala se nova, radi prenosa slijedeće datoteke (za potrebe iste web stranice).
U slučaju kada jedna web stranica sadrži veći broj slika (apleta, ili zvučnih zapisa), takav način rada je izrazito suboptimalan, jer iziskuje mnogo uspostava i prekida veza između istog klijenta i opslužitelja (radi izvršenja jednog samog posla).

* Verzija HTTP protokola 1.1 omogućava da klijent i opslužitelj međusobno razmijene veći broj poruka - a time i da opslužitelj dostavi klijentu veći broj datoteka - bez da se prekida komunikacija, odnosno TCP veza preko koje se ta komunikacija odvija. To ujedno znači, da u okviru jedne komunikacije, klijent može od opslužitelja redom tražiti sve datoteke (i dobivati ih, kao odgovore) koje su mu potrebne za formiranje jedne web stranice, a koje su pohranjene na tom opslužitelju.

* Takav način rada je znatno efikasniji (od prijašnjeg) iz dva osnovna razloga:
Prvo, za donošenje većeg broja datoteka (na stroj klijenta) ne mora se uspostavljati više veza; a svako uspostavljanje veze iziskuje razmjenu dodatnih TCP paketa (radi same uspostave komunikacije); dakle, optrećuje mrežu, i izaziva gubitak vremena.
Drugo, kako je to objašnjeno u ranijim poglavljima, prenos na TCP razini uvijek otpočinje malom brzinom, i biva relativno spor sve dok pošiljatelj i primatelj paketa ne usklade svoje klizne prozore, i time utvrde optimalnu brzinu prenosa koja je u datom trenutku moguća. Zato je dobro da u okviru prenosa sadržaja jedne web stranice bude čim manje takvih sporih početaka.

* Ovakav način rada, koji se zasniva na neprekinutoj komunikaciji između klijenta i opslužitelja (sve dok klijent ne dobije od opslužitelja sve što mu treba) ima i svoje slabe strane. Naime, takav način rada može dovesti opslužitelja u situaciju da mora istodobno održavati TCP vezu sa velikim brojem (više tisuća) klijenata. To može iscrpljivati komunikacijske kapacitete opslužitelja, i time uzrokovati da novi klijenti ne uspijevaju uopće pristupiti takvom (preopterećenom) opslužitelju.
Taj problem moglo bi se riješiti tako, da opslužitelj prekida (zaključuje) komunikaciju nakon nekog zadanog vremena. Opslužitelj redovito zaključuje komunikaciju ako neko određeno vrijeme od klijenta ne dobije novi zahtjev. Vezu može isto tako zaključiti i klijent, ako je od opslužitelja primio sve ono što mu je bilo potrebno da bi "sastavio" neku web stranicu.


Keširanje

* Keširanjem (caching) se općenito naziva pohranjivanje nekog sadržaja koji će (vjerojatno, ili pak sigurno) nekome kasnije trebati. Keširanje je bitan element za optimalno funkcioniranje World Wide Weba (kao sustava) jer često se događa da isti korisnik (ili neki drugi korisnik sa istog domaćina) više puta gleda istu web stranicu. Stoga bi bilo dobro da se ta stranica, čiji je sadržaj jednom donijet na tog domaćina, pohrani na tom domaćinu, tako da kad korisnik slijedeći put želi vidjeti tu stranicu, ona već bude na tom domaćinu, i da se ne mora ponovno prenositi sa nekog (udaljenog) web opslužitelja (na kojem je izvorno pohranjena).

* Keširanje se u računalnoj mreži može organizirati na razne načine. U mreži mogu postojati posebni web opslužitelji koji pohranjuju sve one web stranice koje se "preko njih" prenose na domaćine iz određene zone; takav web opslužitelj mogao bi postojati na razini svake zone računalne mreže, i pohranjivati sve web stranice koje se "preko njega" prenose do domaćina koji spadaju u tu zonu. Web opslužitelj koji se ponaša na opisani način, naziva se proxy.
Proxy se općenito naziva onaj koji "zastupa (ili nastupa u ime) nekog drugog" (recimo, zamjenik ili opunomoćenik). Kako to kazuje sam naziv, proxy opslužuje klijente sa onim web stranicama koje su ranije prenošene preko njega (i koje je on tom prigodom pohranio), umjesto da to čine oni web opslužitelji na kojima su te web stranice izvorno pohranjene, i na koje klijenti adresiraju svoje zahtjave.
Naprimjer, ako svi domaćini koji spadaju u zonu hr vrše komunikaciju sa domaćinima iz drugih zona preko jednog čvora mreže, onda bi jedan web opslužitelj u funkciji proxyja, u tom čvoru mreže mogao pohranjivati sve web stranice koje su preko tog čvora prenijete do bilo kojeg domaćina iz te zone. Ako je zona hr prevelika, i ako bi pohrana svih web stranica brzo iscrpila memorijski prostor takvog proxyija, onda se proxy može postaviti naprimjer na razini zone jednog sveučilišta; a mogu postojati i oba, odnosno može postojati hijerarhijski sustav proxyja.

* Proxy se može isto tako promatrati kao jedan poseban usmjerivač čija je specifičnost da pohranjuje određene sadržaje koji se prenose preko njega. No, da bi takav usmjerivač mogao eksplicitno raditi sa web stranicama, on mora podržavati HTTP protokol, te ga stoga ovdje tretiramo kao web opslužitelja posebne namjene.
U svakom slučaju, pohranjivanje web stranica koje dolaze izvan zone koju pokriva određeni proxy, omogućava da kad neki korisnik želi vidjeti neku takvu web stranicu koju je ranije gledao - ili koju je gledao netko drugi sa nekog domaćina iz zone danog proxyja - onda se tu web stranicu ne mora ponovno donositi sa udaljenog domaćina (koji se nalazi izvan te zone) na kojem je izvorno pohranjena, već proxy dostavlja klijentu traženu stranicu.

* Ukratko, proxy gleda URL adrese iz zahtjeva klijenata koji su upućeni na domaćine izvan njegove zone (rekli smo, svi takvi zahtjevi klijenata prolaze preko proxyja dane zone). Na temelju URL adrese tražene stranice, proxy utvrđuje da li u svojoj memoriji ima pohranjenu web stranicu koju klijent traži. Ako ima, onda šalje klijentu traženu stranicu; ako nema, onda klijentov zahtjev proslijeđuje dalje, prema udaljenom domaćinu/opslužitelju na kojeg je taj zahtjev adresiran.
Kada pozvani web opslužitelj sa udaljenog domaćina pošalje traženu web stranicu klijentu, onda će proxy (preko kojeg taj odgovor ulazi u zonu u koju spada klijent-tražitelj) pohraniti tu stranicu "u nadi" da će tu stranicu kasnije tražiti neki od domaćina/korisnika iz njegove zone.

* Web stranice se često mijenjaju. Zato keširanje i uporaba proxyja mogu dovesti do toga da umjesto tražene web stranice, proxy dostavi klijentu neku stariju verziju te stranice (koju proxy ima pohranjenu). Preciznije rečeno, može se dogoditi da umjesto sadašnjeg sadržaja neke URL adrese, proxy dostavi tražitelju neki raniji sadržaj te URL adrese, kojeg je proxy nekad ranije pohranio.
Protokol HTTP definira niz naredbi (parametara) koje imaju za cilj da se izbjegne (ili bitno umanji) probleme vezane uz zastarijevanje stranica na proxyju.
Prije svega, web pretraživači omogućavaju da se isključi primjena proxyja; u web pretraživaču postoji opcija sa kojom korisnik može uključivati i isključivati uporabu proxyja, zavisno od prosudbe korisnika koja bi opcija u kojoj situaciji mogla biti prikladnija. Ako je uporaba proxyja isključena, onda proxy mora proslijediti zahtjev klijenta prema onom udaljenom domaćinu kojem je taj zahtjev upućen, bez obzira da li proxy ima pohranjenu onu web stranicu koja se tim zahtjevom traži. (Takvi zahtjevi mogli bi biti proslijeđeni i mimo proxyja, ali P&D to ne kažu.)
Nadalje, web opslužitelj koji dostavlja neku web stranicu, može uključiti u zaglavlje poruke-odgovora i "rok važenja" te stranice; tome je namjenjena naredba Expires koja može biti uključena u zaglavlje poruke. Proxy bi trebao brisati iz svoje memorije one stranice kojima je istekao rok važenja. Uzgred, proxy ima ograničenu memoriju, tako da sa dolaskom novih web stranica, one (naj)starije i onako mora brisati.
Konačno, proxy može i sam osvježavati (to jest, povremeno nanovo donositi sa udaljenih domaćina) one web stranice koje domaćini/korisnici iz njegove zone često traže.


2.3. Upravljanje mrežom

* Računalna mreža poput Interneta je vrlo složen sustav, i to kako zbog velikog broja čvorova i veza koje obuhvaća, tako i zbog velikog broja protokola koji zajedno definiraju njen rad kao jednog cjelovitog sustava.
Svaki od čvorova mreže sadržava velik broj podataka koji su bitni ne samo za rad toga čvora, nego i za optimalno funkcioniranje mreže kao cjeline; to se prvenstveno odnosi na usmjerivače (koji sadrže tablice usmjeravanja/puteva), ali isto tako i na sustav DNSa, i niz drugih elemenata mreže.
Čvorovi mreže trebaju konstantno promatrati stanje veza i čvorova iz svog okruženja, i o tome razmjenjivati podatke sa čvorovima iz svog okruženja, o čemu smo podrobnije govorili u ranijim poglavljima. Ukratko, rad mreže zasniva se na velikom broju podataka i procesa koji se stalno mijenjaju, u zavisnosti od tekućih događaja (kvarova, opterećenja, itd.) koji se zbivaju na mreži.
U kontekstu rečenoga, čini se očiglednim da je uspješno održavanje i optimizacija rada takvog sustava izrazito zahtjevan posao.

* Da bi se moglo upravljati radom mreže - ili barem radom nekog njenog dijela, naprimjer jedne lokalne zone - potrebno je imati uvid u stanja i kretanja brojnih parametara na pojedinim čvorovima mreže. S obzirom da je računalna mreža fizički distribuiran sustav, podatke o stanjima njenih čvorova najprikladnije je prikupljati primjenom same mreže.
Sa ciljem da se omogući dobivanje podataka o stanju i radu udaljenih čvorova računalne mreže, te da se omogući mijenjanje takvih stanja, razvijen je protokol SNMP (Simple Network Management Protocol). Taj protokol svrstava se na aplikacijsku razinu mreže jer se njegova definicija i rad naslanjaju na usluge transportnog sloja; nadalje, taj protokoj definira operacije koje odista jesu aplikacijske prirode, iako je njihova namjena specifična, jer su te operacije namijenjene (a u pravilu, i dostupne) prvenstveno administratorima mreže.

* Okvirno govoreći, na aplikativnu razinu mrežnog sustava možemo svrstati svaki onaj protokol/softver koji u svom radu upotrebljava usluge prenosa podataka, a čiji rad ne doprinosi samom ostvarenje tih suluga. Dakle, aplikacije ne ostvaruju mogućnost prenosa, već tu mogućnost koriste radi prenosa nekih "korisnih podataka". Pritom, se ti "korisni podaci" mogu odnositi na bilo koji proces ili stanje stvari u svijetu, pa tako i na stanje stvari u pojedinim čvorovima same računalne mreže koja te podatke prenosi.
SNMP, kao protokol aplikacijske razine, koji definira način prikupljanja podataka o stanjima čvorova mreže uz pomoć te iste mreže (za prenos podataka), naslanja se na usluge transportnog protokola/softvera UDP.

* SNMP protokol zasniva se na temeljnom modelu klijent/opslužitelj, i definira proces komunikacije prema načelu zahtjev/odgovor. Dakle, proces koji se nalazi u ulozi klijenta, upućuje zahtjev nekom drugom procesu koji time poprima ulogu opslužitelja, te od njega traži da izvrši taj zahtjev, odnosno da mu dostavi traženi odgovor.
Dvije osnovne vrste zahtjeva u SNMP protokolu su GET i SET.
Zahtjevom GET klijent traži od čvora kojem je taj zahtjev upućen (i koji time poprima ulogu opslužitelja), da mu dostavi neke određene podatke o vlastitom stanju; naprimjer, vrijednosti nekih parametara, tablica, i slično.
Zahtjevom SET klijent traži od čvora kojem je taj zahtjev upućen (i koji time poprima uogu opslužitelja; dakle, izvršitelja zahtjeva), da prihvati podatke koje mu klijent šalje, i da na temelju njih izmijeni određene elemente vlastitog stanja.

* Softver koji implementira SNMP protokol ima grafičko sučelje, koje administratoru mreže omogućava da adresira čvorove u mreži (čijim radom upravlja) i da tim čvorovima šalje poruke-zahtjeve. Administrator koristi taj softver (aplikaciju) u ulozi klijenta; aplikacija-klijent oblikuje zahtjev korisnika-administratora u jedan SNMP zahtjev, i taj zahtjev upućuje na zadanu adresu domaćina.
Da bi neki čvor mreže mogao prihvatiti i izvršiti takav SNMP zahtjev, na tom čvoru treba postojati odgovarajući softver koji ima ulogu SNMP opslužitelja. Dakle, SNMP opslužitelj prihvaća prispjeli zahtjev, i izvršava ga. Ako je to zahtjev tipa GET, onda uzima tražene podatke o stanju čvora na kojem radi, i šalje ih kao odgovor, klijentu. Ako je to zahtjev tipa SET, onda prihvaća podatke koje mu je dostavio klijent, i na temelju njih mijenja stanje odgovarajućih parametara (tablica, i slično) na čvoru na kojem radi.
Napomenimo, SNMP opslužitelj ne bi trebao prihvaćati zahtjeve GET i SET ako ti zahtjevi ne dolaze od pošiljatelja koji je ovlašten slati takve zahtjeve. To se pogotovo odnosi na zahtjeve tipa SET, čije izvršenje mijenja stanje čvora, što može imati i nepovoljne posljedice po rad toga čvora kao i mreže u cjelini. Međutim, P&D ne kažu o ovlastima ništa.

* Uz protokol SNMP definiran je odgovarajući format MIB (Management Information Base); taj format određuje koje se podatke može zatražiti od čvora (ili zatražiti njihovo mijenjanje), i na koji način se ti podaci zapisuju.
Općenito, oni podaci o stanju čvora kojma se može pristupiti pomoću SNMP aplikacije, nazivaju se MIB varijablama; zahtjevom tipa GET, klijent može saznati vrijednosti tih varijabli, dok nardbama tipa SET može mijenjati vrijednosti tih varijabli na nekom udaljenom čvoru čijem je SNMP opslužitelju zahtjev upućen.

* U sadašnjoj verziji formata MIB, koja se naziva MIB-II, varijable čije se vrijednosti mogu promatrati i/ili zadavati (postavljati) u čvorovima mreže, svrstane su u dest grupa. Navedimo neke od tih grupa.
- System - odnose se na opće parametre čvora; ovamo spadaju vrsta sistema/stroja, fizička (geografska) lokacija čvora, datum od kada postoji taj sistem (valjda, od kada je uključen u mrežu), i slično.
- Interfaces - odnose se na podatke o mrežnim adapterima (jednom ili više) preko kojih je taj čvor vezan na mrežu; ovamo spadaju fizičke adrese tih adaptera (adapretri imaju svoje adrese), podaci o tome koliko je paketa (ili okvira) poslano i primljeno preko svakog od tih adaptera, i slično. (P&D ne kažu da li se podaci o broju paketa/okvira odnose na neki ograničeni vremenski interval, što se čini vjerojatnim.)
- IP - odnose se na podatke vezane uz procesiranje/prosljeđivanje IP paketa; ovamo spadaju tablice usmjeravanja IP paketa, te statistički podaci o broju/razmjeru odbačenih (ili izgubljenih) IP paketa, i slično.
- TCP - odnose se na podatke vezane uz uspostavljanje i održavanje TCP veza ...
- UDP - odnose se na podatke vezane uz promet UDP datagrama ...

* Ovim kratkim prikazom pokušali smo naznačiti temeljnu strukturu, način rada, i ulogu protokola/softvera SNMP, kao mrežnog entiteta aplikacijske razine koji je namjenjen ispitivanju i mijenjanju stanja udaljenih čvorova mreže (u dosegu ovlasti mrežnog administratora). Takva ispitivanja i mijenjanja stanja čvorova vrše se u cilju optimizacije rada pojedinačnih čvorova, kao i radi optimizacije rada mreže kao cjeline. Potpuniji opis SNMP protokola i softvera koji ga implementira, prelazi okvire ovog prikaza.


3. Multimedijske aplikacije

* Za pojam multimedij obično se kaže da označava "kombinaciju" teksta, grafike (slika), zvuka i videa ("pokretnih slika"). Pod "kombinacijom" bi ovdje trebalo podrazumjevati prvenstveno metode zapisivanja, prenosa i obrade navedenih vrsta podataka. O načinima rada sa tekstom i grafikom, bilo je riječi u odjeljku o World Wide Webu; u ovom odjeljku govorimo prvenstveno o problematici vezanoj uz prenos video-zapisa (dakle, pokretnih slika), koje redovito bivaju popraćene i odgovarajućim tonskim sadržajem.
O temeljnim problemima koji su vezani uz prenos pokretnih slika govorili smo u poglavlju 7, u kojem smo se bavili problematikom komprimiranja video zapisa. U suštini, prenos video-zapisa (naprimjer, filma) sa nekog izvora do nekog domaćina, na kojem se taj video-zapis (film) zatim reproducira, nije posebno problematičan. Međutim, situacija postaje znatno zahtjevnija ako se prenos video-zapisa mora odvijati on-line; dakle, kada se snimke moraju prenijeti u trenutku njihova nastanka, i moraju biti prenijete primatelju u najkraćem mogućem roku, tako da primatelj može reagirati na tekuće događaje koje promatra preko računalne mreže. Najzanimljivija vrsta takvih on-line prenosa video-zapisa (popraćenih zvukom) naziva se video-konferencom (videoconferencing), tako da ćemo se u ovom poglavlju baviti prvenstveno protokolom koji definira strukturu i način prenosa podataka za potrebe video-konference.

* Protokol aplikacijske razine mrežnog sustava Internet, koji definira strukturu i način prenosa podataka kod on-line multimedijskih aplikacija, naziva se RTP (Real-time Transport Protokol). P&D, str. 649, kažu da je RTP protokol "opće namjene"; valjda su htjeli reći da se temeljne definicije toga protokola dadu implementirati softverskim proizvodima različitih specifičnih namjena.
Kako se to moglo i očekivati, RTP naslanja se na usluge UDP protokola/softvera transportne razine; naime, UDP ne vodi računa o izgubljenim paketim (ne ponavlja njihovo slanje); a kod on-line (ili real-teme; ili, naprosto izravnih) video-prenosa nema ni vremena za takva ponavljanja izgubljenih paketa, odnosno pojedinačnih snimaka koje tvore video-zapis.

* Protokol RTP nosi u svom nazivu pojam "transportni"; s druge strane, za taj smo protokol iznad rekli da spada na aplikacijsku razinu mreže. To pokazuje, kažu P&D, str. 649, kako je ponekad teško smjestiti protokole (i njihove hardverske i/ili softverske realizacije) u neki striktni (i unapred zadani) višeslojni model.
U suštini, radi se o slijedećem. RTP je protokol aplikacijske razine, i to zato što, s jedne strane, koristi usluge transportnog sloja (naslanja se na usluge protokola/softvera UDP), a s druge strane, definira točno one specifične usluge prenosa koje se potrebne za rad multimedijskih aplikacija koje vrše izravan prenos video-zapisa.
Ranije smo iznijeli jedno načelo prema kojem možemo razlikovati da li neki mrežni elemet (protokol/softver) spada na transportnu ili na aplikacijsku razinu; rekli smo, da softver transportne razine ostvaruje mugućnost prenosa, dok softver aplikacijske razine koristi tu mogućnost.
Vrijedi i slijedeće osnovno načelo. Ako neki protokol definira usluge prenosa na način koji je nezavisan od specifičnih potreba pojedinih aplikacija (koje koriste te usluge) onda takav protokol spada na transportnu razinu. S druge strane, ako neki protokol definira proces prenosa podataka na način koji jasno odražava specifične potrebe neke određene aplikacije, onda se takav protokol svrstava na aplikacijsku razinu mrežnog sustava.

* Međutim, RTP se ipak ne uklapa sasvim ni u transportni, ni u aplikacijski sloj. Općenito, razvoj novih (i izrazito zahtjevnih) aplikacija, kao što su multimedijske aplikacije koje podržavaju izravan prenos video-zapisa, iziskuje razvoj specifičnih protokola, koji ponekad nameću i potrebu po izmjeni (nadopuni, ili dodatnom "raslojavanju") osnovnog višeslojnog TCP/IP modela.
Slika 9 pokazuje na koji se način RTP protokol može najprikladnije "smjestiti" u osnovni TCP/IP model mrežne arhitekture; u kontekstu iznad rečenoga, možemo reći da je osnovni aplikacijski sloj ovdje razdjeljen na sloj "čistih aplikacija" (Application), i na jedan njegov podsloj koji obuhvaća sve one protokole/softvere koji su namijenjeni prenosu podataka, ali koji su oblikovani točno u skladu sa potrebama prenosa neke specifične "čiste aplikacije"; RTS spada u taj podsloj aplikacijskog sloja.

Application
RTP
UDP
IP
Subnet







Slika 9

* RTP protokol je tehnički prilično složen, tako da ga ovdje ne možemo podrobno opisivati (nešto potpuniji opis dan je npr. u P&D). U nastavku iznosimo temeljne osobine i funkcije RTP protokola, i neke osnovne podatke o multimedijskim aplikacijama.

* Multimedijske aplikacije se obično dijele na tokovne aplikacije (streaming applications) i konferencijske aplikacije (conferencing applictions).
Tokovne multimedijske aplikacije obično rade u ulozi klijenta koji prihvaća audio i/ili video zapise koje mu dostavlja neki opslužitelj, i reproducira ih na stroju korisnika. Komunikacija se ovdje odvija između dva računalna sustava, bez interakcije čovjeka, tako da je komunikacija ovdja tehnički jednostavnija nego kod konferencijskih aplikacija. O toj vrsti multimedijskih aplikacija govorili smo u poglavlju 6.
Konferencijske multimedijske aplikacije su tehnički znatno zahtjevnije, jer se komunikacija ovdje odvija između većeg broja korisnika (i domaćina) istodobno, i u oba smijera. Naime, iako svi učesnici jedne video-konference obično ne govore istodobno, ipak aplikacija mora omogućavati da svaki učesnik, u svakom trenutku "progovori" (to jest, da nešto kaže), pri čemu to trebaju čuti i vidjeti svi ostali učesnici video-konference. Nadalje, trebalo bi da se svi učesnici video-konference stalno međusobno vide (ako za to ima dovoljno mjesta na ekranu), što znači da se mora stalno odvijati intenzivan dvosmjeran prenos podataka (video-zapisa) između svih učesnika (ili, između svaka dva učesnika) video-konference, odnosno između lokalnih aplikacija koje ti učesnici koriste.
Učesnici video-konference mogu se međusobno vidjeti tako, da na ekranu stroja svakog od učesnika, aplikacija otvori onoliko (malih) prozora koliko ima učesnika u toj video-konferenci, te da u svakom od tih prozora prikazuje pokretnu sliku jednog od učesnika. No, to zavisi od konkretne softverske realizacije konferencijske aplikacije, koja može nuditi razne mogućnosti, kao i od kapaciteta prenosnih veza između domaćina koji sudjeluju u jednoj video-konferenci.

* P&D ističu aplikacije vat i vic, kao najpoznatije konferencijske multimedijske aplikacije; ove aplikacije implementiraju RTP protokol, odnosno korise specifične usluge prenosa audio-vizuelnih zapisa koje im pruža RTP softver (kao element "prenosnog podsloja" aplikacijske razine). Međutim, P&D ne daju pobliži opis samih tih aplikacija, već se ograničavaju na tehnički opis protokola RTP (koji "radi" za te aplikacije).

* Postoji više multimedijskih konferencijskih aplikacija. Da bi korisnici koji koriste različite aplikacije (kao softverske alate "čisto aplikacijske" razine) mogli međusobno komunicirati - dakle, sudjelovati u istoj konferenciji - trebalo je standardizirati način kodiranja audio i video zapisa, tako da različite multimedijske aplikacije budu u stanju valjano interpretirati (reproducirati) kodirane i komprimirane zapise podataka koje primaju od drugih multimedijskih aplikacija, u okviru jedne multimedijske konference.
Postoji više načina (metoda, algoritama) kodiranja zvuka i slike, pri čemu svaki od tih načina ima svoje prednosti i svoje slabosti. U tom kontekstu, bilo bi teško odrediti jednu od tih metoda kodiranja kao onu koju bi morale obavezno koristiti sve multimedijske aplikacije. Umjesto toga, protokol koji definira komunikaciju između multimedijskih aplikacija, omogućava da svaka aplikacija kodira svoje audio i video zapise prema nekoj odabranoj "shemi" (metodi, algoritmu), pri čemu svaka aplikacija obavještava primatelje njenih zapisa prema kojoj su "shemi" kodirani njeni zapisi. Ta obavijest bi aplikacijama-primateljima trebala omogućiti da uspješno dekodiraju zapise koje primaju od te aplikacije-pošiljatelja.
Dekle, format poruka RTP protokola, pomoću kojih se odvija komunikacija (prenos zapisa) između multimedijskih aplikacija, treba sadržavati i jedan prostor (u zaglavlju poruke) za upis podatka koji kazuje prema kojoj je shemi kodiran podatkovni sadržaj koji je sadržan u tijelu te poruke.
RTP protokol definira i niz drugih (zahtjevnijih) postupaka i procesa koji su specifični za izravan prenos audio-vizuelnih zapisa kod konferencijskih multimedijskih aplikacija. Među takve spada naprimjer, postupak sinhronizacije zvuka i slike koji dolaze iz istog izvora, odnosno od iste aplikacije.

* Spomenimo da RTP protokol ne određuje kako postupati kod gubitaka UDP paketa, pomoću kojih se (na transportnoj razini) vrši prenos RTP poruka/zapisa. Prije svega, RTP koristi usluge transportnog protokola/softvera UDP koji ne vodi računa o gubitku paketa (i ne ponavlja slanje izgubljenih paketa). Takvo ponavljanje slanja ne bi ovdje ni imalo smisla, jer bi ponovljeni zapis/paket prekasno stigao do primatelja; događaji se ovdje prenose izravno, u trenutku njihova nastanka, tako da naknadni prikaz izgubljenih "slika" (koje tvore jednu "pokretnu sliku") ne bi imao smisla.
Odluku o tome što učiniti u situaciji kada dolazi do (pre)velikih gubitaka UDP paketa - a to obično znači, do njihova odbacivanja zbog preopterećenosti (zagušenja) usmjerivača i veza - ovdje se prepušta aplikacijama. Aplikacije čiji se UDP paketi gube, trebaju povećati stupanj kompreseije video zapisa koje šalju i/ili smanjiti broj "slika" u sekundi, i na taj način smanjiti količinu bitova (UDP paketa, RTP poruka) koje mreža treba prenijeti u jedinici vremena, i time rasteretiti prenosne veze i usmjerivače. Naravno, povećanje stupnja kompresije i smanjenje broja snimaka u sekundi, umanjuje kvalitet reprodukcije video zapisa na strani primatelja; ali gubitak paketa redovito smanjuje taj kvalitet još više. Jer izgubljeni paketi opterećuju barem dio veza i usmjerivača, a nimalo ne doprinose kvaliteti reprodukcije video zapisa jer uopće ne dospijevaju do svog odredišta.

* Kao što je to rečeno u poglavlju 6, prenos "pokretnih slika" - dakle, prenos dvadesetak statičnih slika u sekundi - iziskuje prenos velike količine bitova. Taj problem dolazi posebno do izražaja kod video-konferencija, kod kojih se pokretne slike istodobno prenose između svih sudionika video-konference; to znači da na ulaz svake konferencijske aplikacije moraju istodobno stizati "pokretne slike" (tj. video zapisi, sadržani u RTP porukama) sa svih drugih aplikacija sudionika te konference. Isto tako, sa svake aplikacije moraju istodobno odlaziti "pokretne slike" prema svim drugim sudionicima konference. (* Uzgred, P&D ne opisuju pobliže na koji način se upravlja sa tim višestrukim prometom, na samom ulazu i izlazu iz aplikacije; a to bi bilo zanimljivo znati. *)

* Zaglavlje RTP poruke sadrži niz polja, među kojima i 32-bitno polje u koje se upisuje jedinstveni identifikacijski broj onog učesnika video konference od kojeg ta RTP poruka dolazi; točnije rečeno, to polje sadrži jedinstveni broj izvora audio-vizuelnih zapisa, jer jedan učesnik može biti sniman sa više kamera; u tom slučaju, svaka kamera postaje jedan nezavisni izvor RTP poruka, i dobiva svoj jedinstveni identifikacijski broj. ... (* Ovo objašnjenje je nepotpuno; naime, čini se da bi kod postojanja više kamera, svaki učesnik trebao svejedno koristiti jednu konferencijsku aplikaciju; ta bi aplikacija u tom slučaju trebala generirati više RTP tokova - dakle, slati RTP poruke sa različitim identifikacijskim brojevima, pri čemu svaki identifikacijski broj označava zapise jedne kamere-izvore. Aplikacija bi pritom trebala sinhronizirati zvuk, tako da na aplikacijama (ekranima) primatelja ne bi došlo do "pomaka glasa" u "višestrukom govoru" onog sudionika koji koristi više kamera, i koji se (valjda!) na ekranima primatelja prikazuje na više slika (jedna slika po svakoj kameri-izvoru). Možda kod postojanja više kamera, aplikacija ugrađuje zvuk samo u jedan od RTP tokova koji te kamere generiraju. ... Te pojedinosti (mogućnosti) nisu ovdje od većeg značaja, ali P&D ne iznose te pojedinosti. *)

* Identifikacijski broj RTP poruke koja stiže na neku konferencijsku aplikaciju, pokazuje koju "pokretnu sliku" (tj. prikaz člana konference) aplikacija treba ažurirati sa sadržajem te RTP poruke. Naravno, ako se želi da svi učesnici video-konference vide na svojim ekranima sve druge učesnike te konference kao "pokretne slike" (i da mogu čuti njihov govor), onda na konferencijsku aplikaciju svakog učesnika konference moraju stalno stizati RTP poruke od svih drugih aplikacija/učesnika konference; to ujedno znači, da svi učesnici/aplikacije moraju stalno slati svoje RTP poruke svim drugim aplikacijama/učesnicima konference.

* RTP (Real-time Transport Protocol) popraćen (nadopunjen) je protokoloma RTCP (Real-time Transport Control Protocol); kaže se da ta dva protokola zajedno, tvore RTP standard. Protokol RTCP isto tako koristi usluge UDP protokola sa transportne razine mrežnog sustava.
Kako je to rečeno, RTP protokol definira format zapisa i proces prenosa audio-vizuelnih zapisa (tj. digitaliziranih zapisa pokretnih slika i zvuka) kod konferencijskih multimedijskih aplikacija.
S druge strane, RTCP protokol definira koje informacije trebaju povremeno razmjenjivati aplikacije koje sudjeluju u multimedijskoj konferenciji, te način i intenzitet razmjene tih informacija. Drugim, riječima, RTP definira proces razmjene podatkovnih sadržaja (kao RTP poruka), dok RTCP definira proces razmjene upravljačkih/kontrolnih informcija između aplikacija koje međusobno razmjenjuju sadržaje (pomoću RTP poruka).

* Na osnovu povremene razmjene kontrolnih informacija sa ostalim aplikacijama, svaka aplikacija može utvrditi koliko se njenih RTP poruka (sa podatkovnim sadržajima) gubi na putu do drugih aplikacija. Na temelju toga, aplikacija može pokušati rezervirati veći kapacitet veza, promijeniti način/shemu kodiranja svojih audio-vizuelnih zapisa, ili pak povećati stupanj komprimiranja svojih zapisa i/ili smanjiti broj slika koje šalje u sekundi. Naravno, ako aplikacija utvrdi da se u procesu prenosa gubi razmjerno vrlo mali broj njenih podataka (paket, poruka), onda aplikacija može i smanjiti stupanj kompresije svojih zapisa, i na taj način omogućiti kvalitetniju reprodukciju njenih audio-vizuelnih zapisa na strani primatelja.

* U okviru razmjene kontrolnih informacija između aplikacija (koju definira RTCP protokol) svaka aplikacija dobiva podatke o kvaliteti rada (tj. o gubitku RTP poruka, itd.) od svake druge aplikacije; na temelju toga, svaka aplikcija može utvrditi relativni stupanj kvalitete vlastitog rada u odnosu na druge aplikacije koje sudjeluju u toj video-konferenci, te izvršiti određene prilagodbe koje bi mogle povećati kvalitet njena rada.

* Dakle, RTCP je jedan upravljački protokol (kako to kazuje pojam "Control" iz njegova naziva) koji definira način razmjene kontrolnih informacija između aplikacija, sa ciljem optimizacije njihova rada.
Intenzitet razmjene RTCP poruka može varirati, ali količina prenosa upravljačkih informacija ne bi smjela prelaziti 5% od količine od količine RTP poruka koje se prenose u okviru dane multimedijske konference. (Nije rečeno da li se ta količina mjeri brojem bitova, UDP paketa, ili RTP/RTCP poruka.)


IAB i ITU protokoli

* Za RTP i RTCP kažemo da su IETF protokoli jer je te protokole razvila radna grupa Internet Engineering Task Force (IETF), koja je dio organizacije Internet Activities Board (IAB) koja "nadzire" razvoj protokola za Internet.
S druge strane, organizacija ITU (International Telecommunication Union), koja zarvija standarde (protokole) za sva područja digitalne i analogne komunikacije, razvila je standard (to jest, skup protokola) H.323 za potrebe multimedijske komunikacije pomoću mreža koje rade prema načelu usmjeravanja paketa (packet-switching), kakva je i mreža Internet.
Međutim, RTP/RTCP standard je naišao na mnogo širu primjenu u konferencijskim multimedijskim aplikacijama koje rade na Internetu. S druge strane, standard H.323 koristi se prvenstveno u "Internet telefoniji", to jest u aplikacijama koje omogućavaju "telefoniranje preko Interneta", odnosno općenito, vrše prenos paketa sa kodiranim zvučnim zapisima preko Interneta.

* Prenos paketa sa kodiranim zvučnim zapisima preko Interneta, omogućava da se preko Interneta vode telefonski razgovori. Takav prenos odvija se između dvaju H.323 terminala, na kojima rade odgovarajuće "telefonske aplikacije". ... (Uzgred, P&D ne kažu da li postoje takve "telefonske aplikacije" koje omogućavaju da se razgovor odvija između većeg broja terminala, to jest da li postoje aplikacije koje omogućavaju održavanje audio-konference.)
H.323 terminal može biti radna stanica (PC računalo) koja je vezana na Internet i na kojoj radi odgovarajuća "telefonska aplikacija", ili pak neka posebna naprava "nalična telefonu" (kažu P&D) koja je vezana na Internet, i na kojoj radi odgovarajući "softver za mrežni rad". Ukratko, da bi nešto bilo H.323 terminal, mora biti vezano na Internet, i imati odgovarajući softver za telefoniranje. Povrh toga, mora sadržavati mikrofon i zvučnik, naravno.

* Standard/protokol H.323 definira i vrata/izlaze (gateways) koji omogućavaju razmjenu podataka između mreža različitih vrsta. Naprimjer, takva vrata omogućavaju razgovor između nekoga tko razgovara pomoću telefonske aplikacije na umreženom računalu (dakle, preko H.323 terminala), i nekog tko govori preko običnog telefona.
Dakle, ovdje se odvija prenos podataka između jednog H.323 terminala i jednog običnog telefona; to ujedno znači, da se ovdje vrši razmjena podataka između Interneta kao mreže sa usmjeravanjem paketa (packet-switching), i javne telefonske mreže koja radi prema načelu uspostavljanja puteva (sklapanja krugova; circuit-switching).

* Takva međumrežna komunikacija sastoji se iz dva dijala.
Prije svega, kada neki H.323 terminal uputi telefonski poziv nekom običnom telefonu, mreža Internet treba utvrditi koja se vrata (koja povezuju sustav Internet sa telefonskim sustavom) nalaze najbliže fizičkoj lokaciji onog običnog telefona kojeg je terminal H.323 pozvao. Naime, ako se želi telefonirati "preko Interneta", onda podaci treba da napuste Internet i pređu u telefonsku mrežu tek onda kada se približe pozvanom telefonskom broju najviše što je moguće; dakle, podaci trebaju napustiti Internet kroz ona vrata koja se nalaze najbliže pozvanom običnom telefonu. Tražena vrata nalazi "posebna jedinica" nazvana gatekeeper (koju P&D ne opisuju podrobnije).
Kada gatekeeper odredi optimalna vrata za dani telefonski poziv koji je uputio H.323 terminal, onda se uspostavlja komunikacija između tog terminala i tih vrata; drugim riječima, H.323 terminal komunicira sa odabranim vratima, i to razmjenom paketa sa digitalnim zapisima zvuka preko mreže Internet. Pakete sa digitalim zapisom zvuka formira "telefonska aplikacija" na H.323 terminalu, i to na osnovu zvučnih signala koje prima od govornika, preko mikrofona. Ta razmjena paketa tvori prvi dio komunikacije između jednog sugovornika koji koristi terminal H.323, i drugog sugovornika koji koristi običan telefon.
Drugi dio komunikacije odvija se između spomenutih vrata i drugog sugovornika koji koristi običan telefon. Ukratko, vrata pretvaraju sadržaje paketa koje primaju od terminala H.323, u signale kakve prenosi standardni telefonski sustav, te ih preko tog sustava upućuju drugom sugovorniku koji govori preko običnog telefona. Analogno, vrata prihvaćaju telefonske signale koje primaju od drugog sugovornika, pretvaraju ih u pakete sa kodiranim zapisima zvuka, i te pakete upućuje na H.323 terminal, preko mreže Internet; telefonska aplikacija te pakete pretvara u zvučne signale, koji se emitiraju pomoću zvučnika.

* Dakle, razgovor između govornika koji koristi H.323 terminal, i govornika koji govori preko običnog telefona, odvija se preko vrata koja imaju ulogu prevoditelja zapisa/signala, tako da svaki od komunikatora može slati i primati sadržaje zapisane na onaj način koji je u skladu sa mogućnostima (tehničkim osobinama) njegova sustava.
Uzgred, iako sustav Internet često koristi telefonsku mrežu kao fizičko sredstvo za prenos svojih podataka (paketa), valja imati na umu da su sustav Internet i sustav telefonske mreže, dva različita i odvojen sustava. Svaki od tih sustava zapisuje i prenosi sadržaje (podatke) na neki svoj način, tako da sadržaji koji se prenose jednim sustavom nisu "izravno razumljivi" drugom sustavu. Zato je za uspostavu komunikacije između ta dva sustava neophodan prevoditelj, koji zapise (signale/pakete) jednog sustava pretvara u zapise drugog sustava, ohranjujući pritom njihov sadržaj.


4. Zaključak

* U ovom poglavlju pokušali smo ukratko opisati nekoliko protokola aplikacijske razine mrežnog sustava; potpuniji prikaz tih protokola (i aplikacija koje te protokole implementiraju) iziskivao bi mnogo više prostora nego što ga toj temi možemo ovdje posvetiti.
Predstavili smo pet protokola aplikacijske razine koji se međusobno prilično razlikuju, i koji definiraju strukturu i način rada nekih od najkorištenijih mrežnih plikacija.
- Protokol DNS (Domain Name System) definira sustav koji pretvara domenska (mnemonička) imena entiteta (domaćina, čvorova, sučelja, ...) u njihove IP adrese.
- Protokol SMTP (Simple Mail Transfer Protocol) definira sustav za rad sa računalnom poštom.
- Protokol HTTP (HyperText Transport Protocol) definira sustav za rad sa web stranicama.
- Protokol SNMP (Simple Network Management Protocol) definira sustav koji omogućava ispitivanje i mijenjanje stanja udaljenih čvorova mreže, u cilju upravljanja radom mreže.
- Protokol RTP (Real-time Transport Protocol) definira sustav za prenos podataka za potrebe multimedijskih aplikacija.

* Na aplikacijskoj razini mrežnog sustava definirano je (i implementirano) i niz drugih protokola. Međutim, navedenih pet protokola može se ujedno smatrati tipičnim primjerima različitih vrsta protokola (i aplikacija) kakve nalazimo na aplikacijskoj razini mrežnog sustava.
DNS spada u onu vrstu aplikacija koje korisnici rijetko koriste izravno, ali koje su neophodne ta rad drugih aplikacija.
SNMP spada u onu vrstu aplikacija koje su namjenjene upravljanju radom mreže, i koje koriste prvenstveno administratori mreže.
SMTP i HTTP predstavljaju dvije vrste aplikacija koje obični korisnici najviše koriste; dakle, aplikacije za rad sa računalnom poštom, i aplikacije za rad sa web stranicama.
RTP spada u onu vrstu aplikacija (često još u fazi razvoja) koje su namjenjene radu sa multimedijskim sadržajima.

* Moglo bi se reći da protokoli aplikacijske razine, koje smo ovdje opisali, znatno nalikuju protokolima transportne razine. To je u znatnoj mjeri točno; međutim, dok su protokoli transportne razine (poput protokola TCP i UDP) oblikovani nezavisno od sadržaja koje prenose, protokoli koje smo ovdje opisali, definiraju formate zapisa sadržaja koje prenose i operacije (postupke) sa tim zapisima, na način koji je primjeren tim sadržajima, odnosno njihovoj namjeni. To je ujedno ono što te protokole čini protokolima aplikacijske razine; ili pak, zbog toga se ti protokoli svrstavaju na aplikacijsku razinu.
Naprimjer, protokoli TCP i UDP sa transportne razine, nisu oblikovani na način koji bi bio posebno prikladan za prenos sadržaja web stranica, ili pak za izravan prenos multimedijskih sadržaja. (Uzgred, ti su protokoli razvijeni prije nego što su postojale web stranice i multimedijske aplikacije). S druge strane, protokoli HTTP i RTP/RTCP oblikovani su točno u skladu sa potrebama specifičnih sadržaja sa kojima rade, što ih onda čini protokolima aplikacijske razine.

* Konačno, valja razlikovati protokole aplikacijske razine, od njihovih softverskih implementacija.
Aplikacija, kao softverska implementacija nekog protokola aplikacijske razine, "sakriva" protokol od korisnika, iako realizira strukture podataka i operacije koje taj protokol definira.
Između struktura i operacija koje definira neki protokol aplikacijske razine, i korisnika implementacije tog protokola, obično stoji grafičko komunikacijsko sučelje koje korisniku bitno olakšava rad sa podacima (unos i prikaz) i izvođenje operacija. Zato korisnik obično poznaje aplikacije samo na razini rada sa njihovim komunikacijskim sučeljima; u ovom poglavlju iznijeli smo neke elemente na kojima se zasniva rad tipičnih mrežnih aplikacija.
------ (/4) ------








URS-p5



5. Temeljni elementi upravljanja mrežom




Elementi (alati, sustavi) za upravljanje računalnim mrežama omogućuju ljudima koji upravljaju mrežama (network managers) da izvode razne operacije i aktivnosti, koje obuhvaćaju:
- promatranje mrežnih elemenata (naprava, softvera) i prikupljanje podataka o njihovu stanju i radu; analiziranje i vrednovanje prikupljenih podataka raznih vrsta;
- reagiranje na tekuće događaje u mreži i otklanjanje problema koji nastaju u radu pojedinih mrežnih elemenata;
- mijenjanje svojstava (parametara) mrežnih elemenata (sustava) i načina njihova rada; takve promjene mogu biti izvedene kao reakcija ne neke događaje (probleme), ili sa ciljem postizanja optimalnog načina rada mrežnih elemenata.
U svagdanjem govoru, pojam "manager" ima pretežno poslovno značenje; u govoru o upravljanju mrežnim sustavima, pojam "manager" znači "onaj tko upravlja mrežnim elementima (napravama)", odnosno mrežom. Pojam "manager" ovdje prevodimo sa upravljač; pritom upravljač može biti čovjek ili softver. Kada je upravljač čovjek, onda se obično naziva adninistratorom mreže ili mrežnim operaterom; kada je upravljač softver, onda se naziva upravljačkom aplikacijom.

Da bi mogli upravljati mrežom, entiteti (alati, sustavi) za upravljanje mrežom trebaju biti "povezani na mrežu". Ta povezanost je ovdje prilično izravna jer su entiteti koji upravljaju mrežom zapravo mrežne aplikacije koje "rade na mreži". Kaže se da to stvara jednu osebujnu situaciju: da bi entiteti za upravljanje mrežom mogli raditi dobro (i obavljati svoje poslove), potrebno je da mreža radi dobro; u suprotnom, upravljački entitet (kao mrežna aplikacija) ne može dosegnuti udaljene elemente mreže i otkloniti greške (kvarove) koje su se pojavile u njihovu radu. Dakle, ispada da mreža mora "raditi dobro", da bi se moglo "otklanjati kvarove" u mreži. Međutim, ta naoko paradoksalna situacija, u praksi ne izgleda tako. Naime, mreža može raditi na suboptimalan način, ali još uvijek dovoljno dobro da upravljaču omogući pristup do određenih mrežnih naprava i otklanjanje slabosti u njihovu radu. Nadalje, upravljač može otklanjati kvarove počevši od mjesta (mrežnog čvora) na kojem se nalazi i time stvarati mogućnost (put) da dosegne susjedne čvorove i riješi probleme na tim čvorovima, i tako redom dalje. Upravljanje mrežom je kontinuiran proces, koji se ne izvodi samo kad mreža potpuno prestane raditi; proces upravljanja stalno prati rad mreže i nastoji održavati taj rad i mrežu u optimalnom stanju.
S druge strane, da bi upravljači mreže (osobe i aplikacije) mogli obavljati svoj posao, potrebno je da imaju odgovarajući pristup svim mrežnim elementima čijim radom trebaju upravljati. Dakle, rad računalne mreže i upravljanje tim radom, zavise jedan od drugog i međusobno su uvjetovani, ali ta međuzavisnost nije takva da lako (ili nužno) dovodi do međusobnog blokiranja tih dvaju sustava i procesa. Kasnije ćemo vidjeti da se upravljanje mrežom M1 može učiniti nezavisnim od te mreže i to na taj način, da se napravi mrežu M2 koja vodi do svih mrežnih elemenata od M1, pri čemu M2 služi samo za upravljanje elementima od M1. Takvo rješenje iziskuje izgradnju "dvostruke mreže", što obično nije opravdano ni potrebno činiti.

Na slici 1 prikazane su temeljne komponente sustava za upravljanje računalnom mrežom. U nastavku ovog poglavlja iznosimo podrobnije opise tih komponenata. Opisivanje ovdje otpočinje od najdonjeg sloja na danoj slici.




Slika 1 (iz Clemm)


Mrežne naprave

U ovim bilješkama uglavnom slijedimo terminologiju (nazive, pojmove) koju koristi Clemm; ta terminologija ne izgleda uvijek besprijekorno, tako da ponegdje odstupamo od doslovnog prijevoda; pored toga, ponekad i ne postoji jedna riječ kojom se može doslovno (točno) prevesti neki engleski naziv. Terminologija obično nije sasvim primjerena (ni u jednom jeziku), a nije ni sasvim trajna, jer se s vremenom neki nazivi napuštaju i uvode se novi. Terminologija je ovdje važna, jer ako se ne razumije što točno znači neki pojam, onda se ne može razumjeti što zapravo kaže neka tvrdnja. Za pojmove možemo općenito reći da "znače" (nešto), da "se odnose na" (nešto), ili da "referiraju na" (nešto).
Mrežna naprava (network device) je svaka naprava u mreži, čijim radom treba upravljati, kaže Clemm. U računalnoj mreži postoji mnogo vrsta naprava čijim radom treba upravljati; Clemm pod napravom ovdje misli na hardverske elemente, ali upravljati treba i softverskim elementima koji su dio mrežnog sustava, i to na svim razinama mrežnog sustava. Nadalje, Clemm kaže da se u području upravljanja računalnim mrežama, naprave sa kojima se upravlja općenito nazivaju mrežnim elementima (network elements - NEs). Opet, elementima se ovdje (implicitno) smatraju fizičke (hardverske) naprave, kako to sugerira i slika 1. Samo za sebe, to nije loše, ali onda nije primjereno opisivati (definirati) mrežne naprave (i mrežne elemente) pomoću upravljanja, jer upravlja se i softverskim elementima koji su dio računalne mreže.

Da bi se moglo upravljati nekim mrežnim elementom, taj element treba sadržavati određeno upravljačko sučelje (management interface) preko kojeg sustav za upravljanje (koji upravlja mrežom) može komunicirati sa tim mrežnim elementom, za potrebe upravljanja. Pojam "sučelje" je puno korišten, i to sa raznim značenjima, koja se nikad ne objašnjavaju. "Imati sučelje" općenito znači da neka naprava (element) može "primati" naredbe i podatke zadanog oblika, i/ili "izdavati" naredbe i podatke zadanog oblika. Sučelje može biti hardversko, ali je češće softversko; dakle, to je općenito jedna komponenta (nekog elementa/naprave) koja može primati i slati određene naredbe i podatke.
Upravljačko sučelje omogućava upravljačkom sustavu da uputi neki zahtjev (naredbu) mrežnom elementu, kao i da taj element uputi odgovor (upravljaču) o izvršenju toga zahtjeva. Upravljač može uputiti zahtjev mrežnom elementu (napravi, čvoru) da postavi neke svoje parametre na određene vrijednosti (koje su zadane u tom zahtjevu). Nadalje, upravljač može tražiti od mrežnog elementa da mu dostavi neke statističke podatke o svom radu, o iskorištenosti nekih njegovih portova, o stanju neke od njegovih veza (prema drugom elementu), i niz drugih podataka. Na temelju takvih podataka, upravljač može utvrditi neke slabosti u radu mreže, odnosno postaviti parametre nekog mrežnog elementa na optimalan način.
Preko svog upravljačkog sučelja, mrežni element može slati određene podatke (poruke) upravljačkom sustavu. To mogu biti odgovori na zahtjeve upravljača, ali mrežni element može slati poruke (obavijesti) upravljačkom sustavu i bez da ga taj sustav potiče na to svojim zahtjevima. Mrežni element obično šalje obavijesti upravljačkom sustavu onda kada se dogodi neki "osebujan" (neočekivan) događaj na tom elementu, ili u njegovom okruženju koje izravno utječe na njegov rad. Upravljački sustav (ili upravljač) može ovdje biti administrator mreže i/ili neka upravljačka aplikacija. Događaj (event) o kojem mrežni element obavještava upravljača može biti prekid neke veze (na tom elementu), ili pak pregrijavanje tog elementa (računala) do kojeg je došlo zbog lošeg rada ventilatora. Događaj može biti i ispunjenost prijemne (ulazne) memorije (bafera) na nekom usmjerivaču, do kojeg može doći iz više razloga. Ispunjenost prijemnog bafera obično dovodi do odbacivanja dolazećih paketa podataka na tom usmjerivaču (koji nema više slobodnog prostora za njihov prijem).
Clemm kaže da su neke mrežne naprave prilično "brbljave"; na primjer, usmjerivači mogu stalno slati obavijesti (poruke) upravljačkom sustavu u toku svoga rada, bez da se na tim usmjerivačima događa išta posebno. Takve poruke mogu naprosto izvještavati o odvijanju raznih procesa na tim usmjerivačima. Poruke koje izvještavaju o nekim događajima koji vjerojatno iziskuju intervenciju upravljača, nazivaju se alarmima. Ali nisu svi alarmi jednake težine, tako da alarm sam po sebi ne znači da se dogodilo nešto zaista "alarmantno".
Dakle, upravljačka komunikacija između mrežnih elemenata i upravljačkog sustava koji upravlja njihovim radom je dvosmjerna i odvija se preko upravljačkog sučelja tih elemenata, kao i preko upravljačkih sučelja upravljačkog sustava.

Upravljački agent
Za upravljačku komunikaciju kaže se da je asimetrična, jer u toj komunikaciji upravljački sustav ima ulogu upravljača (manager) koji vodi proces komunikacije, kao i proces upravljanja koji se naslanja na tu komunikaciju. S druge strane, mrežni element ima ulogu agenta (agent) koji "podržava upravljanje" time što izvršava zahtjeve upravljača i obavještava ga o raznim događajima (na agentu i u njegovom okruženju) o kojima agent treba izvještavati upravljača. Clemm ilustrira odnos između upravljača i agenta pomoću slike 2.



Slika 2 (iz Clemm)


Prije nego iznesemo Clemmovo objašnjenje slike 2, recimo da se agentom obično ne naziva sav mrežni element (naprava), nego samo jedna (softverska) komponenta tog elementa koja izvodi upravljačke operacije na tom elementu. Pritom se ta komponenta (punim imenom) naziva upravljačkim agentom (management agent), iako se obično koristi kraći naziv "agent". Dakle, upravljački sustav (upravljač) naređuje što treba učiniti (koju upravljačku operaciju treba izvesti) na nekom mrežnom elementu, a upravljački agent toga elementa to zaista izvršava; na taj način upravljač (preko upravljačkog agenta) upravlja mrežnim elementom.
Prema slici 2, upravljački sustav (managing system) upravlja sa upravljanim sustavom (managed system). Upravljač ima ovdje ulogu klijenta jer upravljač je ovdje onaj koji daje naredbe (zahtjeve; requestes). S druge strane, upravljački agent (upravljanog sustava) ima ovdje ulogu servera jer je agent onaj koji izvršava te naredbe, odnosno odgovara na te zahtjeve.
Međutim, slika 2 pokazuje da agent isto tako šalje upravljaču poruke o događajima (events). Agent šalje takve poruke bez zahtjeva upravljača, tako da Clemmova podjela uloga ne obuhvaća cjelokupnu komunikaciju između upravljača i agenta. Naime, kad agent šalje poruku o događaju, tada agent poprima ulogu klijenta, a upravljač postaje server koji bi trebao "odgovoriti" na tu poruku. Međutim, upravljač nije obavezan odgovarati na poruke agenta, a obično to i ne čini; upravljač ne mora ni reagirati na poruke agenta, ako smatra da to nije potrebno učiniti. Dakle, upravljač je uvijek u poziciji onog koji naređuje i odlučuje. Da zaključimo, Clemmova slika pokazuje osnovni odnos između upravljača i agenta (kao klijenta i servera), ali poruke agenta ipak "istupaju" iz tog osnovnog odnosa.

Ilustracijom na slici 3, Clemm daje dodatno objašnjenje o ulogama Upravljača i agenta, odnosno klijenta i servera.



Slika 3 (iz Clemm)


Komunikacija u odnosu klijent-server je asimetrična, isto kao i komunikacija u odnosu upravljač-agent, ali asimetričnost "pokazuje" u obrnutim smjerovima, kako to ilustrira slika 3.3. O odnosu klijent-server obično se govori u situacijama kad jedan entitet (server) opslužuje (odgovara na zahtjeve) mnogo klijenata, kako to pokazuje desni dio slike 3. Naprimjer, jedan web server opslužuje (to jest, izvršava zahtjeve) velikog broja web preglednika (kao klijenata).
S druge strane, u odnosu upravljač-agent, velik broj agenata izvršava naredbe (zahtjeve) jednog upravljača, kako to pokazuje lijevi dio slike 3. Naprimjer, upravljački agenti na velikom broju mrežnih elemenata izvršavaju naredbe (zahtjeve) istog upravljača tim mrežnim elementima.
Dakle, kod upravljanja računalnim mrežama, upravljač ima ulogu klijenta mnogih agenata jer im upućuje svoje zahtjeve, ali taj upravljač istodobno (na taj način) upravlja velikim brojem agenata. S druge strane, izvršavanjem zahtjeva upravljača, agenti postaju serveri, ali izvršavanjem tih zahtjeva ujedno bivaju upravljani od strane svog klijenta (upravljača).

Govor (terminologija) o sučeljima i agentima je često nedosljedan. Za to postoji više razloga; prije svega, lakše je govoriti nedosljedno, nego dosljedno; nadalje, ponekad je govor načelan, pa se i pojmovi koriste sa nepreciznim značenjima; ponekad govor nastoji biti precizan i tada se događa da pojmovi ne izgledaju jednako kao u prethodnom slučaju. Pojmove "sučelje" i "agent" objasnili smo iznad; pokušajmo to učiniti još jednom, uzimajući u obzir načelan govor i precizan govor.
Načelno govoreći, upravljani mrežni element može se zvati agentom koji izvršava naredba upravljačkog sustava; pritom, taj element treba imati neko upravljačko sučelje preko kojeg komunicira sa upravljačkim sustavom.
Precizniji govor o tim stvarima mogao bi izgledati ovako.
Mrežni element sadrži jednu komponentu koja upravlja tim elementom; ta komponenta to čini na taj način da "postavlja" određene parametre (vrijednosti) u tom elementu, koji onda oblikuju njegov način rada (ponašanje). Tu komponentu mrežnog elementa nazivamo upravljačkim agentom (management agent) tog mrežnog elementa. Nadalje, upravljački agent komunicira sa upravljačkim sustavom preko određenog upravljačkog sučelja (management interface).
Dakle, mrežni element nije agent, nego ima svog upravljačkog agenta (može ih imati više); upravljačko sučelje ne pripada izravno mrežnom elementu, nego je to dio njegovog upravljačkog agenta.

Clemm nastoji biti vrlo iscrpan u terminološkim objašnjenjima, ali često miješa terminologiju "načelnog govora" sa terminologijom "preciznog govora", bez da jasno istakne tu razliku, što njegov govor ponekad čini nedosljednim. Pogledajmo njegovu priču o onome što smo iznijeli iznad; pritom ta priča proširuje ono što je rečeno iznad, uvođenjem pojma MIB, koji je jedan od središnjih pojmova u govoru o upravljanju mrežnim sustavima. Slika 4 ilustrira strukturu onog o čemu govorimo u nastavku.



Slika 4 (iz Clemm)


Prije svega, slika zadržava načelnu podjelu na "Upravljača" i "Agenta"; to su ovdje "Managing System" (upravljački sustav) i "Managed System" (upravljani sustav). Ali slika ujedno pokazuje da se Agent zapravo sastoji iz mnoštva različitih komponenata. Pritom je ovdje posebno važna podjela tog Agenta na dva osnovna dijela, i to na:
- mrežni element ("Real Resource, device ..."), promatran bez upravljačkog agenta,
- upravljački agent, kojeg Clemm dalje dijeli na nekoliko dijelova i pod-dijelova.
Pogledajmo strukturu upravljačkog agenta, kako je predstavljena na slici 4

Dakle, upravljački agent sastoji se od tri osnovne komponente:
(1) upravljačkog sučelja;
(2) informacijske osnove za upravljanje (Management Information Base - MIB);
(3) logike (inteligencije) upravljačkog agenta

Upravljačko sučelje smo već opisali; to sučelje određuje oblike sadržaja koje razmjenjuju upravljački sustav i upravljački agent; ti sadržaji obuhvaćaju razne naredbe (zahtjeve, poruke) i razne podatke. Kako je već rečeno, postoji mnogo vrsta zahtjeva koje upravljač može postaviti agentu; na primjer, da dostavi neke podatke o radu upravljanog elementa, da postavi neki parametar na tom elementu na određenu vrijednost, i mnoge druge. Preko tog sučelja, upravljački agent šalje odgovore i svoje poruke upravljačkom sustavu. Upravljač može tražiti od agenta da postavi veličinu nekog memorijskog bafera na određenu vrijednost; agent može poslati poruku upravljaču da je došlo do prekida neke veze.

MIB (Management Information Base) je jedan od središnjih elemenata (i pojmova) u upravljanju mrežnim sustavima. Clemm se izuzetno potrudio da objasni što je to MIB; u tu svrhu koristio je i slike pasa, koje ovdje nismo preuzeli; psi su lijepi, ali ovdje nisu neophodni.
MIB, kojeg smo iznad nazvali "informacijskom osnovom za upravljanje", je jedna uređen skup podataka, koji omogućuju upravljanje određenim mrežnim elementom. Clemm obično koristi pojam "informacija", ali ovdje radije govorimo o podacima. Ukratko rečeno, MIB sadrži one podatke (vrijednosti) koji pokazuju stanje nekog upravljanog elementa; mijenjanjem tih podataka (to jest, vrijednosti zapisa u MIBu), upravljački agent mijenja stanje tog mrežnog elementa i time upravlja njegovim radom. Mrežne naprave različitih vrsta imaju MIBove različitih struktura i sadržaja; mrežne naprave iste vrste, obično imaju MIBove iste strukture, ali različitih sadržaja; sadržaj svakog MIBa pokazuje stanje mrežne naprave na kojoj radi upravljački agent kojem taj MIB pripada.
To je bilo načelno (i nepotpuno) objašnjenje; preciznije objašnjenje može biti prilično dugo. Prije svega, postavlja se pitanje koji podaci (parametri) su "bitni" za koji mrežni element. Odabirom tih podataka definira se jedan MIB, a time i jedan upravljački pogled (management view) na jedan element kojim se upravlja. Taj upravljački pogled određuje što se može saznati o stanju i radu te naprave, i na što se može utjecati (mijenjati) u stanju i radu te naprave. Dakle, odabir sadržaja koji ulaze u MIB je svakako bitan.
Nadalje, odabrani podatkovni sadržaji MIBa mogu biti uređeni (strukturirani) na mnogo načina; stabla i tablice čine se posebno pogodnima u tom kontekstu. Na primjer, MIB za usmjerivač može sadržavati tablicu sa osnovnim podacima o svim portovima jednog usmjerivača. Takva tablica može sadržavati po jedan redak za svaki port; svaki stupac takve tablice pokazuje jedno svojstvo (ili stanje, aktivnost) za svaki port. Jedan stupac može sadržavati podatak koji protokol se izvodi na tom portu; drugi stupac može sadržavati broj jedinica podataka koje su prenijete preko tog porta u nekom vremenskom razdoblju.
Na jednom mrežnom elementu može biti implementirano više upravljačkih agenata, pri čemu svaki agent ima svoj MIB. Ti MIBovi mogu biti međusobno nezavisni, ali to mogu biti i različiti pogledi na istu temeljnu ("stvarnu") bazu podataka za taj mrežni element. Pojam "različiti pogledi" ovdje znači različiti izbori podataka iz iste temeljne baze podataka za neki mrežni element, koju (bazu) određuje i oblikuje proizvođač tog mrežnog elementa.
Konačno, iznad je rečeno da se mijenjanjem vrijednosti (zapisa) u MIBu, mijenja stanje upravljane mrežne naprave. Ta tvrdnja ne odnosi se na sve zapise u MIBu; kod nekih zapisa to ne bi imalo smisla činiti, u drugim slučajevima to ne bi pomoglo. Na primjer, ne bi imalo smisla mijenjati podataka o broju IP paketa koje je neki port odbacio u zadnjih sat vremena; promjena takvog podatka u MIBu ne bi promijenila stvarnost na koju se taj podatak odnosi. Mijenjanje vrijednosti indikatora (u MIBu) koji pokazuje da je neka veza u prekidu, ne bi pomoglo; veza ne bi time bila popravljena; umjesto toga, potrebno je popraviti tu vezu. O MIBovima će biti još puno govora u ovim bilješkama.

Temeljna (sržna) logika agenta (core agent logic) i umetnuta (ugrađena) upravljačka inteligencija (embedded management intelligence) su komplicirani nazivi za procesnu komponentu agenta. Ta komponenta uzima naredbe i podatke koje prima od upravljača, i na temelju njih izvodi konkretne operacije. U osnovi, to su operacije čitanja podataka iz MIBa i slanja traženih podataka upravljaču, kao i mijenjanja zadanih vrijednosti u MIBu danog upravljačkog agenta. Kako je već rečeno, time se mijenja stanje i stanje upravljane mrežne naprave. Na primjer, naredba (zahtjev) upravljačke aplikacije, tipa "Dostavi stanje brojača X", pokreće proces na agentu, koji čita stanje određenog podatka (varijable, objekta) u MIBu i pročitanu vrijednost šalje upravljačkoj aplikaciji, kao odgovor na taj zahtjev.
Odgovori na upite upravljača ne mogu se uvijek izravno pročitati u MIBu; ponekad treba pročitati odgovarajuće podataka iz MIBa i na temelju njih izračunati odgovor na upit upravljača. Dakle, procesna komponenta treba sadržavati i odgovarajuće procedure (algoritme) koje izvode takva računanja. Te procedure su (ili realiziraju) ono što je na slici 4 nazvano temeljnom (sržnom; core) logikom upravljačkog agenta i ugrađenom (umetnutom; embedded) inteligencijom agenta. Ukratko, pored operacija čitanja MIBa i mijenjanja vrijednosti MIBa, upravljački agent treba biti u stanju izvoditi određena računanja, odnosno treba posjedovati određenu "inteligenciju".

Slika 4 sadrži i pojmove koji opisuju odnose između triju "slojeva" (glavnih blokova) koje prikazuje ta slika. Upravljački sustav upravlja (manages) agentom; strelica pokazuje u oba smjera, ali to ne znači da i agent upravlja upravljačkim sustavom; međutim, agent šalje svoje odgovore i poruke upravljačkom sustavu i time utječe na njegov rad. MIB predstavlja (represents) stanje upravljane naprave; strelica na slici pokazuje u oba smjera, ali ne bi valjalo reći da stvarna naprava "predstavlja" stanje MIBa; može se reći da se stvarnost "odražava" (pokazuje) u stanju MIBa. Konačno, upravljački agent nalazi se u interakciji sa (interacts with) mrežnim elementom. To je točno, jer agentov MIB sadrži podatke o stanju mrežnog elementa (koje se mijenja), a neki zapisi iz MIBa određuju (zadaju) neke vrijednosti na mrežnom elementu; na primjer, stanje konfiguracije danog mrežnog elementa.
Iznesimo (ili ponovimo) još nekoliko napomena o onome što prikazuje slika 4, jer ta slika prikazuje bit onoga o čemu se puno govori u prostoru upravljanja mrežnim sustavima.
Na mrežnom elementu može raditi više upravljačkih agenata; pritom, svaki od tih agenata ima svoje upravljačko sučelje i može imati svoj zasebni MIB. Na istu bazu podataka mogu postojati različiti pogledi (views); MIB svakog od agenata (na istoj mrežnoj napravi) može biti jedan pogled na temeljnu bazu podataka koja sadrži sve relevantne podatke o toj napravi. MIB svakog agenta obuhvaća ("vidi") one podatke o upravljanoj napravi koji su relevantni za one upravljačke poslove koje obavlja taj agent.
Različiti agenti (i njihovi MIBovi) na istom mrežnom elementu mogu biti oblikovani prema potrebama raznih upravljačkih aplikacija, koje upravljaju različitim aspektima rada toga mrežnog elementa. Neki podaci o upravljanoj napravi, koji su zanimljivi za jednu upravljačku aplikaciju, ne moraju biti zanimljivi za drugu upravljačku aplikaciju, koja upravlja drugim aspektima rada te mrežne naprave.
Različiti upravljački agenti na istoj mrežnoj napravi služe različitim svrhama i obavljaju različite poslove (operacije). Na primjer, jedan upravljački agent može biti namijenjen tome da odgovara na upite upravljačkih aplikacija o statističkim podacima koji pokazuju performanse i uspješnost rada nekog mrežnog elementa. Takav agent obavlja jedan specifičan skup operacija i treba jedan specifičan skup podataka, odnosno jedan specifičan pogled na dani mrežni element; to znači da treba jedan specifičan MIB koji odražava (i ispunjava) potrebe toga agenta. Takav agent ima i svoje specifično upravljačko sučelje preko kojeg komunicira sa upravljačkim aplikacijama. Drugi upravljački agent može biti namijenjen poslovima konfiguriranja mrežnih elemenata određene vrste; na primjer, usmjerivača. Takav agent ima svoj specifičan pogled na taj mrežni element (to jest, svoj MIB), koji je različit od pogleda (MIBa) upravljačkog agenta kojeg smo opisali iznad. Taj agent ima i svoje specifične procesne osobine i mogućnosti (svoju "logiku" i "inteligenciju"), kao i svoje specifično upravljačko sučelje.

Upravljački podaci (MO, MIB)
Podaci ("informacije") o mrežnim elementima su od suštinske vrijednosti za učinkovito upravljanje mrežnim elementima i sustavima; zato se u nastavku moramo još neko vrijeme baviti MIBom i sličnim stvarima. Mrežni elementi (naprave) imaju niz svojstava koja su relevantna za upravljanje tim elementima; navedimo neka od tih svojstava, odnosno podatke koji pokazuju ta svojstva.
- Vrsta i verzija instaliranog softvera (na nekom mrežnom elementu). Taj podatak je potreban iz više razloga; na primjer za to da upravljački proces može utvrditi da li treba mijenjati neki softver, i da li treba "zakrpati", ili mijenjati neki dio softvera.
- Iskorištenost portova, koju pokazuju razni statistički podaci o njihovu radu. Na temelju tih podataka može se utvrditi da li je neka naprava (usmjerivač) optimalno iskorištena, te da li je potrebno povećati neke njene kapacitete, i koje.
- Razni podaci o fizičkom okruženju nekog mrežnog elementa; takvi podaci mogu biti temperatura, kvaliteta napajanja (napona) i drugi.
- Kvaliteta rada rashladnog sustava neke mrežne naprave; potrebno je da postoji mogućnost udaljenog promatranja rada toga sustava, jer pregrijavanje mrežne naprave (u radu) može biti uzrokom grešaka u njenu radu, a može i dovesti do njenog bitnog fizičkog oštećenja.
- Broj jedinica podataka (paketa) koje se prenesu preko nekog sučelja u jedinici vremena. Tu veličinu treba pratiti konstantno; nagli porast broja paketa određene vrste na nekom sučelju može biti pokazateljem da je taj mrežni element izložen nekoj vrsti napada. Takvi napadi onemogućuju normalan rad mrežnih elemenata poput servera i dovode do toga da ti elementi "odbijaju pružiti usluge" (denial of service - DoS) koje ti elementi inače pružaju. Prijemni sustav takvog elementa zagušen je intenzivnim slanjem poruka (zahtjeva, podataka) tom mrežnom elementu, što izaziva njegovo zagušenje tako da taj element ne može prihvaćati normalne zahtjeve normalnih tražitelja njegovih usluga, a onda ni izvršavati te zahtjeve.

Pored podataka koji daju uvid u stanje mrežnog elementa i njegova okruženja, potrebno je da postoji mogućnost postavljanja i mijenjanja raznih vrijednosti (parametara) na mrežnim napravama. Na primjer, potrebo je postavljati i mijenjati razna vremena isteka (timoeuts) za razne procese i protokole; takva vremenska određenja potrebna su za to da bi se procesi odvijali na optimalan način i da bi time mrežni element radio na optimalan način.
Potrebno je da postoji mogućnost oblikovanja raznih vrsta pravila ponašanja na raznim mrežnim elementima. Na primjer, na vatrozidu (firewall) jedno pravilo ponašanja može glasiti: "Odbacuj pakete tipa X, osim ako dolaze sa IP adresa koje počinju nizom znakova xxx."

Podaci i pravila raznih vrsta i oblika - razni "segmenti upravljačkih informacija" - koji opisuju razna svojstva mrežnih elemenata i njihovih okruženja, nazivaju se upravljačkim objektima (management objects - MOs). Jedan MO može biti podatak o vrsti nekog ventilatora; drugi MO može biti podatak o trenutnom stanju (radu) toga ventilatora. MO može biti neki podatak o nekom portu neke mrežne kartice; MO je i statistički podatak o uspješnosti rada toga porta. MO može biti neko pravilo ponašanja (rada) vatrozida ili nekog drugog mrežnog elementa.
Naziv "upravljački objekt" pokazuje da se elementarni (atomarni) upravljački objekti mogu promatrati na višim razinama apstrakcije, odnosno organizacije. Na primjer, svi podaci o jednom ventilatoru tvore jedan upravljački objekt; isto čine i svi podaci o jednoj mrežnoj kartici, kao i o jednom vatrozidu. Konkretni upravljački agenti i upravljački sustavi (protokoli) definiraju svoje specifične upravljačke objekte; ali ovdje govorimo o upravljačkim objektima općenito.

Clemm stalno ističe razliku između "stvarnih resursa" (naprava, elemenata) i MOova koji "predstavljaju" te entitete. Pritom ističe kako jedna stvarna naprava (entitet) može biti promatrana i opisana (predstavljena) na razne načine, to jest sa različitim MOovima. To je točno, ali to je i očito, tako da Clemm to nepotrebno ističe mnogo puta. Jasno je da se iste stvari može opisati na različite načine. Jasno je da različitim upravljačkim agentima, koji obavljaju različite poslove, trebaju različiti podaci ("MOovi") o istim mrežnim elementima; zato različiti agenti imaju različite MIBove (koji se ne moraju uvijek nazivati tim imenom).

Ovdje se moramo još jednom suočiti sa pitanjem što točno znači MIB, odnosno da li postoji više vrsta MIBova. Clemm kaže slijedeće. Skup svih upravljačkih podataka (objekata, "MOova") koje mrežni element (naprava, softver) "pokazuje" (otkriva; exposes) upravljačkim aplikacijama, naziva se informacijskom osnovom za upravljanje (MIBom) toga mrežnog elementa. Dakle, MIB (management information base), odnosno podatkovna osnova za upravljanje nekog mrežnog elementa je skup svih podataka o nekom mrežnom elementu, koji mogu biti relevantni za neku upravljačku aplikaciju. To neka bi bio MIB mrežnog elementa; s druge strane, MIB svakog upravljačkog agenta sadrži neki podskup od toga MIBa; taj podskup sadrži one podatke koji su potrebni za izvođenje onih operacija koje taj upravljački agent izvodi za potrebe jedne ili više upravljačkih aplikacija.
Drugim riječima, krećući se kroz ne sasvim precizan govor, došli smo do zaključka da je MIB mrežnog elementa skup svih onih podataka o tom elementu (fizička svojstva, konfiguracija, podaci o radu, itd.) koji mogu biti potrebni u okviru nekih poslova upravljanja radom toga elementa. S druge strane, MIBovi pojedinih upravljačkih agenata, koji obavljaju samo jednu vrstu poslova, ili pak širi spektar poslova (operacija), imaju definirane svoje MIBove, čiji su sadržaji podskupovi (pogledi) na MIB mrežnog elementa. Takav zaključak izgleda prihvatljivo; ali do tog zaključka došli smo čitajući stranicu 81 Clemmove knjige; ako je tako kako smo ovdje zaključili, onda je to trebalo jasno istaknuti ranije.


Upravljački sustavi

U ovom poglavlju spomenuli smo više mrežnih elemenata i uveli niz tehničkih pojmova iz područja upravljanja mrežnim sustavima. U kontekstu tih entiteta i pojmova, sadržaj slike 3.1 (sa početka ovog poglavlja) može se prikazati na nešto detaljniji i precizniji način, kako je to učinjeno na slici 6.



Slika 6 (iz Clemm)


Dakle, polazni element "Network Devices" (mrežne naprave), o kojem smo do sada govorili, razdijeljen je na same naprave ("Real World") i na upravljačke agente ("Management Agents") tih naprava, odnosno agente koji rade (upravljaju) sa tim napravama.
U ovom odjeljku bavimo se upravljačkim sustavima ("Management Systems", na slici 3.1 i na slici 6).

Upravljački sustavi sastoje se od raznih alata (aplikacija) za upravljanje mrežnim elementima, odnosno računalnim mrežama. Te alate nazivamo upravljačkim aplikacijama (management applications). Pojmovi "upravljač" (manager), "upravljačka aplikacija" (management application) i "upravljački sustav" (management system), obično znače isto i koriste se kao sinonimi. Ali te pojmove treba ponekad razlikovati, zbog različitih značenja koje poprimaju u različitim kontekstima (ulogama). Na primjer, "upravljač" može biti uloga (a ne element) koju ima neki element u nekoj situaciji. Mrežni element E2 može imati ulogu agenta u odnosu na mrežni element E1, a ulogu upravljača u odnosu na mrežni element E3. Mrežni entiteti mogu tvoriti hijerarhijske strukture takvih odnosa i uloga; slika 7 prikazuje uloge i odnose koje smo spomenuli iznad, od kojih se sastoje takve strukture.



Slika 7 (iz Clemm)


Mrežni element na srednjoj razini slike 7 ima ulogu agenta u odnosu na mrežni element sa vrha slike, jer izvršava njegove upravljačke naredbe. S druge strane, isti mrežni element sa sredine slike ima ulogu upravljača u odnosu na mrežni element sa dna slike, jer tom elementu izdaje naredbe, koje element sa dna slike izvršava (i vraća mu rezultate).
Slika 8 prikazuje odnos glavnih entiteta i pojmova o kojima ovdje govorimo.



Slika 8 (iz Clemm)


Dakle, upravljački sustav ima ulogu upravljača, odnosno jest upravljač (manager). To možemo reći i na slijedeći način: upravljački sustav je skup upravljačkih alata, koji imaju ulogu upravljača. Upravljani sustav - mrežni element, odnosno mreža takvih elemenata - upravljan je od strane upravljačkog sustava, s kojim se nalazi u interakciji. Upravljanje se izvodi pomoću upravljačkih agenata koji rade na upravljanom sustavu. Rad agenata vođen je zahtjevima (naredbama) upravljačkih aplikacija, a oslanja se na sadržaje MIBova mrežnih naprava kojima upravlja, i mijenja te sadržaje.

Upravljački sustav održava svoju bazu osnovnih (i relativno trajnih) podataka o mrežnim elementima sa kojima upravlja. Na taj način, upravljački sustav ne mora tražiti svaki podatak o upravljanoj napravi od nekog upravljačkog agenta, već taj podatak ima u vlastitoj bazi podataka.
Nisu svi podaci prikladni za čuvanje na razini upravljačkog sustava, jer se često mijenjaju; one podatke koji se često mijenjaju, upravljačka aplikacija treba uvijek tražiti od odgovarajućeg agenta, čiji MIB uvijek sadrži tekuće stanje (podatke) danog mrežnog elementa.
Uzgred, rekli smo da je MIB mrežnog elementa jedna obuhvatna struktura relevantnih podataka o tom elementu. Rekli smo da su MIBovi pojedinih upravljačkih agenata podskupovi podataka koji su sadržani u MIBu mrežnog elementa. Ali nije rečeno tko održava (promjenljive) podatke u MIBu mrežnog elementa; agenti mijenjaju neke podatke u svojim MIBovima (na primjer, konfiguracijske vrijednosti); time mijenjaju te vrijednosti i u MIBu mrežnog elementa. Ali tko upisuje u MIB mrežnog elementa podatak o trenutnom stanju nekog porta, statističke podatke o njegovu radu i slične stvari, nije rečeno. Održavanje vlastitog MIBa može (i vjerojatno treba) biti dio osnovnih operacija koje izvodi neki mrežni element, ali nismo uočili da je to Clemm igdje jasno rekao.
Vratimo se bazi podataka upravljačkog sustava. Na slici 9, ta baza podataka nazvana je "sjenom MIBa" jer sadrži kopiju podataka iz MIBa. Takvo čuvanje kopije podataka, sa ciljem da se ne mora stalno odlaziti po te podatke na njihov izvor, naziva se "keširanjem" (caching). Primjena te metode rada - to jest, rad sa kopijama izvornih podataka - nosi rizik da te kopije podataka više ne odgovaraju stanju stvarnosti. Međutim, taj rizik varira i može se bitno smanjiti prikladnim odabirom podataka i periodičkim izradama novih kopija keširanih podataka. Dakle, neke vrijednosti (stanja) mijenjaju se relativno rijetko; keširana kopija podataka osvježava se - to jest, zamjenjuje se novom kopijom - u vremenskim intervalima (i situacijama) u kojima se smatra potrebnim (i dovoljnim) da to bude učinjeno. Konačno, nisu svi podatkovni sadržaji jednako "osjetljivi" na zastarijevanje; neki podaci mogu poslužiti svrsi (to jest, upravljačkim aplikacijama) i ako nisu sasvim točni.



Slika 9 (iz Clemm)


Kako to pokazuje slika 9, izvorni podaci o mrežnom elementu, sabrani u MIB tog mrežnog elementa, nalaze se na tom mrežnom elementu. Upravljački sustav može održavati kopiju odabranih podataka iz MIBa svakog od mrežnih elemenata sa kojima upravlja; tu kopiju naziva se sjenom (shadow) tog MIBa. Kopije MIBova upravljanih mrežnih elemenata mogu biti sabrane u jednu bazu podataka na razini upravljačkog sustava; ta baza onda sadrži sjene MIBova svi mrežnih elemenata kojima upravlja taj upravljački sustav. Ali stvarni MIBovi (sa ažurnim podacima) uvijek se nalaze na upravljanim napravama, kako to pokazuje slika 9.

Upravljački sustav, odnosno sustav za upravljanje računalnom mrežom, namijenjen je tome da se pomoću njega upravlja računalnom mrežom. Pritom se pod upravljanjem mrežom ovdje podrazumijeva otklanjanje slabosti i kvarova u radu mreže, te stalno nastojanje da se dosegne optimalan način rada računalne mreže. Međutim, u načelu, upravljački sustav nije nužan za rad mreže, pa čak ni za njen optimalan rad. Ako mreža radi na optimalan način, onda upravljački sustav mreže ne treba mijenjati ništa u njenu radu; upravljački sustav može stalno promatrati stanje i rad mreže, ali ne treba mijenjati stanja ni način rada mrežnih elemenata. Dakle, računalna mreža može, u načelu, raditi optimalno i bez da njenim radom upravlja neki upravljački sustav. Rad računalne mreže ne zavisi izravno od upravljačkog sustav: pad upravljačkog sustava ne bi smio poremetiti rad računalne mreže kojom taj sustav upravlja.
Upravljački sustav potreban je za to da se mrežne elemente i računalnu mrežu nastoji dovesti u optimalan način rada i da se te elemente i mrežu nastoji održati u takvom načinu rada. Upravljački sustav potreban je zato što u praksi, stvari ne funkcioniraju na optimalan način, ako ih se ne nadzire i upravlja; ali kod računalnih mreža, upravljačke operacije nisu dio produkcijskog prijenosa mreže, koji se odvija nezavisno od tih operacija.


Upravljačka mreža

Upravljačke aplikacije su zapravo mrežne aplikacije: dakle, aplikacije koje rade na računalnoj mreži i koriste prijenosne usluge računalne mreže. Za upravljanje mrežnim elementima, upravljačke aplikacije trebaju komunicirati sa tim elementima, odnosno sa upravljačkim agentima tih mrežnih elemenata. Ta komunikacija odvija se preko računalne mreže.
Računalna mreža koja povezuje upravljački sustav (upravljačke aplikacije) i upravljane mrežne elemente, naziva se upravljačkom mrežom, odnosno mrežom za upravljanje (management network). S druge strane, računalnu mrežu koja prenosi podatke korisnika, naziva se produkcijskom mrežom (production network). Upravljačka mreža i produkcijska mreža mogu biti dvije fizički različite (odvojene) mreže, ili mogu biti realizirane na istoj fizičkoj mreži. Jer na istoj fizičkoj (hardverskoj) osnovi mogu raditi različiti softverski sustavi.
Upravljački agenti su aplikacije koje rade (izvode se) na mrežnim elementima (čvorovima) kao i druge aplikacije, odnosno softverski sustavi. Na primjer, kao što softver za usmjeravanje radi na usmjerivačima, ili kao što razni operacijski sustavi rade na računalima i sličnim napravama. Kao i druge aplikacije, upravljački agenti imaju svoje portove na koje su vezani i preko kojih komuniciraju sa upravljačkim aplikacijama. Na primjer, agent od upravljačkog sustava SNMP (Simple Network Management Protocol) "osluškuje" port 161 na kojem očekuje naredbe (zahtjeve) upravljačkog sustava SNMP za kojeg radi (ili sa kojim radi u paru).
Kad mrežni element primi IP paket koji je adresiran na taj element (kao odredište), taj element promatra sadržaj tog IP paketa. Upravljački sustav SNMP koristi UDP protokol transportne razine (to jest, razine upravljanja prijenosom). Dakle, kad mrežni element nađe u IP paketu UDP poruku koja je upućena na port 161 (kao odredišni port), onda mrežni element predaje tu poruku svom SNMP upravljačkom agentu. Taj upravljački agent onda obrađuje tu poruku i postupa u skladu sa naredbom (zahtjevom) koju je u toj UDP poruci primio od upravljačke aplikacije (sustava) SNMP.

Umrežavanje za upravljanje
Mrežni element može biti povezan na upravljački sustav koji upravlja radom mreže, preko posebnog upravljačkog porta (management port) na tom elementu. Na usmjerivačima je to obično jedno serijsko sučelje, kaže Clemm. Spomenimo ovdje da se pojmovi "port" (iz prve rečenice) i "sučelje" (iz druge rečenice), obično koriste "naizmjenično", u tekstovima o računalnim mrežama; pritom nitko nikad ne kaže što je to port a što je to sučelje, i koja je razlika između njih, ako takva razlika postoji. Ovdje uzimamo da je sučelje nešto širi pojam od porta. Port je fizička točka preko koje se podaci emitiraju (šalju) u vezu; u takvoj točki emitiranja, bitovi se pretvaraju u signale koji se kreću žicom ili optičkim kablom; bitovi (signali) se obično kreću jedan za drugim, što znači da se na portu pretvara "paralelni" zapis bitova (bajtova, riječi) u serijski "zapis".
Pored fizičke određenosti, port je određen i logičkom oznakom (brojem). Dakle, na istom fizičkom ulazu (portu) može raditi mnogo logičkih portova, koji su označeni brojevima kao što je 161, kojeg smo spomenuli iznad. Sadržaji IP paketa koji stižu na isti fizički port, mogu se dijeliti po oznakama logičkih portova koje su zapisane u UDP i TCP zaglavljima tih paketa.
Ovdje uzimamo da je sučelje širi pojam od porta. Svako sučelje prima i šalje svoje jedinice podataka preko nekog (svog) porta, i to fizičkog i logičkog; ali pored slanja i primanja jedinica podataka, sučelje izvodi i neke operacije sa tim jedinicama podataka. To može biti neki proces pripreme (oblikovanja) podataka za slanje, ili neki proces kontrole ispravnosti kod primanja podataka. Preostaje nadati se da je takvo shvaćanje pojmova "port" i "sučelje" dobro, ili da će se jednog dana negdje naći bolje objašnjenje.



Slika 10 (iz Clemm)


Na serijsko sučelje može se vezati prijenosno računalo pomoću serijskog kabela; slika 3.10 ilustrira takvo vezivanje prijenosnog računala na jedan usmjerivač. Računalo (terminal) koje se vezuje na neku mrežnu napravu na način kako je to učinjeno na slici 10, zbog izvođenja nekih upravljačkih radnji (operacija), naziva se "zanatskim terminalom" (craft terminal). Taj terminal onda služi kao "konzola" preko koje tehnička osoba može komunicirati (raditi sa; "interact with") tom napravom. U toj komunikaciji (interakciji), tehničar (operater) može ispitati stanje te mrežne naprave, otkloniti neke slabosti u njenu radu (izvršenjem nekih softverskih promjena na napravi) i podesiti razne parametre (vrijednosti) na toj napravi, u cilju postizanja optimalnog rada te naprave. Spomenimo da prijevod "zanatski terminal" možda ne zvuči lijepo, ali nije na poznat ljepši prijevod, pa ćemo u nastavku koristiti ovog ("craft" znači zanat, vještina, itd.).
U praksi ne bi bilo prikladno (ni optimalno) upravljati mrežnim napravama na način da tehničar (operater) ide sa prijenosnim računalom od jedne naprave do druge, spaja se na napravu na način kako je to opisano iznad, i da se onda izvodi upravljačke operacije na toj napravi. Bolji način rada sa velikim brojem mrežnih naprava bio bi preko terminalskog servera (terminal server), na način kako to ilustrira slika 11.




Slika 11 (iz Clemm)


Terminalskim serverom je ovdje nazvan server koji ima ulogu preklopnika između zanatskog terminala i većeg broja mrežnih elemenata. Terminalski server ima jedan port na kojeg se vezuje zanatski terminal, kako to pokazuje slika 11. Nadalje, terminalski server ima mnogo "serijskih portova sučelja" (serial interface ports) preko kojih je fizički povezan sa mnogim mrežnim elementima. Drugim riječima, terminalski server ima mnogo portova, pri čemu je preko svakog od tih portova fizički vezan na jedan mrežni element, kako to pokazuje slika 11. Terminalski server omogućava (i održava) komunikaciju između zanatskog terminala i jednog mrežnog elementa preko svakog od svojih "sučeljnih portova".
Vezivanjem svog zanatskog terminala na terminalski server, operater mreže stječe mogućnost vezivanja na svaki mrežni element (i upravljanja njime) koji je vezana na taj terminalski server. Zanatski terminal najprije izvodi proces (postupak) svog vezivanja na terminalski server. Zatim operater preko tog terminala zadaje serveru broj porta na kojeg želi da "preklopi" (usmjeri) njegovu daljnju komunikaciju. Od tada dalje, terminalski server prenosi komunikaciju između zanatskog terminala i mrežnog elementa s kojim je taj server povezan preko zadanog porta. Dakle, terminalski server omogućava operateru da sa svog zanatskog terminala komunicira sa velikim brojem mrežnih elemenata, bez da pritom izravno (fizički) vezuje svoj terminal na svaki od tih elemenata; to vezivanje izvodi terminalski server umjesto njega.
Upravljački port na svakom mrežnom elementu naziva se konzolnim portom (console port) toga elementa; dakle, terminalski server omogućava zanatskom terminalu da komunicira sa mnoštvom mrežnih elemenata kao da je izravno vezan na njihove konzolne portove.
Kad mrežni operater (upravljač mrežom, ili tehničar koji ispituje mrežu) završi rad sa nekim mrežnim elementom, onda pošalje terminalskom serveru posebnu poruku (naredbu koja ima zadani prefiks) koju server prepoznaje kao poruku za njega (a ne kao poruku za neki mrežni element na nekom portu). Na taj način operater završava rad (komunikaciju) sa nekim mrežnim elementom i ulazi u komunikaciju sa terminalskim serverom. U toj komunikaciji operater može zatražiti od tog servera da njegovu komunikaciju usmjeri na neki drugi port (toga servera); operater time stupa u komunikaciju sa nekim drugim mrežnim elementom.

U računalnim mrežama postoje daljnje mogućnosti poboljšanja opisanog načina rada (upravljanja) sa mrežnim elementima. Terminalski server ima svoju lokalnu (Ethernet) adresu u lokalnoj mreži (u kojoj se nalazi) i svoju IP adresu u globalnoj mreži. To omogućava operateru mreže da se sa svojim zanatskim terminalom veže na neki terminalski server preko mreže, bez da se pritom izravno fizički (kabelom) spaja na taj terminalski server. Na taj način, upravljanje mrežom može se izvoditi preko te iste mreže. Dakle, zanatski terminal vezuje se na neki terminalski server preko mreže; zadaje tom serveru broj porta (na tom serveru) preko kojeg želi komunicirati; server vezuje zanatski terminal preko zadanog porta na konzolni port onog mrežnog elementa koji je vezan na taj port terminalskog servera.
Terminalski server ima lokalnu (Ethernet) i IP adresu, tako da se operator (administrator) mreže može vezivati sa svojim terminalom na razne terminalske servere, a time i na one mrežne elemente koji su vezani na te terminalske servere. Vezivanje na terminalske servere redovito iziskuje određene ovlasti; inače bi svatko mogao upravljati mrežom kako hoće. Nadalje, Clemm spominje da terminalski serveri imaju "nekoliko desetaka portova" na koje mogu biti vezane razne mrežne naprave. Broj portova može znatno varirati, ali spomenuta brojka sugerira da jedan terminalski server ne ostvaruje upravljačke veze sa jako velikim brojem mrežnih elemenata. Ti elementi se vjerojatno nalaze u njegovom užem okruženju; isto tako, mrežni administrator obično upravlja mrežnim elementima u nekom ograničenom fizičkom prostoru. Ali u nekim mrežnim sustavima, poput okosnica, "uže okruženje" može biti fizički prilično široko.
Konačno, "zanatski terminal" može biti neka upravljačka aplikacija (softver) koja radi na nekom mrežnom čvoru. Taj čvor ne mora biti posebno (upravljačko) računalo, pogotovo kad se radi o upravljanju relativno malom mrežom. Dakle, poslove upravljanja mrežom ne mora izvoditi mrežni administrator, već to mogu raditi upravljačke aplikacije. Aplikacije vjerojatno nisu prikladne za obavljanje svih upravljačkih poslova, ali mogu obavljati mnoge poslove tekućeg nadzora mreže i upravljanja njenim radom.

Sustav za pristupanje (upravljanje) mrežnim elementima preko terminalskog servera, kojeg smo opisali iznad, zapravo uspostavlja jednu upravljačku mrežu pomoću (preko) koje se izvodi upravljanje produkcijskom mrežom (koja vrši prijenos korisničkih podataka). Dakle, takav način upravljanja produkcijskom mrežom iziskuje uspostavu upravljačke mreže sa terminalskim serverima, kakvu smo opisali iznad. Nadalje, slabost takvog sustava je u tome što administrator mreže (ili upravljačka aplikacija) mora točno znati na koji broj porta terminalskog servera je vezan koji mrežni element.
Jednostavniji način rada je da se mrežnim elementima pristupa preko njihovih mrežnih adresa, a ne izravnim vezivanjem na neki terminalski server i odabirom određenog broja njegova porta. Pod mrežnim elementima, Clemm ovdje očito misli na usmjerivače, jer kaže da dodjeljivanje IP adresa tim elementima, omogućava da se tim elementima šalju IP paketi podataka (a time i razne naredbe), kao što se paketi šalju domaćinima (koji imaju IP adrese).

Dakle, upravljač (administrator ili aplikacija) šalje upravljačke poruke mrežnim elementima (usmjerivačima) na njihove IP adrese. Pritom je ovdje uzeto da se upravljačke poruke usmjerivaču šalju na jedan njegov poseban fizički port: usmjerivač ne koristi taj port za prijenos produkcijskog prometa mrežom; preko tog porta, usmjerivač se "vezuje na mrežu, kao što to čine domaćini", kaže Clemm. Govor o posebnom portu preko kojeg se izvodi upravljačka komunikacija sa mrežnim elementima, zapravo znači da ovdje postoji posebna upravljačka mreža (odvojena od produkcijske mreže čijim elementima se ovdje upravlja). Upravljanje mrežnim elementima izvodi se slanjem IP poruka tim elementima, i to na poseban upravljački port. Clemm kaže da poseban upravljački port nije konzolni port kojeg smo opisali iznad, koji služi administratoru mreže za izravno vezivanje zanatskog terminala na mrežnu napravu.
Konkretno, preko upravljačkog porta izvodi se upravljanje mrežnim elementima pomoću upravljačkih aplikacija (sustava) kao što je SNMP (Simple Network Management Protocol). Preko konzolnog porta, administrator zadaje naredbe (sa svog zanatskog terminala) upravljanom mrežnom elementu (izravno, ili preko terminalskog servera); te naredbe zadaju se u pisanom obliku, pomoću softverskog alata (sučelja) CLI (Command-Line Interface). Općenito, konzolni port namijenjen je pojedinačnim aktivnostima administratora mreže, a ne softverskom sustavu koji upravlja radom mreže (i koji radi preko mreže).

U gornjem opisu, upravljačka komunikacija odvija se preko posebnog upravljačkog porta; Clemm kaže da prijenosnici preko tog porta ne prosljeđuju podatke (za druge čvorove), nego se preko njega "vezuju na mrežu, poput domaćina" i izvode svoju upravljačku komunikaciju, odnosno upravljački sustav komunicira s njima preko toga porta. Time se zapravo uspostavlja posebna upravljačka mreža (barem na logičkoj razini); zato se ovdje kaže da se upravljački promet odvija "izvan pojasa" (out of band). Clemm ne objašnjava taj pojam; ali čini se da taj naziv označava da se upravljački promet odvija odvojeno od produkcijskog prometa (to jest, preko posebnog porta). Međutim, odvojenost upravljačkog porta ne mora značiti da se upravljački promet odvija sasvim zasebnom (odvojenom) mrežom; taj promet može se i dalje odvijati istim vezama.

Treća mogućnost uspostave komunikacijskog sustava za upravljanje računalnom mrežom je ta, da se upravljačka komunikacija u cijelosti odvija preko produkcijske mreže. Dakle, ovdje ne postoji zasebna upravljačka mreža, niti zasebni upravljački port na fizičkoj razini, već se upravljački promet u cijelosti odvija preko veza i fizičkih portova preko kojih se odvija produkcijski prijenos podataka. U takvom slučaju kažemo da se upravljački promet odvija "u pojasu" (in band), jer se odvija zajedno sa ostalim podacima koje taj mrežni element (usmjerivač) prenosi. Na temelju IP adrese odredišta, mrežni element (usmjerivač) zna da li je IP paket (koji je stigao na neki njegov ulazni port) "običan" IP paket kojeg treba proslijediti dalje, ili je taj IP paket namijenjen njemu. IP paketi koji su adresirani na IP adresu nekog usmjerivača, sadrže neke upravljačke sadržaje (upite, naredbe, podatke) koje neki upravljač šalje tom usmjerivaču.

Upravljačke mreže
Posebni portovi za prijenos upravljačke komunikacije na usmjerivačima, mogu biti dio fizički zasebne upravljačke mreže preko koje se vrši upravljanje produkcijskom mrežom. Ali upravljačka komunikacija "izvan pojasa" i posebni upravljački portovi, ne iziskuju nužno postojanje fizički zasebne upravljačke mreže. Upravljačka mreža može koristiti posebne upravljačke portove na mrežnim elementima (usmjerivačima), ali se fizički prijenos upravljačkih sadržaja može odvijati preko produkcijske mreže; dakle, istim sustavom usmjerivača i veza kojim se odvija prijenos korisničkih podataka. Upravljačka mreža može biti jedna zasebna logička i funkcijska cjelina, koja radi na istoj fizičkoj infrastrukturi (prijenosnom sustavu) na kojem radi i produkcijska mreža sa kojom se upravlja. Slika 12 ilustrira dva moguća načina uspostave upravljačke mreže, odnosno dva odnosa između upravljačke i produkcijske mreže.




Slika 12 (iz Clemm)


Na slici 12(a), upravljački i produkcijski promet prenose se istom fizičkom mrežom. Dakle, prijenos korisničkih podataka i upravljačkih naredbi tvore dva logički odvojena sustava, ali odvijaju se preko istog fizičkog mrežnog sustava.
Slika 12(b) ilustrira drugu mogućnost, kod koje je uspostavljena upravljačka mreža koja je fizički odvojena od produkcijske mreže. Ovdje produkcijska mreža vrši prijenos korisničkih podataka, dok je upravljačka mreža namijenjena samo prijenosu upravljačkih podataka.

Postavlja se pitanje koji je od dva načina uspostavljanja upravljačke mreže bolji. Svaki od ta dva načina ima određene prednosti i slabosti.
Uspostavljanje fizički zasebne upravljačke mreže donosi niz pogodnosti; navedimo neke od njih.
- Upravljačka komunikacija odvija se nezavisno od prometa u produkcijskoj mreži, kao i nezavisno od toga da li produkcijska mreža uopće funkcionira. To omogućava upravljanje produkcijskom mrežom i onda kad ta mreža ne radi dobro, ili ne radi uopće.
- Zasebna upravljačka mreža omogućava da se intervenira na nekom usmjerivaču onda kad je došlo do njegova zagušenja ili pada (u produkcijskoj mreži). Dakle, zasebna upravljačka mreža omogućava da se intervenira na nekom usmjerivaču onda kad je to najpotrebnije, a kad je taj čvor teško dostupan preko produkcijske mreže.
- Promet upravljačkih sadržaja u mreži je relativno mali u usporedbi sa korisničkih podataka. Međutim, taj promet je neravnomjeran, i ponekad se odvija u naletima, što može omesti odvijanje produkcijskog prometa u mreži. Takvi naleti događaju se kad upravljačka aplikacija preuzima sa nekog čvora (usmjerivača) statističke podatke za duže razdoblje o njegovu radu. Ako postoji zasebna upravljačka mreža, onda upravljački promet ne ometa odvijanje produkcijskog prometa u mreži.
- Zasebnu (odvojenu) upravljačku mrežu je lakše zaštititi od napada. Tu mrežu koristi samo jedna vrsta korisnika (administratori mreže) i njom se prenose samo upravljački podaci. Drugi korisnici i podatkovni sadržaji nemaju pristupa toj mreži.

Glavna slabost uspostavljanja fizički zasebne upravljačke mreže je to, da tu mrežu treba fizički napraviti. Za to su potrebni dodatni mrežni elementi (računala), veze (kablovi), kao i fizički prostor u kojem je ta mreža smještena. To onda povećava ukupnu cijenu izgradnje računalne mreže.
Nadalje, kod izgradnje zasebne upravljačke mreže postavlja se pitanje da li treba izgraditi još jednu zasebnu upravljačku mrežu koja služi upravljanju upravljačkom mrežom. U načelu, takav postupak mogao bi ići u nedogled, ali se u praksi negdje mora stati. Ovdje se staje već na prvom koraku; dakle, ako postoji fizički zasebna upravljačka mreža (za upravljanje produkcijskom mrežom), onda se ta upravljačka mreža koristi i za upravljanje tom upravljačkom mrežom. Upravljačka mreža je bitno jednostavnija od produkcijske mreže kojom upravlja, i ima mnogo manje elemenata, korisnika i prometa. Zato nema potrebe graditi posebnu upravljačku mrežu za upravljanje upravljačkom mrežom. U krajnjem slučaju, ako upravljačka mreža padne, upravljanje se može izvoditi preko produkcijske mreže (koja u ovom slučaju služi kao rezerva) upravljačkoj mreži.
Uspostava fizički zasebne upravljačke mreže poželjna je u onim dijelovima (globalne) računalne mreže koji su od ključnog značaja za rad te mreže. Takvi dijelovi su na primjer okosnice. Međutim, zbog dodatnih troškova koje iziskuje izgradnja zasebne upravljačke mreže, takve zasebne mreže uspostavljaju se samo na onim mjestima koja su izrazito kritična (neophodna, problematična) za rad produkcijske mreže.

Mrežni elementi (usmjerivači) su obično oblikovani na takav način da omogućuju upravljanje uz prijenos upravljačkih podataka "u pojasu" i "izvan pojasa", odnosno uz unutarpojasni (in-band) prijenos i uz izvanpojasni (out-of-band) prijenos upravljačkih podataka. U prvom slučaju, prijenos upravljačkih podataka odvija se pomoću produkcijske mreže, kako je to objašnjeno iznad; u drugom slučaju, prijenos se može isto tako odvijati preko produkcijske mreže, ali usmjerivači ovdje imaju posebne upravljačke portove. Prijenos upravljačkih podataka preko zasebne mreže isto tako spada u izvanpojasni način rada. Kod postojanja zasebne upravljačke mreže, u slučaju kvara te mreže, upravljačka komunikacija prebacuje se na produkcijsku mrežu, kako je to rečeno iznad.


Organizacija upravljanja

Govorili smo o mrežnim elementima, o upravljačkim aplikacijama, upravljačkim agentima i upravljačkim mrežama. To su sve tehnički elementi (hardver i softver) od kojih se sastoji sustav za upravljanje računalnom mrežom, odnosno kojima taj sustav upravlja. Pored tehničkih elemenata, za uspješno upravljanje mrežom potrebno je organizirati proces upravljanja, kao i rad onih ljudi koji sudjeluju u tom procesu. Organiziranje rada grupe ljudi koji upravljaju radom računalne mreže (koristeći pritom tehničke elemente koje smo opisali iznad), naziva se "organizacijom podrške upravljanju" (management support organization).

Proces upravljanja računalnom mrežom uključuje slijedeće vrste poslova i zadataka:
- Promatranje rada mreže sa ciljem da se uoči pojave nepravilnosti (grešaka) u njenu radu.
- Utvrđivanje vrste nepravilnosti (greške) i načina njena otklanjanja; izvršenje procesa otklanjanja nepravilnosti (greške) u radu mreže.
- Uvođenje novih mrežnih usluga; uključivanje novih korisnika u mrežu i isključivanje korisnika sa mreže.
- Promatranje performansi mreže; poduzimanje preventivnih mjera kada se zaključi da neke performanse opadaju. Na primjer, zamijeniti neki hardverski element.
- Planiranje unaprjeđenja mreže (network upgrade) na razini softvera i hardvera. Planiranje proširenja i promjene oblika (strukture) mreže; takve promjene oblika (strukture) mreže nazivaju se promjenama topologije mreže.

Ranije smo se susreli sa nazivima kao što su upravljač, tehničar, operater i administrator mreže; svi ti nazivi mogu se primijeniti na osobu koja se bavi održavanjem rada računalne mreže i upravljanjem njenim radom, ali zavisno od konkretne situacije, svaki od tih naziva može zvučati preširoko, preusko ili jednostrano. Clemm kaže da najopćenitiji (generički) naziv za djelatnika u području upravljanja računalnom mrežom glasi mrežni operater (network operator). Taj naziv obuhvaća niz specifičnih poslova tehničke, organizacijske i administrativne vrste u području upravljanja računalnom mrežom.
Pored tehničkih i organizacijskih poslova, za uspješno upravljanje računalnom mrežom važne su i brojne druge stvari; spomenimo neke od njih.
- Dobro definiran i evidentiran sustav nadležnosti (i odgovornosti); dobro definirani postupci (procedure) u raznim situacijama. Ukratko, u svakoj situaciji treba se znati (biti određeno) što treba učiniti i tko treba to učiniti.
- Dokumentacija o mreži treba biti potpuna i ažurna. To je potrebno za održavanje mreže i za upravljanje njenim radom, kao i za planiranje daljnjeg razvoja mreže.
- Treba postojati pouzdana backup kopija stanja mreže, kao i dobro definirana procedura ponovnog uspostavljanja mreže, ako dođe do njena pada. Kada se dogodi neka greška u radu mreže (ili nekog mrežnog elementa) za koju nije očito kako je nastala, niti kako se može brzo otkloniti, tada je često najbolje reinstalirati prethodnu konfiguraciju mreže (mrežnog elementa), za koju znamo da je radila dobro. Da bi se to moglo učiniti, potrebno je imati odgovarajuću backup kopiju toga stanja (konfiguracije), kao i jasno definiranu proceduru instaliranja te backup kopije (konfiguracije).
- Za pouzdan rad mreže posebnu pozornost treba posvetiti pitanju njene zaštite. Clemm ističe da djelatnici koji rade na upravljanju mrežom mogu namjerno izazvati mnogo veće štete nego što to uspijevaju učiniti vanjski napadači na računalnu mrežu. Neki nezadovoljan operater mreže može namjerno izazvati velike štete (poremećaje) u radu računalne mreže kojom upravlja. U tom kontekstu, Clemm ističe da je potrebno osigurati dvije osnovne stvari: (1) da šteta koju može izazvati jedan djelatnik bude ograničena, i (2) da ta šteta bude uvijek popravljiva. Tome se može dodati i obavezno postojanje evidencije o tome tko je što napravio na mreži, jer se time podiže razina odgovornosti u radu, a ujedno se odvraća od namjernog izazivanja štete.
Takva načela su svakako dobra; teže je takva načela implementirati na pouzdan i optimalan način.

Fizičko mjesto sa kojeg se upravlja velikim (globalnim) računalnim mrežama naziva se centrom mrežnih operacija ili centrom za mrežne operacije (network operations center - NOC). Potonji ("centar za ...") zvuči jasnije. U takvim centrima odvija se mnogo poslova različite vrste. Među te poslove spadaju upravljanje radom mreže i održavanje njene ispravnosti; planiranje i organizacija niza poslova i aktivnosti; prikupljanje podataka o količinama prometa podataka i o korištenju mrežnih usluga, na temelju kojih korisnici računalne mreže plaćaju mrežne usluge.
U takvim (NOC) centrima se često nalazi i mnogo mrežne opreme koja je namijenjena upravljanju mrežom.
Mreže globalnih razmjera obično imaju više upravljačkih centara (NOCs). Ti centri su obično geografski locirani na nekoliko međusobno udaljenih mjesta u svijetu. NOC centri su ravnopravni, ali uvijek jedan od njih ima ulogu glavnog, dok su ostali pomoćni. Clemm kaže da se uloga glavnog NOCa pomiče "zajedno sa suncem" (vremenom); na primjer, iz Londona u San Francisco, pa u Indiju ili Kinu, i tako u krug, zajedno sa suncem.

Pojam središnji ured (central office - CO) označava fizičko mjesto (lokaciju) na kojem se na računalnu mrežu vezuju mreže tvrtki sa nekog područja, kao i druge korisničke mreže lokalnog područja, ako postoje. Dakle, za razliku od NOCa, CO se ne nalazi "u središtu zbivanja" vezanih uz mrežu, nego se nalazi "na periferiji" mreže. Mreža može imati više nego jedan NOC, ali može imati tisuće COa. U "tim središnjim" uredima često ne radi nijedna osoba, već se u njima nalazi samo odgovarajuća mrežna oprema, koja omogućava da se na mrežu vežu tvrtke, kao i davatelji mrežnih usluga individualnim korisnicima sa toga područja.
------ (/1) ------




Post je objavljen 06.02.2011. u 14:50 sati.