T C P / IP

Deo materijala za pripremu ispita iz predmeta - Računarske mreže i interfejsi SMER: Elektronika Godina: 2006/2007

2

SADRŽAJ
1 INTERNET..................................................................................................................................................5 1.1 1.2 1.3 1.4 1.5 2 STRUKTURA INTERNETA .......................................................................................................................5 PAKETSKI PRENOS ................................................................................................................................6 TCP/IP .................................................................................................................................................8 ADRESIRANJE .......................................................................................................................................9 INTERNET STANDARDI ........................................................................................................................11

INTERNET SLOJ .....................................................................................................................................13 2.1 2.1.1 2.1.2 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.3 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.5 2.6 IP ADRESIRANJE .................................................................................................................................13 Klasno IP adresiranje ...................................................................................................................13 Besklasno IP adresiranje ..............................................................................................................23 ISPORUKA, PROSLEĐIVANJE I RUTIRANJE IP DATAGRAMA ..................................................................28 Isporuka ........................................................................................................................................28 Prosleđivanje ................................................................................................................................29 Rutiranje .......................................................................................................................................37 Struktura rutera ............................................................................................................................37 ARP I RARP......................................................................................................................................39 INTERNET PROTOKOL (IP)...................................................................................................................44 Datagram ......................................................................................................................................44 Fragmentacija...............................................................................................................................45 Opcije............................................................................................................................................47 Kontrolna suma.............................................................................................................................49 NAT ...................................................................................................................................................51 ICMP .................................................................................................................................................53

3

TRANSPORTNI SLOJ.............................................................................................................................58 3.1 PORTOVI .............................................................................................................................................58 3.2 UDP ...................................................................................................................................................59 3.2.1 Korisnički datagram .....................................................................................................................59 3.2.2 Način rada ....................................................................................................................................60 3.2.3 Primene.........................................................................................................................................61 3.3 TCP....................................................................................................................................................62 3.3.1 Servisi ...........................................................................................................................................62 3.3.2 Mehanizmi.....................................................................................................................................64 3.3.3 Segment.........................................................................................................................................65 3.3.4 Konekcija ......................................................................................................................................66 3.3.5 Dijagram stanja ............................................................................................................................70 3.3.6 Kontrola protoka...........................................................................................................................74 3.3.7 Kontrola grešaka ..........................................................................................................................75 3.3.8 Kontrola zagušenja .......................................................................................................................82

4

APLIKACIONI SLOJ ..............................................................................................................................88 4.1 4.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.5 KLIJENT-SERVER MODEL ....................................................................................................................88 TELNET ............................................................................................................................................89 FTP ....................................................................................................................................................96 ELEKTRONSKA POŠTA.......................................................................................................................102 Arhitektura ..................................................................................................................................102 Korisnički agent ..........................................................................................................................104 Agent za prenos poruka: SMTP ..................................................................................................109 Agent za preuzimanje poruka: POP3 i IMAP4 ...........................................................................112 DNS .................................................................................................................................................115

3

.........7 5................................................................................................................................................................................................................................................................132 DINAMIČKI I AKTIVNI WEB DOKUMENTI ........................2 5..................................138 HTTP .........................................124 5........................................................................1 5.143 PROKSI SERVERI I KEŠIRANJE STRANICA ...................................................................129 COOKIE....148 4 ......................................................................................................................................................8 5.............................127 URL .....9 WEB PRETRAŽIVAČ.......3 5...6 5.....................................................................................................................................................................................................................................................................................................125 WEB SERVER ..............................................4 5.............................................................147 FIREWALL..................................................................................................................5 WEB ...............................130 STATIČKI WEB DOKUMENTI.........5 5....................

privante i javne. Internet poseduje tronivovsku strukturu (Sl. 1-2 Rast Interneta. Tranzitne mreže. To su mreže veoma velike propusne moći koje poput kostura drže na okupu sve razuđene delove Interneta. prosleđuju saobraćaj i između drugih mreža istog ili nižeg nivoa. Interent je danas ubedljivo najveća i najrsprostranjenija svetska mreža. na Internet su priključene brojne druge mreže – velike i male. 1-1 Struktura Interneta.1 Struktura Interneta Internet je gigantska mreža prvobitno kreirana povezivanjem različitih istraživačkih i odbrambenih (vojnih) mreža (kao što su NSFnet.1 Internet 1. Tranzijentna mreža je uvek povezana sa barem dve duge mreže. Sa preko 400 miliona hostova. sa stopom od 10-15% mesečno (Sl. Nihov zadatak je da. Sl. u hijerarhiji Inerneta se nalaze odmah ispod backbone mreža. Internet backbone koji je 90-tih godina ima oblik ˝riblje kosti˝. osim za svoje hostove. 1-1). Čak i kada su povezane sa jednom ili više drugih mreža. MILnet i CREN). 1-2). Broj hostova na Internetu (u milionima) Godina Sl. 5 . Rast Interneta je veoma brz. kroz periferne mreže nikada ne prolazi saobraćaj nemenjen nekoj drugoj mreži. Okosnica Interneta ili backbone predstavlja vršni nivo u hijerarhiji Interneta. danas više liči na ˝ribarsku mrežu˝ razapetu po celom svetu. Od tada. takođe poznate i kao regionalne. a broj mreža koje se razgranavaju sa Internet backbone-a se udvostručava svakih 16 meseci. Sastoji se od mreža kao što su NSFnet i EBONE koje prenose saobraćaj i obavljaju rutiranje za mreže srednjeg nivoa. Periferne mreže su u osnovi lokalne (LAN) ili gradske (MAN) mreže koje prenose podatke isključivo ka i od svojih hostova.

u izvornom hostu se dele na niz paketa. kao što je Internet. Shodno ovom konceptu. Ruteri se ne bave interpretacijom sadržaja i značenja podataka.2 Paketski prenos U komunikacionim mrežama koje pokrivaju veća geografska rastojanja. Predajni (izvorni) računar deli sadržaj poruke na niz paketa (Sl. paketima Dužina paketa je ograničena. 1-3 je ilustrovan osnovni princip rada komutacije paketa. koji se nezavisno prenose kroz mrežu. poruke se prenose u kratkim blokovima. skladišti i nakon izvesnog vremena prosleđuje sledećem ruteru. Svaki paket ima deo za korisničke podatke i deo za kontrolne informacije. (a) (b) (c) 3 2 1 (d) (e) Sl. 1-3 Komutacija paketa: datagramski pristup. Svaki paket. koje se ne mogu upakovati u jedan paket. rutera. između ostalog. komunikacija između izvora i odredišta se ostvaruje prenosom podataka kroz mrežu posrednih komutacionih čvorova. 1-3(a)). Ovaj ruter privremeno skladišti 6 . pored podataka iz originalne poruke.1. informaciju koja identifikuje odredišni host. Na Sl. tzv. tj. a maksimalno dozvoljena dužina obično ne prelazi 1000 bajta. paket se prima. Kontrolne informacije. U svakom ruteru. sadrže informacije koje su neophodne ruterima kako bi paket usmerili ka željenom odredištu. Duže poruke. Računar sa leve strane slike šalje poruku računaru sa desne strane. već se bave prenosom podataka od čvora do čvora na njihovom putu do krajnjeg odredišta. sadrži. u delu za kontrolne informacije. Izvorni računar šalje paket po paket ruteru sa kojim je povezan. Na Internetu se koristi koncept prenosa podataka koji se naziva komutacijom paketa.

Kod mreža koje koriste opisanu tehniku komutacije. Paket ostaje u redu čekanja sve dok svi prethodni paketi iz reda čekanja ne budu poslati. video. koje je promenljivo i uslovljeno trenutnim uslovima u mreži. • • • Međutim. sveukupno vreme prenosa paketa od datog para izvorodredište. kao i hostove različitih brzina prenosa podataka. Princip komutacije paketa omogućava uvođenje prioriteta. čime se smanjuje raspoloživ kapacitet za prenos korisničkih podataka. paket konačno stiže na svoje krajnje odredište (Sl. U primeru sa Sl. za svaki paket. on uzima u obzir ne samo informaciju o adresi odredišnog hosta. Na ovaj način. Međutim. mreža prihvata nove pakete. To znači da paketi sa istom odredišnom adresom ne moraju biti uvek isporučeni istom susednom ruteru (Sl. redni broj paketa u poruci i sl. mogu biti prenešeni različitim putanjama i mogu biti izloženi promenljivim kašnjenjenima u ruterima. određuje kom susednom ruteru treba proslediti paket i smešta paket u red čekanja pridružen izlaznoj liniji koja vodi ka izabranom susednom ruteru. 1-3. 1-3. Posledica ove neodređenosti je pojava da paketi koji se prenose između para hostova mogu stići do odredišta različitim putanjama i izvan redosleda u kojem su poslati. mada su performanse niže. Usmeravanje paketa u ruterima nije jednoznačno. pre nego što se prosledi dalje. a zatim se i on šalje na liniju.) Ponovo. Komunikacije između hostova nije prekinuta. Ruter. otkaza pojedinih prenosnih linija i sl. a poslat drugom brzinom. adresa odredišta. dinamički. za pakete se uobičajeno koristi termin datagram. Kod mreža sa komutacijom paketa.(baferuje) primljene paket. smešataju se u red čekanja pridružen toj liniji. raspodeljuje na prenos mnogih paketa. koja povezuje dva rutera. u mreži sa komutacijom paketa moguće je kombinovati spore i brze prenosne medijume. a koje treba dalje preneti preko iste izlazne linije. . na osnovu kontrolnih informacija iz paketa. Obzirom da se paket baferuje u ruteru. Paket visokog prioriteta biće izabran za slanje bez obzira na njegovu poziciju u redu čekanja. mada je vreme prenosa paketa kroz mrežu duže. Paketi koji iz različitih pravac stižu u čvor. Da bi se omogućilo usmeravanje paketa kroz mrežu. Na taj način. što znači da paket može biti primljen jednom. a ne krajnjih čvorova. Osnovne karakteristike paketskog prenosa. audio. u baferima rutera se gomilaju paketi koji čekaju da budu preneti dalje. umesto da se prilikom slanja paketa na izlaznu liniju drži striktnog redosleda paketa u redu čekanja. (Napomenimo da je kod nekih datagramskih mreža.). Sa povećanjem opterećenja mreže. svaki paket osim podataka mora sadržati i dodatne kontrolne (režijske) informacije (npr. u vremenu. biće izgubljeni. ovo kašnjenje. ako neki ruter otkaže. 1-3(c)). Na ovaj način.. može značajno da varira od paketa do paketa. preuređenje paketa zadatak odredišnih stanica. u minimalnom iznosu. može dati prednost paketima sa visokim prioritetom. čak i u uslovima intenzivnog saobraćaja. Mreža sa komutacijom paketa može da amortizuje razlike u brizni prenosa podataka različitih hostova. Ukupno vreme prenosa paketa jednako je zbiru kašnjenja paketa kroz rutere na putanji koju paket prolazi. (Na primer. paketi višeg prioriteta prenosiće se brže kroz mrežu nego paketi niskog prioriteta. baferski prostor u ruterima je ograničene veličine i može se desiti da pri veoma velikom opterećenju neki paketi budu izgubljeni zato što je u pojedinim ruterima baferski prostor iscrpljen. Ova pojava se naziva treperenje ili džiter (jitter) i može biti nepoželjna kod izvesnih aplikacija. Kod mreža sa komutacijom paketa. Ruter uzima pakete sa početka reda čekanja i maksimalnom brzinom ih šalje na liniju. Na ovo vreme treba dodati vreme procesiranja paketa i vreme čekanja paketa u redu čekanja. koje ga čine pogodnim za primenu kod Interneta su: • Prenosne linije se efikasno koriste. detekcija izgubljenih paketa i odluka kako postupiti u ovakvim situacijama je u nadležnosti krajnjih hosova.vreme koje je potrebno da se paket prenese iz jednog u drugi čvor. svaki paket se u svakom ruteru nezavisno obrađuje. Obzirom da se paketi mogu razlikovati po dužini. a način na koji će ruter postuputi prema datom paketu ne zavisi od toga kako je postupao prema prethodnim paketima. Kada ruter donosi odluku na koju stranu usmeriti paket. Paketi se baferuju u ruterima. već i informacije prikupljene od susednih rutera koje se tiču njihovog trenutnog opterećenja. • • 7 . krećući se od rutera do rutera ( Sl. komutacija paketa ispoljava i izvesne nedostatke: • Prolazak paketa kroz ruter unosi dodatno kašnjenje u prenosu. Ovaj pristup je ilustrovan na Sl. svi paketi koji trenutno borave u ruteru. može se desiti da neki paketi budu uništeni u toku prenosa. Za prenos kontrolnih informacija troši se deo komunikacionog kapaciteta prenosnih linja. obzirom da se komunikacioni kapacitet linije. kao što su aplikacije koje zahtevaju prenos podataka u relanom vremenu (telefonija. jednako je količniku dužine paketa i brzine prenosa preko dolazne linije . 1-3(e)).). krajni ruter na putanji uređuje pristigle pakete u prvobitni redosled i isporučuje ih odredištu.) Takođe. 1-3(b-d)).

ICMP. Za razliku od OSI modela koji definiše koje funkcije pripadaju kom sloju. Zajedno. Pored IP. ova dva sloja se tretiraju kao ˝host-mreža ˝sloj. Međutim. TCP/IP definiše dva protokola: TCP i UDP (User Datagram Protocol). RARP. 1-4). TCP obavlja segmentaciju toka bajtova na poruke koje prosleđuje internet sloju. Pojam hijerarhijski znači da je svaki protokol višeg nivoa podržan od strane jednog ili više protokola nižeg nivoa. Mrežni (Internet) sloj Glavni protokol na mrežnom nivou je IP (Internet Protocol). Internet sloj je odgovoran za isporuku paketa od hosta do hosta na Internetu. transportni i aplikacioni. TCP/IP model čini pet slojeva: fizički. TCP se bavi kontrolom protoka kako bi sprečio da brzi predajnik pretrpa porukama sporog prijemnika koje on ne može da obradi. a naglasak stavlja na sloj mreže. tako da se slojevi ova dva modela ne poklapaju u potpunosti. 1-4 Odnos između OSI i TCP/IP modela. TCP rekonstruiše tok bajtova i prosleđuje ga aplikaciji. ali ne obavezno i međusobno nezavisnih modula od kojih svaki ostvaruje neku specifičnu funkciju. TCP je transportni protokol konekcionog tipa koji omogućava uspostavljanje pouzdanog toka bajtova između dve udaljene aplikacije. Glavna briga ovog sloja je rutiranje paketa i izbegavanje zagušenja (odgovara mrežnom sloju OSI modela). Transportni sloj Na transportnom nivou. TCP/IP se samo sporadično bavi najnižim slojevima (fizičkim i slojem veze). transportni i aplikacioni sloj. koji obuhvata funkcionalnost tri vršna sloja OSI modela (Sl. Sl. slojevi TCP/IP modela sadrže relativno nezavisne protokole koji se mogu kombinovati zavisno od potreba sistema. 1-5 TCP/IP i OSI model. Sl.). mrežni. sloj veze. Mrežni i transportni sloj odgovaraju slojevima 3 i 4 OSI modela.Protokol za kontrolu prenosa/Internet protokol ) je referentni model koji se koristi na Internetu. Na strani odredišta. IGMP i dr. 1-5 je prikazana struktura TCP/IP modela sa protokolima razvrstanim u slojeve koji su preklopljeni sa odgovarajućim slojevima OSI modela. Razvijen je pre OSI modela. TCP/IP je hijerarhijski skup protokola sačinjen od interaktivnih. Uz to.1. TCP/IP ne nameće neke posebne zahteve koji se tiču ovih slojeva (pretpostavlja se da mreža poseduje protokole koji pokrivaju funkcije tih slojeva). 8 . Na Sl. kod TCP/IP na transportni sloj direktno se nastavlja aplikacioni sloj. sloj mreže sadrži još nekoliko pomoćnih protokola (ARP.3 TCP/IP TCP/IP (Transmission Control Protocol/Internet Protocol .

u zaglavlju okvira sadržane su fizičke adrese.adresa čvora se menja uvek kada se čvor uključi. beskonekcioni transportni protokol za aplikacije koje ne zahtevaju strogu kontrolu grešaka i redosleda pristizanja paketa. 1. nepouzdan. već su funkcije ovih slojeva pripojene aplikacionom sloju. Prvobitno su razvijeni protokoli: TELNET (virtuelni terminal). Vremenom. jedan ka svakom željenom primaocu). Neke mreže podržavaju sva tri tipa adresa. 1-6). Dva čvora su povezana linkom. Aplikacioni sloj Procesi Transportni sloj TCP UDP Adrese portova Mrežni (Internet) sloj IP i drugi protokoli Logičke adrese Sloj veze Fizičke mreže i ˝hostmreža˝ protokoli Fizički sloj Fizičke adrese Sl. Pojedine mreže ne podržavaju grupne ili opšte fizičke adrese.za pribavljanje strana na Web-u.4 Adresiranje TCP/IP protokoli koriste tri nivoa adresiranja: fizičke adrese. Aplikacioni sloj sadrži veći broj protokola visokog nivoa. Veličina i format fizičke adrese zavisi od tipa lokalne mreže. multicast ili grupne (okvir je namenjen grupi čvorova) i broadcast ili opšte (okvir je namenjen svim sistemima koji su priključeni na lokalnu mrežu). kao što je to slučaj sa Ethernet-om. Svaki tip adresa vezan je za jedan sloj TCP/IP arhitekture (Sl. To znači da aplikacije moraju samostalno da realizuju funkcije koje se odnose na sesiju i prezentaciju podataka. kod Etherneta se koriste 6-bajtne (48-bitne) fizičke adrese koje su fabrički utisnute u karticu mrežnog adaptera. zaglavlje sadži i neke druge informacije. od kojih su najznačajniji: DNS (Domain Name System) . Važnost fizičke adrese je ograničena na lokalnu mrežu (LAN). Adrese mogu biti: unicast ili jednoznačne (samo jedan primalac okvira). 9 . logičke ili mrežne (IP) adrese i adrese portova.protokol za prenos fajlova i SMTP (Simple Mail Transfer Protocol) . Fizičke adrese se prenose u zaglavlju okvira sloja veze i identifikuju primaoca ili primaoce okvira. FTP (File Transfer Protocol) .protokol za prenos elektronske pošte. čvor sa fizičkom adresom 10 šalje okvir čvoru sa fizičkom adresom 69. kod kojih je brza isporuka paketa važnija od precizne isporuke. Ovo je adresa najnižeg nivoa koja se koristi na nivou sloja veze za identifikaciju prijemnog i predajnog čvora povezanih na zajednički prenosni medijum (ili link). ako su im takve funkcije uopšte potrebne.za preslikavanje imena hostova u njihove mrežne adrese i HTTP . Pr. 1-7. Aplikacioni sloj TCP/IP model ne predviđa prezentacioni i sloj sesije. Osim adresa. Fizičke adrese Na Sl. Kod takvih mreža. grupne i opšte adrese se simuliraju pomoću jednoznačnih adresa (umesto jednog šalje se više okvira. Sa druge strane.UDP je jednostavan. Na nivou sloja veze. Na primer. Fizička adresa Fizička adrese je adresa čvora na LAN-u. kod mreže tipa LocalTalk adrese su 1-bajtne i dinamičke . ako okvir mora biti poslat grupi primaoca ili svim sistemima u mreži. aplikacioni sloj je proširen brojnim protokolima. 1-1. Radi se o aplikacijama kao što su one koje prenose audio i video. 1-6 Odnos između slojeva i adresa kod TCP/IP. Završni zapis obično sadrži dodatne bitove za detekciju grešaka.

Pr. fizičke adrese se menjaju kako paket prelazi iz jednu u drugu mrežu. globalne adrese koje ne zavise od tipa fizičke mreže na koju je sistem priključen. ova 10 . Adrese portova IP adrese i fizičke adrese su neophodne kako bi se podaci preneli od izvornog do odredišnog hosta. nezavisno od njegovog lokalnog mrežnog okruženja. u pogledu opštih adrese postoje izvesna ograničenja. Međutim. isporuka podataka odredišnom hostu.1. Međutim. Neophodne su univerzalne adrese. Današnji računari mogu da izvršavaju više procesa u isto vreme.1. Ovu osobinu imaju logičke (ili mrežne) adrese. 1-8 IP adrese.uređaje za međumrežno povezivanje.Sl. Fizičke adrese nisu adekvatne za među-mrežnu komunikaciju. Logičke adrese na Internetu su 32-bitne. To su univerzalne. nije krajnji cilj komunikacije preko Interneta. Iz tog razloga neophodan je metod za identifikaciju procesa. 1-8) koje ostaju neizmenjene duž cele putanje paketa. čvor sa logičkom adresom A i fizičkom adresom 10 lociran na jednom LAN-u šalje podatke čvoru sa logičkom adresom P i fizičkom adresom 95 lociranom u nekom drugom LAN-u. grupne ili opšte. Ne postoje dva javno vidljiva i dostupna hosta na Internetu sa istom IP adresom. koje važe i izvan granica LAN-a. Kod TCP/IP arhitekture. Sl. S obzirom da izvorni i odredišni čvor nisu priključeni na istu mrežu. fizičke adrese nisu dovoljne. Logičke adrese. Paket na nivou sloja mreže sadrži logičke adrese izvora i krajnjeg odredišta (adrese A i P na Sl. 1-7 Fizičke adrese. Logičke adrese Logičke adrese se koriste kao adrese hostova i rutera na Internetu. Za razliku od logičkih. Kvadrati označeni slovom R predstavljaju rutere . mogu biti: jednoznačne. kao i fizičke. Krajnji cilj komunikacije preko Interneta je komunikacija između udaljenih procesa. obzirom na različite formate fizičkih adresa koje se koriste kod različitih tipova mreža. Neophodna je univerzalna šema adresiranja koja će obezbediti jedinstvenu identifikaciju svakog hosta ili rutera. o čemu će biti govora u sekciji 2. 1-2 IP adrese U primeru sa Sl. Komunikacioni sistem koji omogućava prenos podataka sa jednog na neki drugi računar nije kompletan. 1-8.

tj. Specifikacija novog protokla ili aplikacije postaje Internet standard tek nakon stroge procedure usvajanja koju sprovode nadležna regulativna tela Interneta. Istorijski RFC-ovi su značajni iz istorijskih razloga. Internet stadardi su otvoreni. Svi procesi koji se izvršavaju na istom hostu imaju različite adrese portova. edukativne) informacije o Internetu. a u koju su uključene brojne istraživačke i razvojne grupe. dva paketa se isporučuju sloju mreži. Radi se o RFC-ovima koji su ili nasleđeni novim specifikacijama ili nikada nisu dostigli nivo standarda. Nakon barem dve uspešne realizacije i potvrde u realnim uslovima. Internet standardi se moraju poštovati kako bi se obezbedila međuoperativnost sistema priključenih Internet i aplikacija koje rade na Internetu. Adrese porta su 16-bitne.5 Internet standardi Internet standard je sveobuhvatno testirana specifikacija namenjena onima koji rade sa Internetom (softverskim kompanijama koje realizuju mrežni sofver ili mrežne aplikacije. pre nego što se prevede na nivo Internet stadarda. Sl. Internet standard. istorijski. tokom svog životnog veka. Podaci koji dolaze iz višeg sloja u transportni potiču od procesa sa adresom porta j i namenjeni su udaljenom procesu sa adresom porta k. RFC prolazi kroz nekoliko nivoa zrelosti u toku svog životnog veka. koji uklanja svoje zaglavlje i prosleđuje ih transportnom sloju gde se oni objedinjuju u jedinstvenu poruku koja se konačno isporučuje odredišnom procesu sa adresom servisa k. forumi i organizacije. javno dostupni. nacrt standarda. 1-3 Adrese portova Na Sl. specifikacija se testira i implementira od strane nekoliko različitih grupa. nacrt se publikuje kao dokument koji se zove RFC (Request for comments). Takva jedan specifikacija zapičinje svoj životni vek kao Internet nacrt (Internet draft). Pr. Nakon preporuke od strane nadležnog tela. To je radni dokument bez zvaničnog statusa i sa ograničenim važnošću od šest meseci. Pošto je veličina poruke veća od one koju podržava sloj mreže. primedbe i sugestije svih zainteresovanih strana. s razlogom da doprinesu popularizaciji. Paketi zadržavaju adrese portova i dopunjeni logičkim adresama izvornog i odredišnog računara prosleđuju se sloju mreže. kao što su ruteri). Nacrt stadarda može da doživi izvesne modifikacije u slučaju da su uočeni problemi u njegovoj implementaciji ili korišćenju. Na ovom nivou. Nivoi zrelosti RFC. 1-9 je ilustrovana komunikacija na transportnom sloju. bržem širenju Interneta i bržem usvajanju novih tehnologija. kao i hardverskim kompanijama koje proizvode mrežne uređaje. Eksperimentalni RFC-ovi opisuju esperimente koji se odnose na analizu rada Interneta i nisu namenjeni implementaciji. 1-9 Adrese portova.identifikacija se naziva adresom porta. predlog standarda evoluira u nacrt standarda. eksperimentalni i informativni ( Sl. 1-10). Nacrt standarda je otvoren za komentare. Na prijemnoj strani. 11 . podaci se u transportnom sloju dele na dva paketa. se svrstava u jedan od šest nivoa zrelosti: predlog standarda. 1. Predlog standarda je stabilna i razumljiva specifikacija od dovoljno velikog značaja za Internet zajednicu. Informativi RFCovi sadrže opšte (istorijske.

u ovu kategoriju spadaju zastareli i istorijski RFC-ovi). dok je nepreporučljiv RFC nepodesan za opštu upotrebu (obično. 12 . IP i ICMP su obavezni protokoli. ali ako bude realizovan u nekom sistemu doprineće njegovom boljem radu i boljim performansama. RFC ograničene upotrebe. Drugim rečima. preporučljiv. Nivoi obaveznosti Svaki RFC se klasifikuje u jedan od sledećih pet nivoa obaveznosti: obavezan. Obavezan RFC mora biti implementiran u svim sistemima na Internetu. ograničene upotrebe i nepreporučljiv. trebalo bi da se koristi samo u specifičnim situacijama. 1-10 Nivoi zrelosti RFC-a. Na primer.Sl. sistem ne može raditi na Internetu ukoliko ne poseduje podršku za ove protokole. Preporučljiv RFC nije obavezan. Izborni RFC nije ni obavezan ni preporučljiv. FTP i TELNET su preporučljivi protokoli. izborni. ali se njegova implementacija preporučuje zbog značajne upotrebne vrednosti. Na primer.

Adresni prostor Protokol kao što je IP. Identifikator koji se koristi na IP sloju TCP/IP protokol steka naziva se IP adresom.1. onda će on imati i dve IP adrese. U izvesnim situacijama. Sl. različitih tipova. datagrame koji se nezavisno prenose od rutera do rutera sve do krajnjeg odredišta. besklasno adresiranje. Pored IP protokola. Ako protokol predviđa N bita za predstavljanje adresa. na Internet bi moglo da se priključi više od 4 milijarde uređaja. 2-1 Tačkasta decimalna notacija. rutiranjem datagrama. svaki od četiri bajta adrese se zapisuje kao decimalni broj. IP koristi ARP protokol za preslikavanje IP adresa na fizičke adrese koje važe u konkretnoj fizičkoj mreži. da bi se na odredišnom hostu objedinili u prvobitni datagram. 2. pokriva određeni adresni prostor. Nažalost.0.2 Internet sloj U ovom poglavlju bavićemo se Internet slojem TCP/IP arhitekture. Pravila za fragmentaciju i defragmentaciju datagrama su. Najniža IP adresa je 0. usmeri dalje ka sledećem ruteru ili odredišnom hostu.1 Klasno IP adresiranje Kada je pre nekoliko decenija uvedeno IP adresiranje korišćen je koncept klasa. preko dve različite mreže. tzv. tzv. odnosno šema klasnog IP adresiranja. Adresni prostor čine sve adrese koje protokol može koristiti.296. (Identičan zahtev postoji i u telefoniji. takođe. Sredinom 90’-tih godina prošlog veka. Međutim. što znači da je njegov adresni prostor veličine 232. Na nivou pojedinačnih mreža koriste se različiti prenosni medijumi i različiti komunikacioni protokoli fizičkog i sloja veze. Pretpostavka globalne komunikacije je postojanje univerzalne šeme adresiranja koja se koristi za jedinstvenu identifikaciju svakog priključenog uređaja. koja je vremenom gotovo u potpunosti potisnula prvobitnu šemu. Internet je heterogena globalna mreža sačinjena od ogroman broj nezavisnih mreža. koji se oslanja na adrese. 2. U ovom formatu. a shodno njegovoj odredišnoj IP adresi. Internet ili IP adresa je 32-bitna (ili 4-bajtna) adresa (identifikator) koja na jedinstven i univerzalan način definiše vezu hosta ili rutera na Internet.294. od 0 do 255. 2-1 prikazuje bit oblik i decimalni format jedne konkretne IP adrese. gde svaki pretplatnik poseduje jedinstveni telefonski broj – u kombinaciji sa pozivnim brojem države i pozivnim brojem grada). Dva uređaja na Internetu nikada ne mogu imati istu IP adresu. Problemi koji se rešavaju na Internet sloju u su vezi sa: logičkim adresiranjem. stvaran broj raspoloživih adresa je mnogo manji. Notacija Za zapisivanje Internet adresa obično se koristi tačkasta decimalna notacija. postoje dva razloga za izučavanje 13 . tzv. bilo da su oni priključeni na istu ili različite mreže. uvedena je nova šema. IP protokol u verziji IPv4 koristi 32-bitne adrese. Razmotrićemo dva takva protokola: ARP i ICMP. međusobno povezanih ruterima. IP se prevashodno izvršava u ruterima. Internet (IP) adrese. definisana IP protokolom. odnosno 4. Za jedinstvenu identifikaciju sistema priključenih na Internet (hostova i rutera) koriste se tzv.0 (sve 0).1 IP adresiranje Mogućnost globalne komunikacije između svih povezanih uređaja predstavlja jednu od glavnih karakteristika Interneta. Bez obzira na to. ako uređaj (najčešće ruter) poseduje dve Internet veze. fragmenata. Na strani izvora informacija deli na manje jedinice. To znači da kada ne bi postojala dodatna ograničenja. Internet sloj TCP/IP steka sadrži još nekoliko pomoćnih protokola manje složenosti. Fragmenti nastavljaju put kao nezavisne jedinice. IP adrese su univerzalne u smislu da svaki host koji želi da se poveže na Internet mora poštovati opšte usvojeni sistem IP adresiranja. IP adrese su jedinstvene u smislu da svaka adresa definiše jednu i samo jednu vezu (priključak) na Internet.255 (sve jedinice). ICMP protokol obezbeđuje povratne informacije izvornom hostu o eventualnim problemima nastalim u rutiranju datagrama. Na Internetu se koristi paketski prenos. a najviša 255. Funkcija rutera je da svaki primljeni datagram. ruter mora da podeli datagram na više manjih datagrama.255. Rutiranjem datagrama od izvornog do odredišnog hosta bavi se IP protokol. tada je veličina adresnog prostora 2 N.0. Zadatak Internet sloja je da unificira sve te razlike i omogući komunikaciju između krajnih sistema.255.967. fragmentacijom datagrama i u izvesnoj meri sa kontrolom zagušenja i obezbeđivanjem zahtevanog nivoa kvaliteta servisa. Sl.

) Da bi smo odredili klasu IP adrese date u obliku tačkaste-decimalne notacije. tri bajta definišu netid. D i E.456 Procenat 50% 25% 12. Svaka klasa zauzima jedan kontinualni deo adresnog prostora (Sl. B. klasi C po sekvenci 110. klasa B 1/4. Ovi delovi su promenljive dužine. Pripadnost IP adrese klasi može se odrediti na osnovu binarnog ili decimalnog oblika adrese.456 228 = 268. a jedan hostid. Adresni prostor A B C D E Klasa A B C D E Broj adresa 231 = 2. 2-3 Određivanje klase: (a) u binarnoj notaciji. 2-2 Zauzeće adresnog prostora. Kod klasnog IP adresiranja. u klasi C. Određivanje klase Svaka IP adresa pripada jednoj klasi. 2-4 Netid i hostid 14 .912 228 = 268.435. potrebno je pogledati samo prvi (krajnji levi) bajt (broj) adrese. O njima nešto kasnije. klasa adrese je A. 2-2). Adrese iz klase E su rezervisane za neke buduće primene. (b) u decimalnoj notociji. ako je prvi bajt između 0 i 127. Adresa pripada klasi A ako njen krajnji levi bit ima vrednost 0. (Napomenimo da klasama A i E pripadaju i neke specijalne adrese koje se ne uklapaju u klasifikaciju. Adrese iz klase D se koriste kao multicat adrese.147. po dva bajta se koriste za netid i hostid. a tri bajta hostid. Kao što možemo videti na Sl. 2-3(a)). U klasi A. Netid i Hostid IP adrese u klasama A.648 230 = 1. Ako je adresa data u binarnom obliku. 2-3(b)).741. Svaka klasa ima određeni opseg ovih brojeva (Sl. a hostid host u mreži. 2-2.824 229 = 536.25% Sl. zavisno od klase kojoj adresa pripada ( Sl. Pripadnost klasi B se prepoznaje po početnoj sekvenci 10. u klasi B. jedan bajt definiše netid.073. 2) poznavanje koncepta klasnog adresiranja je neophodan za razumevanje besklasnog adresiranja. Na primer. Broj adresa u svakoj klasi dat je u tabeli sa Sl.870. (a) (b) Sl. tada prvih nekoliko bita ukazuju na klasu kojoj adresa pripada ( Sl. klasi D po 1110 i klasi E po četiri početne 1-ce. klasa C 1/8. B i C podeljene su na dva dela: netid i hostid.5% 6. klasa adrese je B. 2-2.483. prostor IP adresa je podeljen na pet klasa: A.435.25% 6. Netid identifikuje mrežu na Internetu. klasa A pokriva čak polovinu adresnog prostora.klasnog IP adresiranja: 1) deo Interneta još uvek koristi klasno adresiranje. Ako je prvi bajt između 128 i 191. Sl. a klase D i E po jednu 1/16. C. 2-4). i td. U ovoj klasi ne postoji podela na netid i hostid.

Ukupan broj organizacija kojima se može dodeliti blok iz klase C iznosi 16.0.0.255.255. Uočimo da sve adrese u bloku imaju isti prvi bajt (netid).255.0. Klasa A 73 je zajedničko u svim adresama Specijalan blok 73.368 raspoloživi za dodelu organizacijama. 2-6 je prikazano kako organizacija kojoj je dodeljen blok sa netid 180.0 do 127.0. Prvi blok pokriva adrese od 0.0. sa velikim brojem hostova i rutera.0 73.255.255.0.255. Iz tog razloga.255.0.216 adresa ! Organizacija mora biti veoma velika da bi iskoristila toliki broj adresa.0 do 128.0.0.255.0. svaki blok u klasi A sadrži čak 16. To znači da je ukupan broj organizacija koje mogu posedovati adresu iz klase A samo 125. Klasa A Klasa A je podeljena na 128 blokova.255.2 73.0 do 191. pošto svaki blok iz ove klase sadrži 65.0) se koristi za identifikaciju same organizacije na Internetu.255 (netid 0).0 do 1.255.255. Poslednji blok pokriva adrese 127. Međutim.255.536 hostova.0.0 73.255 (netid 128.255 (netid 127). Preostale adrese iz bloka.777.255. Preostalih 125 blokova su raspoloživi za dodelu zainteresovanim organizacijama.0 može koristiti svoje adrese.255 Netid 0 0.0. Uočimo da sve adrese iz istog bloka imaju ista prva dva bajta (hostid).368. je neiskorišćen.0.254 Specijalan blok 73. Prvi i poslednji blok u klasi A rezervisani su za posebne namene (kao što ćemo uskoro videti).0. a razlikuju se po vrednostima preostala tri bajta (hostid).0.255. 16. 2-5 Blokovi u klasi A.1 73.0. a poslednja ima posebnu namenu. Ova adresa se zove mrežna adresa i definiše mrežu organizacije.0 do 0.0. kao i kod klase A. organizacija može koristiti za svoje hostove i rutere. 2-5 je prikazano kako organizacija kojoj je dodeljen blok sa netid 73 koristi svoje adrese.0 127. 15 .384 bloka. Prva adresa iz bloka (73. Klasa B Klasa B je podeljena na 16.0). organizacija mora biti dovoljno velika da iskoristi sve ove adrese.255 128 blokova.0.0.255.17.255 0. veliki broj adresa iz klase B.0. dok su preostalih 16.216 adresa u svakom bloku Sl.2 Netid 73 73.255.0.0. Kao i u klasi A.777.255 (specijana adresa) Netid 127 127. Poslednji blok pokriva adrese od 191.0.255).255.255.8.255.255. Dodatno. Šesnaest blokova su rezervisani za privatne adrese.0. a da se razlikuju po vrednosti druga dva bajta (hostid).0).0. Drugi blok pokriva adrese 1. Na Sl.255 (netid 1). a ne neki pojedinačni host. jedan blok (netid 10) se koristi za privatne adrese (za izolovane mreže koje nisu povezane na Internet).255 (netid 128. Na Sl.Klase i blokovi Jedan problem klasnog adresiranja je taj da je svaka klasa podeljena na fiksni broj blokova fiksne veličine. Prvi blok pokriva adrese od 128. Preostale adrese organizacija može koristiti za svoje hostove i rutere.0 73. Organizaciji nije dozvoljeno da koristi poslednju adresu bloka (73. pri čemu svaki blok ima isto netid. Zbog toga mnoge adrese iz ove klase ostaju neiskorišćene. prva adresa iz bloka je mrežna adresa. ali ogroman broj adresa u svakom bloku je verovatno veći od potreba i najvećih organizacija. Razmotrimo detaljnije svaku od klasa. Me đutim. jer ova adresa imam specijalnu namenu.0. gde svaki blok ima različiti netid. Klasa A je namenjena velikim organizacijama.

ovu klasu obično koriste organizacije sa malim brojem hostova i rutera.0 do 192. Poslednji blok obuhvata adrese od 223.0. Svaka adresa iz ove klase se koristi da definiše jednu grupu hostova na Internetu.0.0.1 180.2 Netid 180.0.Klasa B 180. dok četvrti bajt može imati bilo koju vrednost (hostid). Ukupan broj organizacija koje mogu posedovati blok iz klase C je 2.096.11.255 128. Klasa D se koristi za multicast (poruka se ne šalje samo na jedno. Kada se grupi dodeli adresa iz klase D.0).0 180. 2-7 Blokovi klase C.8.0.0.0 180.0 180.536 adresa u svakom bloku Sl. (netid 192.152 bloka.8.255. 2-6 Blokovi u klasi B.8 može koristiti svoje adrese.096. (Zbog ograničenog broja adresa u bloku.255 (netid 223.0 128. Kao i kod klasa A i B.255.097.255.255.254 Netid 191.8.17.255.384 blokova. 2-7 je prikazano kako organizacija kojoj je dodeljen blok sa netid 200. dok su preostalih 2.255.255.0.255 191. pored normalne (unicast) imaće i grupnu (multicast) adresu. Međutim. Klasa C Klasa C je podeljena na 2.0. a poslednja ima posebnu namenu. prva adresa iz svakog bloka je mrežna adresa.255.0 do 223.8 je zajedničko u svim adresama 180.) Sl. Uočimo da su prva tri bajta (netid) svih adrese iz istog blokova identična. svi hostovi.255 16.0. pri čemu svaki blok ima isto netid.0.8.0.8.255.255 Netid 128. 65. članovi ove grupe.255.255.255 (specijana adresa) 191.8. Prvi blok obuhvata adrese od 192.255). Klasa D U klasi D postoji samo jedan blok adresa. mali broj organizacija se odlučuje da uzme blok iz klase C. Na Sl.255.8 180.8. već na više odredišta).0. pošto svaki blok u ovoj klasi sadrži 256 adresa.9 180.8.0 180. 16 .0.255. 256 blokova su rezervisani za privatne adrese.896 predviđeni za dodelu organizacijama.896.

Opseg adresa je od 132. Na primer.56. Maska U prethodnoj sekciji smo videli kako se za datu mrežnu adresu može odrediti opseg adresa u odgovarajućem bloku.0. u mogućnosti smo da odredimo broj adresa u odgovarajućem bloku.0 do 132. dok preostala tri postaju 0. 2-1). koje su rezervisane za neke buduće namene.0 255.21.0. ako su 0 ostaju 0). Sl.45.78. AND (logička I) operacija se primenjuje na svaki par bitova maske i adrese. koji AND-ovan sa bilo kojom adresom iz bloka daje mrežnu adresu ( Sl. 2-1 Podrazumevane maske Klasa A B C Maska (binarni zapis) 11111111 00000000 00000000 00000000 11111111 11111111 00000000 00000000 11111111 11111111 11111111 00000000 Maska (decimalna-tačkasta notacija) 255. prvi bajt adrese ostaje neizmenjen. Jedinice u maskama odgovaraj netid.21. 17 . što znači da je podrazumevana maska oblika 255. Mrežne adrese Mrežne adrese igraju bitnu ulogu u klasnom IP adresiranju.91 odrediti početnu adresu bloka (tj. mrežnu adresu) Data adresa pripada klasi A. neka je data adresa 134. koja se može uopštiti i na slučaj kada podmreže postoje. a nule hostid sekciji u svakoj klasi. 2-8 Koncept maskiranja. Adresa pripada klasi B (prvi bajt je iz opsega 128 . Da bi ruter usmerio paket u korektnu mrežu. koristi tzv. Mrežna adresa definiše mrežu (a ne host). 2-1.0. Treba uočiti da kod klasnog adresiranja mrežna adresa pruža potpune informacije o mreži. Za datu mrežnu adresu. 2-8). masku. prvu adresu u odgovarajućem bloku). Postavlja se pitanje da li moguća i inverzna operacija: kako na osnovu date IP adrese odrediti mrežnu adresu (tj.255. Ova operacija je važna prilikom rutiranja paketa.0.255.0 odrediti klasu.0.45. To proističe iz činjenice da je broj adresa u svakom bloku fiksiran klasnom šemom adresiranja.0.255. Podrazumevane maske Kod klasnog adresiranja postoje tri maske. Mrežna adresa poseduje sledeće osobine: • • • Mrežna adresa je prva adresa u bloku. blok i opseg adresa u bloku.0. on mora iz odredišne IP adrese (sadržane u zaglavlju datagrama) da izvuče adresu mreže.191) u kojoj netid zauzima 2 bajta. a bitovi koji odgovaraju 0-ma iz maske menjaju se na 0. blok i opseg adresa. Dakle. zato što je prvi bajt iz opsega 128 . maska za klasu C ima dvadesetčetiri 1-ca i osam 0.45. T. Blok ima netid 132.0 255. maska za klasu B ima šesnaest 1-ca i šesnaest 0.191.0. Za klasu A maska ima osam 1-ca i dvadesetčetiri 0.0.0. a tražena mrežna adresa 134.255.0. Dakle netid je 134. Za mrežnu adresu 132.255.7. u mogućnosti smo da odredimo klasu adrese.0. Data adresa pripada klasu B. Pošto u masci prvi bajt ima vrednost 255 (sve jedinice). tzv. bitovi adrese koji odgovaraju 1-cama iz maske zadržavaju svoju vrednost (ako su 1 ostaju 1. Jedan način kako se može naći mrežna adresa jeste da se najpre odrede klasa i netid date IP adrese. tražena mrežna adresa je 23.Klasa E U klasi E postoji samo jedan blok adresa.2. jedna za svaku klasu (T.21. Procedura za određivanje mrežne adrese na osnovu date IP adrese.21. podrazumevane maske. Maska je 32-bitni broj. 2-2 Za IP adresu 23. Opisani način je moguć samo ako posmatrana mreža nije podeljena na podmreže. a da se zatim hostid postavi na nulu. (Ruteri usmeravaju pakete shodno mrežnoj adresi) Za datu mrežnu adresu. Drugim rečima.0. Pr.0 Pr.

10/8.22.0. Ruter je povezan na tri mreže i zato ima tri IP adrese.8.13.1 129. Adrese mreža napisane su masnim slovima i sadrže netid deo i sve nule u delu hostId.40 x. Za ovu namenu koristi se CIDR (izgovara se ˝cider˝) notacija.0 222.66.8.74.y.45.0 (klasa C) i 134. 124.51.2 124.24.100.42. mesto na Internetu gde se uređaj nalazi.0 220.0 134.3. Na Sl.0. se zapisuje kao 18.90 141. da bi se naglasilo da u maski postoji osam 1-ca.80 205. koja je iz klase A sa podrazumevanom maskom 255.8.70.21 124.w 134.74. U ovoj notaciji. Adrese mreža sa slike su: 129.13 222. adresa 18.18.13.42.3.16.74. ruter uvek ima dve ili više IP adresa.6 Mreža Sl.46.56.24.12 222. 129.44 129.69/16 (što pokazuje da adresa pripada klasi B i da maska ima šesnaest 1ca. Uređaji sa više mrežnih adaptera (multihomed uređaji) IP adresa definiše vezu uređaja na Internet.41 134. Pr.56.1 129.8. broj uređaja na Internetu je još uvek mnogo manji od 232.16. Sli čno.9 Mreža Mreža 123. po jednu za svaki mrežni adapter. moguće iz različitih klasa.0.18.3.33.0. ukazaćemo na načine kako se problem iscrpljivanja IP adresa može ublažiti. Uprkos tome.45 Sl.18. Nešto kasnije.8. 123.8.14. broj 1-ca u maski se zapisuje na kraju adrese posle kose crte.5.0.6.0. 2-10 je prikazan deo Interneta koga čine četiri mreže (tri Ethernet i jedan Token Ring LAN).6.0.4.0.3.74.68. Na primer.14.88 ka ostatku Interneta 207. 2-9 Uređaji sa više mrežnih adaptera. 220. Računar je povezan na dve mreže i shodno tome ima dve IP adresa.0 18 .0. ponekada je uobičajeno (a i kompatabilno sa klasnim adresiranjem) da se podrazumevana maska eksplicitno naglasi prilikom zapisivanja adrese. Svaki ruter ima posebnu IP adresu za svaku mrežu na koju je povezan.69 se zapisuje kao 141.18.6. raspoložive IP adresu su gotovo iscrpljene. 2-10 Mrežne adrese i adrese hosta. Shodno tome.3. 207.0. Računar koji je povezan na različite mreže se zove računar sa više mrežnih adaptera i imaće više od jedne adrese.10. 2-3 Jednostavan internet Na Sl. 2-9 su prikazani jedan računar sa više mrežnih adaptera i jedan ruter.6.0 (klasa B). tj.0 (klasa A).10.18. adresa 141. Klase A i B su u potpunosti iskorišćene.50. Ruter je uvek povezan na više od jedne mreže (inače nema gde da usmerava pakete).13.42.CIDR notacija Iako kod klasnog adresiranja svaka adresa ima podrazumevanu (jednoznačnu) masku.14.3 220.9.0. kao i zbog nedostataka samog klasnog adresiranja.14.16. Otuda sledi da uređaj koji je povezan na više od jedne mreže mora imati i više od jedne IP adrese.0.18.0 220.111 141.2 134. Problem iscrpljivanja IP adresa Zbog brzog rasta Interneta.67.77 124.46.0 124.z.6.0 (klasa B). dok su blokovi iz klase C previše mali za organizacije srednje veličine.23 220.66 134.74.16.

19 . Direktna opšta adresa Direktna opšta (ili broadcast) adresa je adresa iz klasa A. Takođe. smanjuje broj blokova u ovoj klasi za 1. paket kojeg šalje sadržaće ograničenu broadcast adresu kao odredišnu i adresu ˝host na ovoj mreži˝ kao izvornu. host šalje IP paket za zahtevom za dodelu adrese serveru koji je zadužen za raspodelu IP adresa hostovima na lokalnoj mreži. Uočimo da ova adresa može biti korišćena samo kao odredišna adresa. ova adresa pripada klasi E. Konkretni host na ovoj mreži IP adresa sa svim nulama u delu netid ukazuje na konkretni host na ovoj mreži. 2-2 Specijalne adrese. Drugim rečima.yy. uočimo da ova specijalna adresa smanjuje za 1 broj raspoloživih IP adresa u svakom bloku iz klasa A. B i C. Ruter sprečava prolazak paketa sa ovim tipom adrese u druge mreže i time ograničava broadcast samo na mrežu u kojoj je paket emitovan. Na ovaj način se može testirati operativnost IP softvera. B ili C sa definisanim netid i svim 1-cama u delu hostid. Paketi upućeni na ovu adresu nikada ne napuštaju mašinu. B ili C. loopback adrese. Takođe. po klasifikaciji pripada klasi A i da smanjuje broj blokova u klasi A za 1. uočimo da adresa tipa ˝Konkretni host na ovoj mreži˝. već se vraćaju nazad mrežnom softveru.Uočimo da IP adresa definiše mrežnu lokaciju uređaja. Host na ovoj mreži IP adresa koja sadrži sve nule tumači se kao ˝host na ovoj mreži˝. Takođe. Pošto host ne zna IP adresu servera. Ovu adresu koristi host ako nakon uključena ne zna svoju IP adresu. Ruter će blokirati ovakav paket i tako ograničiti njegovo prostiranje samo na lokalnu mrežu. Međutim. Ograničena opšta adresa Adresa iz klasa A. uočimo da adresa ˝host na ovoj mreži˝ pripada klasi A. Specijalne adrese Pojedini delovi adresnog prostora IP protokola se koriste za specijalne adrese ( T. Jedna posledica ovoga je ta da premeštanje računara iz jedne u neku drugu mrežu podrazumeva i promenu njegove IP adrese. sa svim 1-cama (u netid i u hostid) predstavlja opštu adresu na lokalnoj mreži. T. Host koji želi da pošalje istu poruku svim ostalim hostovima u svojoj mreži. Ovu adresu koristi host da bi poslao poruku nekom drugom hostu na istoj mreži. bilo gde na Internetu (ukazuje na sve hostove adresirane mreže). Uočimo da po klasifikacija. Takođe. klasifikuje se u klasu A i. Mrežna adresa je prva adresa u bloku iz klasa A. prihvatiće svi hostovi (bez obzira na svoju normalnu IP adresu). ruteri većine mreža na Internetu onemogućavaju prolazak ovakvih datagrama u mrežu (iz bezbednosnih razloga). obzirom da IP adresu čine dva dela (netid i hostid). koji ih tretira na isti način kao i bilo koji paket primljen sa mreže. Paket koji kao odredišnu adresu imaju adresu ovog tipa. Tipično. B i C. koje se koriste za testiranje mrežnog softvera lokalne mašine. praktično. a ni mrežnu adresu mreže u kojoj je. može da koristi ovu adresu kao odredišnu adresu u IP paketu. Loopback adresa se može koristiti samo kao odredišna adresa. a njegov identitet. Uočimo da direktna opšta adresa može biti korišćena samo kao odredišna adresa. Uočimo da ova adresa može biti korišćena samo kao izvorna adresa. ona jedino može da definiše vezu uređaja na određenu mrežu. 2-2).xx. Loopback adresa IP adrese oblika 127. Ovu adresu omogućava broadcast (emitovanje namenjeno svima) datagrama na udaljenoj mreži. loopback adrese može koristiti klijentski proces (program koji se izvršava) kada se obraća serverskom procesu na istoj mašini. Specijalna adresa Mrežna adresa Direktna broadcast adresa Ograničena broadcast adresa Ovaj host na ovoj mreži Konkretan host na ovoj mreži Loopback adresa Netid Određena Određena Sve 1-ce Sve nule Sve nule 127 Hostid Sve nule Sve 1-ce Sve 1-ce Sve nule Određena Bilo koja Izvor ili odredište Odredište Odredište Izvor Odredište Odredište Mrežna adresa Mrežne adrese su već razmatrane. u takvim slučajevima.zz predstavljaju tzv.

multicast grupu može činiti podskup hostova na nekom LAN-u.0. grupu mogu formirati hostovi iz različitih mreža. Celokupna adresa (svih 32 bita) definiše groupid .16 – 172.255 Broj blokova 1 16 256 Individualne.Privatne adrese Izvestan broj blokova u klasama A. Na lokalnom nivou. B i C rezervisan je za privatne mreže ( T.0 – 192. 2-12 Grupna (multicast) komunikacija.31 192.identifikator. Svi sistemi direktno povezani na Internet imaju barem jednu. Individualne adrese Individualne IP adrese se koriste za komunikaciju tipa jedan-na-jedan (tzv. Grupne adrese Grupna (multicast) komunikacija je komunikacija tipa jedan-ka-više. unicast). Multicast paket polazi iz izvora S1 i stiže do svih odredišta koja pripadaju grupi G1. Na globalnom nivou. grupnih (multicast) i opštih (broadcast) adresa. Ako sistem (obično host) ima npr. U oba slučaja.168. Sistem na Internetu može imati jednu ili više grupnih adresa iz klase D (pored jedne ili više individualnih adresa).168. svim hostovima iz iste grupe dodeljuje se ista grupna adresa. Adrese iz ovih blokova nisu globalno prepoznatljive. 2-11 je prikazan primer unicast komunikacije. NAT. Sl. Izvor (S1) šalje paket koji prolazi kroz rutere i stiže do svog odredišta (D1). po potrebi. 7 grupnih adresa. Izvor šalje paket namenjen tačno jednom odredištu. poglavlje 0). Klasa A B C Netid 10. Grupne adrese pripadaju klasi D. 20 . a koriste se u izolovanim mrežama (koje nisu povezane na Internet) ili u mrežama kod kojih se za vezu sa Internetom koristi tehnika prevođenja IP adresa (tzv. grupne i opšte adrese Komunikacija na Internetu može se ostvariti korišćenjem individualnih (unicast).0 172. 2-11 Unicast (jedna-na-jedna) komunikacije. ili adresa grupe. Na Sl. T. Grupna komunikacija na Internetu može biti lokalna i globalna. Izvor šalje paket kojeg prima više odredišta. Individualne IP adrese pripadaju klasama A. to znači da je član 7 multicast grupa. B i C. 2-3 Adrese za privatne mreže. Na Sl. 2-12 je ilustrovan koncept grupne komunikacije. mogu da dupliciraju paket i kopije proslede dalje kroz nekoliko svojih mrežnih adaptera. 2-3). jedinstvenu individualnu IP adresu. Uočimo da ruteri. Sl. Uočimo da se adrese iz klase D mogu koristiti samo kao odredišne adrese.

a drugi host ( Sl. 2-14). Višestruki unicast v. Na Sl. Multicast je efikasniji od višestrukog unicast-a. Uočimo da se između pojedinih parova rutera prenosi više kopija paketa. svaki sa različitom individualnom odredišnom adresom. Isti efekat se može postići ako izvor umesto jednog multicast paketa. Većina velikih baza podataka su distribuirane. (b) Opšte adrese Broadcast (ili emitovanje namenjeno svima) je komunikacija tipa jedan-ka-svima. Takođe. Za ovu namenu se mogu formirati privremene ili trajne multikast grupe. hostid sve 1-ce).s. To znači da u IP adresiranju postoji hijerarhija. Distribucija informacija. Predavanje jednog profesora može se emitovati specifičnoj grupi studenata. Osnovna pretpostavka telekonferencije je da svi učesnici dobijaju iste informacije u isto vreme (˝svako vidi svakog˝). Uočimo da je za distribuciju informacije iz primera sa Sl. za slučaj multicast-a. Podmrežavanje Dva nivoa hijerarhije Kao što već znamo. (b) unicast. Broadcast na globalnom nivou nije dozvoljen. Privi nivo hijerarhije je mreža. Prethodno su pomenuta dva tipa IP adresa koje se koriste za ovu namenu: ograničena opšta adresa (sve 1-ce) i direktna opšta adresa (konkretno netid. Sve kopije paketa imaju istu (grupnu) odredišnu adresu. u odnosu na 19 paketa za slučaj višestrukog unicast-a. Učenje na daljinu. već svoj upit može da pošalje na grupnu adresu svih lokacija. on mora najpre da stigne u mrežu kojoj host pripada (korišćenjem 21 . mogu se distribuirati vesti. Kod višestrukog unicasta-a.Tipične primene grupne komunikacije su: Pristup distribuiranim bazama podataka. Da bi datagram stigao do nekog hosta na Internetu. koja će stići do svih zainteresovanih korisnika. izvor šalje više paketa. (a) Sl. Uočimo da se između para rutera uvek prenosi jedna kopija paketa. Ako se za ovu namenu koristi multicast firma može poslati jednu poruku. 2-13 potrebno da mreža prenese ukupno 11 paketa. 2-13 Multicast v. ka svakom odredištu pošalje jedan individualnih paketa (tzv. Odgovoriće lokacija koja poseduje traženu informaciju. To znači da sistem (host ili ruter) ne može da pošalje poruku svim hostovima i ruterima na Internetu. U poslovanju. Na sličan način. To znači da su informacije smeštene na više različitih lokacija. kod višestrukog unicast-a pojedini linkovi (oni koji su bliži izvoru) su više opterećeni od drugih. često se javlja potreba da firma šalje cirkularna obaveštenja svojim korisnicima.s. unicast: (a) multicast. Korisnik koji želi da pristupi bazi. Telekonferencije. višestruki unicast). multicast Za sve navedene primere primene grupne komunikacije zajedničko je da izvor u isto vreme šalje identičnu informaciju većem broju zainteresovanih odredišta. ne mora da zna tačnu lokaciju tražene informacije. Internet dozvoljava broadcast samo na lokalnom nivou. Multicast započinje jednim paketom koji se umnožava u ruterima. jedan deo IP adrese identifikuje mrežu (netid). a drugi host (ili ruter) u mreži (hostid). 2-13 je ilustrovana razlika između multicast-a i višestrukog unicasta-a.

neophodna je drugačija organizacija mreže. Razmotrimo sledeći primer. B i C IP adresa podržavaju dvonivovsku hijerarhiju. Sl. 2-15.000 hostova. 18 . Tri nivoa hijerarhije Uvođenje podmreža kreira treći nivo hijerarhije u IP adresiranju. isporuka podmreži i konačno. a rutiranje uključuje tri koraka: isporuka datagrama sajtu. pojavio se drugi problem.lokalna mreža tipa Ethernet LAN koji povezuje sve računare ovog fakulteta i ruter za vezu sa Internetom. Na primer. Kada datagram stigne u mrežu isporučuje se hostu shodno broju hosta (hostid). isporuka datagrama hostu. Klasa B adresa dozvoljava 65. sa glavnim ruterom koji je povezan sa ostatkom Interneta i brojnim Ethernet LAN-ovima (podmrežama) razvedenim po različitim fakultetima. (b) sa podmrežama.pozivni broj grada i 529601 . Ruter je ˝svestan˝ da je mreža fizički podeljena na podmreže i na neki način ˝zna˝ na koju podmrežu da preusmeri datagram. za interne potrebe. Mašinski fakultet je izrazio želju da dobije pristup Internetu. dva nivoa hijerarhije nisu dovoljna. interpretacija IP adresa se menja.svi su na istom nivou. i neki drugi fakulteti su na isti način priključivani. Godinu data kasnije.kod države.) (a) (b) Sl. što je više nego dovoljno da zadovolji sve potrebe univerziteta.netid). Sl. 22 .536 hostova u jednoj mreži. 2-15 Mreža sa uvedenim podmrežama. Niški univerzitet rezervisao je za svoje potrebe jedan mrežni broj iz klase B. 2-14 Mreža sa dva nivoa hijerarhije (bez podmrežavanja). u broju 381-18529601 postoje tri nivoa hijerarhije: 381 . Prva mreža uvedena je na Elektronskom fakultetu . Kada datagram sa Interneta stigne u glavni ruter. Pribavljanje nove mrežne adrese nije rešenje. Drugim rečima klase A.broj telefona. zato što su mrežne adrese danas deficitarne i teško se mogu dobiti nove. Ethernet LAN nije mogao više da se proširuje jer je ograničenje od najviše 4 repetitora brzo dostignuto. (Može se uspostaviti analogija sa šemom telefonskih brojeva. Međutim. 2-16). podmreža i host (Sl. Sada postoje tri nivou: sajt. Vremenom. Svaka podmreža ima svoj ruter za vezu sa glavnim ruterom. Međutim. Suština problema je u dvonivovskoj strukturi IP adresa klase A. a univerzitet ionako već ima dovoljan broj slobodnih adresa za više od 60. u mnogim slučajevima. podeli na više manjih fizičkih podmreža (subnet). 2-16 Adrese u mreži: (a) bez podmreža. Rešenje koje se danas širok koristi u situacijama sličnim opisanoj zasnovano je konceptu formiranja podmreža ili podmrežavanja (subnetting) koji omogućava da se mreža. Kupljen je repetitor i Ethernet LAN Elektronskog fakulteta proširen je i na Mašinski fakultet koji se nalazi u susednoj zgradi. a da se gledano od spolja i dalje vidi i ponaša kao jedna mreža. Hostovi ne mogu biti organizovani u grupe . Očigledno. B i C koje ne mogu pokrivati više od jedne mreže. Tipična savremena univerzitetska mreža može izgledati kao na Sl.

240. Specijalne adrese u podmrežavanju Sa uvedenim podmrežavanjem. a maska podreže adresu podmreže. U osnovi. DSL ili kablovskog modema. Za organizacije čije u potrebe bile između ovih granica. 2-17). manjim firmama i organizacijama srednje veličine) obezbeđuje pristup Inernetu i nudi servise kao što je elektronska pošta. u primeru sa Sl. Podrazumevana maska definiše mrežnu. broj dodeljenih adresa mogao je biti samo umnožak od 256.14. Internet je postepeno evoluirao od globalne mreže velikih mreža u globalnu mrežu ogromnog broja razuđenih mreža. broj dodatnih 1-ca je 3. Broj podmreža se može odrediti na osnovu broja dodatnih 1-ca u maski. dve adrese iz svake podmreže se dodaju listi specijalnih adresa.0 Adresa podmreže: AND 11001000 00101101 00100010 00111000 11111111 11111111 11110000 00000000 11001000 00101101 00100000 00000000 => 200. CIDR notacija CIDR notacija se takođe može koristiti i kod podmrežnog adresiranja. 255. a zbog prirode klasnog adresiranja nije mogao biti ˝ustupljen˝ nekoj drugoj organizaciji. Do sredine 1990’ adrese iz klasa A. koristile su se adrese iz klase B ili više blokova iz klase A. ADSL.34.2 Besklasno IP adresiranje Upotreba klasnog adresiranja stvorila je mnoge probleme.56.216 (klasa A).0 (18 1-ca). uporedo sa komercijalizacijom Interneta. koji dovoljna jedna ili tek nekoliko adresa.3/18 prikazuje adresu koja pripada podmreži sa maskom 255. adresa podmreže je 200. adrese su postale potrebne i malim firmama (čije potrebe ne prelaze više od 16 adresa). Na primer.255.777. 2-4 Za IP adresu 200.neophodna je maska podmreže. To znači da je broj podmreža 2 3=8.45.56 Maska podmreže: 255. 2-17 Poređenje podrazumevane maske i maske podmreže Za datu IP adresu. Na taj način.0 odrediti adresu podmreže.0 Maska podmreže 11111111 11111111 111 3 000 00000000 13 00000000 00000000 16 Sl. adresu podmreže možemo odrediti na isti način kao i adresu mreže . 16 i td) i dodeljuje ih korisnicima shodno njihovim potrebama. broj 0 je 13. sa širenjem Interneta. pa čak i kućnim korisnicima. U svakom slučaju. 1996. ISP je organizacija koja svojim korisnicima (pojedincima.92. Me đutim. Korišćenjem ove notacije. zapis 141. godine uvedeno je besklasno adresiranje koje je u međuvremenu gotovo u potpunosti potisnulo klasično. klasno adresiranje. što znači da u svakoj pomreži postoji 2 13=8192 raspoloživih adresa.34. mrežnu adresu).0 Dakle. U primeru sa slike. Takođe.0 Podrazumevana 11111111 11111111 maska 255. a najveći 16.240.45. Adresa: 200.0. Na primer. Prva adresa svake podmreže (hostid sve nule) je adresa podmreže. sa podelom na podmreže situacija se menja . od veoma velikih do veoma malih. Pr.255. adresa u podmrežu se može lako zapisati.32.Maska podmreže Ranije smo već uveli pojam podrazumevane maske.224. U odnosu na podrazumevanu masku.255. pojavili su se provajderi Internet usluga (ISP Internet Service Provider). Zbog svega toga. 2.56 i masku podmreže 255. umesto da se koristi jedna mrežna adresa. B i C su bile praktično iscrpljen. Poslednja adresa u svakoj podmreži (sa hostid sve 1-ce) je rezervisana za ograničeni broadcast unutar podmreže.primenom logičke AND operacije na masku i IP adresu. neki bitovi se oduzimaju od hostid i koriste za kreiranje većeg broja podmreža. Najmanji broj adresa dodeljivan organizacijama bio je 256 (klasa C). koje deli na grupe adresa (od po 2.192.3/16 prikazuje adresu klase B. 2-17. Tokom 1990’ godina. Broj adresa po podmreži može se odrediti na osnovu broj 0 u maski podmreže. Međutim.92. ISP je sa svojim korisnicima povezan putem dial-up. veliki broj adresa dodeljenih tipičnoj organizaciji ostajao je neiskorišćen. zapis 141.34.45. Podrazumevana maska se koristi kada je potrebno za datu IP adresu odrediti prvu adresu u bloku (tj. maska podmreže ima veći broj 1ca (Sl.1. 4.255.255. ISP poseduje veći opseg IP adresa. 23 . U cilju pospešivanja ovakvog trenda razvoja i prevazilaženja nedostataka klasnog adresiranja.14.45.

17.52 Samo dve adrese (a i c) zadovoljavaju ograničenje deljivosti sa 16: 205. Samo jedna adresa (c) zadovoljava ovaj uslov. Sl.255. 2-6: Koja od sledećih adresa može biti prva adresa bloka koji sadrži 256 adresa? a) 205. adresni prostor (2 32 adresa) je podeljen na blokove različitih veličina.32.0 c) 17.16. 2-7: Koja od sledećih adresa može biti prva adresa bloka koji sadrži 1024 adresa? a) 205.33. ako blok sadrži 4 adrese. da bi šema mogla biti upotrebljiva (mogućnost lakog rutiranja datagrama. krajnji desni bajt mora biti deljiv sa 256.32 b) 190. .). Prva adresa u bloku Prva adresa u bloku mora biti deljiva bez ostatka brojem adresa u bloku.45.32 b) 190..42.52 U ovom slučaju moramo proveriti dva krajnja desna bajta.24. 16. dovoljno je proveriti dva krajnja desna bajta. 4. 2-18). veličina blokova se kreće od veoma malih do veoma velikih.0 c) 17. dovoljno je proveriti samo krajnji desni bajt.16.255.0 d) 123.16.0 (/16). Kod besklasnog adresiranja. prva adresa mora biti deljiva sa 16. ali u opštem slučaju.16.0. 2-5: Koja od sledećih adresa može biti prva adresa bloka koji sadrži 16 adresa? a) 205. i td.42.52 U ovom slučaju.44 c) 17. Maska za blok iz klase A je 255. Postoji samo jedno ograni čenje koje se tiče veličine bloka. Kada je krajnji desni bajt 0. Na primer.37.42.24.255.37.32. celokupna adresa je deljiva sa 256. Pr. Na primer. a organizaciji se dodeljuje blok veličine koja najbolje odgovara njenim potrebama ( Sl.0 (/24).37.37.32 b) 190. a maska za blok iz klase C 255.32 zbog toga što je 32 deljivo sa 16. Pr.45. Maska Kod klasnog adresiranja maska je implicitna (podrazumevana).80 zbog 80 koje je takođe deljivo sa 16.17. Međutim. Za datu IP 24 .Blokovi promenljive dužne Kod besklasnog adresiranja opsezi adresa koji se dodeljuju organizacijama su blokovi promenljive dužine koji ne pripadaju klasama. 8. koja se odnose na veličinu bloka i prvu adresu u bloku. Pr. implementacija u ruterima i sl.0 d) 123.17.. Broja adresa u bloku Veličina bloka mora biti stepen dvojke (2.45. a nekoj velikoj firmi bloko od 1024 (2 10) adresa. a 17. maska za blok iz klase B je 255.) neophodno je prilikom definisanja blokova poštovati izvesna pravila.0. Ako blok ima 256 (28) ili manje adresa. Ograničenja Besklasno adresiranje rešava mnoge probleme.33.0. 128 adresa i td.24. 2-18 Blokovi promenljive dužine. Pošto je 1024 = 4 x 256.17. Ako blok ima 65336 (2 16) ili manje adresa. o kome će uskoro biti reči. Kod IP adresa koristi se aritmetika u osnovi 256. 4 adresa. nekoj manjoj firmi blok od 16. samo dve adrese (b i c) zadovoljavaju ovaj kriterijum. Blokovi mogu imati 2 adrese. krajnji desni bajt mora biti 0. Ako blok sadrži 16 adresa.16. a drugi bajt (s desne strane) deljiv sa 4.16. Od ponuđenih.0 (/8). rezidencijalnom korisniku se može dodeliti blok od 2.16.80 d) 123. prva adresa mora biti deljiva sa 4.

24/20 sadrži 4096 adresa. broj 4095 predsavićemo u osnovi 256.120. 2-10: Odrediti poslednju adresu bloka kojem pripada adresa 140.0/20 Određivanje broja adresa u bloku Ukupan broj adresa u bloku iznosi 2 32-n. Pojmovi prefisk i dužna prefiksa se često koriste u kontekstu besklasnog adresiranja. Drugim rečima. Određivanje prve adrese Prva adresa bloka se koristi kao mrežna adresa i ne može se dodeliti hostu (slično kao i prva adresa bloka kod klasnog adresiranja). mrežnu adresu).0.255 Poslednja adresa bloka je 140.z. n).84. samo na osnovu date IP adrese nismo u mogućnosti da odredimo blok kojem adresa pripada. koja se.80. a preostalih 32-n se postave na 0. Adresa u binarnom obliku: Zadržavamo prvih 27 bita: Rezultat u CIDR notaciji: 10001100 01111000 01010100 00011000 10100111 11000111 01010000 00000000 140. Određivanje poslednje adrese u bloku Poslednja adresa u bloku je specijalna adresa. Određivanje bloka Na osnovu besklasne adrese (adresa oblika x. Poslednju adresu bloka određujemo tako što na početnu adresu dodajemo (4096-1). tj.t/n Broj n nakon kose crte.120. Dužina sufiksa je broj bita u promenljivom delu adrese (tj. što znači da zadržavamo prvih 20 bita. Prva adresa bloka kojem data besklasna adresa pripada odre đuje se primenom AND operacije na adresu i masku. Tako.120.84. Prefiks je drugo ime za zajednički deo svih adresa iz bloka (slično kao netid).24/20. kao: x.0/20.y. 32 .120. 2-8 da je njegova prva adresa 140. a adresa se obično zapisuje u CIDR notaciji. Drugi način: Maska ima dvadeset 1-ca i dvanaest 0.0 15. Sufiks i dužna sufiksa.120. najpre možemo odrediti njenu klasu (na osnovu prvog bajta). a zatim primenom odgovarajuće maske odrediti i početnu adresu bloka (tj.24/20 jedna od adresa iz bloka. a preostalih 5 menjamo na 0. kao 15.80.24/20 jedna od adresa iz bloka. Prefiks i dužina prefiksa. + 140. Pr. tada su dvadest početnih (levih) bita isti u svim adresama odgovarajućeg bloka.95. Sa druge strane. Prosto. dok se preostalih 12 razlikuju.255. koristi kao orgraničena opšta adresa.255/20.255 (što sledi iz 4095 = 15x256 + 255).n). kod besklasnog adresiranja adresa i maska uvek idu u paru.120. Prvi način: U primeru Pr. Sufiks je promenljivi deo u adresama nekog bloka (slično kao hostid). Poslednju adresu u bloku možemo odrediti na dva načina: 1) Poslednja adresa bloka jednaka je zbiru prve adrese bloka i veličine bloka umanjene za 1. slično poslednjoj adresi bloka kod klasnog adresiranja. ako je n = 20. komplement maske je 00000000 00000000 00001111 11111111 ili 0. Poslednju adresu bloka nalazimo tako što saberemo prvu adresi i komplement maske: 25 .t/n) lako možemo odrediti prvu adresu bloka i veličinu bloka. Komplement maske imaće dvanaest 1-ca i dvadeset 0. Maska je određena vodećih brojem 1-ca. Pr. Dužina prefiksa date adrese je 20.adresu. Pr. Neophodo je poznavati i masku.z. prvih n bita se zadrže kakvi jesu. a u Pr. ukazuje na broj bita koji su isti u svim adresama iz bloka.120. Tako. Drugim rečima. 2-8: Odrediti prvu adresu u bloku ako je 140. Dužina prefiksa je 20. 2-9: Odrediti broj adresa u bloku ako je 140.95.y.84. Dužina prefiksa je broj bita u zajedničkom delu (tj.255 140. 2) Poslednja adresa bloka jednaka je zbiru prve adrese bloka i jediničnog komplementa maske. Na osnovu ove informacije lako možemo naći broj adresa u bloku i poslednju adresu bloka. a broj adresa u bloku 2 32-20 = 212 = 4096. 2-9 izračunato je da blok kojem pripada odresa 140. Da bi smo zadržali tačkasu-decimalnu notaciju i prilikom izvođenja operacije sabiranja.15.80. kod besklasnog adresiranja.120.120.84.

2-19.207/29. kod klasnog adresiranja poslednji bajtu poslednje adrese bloka je uvek 255. Veli čina bloka iznosi 232-29 = 23 = 8 adresa.255 140. (Uočimo da se poslednja adresa zavšava bajtom 207. Organizacija želi da kreira 4 podmreže. Maska podmreže imaće veću dužina prefiksa (n) od maske koja važi na nivou dodeljenog bloka.) Sl.7.95.87. 2-13 Organizaciji je dodeljen blok 130. Dakle. Kolika je dužina prefiksa podmreže? Kreiraju se 4 podmreže. 2-11 Odrediti blok ako je jedna od njegovih adresa 190. što znači da su. za svaku podmrežu. organizacija u svojoj mreži može imati najviše 6 hosta.140.87. Određivanje adresa u podmreži Ako je maska podmreže poznata. Dakle. Blok je određen prvom adresom.12. Uočimo da maska sa dužinom prefiksa 29 ima sve 1-ce na pozicijama prva tri bajta i pet 1-ca i tri nule na poziciji poslednjeg bajta. 11111000.140.120.140. može kreirati podmreže shodno svojim potrebama. 15. Broj 202 u binarnom obliku ima vrednost 11001010. tada je broj dodatnih 1-ca u dužini prefiksa jednak log2s. 2-12 Prikazati mrežnu konfiguraciju za blok iz Pr.64/26.202/29. 26 .200/29. prva i poslednja adresa u bloku moraju ostati nedodeljene. 2-11 Organizacija kojoj je dodeljen blok iz Pr. što sabrano sa prvom adresom daje poslednju adresu bloka: 190. Blok ima samo 8 adresa. 2-19 Pr. Pr. tj. kao i klasno adresiranje. Dakle. da imaju isti broj adresa).87.0. a poslednja 190. potrebna dve dodatne 1-ce (log24 = 2). Organizacija kojoj je dodeljen blok adresa.140. a primenom maske dobijamo: (11001010) AND (11111000) = 11001000 (decimalno 200). lako je odrediti opseg adresa u svakoj podmreži. prva adresa bloka je 190. u odnosu na dužinu prefiksa sajta.34. veličinom i poslednjom adresom. Pr.255 Poslednja adresa bloka je 140. određuje odgovarajuću masku.80.87.200/29. Prva adresa predstavlja adresu mreže. dužina prefiksa podmreže je /28.0. Komplement maske je 0. a poslednja se koristi kao ograničena opšta adresa. Uočimo da ako želimo da sve podmreže budu iste veličine (tj. Administrator mreže.140. Pr. broj podmreža mora biti stepen dvojke. To znači da će u prvoj adresi bloka u odnosu na datu adresu biti promenjen samo poslednji bajt (202). 2-12 Podmrežavanje Besklasno. podržava podmrežavanje. Ako je broj podmreža s.95. 2-11 može koristiti adrese iz bloka za svoje hostove. Maksimalna konfiguracija mreže je prikazana na Sl.120. Međutim. Određivanje maske podmreže Prefiks podmreže određen je brojem uvedenih podmreža.0 + 0.120. 0.87. prva adresa bloka je: 190.207/29.140. Dakle.255/20.

24. prva adresa treće podmreže je 130.34. 2-15 Organizaciji je dodeljen blok adresa sa početnom adresom 14. Blok sadrži 2 32-24=256 adresa. Podmreže promenljive veličine Podmrežavanje nije ograničeno samo na podmreže iste veličine.111/28.12.12. Ponovo. U osnovi. Slično.79/28. Odredimo prve i poslednje Korišćenjem poznate procedure nalazimo da je prva adresa u prvoj podmreži: 130. Slika pirkazuje adrese svih podmreža.64/28. Organizacija želi da formira 11 podmreža: a) dve podmreže sa po 64 adresa b) dve podmreže sa po 32 adrese c) tri podmreže sa po 16 adresa d) četiri podmreže sa po 4 adrese Projektovati podmreže. 2-14 Sajt ima na raspolaganju 2 adrese u svakoj podmreži. Pr. 32-26 = 64 adresa. To omogućava da organizacije raspodeljuju svoje adrese shodno potrebama podmreža. 2-14 Odrediti adrese podmreža i opsege adresa za svaku podmrežu iz Pr. postupak kreiranja podmreža je identičan kao u slučaju podmreža istih veličina. što daje 130.12. 2-21.12. 2-13.34.34.127/28.95/28.12. Sl. koje će koristiti maske promenljive dužine prefiksa. Prva adresa u drugoj podmreži je 130. 2-20 Pr. 27 .).12. 2-20.34. Slično.74.112/28.0/24. Svaka podmreža ima 2 32-28 = 16 adresa. Mrežna konfiguracija je prikazana na Sl. Mrežu je moguće podeliti i na podmreže različite veličine. a poslednja 130.34.80/28 (prva naredna adresa nakon poslednje adrese iz prve podmreže).Pr. prva adresa četvrte podmreže je 130.34.34.12. a poslednja 130. Poslednju adresu prve podmreže naćićemo oko na prvu adresu dodamo 15 (16-1). Jedna moguća konfiguracija je prikazana na Sl. Koncept će biti ilustrovan u sledećem primeru.96/28.34.12. (Uo čimo da je prva adresa prve podmreže ujedno i prva adresa bloka. odnosno podmreže sa istom maskom (n). sabirajući prvu adresu sa 15 dobijamo poslednju adresu: 130.

248/30 4 adrese Podmreža 14.74. 2. Maska ovih podmreža je /28.0/26 64 adrese Podmreža 14. Direktna isporuka se odnosi na prenos datagrama sa jednog hosta jedne fizičke mreže na drugi host te iste mreže. po kontrolom mrežnog sloja. zbog čega izvor mora da preda datagram ruteru da bi ga ovaj dalje preneo. prosleđivanje i rutiranje IP datagrama U ovoj sekciji bavićemo se isporukom.74. Maska ovih podmreža je /27.64/26 Sajt: 14.74.0/24 Ka ostatku Interneta Sl. se ne bavi dodelom adresa pojedinačnim organizacijama. Svaki ISP zatim deli svoj blok adresa na manje blokove i raspodeljuje ih svojim korisnicima. Maska ovih podmreža je /27.74. 28 .74.252/30 16 adrese Podmreža 14.24.160/27 16 adrese Podmreža 14. Ovakav pristup se naziva agregacijom adresa.24.192/28 64 adrese Podmreža 14.74. a izvorni host direktno isporučuje datagram odredišnom hostu.24. Indirektna isporuka se događa kada se izvor i odredište ne nalaze u istoj mreži.24.16 adrese Podmreža 14. već blokove adresa dodeljuje ISP-ovim.244/30 4 adrese Podmreža 14.24. U ovom slučaju prenos datagrama se obavlja bez učešća rutera.74. Rutiranje se odnosi na način kako se kreiraju tabele rutiranja koje ruteri koriste kada donose odluke o prosleđivanju/isporuci datagrama. Sledećih 48 adrese su iskorišćene za sledeće tri podmreže (sa po 16 adresa).74. Poslednjih 16 adresa su iskorišćene za poslednje četiri podmreže (sa po 4 adrese). Isporuka se odnosi na način kako se datagrami.24.240/30 4 adrese Podmreža 14. 2-15 Prvih 128 adresa su iskorišćene za prve dve podmreže (sa po 64 adrese). Direktna isporuka Kod direktne isporuke.74.24.24. po pravilu. Maska ovih podmreža je /30.1 Isporuka Isporuku datagrama možemo podeliti na dve ne tako stroge kategorije: direktna i indirektna isporuka.24. Sledeće 64 adrese su iskorišćene za sledeće dve podmreže (sa po 32 adrese).24.24.74. 2-21 Pr. tretiraju i prenose unutar jedne mreže.24.2 Isporuka.2.224/28 4 adrese Podmreža 14. Dodela adresa Dodela IP adresa na globalnom nivou je pod kontrolom međunarodne neprofitne organizacije koja se zove ICANN (Internet Corporation for Assigned Names and Numbers). konačno odredište datagrama je host povezan na istu fizičku mrežu kao i pošiljalac (izvor) datagrama. jer se veliki broj manjih blokova adresa objedinjuje u jedan veliki blok koji je dodeljen jednom ISP-u.128/27 32 adrese Podmreža 14. Međutim. 2. Prosleđivanje se odnosi na način kako se datagrami isporučuju sledećem ruteru.74. Možemo uočiti dva slučaja direktne isporuke (Sl. kada datagram treba da prođe kroz više mreža da bi stigao do svog odredišta. prosleđivanjem i rutiranjem IP datagrama do njihovog krajnjeg odredišta.208/28 32 adrese Podmreža 14. 2-22): a) Od izvornog do odredišnog hosta koji su locirani na istoj fizičkoj mreži. ICANN.74.

Odgovor se krije u jednostavnom testu. Kada je IP adresa sledećeg rutera poznata. Glavni problem u vezi sa tabelama rutiranja tiče se njihove veličine. Pošiljalac analizira odredišnu IP adresu uzetu iz zaglavlja datagrama. Prema tome.2. Poslednji ruter na putanji između izvora i odredišta datagrama priključen je direktno na istu fizičku mrežu kao i odredište. datagram može biti direktno isporučen. Ako pronađe podudarnost. Poslednja isporuka je uvek direktna. Zbog 29 . datagram se isporučuje indirektno. Ovo je slučaj koji odgovara poslednjem koraku u prenosu datagrama kada se izvor i odredište ne nalaze u istoj mreži. Sl. IP softver predaje datagram sloju veze koji ga enkaspulra u okvir i posredstvom fizičkog sloja šalje na liniju. Osnovno pitanje je kako će pošiljalac znati da li se odredište nalazi u mreži na koju je on direktno priključen. a na osnovu odredišne IP adrese. dobija informaciju kome treba da proslediti datagram. jednu ili više idirektnih isporuka. 2-23 Indirektna isporuka. Host kada želi da pošalje datagram (ili ruter koji treba da pošalje primljeni datagram). Sl. 2-23). Kod indirektne isporuke. Sa fizičkom adresom na raspolaganju. Ovaj izbor se vrši na osnovu odredišne IP adrese datagrama i tabela rutiranja. Indirektna isporuka Ukoliko se odredišni host ne nalazi u istoj mreži gde i izvorni host. odnosno među-ruter) mora da identifikuje IP adresu sledećeg rutera kojem treba da pošalje datagram. datagram se prenosi od rutera do rutera sve dok ne stigne do rutera koji je povezan na istu fizičku mrežu u kojoj se nalazi konačno odredište (Sl. pošiljalac koristi ARP da bi pronašao njegovu fizičku adresu. poslednji ruter će preneti datagram koristeći direktnu isporuku.b) Od poslednjeg rutera do odredišnog hosta. Prosleđivanje podrazumeva da hostovi i ruteri poseduju tabele rutiranja. iz nje izdvaja mrežnu adresu i upoređuje je sa adresama mreža na koje je priključen. koji će kasnije biti razmatran. Za ovu namenu (preslikavanje IP adresa na fizičke adrese) koristi se ARP protokol. iz tabele rutirana. 2. 2-22 Direktna isporuka. Da bi datagram i fizički bio prenet.2 Prosleđivanje Proslediti datagram znači uputiti ga jedan korak dalje duž putanje do njegovog krajnjeg odredišta. Uočimo da isporuka uvek uključuje jednu direktnu isporuku i ni jednu. pošiljalac dodatno treba da na osnovu odredišne IP adrese pronađe fizičku adresu odredišnog hosta. Indirektni prenos je složeniji od direktnog jer pošiljalac (izvorni host.

0). Tehnike prosleđivanja Nekoliko tehnika je razvijeno sa ciljem da se velična tabela rutiranja održi na prihvatljivom nivou. 30 . isporučiće ruteru R2 svaki datagram koji putuje ka hostu B. svaka tabela rutiranja određuje samo jedan (sledeći) korak duž putanje od odredišta (host/ruter ne poznaje celu putanju do odredišta!). 2-24 Metod sledećeg skoka. koji na sebe preuzima odovornost dalje isporuke.0. Dakle. biće prosleđen ruteru R2.impresivne veličine današnjeg Interneta. navedena je samo jedna tzv. 2-24(a) date su tabele koje sadrže kompletne putanje do hosta B. a ne 1000. Slično. svi hostovi povezani na istu mrežu tretiraju se kao jedan entitet. Datagrami koji se šalju hostovima iz mreže N2 uvek se prosleđuju ruteru R1. Datagram se prosleđuje ruteru R1. 2-25 Mrežno-specifični metod Metod podrazumevanog rutera. Na primer. Razmotrimo mrežnu konfiguraciju sa Sl. Datagrame namenjene hostu B. host A ne mora da zna kompletnu putanju do hosta B. Drugi metod za smanjenje veličine tabele rutiranja i pojednostavljenja procesa pretrage tabela zove se mrežno-specifični metod. Na primer. 2-26. Host A je povezan na mrežu koja ima dva rutera. umesto informacije o kompletnoj putanji. rešenje kod koga bi tabela rutiranja sadržala posebnu stavku sa kompletnom putanjom za svaku moguću odredišnu IP adresu je praktično neizvodljivo. 2-25 je ilustrovan koncept mrežno-specifičnog metoda. Nema potrebe u tabeli rutiranja eksplicitno navoditi svaki host iz mreže N2. Na Sl. Dakle. dovoljno je da zna da datagram kojeg želi da pošalje hostu B treba da isporuči ruteru R1. ruter R2 direktno isporučuje. Umesto da su u tabeli rutiranja hosta A eksplicitno navede sve mreže na Internetu. a na Sl. umesto da tabele sadrže posebnu stavku za svaki odredišni host povezan na neku fizičku mrežu na Internetu.0. Mežno-specifični metod. Kod ovog metoda. Metod sledećeg skoka. Sl. jedino ako je namenjen nekom hostu iz mreže N2. Ruter R1 se koristi za isporuku datagrama hostovima iz mreže N2. jer će ruter u poslednjem koraku (u ovom slučaju R1) obaviti direktnu isporuku odgovarajućem odredišnom hostu. ako datagram nije upućen u mrežu N2. podrazumevana stavka (u delu za odredište ove stavke normalno je navedena mrežna adresa 0. Slika prikazuje delove tabela rutiranja koje se odnose na host B u datoj mrežnoj konfiguraciji. ako je na nekoj mreži prisutno 1000 hostova. (a) (b) Sl. Na Sl. u tabeli rutiranja će postojati samo jedna stavka. Drugim rečima. ruter R1. Kod ove tehnike. 2-24(b) tabele sa navedenim sledećim-skokom. dok se za ostatak Interneta koristi ruter R2. one sadrže stavke koje definišu odredišne mreže. tabela rutiranja sadrži samo informaciju o adresi sledećeg skoka (koraka). 2-24 je prikazno kako se tabele rutiranja mogu pojednostaviti korišćenjem ove tehnike. Na Sl.

. Prosleđivanje kod klasnog adresiranja Klasna šema adresiranja poseduje niz nedostataka koji su posledica fiksiranih veličina blokova. 2-27 Modul za prosleđivanje datagrama za klasno adresiranje bez podmrežavanja. U slučaju direktne isporuku. Na Sl.definiše izlazni port kroz koji treba poslati datagram. za slučaju klasnog adresiranja bez podmrežavanja. Broj mrežnog adaptera . čini proces prosleđivanja jednostavnim.) Podela na tri tabele omogućava brzu pretragu. Svaki mrežni priključak ima različiti broj porta. Sl. Mrežna adresa odredišne mreže . treba isporučiti ruteru. R2 R2 Ostatak Interneta Sl. upravo ova osobina. tj.Tabela rutiranja hosta A Odredište Host A N2 . koja se ogleda i kroz postojanje podrazumevanih maski. Podmrežavanje se javlja samo unutar organizacija.. Međutim. 2-27 je prikazana struktura modul za prosleđivanje. 31 . Ruter je normalno priključen na nekoliko mreža. Adresa sledećeg skoka . čija je IP adresa navedena u drugoj koloni. 2-26 Podrazumevano rutiranje. U nastavku će biti opisani postupci prosleđivanja datagrama za slučaj klasnog adresiranja u mrežnim konfiguracijama bez i sa podmrežavanjem. broj mrežnog adaptera. po jednu za svaku klasu A.ukazuje kom ruteru treba isporučiti datagram (za slučaj indirektne isporuke). Modul sadrži tri tabele rutiranja. 3.ukazuje na mrežu u kojoj je odredišni host lociran (pretpostavka je da se koristi mrežno-specifično prosleđivanje). B i C. većina rutera na Internetu nisu opterećeni podmrežavanjem. Prosleđivanje bez podmrežavanja Kod klasnog adresiranja. (Ako ruter podržava multicast komunikaciju. postojaće još jedna tabela za adrese iz klase D. a koji se nalazi u fizičkoj mreži koja je dostupna preko mrežnog adaptera čiji je broj naveden u trećoj koloni. 2. Podrazumevano R1 N1 N2 Sledeći skok R1 . ova kolona je prazna... Jedna stavka tabele se tumači na sledeći način: Datagram upućen hostu koji se nalazi u mreži čija je adresa navedena u prvoj koloni. Svaka tabela ima tri kolone: 1.

Pr. 2-16: Prikazati sadržaj tabela rutiranja rutera R1 u mrežnoj konfiguraciji sa Sl. 2-28.

Sl. 2-28 Mrežna konfiguracija za Pr. 2-16

Tri tabele rutiranja rutera R1, za klase A, B i C, prikazane su na Sl. 2-29. Uočimo da su neke stavke za adresu sledećeg skoka prazne. U svakom takvom slučaju odredište se nalazi u jednoj od mreža na koje je ruter priključen (koristi se direktna isporuka), a ARP-u se predaje odredišna IP adresa uzeta iz datagrama.

Sl. 2-29 Tabela za Pr. 2-16

U najjednostavnijem obliku, modul za prosleđivanje obavlja sledeće tri aktivnosti prilikom obrade svakog datagram: 1. 2. 3. 4. Izdvajanje odredišne adrese iz datagrama Određivanje klase odredišne adrese. Odredišna adresa, zajedno sa klasom određenom u koraku 2., se koriste za određivanje mrežne adrese odredišta. Klasa adrese i mrežna adresa se koriste za pretragu tabela rutiranja. Klasa određuje tabelu koju treba pretražiti. U prvoj koloni izabrane tabele traži se mrežna adresa. Ako je pretraga uspešna, iz odgovarajuće vrste tabele uzimaju se adresa sledećeg skoka i broj mrežnog adraptera. Ako u tabeli ne postoji stavka sa traženom mrežnom adresom, koristi se podrazumevana stavka. Adresa sledećeg skoka i broj mrežnog adaptera se prosleđuju ARP modulu koji ima zadatak da pronađe fizičku adresu sledećeg rutera. Nakon toga, ARP prosleđuje datagram sloju veze koji obavlja fizički prenos.

5.

Pr. 2-17: Ruter R1 sa Sl. 2-28 prima datagram upućen na adresu 192.16.7.14. Opisati postupak prosleđivanja ovog datagrama. Prvo, određuje se klasa odredišne adrese. Obzirom da za prvi bajt adrese važi 192 ≤ 192 ≤ 223, odredišna IP adresa pripada klasi C. Drugo, klasi C, netid je veličine 3 bajta, što znači da je datagram upućen u odredišnu mrežu: 192.16.7.0. Treće, tražena mrežna adresa postoji u tabeli rutiranja za klasu C. Četvrto, odgovarajuća adresa sledećeg skoka (111.15.17.32) i broj mrežnog adaptera (m0) se prosleđuju ARP-u koji treba da pronađe fizičku adresu sledećeg rutera i uz pomoć softvera sloja veze pošalje datagram sledećem ruteru. Pr. 2-18: Ruter R1 sa Sl. 2-28 prima datagram sa odredišnom adresom 167.24.160.5. Opisati postupak prosleđivanja ovog datagrama. Odredišna adresa pripada klasi B (128 ≤ 167 ≤ 191). U klasi B, netid je veličine 2 bajta. Dakle, mrežna adresa odredišta je 167.24.0.0. Pretražuje se tabela za klasu B. Međutim, u ovoj tabeli ne postoji odrednica za traženu mrežnu adresu. Zbog toga, paket treba isporučiti podrazumevanom ruteru (tj. na IP adresu 111.30.31.18 kroz mrežni adapter m0.

32

Prosleđivanje sa podmrežavanjem Kod klasnog adresiranja, podmrežavanje postoji samo unutar organizacija. Ruteri koji se bave podmrežavanjem su ili na granicama organizacija ili unutar samih organizacija. Na Sl. 2-30 je prikazana strukura modula za prosleđivanje za slučaj podmreža fiksne veličine. Modul obrađuje svaki datagram na sledeći način: 1. 2. 3. Izdvaja odredišnu adresu iz datagrama. Odredišna adresa i maska se koriste za određivanje adrese podmreže. Adresa podmreže se koristi za pretragu tabele rutiranja kako bi se pronašla adresa sledećeg skoka i broj mrežnog adaptera. Ako u tabeli na postoji odrednica za traženu adresu podmreže, koristi se odrednica za podrazumevani ruter. Adresa sledećeg skoka i broj mrežnog adaptera se predaju ARP-u

4.

Sl. 2-30 Modul za prosleđivanje datagrama za klasno adresiranje sa podmrežama.

Pr. 2-19 Na Sl. 2-31 je prikazan ruter priključen na 4 prodmreže.
Adresa podmreže 145.14.0.0 145.14.64.0 145.14.128.0 145.14.192.0 0.0.0.0 x.y.z.t/n Adresa sledećeg skoka podrazumerani ruter m4 m3 m2 Mrežni adapter m0 m1 m2 m3 m4

Maska podmreže: /18 m1 m0

145.14.192.0/18

145.14.0.0/18

145.14.128.0/18

145.14.64.0/18

Sajt 145.14.0.0/16

Sl. 2-31 Konfiguracija za Pr. 2-19.

Treba uočiti nekoliko detalja. Prvo, adresa sajta je 145.14.0.0/16 (adresa klase B). Svaki datagram sa adresom odredišta iz opsega 145.14.0.0 - 145.14.255.255 koji kroz mrežni adapter m4 stigne u ruter, prosleđuje se, kroz mrežne adaptere m0-m3 u jedno od četiri podmreža. Drugo, IP adresa rutera za mrežni adapter m4 zapisana je u obliku x.y.z.t/n, zato što ne znamo na koju mrežu je ovaj ruter povezan. Treće, tabela ima podrazumevanu odredicu za datagrame koji napuštaju sajt. Ruter je konfigurisan tako da primenjuje masku podmreže /18 za sve odredišne podmreže. Pr. 2-20: Ruter sa Sl. 2-31 je primio datagram sa odredišnom adresom 145.14.32.78. Gde će ovaj datagram biti isporučen? Maska je /18. Nakon primene maske na odredišnu adresu dobijamo adresu podmreže; 145.14.0.0. Datagram se predaje ARP-u sa adresom sledećeg skoka 145.14.32.78 i brojem mrežnog adaptera m0.

33

Prosleđivanje kod besklasnog adresiranja Kod besklasnog adresiranja, celokupan adresni prostor se tretira kao jedinstvena celina; ne postoje klase. Adresni prostor se deli na blokove različitih veličina koji se dodeljuju organizacijama. To znači da u tabeli rutiranja za besklasno adresiranje mora postojati stavka za svaki poznati blok. Stavka sadrži masku (/n) i prvu (mrežnu) adresu bloka, koje zajedno definišu blok, sa jedne i adresu sledećeg skoka i broj mrežnog adaptera sa druge strane.

Sl. 2-32 Struktura modula za prosleđivanje za besklasno adresiranje.

Na Sl. 2-32 je prikazana struktura modula za prosleđivanje za besklasno adresiranje. Za razliku od klasnog adresiranja kod koga se pripadnost odredišne adrese klasi i mrežna adresa utvrđuju na osnovu same odredišne adrese (vidi Sl. 2-27), kod klasnog adresiranja za testiranje pripadnosti odredišne adrese bloku neophodno je koristiti i masku, koja je specifična za svaki blok. Zbog toga je pretraga tabele rutiranja za besklasno adresiranje složenija jer zahteva da se mrežna adresa date odredišne adrese određuje za svaku stavku iz tabele posebno, korišćenjem maske sadržane u stavci. Pr. 2-21: Sačiniti tabelu rutiranja rutera R1 u mrežnoj konfiguraciji sa Sl. 2-33.

Sl. 2-33 Konfiguracija za Pr. 2-21.

Tabela rutiranja rutera R1 je prikazana na Sl. 2-34.

Sl. 2-34 Tabela rutiranja za ruter sa Sl. 2-33.

Pr. 2-22: U ruter R1 sa Sl. 2-33 stiže datagram sa odredišnom adresom 180.70.65.128. Opisati proces prosleđivanja ovog datagrama. Ruter obavlja sledeće aktivnosti:

34

Agregacija adresa četiri organizacije je moguća zato što su njihovi blokovi adresa kontinualni (nadovezuju se jedan na drugog).24.32. ako se. već i produžava vreme pretrage tabele. Na primer. Povećan broj stavki u tabeli ne samo da zuzima veću količinu memorije.0. 2-35 Agregacija adresa. Agregacija adresa Glavna prednost besklasnog u odnosu na klasno adresiranje je mogućnost podele adresnog prostora na veći broj blokova promenljive dužine.200.65. koja će biti objašnjena uz pomoć Sl. Pr. iz bilo kog razloga. zahvaljujući principu poklapanja po najdužoj maski koji se koristi u ruterima za besklasno adresiranje. Pošto adresa sledećeg skoka nije navedena. Zato se za prosleđivanje datagrama koriste informacije iz podrazumevane stavke: datagram se kroz mrežni adapter m2 prosleđuje ruteru sa IP adresom 180. 2-34). a za prosleđivanje datagrama treba koristiti informacije iz treće i četvrte kolone druge stavke. Na odredišnu adresu se primenjuje maska /26. Primenom maske /25 na odredišnu adresu dobijamo mrežnu adresu koja se poklapa sa onom navedenoj u drugoj koloni ispitivane stavke. Sa druge strane. mreža organizacije 4 ne može povezati sa ruterom R1.1 .0 do 140. kako bi se izdvojila mrežna adresa. stavke u tabeli rutiranja su sortirane po dužini maske. bez obzira kojoj od četiri organizacije je namenjen. 180. počev od najduže do 35 . ili barem ublažio.24. a da organizacija 4 zadrži blok 140. Obzirom da rezultujuća adresa.128.7. Dakle.Ispituje se prva vrsta tabele rutiranje. 2-23: Opisati proces prosleđivanja datagrama sa odredišnom adresom 18. Da bi se ovaj problem prevazišao. Znači. 2 . Poklapanje po najdužoj maski Postavlja se pitanje: šta će se desiti ako je jedna od organizacija iz prethodnog primera geografski udaljena u odnosu na preostale tri? Na primer.24.192/26? Odgovor je potvrdan.7.70. primenjuje se tehnika adregacije adresa. R2 ne mora da sadrži posebnu stavku za svaku od četiri organizacije. zaključujemo da odredišna adresa ne pripada ovom bloku.65. U ovom slučaju.255 šalje kroz adapter m0 ka ruteru R1. odredišna adresa pripada ovom bloku.Ispituje se druga vrsta tabele rutiranja.7. ruter R1 je priključen na četiri mreže od kojih svaka pripada jednoj organizaciji i sadrži 64 adresa. odredišna adresa na pripada ni jednom bloku navedenom u tabeli rutiranja rutera R1 ( Sl. Sa druge strane. U mrežnoj konfiguraciji sa Sl. 2-33. možemo zamisliti ruter R3 u kome je izvršena adregacija adresa rutera R2. da li je i dalje moguće primeniti agregaciju adresa.70. Shodno ovom principu. zbog toga su i tabele rutiranja za besklasno adresiranje veće (sadrže veći broj stavki) od tabela za klasno adresiranje. Lako je uočiti da se agregacije adresa može primenjivati hijerarhijski. Zato se ARP-u predaje odredišna adresa iz datagrama zajedno sa brojem mrežnog adaptera m0 (vrednost iz četvrte kolone). zaključujemo da se odredišni host nalazi u mreži na koju je ruter direktno priključen. 2-35. već su četiri bloka objedinjeni u jedan veći blok. R1 je povezan sa ruterom R2 koji se nalazi na nekoj udaljenoj lokaciji.24. tabela rutiranja rutera R2 je kraća zato što on svaki datagram sa odredišnom adresom iz opsega 140. Tabele rutiranja rutera R1 je veća od one kod rutera R2 zato što R1 mora svaki datagram direktno da usmeri ka jednoj od četiri organizacije. 2-35. nije jednaka adresi iz druge kolone analizirane stavke.78 kroz ruter R1 sa Sl. Međutim. Sl.

/26 i /24. Jedan blok je dodeljen Severnoj Americi. a /24 poslednja stavka u tabeli. Iako je blok razdeljen na veliki broj manjih blokova. Međutim. pretpostavimo da je ruter R2 primio datagram sa odredišnom adresom 140. tada će stavka sa maskom /27 biti prva. biće isporučen lokalnom ISP-u. 2-36. ostatak Interneta nije svestan ove podele. Razmotrimo slučaj lokalnog ISP-a. Kod besklasnog adresiranja.d/n. treći Aziji i td.7.192 koja se poklapa sa mežnom adresom iz ove stavke. 36 . gde je organizacija 4 udaljena od preostale tri i putem posebnog rutera. pozvezana sa ruterom R2. a regionalni na lokalne ISP-ove.b. Lokalni ISP može podeliti ovaj blok na manje blokove rezličitih dužina i dodeliti ih pojedinačnim korisnicima i organizacijama. Prva stavka u tabeli rutiranja rutera R2 se upravo odnosi na mrežu organizacije 4. datagram bio pogrešno usmeren ka ruteru R1. drugi Evropi. ako u tabeli postoje tri maske: /27. dok je druga dobijena agregacijom adresa sve četiri organizacije (uključujući organizaciju 4).c. može formirati još jedan nivo hijerarhije. tada će dužina prefiksa maski svih podeljenih blokva biti duže od n. Uočimo da bi pri drugačijem (nesortiranom) redosledu stavki u tabeli u kome bi stavka sa maskom /24 prethodila stavki za mrežu organizacije 4. Razmotrimo kako se primenom ovog principa može razrešiti situacija sa Sl. Za ostatak Interneta svi korisnici lokalnog ISP-a definisani su sa a. ruteri ISP-ova izvan Severne Amerike imaće samo jednu stavku za sve datagrame koji se upućuju nekome u Severnoj Americi i td.200. Na primer. Geografsko rutiranje Veličina tabela rutiranja se dodatno smanjuje uvođenjem geograskog rutiranja. Drugim rečima. Lokalnom ISP-u može biti dodeljen jedan veći blok adresa određene dužine prefiksa. Primenom maske /26 iz prve stavke na odredišnu adresu dobija se mrežna adresa 140.24. Na primer. broj nivoa hijerarhije nije ograničen. sve dok se poštuju pravila besklasnog adresiranja. datagram će ispravno biti usmeren kroz adapter m0 ka organizaciji 4.najkraće. Svaki datagram upućen na neku adresu iz ovog velikog bloka. do pogrešnog usmeravanja ne dolazi je će druga stavka biti razmatrana samo ako datagram nije upućen organizaciji 4. ruter lokalnog ISP-a mora prepoznati podblokove i usmeriti datagram ka odgovarajućem odredišnom korisniku.d/n. podblok organizacije biće podeljen na manje podblokove (pod-podblokove).b. Ruteri ISP-ova izvan Evrope sadržaće samo jednu stavku za sve datagrame koji se upućuju nekome u Evropi. 2-36 Poklapanje po najdužoj maski. Svi oni pripadaju istoj grupi. Celokupan adresni prostor je podeljen na nekoliko velikih blokova. Ovakav način organizacije omogućava smanjene veličine tabela rutiranja. Slično.c. Sl. Nacionalni ISP-ovi su podeljeni na regionalne. onda se unutar te organizacije. Ako blok dodeljen lokalnom ISP-u počinje adresom a.7. R3. a u tabelama rutiranja svih rutera na Internetu postojaće samo jedna stavka za sve ove korisnike. Uočimo da je opseg adresa organizacije 4 pokriven i prvom i drugom stavkom. Hijerarhijsko rutiranje Savremeni Internet je najvećim delom organizovan na hijerarhijski način. uvođenjem podmrežavanja. Dakle. Internet je podeljen na međunarodne i nacionalne ISP-ove.24. Naravno. Ako je neki od korisnika veća organizacija.

OSPF ili BGP). ruter je uvek bio predstavljan kao crna kutija koja prihvata dolazne pakete sa svojih ulaznih portova. Sl. Ulazni port prima okvir sa linije. Statičke i dinamičke tabele rutiranja Kao što smo videli u prethodnoj sekciji. Sl. a zatim se okvir konvertuje u signal koji se šalje na liniju (Sl. 2-38 Ulazni port. ulazni port sadrži bafer (red čekanja) za čuvanje datagrama pre nego što iz usmeri ka komutatorskoj matrici. Uvek kada se na Internet desi neka promena. U ovoj sekciji. izlazni portovi. Sl. detektuje greške u prenosu i iz okvira izdvaja datagram. Dinamičke tabele rutiranja Dinamičke tabele rutiranja se automatski ažuriraju korišćenjem jednog od protokla za dinamičko rutiranje (RIP. Ulazni port zadužen je za funkcije rutera koji se odnose na fizički i sloja veze.2. Odlazni datagrami se smeštaju u red čekanja. Svaku promenu mora da unese administrator. pakuju se u okvire. Na Sl. procesor rutiranja i komutatorska matrica (Sl. 37 . samo u obrnutom redosledu. Nakon što je tabela kreirana. 2-37 Komponente rutera. 2-39 Izlazni port. koristi tabele rutiranja da bi odredito izlazni port kroz koji treba isporučiti paket i kroz izabrani izlazni port šalje datagram sledećem ruteru ili odredišnom hostu. 2-37). promena nastalih na Internetu). Ruter čine četiri osnovne komponente: ulazni portovi.3 Rutiranje Rutiranje se odnosi na kreiranje i ažuriranje tabela rutiranja.4 Struktura rutera U dosadašnjim razmatranjima u vezi prosleđivanja i rutiranja. Izlazni port obavlja iste funkcije kao ulazni port.2. ruter usmerava datagrame na osnovu sadržaja tabele rutiranja koja za svako odredište ili grupu odredišta sadrži jednu stavku. 2-39). Ulazni portovi. Statičke tabele se koriste u malim mrežama. 2. čija se konfiguracija ne menja često. 2-38 je prikazan šematski dijagram ulaznog porta. ona se ne može automatski ažurirati (zbog npr. razmotrićemo sa više detalja unutrašnju strukturu rutera. Dodatno. dinamički protokol za rutiranje je odgovoran za automatsko ažuriranje tabela svih rutera. kao što je prestanak rada nekog rutera ili prekid nekog linka. Stavke u tabelu unosi administrator mreže. Statičke tabele rutiranja Statičke tabele rutiranja se manuelno popunjavaju. Tabele rutiranja mogu biti statičke ili dinamičke.2. Izlazni portovi.

2-40). Na Sl. 0 Ulaz 1 2 3 0 1 2 Izlaz 3 Sl. Na Sl. Krozbar može istovremeno da prenosi n datagrama iz n ulaznih bafera pod uslovom da su svi oni upućeni ka različitim izlaznim portovima. Broj stepena je log2(8) = 3. određuje potrebnu veličinu ulaznih i izlaznih bafera. 2-42(b) vidimo putanju datagrama kroz komutator od ulaznog porta 5 do izlaznog porta 2 (010). Za n ulaza i n izlaza. a treći mikroprekidač na putanji (C-4) na osnovu trećeg bita (0). Na Sl. Komutatorska matrica treba da omogući prenos datagrama iz bilo kog ulaznog bafera u bilo koji izlazni bafer i da pri tome bude u stanju da istovremeno obavlja prenos više od jednog datagrama. drugi stepen odluku o usmeravanju donosi na osnovu prvog sledećeg bita i td. Nedostatak krozbara je veliki broj mikroprekidača = n x n. kako i ukupno kašnjenje datagrama kroz ruter. 2-42 je ilustrovan način rada banyan komutatora. Po strukturi najjednostavniji. Prvi stepen usmerava pakete shodno bitu najveće težine rednog broja izlaznog porta. 2-41 Banyan komutator. 38 . Kod savremenih rutera koriste se različita rešenja. Brzina sa kojom može da se obavi prebacivanje. mreža sadrži log2(n) stepena sa po n/2 mikroprekidača. Ovaj blok koristi odredišnu adresu datagrama za pretragu tabele rutiranja radi određivanja adrese sledećeg skoka i broja mrežnog adaptera (tj. Banyan komutator je višestepeni komutator sa mikroprekidačima u svakom stepeno koji usmeravaju pakete shodno reperezentaciji rednog broja izlaznog porta u binarnom obliku. Procesor rutiranja obavlja funkciju mrežnog sloja. drugi (b-4) na osnovu drugog (1). Prvo mirkoprekidač (A-2) usmerava datagram na osnovu prvog bita (1). Komutatorska matrica. izlaznog porta). Na Sl. Najsloženija aktivnost koja se obavlja u ruteru je prebacivanje datagrama iz ulaznih u izalazne redove čekanja. Banyan komutator.Procesor rutiranja. ali po složenosti najsloženiji tip komutatorske matric je krozbar (Sl. Ukratko ćemo razmotriti dva: Krozbar komutator. Krozbar povezuje n ulaza i n izlaza putem mreže u čijim presecima su nalaze mirkoprekidači koji uspostavljaju željeni kontakt. 2-40 Krozbar. 2-42(a) je istaknuta putanja kojom se kroz komutator prenosi datatagram koji stiže preko ulaznog porta 1 i prenosi se na izlazni port 6 (binarno 110). Sl. 2-41 je prikazan banyan komutator sa osam ulaza i osam izlaza.

što povlači i neizbežnu promenu fizičke adrese. kao što je to slučaj kod krozbara. Mašina M1 koja šalje datagram zna IP adresu odredišne mašine M2. jer svaki paket mora proći kroz log2(n) mikroprekidača umesto samo kroz jedan. dok fizičke identifikuju priključak mašine na lokalnu mrežu. Kod nekih tipova LAN mreža. 2. Za dinamičko preslikavanje adresa u upotrebi su dva protokola: ARP (Address Resolution Protocol . 39 . 3. (b) od ulaza 5 do izlaza 2 (010). ali zato je vreme prenosa paketa duže.Protokol za razrešavanje adresa) i RARP (Reverse Address Resolution Protocol). što znači i promenu fizičke adrese mašine. Zovu se fizičkim adresama zato što su obično utisnute u hardver mrežnog adaptera. Fizičke adrese su lokalne adrese jer imaju značenje samo u okviru lokalne mreže. Statičko preslikavanje podrazumeva kreiranje tabele u kojoj su mrežnim adresama pridružene fizičke. banyian komunator sadrži manji broj mikroprekidača za isti broj ulaza i izlaza. 2-43). One moraju biti jedinstvene (na lokalnom nivou) ali ne obavezno i univerzalne (na globalnom nivou). Iz navedenih razloga. Fizička adresa se može lako promeniti. 2. paket na putu od izvora do odredišta obično prolazi kroz više različitih fizičkih mreža. mašina koja zna jednu od dve adrese (logičku ili fizičku) može koristiti protokol da bi saznala drugu. Mrežni adapter može biti zamenjen. Međutim. Kao što znamo. IP adrese su jedinstvene i univerzalne na nivou globalnog Interneta. što je svakako nepraktično. npr. Ovakvu tabelu bi trebalo da poseduje svaka mašina na mreži. tabele bi morale biti često ažurirane. Fizičke i mrežne adrese su dva različita identifikatora. a drugi fizičke na logičke (Sl. je mogućnost interne kolizije dva pakete. Prvi preslikava logičke adrese na fizičke. dok drugi mora da čeka. Na fizičkom nivou. Svaka mašina na Internetu (host ili ruter) ima jednu (ili više) IP adresa. Preslikavanje adresa se može ostvariti statički ili dinamički. hostovi i ruteri se prepoznaju po svojim fizičkim adresama. Postavlja se pitanje: kako IP adrese preslikati na fizičke. IP adrese su logičke (mrežne) adrese koje se koriste za rutiranje datagrama od izvornog do odredišnog hosta. 2-42 Primer rutiranja kroz banyan komutator: (a) od ulaza 5 do izlaza 6 (110). Mobilni računari se mogu premeštati iz jedne u drugu mrežu.3 ARP i RARP Internet čini kombinacija raznorodnih fizičkih mreža spregnutih ruterima. Kod dinamičkog preslikavanja. preneće se samo jedan. Mašina M1 koja zna IP adresu mašine M2. ali da bi se prenos i fizički ostvario M1 mora znati i fizičku adresu mašine M2. zamenom mrežnog adaptera (npr. mrežne identifikuju priključak mašine na globalni Internet. U odnosu na krozbar. dok su IP adrese dugotrajnije i ne mogu se proizvoljno menjati. zbog kvara).(a) (b) Sl. Primer fizičkih adresa su 48-bitne MAC adrese koje se koriste kod Ethernet-a. Još jedan problem koji se javlja kod banyan komutatora. fizička adresa se menja uvek kada se mašina uključi. Dakle. Naime ako su na oba ulaza nekog mikroprekidača prisutni datagrami koji treba usmeriti na isti izlaz mikroprekidača. za prenos paketa do hosta ili rutera potrebna su dva nivoa adresiranja: logički i fizički. Međutim: 1. a koji ne postoji kod krozbara. Ovo pitanje se postavlja uvek kada jedna mašina treba da isporuči IP datagram drugoj mašini (hostu ili ruteru) na istoj fizičkoj mreži. fizičku adresu mašine M2 može da potraži u svojoj tabeli.

a paket se direktno šalje pošiljaocu upita. Dinamički pristup podrazumeva mogućnost da se pošiljalac obrati primaocu sa zahtevom da mu saopšti svoju fizičku adresu. ali samo onaj koji u upitu prepozna svoju IP adresu odgovara hostu koji je postavio upit slanjem paketa tipa ARP odgovor (Sl. 2-44(b)). pored logičke. U slučaju Etherneta. kod Ethernet-a se kao broadcast koristi adresa sa svim 1cama (FF-FF-FF-FF-FF-FF). Pošto pošiljalac na zna fizičku adresu primaoca. 2-44 ARP: (a) ARP upit. koji se oslanja na tabele koje se manuelno popunjavaju. Svi hostovi i ruteri u mreži primaju i obrađuju ARP paket. da bi mogao biti prenet fizičkim linkom. raspolaže logičkom (IP) adresom prijemnika. U ovom paketu sadržana je fizička adresa traženog hosta. treba napomenuti da oni koriste kako unicast tako i broadcast fizičke adrese. braodcast se ostvaruje slanjem okvira na fizičku adresu FF-FF-FF-FF-FF-FF (sve 1-ce). (a) (b) Sl. nije pogodan za ovu namenu. 2-44(a)). Pošto između logičkih i fizičkih adresa ne postoji direktna veza.Sl. neophodan je mehanizam koji će omogućiti pronalaženje fizičke adrese za datu logičku adresu. Već je rečeno da statički pristup. Unicast fizička adresa je ona koja se odnosi na tačno jednu stanicu na lokalnoj mreži. Kad god nekom hostu ili ruteru zatreba fizička adresa nekog drugog hosta ili rutera u istoj mreži. 40 . Međutim. To znači da pošiljalac datagrama. na fizičku adresu preuzetu iz ARP upita (unicast). (b) ARP odgovor. Ovaj paket sadrži fizičku i IP adresu pošiljaoca i IP adresu primaoca. datagram mora biti enkapsuliran u okvir. ARP Host ili ruter koji želi da pošalje IP datagram nekom drugom hostu ili ruteru. Host koji je postavio upit. paket se emituje (broadcast) na mrežu (Sl. ARP je protokol koji reguliše konverzaciju predajnika i prijemnika u toku ovog procesa. Pre nego što pređemo na detaljniji prikaz ova dva protokola. uzima fizičku adresu iz ARP odgovora i koristi je kao odredišnu adresu u okviru koji prenosi datagram do odredišnog hosta. mora da poznaje i fizičku adresu prijemnika. Na primer. 2-43 ARP i RARP. dok se broadcast odnosi na sve stanice. on formira i šalje na mrežu paket tipa ARP upit.

Prvi par (Sender EA. Zato postoje polja HLEN i PLEN koja sadrže informaciju o dužinama adresa. 16-bitno polje koje definiše tip protokola odnosno tip mrežne adrese. ARP je univerzalan protokol koji se može koristiti na bilo kojoj fizičkoj mreži. Na primer. Protocol Type. 0 8 HardwareType HLEN (0x06) PLEN (0x04) 16 ProtocolType OPERATION (0x0001 or 0x0002) 31 Sender EA Sender EA Sender IP Target EA Target IP Sender IP Target EA Sl. 8-bitno polje koje definiše dužinu fizičke adrese u bajtovima (0x06 za Ethernet adrese). Target EA. 41 . Sender EA. Značenja polja su sledeća: • Hardware Type. Za IPv4 dužina ovog polja je 4 bajta. ARP protokol nije ograničen samo na IP. Na primer. ARP se može koristiti u kombinaciji sa bilo kojim protokolom višeg nivoa. PLEN (Protocol Length). • • • • • • • • Oba tipa ARP paketa: ARP upit i ARP odgovor imaju identičan oblik. za Ethernet LAN u ovom polju je upisana 1-ca (0x0001). popunjava polje Target EA svojom fizičkom adresom. za IPv4 dužina ovog polja iznosi 4 bajta. 2-46 ARP paket je enkapsuliran u Ethernet okvir. a za identifikaciju tip koristi se polje OPERATION. tip paketa menja na ARP odgovor i tako formiran paket šalje na fizičku adresu iz polja Sender EA. a par (Target EA. Sender IP. OPERATION. Polje promenljive dužine koje sadrži fizičku adresu ciljne mašine. Standardom je svakom tipu LAN-a dodeljen jedinstveni ceo broj. Sender IP) odnosi se na pošiljaoca ARP upita. Za ARP upit. HLEN (Hardware Length).Format paketa Format ARP paketa prikazan je na Sl. Enkapsulacija ARP paket se enkapsulira direktno u okvir sloja veze. Na prijemu se ignoriše. za Ethernet. U ARP upitu polje Target EA je prazno (sadrži sve 0). U ARP paketu predviđen je prostor za dva para (fizička adresa. 16-bitno polje koje definiše tip mreže u kojoj se ARP primenjuje (odnosno tip fizičke adrese). 8-bitno polje koje definiše dužinu mrežne adrese u bajtovima (0x04 za IP adrese). Target IP. Target IP) na mašinu od koje se traži odgovor. Mašina koja je prepoznala svoju mrežnu adresu u polju Target IP. Polje promenljive sadrži koje definiše logičku adresu ciljne mašine. 2-45 Format ARP paketa. kao protokol višeg nivoa i Ethernet kao tip fizičke mreže. Polje promenljive dužine koje sadrži logičku adresu pošiljaoca. na Sl. Za IPv4 u ovom polju je upisano 0x0800. 16-bitno polje koje definiše tip paketa: ARP upit (0x0001) ili ARP odgovor (0x0002). mrežna adresa). Uočimo da sadržaj polje Tip Ethernet okvira (0x0806) ukazuje da okvir sadrži ARP paket. Na primer. Polje promenljive dužine koje sadrži fizičku adresu pošiljaoca. Na primer. ova adresa nije poznata i zato se obično postavlja na sve nule. Dužine adresa različitih protokola se razlikuju. za Ethernet dužina ovog polja je 6 bajta. već je univerzalan u smislu da se može koristiti za preslikavanje adresa između bilo koja dva para mrežnih i protokola sloja veze. Tipovi protokola navedeni su u poljima Hardware Type i Protocol Type. 2-45. Na primer. dužina ovog polja iznosi 6 bajta.

Polje za ciljnu fizičku adresu se popunjava svim nulama. 2-47 su prikazana četiri različite situacije u kojima se koristi ARP. Pošiljalac je host koji želi da pošalje datagram hostu na nekoj drugoj mreži. Slučaj 3. koji sadrži njenu fizičku adresu. Na Sl. IP adresa rutera postaje logička adresa koja se preslikava na fizičku adresu. Pošiljalac prima ARP odgovor i koristi dobijenu fizičku adresu ciljne mašine kao odredišnu adresu za okvir kojim će poslati IP datagram iz koraka 1. Slučaj 2. Pošiljalac je ruter koji je primio datagram namenjen hostu koji se nalazi na nekoj drugoj mreži. 3.Sl. 2. logička adresa koja se preslikava na fizičku je odredišna IP adresa iz zaglavlja datagrama. Obzirom da je okvir upućen na broadcast adresu. 6. IP adresom pošiljaoca i ciljnom IP adresom. IP traži od ARP da kreira ARP upit popunjen fizičkom adresom pošiljaoca. Sve mašine. Pošiljalac poseduje IP datagram namenjen ciljnoj mašini poznate IP adrese. host pretražuje svoju tabelu rutiranja i za dato odredište pronalazi IP adresu sledećeg skoka (rutera). Pošiljalac je host koji želi da pošalje datagram drugom hostu na istoj mreži. 4. 42 . 5. Softver sloja veze izdvaja ARP paket iz okvira i prosleđuje ga ARP-u. odbacuju paket. Sl. 2-47 Četiri slučaja korišćenja ARP-a. Ciljna mašina prepoznaje svoju IP adresu i prihvata paket. svi hostovi ili ruteri na mreži primaju okvir. U ovom slučaju. osim ciljne. Izvorna adresa okvira je fizička adrese pošiljaoca. Ciljna mašina odgovara porukom tipa ARP odgovor. U ovom slučaju. Način rada Sledi niz aktivnosti u tipičnom ARP procesu: 1. Ruter pretražuje svoju tabelu rutiranja i za dato odredište pronalazi IP adresu sledećeg skoka (rutera). IP adresa sledećeg rutera postaje logička adresa koja se preslikava na fizičku adresu. Poruka ARP upita se prosleđuje sloju veze gde se enkapsulira u okvir. dok se kao odredišna koristi fizička broadcast adresa. Slučaj 1. 2-46 Enkapsulacija ARP paketa.

Međutim. Sa druge strane. ako u bliskoj budućnosti hostu zatreba ista fizička adresa. 2-48).Slučaj 4. 2-48 RARP: (a) RARP upit (broadcast). ako host A šalje IP datagram hostu B. fizička adresa) iz skorašnje primljenih ARP odgovora. komunikacija na IP nivou nije jednosmerna. svaki host koji podržava ARP poseduje keš tabelu (tzv. Emitovanje ARP upita od strane hosta B kojim traži fizičku adresu hosta A može se izbeći ako host B. kako bi se ARP učinio efikasnijim. nekoliko minuta. postoje uređaji koji ne poseduju hard disk i čiji je operativni sistem u potpunosti smešten u permanentnoj memoriji (ROM). ali na nju odgovara samo RARP server. Na taj način. host emituje RARP upit svim sistemima u mreži. Da bi saznao svoju IP adresu. Ovaj paket prima svaki host (ili ruter) na fizičkoj mreži. ovakva jedna mašina može lako da sazna svoju fizičku (hardversku) adresu (npr. Sl. sve mašine na mreži. npr. bez potrebe da ponovo šalje ARP upit. Server šalje RARP odgovor koji sadrži IP adresu hosta koji je uputio upit ( Sl. 2-48(b)). može je pročitati iz svog mrežnog adaptera) i da je onda iskoristi da uz pomoć RARPa sazna i svoju IP adresu. upiše par (Sender EA. RARP server) na lokalnoj mreži koja zna IP adrese svih hostova i rutera na toj mreži odgovara porukom tipa RARP odgovor ( Sl. Moja fizička adresa je A4:6E:A5:57:82:36. stavke u keš tabeli treba da imaju ograničeno trajanje. mogu takođe da unesu ovu stavku u svoje keš tabele. Da se omogućila pomena fizičkih adresa (zamena NIC-a). Šta više. jer IP adrese dodeljuje administrator mreže prilikom priključenja mašine na mrežu. Pošiljalac je ruter koji je primio datagram namenjen hostu u istoj mreži. ROM instalira proizvođač uređaja i njegov sadržaj se ne može naknadno menjati. Sender IP) iz ranije primljenog ARP upita hosta A. Prvo. Tražim svoju IP adresu RARP UPIT RARP server Host ili ruter (a) (b) Sl. u svoj ARP keš. Keš tabela Moguće su različite optimizacije opisane procedure. Neka druga mašina (tzv. Host ili ruter mora da zna svoju sopstvenu IP adresu da bi mogao da kreira IP datagrame. Odredišna IP adresa datagrama postaje logička adresa koju treba preslikati na fizičku adresu. on će je naći u ARP tabeli. RARP RARP je protokol koji se koristi za pronalaženje logičke adrese mašine koja jedino zna svoju fizičku adresu. Mašina kreira RARP upit i emituje ga (broadcast) na lokalnu mrežu. To znači da se u ROM-u ne može čuvati IP adresa. Takođe. koje su jedinstvene i nezavisne od njegovih fizičkih adresa. ali nisu odgovorile. (b) RARP odgovor (unicast). IP adresa mašine se obično čuva u konfiguracionom fajlu na hard-disku. jer se ona koristi kao izvorna adresa u zaglavlju IP datagrama. gotov je izvesno da će u bliskoj budućnosti i host B poslati IP datagram hostu A. u mnogim slučajevima. 43 . nakon čega zastarevaju i brišu se iz tabele. 2-48(a) prikazuje host bez hard diska koji je upravo startovan. ARP keš) koja sadrži parove adresa (IP adresa. one koje su primile ARP upit. Svakom hostu ili ruteru dodeljena je jedna ili više logičkih (IP) adresa.

Postojanje broja verzije u svakom datagramu olakšava prelazak na 44 . zbog grešaka u prenosu nastalih usled električnih smetnji). na korisniku je da po potrebi doda funkcije koje su neophodne za implementaciju svake konkretne aplikacije. ali bez garancija. IP je takođe beskonekcioni protokol za mreže sa komutacijom paketa koje koriste datagramski pristup. linija kojom paket treba da se prenese dalje može privremeno biti u prekidu. Ponovi. Zadatak Internet protokola je da mreže Internet-a ˝drži na okupu˝. već okosnicu Interneta čine nekoliko magistralnih (backbone) mreža povezanih pomoću komunikacionih linija velike propusne moći i brzih rutera. U toku prenosa. sa krajnjim levim bitom polja VERS na početku. zagušen saobraćajem. Datagram se prenosi u ˝big-endian˝ poretku: s leva na desno. IP se mora upariti sa pouzdanim transportnim protokolom (kao što je TCP). 2.4 Internet protokol (IP) Internet protokol (IP) je centralni protokol mrežnog sloja TCP/IP modela. Prvih dvadeset bajtova u zaglavlju su fiksni (uvek postoje). negarantovani) servis za prenos podataka od izvora do odredišta. RARP ne može da obezbedi ove dodatne informacije. Datagram je paket promenljive dužine (do 65535 bajta) i sastoji se iz dva dela: zaglavlje i podaci. Ako je pouzdanost bitna. a razlika u odnosu na Sl. Best-effort znači da IP ne obezbeđuje proveru grašaka i evidenciju o isporuci podataka. Kod TCP/IP protokola uobičajeno je da se formati zaglavlja prikazuju podeljeni na 4-bajtne sekcije. IP pravi utisak kao da su svi hostovi povezani na tu veliku mrežu. Zahvaljujući IP-u. Zaglavlje je podeljeno na polja koja sadrže informacije bitne za rutiranje i isporuku datagrama. IP obezbeđuje bazični servis prenosa podataka na daljinu. Sledi kratak opis polja zaglavlja. Na backbone mreže povezane su regionalne. VERS (Verzija). 2. a ne na svoje individualne fizičke mreže. Četvorobitno polje koje definiše verziju IP protokola.1 Datagram Paketi koji se prenose na IP nivou nazivaju se datagramima. može odbaciti paket. 2-49. Ne postoji planska. ruter. 1-1). susednim ili udaljenim mrežama. kompanija i ISP-ova (Sl. Aktuelna verzija je 4 (IPv4). fiksna struktura. Mašini bez hard diska su osim IP adrese obično potrebne i dodatne informacije. 2-46 je u sadržaju polja Type Ethernet okvira koje za RARP ima vrednost 0x8035. opcioni deo (IP OPTIONS) je promenljive dužine od 0 do 40 bajtova. Alternativna rešenja RARP se danas smatra zastarelim protokolom. IP pretpostavlja da su niži slojevi nepouzdani i ˝daće sve od sebe˝ da podatke isporuči na odredište. Kao što znamo. Zato su razvijeni novi protokoli kao što su BOOTP i DHCP.Format Format RARP paketa je identičan formatu ARP paketa (vidi Sl. a najviše 60 bajta. a na regionalne LAN mreže mnogih univerziteta. 2-49 Format IP datagrama. Sl. Prenošeni različitim putanjama između istog para izvor-odredište datagrami mogu stići na odredište izvan redosleda. to znači da se svaki datagram nezavisno prenosi i da svaki datagram može biti prenet do svog odredišta različitim putanjama. podaci mogu biti uništen na fizičkom nivou (npr. IP adresa podrazumevanog rutera i drugi podaci neophodni za normalno funkcionisanje mašine u konkretnoj mreži. Format zaglavlja prikazan je na Sl. koji omogućavaju potpuno konfigurisanje mašina bez hard diska. kao što je maska podmreže. Veličina zaglavlja je najmanje 20.4. uniformna. IP se oslanja na protokole višeg nivoa da reše sve ove probleme. a za RARP odgovor 0x0004. 2-45). IP obezbeđuje best-effort (tj. Ograničenu funkcionalnost IP-a se ne treba smatrati njegovom slabošću. kojoj u ovom polju odgovara binarna vrednost 0100. Za RARP upit se koristi 0x0003. Savremeni Internet predstavlja kolekciju međusobno povezanih podmreža. Kao i ARP paket i RARP paket se direktno enkapsulira u Ethernet okvir. mnoštvo fizički raznorodnih mreža objedinjeno je u jednu ogromnu mrežu. bez obzira da li se mašine nalaze u istoj. sa jedinom razlikom što su vrednosti u polju OPERATION različite.

SERVICE TYPE (Tip servisa). kao i prethodna dva.2 Fragmentacija Na putu do svog krajnjeg odredišta. Ove adrese ostaju neizmenjene u svim fragmentima na koje se datagram eventualno deli u toku prenosa. MTU . za različite protokole višeg nivoa navedene su u tabeli T. Polja SOURCE IP ADDRESS i DESTINATION IP ADDRESS (Adresa izvora i Adresa odredišta) sadrže 32-bitne mrežne (IP) adrese izvornog hosta (host koji je poslao datagram) i odredišnog hosta (krajnje odredište datagrama). da bi se ostvario prenos. datagram se uništava. Vrednosti ovog polja. u samom zaglavlju predviđeno je polje HLEN. T. koji traje već godinama. greške u tabelama rutera. zbog npr. U takvim slučajevim. FRAGMENT OFFSET (Pomeraj fragmenta) 13-bitno polje koje se koristi. Pojedinačni bitovi ovog polja definišu prioritet datagrama. Ako Vreme života dostigne 0 pre nego što datagram stigne do odredišta. 45 .4. nivo pouzdanosti i kašnjenja koje pošiljaoca datagrama očekuje od rutera. Međutim. Ovo polje definiše kojem se isporučuje sadržaj IP datagrama. Format i veličina okvira kojeg ruter šalje zavisi od protokola sloja veze koji se koristi na fizičkoj mreži preko koje okvir dalje nastavlja svoj put. koje definiše dužinu zaglavlja izraženu brojem 32-bitnih reči (4-bajta). lutajući od rutera do rutera. ICMP i IGMP. i trajaće još dugo vremena. 2-4 Protokoli Vrednost 1 2 6 17 89 Protokol ICMP IGMP TCP UDP OSPF HEADER CHECKSUM (Kontrolna suma zaglavlja) je 16-bitno polje koje se koristi za verifikaciju zaglavlja (ne celog paketa). a maksimalna 15 (polje za opcije postoji i maksimalne je dužine). Način izračunavanja kontrolne sume biće objašnjen kasnije u ovoj sekciji. Ograničenje koje uvek postoji jeste maksimalna veličina polja za podatke u okviru (tzv. Broj bajtova podataka koji se prenose datagramom može se odrediti tako što će se od TOTAL LENGTH oduzeti veličina zaglavlja (4 x HLEN). TCP. PROTOCOL (8 bita) ukazuje na protokol višeg nivoa koji koristi usluge IP sloja. Na primer. koja je definisana ograničenjima nametnutim hardverom i softverom koji se koriste u mreži. Veličina ovog polja je 16 bita. neophodno je izvršiti fragmentaciju datagrama. Kada kasnije u ovoj sekciji budemo razmatrali fragmentaciju. Format i veličina primljenog okvira zavisi od protokola sloja veze koji se koristi na fizičkoj mreži preko koje je okvir stigao u ruter. datagram može proći kroz više različitih mreža. Drugim rečima. Na ovaj način sprečava se da datagram ostane zarobljen u mreži. Svaki ruter izdvaja IP datagram iz primljenog okvira. 2-4. prilikom fragmentacije datagrama. IP datagram može da enkapsulira podatke iz više protokola višeg nivoa. a druge samo novu ili obe verzije protokola). FLAGS (Polje za markere). u praksi. obrađuje ga i ponovo enkapsulira u okvir kojeg šalje sledećem ruteru ili odredišnom hostu. što znači da veličina datagrama može biti maksimalno 65535 bajta (216-1).najveća jedinica prenosa). videćemo da pojedine fizičke mreže ne mogu enkapsulirati datagram od 65535 u njihov okvir. TOTAL LENGTH (Ukupna dužina) definiše veličinu IP datagrama (zaglavlje plus podaci) izraženu u bajtovima. Vrednost ovog polja se umanjuje za 1 u svakom ruteru kroz koji datagram prolazi.dužina zaglavlja). Pošto veličina zaglavlja nije konstantna. 2-5). ruteri najčešće ignorišu ovo polje. kao što su UDP. TIME TO LIVE (Vreme života) je brojač koji se koristi da bi se ograničilo vreme života datagrama. Trenutno je aktuelan prelaz sa IPv4 na IPv6. MTU Svaki protokol sloja veze definiše format svog okvira.Maximum Transfer Unit .novu verziju IP protokola (omogućava da neke mašine podržavaju samo staru. IDENTIFICATION (Identifikacija) 16-bitno polje koje se koristi prilikom fragmentacije datagrama. kada se datagram enkapsulira u okvir. Polje veličine jednog bajta koje definiše kako će datagram biti tretiran od strane rutera. ukupna veličina datagrama mora biti manja od ove maksimalne veličine. a šalje ga u WAN formatu. on prima okvir u LAN formatu. Minimalna vrednost je 5 (opcije ne postoje). 2. Vrednost MTU parametra se razlikuje od jedne do druge fizičke mreže (T. Trobitno polje koje se takođe koristi prilikom fragmentacije datagrama. ako ruter povezuje LAN na WAN. HLEN (Header Length .

Naravno. Konačno. FRAGMENTATION OFFSET i TOTL LENGTH. ruter će uništiti datagram. ako naiđe na mrežu sa još manjim MTU-om. Međutim. Drugim rečima. postoji jedan ili više fragmenata koji slede. a zatim uvećava brojač za 1. Protokol Hyperchannel TokenRing (16 Mbps) TokenRing (4 Mbps) FDDI Ethernet X. Ova podela se naziva fragmentacijom. Host ili ruter koji obavlja fragmentaciju. vrednost polja za kontrolnu sumu se mora ponovo izračunati. DF.500 576 296 Da bi se IP protokol učinio nezavisnim od fizičke mreže. to znači da je ovaj datagram poslednji fragment nekog većeg datagrama ili se radi o datagramu koji nije fragmentiran. Datagram može biti fragmentiran od strane bilo kog rutera na putanji. Prvi bit je neiskorišćen (nema definisanu namenu).535 17. koje nisu u mogućnosti da ga prenesu u okviru jednog okvira). IP protokol koristi brojač za označavanje datagrama. prenos je efikasniji ako se koristi mreža sa MTU ovo veličine. datagram se mora podeliti na manje celine kako bi mogao biti prenet kroz mrežu. FLAGS (Polje za markere). Da bi se obezbedila jedinstvenost. FRAGMENT OFFSET (Pomeraj fragmenta) (13 bita) definiše poziciju ovog fragmenta u okviru celokupnog datagrama. Postavljajući DF na 1.T. mora promeniti vrednosti tri polja: FLAGS. Bit DF postavljen na 0 označava da je datagram dozvoljeno fragmentirati. datagram može biti fragmentiran nekoliko puta dok ne stigne na odredište.535 bajta. Drugim rečima. odredište nije sposobno da obavi rekonstrukciju datagrama). a njegov pomak je 2800/8 = 350. sa manjim MTU. bez obzira da li se datagram fragmentira ili ne. Na taj način. Drugi fragment prenosi bajtove 1400 do 2799. vrednost polja za identifikaciju se kopira u sve fragmente. Prvi fragment sadrži bajtove 0 do 1399. Ako ruter ne može da prosledi datagram ni kroz jednu od raspoloživih fizičkih mreža. MF (More Fragments) postavljen na vrednost 1 ukazuje da datagram nije poslednji fragment nekog većeg datagrama. Bajtovi u polaznom datagramu su numerisani sa 0 do 3999. Polje za opcije može ali i ne mora biti identično onome iz prvobitnog datagrama. 46 . Kombinacija izvorne IP adrese i vrednosti polja za identifikaciju na jedinstveni način definiše datagram kada on napusti izvorni host. IP protokol izvornog hosta kopira tekuću vrednost ovog brojača u polje za identifikaciju. Host zna da sve fragmente sa istom vrednošću za identifikaciju i istom izvornom IP adresom treba da objedini u jedan datagram. treći fragment sadrži bajtove 2800 do 3999. rekonstrukciju prvobitnog datagrama od fragmentiranih delova obavlja isključivo odredišni host. pošiljalac je siguran da će datagram stići do odredišta ˝u jednom komadu˝ (čak iako to znači da će datagram do odredišta stići nekim zaobilaznim putem.914 4. jer se ne može garantovati da će svi fragmenti istog datagrama proći istom putanjom do odredišta.464 4. vrednost njegovog pomaka je 1400/8 = 175. odredišnom hostu je omogućeno da odredi kom datagramu upravo pristigli fragment pripada. Međutim. Pomak kod ovog datagrama je 0/8 = 0. projektanti IP protokola su odlučili da maksimalna veličina IP datagrama bude jednaka 65. svi fragmenti nastali podelom jednog datagrama imaće istu vrednost u polju za identifikaciju kao i polazni datagram. svaki fragment (koji je takođe datagram) ima svoje zaglavlje u kome su većina polja iz prvobitnog datagrama ponovljena. Fragmentirani datagram i sam može biti fragmentiran.25 PPP MTU 65. Nakon izvršene fragmentacije. Uvek kada šalje datagram. Ako bit MF ima vrednost 0. Ovo ograničenje je logično. a izvorno hostu će poslati ICMP poruku sa obaveštenjem o grešci (videti sledeću sekciju).352 1. Treći bit polja FLAGS. Drugi bit. Na Sl. za ostale fizičke mreže. 2-50 je prikazan datagram sa podacima veličine 4000 bajta podeljen na tri fragmenta. Predstavlja pomak (offset) podataka u prvobitnom datagramu izražen u jedinicama od po 8 bajta. Ako se datagram fragmentira. izbegavajući male mreže. Kada se datagram fragmentira. Sledeća tri polja zaglavlja IP datagrama se koriste u fragmentaciji: IDENTIFICATION (Identifikacija) 16-bitno polje koje identifikuje datagrame koji potiču iz istog izvora. postavljen ne vrednost 1 znači Don´t Framgment (ne fragmentiraj) i predstavlja instrukciju ruteru da datagram nije dozvoljeno fragmentirani (zato što npr. 2-5 MTU kod nekoliko standardnih mreža. ali su neka i promenjena. Na taj način. Sadrži tri bita. obavezni delovi zaglavlja moraju biti kopirati u zaglavlja svih kreiranih fragmenata.

Sl. 2-50 Primer fragmentacije.

Na Sl. 2-51 je dat detaljniji prikaz fragmentiranih datagrama sa prethodne slike. Uočimo da polje za identifikaciju kod svih fragmenata sadrži istu vrednost. Uočimo, takođe, da bit MF ima vrednost 1 kod svih fragmenta, osim kod poslednjeg. Vrednosti polja FRAGMENT OFFSET su takođe prikazane.

Sl. 2-51 Detaljniji primer fragmentacije. Sl. 2-51 takođe prikazuje šta se dešava ako se fragment fragmentira. U ovom slučaju, vrednost pomaka se računa u odnosu na polazni datagram, a ne u odnosu na fragment koji se deli. Kao što možemo videti na Sl. 2-51, drugi fragment je fragmentiran na dva nova fragmenta od 800 i 600 bajta. Pomaci novonastalih fragmenata pokazuju relativnu poziciju sadržanih podataka u odnosu na prvobitni datagram.

2.4.3

Opcije

Zaglavlje IP datagrama se sastoji iz dva dela: fiksnog i promenljivog. Fiksni deo, dužine 20 bajta, smo već obradili. Promenljivi deo, maksimalne dužine 40 bajta, rezervisan je za tzv. opcije. Opcije, kao što i samo ime sugeriše, nisu obavezne. Opcije se koriste za testiranje i debagiranje mreže. Pri normalnom prenosu podataka, zaglavlje IP datagrama ne sadrži ovo polje. Format Deo za opcije, ako postoji, može sadržati jednu ili više opcija. Sve opcije imaju identičan format, koji je prikazan na Sl. 2-52. Opcija se sastoji iz tri polja: 1-bajtno polje za kôd (Code), 1-bajtno polje za dužinu (Length) i polje za podatke (Data) promenljive dužine.

47

Code 8 bita

Length 8 bita

Data Promenljive dužine

Copy 1 bita

Class 2 bita

Number 5 bita

Sl. 2-52 Format opcije.

Code. Polje za kôd opcije sadrži 8 bita i podeljeno je tri podpolja: Copy, Class i Number. Copy. Ovo jednobitno podpolje kontroliše prisustvo opcije u fragmentima. Ako je ovaj bit postavljen na 0, tada opcija sadržana u polaznom datagramu mora biti kopirana samo u njegov prvi fragment. Za vrednost 1, opcija se kopira u svim fragmentima. Class. Ovo 2-bitno podpolje definiše opštu namenu opcije. Vrednost 00 u ovom polju ukazuje na opciju koja se koristi za kontrolu datagrama. Vrednost 10 ukazuje na opciju koja se koristi za debagiranje i menadžment mreže. Značenje dve preostale vrednosti , 01 i 11, još uvek nije definisano. Number. Ovo 5-bitno podpolje definiše tip opcije. Mada se sa 5 bita može definisati do 32 različita tipa, u upotrebi su samo 6. Lenght. Ovo polje definiše ukupnu dužinu opcije uključujući i polja kôd i dužinu. (Nije prisutno kod svih opcija) Data. Ovo polje sadrži podatke specifične za konkretnu opciju. (Nije prisutno kod svih opcija). Tipovi opcija Kao što je napomenutu, trenutno su u upotrebi šest opcija. Dve opcije su 1-bajtne (sastoje se samo od polja za kôd), dok su preostale četiri više-bajtne (sadrže sva tri polja). Sledi kratak opis opcija: No Operation. Ovo je 1-bajtna opcija koja se koristi za popunu nepopunjenih bajtova između opcija, kada datagram sadrži više od dve opcije. Na primer, može se koristiti za poravnanje sledeće opcije, tako da ona počne od naredne 16-bitne ili 32-bitne reči. End of Options (Kraj opcija). Ovo je takođe 1-bajtna opcija koja se koristi za dopunu polja za opcije, kako bi ono zauzimalo celi broj 16-bitnih ili 32-bitnih reči. U polju za opcije se može nalaziti samo jedna end of operation opcija, a može se koristiti sam kao poslednja opcija. U slučajevima kada je za poravnanje potrebno više od jednog bajta, na kraj polja za opcije može se umetnuti više no operation i jedna end of options opcija. Record route (snimanje putanje). Ova opcija se koristi za snimanje putanje kojom se datagram prenosi kroz Internet. U polju za podatke ove opcije može se smestiti do devet IP adresa rutera kroz koje je datagram prošao (najviše devet zbog ograničenja dužine polja za opcije na 40 bajta). Izvorni host rezerviše mesta (stavke) u polju za opcije koja će popunjavati ruteri koje datagram poseti. Format ove opcije prikazan je na Sl. 2-53. Polje pointer ukazuje na prvu slobodnu stavku, tj. sadrži redni broj prvog slobodnog bajta (brojano od početka polja za opcije). Kada datagram napusti izvorni host, sve stavke su prazne, a pointer ima vrednost 4. Svaki ruter koji obrađuje datagram, poredi vrednost pointera sa vrednošću polja za dužinu. Ako je vrednost pointera veća od vrednosti polja za dužinu, polje za opcije je popunjeno, a nova stavka se ne upisuje. U suprotnom, ako u polju za opcije još uvek ima slobodnog prostora, ruter upisuje IP adresu pridruženu mrežnom adapteru kroz koji će datagram biti poslat dalje, počev od pozicije na koju ukazuje pointer i uvećava vrednost pointera za 4. Na ovaj način, analizom zaglavlja na strani odredišnog hosta, može se rekonstruisati putanja kojom je datagram prenesen.
Code 00000111 Length (Ukupna dužina) Pointer

Prva IP adresa (prazno na početku) Druga IP adresa (prazno na početku)

. . .
Poslednja IP adresa (prazno na početku)

Sl. 2-53 Opcija za snimanje putanje.

Strict Source Route (Striktno rutiranje na izvoru). Ovu opciju može da koristi izvorni host kako bi unapred odredio putanju datagrama kroz Internet, navodeći IP adrese rutera koje datagram mora da poseti. Ako ova opcija postoji u datagramu, svi navedeni ruteri moraju biti posećeni. Ako datagram

48

dospe u ruter koji nije na listi, datagram se uništava, a izvornom hostu se šalje ICMP poruka o grešci. Striktno rutiranje koristi isključivo administratori mreže za testiranje i debagiranje mreže. Za normalni prenos podataka, izbor putanje se prepušta ruterima. Format ove opcije sličan je formatu opcije record route, ali sada stavke popunjava izvorni host IP adresama rutera. Loose Source Route (Približno rutiranje na izvoru) Ova opcija je slična opciji striktnog rutiranja na izvoru ali sa nešto blažim zahtevima. Svaki ruter u listi mora biti posećen, ali datagram može posetiti i neke druge rutere. Format i način korišćenja je sličan kao kod prethodne opcije. Timestamp (Vremenski zapis). Ova opcija se koristi za beleženje vremena kada su ruteri procesirali datagram. Vreme se izražava u milisekundama počev od ponoći. Poznavanje ovog vremena pomaže administratorima mreže da prate ponašanje rutera na Internetu. Na primer, uz pomoć ovih informacija moguće je proceniti vreme koje je bilo potrebno da datagram pređe iz jednog u drugi ruter. Format opcija vremenskog zapisa prikazan je na Sl. 2-54. Polja za kôd i dužinu imaju isto značenje kao i ranije. U polju Overflow pamti se broj rutera koji nisu uspeli da upišu svoj vremenski zapis zato što više nije bilo slobodnog prostora u polju za opcije. U polju Flags definisane su odgovornosti rutera (definisano je šta se očekuje od rutera). Ako je vrednost ovog polja 0, svaki ruter upisuje samo vremenski zapis u odgovarajuću stavku. Za vrednost 1, svaki ruter upisuje pored vremenskog zapisa i svoju odlaznu IP adresu. Za vrednost 3, IP adrese su unapred postavljene od strane izvornog hosta; svaki ruter proverava odgovarajuću IP adresu sa svojom dolaznom IP adresom i, ako utvrdi da su jednake, zamenjuje je svojom odlaznom IP adresom i upisuje vremenski zapis.

Sl. 2-54 Opcija vremenskog zapisa.

2.4.4

Kontrolna suma

Kod većine TCP/IP protokola za kontrolu grešaka se koristi metod koji se naziva kontrolnom sumom (checksum). Kontrolna suma predstavlja redundantnu informaciju koja se dodaje paketu radi zaštite od grešaka koje mogu nastati u toku prenosa paketa. Kontrolna suma se izračunava na strani pošiljaoca paketa, a dobijena vrednost se šalje zajedno sa paketom. Prijemnik ponavlja isto izračunavanje nad celim paketom, uključujući i polje za kontrolnu sumu. Ako je rezultat zadovoljavajući, paket se prihvata; ako nije, pakete se odbacuje. Izračunavanje kontrolne sume na strani pošiljaoca Na strani pošiljaoca, paket se deli na n-bitne sekcije (n je obično 16 bita). Sve sekcije se sabiraju korišćenjem pravila sabiranja binarnih brojeva u jediničnom komplementu. Rezultat je n-to bitna suma. Nakon toga, suma se komplementira i upisuje u polje za kontrolnu sumu. Izračunavanje kontrolne suma na strani primaoca Primalac deli primljeni paket na n-bitne sekcije. Sve sekcije se sabiraju, a dobijeni rezultat komplementira. Ako je konačni rezultat 0, paket se prihvata kao ispravan; inače, ako se dobije vrednost različita od 0, paket se odbacuje, kao neispravan.
Sl. 2-55 na grafički način prikazuje procedure izračunavanja kontrolne sume na strani pošiljaoca i strani prijemnika.

49

Zahvaljujući tome. Prvo. Kontrolna suma kod IP datagrama pokriva samo zaglavlje. 2-56 je prikazan primer izračunavanja kontrolne sume za IP zaglavlje koje ne sadrži opcije.12.9 01000101 00000000 00000000 00000000 00000100 00000000 00001010 00001110 00001100 00000111 01110100 10001011 0 28 0 4. Kao što znamo.6.9 Suma Kontrolna suma 00000000 00011100 00000001 00000000 00010001 00000000 00001100 00000101 00000110 00001001 01001110 10110001 Sl.6 7. koje se potom sabiraju.Sl. a ne i podatke.5 i 0 28 1 0 i 0 4 i 17 0 10. 2-55 Koncept kontrolne sume. Zaglavlje je podeljeno na 16-bitne sekcije. Pr. ali ne i podaci. kontrolna suma uključuje samo one delove datagrama koji se menjaju u prenosu. 2-24: Izračunavanje kontrolne sume Na Sl.7. što predstavlja vrednost kontrolne sume koja se šalje prijemniku. Sa druge strane. odnosno -0. Rezultujuća suma se komplementira i umeće u polje za kontrolnu sumu. 50 . 2-56 Primer izračunavanja kontrolne sume. prolaskom kroz svaki ruter. Nakon komplementiranja dobija se -T. Postoje dva razloga za to.5 12. sve sekcije su sabrane.5 12.12 14. zaglavlje IP datagrama se modifikuje. Drugo. Kontrolna suma u IP datagramu Kontrolna suma za IP datagram se izračunava shodno prethodno opisanoj proceduri. prijemnik sabira sve sekcije i ako nema grešaka u prenosu dobija sumu jednaku T + (-T) (T za sva polja osim kontrolne sume i -T za polje kontrolne sume). za brojeve u formatu jediničnog komplementa operacija komplementiranja identična je promeni znaka (komplement od T je -T). Zatim se celokupno zaglavlje deli na 16bitne sekcije. svi protokoli višeg nivoa koje se prenose IP datagramom poseduju svoje polje za kontrolnu sumu koja pokriva celokupan paket.14. zbir je komplementiran i konačni rezultat umetnut u polje za kontrolnu sumu. Dakle. što nakon komplementiranja postaje 0 (˝sve nule˝). 4 4 5 1 0 0 17 10. nema potreba da se kontrolnom sumom IP datagrama proveravaju i enkapsulirani podaci. Prvo. Rezultat će biti ˝sve 1-ce˝. polje u zaglavlju datagrama predviđeno za kontrolnu sumu se postavlja na ˝sve nule˝. Pretpostavimo da smo sabiranjem sekcija na strani pošiljaoca dobili vrednost T.

iako u isto vreme više hostova iz privatne mreže mogu komunicirati sa različitim hostovima na Interetu.1 Odredište: 200. Na ovaj način. 2-58 Prevođenje adresa. Korišćenje jedne IP adrese U najjednostavnijem obliku. Gledano sa strane Interneta.3. već je vidljiv samo NAT ruter sa adresom 200. Ruter poseduje jednu privatnu adresu. Ovaj problem se rešava tako što NAT ruter kreira tabelu prevođenja koja uspostavlja vezu između privatnih i eksternih adresa. a njihova glavna namena je deoba zajedničkih resursa unutar jedne organizacije. hostovi sa Interneta imaju utisak da komuniciraju samo sa jednim hostom. pojedinačni hostovi u privatnoj mreži nisu vidljivi.3. ka privatnoj mreži. Prevođenje adresa za odlazne pakete je trivijalno. 2-57. Na primer. Kao što se može videti na Sl.5. ona će ostati izolovana jer će ruter onemogućiti izalazak datagrama koji nose privatne IP adrese izvan mreže. Čak iako je privatna mreža ruterom povezana sa globalnim Internetom. tabela prevođenja ima samo dve kolone: privatnu adresu i eksternu adresu (odredišne adrese paketa). To praktično znači da korisnici iz prvatne mreže u komunikaciji prema Internetu mogu imati isključivo ulogu klijenta. postavlja se pitanje kako NAT ruter zna kom privatnom hostu je namenjen paket koji dolazi sa Interneta da bi shodno tome u polju za odredišnu adresu dolaznog paketa upisao baš njegovu privatnu adresu. Kada kasnije od odredišta stigne odziv. privatne IP adrese. hostovima u privatnim mrežama dodeljuju se IP adrese iz nekoliko za tu namentu rezervisanih opsega (tzv. hostovima iz privatne mreže dodeljene su privatne adrese. korisnici iz privatne mreže mogu koristiti Web preko Web pretraživača (program kao što je Internet Explorer) jer je pretraživač klijentski program koji obraća Web serveru tražeći od njega Web stranicu. Ali. Opisana ideja ilustrovana je na Sl.8 Sl. i jednu globalnu adresu.3.5 NAT Privatne mreže su mreže koje koriste TCP/IP ali su izolovane od Interneta. 2-59. Kao što je ranije napomenuto. čija je IP adresa NAT adresa rutera. Kada ruter zamenjuje izvornu adresu odlaznog paketa svojom adresom. NAT ruter modifikuje svaki paket koji napušta privatnu mrežu.18. štampači i dr. on takođe upisuju u tabelu prevođenja na koju odredišnu (eksternu) adresu je paket upućen. na osnovu izvorne adrese paketa (eksterna adresa) u tabeli prevođenja pronalazi privatnu adresu hosta koji se prethodno obratio tom eksternom odredištu. kao što su baze podataka.18.2. takođe prolazi kroz NAT ruter. vidi tabelu T. Na 51 . 2-57 NAT.8).5.1 Izvor: 172. u privatnoj mreži ne mogu postojati serverske aplikacije vidljive klijentima izvan privatne mreže.5.24.24. Preduslov je da sajt mora imati jednu konekciju ka globalnom Interentu posredstvom rutera na kome se izvršava NAT softver (Sl. 2-58 je ilustrovan osnovni koncept prevođenja adresa. 2-3).24.8 Internet Odredište: 172. ka ostatku Internetu.1 Izvor: 200. Svaki paket koji iz Interneta dolazi u privatnu mrežu. Sl. koji sada odredišnu adresu u paketu (a to je globalna adresa NAT rutera) zamenjuje odgovarajućom odredišnom privatnom adresom.18. Tehnika prevođenja mrežnih adresa (Network Address Translation .8. 172. Privatna mreža može sadržati od nekoliko do nekoliko stotina računara.24.NAT) omogućava hostovima iz privatne mreže da komuniciraju sa sajtovima na globalnom Internetu. Prevođenje adresa Na Sl. Uočimo da NAT tehnika pretpostavlja da komunikaciju prema Internetu uvek inicira host iz privatne mreže. Međutim. tako što izvornu adresu u paketu zamenjuje svojom NAT adresom (200.5. ruter. 2-57).

8.2. Eksterna adresa 25. Korišćenje IP adresa i adresa portova Radi uspostavljanja relacije više-ka-više između hostova iz privatne mreže.5. 2-60.. kombinacija izvorne adrese (25..10 Sl.8 Privatna adresa 172. komuniciraju dva ili više internih hostova. odnosno globalnu odredišnu adresu u dolaznim paketima u odgovarajuću privatnu adresu.3. . .. Odredište: 25..3.. pretpostavimo da dva interna hosta.2 .24. Privatni port 1400 1401 .24. u isto vreme.8. Sa ovim proširenjem.3. žele da pristupe istom Web serveru na eksternom hostu sa adresom 25. privatna mreža ne može imati Web server pokrenut na nekom inernom Hostu koji će biti vidljiv za eksterne klijente. Na primer.8.000 korisnika.primer.8. Na primer. sa privatnim adresama 172.2. Za komunikaciju sa Web serverom se koristi aplikacioni protokol HTTP koji se oslanja na transportni protokol TCP i dostupan je preko adrese porta 80.1 172.5. Takođe.. 2-59 Prevođenje.10 .2.5. Na primer.5.3. Transportni protokol TCP TCP .3.1 i 172. Ako tabela prevo đenja umesto dve sadrži pet kolona sa dodatnim kolonama za izvorne i odredišne adrese portova i oznaku protokola transportnog protokola koji se koristi u komunikaciji. NAT i ISP ISP koji pruža usluge Internet pristupa dail-up korisnicima može koristiti NAT radi racionalnijeg korišćenja svojih IP adresa.10 Odredište: 200. Na primer.) T.000 izvornih adresa u odlaznim paketima u jednu od 1000 globalnih adresa..18.1 Eksterna adresa 25. (Za više informacija o adresama portova i TCP protokolu pogledati poglavlje 3. izvesna ograničenja i dalje postoje.24. može koristiti više globalnih adresa.24.18.10 Izvor: 172. 2-6). Korišćenje više IP adresa Prevođenje adresa koje se oslanja na koršćenju samo jedne globalne adrese (kao na Sl. neophodno je u tabelu prevođenja uvrstiti dodatne informacije.8.1 Izvor: 25.8.18.10 Izvor: 200..24. 52 .8.2 . ISP prevodi svaku od 100.8.2.5.2. 2-59) onemogućava da sa istim eksternim hostom. umesto da koristi samo jednu globalnu adresu (200.1 Odredište: 25.8. prema istom eksternom hostu iz privatne mreže nije moguće uspostaviti više od četiri veze. sa druge strane. 2-6 Tabela prevođenja sa pet kolona.3.8. FTP i TELNET) pokrenuta na istom eksternom hostu.18.3.18. 200. 200.18.24. Eksterni port 80 80 .3. .5.11).2.2) i odredišne adrese porta (1400) jednoznačno definiše host u privatnoj mreži kome odziv treba biti isporučen.24.8 Izvor: 25. . Privatna adresa 172.5.8) NAT ruter može koristiti četiri (200.2 25.2.. pretpostavimo da neki ISP poseduje 1000 IP adresa (globalnih) i opslužuje 100.3. Svakom korisniku je dodeljena jedna privatna adresa. Da bi se ovo ograničenje otklonilo NAT ruter.9. nejednoznačnost u prevođenju adresa biće eliminisana (vidi T.10 i 200.3. sa jedne i hostova na Internetu.18. Međutim. Odredište: 172. Opisani koncept je ilustrovan na Sl..3. . host iz privatne mreže ne može u isto vreme da komunicra sa dva serverska programa (npr. Uočimo da kada se NAT ruteru vrati odziv od Web serera. četiri privatna hosta mogu u isto vreme komunicirati sa istim eksternim hostom.

Sl. 2-60 ISP i NAT.

2.6

ICMP

IP je mrežni protokol koji obezbeđuje negarantovanu (best-effort) isporuku datagrama od izvornog do odredišnog hosta, osmišljen na način da obezbedi efikasno korišćenje mrežnih resursa. Međutim, IP protokolu nedostaju mehanizmi za kontrolu grešaka i pomoć u menadžmentu mreže. IP ne poseduje mehanizme za obaveštavanje o nastalim greškama ili korekciju grešaka. Na primer, šta će se desiti ako ruter mora da uništi datagram zato što nije u stanju da nađe putanju do njegovog krajnjeg odredišta, ili zato što je vreme života datagrama isteklo. Ili, šta će se desiti ako odredišni host mora da uništi primljene fragmente nekog datagrama ako u definisanom vremenu nije primio sve fragmente tog datagrama. Ovo su sam oneki od problema koji mogu nastati u komunikaciji na IP nivou, a kojima se IP ne bavi niti poseduje odgovarajuće ugrađene mehanizme kojima bi barem obavestio izvorni host o njihovom nastanku. Takođe, IP ne poseduje podršku za postavljaje upita kojima bi se olakšalo dijagnosticiranje kvarova i problema u radu mreže. Na primer, povremeno se javlja potreba za ispitivanjem da li je neki ruter ili host operativan, ili potreba da se od hosta ili rutera pribave neke specifične informacije. ICMP (Internet Control Message Protocol) je zamišljen kao kompenzacija za pomenute nedostatke IP-a. U suštini, ICMP obezbeđuje povratne informacije o problemima nastalim u mreži. U većini slučajeva ICMP poruku šalje ruter ili odredišni host nazad izvornom hostu kao reakciju na problem nastao prilikom procesiranja datagrama. ICMP spada u grupu mrežnih protokola (kao i IP). Međutim, njegove poruke se ne prosleđuju direktno sloju veze kao što bi se očekivalo. Umesto toga, ICMP poruke se najpre enkapsuliraju u IP datagrame pre nego što se predaju nižim slojevima (Sl. 2-61). Obzirom da se ICMP poruke prenose u IP datagramima, nihova isporuka nije garantovana i njihova upotreba se ne može smatrati pouzdanom.

Sl. 2-61 Enkapsulacija ICMP poruka.

Tipovi ICMP poruka ICMP poruke se mogu klasifikovati u dve grupe: izveštaji o greškama i upit. Poruke prve kategorije koriste ruteri ili hostovi (odredišni) a za slanje obaveštenja o neočekivanim događajima u toku procesiranja datagrama. Sa druge strane, poruke upita uvek idu u paru i pomažu hostu ili administratoru mreže da od rutera ili drugog hosta pribavi neke specifične informacije. Spisak poruka obe kategorije dat je u tabeli T. 2-7.

53

T. 2-7 ICMP poruke Kategorija Tip 3 4 Izveštaji o greškama 11 12 5 8 ili 0 Upit 13 ili 14 17 ili 18 Poruka Nedostupno odredište (DESTINATION UNREACHABLE) Prigušenje izvora (SOURCE QUENCH) Isteklo vreme (TIME EXCEEDED) Problem sa parametrima (PARAMETER PROBLEM) Preusmeravanje (REDIRECTION) Eho ili odziv na eho (ECHO / ECHO REPLY) Vremenski zapis, zahtev ili odgovor (TIMESTAMP REQUEST / TIMESTAMP REPLY) Adresna maska, zahtev ili odgovor (ADDRESS MASK REQUEST / REPLY)

Format ICMP poruke ICMP poruka se sastoji iz 8-bajtnog zaglavlja i polja za podatke promenljive dužine. Mada, format zaglavlja zavisi od tipa poruke, 4 prva bajta su ista za sve tipove (Sl. 2-62). Prvo polje zaglavlja (Type) definiše tip poruke. Drugo polje (Code) se koristi za parametre poruke koji se mogu predstaviti jednim ili sa nekoliko bita. Poslednje zajedničko polje (Checksum) se koristi za kontrolnu sumu poruke. Ostatak zaglavlja je specifičan za svaki tip poruke. Kod izveštaja o greškama, sekcija za podatke sadrži informacije na osnovu kojih je moguće identifikovati datagram koji je doveo do greške. Kod upita, sekcija za podatke sadrži dodatne informacije koje zavise od tipa upita.

Sl. 2-62 Uopšteni format ICMP poruke.

Izveštaji o greškama Jedna od glavnih odgovornosti ICMP-a je da izveštava o greškama. Iako napretkom tehnologije, prenosni medijumi postaju sve pouzdaniji, greške u prenosu i dalje postoje i moraju se obrađivati na odgovarajući način. Kao što je više puta do sada naglašeno, IP je nepouzdan protokol. Drugim rečima, IP nije odgovoran za proveru i kotrolu grešaka. ICMP je delom projektovan da nadomesti ovu nepotpunost IP-a. Međutim, ni ICMP ne ispravlja greške, već samo izveštava o njima. ICMP uvek šalje izveštaje o greškama izvoru (prvobitnom pošiljaocu) datagrama. (To je iz razloga što su u datagramu, kao jedine informacije o njegovoj putanji, dostupne samo izvorna i odredišna IP adresa.) Dakle, ICMP koristi izvornu IP adresu za slanje izveštaja o grešci izvoru datagrama. ICMP obrađuje 5 tipova grešaka: nedostupno odredište (destination unreachable), prigušenje izvora (source quench), isteklo vreme (time exceeded), problemi sa parametrima (parameter problems) i preusmeravanje (redirection). Formati svih pet odgovarajući ICMP poruka prikazani su na Sl. 2-63.

(a)

(b) Sl. 2-63 Formati ICMP poruka za izveštavanje o greškama.

(c)

Uočimo da sve poruke o greškama, u sekciji za podatke, sadrže zaglavlje IP datagrama koji je izazvao grešku plus 8 bajtova podataka iz tog datagrama (Sl. 2-64). IP zaglavlje je uključeno iz razloga da bi izvorni host, kojem je izveštaj namenjen, bio u mogućnosti da identifikuje problematični datagram. Osam bajtova podataka je uključeno zato što je njima obuhvaćen deo zaglavlja protokola višeg nivoa, koji npr. kod UDP i TCP definiše

54

brojeve portova i redne brojeve kod TCP protokola. Ove informacije su potrebne kako bi izvorni host mogao da obavesti protokol višeg nivoa o nastaloj grešci.

Sl. 2-64 Sadržaj sekcije za podatke ICMP poruke za izveštaj o greškama.

Nedostupno odredište. Poruka tipa nedostupno odredište pokriva brojne neregularne situacije koje nastaju prilikom rutiranja datagrama ili isporuke sadržaja datagrama protokolu višeg nivoa na strani odredišnog hosta. Razlog slanja poruke definisan je sadržajem polja Code (vidi Sl. 2-63(a)). Poruku ovog tipa može da pošalje ruter kada ne može da locira odredište datagrama, ne može da prosledi datagram sledećem ruteru (zato hardverskog otkaza mreže ili rutera) ili kada datagram sa setovanim bitom DF (zabranjena fragmentacija) ne može biti isporučen jer mreža koja stoji na putu zbog velike dužine datagrama ne dopušta njegov prenos. Odredišni host šalje poruku ovog tipa izvornom hostu u situacijama kada protokol višeg nivoa kojem su podaci iz IP datagrama namenjeni nije operativan ili kada aplikacioni program koji koristi podatke nije pokrenut. Prigušenje izvora. IP je beskonekcioni protokol. To znači da između izvornog hosta, koji generiše datagrame, rutera, koji prosleđuju datagrame, i odredišnog hosta koji ih obrađuje ne postoji nikakva povratna komunikacija. Jedna od posledica nepostojanja ovakve komunikacije je nemogućnost kontrole protoka. Naime, IP ne poseduje ugrađene mehnizme za kontrolu protoka što može da dovede do ozboljnog problema u IP komunikaciji: zagušenja. Izvorni host nikada ne može znati da li je neki ruter ili odredišni host pretrpan datagramima; ili, da li generiše datagrame bržim tempom od onoga kojim ruteri mogu da ih prosleđuju, odnosno kojim odredišni host može da ih obrađuje. Ruter ili host koristi bafer za privremeno smeštanje primljenih datagrama. Datagrami čekaju u baferu rutera da budu prosleđeni sledećem ruteru ili odredišnom hostu. Slično, datagrami čekaju u baferu odredišno hosta da budu isporučeni protoloku višeg nivoa. Ovi baferi imaju ograničenu veličinu. Ukoliko datagrami pristižu brže nego što se prosleđuju ili isporučuju, u jednom trenutku, bafer će postati put. U takvoj situaciji, koja se naziva zagušenjem, ruter ili hosta nema drugog izbora nego da uništi neke od datagrama ili ne prihvati nove datagrame. ICMP poruka tipa ˝prigušenje izvora˝ uvedena je iz razloga uvođenja bazične forme kontrole protoka na IP nivou. Kada ruter ili host zbog zagušenja odbaci datagram, on šalje poruku tipa ˝prigušenje izvora˝ pošiljocu datagrama. Namena ove poruke je dvostruka. Prvo, poruka informiše izvor da je datagram odbačen. Drugo, ona upozorava izvor da negde na putanji do odredišta postoji zagušenje i da bi zbog toga trebalo smanjiti (prigušiti) brzinu slanja datagrama. Format poruke ˝prigušenje izvora˝ je prikazan na Sl. 2-63(a). Isteklo vreme. Poruku tipa ˝isteklo vreme˝ šalje ruter nazad izvornom hostu nakon što je uništio datagram kome je isteklo vreme života. Kao što znamo, svaki datagram sadrži polje time-to-live čija se vrednost umanjuje za 1 u svakom ruteru kroz koji datagram prođe na svom putu ka odredišnom hostu. Kada nakon dekrementiranja timeto-live postane jednako nuli, ruter uništava datagram. Dodatno, u ovoj situaciju, ruter šalje ICMP poruku nazad hostu koji je poslao datagram. Ovaj događaj je simptom da paket ˝luta˝ u mreži, da je mreža zagušena ili da je polje time-to-live u datagramu inicijalno postavljeno na isuviše malu vrednost. Takođe, ICMP poruku ˝isteklo vreme˝ može generisati i odredišni host ako u definisanom vremenu ne primi sve fragmente nekog datagrama. Kada primi prvi fragment, host startuje tajmer. Ako u trenutku kada zadato vreme tajmera istekne, host još uvek nije primio sve fragmente, tada on uništava do tog trenutka primljene fragmente, a izvornom hostu šalje poruku tipa ˝isteklo vreme˝. Format poruke ˝isteklo vreme˝ prikazan je na Sl. 2-63(a). Vrednost 0 u polju Code znači da je poruku generisao ruter zbog isteklog vremena života datagrama. Vrednost 1 u polju Code znači da je poruku poslao odredišni host jer je isteklo vreme čekanja na sve fragmente datagrama. Problem sa parmetrima. Bilo kakva greška, nedoslednost ili neusklađenost informacija u zaglavlju datagrama može stvoriti ozbilje probleme prilikom prenosa datagrama kroz mrežu. Ruter ili odredišni host koji otkrije problem u zaglavlju datagrama, uništava datagram i izvornom hostu vraća ICMP poruku tipa ˝problem sa paremetrima˝. Format ove ICMP poruke prikazan je na Sl. 2-63(b). Sadržaj polja Code definiše razlog odbacivanja datagrama: Ako polje Code ima vrednost 0, tada je u zaglavlju IP datagrama otkrivena greška. Pri tome, vrednost u polju Pointer ukazuje na bajt IP zaglavlja gde je uočen problem. Ako polje Code ima vrednost 1, tada problem postoji u polju za opcije IP datagrama.

55

2-66 Formati ICMP upita. polje Identification ukazuje na aplikacioni program koji je poslao eho-zahtev. kada se host priključi na mrežu on u svojoj tabeli rutiranja poseduje adresu samo jednog rutera . 56 . dok se polje Sequence number uvećava za 1 pri svakom slanju eho-zahteva. 2-65 Princip preusmeravanja. Format poruke tipa eho-zahtev/odziv prikazan je na Sl. (a) (b) Sl.podrazumevanog rutera. Koncept preusmeravanja ilustrovan je na Sl. Poruku eho-zahtev može poslati host ili ruter drugom hostu ili ruteru. Poruka za redirekciju A IP datagram R1 LAN IP datagram R2 LAN IP datagram B Sl. Značenje polja Identification i Sequence number nije definisano ICMP protokolom. čak iako podrazumevani ruter nije najbolji posrednik na putu datagrama do odredišta. a na poruku odgovara odredišni ruter ili host. U takvim situacijama. Host ili ruter koji primi ehozahtev kreira poruku tipa eho-odziv i vraća je nazad prvobitnom pošiljaocu. to je dokaz i da svi ruteri na putanji između krajnjih mašina korektno primaju. host će direktno isporučivati podrazumevanom ruteru. Sve datagrame koje šalje. Upiti Pored izveštavanja o greškama. 2-63(c). Kao i ruter. host A šalje datagram ruteru R1. obrađuju i prosleđuju IP datagrame. podrazumevani ruter će isporučiti datagram odgovarajućem ruteru. već je način korišćenja ovih polja prepušten aplikaciji koja koristi eho poruke. Host A dobija poruku i ažurira svoju tabelu rutiranja. Po pravilu. Ove poruke koriste administratori mreže ili korisnici da bi ustanovili da li dva sistema (hostovi ili ruteri) mogu međusobno komunicirati. Takođe. Ruter R1. Kada ruter treba da prosledi datagram u neku drugu mrežu. Obično. ali dodatno šalje poruku za preusmeravanje hostu A. ali će dodatno poslati i ICMP poruku tipa ˝preusmeravanje˝ izvornom hostu sa preporukom da ubuduće datagrame koje upućuje na dato odredište šalje tom drugom ruteru. Za ovu namenu se koriste poruke upita. Uočimo da je IP adresa ciljnog rutera sadržana u drugoj vrsti. Ruter R1 isporučuje datagram ruteru R2. već ga prosleđuje odgovarajućem ruteru. Poruke eho-zahtev i echo-odziv namenjene su dijagnosticiranju problema u mreži. Isto važi ako je pošiljac host priključen na mrežu koja sadrži više od jednog rutera. 2-65. Međutim. Takođe. za razliku od rutera kod kojih se koristi pristup dinamičkog rutiranja i čije tabele se automatski ažuriraju. tabele rutiranja hostova su po pravilu statičke. Host A želi da pošalje datagram hostu B. ICMP se koristi i za dijagnosticiranje izvesnih problema u mreži.Preusmeravanje. Obzirom da su ICMP poruke enkapsulirane u IP datagrame. Par ICMP poruka tipa vremenski zapis se koristiti za određivanje vremena prenosa IP datagrama između dve mašine (hostova ili rutera). Format poruke za preusmeravanja prikazan je na Sl. Poruka koju pošiljac eho-zahteva upiše u ovo polje. 2-66(b). Eho-zahtev/odziv se mogu koristiti za testiranje komunikcije na IP nivou. prijem eho-odziva je dokaz da IP protokoli na izvornoj i odredišnoj mašini korektno funkcionišu i u stanju su da međusobno komuniciraju. Format poruka vremenski zapis/odziv prikazan je na Sl. 2-66(a). ova vrsta poruke se može koristiti i za sinhronizaciju lokalnih časovnika dve mašine. mora u identičnom obliku biti sadržana i u odgovarajućem eho-odzivu. Polje za podatke je opciono. nalazi da je datagram trebalo isporučiti ruteru R2. nakon pregleda svojih tabele rutiranja. (c) Eho. poruku (upit) šalje host. U ovom slučaju. on mora znati IP adresu odgovarajućeg sledećeg rutera. Takođe. Vremenski zapis. i host mora posedovati tabelu rutiranja koja će sadržati adrese dostupnih rutera. uočimo da se poruka za preusmeravanje donekle razlikuje od drugih poruka o greškama: ruter ne uništava datagram. Bez obzira što je ruter R2 očigledno bolji izbor.

vremenski-zapis-zahtev (timestamp request) i vremenski-zahtev-odziv (timestamp reply). 2-66(c). host može da zna svoju IP adresu. respektivno. a da pri tome ne zna odgovarajuću masku. timestamp). je tačno čak iako dva časovnika nisu sinhronizovana. Odredište kreira timestamp reply poruku. Da bi saznao masku host šalje poruku tipa zahtev za adresnom maskom (address-maskrequest) ruteru na lokalnoj mreži. treće vreme. Par poruka vremenski zahtev/odziv se mogu koristiti za izračunavanje vremena prenosa u jednom pravcu (sending_time). Međutim. sadže tri 32-bitna polja za vremenske zapise (ili vremenske žigove. Svako od ovih polja sadrži brojnu vrednost koja predstavlja vreme u milisekundama počev od ponoći po Univerzalnom vremenu (ranije. čime se poništava eventualna razlika u sinhronizaciji. round-trip_time.Oba tipa poruke. Odgovarajuće formule su: sending_time= receive_timestamp – original_timestamp izvor → odredište receiving_time = returned_time – transmit_timestamp odredište → izvor round-trip_time = sending_time + receiving_timestamp izvor → odredište → izvor Uočimo da su vremena sending_time i receiving_time precizna samo ako su časovnici izvora i odredišta usaglašeni (sinhronizovani). Ruter koji primi poruku zahteva za adresnom maskom. Preostala dva polja popunjava nulama. To je iz razloga što i jedan i drugi časovnik učestvuju dva puta u izračunavanju ovog vremena. vreme po Griniču). a polja receive timestamp i transmit timestamp. Format zahteva i odziva poruke tipa ˝adresna maska˝ prikazan je na Sl. u poruci odziva ovo polje sadrži traženu masku. a ako ne zna. poruku će posati direktno ruteru. Ako host zna IP adresu rutera. eng. 57 . Odredište kopira vrednost iz polja original timestamp u isto polje timestamp reply poruke. Izvor popunjava polje original timestamp (polazni vremenski zapis) vremenom slanja timestamp request poruke. Adresna maska. poruku će poslati na broadcast adresu. popunjava vremenom prijema timestamp request poruku i vremenom slanja timestamp reply poruke. U poruci zahteva polje za adresnu masku je popunjeno nulama.vreme potrebno da datagram pređe put od izvora do odredišta i nazad do izvora). u drugom pravcu (receiving_time) ili u oba pravca (round-trip_time . U nekim sprecifičnim situacijama. odgovara porukom odziva (address-mask reply) koja sadrži traženu masku.

ovaj broj ne može biti proizvoljno izabran. koji se zove adresa servisa ili broj porta (tj. server. kao što su UDP i TCP. tzv. Tako. njegov broj porta se oslobađa i može biti dodeljen nekom drugom klijetskom procesu. da bi smo od udaljene mašine saznali tekući datum i vreme. kojeg on koristi za svolju identifikaciju prilikom obraćanja serverskom procesu. tzv. Za identifikaciju klijentskog procesa koristi se broj porta koji se zove efmerni (ili privremeni) broj porta.Udaljeni host . jer često nije dovoljno samo isporučiti poruku odredišnom računaru. Međutim. Dakle.Udaljeni proces Lokalni i udaljeni host su definisani IP adresama. Zato se kod TCP/IP za standardizovane servise koriste univerzalni. traži uslugu procesa na udaljenom računaru.65. klijent. Da bi se definisali procesi. IP isporučuje poruku od izvornog do odredišnog računaru. Kada klijentski proces završi sa radom. već aplikacioni proces na odredišnom računaru (tzv. Server se takođe identifikuje brojem porta. konačno odredište poruke nije računar. na primer. dobro-poznati brojevi porta. Reč efemerni znači ˝kratko-živući˝ i koristi se zato što je život klijenta po pravilu kratak. Da bi se uspostavila komunikacija između odgovarajućeg para procesa nepohodno je definisati: . 3-1.000 UDP UDP 13 Podaci 13 52. dok se za identifikaciju Daytime klijentskog procesa može koristiti broj porta 52. Efemerni brojevi porta su veći od 1023. Savremeni operativni sistemi podržavaju više-korisnička (multiuser) i više-programska (multiprogramming) okruženja. Kao protokol mrežnog sloja. Tipično. Kod TCP/IP. Odredišna IP adresa definiše jedan od svih hostova na Interntu. već je treba i predati odgovarajućem procesu na odredišnom računaru koji će je prihvatiti i obraditi. Tipično. Svi klijentski procesi znaju dobro-poznati port odgovarajućeg serverskog procesa. tzv. potreban nam je Daytime klijentski proces pokrenut na lokalnom i Daytime serverskom proces pokrenut na udaljenom hostu. Ovaj koncept je ilustrovan na Sl.000.Lokalni proces . Daytime klijent Daytime server 52. IP adrese i brojevi porta imaju različite uloge u izboru konačnog odredišta podataka. 3. klijentski procesi koji se izvršavaju na klijentskim računarima ne bi znali preko kog porta da zatraže uslugu udaljenog serverskog procesa.1 Portovi Proces-proces komunikacija se uobičajno ostvaruje shodno klijent-server paradigmi: Proces na lokalnom hostu. brojevi portova su celi brojevi iz opsega 0 . Upravo ovaj poslednji korak u isporuci poruka predstavlja odgovornost protokola transportnog sloja. broj porta definiše jedan od procesa na tom konkretnom hostu. slično kao što se na lokalnom računaru mogu izvršavati više klijentskih procesa. 3-1 Brojevi porta. Daytime serverski proces mora da koristi broj porta 13. Međutim. Ako bi serverski računar dodeljivao portove svojim serverskim procesima na slučajan način.Lokalni host . Drugim rečima. neophodan je još jedan identifikator. proces-proces komunikacija).000 Podaci Sl. 58 . oba procesa (klijent i server) imaju isto ime. ovo je nepotpuna isporuka. klijetnskom procesu se prilikom pokretanja dodeljuje proizvoljno izabran jedan od neiskorišćenih privremenih portova na klijentskom računaru. Na udaljenom računaru mogu se u isto vreme izvršavati više serverskih procesa.000 13 52. Na primer.535. Pošto je host izabran. samo port). host-host komunikacija).3 Transportni sloj IP je odgovoran za komunikaciju između računara (tzv.

dok UDP (TCP) zaglavlje sadži brojeve portova. 3-2). Međutim. Broj porta udaljenog aplikacionog procesa kojem je poruka namenjena. Format zaglavlja prikazan je na Sl.2 UDP UDP (User Datagram Protocol . 3-3 UDP zaglavlje.151. Organizacija ICANN-a preporučuje da se efemerni brojevi porta biraju iz ovog opsega. kao što serverska adresa soketa jednoznačno definiše serverski proces. Adrese soketa Kombinacija IP adrese i broja porta se naziva adresom soketa (Sl. 59 . 3-2 Adresa soketa. Checksum (Kontrolna suma): 16-bitno polje koje se koristi za proveru ispravnosti poruke. kod mnogih sistema ova preporuka nije ispoštovana.535. Ova ukupno četiri podatka su deo IP zaglavlja i UDP (odnosno TCP) zaglavlja. Klijentska adresa soketa jednoznačno definiše klijentski. maksimalna dužina UDP datagrama je manja. Minimalna dužina UDP datagrama je 8 bajta (nema podataka). Proces koji vraća odgovor kopira broj iz polja Source Port u polje Destination Port poruke koju vraća i na taj način obezbeđuje da će poruka biti isporučena pravoj aplikaciji. Sl. Korisnički datagram se sastoji od 8-bajtnog zaglavlja i podataka. jedina bitna razlika između UDP datagrama i IP datagrama je u tome što UDP sadrži brojeve portova.portovi iz opsega 49. uključujući i zaglavlje i podatke. Source Port (Izvorni port): Broj porta aplikacionog procesa koji je kreirao poruku. Međutim. 3. registrovani i dinamički (ili privatni). 3-3. Izvorni port je potreban u situacijama kada udaljena aplikacija (kojoj se UDP datagram šalje) treba da vrati odgovor.1 Korisnički datagram Paketi koji se razmenjuju UDP protokolom nazivaju se korisničkim ili UDP datagramima. Dobro-poznati portovi . Konceptualno.2. maksimalna dužina UDP datagrama je 216 = 65. Registrovani protovi . 3. baš kako ni IP. UDP omogućava udaljenim aplikacijama da razmenjuju enkapsulirane IP datagrame. koji nisu ni dodeljeni niti registrovani. IP zaglavlje sadrži IP adrese.535 bajta. što omogućava predajnoj aplikaciji da se obrati tačno određenoj aplikaciji na odredišnoj mašini. koje dodeljuje (definiše njihvou namenu) organizacija ICANN. UDP se ne bavi kontrolom toka.1. zbog enkapsulacije u IP datagram. Obzirom na dužinu ovog polja od 16 bita. Total Length (Ukupna dužina): Veličina UDP datagrama u bajtovima.portovi iz opsega 0 . Sl. Da bi se koristile usluge transportnog sloja neophodan je par klijentska/serverska adresa soketa.Protokol korisničkih datagrama) je jednostavniji od dva standardna TCP/IP transportna protokola.protovi iz opsega 1.49. koji nisu dodeljeni (organizacija ICANN nije definisala njihvou namenu). UDP pruža samo osnovnu funkcionalnost potrebnu za razmenu podataka na transportnom nivou. Dinamički portovi . kontrolom grešaka i retransmisijom nakon prijema lošeg datagrama.023.152 . bez potrebe da uspostavljaju konekciju (beskonekcioni protokol). Destination Port (Odredišni port). Oni mogu biti korišćeni kao privremeni ili privatni brojevi portova. ali koje neke druge organizacije ili firme mogu registrovati kod ICANN organizacije da bi se predupredila dupliciranja.Opsezi portova Organizacija ICANN podelila je brojeve portova na tri opsega: dobro-poznati.024 .65.

postavljajući vrednost 17 u polje za PROTOCOL. Međutim. nepouzdani transportni protokol. UDP je beskonekcioni protokol. UDP odstranjuje svoje zaglavlje i podatke sadržane u korisničkom datagramu. jednostavno uništava datagram. 3. svaka poruka koju proces šalje mora biti dovoljno kratka da može stati u jedan UDP datagram. čak iako potiču od istog izvornog i upućeni su istom odredišnom procesu. što treba odredišnoj strani da ukaže da podaci potiču od UDP protokola. fizički sloj dekodira signal u niz bitova koje prosleđuje sloju veze. razmeni poruka između dva udaljena procesa preko UDP-a ne prethodi uspostavljanje konekcije. upisana je vrednost 17. UDP datagram. a enkapsulirani IP datagram predaje IP-u. Pošiljalac ne može znati da li je poruka koju je poslao uspešno preneta. Pseudo zaglavlje je deo zaglavlja IP datagrama u kojem je UDP datagram enkapsuliran (Sl. Takođe. Uključivanje IP zaglavlja u kontrolnu sumu UDP datagrama obezbeđuje veću zaštitu od isporuke UDP datagrama pogrešnom hostu ili pogrešnom protokolu.4 zajedno sa opisom postupka izračunavanja kontrolne sume kod IP protokola. Umesto toga. UDP je jednostavan. IP obavlja svoju proveru datagrama (na bazi kontrolne sume) i ako nema grešaka. UDP koristi svoju kontrolu sumu za proveru korisničkog datagrama. Takođe. niti se po završetku komunikacije konekcija raskida (kao što je to slučaj kod TCP-a). kontrolna suma uključuje: pseudo zaglavlje. a pošto do odredišta mogu stići izvan redosleda. zajedno sa 60 . Naime. UDP softver dodaje podacima UDP zaglavlje i tako kreiran korisnički datagram prosleđuje IP-u zajedno sa adresama soketa. UDP nije u mogućnosti da rekonstruiše njihov prvobitni redosled. Kontrola toka i kontrola grešaka. Posledica beskonekcionog načina rada je i ta da proces ne može koristiti UDP za slanje toka podataka i da pri tome očekuje da UDP automatski vrši pakovanje podataka u različite datagrame. koji je sam za sebe ispravan. ne poseduje druge mehanizme za kontrolu grešaka.2 Način rada Beskonekcioni servis.4. Kod UDP-a. Enkapsulacija korisničkih datagrama Proces koji šalje poruku preko UDP-a. Sl. Između različitih UDP datagrama ne postoji veza. Kada poruka stigne do odredišnog hosta.2. ili je možda izgubljena ili duplicirana u prenosu. UDP. i pri tome nije otkrivena kontrolnom sumom IP datagrama. To znači da se svaki korisnički datagram poslat preko UDP-a tretira kao nezavisni datagram. Tako formiran IP datagram se prosleđuje sloju veze gde se pakuje u okvir. biće isporučen pogrešnom hostu. U polju za protokol zaglavlja IP datagrama koji enkapsulira UDP datagram.Kontolna suma Koncept kontrolne sume koji se primenjuje kod TCP/IP razmatran je u sekciji 2. Ako je kontrolna suma ispravna. Ako se tokom prenosa ova vrednost promeni. u meri koja je njemu potrebna. 3-4 Pseudo zaglavlje kod UDP-a. izuzev kontrolne sume. TCP). Prijemnik koji proverom kontrolne sume detektuje grešku. izračunavanje kontrolne sume kod UDP-a se donekle razlikuje od onog koji se koristi kod IP protokola. 3-4). UDP ne poseduje mehanizme za kotrolu toka. Polje za protokol iz IP zaglavlja je uključeno da bi se obezbedilo da primljeni paket pripada UDP-u. a zatim se isporučuje fizičkom sloju koji kodira bitove okvira u električne ili optičke signale i šalje ih udaljenoj mašini. odstranjuje IP zaglavlje. Sloj veze proverava ispravnost primljeniog okvira i pod uslovom da je okvir ispravan odstranjuje svoje zaglavlje. datagram može biti isporučen nekom drugom protokolu (npr. a korisnički datagram prosleđuje UDP-u zajedno sa IP adresama pošiljaoca i primaoca. prosleđuje poruku UDP-u zajedno sa parom adresa soketa i informacijom o dužini podataka (Sl. IP dodaje svoje zaglavlje. Korisnički datagrami nisu numerisani. ako je greška nastala u IP zaglavlju i to baš u polju za odredišnu IP adresu. Nepostojanje podrske za kontrolu toka i kontrolu grešaka znači da je na procesu koji koristi UDP da reši ove probleme. UDP zaglavlje i podatke. što znači da u samom protokolu ne postoji zaštita od zagušenja prijemnika velikim brojem poruka. 3-5).

Sl. 3-5 Enkapsulacija i deenkapsulacija korisničkog datagrama. Nakon provere grešaka i odstranjivanja zaglavlja. UDP prima korisnički datagram od IP-a. 3-6). Međutim. klijent jednostavno čeka neko vreme i pokušava ponovo.2. klijent šalje kratak upit serveru i očekuje kratak odgovor. Ukoliko se upit ili odgovor izgube u prenosu. Sl.3 Primene Jedna oblast gde je UDP naročito koristan su izvesne klijet-server konfiguracije. 3-6 Multipleksiranje i demultipleksiranje. Primer aplikacije koja koristi UDP na ovaj način je već ranije pomenut Daytime servis. svakoj poruci pridodaje zaglavlje i kreirani korisnički datagram predaje IP-u. može postojati nekoliko aplikacionih procesa koji u isto vreme žele da koriste usluge UDP-a. 3. UDP prihvata poruke od različitih procesa (koji se identifikuju svojim brojevima porta). Server odgovara UDP datagramom sa upisanim tekućim datumom i vremenom. UDP isporučuje poruku odgovarajućem aplikacionom procesu shodno broju porta.adresom soketa pošiljaoca isporučuje prijemnom procesu. Program kome je potrebna informacija o tekućem vremenu šalje UDP datagram sa zahtevom Daytime serveru. Multipleksrianje se koristi na strani pošiljaoca kada više od jednog aplikacionog procesa želi da pošalje korisničke datagrame (odgovara relaciji više-prema-jedan: više aplikacionih procesa. Da bi se obavila ova 61 . Multipleksiranje i demultipleksiranje Na hostu na kome se izvršava TCP/IP postoji samo jedan UDP. na nivou UDP-a koristi se koncept multipleksiranja i demultipleksiranja (Sl. Demultipleksiranje se koristi na strani prijemnika kada postoji više od jednog aplikacionog procesa koji očekuju korisničke datagrame (odgovara relaciji jedan-prema-više: jedan UDP. više aplikacionih procesa). Često. Da bi se razrešile ovakve situacije. jedan UDP). Adresa soketa je potrebna procesu u sitacijama kada se od njega očekuje da odgovori na prmljenu poruku.

a prijemnom procesu da prima podatke u vidu kontinualnog toka bajtova. TCP omogućava predajnom procesu da šalje. TCP sprovodi kontrolu protoka i kontrolu grešaka. 3. a aplikaciji se prepušta da prevaziđe (ublaži) probleme koji nastaju gubitkom ili kašnjenjem paketa. 3-7). Zajednička karakteristika svih ovih aplikacija je prenos kontinualnog toka digitalizovanog zvuka i/ili videa. Odmerci se generišu frekvencijom koja je dovoljno visoka da omogući vernu reprodukciju (npr. Svakoj takvoj poruci UDP dodaje svoje zaglavlje i isporučuje je IP-u. s obzirom da se radi o real-time toku (neprekidnom) retransmisija izgubljenih datagrama nije moguća (jer nema vremena za čekanje). 3-7 Tok bajtova. Internet telefonija. TCP kreira okruženje u kojem izgleda kao da su dva procesa spojena nekom imaginarnom ˝cevi˝. što narušava kvalitet reprodukcije. Postoje dva takva bafera: predajni i prijemni bafer. kao i UDP. aplikacija na prijemu može sama da pokuša da rekonstruiše deo zvuka koji nedostaje. TCP je konekcioni protokol. Predajni proces generiše (upisuje) tok bajtova. kao što su: Internet radio. Takođe. ne vide bilo kakvu vezu između datagrama. proces-proces transportni protokol koji pruža puni transportni servis udaljenim aplikacijama. video-na-zahtev i druge. brzi tok odmeraka.Protokol za kontrolu prenosa) je konekcioni. proces (aplikacioni program) šalje poruke koje imaju tačno definisane granice. dovoljno je razmeniti dve kratke poruke. Orijentacija na tok Za razliku od UDP-a. Na primer. 44kHz za muziku). TCP je protokol orijentisan na tok. Kod UDP-a. UDP. Odgovarajući proces deli generisani tok odmeraka na segmente (od po npr. a projektovan je tako da se može dinamički prilagoditi promenljivim karakteristikama Interneta i održi pouzdanu vezu čak i u slučajevima pojave raznih vrsta otkaza u mrežnoj infrastrukturi. TCP je proces-proces (programprogram) protokol koji. kroz koju teku njihovi podaci (Sl. Poruke se zovu korisnički datagrami. kao ni IP. za razliku od UDP-a. video konferencije. Sl. nije potrebna nikakva prethodna priprema ili uspostavljanje konekcije. Odgovarajući proces na prijemnoj strana dobija UDP datagrame. (Kasnije 62 . TCP-ju su neophodni baferi za privremeno čuvanje podataka. registrovani i dinamički) su identični kao kod UDP-a. kao ni neka stroga kontrola protoka. Druga oblast primene UDP protokola su real-time multimedijalne aplikacije. Na taj način. koji radi prenosa podataka između dva udaljena procesa kreira virtuelnu konekciju. koristi brojeve portova. a svaka od njih u konačnom obliku postaje jedan IP datagram.prosta konverzacija. izdvaja odmerke i reprodukuje ih tempom koji odgovara frekvenciji odmeravanja. TCP omogućava komunikaciju od procesa do procesa korišćenjem 16-bitnih brojeva portova za identifikaciju procesa.1 Servisi Proces-proces komunikacija Slično UDP-u. a prijemni proces konzumira (čita) bajtove iz ˝cevi˝. 3. konvertovan je u tok UDP datagrama. čime će uneti izvesno kašnjenje u reprodukciji. Iz tog razloga za pomenute aplikacije se koristi UDP (a ne TCP). umesto da odmerke odmah reprodukuje može privremeno da ih smešta u bafer. Međutim. zvuk (ili video) se konvertuje u niz digitalnih odmeraka. ali zato će moći da toleriše veće kašnjenje pojedinih paketa. Sa druge strane. Predajni i prijemni baferi Obzirom da predajni i prijemni procesi ne moraju da upisuju ili čitaju podatke istom brzinom. 500 odmeraka) i pakuje ih u UDP datagrame koje šalje prijemnoj strani. pouzdani. koje će kada stignu da umetne na pravo mesto u baferu. muzika-na-zahtev. umesto da se traži ponovno slanje izgubljenog paketa.3. Na predajnoj strani. Međutim.3 TCP TCP (Transmission Control Protocol . U prenosu UDP datagrama može se ispoljiti džiter. Opsezi portova (dobro-poznati. a pojedini datagrami mogu biti izgubljeni u prenosu. Odmerak je binarni broj koji ukazuje na trenutnu amplitudu signala.

) Baferi se realizuju u vidu cirkularnog memorijskog polja 1-bajtnih lokacija (Sl. celokupna ova procedura je transparentna (nevidljiva). uočavamo tri sekcije memorijskih lokacija. prenosi podatke u paketima. odgovarajuća lokacija se osobađa i postaje ˝bela˝. veličina TCP bafera je više stotina ili više hiljada bajtova. Na Sl. 3-8). pokvareni i ponovo poslati. Sl. Segmenti se enkapsuliraju u IP datagrame i šalju. Siva sekcija sadrži primljene bajtove koji prijemni proces može da preuzme (konzumira). Na predajnoj strani. TCP Segmenti Iako baferi rešavaju problem usaglašavanja brzine generisanja i konzumiranja podataka. Cirkularni bafer je podeljen na dve sekcije (prikazane kao ˝bela˝ i ˝siva˝ sekcija). Iz tog razloga. odgovarajuće lokacije se oslobađaju i postaju ˝bele˝. Rad bafera na prijemnoj strani je jednostavniji. mogu biti izgubljeni u prenosu. 3-8 prikazuje prenos podataka u jednom smeru. Siva (osenčena) oblast sadrži bajtove koji tek treba da budu poslati.u ovom poglavlju videćemo da su ovi baferi takođe potrebni za realizaciju mehanizama za kontrolu protoka i kontrolu grešaka. Sl. TCP čuva poslate bajtove u baferu sve dok ne budu protvrđeni. Tamna oblast sadrži bajtove koji su poslati ali čiji prijem suprotna strana još uvek nije potvrdila. u realnosti. prenose na prijemnu stranu. kapacitet oba baferi sa slike je 20 bajtova. neophodan je još jedan korak pre nego što se podaci pošalju kroz mrežu. Radi jednostavnosti. Bela sekcija sadrži prazne lokacije koje se raspoložive za upis novih bajtova koji stižu sa mreže. a ne kao tok bajtova. Kasnije u ovom poglavlju. Sl. Naime. i tamo raspakuju i upisuju u prijemni bafer. 3-9 je prikazano kako se bajtovi uzimaju iz predajnog bafera. kao mrežni servis koji stoji na raspolaganju TCP-ju. 3-8 Predajni i prijemni bafer. IP sloj. TCP grupiše određeni broj sukcesivnih bajtova u paket tzv. 3-9 TCP segmenti. TCP rešava sve ove neregularne situacije bez bilo kakvog učešća ili pomoći prijemnog procesa. segment. Za prijemni proces. Kada prijemni proces pročita bajt. 63 . videćemo da segmenti mogu stići na predajnu stranu izvan redosleda. pakuju u segmente. a zavisno od implementacije. Bela sekcija odgovara slobodnim (nepopunjenim) lokacijama. TCP dodaje zaglavlje svakom segmentu i isporučuj ga IP sloju. Nakon što su bajtovi iz tamne sekcije potvrđeni. koje su raspoložive za upis novih bajtova.

prijemnik je u mogućnosti da kontroliše tempo kojim predajnik šalje podatke. počev od rezličitih početnih brojeva bajta. ne postoji fizička konekcija koja bi garantovala isporuku segmenata u pravilnom redosledu. Konekcija se zatvara. gde podaci mogu da teku u oba smera u isto vreme. Kada proces na mašini A želi da razmenjuje podatke sa procesom na mašini B. Međutim. uvećava ga za 1 i dobijenu sumu koristi kao ACK broj. bavi kontrolom protoka. To znači da svaki TCP poseduje oba bafera (predajni i prijemni). Umesto toga. prijemnik ne potvrđuje eksplicitno svaki primljeni bajt. 64 . 3. uzima broj poslednje ispravno primljenog bajta. Takođe. Napomenimo da se ovde radi o virtuelnoj. Drugim rečima. SEQ broj u svakom smeru ukazuje na prvi bajt sadržan u segmentu. 3.2 Mehanizmi TCP obezbeđuje servise (pomenute u prethonoj sekciji) korišćenjem nekoliko bazičnih mehanizama koji će ukratko biti opisani u ovoj sekciji. Svaka strana nezavisno numeriše svoje bajtove (one koje šalje). Numerisanje bajtova je ključna osobina TCP-ja. može se izgubiti ili duplicirati u prenosu. Dodatno. već TCP kreira okruženje orijentisano na tok i na sebe preuzima odgovornost za isporuku bajtova u prvobitnom redosledu. zaglavlje segmenta sadrži dva polja koja se zovu: Sequence Number (SEQ broj) i Acknowledgement Number (ACK broj). Pouzdanost se postiže mehanizmom potvrđivanja. To znači da strana koja šalje potvrdu. Iako TCP vodi evidenciju o segmentima koje šalje i prima. dešava se sledeće: 1. ali ne i X. TCP grupiše bajtove u segmente i svakom segmentu dodeljuje Sequence Number jednak rednom broju prvog bajta u segmentu. Drugim rečima. Kontrola protoka TCP se. u zaglavlju segmenta ne postoji polje za redni broj segmenta. Prijemna strana potvrđuje primljene podatke. a ne broj segmenta. već se potvrda odnosi na sve bajtove sa rednim brojevima manjim od ACK broja.232. Acknowledgement Number Kod TCP-ja komunikacija je tipa puni-dupleks: nakon što je konekcije uspostavljena. TCP segment se enkapsulira u IP datagram koji na odredište može stići izvan redosleda. Redni brojevi TCP numeriše sve bajtove podataka koji se prenose putem uspostavljene konekcije. (ACK broj jednak X znači da su svi bajtovi do X. svaka strana koristi Acknowledgement Number (ACK broj) da bi potvrdila bajtove koje je primila.3. Kod TCP-ja. ACK broj je kumulativan. TCP je u mogućnosti da sprovodi kontrolu protoka do nivoa bajtova. Zajedničko ime za ova dva polja je broj bajta. Kontrola protoka je neophodna kako prijemnik ne bi bio pretrpan podacima koje predajnik šalje isuviše velikom brzinom.Puna dupleksna komunikacija TCP nudi uslugu pune dupleksne (full-duplex) komunikacije. Numerisanje je nezavisno u oba smera. 2. Uvek kada dobije bajt podataka od predajnog procesa. Konekcioni servis TCP je protokol konekcionog tipa. ACK broj definiše broj sledećeg bajta kojeg strana očekuje da primi. a predajna ponovo šalje (retransmituje) podatke koji nisu potvrđeni u nekom definisanom vremenu. uspešno primljeni). Sequence Number Radi slanja kroz mrežu. Podaci se razmenjuju u oba smera. Zahvaljujući rednim brojevima. Umesto toga. TCP smešta bajt u predajni bafer i dodeljuje mu redni broj. obe strane mogu da šalju i primaju podatke u isto vreme. za razliku od UDP. Numerisanje ne mora obavezno da počne od 0. Dva TCP-ja uspostavljaju (otvaraju) konekciju. a ne fizičkoj konekciji. Ako je generisan broj x. koja dominira svim aspektima protokola. a segmenti se prenose u oba smera. Redni brojevi se koriste za kontrolu protoka i kontrolu grešaka. za numerisanje prvog bajta TCP generiše slučajni broj iz opsega 0 . obično. Pouzdani servis TCP je pouzdani transportni protokol. redni broj prvog bajta podataka biće x+1.

Definiše broj porta aplikacionog programa na hostu koji šalje segment. Da bi se obezbedila striktna kontrola toka i kontrola grešaka. Kontrola zagušenja TCP. 3-10. Sadrži 6 bita ili flaga od kojih svaki ima neku posebnu namenu u procesu kontrole toka. redni broj dodeljen prvom bajtu podataka sadržanih u segmentu. 6 bita). Segment počinje 20-bajtnim zaglavljem fiksnog formata. tj. Reserved (Rezervisano. tj. Iako se detekcija grešaka obavlja na nivou segmenata. Definiše broj 32-bitnih reči u TCP zaglavlju. Sequence Number (Redni broj. Pošto su 20 bajta fiksna.20 . 4 bita). kada se budemo bavili detaljinijm opisom rada TCP-ja. svaka strana nezavisno. 3-10 TCP segment. dužina polja za opcije može biti najviše 40 bajta. U toku uspostavljanja konekcije. već je određena i nivoom zagušenja mreže. Source Port (Izvorni port. Potpunije objašnjenje uloge kontrolnih bitova sledi kasnije u ovom poglavlju. Za sada. Slede kratka objašnjenja značenja polja TCP zaglavlja. Nakon fiksnog dela zaglavlja slede polje za opcije (koje nije obavezno). uspostavljanja i raskidanja konekcije. na slučajan način. Definiše broj porta aplikacionog programa na hostu koji prima segment.20 = 65495. Sl. Format segmenta je prikazan na Sl. koncept kontrole grešaka je. a drugo zbog IP zaglavlja. Ovo polje je važeće ako je bit ACK (kasnije u zaglavlju) postavljen na 1. 6 bita). što znači da TCP zaglavlje može sadržati najviše 15*4 = 60 bajta (zajedno sa opcijama).) Segmenti bez podataka su dozvoljeni i često se koriste za provrđivanje i razmenu drugih upravljačkih informacija. bajtovski orijentisan. tada će ACK broj biti jednak x+1. Control bits (Kontrolni bitovi. ovi bitovi moraju biti postavljeni na 0. bez obzira na eventualne greške u segmentima. generiše inicijalni SEQ broj. vodi računa o zagušenjima u mreži. kao i kontrola protoka. Deo zaglavlja rezervisan na neku buduću namenu. Najveća 4-bitna vrednost je 15. dupliciranje ili gubitak segmenata.Kontrola grešaka Mehanizam za kontrolu grešaka je neophodan da bi se obezbedio pouzdani prenos. 16 bita). Količinu podataka koje predajnik šalje. SEQ broj ukazuje na bajt iz toka bajtova koji je kao prvi sadržan u segmentu.3 Segment TCP paketi se nazivaju segmentima. kao i definisanju načina prenosa podataka. 16 bita). ne kontroliše samo prijemnik (kotrola protoka). Kao što je već rečeno. Ako je pošiljalac segment uspešno primio bajt sa rednim brojem x. TCP je orijentisan na tok. Sadrži ACK broj. redni broj koji je dodeljen prvom narednom bajtu podataka kojeg pošiljalac segmenta očekuje da primi od druge strane. 32 bajta). Acknowledgment Number (Broj potvrde. Napomenimo da isti segment može da sadrži i podatke i potvrdu za prethodno primljene podatke. Prvo ˝-20˝ zbog TCP. za razliku od UDP. 65 . Destination Port (Odredišni port. Sadrži SEQ broj. 32 bita).3. Od TCP-ja se očekuje da na prijemnoj strani rekonstruiše prvobitni tok bajtova. 3. svaki bajt koji se prenosi mora biti numerisan. a zatim i podaci (maksimalno 65535 . HLEN (Veličina zaglavlja.

3-11). beskonekcioni protokol. Procedura za izračunavanje kontrolne sume za TCP je u osnovi identična onoj koja se primenjuje kod UDP-a. 66 . kontrolna suma je opciona. a ne fizička. (Više detalja o opcijama kasnije u poglavlju. TCP koristi usluge IP-a samo za isporuku pojedinačnih segmenata prijemniku. Push podataka. koji se dalje enkapsulira u okvir nivoa veze. Sl. kod UDP-a. dok sam obavlja kontrolu konekcije. 16 bajta). počev od broja potvrde. Definiše broj koji kada se sabere sa SEQ brojem daje redni broj prvog urgentnog bajta sadržanog u sekciji za podatke segmenta. Može se postaviti pitanje. Definiše veličinu tzv. (Više detalja kasnije u poglavlju). kako TCP može biti konekcioni protokol. Međutim. Vrednost polja Acknowledgment Number je validna.T. Ova vrednost se obično naziva prozorom prijemnika (rwnd) i predstavlja trenutnu veličinu slobodnog prostora u prijemnom baferu pošiljaoca segmenta. Raskida konekciju. Ponovo.) Enkapsulacija segmenta TCP segment se enkapsulira u IP datagram. TCP će ga privremeno zadržati sve dok ne stignu svi segmenti koji nedostaju. Radi izračunavanja kontrolne sume zaglavlju segmenta se dodaje istio pseudo zaglavlje kao i kod UDP-a ( Sl. prozora. TCP će inicirati njegovu retransmisiju.3. u takvom stanju da trenutno nije u mogućnosti da prima nove podatke (možda kasnije). Window Size (Veličina prozora. IP nije svestan ovog preuređivanja. Suština je u tome da je TCP konekcija virtuelna.4 Konekcija TCP je konеkcioni protokol. Sadržaj ovog polja je validan samo ako je bit URG=1. 0 . Options (Polje za opcije. kao što znamo. Urgent Pointer (Pointer na urgentne podatke. Virtuelna putanja olakšava proces potvrđivanja. Sinhroniše redne brojeve u toku uspostavljanja konekcije. dok je kod TCP-ja obavezna. 3-12 Enkapsulacija TCP segmenta. Konekcija mora biti resetovana. 3. Veličina prozora 0 je legalna i ukazuje drugoj strani da je host. Informiše suprotnu stranu koliko bajtova. kao što je prikazano na Sl. Polje za kontrolnu sumu. odnosno da TCP radi na višem nivou apstrakcije od IP-a. 3-1 Kontrolni bitovi. 16 bajta). To znači da se između izvora i odredišta uspostavlja virtuelna putanja za prenos svih segmenata koji će biti razmenjivani u komunikaciji između dve strane. Checksum (Kontrolna suma. Koristi se kada segment sadrži urgentne (hitne) podatke. koji je. IP nije svestan retransmisije. pošiljalac segmenta. 3-12. Ako segment stigne izvan redosleda. Zaglavlje okvira IP zaglavlje TCP segment Sl. 3-11 Pseudo zaglavlje kod TCP-ja. Ako se segment izgubi ili ošteti u prenosu. ako koristi usluge IP-a.40 bajtova). kao i retransmisiju oštećenih ili izgubljenih segmenata. 16 bita). Flag UGR ACK PSH RST SYN FIN Opis Vrednost polja Urgent Pointer je validna. Pruža mogućnost da se zaglavlje proširi dodatnim informacijama. može da pošalje. u bajtovima.

(Možemo zamisliti kao da SYN segment. Segmenti koji se razmenjuju tokom uspostavljanja konekcije prikazani su delovima svojih zaglavlja koji su bitni u odgovarajućoj fazi ove procedure. Uočimo da SYN segment ne sadrži ACK broj (bit ACK=0). želi da uspostavi TCP konekciju sa nekim drugim aplikacionim programom (server). za aktivno otvaranje konekcije (eng. Na Sl. server koristi SYN+ACK segment da bi potvrdio prijem klijentovog SYN segmenta. u njemu mora biti definisana i veličina prozora. 3-13 Uspostavljanje TCP konkcije: trostepeno usaglašavanje. SYN segment ˝troši˝ jedan redni broj. Klijent šalje prvi segment. TCP na klijetnskoj strani započine proceduru trostepenog usaglašavanja (Sl. Iz tog razloga. Celokupan proces započinje server. active open). Sledi opis svakog od tri koraka: 1. sa druge strane. ima vrednost 1). SYN segment. Dve mašine koje su u TCP vezi u mogućnosti su da jedna drugoj istovremeno šalju segmente. Klijent zapravo saopštava TCP-ju da želi da ostvari konekciju se konkretnim ˝otvorenim˝ serverom. u kojem je flag SYN postavljen (tj. Kada prenos podataka bude počeo. Drugim rečima. server koristi SYN+ACK segment da bi inicijalizovao redni broj za prenos bajtova od servera do klijenta. SYN+ACK segment) šalje server. Ovaj redni broj se zove inicijalni redni broj (ISN). niti definiše veličinu prozora. ipak. jedna za klijentsku. To znači da obe strane moraju učestvovati u inicijalizaciji komunikacije kako bi od druge strane dobile odobrenje za slanje podataka. Drugi segment (tzv. U ovom trenutku. već samo daje dozvolu TCP-ju da prihvati zahtev za uspostavljanje konekcije koji eventualno stigne od neke udaljene aplikacije. Segment ima dvostruku ulogu. Serverski program obaveštava lokalni TCP da je spreman da prihvati konekciju. server od svog TCP-ja zahteva pasivno otvaranje konekcije (eng. redni broj za prvi bajt podataka će biti za 1 veći od ISN broja. u ovom segmentu je postavljen flag ACK. Trostepeno usaglašavanje TCP konekcija se uspostavlja procedurom koja se zove trostepeno usaglašavanje (eng. Kod ovog segmenta postavljena su dva flaga: SYN i ACK. Ovaj segment služi za sinhronizaciju rednih brojeva. Pasivno otvaranje ne uspostavlja konekciju. prenos podataka i raskidanje konekcije. S obzirom da segment sadrži potvrdu (ACK=1). tzv. passive open). izdaje zahtev lokalnom TCP-ju. Pretpostavimo da aplikacioni program (klijent). Uspostavljanje konekcije TCP komunikacija je tipa ˝puni dupleks˝. Klijent slučajno bira prvi redni i šalje ga serveru (kao vrednost polja Sequence Number). 3-13 su prikazane dve vremenske ose. konekcioni prenos se ostvaruje u tri faze: uspostavljanje konekcije. Sl. 3-13). a druga za serversku stranu. Međutim. SYN segment je kontrolni segment i ne sadrži bilo kakve podatke. Klijentski program. Drugo. iako ne prenosi ni jedan ˝fizički˝ bajt.Kod TCP-ja. sadrži jedan imaginarni bajt. Prvo. 67 . Naime. 2. a polje Acknowlegmnet Number sadrži sledeći redni broj koji server očekuje da primi od klijenta. three-way handshaking). on ima ulogu SYN segmenta za komunikaciju u suprotnom smeru. rwind.

Klijent i server mogu slati podatke i potvrde u oba smera. Na Sl. Na primer. Klijent Server ACK Seq: 8 00 1 A ck: 1500 1 PS H b a jto P o d a ci vi: 8 0 01 9000 Seq: 9 00 1 A ck: 1500 1 PS H Pod vi: 9 0 a ci 01 10 0 0 ACK b a jto 0 1 1 5 00 Seq: 1 10 0 0 A c k: ACK vi: 1 b a jto Seq: 1 00 0 0 A ck: 1 70 0 1 R wn d: 1 ci P o d a . Kao i prethodna dva. Konačno. TCP će sačekati još neko vreme očekujući da će aplikacija upisati nove podatke. 3-14 Prenos podataka. U segmentu koji server šalje klijentu. dve udaljene aplikacije mogu da razmenjuju podatke. prijemni TCP smešta primljene podatke u prijemni bafer i isporučuje ih prijemnom aplikacionom programu onda kada je aplikacioni program spreman da prihvati nove podatke ili onda kada je to ˝zgodno˝ prijemnom TCP-ju. prijemni TCP može da sačeka da se prijemni bafer napuni do izvesne mere. Sa druge strane. klijent šalje još jedan segment. Međutim. Klijent. a polje Acknowlegmnet Number sadrži redni broj prvog očekivanog bajta. pre nego što podatke preda prijemnoj aplikaciji. Na primer. takođe. Podaci i potvrede koje se prenose u istom smeru mogu se prenositi istim segmentom. Ovim segmentom klijent podvrđuje početni redni broj servera. Ako aplikacioni program upiše u predajni bafer mali broj bajtova. nedovoljan da se popuni jedan segment optimalne veličine. Uočimo da je redni broj. što predstavlja indikaciju serveru da primljene podatke treba da isporuči serverskom procesu odmah nakon prijema (bez zadržavanja u prijemnom baferu). Klijent prvo šalje 2000 bajtova podataka podeljenih u dva segmenta. Push operacija Kao što znamo. klijent šalje serveru kratku tekstualnu komandu unetu preko tastature na koju očekuje brzi odgovor. Predajni TCP uzima podatke iz bafera i pakuje ih u segmente. Zatim. što znači da ACK segment ne troši ni jedan redni broj. sadržan u polju Sequence number. flag PSH nije postavljen. Treći segment (tzv. dok poslednji segment prenosi samo potvrdu (zato što nema više podataka za slanje). 68 . Takođe. ACK segment) šalje klijent. Flag ACK je postavljen. predajni TCP koristi bafer za privremeno skladišćenje podataka koje predajni aplikacioni program želi da pošalje. Ovakav tip fleksibilnosti povećava efikasnost TCP komunikacije. ACK segment sadrži samo zaglavlje. Prenos podataka Nakon što su uspostavile konekciju. čiju veličinu sam bira. server šalje 2000 bajtova u jednom segmentu. To je tipično slučaj kod interaktivnih aplikacija. 3-14 je prikazan primer prenosa podataka. a za slanje podataka sekcija za podatke segmenta. mora da definiše veličinu prozora servera. ACK segmenta identičan ovome iz SYN segmenta. Čekanje TCP da se u baferima ˝prikupi˝ dovoljan broj bajtova unelo bi neprihvatljivo kašnjenje. ali ne i podatke. Za podvrđivanje primljenih podataka koristi se flag ACK i polje Acknowledgment number iz zaglavlja. postoje situacije kada podatke treba isporučiti prijemnoj aplikacije što je pre moguće.3. uočima da je u segmentima koje šalje klijent postavljen flag PSH (push). Treba obratiti pažnju na SEQ i ACK brojeve. Prva tri segmenta prenose i podatke i potvrde. Pretpostavka je da je konekcija prethodno uspostavljena.1 7 00 0 50 0 1 ACK 0 00 0 Vreme Vreme Sl.

Zatvaranje konekcije Konekciju može da zatvori bilo koja od dve strane uključene u razmenu podataka (klijenti ili server). Međutim. Ako pošalje komandu za prekid procesa. izvan redosleda. push operaciju. predajna aplikacija zaključuje da je ˝sve bilo pogrešno˝ i da je najbolje prekinuti dalju obradu. npr. Predjani aplikacioni program saopštava predajnom TCP-ju da su podaci koje mu predaje urgentni. Drugim rečima. Pri tome. on izdvaja urgentne podatke iz segmenta (korišćenjem vrednosti iz polja Urgent pointer) i isporučuje ih. Po prijemu prvih razultata obrade. Klijent F IN Seq: x A ck: y FIN Klijent Server Aktivno zatvaranje y-1 Seq: 1 k: x + Ac ACK ACK n a klije e ra k tu F IN Seq: x A ck: y FIN Pasivno zatvaranje Segm y S e q: x+1 A ck: ACK ACK FIN + e n ti p od e rv od s a ta ka Aktivno zatvaranje Potvrde od klijenta ka serveru z S e q: x+1 F IN F IN A ck: F IN A CK Seq: x A c k: y+1 ACK A CK Seq: x A c k: z+1 ACK Vreme Vreme Vreme (a) (b) Sl. u segmentu kojeg šalje. 3-15 Zatvaranje konekcije: (a) trostepeno usaglašavanje. Rešenje prethodnog problema se sastoji u slanju segmenta sa postavljenim flagom URG. Predajni aplikacioni program šalje podatke na obradu prijemnom aplikacionom programu. Većina aktuelnih implementacija TCP protokola nudi dve opcije za zatvaranje konekcije: trostepeno usaglašavanje i četvorostepeno usaglašavanje sa opcijom za zatvaranje konekcije u jednom smeru (tzv. polu-zatvaranje). aplikacija predaje podatke TCP-ju u vidu kontinualnog toka bajtova. postoje situacije kada aplikacioni program ima potrebu da pošalje urgentne bajtove. To znači da predajni TCP neće čekati na nove podatke. prijemnom aplikacionom programu. Aplikacioni program na predajnoj strani može zahtevati tzv. Preostali prostor u polju za podatke može biti ispunjen ˝normalnim˝ podacima. Polje Urgent pointer iz zaglavlja segmenta ukazuje kraj uregnetnih i početak ˝normalnih˝ podataka. Urgentni podaci TCP je protokol orijetisan na tok. (b) polu-zatvaranje. Svaki bajt podataka ima svoju tačnu poziciju u ovom toku. Predajni TCP kreira segment i na početak polja za podatke umeće urgentne podatke. Ctrl-C. već će odmah po upisu podataka u predajni bafer kreirati i poslati segment. Kada prijemni TCP primi segment sa postavljenim flagom URG.TCP je u stanju da prevaziđe prethodno opisan problem. predajni TCP postavlja flag PSH kako bi obavestio prijemni TCP da segment nosi podatke koje treba isporučiti prijemnoj aplikaciji što je pre moguće. Razmotrimo sledeći primer. 69 . ova dva karaktera će se naći na kraju prijemnog bafera i biće isporučeni prijemnog aplikaciji tek kada ona obradi sve prehodno pogrešno poslate bajtove. predajna aplikacija je u međuvremenu već poslala veću količinu podataka. To znači da predajna aplikacija želi da izvesni podaci budu pročitani izvan redosleda iz prijemnog bafera i što pre predati prijemnom aplikacionom programu. Međutim.

2.5 Dijagram stanja Da bi se olakšalo praćenje različitih događaja i brojnih izuzetnih sitacija koje se mogu desiti u toku uspostavljanja konekcije. 3-15(b) je pirkazan primer polu-zatvaranja. koji može da promeni stanje i generiše izlaz. Automat ostaje u tekućem stanju sve dok se ne desi neki događaj pod čijim dejstvom prelazi u novo stanje. može da uništi konekciju. a potvrde od klijenta do servera. Međutim. slanjem RST segment. Zatvaranje pasivne konekcije. Server. server može nastaviti da šalje svoje podatke. FIN + ACK segment) kojim potvrđuje prijem FIN segmenta i u isto vreme objavljuje zatvaranje konekcije u dugom smeru. kao što je npr. Resetovanje konekcije Flag RST se koristi kada TCP. želi da odbije zahtev za uspostavljanje konekcije. Iako je klijent primio redni broj y-1 i očekuje y. kojim potvrđuje FIN segment dobijen od serverskog TCP-ja. kao što je to slučaj na Sl.Trostepeno usaglašavanje Postupak zatvaranja konekcije postupkom trostepenog usaglašavanja ilustrovan je na Sl. sa bilo koje strane konekcije. podaci se mogu i dalje prenositi od servera do klijenta. kijent ne može više slati nove podatke serveru. FIN segment troši samo jedan redni broj. FIN+ACK segment troši samo jedan redni broj. klijentski TCP. U svakom momentu. nakon što od klijentskog procesa primi komandu za zatvaranje konekcije. 3-2).3. Klijent zatvara svoj smer konekciju (u smeru slanja svojih podataka) slanjem FIN segmenta. Ovaj segment sadrži ACK broj koji je za 1 veći od SEQ broja iz FIN segmenta. razdešavanje rednih brojeva. TCP na jednoj od dve strane konekcije. kada više nema podataka za slanje. prolazi kroz konačni broj stanja. ali može biti i kontrolni segment (segment koji ne sadrži podatke). šalje prvi segment (tzv. zato što nakon polu zatvaranja klijent nije potrošio ni jedan redni broj. Drugim rečima. Prekidanje konekcije. Nakon prijema FIN segmenta. TCP koji primeti takvu situaciju. kada nije moguće ni sprovesti regularnu proceduru zatvaranja konekcije. Napomenimo da FIN segment može sadržati i poslednje podatke koje klijent šalje serveru. ACK segment. Međutim. SEQ broj poslednjeg ACK segmenta je još uvek x. redni broj servera je još uvek y-1. 1. kao kod obostranog zatvaranja). Pretpostavimo da je TCP na serverskom hostu dobio zahtev za usopstavljanje konekcije na nepostojećom portu (tj. Ovaj segment takođe može sadržati i poslednji odeljak podataka koje server šalje klijentu. Ako ne sadrži podatke. TCP softver je realizovan u vidu konačnog automata (FSM – Finite State Machine). Ovakva situacija se naziva polu-zatvaranjem konekcije i obično je inicirana od strane klijenta. prenosa podataka i zatvaranja konekcije. 3. Kada je konekcija konačno zatvorena. ili trenutno prekinute otvorenu konekciju. Konačni automat. na portu koji na tom hostu nije otvoren za slušanje). zatvara svoj smer konekcije slanjem FIN segmenta kojeg klijent potvrđuje ACK segmentom. Nakon polu-zatvaranja konekcije. Klijentski TCP šalje poslednji segment. kao reakciju na događaj. Ovaj segment ne može sadržati podatke i ne troši redne brojeve. U isto vreme. automat može izvršiti i izvesne aktivnosti. Server prihvata polu-zatvaranje slanjem ACK segmenta (a ne FIN+ACK. nakon kojih nije moguće nastaviti normalnu komunikaciju. Obratimo pažnju na redne brojeve. pod dejstvom događaja. Odbijanje konekcije. TCP. serverski TCP obaveštava serverski proces da klijent traži zatvaranje konekcije. Na Sl. 3-15(a). događaj je ulaz u stanje. automat je u jednom od svojih stanja. Ako se radi o kontrolnom segmentu. U takvoj situaciju. FIN segment) u kojem je postavljen flag FIN. 70 . U normalnim situacijama. ˝nasilno˝ prekida konekciju slanjem TCP-ju sa druge strane segmenta sa postavljenim bitom RST. a zatim šalje drugi segment (tzv. Polu-zatvaranje Kod TCP-ja. 3. U toku trajanja konekcije mogu nastati izvesne neregularne situacije. što može biti simtom neregularnog rada aplikacionog programa na udaljenom hostu koji koristi konekciju. TCP protokol predviđa 11 stanja (tabela T. može primetiti da je druga strane pasivna neko duže vreme (ne šalje podatke). U takvoj situaciji serverski TCP odbija zahtev slanjem klijentu segent sa postavljenim bitom RST. 3-15(a). dozvoljeno je da jedna strana prestane sa slanjem ali nastavi sa prijemom podataka.

Scenarija Da bi smo razumeli dijagram stanja i rad TCP-ja. 3-16 Dijagram stanja TCP protokola. 3-2 Stanja TCP protokola. a normalni tok aktivnosti klijenta punim linijama. klijenski proces inicira aktivno otvaranje. TCP čeka na ACK. Obe strane su istovremeno inicirale zatvaranje konekcije. TCP čeka na ACK. Klijentski proces izdaje komandu svom TCP-ju zahtevajući uspostavljanje konekcije sa serverom na datoj adresi soketa. ACK ili RST) ili istek vremena čekanja (tzv. Stanja i njihova relativna trajanje prikaza su duž vremenske ose. Kao reakciju na 71 . TCP čeka vreme 2MS. Sl. Svakoj grani pridružen je natpis kojeg čine dva dela razdvojne kosom crtom. Stanje CLOSED LISTEN SYN-SENT SYN-RCVD ESTABLISHED FIN-WAIT-1 FIN-WAIT-2 CLOSE-WAIT TIMED-WAIT LAST-ACK CLOSING Opis Konekcija ne postoji Aplikacija je izvršila pasivno otvaranje. 3-16 prikazuje aktivnosti i klijenta i servera. Prelazi između stanja prikazani su usmerenim linijama (granama). Prvi deo ukazuje na događaj ili ulaz (šta TCP prima). Uspostavljanje i raskidanje konekcije Na Sl. Drugim rečima. Zaobljeni pravougaonici prestavljaju stanja. Akcija je slanje upravljačkog segmenta (SYN. timeout). Poslat je drugi FIN. FIN ili RST). TCP čeka na SYN. Konekcija je uspostavljena. Zatvaranje konekcije sledi proceduru poluzatvaranja. TCP čeka da se aplikacija zatvori Primljen je drugi FIN i poslat ACK. FIN. ACK za prvi FIN je primljen. 3-17 je ilustrovan scenario u kojem serverski proces obavlja pasivno otvaranje i pasivno zatvaranje. TCP čeka na ACK. razmotrićemo nekoliko tipičnih scenarija. Klijentska stanja. a drugi na akciju ili izlaz (šta TCP šalje). ACK+SYN je poslat. Poslat je prvi FIN. Normalni tok aktivnosti servera predsavljen je isprekidanim. prijem segmenta (SZN. Događaj može da inicira aplikacija (zahtev za aktivno/pasivno otvaranje ili zatvaranje konekcije). 3-16. Dijagram sa Sl. Normalni prenos podataka je u toku. TCP čeka na ACK. Primljen je prvi FIN i poslat ACK. Dijagram stanja TCP protokola prikazan je na Sl. -. a klijentski aktivno otvaranje i aktivno zatvaranje konekcije.T. TCP čeka na drugi FIN. Izostanak akcije označen je crtom. SYN je poslat.

Maximum Segment Livetime). U ovom stanju prenose se podaci i potvrde (po potrebi u oba smera). server neće uspeti da zatvori konekciju. Klijentski TCP šalje FIN segment i prelazi u stanje FIN-WAIT-1. klijent primi novi FIN. Stanje TIME-WAIT i čekanje 2MSL uvedeni su da bi se prevazišla izuzetna situacija koja nastaje ako se poslednji ACK kojeg klijet šalje izgubi u prenosu. klijent šalje novi ACK i vraća tajmer na početak. uništen je i enkapsulirani TCP segment. Nakon što primi ACK za poslati FIN segment.) Tipično vrednost za MSL je između 30 s i 1 min. TCP prelazi u sanje FIN-WAIT-2 i ostaje u ovom stanju sve dok ne primi FIN segment od servera. Sl. 72 . Kada primi FIN segment. čekati dovoljno dugo da ACK bude izgubljen (jedno MSL) i da ponovljeni FIN stigne do njega (drugo MSL). Nakon prijema segmenta SYN+ACK. Kada klijentski proces nema više podataka za slanje.zahtev. on svom TCP-ju izdaje komandu za aktivno zatvaranje konekcije. Vreme MSL je maksimalno vreme koje segment može da provede u Internetu pre nego što bude uništen. Ako u toku stanja TIME-WAIT. klijent šalje ACK segment. prelazi u stanje TIME-WAIT i startuje tajmer podešen na dvostruko maksimalno vreme života segmenta (MSL . Drugim rečima. pre konačnog napuštanja konekcije. serverski TCP koji je poslao poslednji FIN i čeka na ACK koji ne dolazi. (Podsetimo se da se TCP segment enkapsulira u IP datagram čije je vreme života ograničeno . zaključuje da je FIN izgubljen i ponovo ga šalje. U takvoj situaciji. TCP šalje SYN segment na specificiranu adresu soketa i prelazi u stanje SYN-SENT. 3-17 Uspostavljanje i zatvaranje konekcije. TCP šalje ACK segment i prelazi u stanje ESTABLISHED. Uvođenjem tajmera podešenog na vreme 2MSL obezbeđuje da će klijent. Ako klijent pre isteka vremena 2MSL pređe u stanje CLOSE i zatvori konekciju može se desiti da ponovljeni FIN ne stigne do njega što znači da serverski TCP nikada neće dobiti završni ACK. Kada ruter uništi datagram zbog isteklog vremena života.TTL.

serverski proces izdaje svom TCP-ju komandu za pasivno otvaranje. a onda prelazi u stanje CLOSED. Kada primi SYN segment. U ovom slučaju. Nakon završene faze prenosa podataka. U scenariju predstavljenom na Sl. Klijentski proces Serverski proces . TCP ostaje u ovom stanju sve dok ne primi poslednji ACK. serverski TCP isporučuje serverskoj aplikaciji zaostale podatke zajedno sa informacijom da konekcija mora biti zatvorena. Serverski TCP prelazi u stanje LISTEN gde ostaje. Kao odgovor na FIN.. Kada se to desi. 73 . serverski TCP šalje FIN segment klijentu.Serverska stanja. Klijent. serverski TCP šalje klijentu ACK segment. Kada serveska aplikacija izda komandu close. TCP prelazi u stanje ESTABLISHED u kome se odbavlja prenos podataka. 3-18. Zatvaranje konekcije korišćenjem trostepenog usaglašavanja Kao što je već napomenuto. serverski TCP šalje SYN+ACK segment i prelazi u stanje SYN-RCVD gde čeka da klijent pošalje ACK segment. gde čeka na poslednji ACK. pasivno čekajući. i prelazi u stanje LAST-ACK. kombinujući tako u isti segment FIN i ACK segmente iz procedure četvorostrukog usaglašavanja. FIN Pasivno zatvaranje 2MSL tajmer FIN + ACK Isteklo vreme A CK Klijentska stanja Serverska stanja Sl. od klijenta ka serveru. kako bi mu saopštio svoju nameru da i on želi da zatvori konekciju. Ostatak procedre je isti kao kod četvorostepenog usaglašavanja. Po prijemu FIN segmenta. Scenario zatvaranja korišćenjem trostepenog usaglašavanja ilustrovan je na Sl. Serverski TCP ostaje u ovom stanju sve dok serverska aplikacija ne zatraži zatvaranje konekcije izdavanjem odgovarajuće komande (close). Klijentski TCP šalje FIN segment i prelazi u stanje FIN-WAIT-1. kao odgovor šalje FIN+ACK segment. trostepeno usaglašavanje je uobičajeni način zatvaranja TCP konekcije. Nakon prijema ACK segmenta. preskače FIN-WAIT-2 stanje i direktno prelazi u stanje TIME-WAIT. strana koja primi FIN segment. To znači da serverski TCP može i dalje da šalje podatke klijentu i od njega prima potvrde... Razmatrani scenario podrazumeva polu-zatvaranje konekcije.. isporučuje serverskoj aplikaciji preostale podatke iz prijemnog bafera i prelazi u stanje CLOSE-WAIT. podaci se više ne mogu prenositi u suprotnom smeru. Procedura zatvaranja konekcije koja je počela prvim FIN segmentom se naziva četvorostepenim usaglašavanjem (four-way handshake). TCP šalje FIN+ACK segment klijentu i prelazi u stanje LAST-ACK. . klijent izdaje komandu close. serverski TCP prelazi u stanje CLOSE-WAIT i odlaže slanje ACK segmenta na primljeni klijentov FIN sve dok od svoje aplikacije na dobije zahtev za pasivnim zatvaranjem. Nakon toga. 3-17. Međutim. Serverski TCP ostaje u stanju ESTABLISHED sve dok od klijentskog TCP-ja ne primi FIN segment što znači da klijentsi proces nema više podataka za slenje i želi da zatvori konekciju ka serveru. 3-18 Zatvaranje konekcije korišćenjem trostepenog usaglašavanja. To se mora desiti pre nego što klijent izda komandu za aktivno otvaranje. se dok ne primi SYN segment.

Na Sl. LISTEN SYN-RCVD LISTEN CLOSED Pasivno otvaranje 74 . Međutim.Odbijanje konekcije Često se dešava da TCP odbije konekciju zato što odredišni port iz primljenog SYN segmenta definiše serversku aplikaciju koja trenutno nije u stanju LISTEN. čekajući na potvrde.3. U tom slučaju. 3-20 Prekidanje konekcije 3. a onda da čeka na potvrdu pre nego što pošalje sledeći bajt. prelazi u stanje CLOSED. Klijentski TCP šalje RST+ACK paket i poništava sve podatke trenutno prisutne u baferu. 3-19. šalje nazad RST+SYN segment koji potvrđuje SYN segment i u isto vreme resetuje (odbija) konekciju. Scenario odbijanja konekcije prikazan je na Sl. ako primi segment koji pripada prethodnoj konekciji. po prijemu RST-ACK segmenta. Nakon toga. protokol transportnog sloja bi mogao da pošalje 1 bajt. Klijentski proces Serverski proces Aktivno otvaranje CLOSED SYN-SENT SYN RST + ACK CLOSED Sl. zato što je naknadno zaključio da su podaci pogrešni).6 Kontrola protoka Kotrola protoka reguliše količinu podataka koju izvor može da pošalje pre nego što od odredišta primi potvrdu prijema poslatih podataka. Prekidanje konekcije Umesto da zatvori. na primer. U ekstremnom slučaju. To se može desiti usled otkaza ili neregularnog rada procesa (npr. Prekid konekcije može da inicira i TCP. 3-19 Odbijanje konekcije. nakon prijema SYN segmenta. Oba TCP-ja trenutno prelaze u stanje CLOSED. Klijent. proces može da prekine konekciju. U svim ovim slučajevima. 3-20 je prikazan scenario kada klijent prekida konekciju. Ako podaci i potvrde prelaze veliko rastojanje. serverski TCP se vraća u stanje LISTEN da čeka na nove zahteve. ovo bi bio ekstremno spor proces. zbog ulaska u beskonačnu petlju) ili ako proces ne želi da podaci koje je upisao u predajni bafer budu poslati (npr. TCP može da pošalje RST kako bi trenutno prekidnuo konekciju. Sl. Serverski TCP takođe poništava podatke u svom baferu i obaveštava serverski proces o prekidu konekcije putem poruke o grešci. izvor će najveći deo vremena biti pasivan. serverski TCP.

polje za ACK broj iz zaglavlja TCP segmenta sadrži redni broj sledećeg bajta kojeg pošiljalac segmenta očekuje da primi. što nepotrebno zauzima kapacitet mreže i usporava komunikaciju. izvor neći imati povratnu informaciju sve dok odredište ne detektuje problem i obavesti ga o tome. na primer. Veličina prozora se reguliše tzv. dupliciranih i segmenata primljenih izvan redosleda. Konkretno. potrvrđivanje i retransmisija. Protokol kliznog prozora Suština protokola kliznog prozora je da predajnik vodi računa o preostalom prostoru u baferu prijemnika i šalje samo onoliko bajtova koliko prijemnik može trenutno da prihvati. Kod TCP-ja se koristi princip akumulativnog potvrđivanja. pogrešni segmenti se tretiraju na isti način kao izgubljeni segmenti (tj. window) u okviru predajnog bafera koji definiše koje od svih podataka trenutno prisutnih u predajnom baferu TCP sme da pošalje. krajnji pointeri se pomeraju za pet pozicija udesno. Za isti iznos se pomera i krajnji desni pointer. prozor (eng. pomera se samo desni pointer. Takođe. ustanovi da sadrži grešku. TCP uvodi tzv. 3. odnosno redni broj prvog od bajtova koje je poslao. protokolom kliznog prozora (eng. Na primer. ako se pojedini segmenti izgude. Detekcija i korekcija grešaka kod TCP-ja se postiže pomoću tri jednostavna principa: kontrolna suma. Kontrola grešaka uključuje mehanizme za detekciju segmenata sa greškom. Kao što znamo. putem povratnih segmenata ima obavezu da obaveštava predajnu stranu o veličini preostalog prostora u svom baferu. Ako prijemnik promeni veličinu prozora. što daje mogućnost za prenos ne više samo 3 već 8 bajtova. Osim toga. a pri tome veličina prozora nije promenjena. Predajnik pretpostavlja da su bajtovi između krajnjeg levog i srednjeg pointera još uvek u baferu prijemnika i zato će u sledećem segmentu poslati samo bajtove između srednjeg i krajnjeg desnog pointera. ako u situaciji sa Sl. Međutim. izgubljenih segmenata. proverom kontrolne sume. a za koje još uvek čeka potvrdu. Sl. kao da nisu ni primljeni). Potvrđivanje TCP koristi potvrđivanja (acknowledgments) da bi potvrdio prijem segmenta podataka. 3-21 stigne potvrda za pet bajtova. kontrola grešaka uključuje i mehanizme za korekciju grešaka nakon što su one detektovane. Levi pointer se pomera udesno sa svakom primljenom potvrdom. sliding window protocol). sa druge strane. 3-21. TCP postiže pouzdanost korišćenem kontrole grešaka. Ovako bi proces prenosa bio začajno ubrzan. Za ovu namenu koristi se polje Window Size (vličina prozora) iz zaglavlja TCP paketa. Pointer u sredini sadrži redni broj poslednje poslatog. Prijemnik. Srednji pointer se pomera udesno nakon slanja segmenta za iznos poslatih bajtova. može se desiti da prijemnik bude pretrpan podacima koje ne može tako brzo da prihvati i obradi. dupliciraju ili stignu na odredište izvan redosleda ili sa greškom. primljeni segment sa ACK brojem 75 . u vidu niza uzastopnih segmenata maksimalne dužine bez čekanja na potvrde za pojedinačne segmente. predajnik koristi tri pointera koji sadrže tri karakteristična redna broja iz toka bajtova koji šalje. a količina podataka koji se moraju ponovo poslati može biti velika.3. 3-21 Klizni prozor. Krajnji levi pointer sadrži redni broj za jedan veći od poslednje potvrđenog bajta.Drugi ekstremni slučaj bio bi onaj kada protokol transportnog sloja šalje sve podatke koje ima. dok levi i srednji ostaju na istim pozicijama. Prijemnik odbacuje svaki segment za koji. a nepotvrđenog bajta. Naime. Drugim rečima. Princip je ilustrovan na Sl. Krajni desni pointer je za vrednost veličine prozora predajnika veći od krajnjeg levog pointera. TCP isporučuje tok aplikacionih podataka sa jednog na drugi kraj konekcije bez grešaka i bez delova koji su izgubljeni ili duplicirani. TCP nudi rešenje koje može ˝pomirit˝ dva pomenuta ekstremna slučaja.7 Kontrola grešaka TCP je pouzdani transportni protokol. Kontrolna suma Svaki TCP segment sadrži polje za kontrolnu sumu koje se koristi za proveru ispravnosti segmenta. Prevazilaženje pomenutih problema može zahtevati ponavljanje prenosa.

Na ovaj način smanjuje se broj segmenata potrebnih za potvrđivanje. bez obzira na RTO vreme koje još uvek nije isteklo. sprečava se nepotrebna retransmisija segmenata zbog kašnjenja potvrde. nije efikasno.postavljenim na vrednost x. 5. zbog ograničenog prostora u svom baferu. TCP tumači kao potvrdu uspešnog prijema svih bajtova sa radim brojevima manjim od x. Ovo pravilo sprečava generisanje dodatnog saobraćaja radi slanja velikog broja ACK segmenata. već da potvrdu za primljene podatke uvršćuje u segmente kojima svoje podatke šalje drugoj strani. šalje ACK segment kojim predajnika obaveštava o sledećem očekivanom rednom broju. Međutim. a sve prethodno primljene segmente je već potvrdio. (Da bi vratio nazad 32-bitni ACK broj. RTT je vreme potrebno da segment stigne do prijemnika plus vreme potrebno da se potvrda vrati nazad do predajnika. Drugim rečima. 4. sa redni brojem većim od očekivanog (što ukazuje da je segment sa očekivanim rednim brojem izgubljen u prenosu). prijemnik odmah šalje ACK segment. Retransmisiji su podložni segmenti koji troše redne brojeve (segmenti podataka i pojedini kontrolni segmenti. oni koji zahtevaju potvrđivanje). Međutim. kašnjenja ACK-a ili gubitka ACK-a u prenosu. Segment se ponovo šalje u dva slučaja: vreme retransmisionog tajmera je isteklo i prijemnik je primio tri duplicirana ACK segmenta. 2. Neka od njih biće navedena u nastavku. bez čekanja. čak iako izostanak prijema ACK-a može biti posledica povećanog kašnjenja segmenta. Na ovaj način. retransmituje segmen nakon što primi tri duplikata ACK segmenta u kojima se kao ACK broj pojavljuje njegov SEQ broj. shodno kome predajnik. prijemnik šalje celokupno zaglavlje od 40 bajtova). RTO vreme) istekne. Svaki segment koji je primljen sa greškom. Na ovaj način se inicira brza retransmislija segmenta koji nedostaje. na strani prijemnika ne bi trebalo da postoji više od jednog nepotvrđenog segmenta. Retransmisija nakon tri duplicirana ACK segmenta Prethodno pravilo za retransmisiju je dovoljno ako RTO vreme nije podešeno na previše malu vrednost.RTT). videćemo da se RTO vrednost dinamički podešava na osnovu procene vremena prenosa segmenta od predajnika do prijemnika i nazad (round trip time . Međutim. prijemnik. Kada prijemnik primi očekivani segment (sa očekivanim rednim . prijemnik odlaže slanje ACK segmenta sve do prijema sledećeg segmenta podataka ili do isteka unapred zadatog vremenskog perioda (tipično 500 ms). Kada prijemnik primi segment izvan redosleda. prijemnik odmah šalje ACK segment sa ACK brojem sledećeg očekivanog segmenta. bez čekanja. 3. Drugim rečima. Retransmisija Retransmisija (ponovno slanje) segmenata leži u osnovi kontrole grešaka. Generisanje potvrde Postavlja se pitanje kada prijemnik treba da generiše (šalje) potvrde. tj. Ova osobina se naziva brzom retransmisijom. gde bi prijemnik eksplicitno potvrđivao svaki uspešno primljeni segment podataka. koristila su se različita pravila koja određuju pod kojim uslovima prijemnik šalje potvrdu. Retransmisija nakon isteka RTO vremena Kad god pošalje segment. toliko da sve njih prijemnik ne može da prihvati. 6. retransmission time-out (RTO) timer). primenjuje se pravilo ˝tri duplicirana ACK-a˝. odgovarajući segment se smatra izgubljenim ili izmenjenim u prenosu i ponovo se šalje. šalje ACK segment.SEQ brojem) u situaciji kada nema svojih podataka za slanje. tajmer se zaustavlja. TCP startuje retransmisioni tajmer (tzv. Ako primi duplicirani segment. Segmenti koji ne troše redne brojeve. Da bi se ovakva situacija prevazišla. Efikasnije rešenje je da prijemnik ne šalje ACK segmente. 1. prijemnik odlaže slanje ACK segmenta ako postoji samo jedan nepotvrđeni segment. slanjem nazad kontrolnog ACK segmenta. Ako potvrda prijema segmenta stigne pre nego što vreme tajmera (tzv. ako RTO vreme istekne pre nego što stigne potvrda. Nešto kasnije u ovom poglavlju. izgubljen ili dupliciran u prenosu se ponovo šalje. prijemnik. kao što je ACK segment se ne retransmituju. šta ako prijemnik trenutno nema podatke za slanje? Tokom evolucije TCP protokola. Kada prijemnik primi očekivani segment u sitaciju kada prethodno primljeni segment još uvek nije potvrdio. Svaki segment podataka koji jedna strana šalje drugoj sadrži ACK broj postavljen na vrednost rednog broja sledećeg bajta kojeg očekuje da primi. Kada stigne segment koji nedostaje. Trivijalno rešenje. ponekada se može desiti da predajnik pre isteka RTO vremena izgubljenog segmenta pošalje veći broj sledećih segmenta. 76 .

potvrda se ne šalje odmah po prijemu segmenta. Prijemnik na isti način tretira i izgubljene i pokvarene segmente. pravilo 1 se ne može primeniti jer klijent nema više podataka koje bi poslao. oni neće biti isporučeni aplikaciji sve dok se prazan prostor u baferu ne popuni bajtovim koji nedostaju (701 do 800). Za klijentov prvi segment i sva tri serverska segmenta primenjuje se pravilo 1. odnosi se na dvosmerni prenos podataka između dva sistema. Prijemom ovog segmenta stvaraju se uslovi za primenu pravila 3 (dva nepotvrđena segmenta) tako da klijent odmah generiše i šalje ACK segment. Kod prvobitnih implementacija TCP protokola. segmenti primljeni izvan redosleda su odbacivani. Međutim. 3-22 Normalni rad. U svakom slučaju. 3-22. 77 . segmenti koji slede biće primljeni izvan redosleda.Segmenti primljeni izvan redosleda Kada neki segment zakasni. sve dok ne stigne segment koji nedostaje. Izgubljeni segment Ovaj scenario pokazuje šta se dešava ako je segment izgubljen ili primljen sa greškom. Klijentski TCP šalje jedan segment. U prikazanom scenariju. 3-22 je naglašeno koje pravilo za generisanje potvrde se primenjuje pri svakom potvrđivanju. Predjanik šalje segmente 1 i 2 koji se potvrđuju jednim ACK segmentom (pravilo 3). bude izgubljen ili odbačen zbog greške. Prijemnik smešta podatke iz ovog segmenta u prijemni bafer. tako da je krajnji efekat isti. (Izgubljeni segment je uništen negde u mreži. Prijemnik bez čekanja šalje ACK predajniku sa ACK brojem sledećeg očekivanog bajta (pravilo 4). već se privremeno čuvaju. pre isteka 500 ms. već sa kašnjenjem od 500 ms (kako bi se sačekalo na eventualni novi segment podataka). segmenti primljeni izvan redosleda se ne isporučuju aplikacionom programu . Naglasimo da iako prijemnik smešta u bafer bajtove 801 do 900. zagušenja. Kod većine savremenih implementacija. segment 3 je izgubljen. ilustrovan na Sl. Kada primi sledeći segment podataka (drugi serverov segment). na primer. Međutim. U situaciji kada klijent primi prvi segment podataka od servera. tako da prijemnik prima segment 4 izvan redosleda.TCP garantuje isporuku podataka u redosledu u kojem su poslati. ali tako da ostavlja prazan prostor za bajtove koji nedostaju. već i svih sledećih. Na Sl. klijent započinje odmeravanje vremena kašnjenja potvrde. Zato klijent podvrđuje ovaj segment eksplicitno. pretpostavlja se da je prenos jednosmeran: jedna strana šalje. Scenariji Normalni rad Prvi scenario.) Na Sl. segment primljen sa greškom uništava sam prijemnik. klijent dobija novi segment (treći serverov segment). slanjem ACK segmenta. shodno pravilu 2. u međuvremenu uspešno primljenih. tj. Sl. 3-23 je prikazana situacije kada je segment izgubljen. Svaki segment podataka sadrži ACK broj sledećeg bajta čiji prijem se očekuje. što je kao posledicu imalo retransmisiju ne samo izgubljenog segmenta. uništen od strane nekog rutera u mreži zbog. a serverski tri. segmenti primljeni izvan redosleda se ne odbaciju. segmenta. Međutim. a druga prima podatke.

Iako predajnik koristi poseban RTO tajmer za svaki poslati segment. Ovog puta segment uspešno stiže do prijemnika. Sl. segmenta 3. smešta ih u bafer i za svaki od njih (pridržavajući se pravila 4) ˝uporno˝ šalje potvrde za poslednji segment primljen u redosledu (ACK: 301). bez čekanja. na Sl. 3-24). tj. Predajnik nije svestan da je segment 3 izgubljen i nastavlja da šalje sledeće segmente. peti i šesti segment. ponavlja slanje segmenta 3. prijemnik očekuje. tj. zadato vreme RTO tajmera ističe i predajni TCP ponovo šalje segment 3.Predajnik Prijemnik Seq: 501 – 60 0 Ack: x Seq: 601 – 70 0 Ack: x Seq: 701 – 80 0 Ack: x Seq: 801 – 90 0 Ack: x Izgubljen Pravilo 4 Prijemni bafer RTO Šupljina Seq: 801 – 90 0 Ack: x retransmisija Segment primljen izvan redosleda Pravilo 5 Vreme Vreme Sl. 78 . 3-23 je prikazan samo RTO tajmer izgubljenog segmenta. Iako RTO vreme za segment 3 još uvek nije isteklo. 3-23 Izgubljeni segment. predajnik. 3-24 Brza retransmisija. u trenutku kada primi četvrtu potvrdu sa istim ACK brojem (tri duplikata). Scenario je sličan prethodnom sa razlikom da je u ovom slučaju RTO tajmer podešen na značajno duže vreme (Sl. Brza retransmisija Ovaj scenario ilustruje ideju brze retransmisije. shodno ACK broju. Prijemnik prima četvrti. i prijemnik ga potvrđuje bez čekanja (pravilo 5). Pošto prijemnik ne šalje potvredu za izgubljeni segment. segmenta kojeg.

tako da sledeći ACK. Na Sl. koliko treba da bude vreme RTO (Retransmission time-out) na koje se podešava retransmisioni tajmer. Odredišni TCP očekuje kontinualni tok bajtova. datagrami mogu stići do konačnog odredišta različitim putanjama i sa različitim kašnjenjima. Pošto potvrda ne stiže. Ako potvrda segmenta stigne pre nego što vreme tajmera istekne. iako dva segmenta nisu potvrđena. Retransmisioni tajmer Kao što je već napomenuto. Mogu nastati dve situacije: 1. bez čekanja. predajnik retransmituje segment. tj. korekcija se inicira RTO tajmerom na strani koja očekuje prijem ACK segmenta (efekat je isti kao da je izgubljen segment podataka). a kao što znamo. Međutim. ponovo šalje ACK (pravilo 6). koji je uspešno primljen. a tajmer resetuje. Predajnik Prijemnik RTO Seq: 501 – 60 0 Ack: x Isteklo vreme Seq: 601 – 70 0 Ack: x Ack: 701 Izgubljen Seq: 501 – 600 Ack: x retransmisija Ack: 701 Pravilo 6 Vreme Vreme (a) (b) Sl. TCP koristi princip akumulativnog potvrđivanja. TCP segmenti se enkapsuliraju IP datagrame. Zakasneli segment su najčešći uzrok pojave dupliciranih segmenata: segment kasni više nego što je uobičajeno. S toga pojedini TCP segmenti mogu zakasniti više od drugih. Posle izvesnog vremena prijemnik dobija oba segmenta. sa rednim brojem manjim od ACK broja sadržanog u ACK segmentu. Prijemnik odbacuje duplikat. sledeći ACK segment ne mora da postoji (izgubljeni ACK je ujedno i poslednji ACK) ili može stići dosta kasnije. Prijemnik tretira zakasnele segmente na isti način kao i izgubljene ili segmente primljene sa greškom. izgubljeni ACK segment. Izgubljeni ACK Prvi od dva scenarija koji se odnose na gubitak ACK segmenta opisuje situaciju kada se izgubljeni ACK automatski zamenjuje sledećim ACK-om. 3-25(b) prikazuje ovaj scenario. Retransmitovani segment se pojavljuje na strani prijemnika kao duplicirani segment. smatra se dupliciranim i odbacuje se. Ako vreme tajmera istekne. U takvoj situaciji. Duplicirani segment TCP lako prepoznaje i odbacuje duplicirane segmente. Sl. segment se retransmituje. TCP koristi usluge IP-a. Možemo reći da sledeći ACK segment automatski koriguje prethodni. zakasneli i retransmitovani. predajnik ne dobija potvrdu i ponovo šalje isti segment. a da pri tome potvrda za poslati segment još uvek nije stigla. uključujući i one koji su zbog gubitka prvog ACK segmenta ostali privremeno nepotvrđeni. Uvek kada pošalje segment. 2. 3-25 Izgubljena potvrda: (a) automatska zamena. Uočimo da je retransmitovan samo jedan segment. tajmer se uništava. Primljeni segment sa redinim brojem manjim od rednog broja poslednje primljenog i potvrđenog bajta iz toka. potvrđuje sve prethodne bajtove. ali zato. 79 . TCP kreira retransmisioni tajmer za taj konkretni segment. uloga retransmisionog tajmera je merenje vremena čekanja na potvrdu segmanta. 3-25(a) je prikazan gubitak ACK segmenta poslatog od strane prijemnika nakon uspešnog prijema podataka. Postavlja se pitanje: koliko dugo treba čekati na potvrdu. (b) ponovno slanje segmenta. Odredišni TCP (predajnik) ne mora ni da primeti gubitak ACK segmenta.Zakasneli segmenti Četvri scenario se odnosi na zakasnele segmente.

problem određivanja optimalnog vremena čekanja je daleko teži na transportnom nego na nivou veze. Izmereno RTT. Merenje RTT-a se komplikuje činjenicom da između segmenta i potvrde ne postoji relacija 1-1: jedan segment potvrde (ACK) može da potvrdi više semenata podataka. Tipično se usvaja α=7/8. ako je RTO vreme isuviše kratko (T1 na Sl. TCP neprekidno meri i ažurira RTT M. 3-26 (b). ova promena neće biti nagla. Pod ovakvim uslovima retransmisioni tajmer može biti postavljen na vreme koje je tek nešto duže od očekivanog vremena kašnjenja (označeno vertikalnom isprekidanom linijom na Sl. Međutim. a kolika novoizmerenom RTTM. izračunava se i devijacija RTT-a. Sa druge strane. 3-26 (a) raspodela verovatnoće očekivanog vremena odziva na: (a) nivou veze. RTT devijacija. Svrha tajmera je da se detektuju situacije kada je segment izgubljen u prenosu. Izbor RTO vremena zasnovan je na procena trenutnog vremena odziva. Šta više. Na nivou veze (npr. U toku trajanja konekcije. zbog α. β=1/4. Konačno. koji zahteva postepeno objašnjenje. RTTS će biti smanjeno i obrnuto. 3-26(b) se može menjati. Međutim. koje se izračunava na sledeći način: Početno Posle prvog merenja Posle svakog sledećeg merenja => => => nema vrednost RTTS = RTTM RTTS = (1-α)RTTS + α RTTM Parametar α određuje kolika težina se daje staroj vrednosti RTTS.Potvrda prijema se često koristi i na nivou veze. Kod većina realizacija. jer potvrda nema ne zato što su segmenti izgubljeni nego zato što prenos potvrde traje duže nego obično. u oznaci RTT D. Kod većina realizacija koristi se sledeća formula: 80 . Međutim. 3-26(b)). Na savremenom Internetu fluktuacije ovog vremena su toliko velike da se ono ne može koristiti za podešavanje retransmisionog tajmera. vrednost RTO se izračunava na osnovu uravnoteženog RTT i njegove devijacije. Uravnoteženo RTT. pored RTT S. a tipična funkcija raspodele očekivanog vremena odziva je oblika kao na Sl. (b) na transportnom nivou. sa relativno malim odstupanjima. Vreme odziva Vreme odziva (a) (b) Sl. prenos će biti privremeno obustavljen. Kašnjenje u prenosu između dve tačke na Internetu podložno je daleko većim varijacijama. u LAN mreži tipa Ethernet) vreme kašnjenja potvrde se može lako predvideti (ne varira puno). izračunavanje RTT vremena je složen proces. već postepena. u dužim vremenskim intervalima karakteristika sa Sl. 3-26(b)). u oznaci RTT S. sve dok ne istekne predviđeno vreme čekanja. se menja od merenja do merenja. Izmereno RTT. kao posledica promenjenih uslova u mreži. Većina realizacija TCP protokola koristi uravnoteženo RTT. Međutim. RTO vreme. Vidi se da je u najvećem broju slučajeva vreme odziva 20 ms.RTTM| Tipično se usvaja. Izmereno RTT vreme (u oznaci RTTM) segmenta je vreme od trenutka slanja segmenta do trenutka prijema potvrde za poslati segment. RTT M. RTT vremena (Round-Trip Time). može se desiti da predajnik bespotrebno retransmituje segmente. na sledeći način: Početno Posle prvog merenja Posle svakog sledećeg merenja => => => nema vrednost RTTD = RTTM/2 RTTD = (1-β)RTTD + β |RTTS . Ako je RTTM manje od trenutnog RTTS. Međutim. 3-26(a). tzv. ako je RTO vreme previše dugo (T2 na Sl. 3-26(a)). To znači da kada merenje RTT vremena jednom započne ono se mora okončati pre nego što se započne sledeće. TCP radi u radikalno drugačijem okruženju. u situacijama kada zaista segment zaista bude izgubljen. Kod TCP-ja uvek je u toku najviše jedno aktivno merenje RTT vremena. Tipična karakteristika vremena odziva na novu veze prikazana je na Sl.

5 + 1/8 * 2. 3-1: Razmotrimo jedan hipotetički primer. 2. Eksponencijalni backoff Postavlja se pitanje: koju vrednost za RTO izabrati nakon retransmisije segmenta ? Kod većine realizacija TCP protokola koristi se strategija eksponencijalnog backoff-a.74 Karnov algoritam Pretpostavimo da u toku retransmisionog perioda segment nije potvrđen i da je zbog toga retransmitovan.625 + 4*0. 2-24. u obzir se uzima samo RTTM za segmente koji nisu retransmitovani. izmereno je RTTM = 1.5 RTTD = 1. 3-27 je prikazan deo jedne konekcije (uspostavljanje konekcije i deo faze prenosa podataka). Nakon prve retransije segmenta.75 RTO = 1. 81 .5 RTTS = 1. Predajnik Prijemnik RTTM = RTTD = RTTS = RTO = 6.75 = 4. RTT vreme se ne meri ni za drugi segment podataka.625 RTTD = 0. trenutak njegovog dolaska označava kraj RTTM vremena prvog segmenta podataka. Merenje nove RTT vrednosti počinje u trenutku slanja prvog segmenta podataka. ostaje dilema da li je to potvrda za prvobitni ili za retransmitovan segment (jer. Drugim rečima.1500 Podaci Seq: 1501 Ac k: 4001 Podaci: 1501 .5| = 0.75 RTO = 4. RTTS i RTTD.50 RTTS = 1. posle druge uzastopne retransmisije 4*RTO i td.1600 ACK k: 1601 Seq: 4000 Ac RTTM = 1.00 s.5/2 = 0.50 RTTD = 0. Uočimo da predajnik ne započinje merenje RTT vremena kada šalje ACK segment.625 . može se desiti da prvobitni segment nije izgubljen u prenosu. zato što ACK segment ne troši redne brojeve i nema definisan time-out. RTO postaje 2*RTO.5 + 1/4 * |1. Ažurirane vrednosti promenljivih su: RTTM = 2.625 RTTD = 3/4 * 7.78 RTO = 1.5 3.78 = 4. Iz tog razloga RTT se ne meri za retransmitovane segmente. Iako poslednji ACK segment potvrđuje oba poslata segmenta podatka (akumulativno potvrđivanje).78 RTO = 4. 1. zato što je jedno RTT merenje već u toku.5 = 1.5 + 4*0.50 s SYN Seq: 1400 Ack : SYN + ACK k: 1401 Seq: 4000 Ac ACK Seq: 1400 Ac k: 4001 Podaci Seq: 1401 Ac k: 4001 Podaci: 1401 . Ažurirane vrednosti relevantnih promenljivih su: RTTM = 1.50 2. Na Sl. već je samo zakasno).5 RTTS = 1.5 s. 3-27 Primer Pr.00 1.50 s RTTM = 2.5 RTTS = 7/8 * 1. Merenje RTT-a se završava prijemom poslednjeg ACK segmenta. U trenutku prijema SYN+ACK segmenta.74 Vreme Vreme Sl. RTO vrednost se duplira sa svakom uzastopnom retransmisijom. a RTO je postavljeno na početnu vrednost 6. U trenutku slanja SYN segmenta ne postoje vrednosti za RTTM.Početno Posle svakog merenja => => Početna vrednost RTO = RTTS + 4 RTTD Pr.2. Kada predajni TCP konačno primi potvrdu.

8 Kontrola zagušenja Zagušenje u mreži nastaje kada opterećenje mreže (broj paketa poslatih u mrežu) postane veće od kapaciteta mreže (broj paketa koje mreža može da prihvati). Segment se retransmituje. intuitivno objašnjenje ˝beskonačnog˝ kašnjenje. Vreme čekanja je promenljivo i raste sa dužinom redova čekanja. Sl. Zagušenje je posledica postojanja redova čekanja u ruterima (tj.74 s. Minimalno kašnjenje čine dve konstantne komponente: propagaciono kašnjenje signala na prenosnim linijama i kašnjenje usled obrade paketa u ruterima. kada se opterećenje približi kapacitetu mreže. višak paketa koji se ubacuje u mrežu gomila se u redovima čekanja. Kada je opterećenje mnogo manje od kapaciteta mreže. 3-2: Sl. ulazni redovi čekanja se pune i postaju sve duži i duži. Vreme RTO tajmera ističe nakon 4. 3-2 Prvi segment sa Sl. tj. Cilj kontrole zagušenja je održavanje opterećenja mreže ispod kapaciteta mreže.74 = 9. Sa druge strane.48). Kašnjenje vs. regulacija broja paketa u mreži ispod nivoa pri kome performanse mreže počinju naglo da padaju. kašnjenje naglo raste zato što sada ukupnom kašnjenju treba dodati i treću komponentu: vreme čekanja u redovima čekanja (u svim ruterima na putanji paketa). Obzirom da broj paketa koje mreža može da isporuči ne može biti veći od njenog kapaciteta. ruter poseduje par redova čekanja. Uočimo da RTT nije mereno za retransmitovan segment (Karnov algoritam). 3-28 je posalat i izgubljen. kašnjenje paketa je minimalno. 3-1 i ilustruje primenu Karnovog algoritma i uticaj retransmisije na RTO vreme. Ovog puta. za svaki mrežni interfejs. 3. Za opterećenje veće od kapaciteta mreže. a time i vreme čekanja paketa u redovima čekanja. Vremenom dužina redova čekanja neograničeno raste. 82 .Pr. 3-28 je nastavak Pr. U suštini.3. ako je brzina pristizanja paketa veća od brzine obrade paketa. Postoji jednostavno. 3-29(a) je prikazana zavisnost kašćenja paketa od opterećenja mreže. Oba ova kašnjenja su gotovo zanemarljiva. Međutim. bafera u kojima se čuvaju paketi pre nego što stignu na red za obradu). to će i redovi čekanja biti duži. ACK se prima pre isteka vremena čekanja. Sa jedne strane. kašnjenje je beskonačno. Što je opterećenje veće. a time i prosečno kašnjenje paketa veće. 3-28 Primer Pr. a tajmer se podešava na dvostruku prethodnu RTO vrednost (2*4. ulazni i izlazni. pune se izlazni redovi čekanja. Opterećenje Na Sl. Performanse mreže Dve osnovne mere koje karakterišu performanse mreže i nivo zagušenja u mreži su: kašnjenje i propusnost. Na primer. Internet se može posmatrati kao ogromna mreža redova čekanja. ako je brzina kojom se paketi isporučuju sledećim ruterima manja od brzine obrade paketa. Pretpostavimo da svi ruteri u mreži poseduju bafere beskonačne dužine i da opterećenje prevazilazi kapacitet mreže.

Konačno. Uošteno govoreći. To znači da izvori osim novih u mrežu šalju i retransmitovane uništene pakete. mehanizmi za kontrolu 83 . idealni slučaj podrazumeva bafere beskonačne dužine kao i nepostojanje bilo kakvog trošenja kapaciteta mreže na neke druge aktivnosti (kao što je kontrola zagušenja) osim prenosa podataka. oslobađa viška paketa koji njegov kapacitet ne može da podnese. sa jedne strane. Mehanizmi za kontrolu zagušenja Kontrola zagušenja je pojam koji se odnosi na tehnike i mehanizme koji se koriste za sprečavanje zagušenja. 3-29(b) je prikazana propusnost u funkciji opterećenja mreže. Dok se sistem. a koji služe za distribuciju informacija o nivou zagušenja rutera i pojedinih delova mreže. Napomenimo još jedanput. korisnici sistema uporno ubacuju u sistem i nove i stare pakete. Kao posledica toga. dok neki rade u uslovima umerenog opterećenja. Tako. zato što svi paketi koje izvori šalju u mrežu stižu do svojih odredišta. ili za eliminaciju zagušenja. redovi čekanja u ruterima nastavljaju da rastu. iako konačne dužine. tj. Pod ovakvim uslovima. mreža ne može da prenese veći broj od svog kapaciteta. da se u idelnom slučaju. Odstupanje propusnosti od idalne. jer retransmisija paketa dodatno povećava opterećenje mreže i sve veći broj bafera postaje pun. za opterećenja manja od kapaciteta mreže. propusnost je jednaka opterećenju.(a) (1) B A Opterećenje (2) Nema zagušenja Opterećenje Kapacitet (b) Sl. a pri daljem povećanju opterećenja. sa porastom opterećenja. dolazimo do tačke (tačka B na krivoj (2)) posle koje. popusnost je konstantna i jednaka kapacitetu mreže. zaključuje da je paket izgubljen). Propusnost vs. što povećava prosečno angažovanje resursa mreže (bafera) na prenosu jednog paketa. pošto nikako ne dobija potvrdu. Kriva (1) prikazuje idealnu. a kriva (2) realnu zavisnost. propusnost mreže postepeno pada na nulu. mreža i dalje uspeva da se ˝izbori˝ sa povećanim opterećenjem (mada na račun povećanog kašnjenja paketa). To dodatno pogoršava situaciju. mreža će pokušavati da uravnoteži opterećenje preusmeravajući saobraćaj iz preopterećenih u manje opterećene oblasti. Sa porastom opterećenja dolazi se do tačke (tačka A na krivoj (2)) posle koje propusnost mreže i dalje raste ali sporije od porasta opterećenja . U idealnim uslovima. paketi se prenose dužim putanjama od optimalnih.kažemo da je mreža u stanju umerenog zagušenja. sa porastom opterećenja. neki drugi mogu biti preopterećeni i biti u situaciji da zbog nedostatka baferskog prostora uništavaju pojedine pakete. U ovom regionu. Sa daljim povećanjem opterećenja mreže. ruter nema drugu soluciju nego da uništava novopridošle pakete. pre nego što se ono desi. vremenom. čak i pri opterećenju većem od kapaciteta. propusnost umesto da raste počinje da opada. Čak i uspešno isporučeni paketi mogu biti retransmitovani. Pri niskom opterećenju. povećava se i broj paketa koji se razmenjuju između samih rutera. a time i prosečno kašnjenje paketa. broj paketa u redovima čekanja neograničeno raste. prenose se kroz veći broj rutera. zato što bez obzira na broj poslatih paketa. Međutim. 3-29 Zavisnost kašnjenja i propusnosti od opterećenja mreže. propusnost prati idalnu karakteristiku (baferi u riterima. Za opterećenja veća od kapaciteta mreže. Opterećenje Propusnos mreže jednaka je broju paketa prenetih kroz mrežu u jedinici vremena. Međutim. zbog velikog kašnjenja potvrde (izvor. nakon što se desi. Kada se bafer u ruteru napuni. već se gomilaju u baferima koji su dovoljno veliki da pihvate svaki novi paket. paketi ne gube. Na Sl. posledica je brojnih uzroka. Razmotrimo sada šta se dešava u mreži sa baferima konačne dužine. Takođe. u kojoj nije implementiran bilo kakav mehanizam kontrolu zagušenja (kriva (2)). Uz to. Malo je verovatno da će saobraćaj biti ravnomerno raspodeljen u mreži i da će svi ruteri biti jednako opterećeni. Razlog je u konačnoj dužini bafera u ruterima. dovoljno su veliki da prihavate sve poslate pakete).

Ruter kojem je zahtev upućen vremenom će i sam postati zagušen (zato što se sporije oslobađa primljenih paketa) i uputiće identičan zahtev sebi prethodnom ruteru. U prvoj fazi. a stvarna veličina prozora je jednaka minimalnoj od ove dve. Dakle. Eksponencijalni backoff mehanizam koji udvostručava vreme čekanja potvrde (RTO vreme) pri svakoj sledećoj retransmisiji segmenta je dobar primer mehnizma koji povoljno utiče na sprečavanje zagušenja. zagušenje će početi postepeno da se otklanja. informacija o nastalom zagušenju se rekurzivno prenosi unazad sve do primarnih izvora od kojih se zahteva da smanje opterećenje mreže. izbegavanje zagušenja i detektcija zagušenja. a ne samo odredište. Ponavljanje retransmisije istog segmenta je simptom zagušenja. Strategija koju TCP primenjuje za prevazilaženje zagušenaj podrazumeva tri faze: spori start. sekcija 0). Ruter izložen zagušenju. min(rwnd. Na primer. ako prijemnik. usporiće predajnika i u isto vreme pomoćiće u prevenciji zagušenja.zagušenja se mogu svrstati u dve široke kategorije: kontrola zagušenja u otvorenoj petlji (sprečavanje zagušenja) i kontrola zagušenja u zatvorenoj petlji (eliminacija zagušenja). za kontrolu zagušenja je zadužen ili izvor ili odredište. Slede kratka objašnjenja nekoliko mehanizama iz ove kategorije. Na ovaj način. može na neki posredan način da detektuje izvesne signale koji upozorenja o mogućem zagušenju u mreži i da nakon toga samnji brzinu slanja paketa. Rečeno je da se veličina prozora predajnika određuje shodno rasploživom slobodnom prostoru u baferu prijemnika (rwnd). Kada je granična brzina prenosa dostignuta. 84 . spori start. Kontrola zagušenja u otvorenoj petlji Motodi za kontrola zagušenja u otvorenoj petlji se primenjuju da bi se sprečila pojava zagušenja. Ruter koji je postao zagušen. Kontolni paket je paket koji se generiše u zagušenom ruteru i šalje nazad izvornom hostu sa zahtevom da redukuje brzinu slanja paketa. Kontrolni (chocke) paket. jer ako mreža ne može da isporuči podatke brzinom kojom ih predajnik generiše. predajnik počinje prenos podataka veoma malom brzinom. čak iako je komunikacija jednosmerna. Implicitna signalizacija. može poslati ekplicitan signal. tako da će informaciju o zagušenju dobiti i izvor. Kontrola zagušenja kod TCP protokola Prozor zagušenja U izlaganju o kontroli protoka opisano je rešenje problema pretrpavanja prijemnika podacima. Drugim rečima. na primer. Nakon redukcije opterećenja (brzine slanja novih paketa). Kada choke paketi prestanu da dolaze. pored prijemnika. Na primer. Politika potvrđivanja koju sprovodi prijemnik može imati uticaja na zagušenje. pri velikom opterećenu mreže. Kontrola zagušenja u zatvorenoj petlji Mezanizmi za kontrolu zagušenja u zatvorenoj petlji pokušavaju da prevaziđu zagušenje nakon što se ono pojavilo. Primer chocke paketa je ICMP poruka za prigušenje izvora (Source Quench paket. Sam izvor. Dobra politka (strategija) retransmisije može da spreči pojavu zagušenja. ona mora na neki način da obavestiti predajnika da treba da uspori. a nekoliko njih će biti opisani u nastavku. potvrde u suprotnom smeru). izvor smanjuje brzinu slanja paketa odredištu na koje se poruka odnosi. povećano kašnjenje u prijemu potvrda (ACK) može biti signal da je mreža zagušena. Kod ovih mehanizama. a zatim naglo povećava brzinu prenosa sve dok ne dostigne zadatu granicu. Kao što je već rečeno. predajnik poseduje dve informacije: veličina prozora koju zahteva prijemnik (rwnd) i veličina prozora zagušenja (cwnd). bez pomoću rutera. Uočimo da kod konekcijonih protokola (kao što je TCP) paketi se prenose u oba smera (podaci u jednom. umesto da potvrđuje svaki ili svaki drugi segment. može zatražiti od prethodnog rutera da redukuje brzinu slanja paketa. cwnd). veličina prozora predajnika ne određuje samo prijemnik već zavisi i od zagušenja u mreži. mreža je drugi entitet koji određuje veličinu prozora predajnika. Potisak (Back Pressure). kao bi pošiljaoca ili primaoca paketa obavestio o pojavi zagušenja. ako se zagušenje detektuje. tj. Politika retransmisija. Odnosno. Politika potvrđivanja. Konačno. Eksplicitna signalizacija. veličinu prozora predajnika diktira prijemnik. postavljanjem nekog posebnog bita u paketima koje prosleđuje. brzina se smanjuje kao bi se izbegno zagušenje. Po prijemu choke paketa. Tom prilikom u potpunosti smo ignorisali uticaj mreže. izvor uspostavlja prvobitni intenzite slanja paketa datom odredištu. pređe u režim potvrđivanja svakog ntog segmenta. retransmisija uništenih paketa doprinosi dodatnoj redukciji propusnosti. Različiti protokoli koriste različite mehanizme iz ove kategorije. a udvostručavanje RTO vremena je pokušaj izvora da u takvim uslovima redukuje broj retransmitovanih paketa koje ubacuje u mrežu. Konkretno.

Drugim rečima. veličinu prozora izražavaćemo brojem segmenata. Mora da postoji granična vrednost na kojoj će se zaustaviti proces uvećanja brzine slanja segmenata. koji 85 . Svaki put kada primi potvrdu za poslate segmente iz prozora. Sl. TCP inicijalizuje cwnd na 1. a ne brojem bajtova). sstresh (slow start treshold). tzv. Princip sporog startovanja ilustrovan je na Sl. fleksibilni mehanizmi za potvrđivanje i retransmisiju su obično dovoljni da definišu tempo rada predajnika usaglašen sa trenutnim uslovima u mreži. na osnovu izostalih potvrda. što znači da sada može da pošalje dva segmenta. Strategija koja bi se mogla primeniti bila bi ta da predajnik započne rad sa realativno velikim ali ne i maksimalnim prozorom. TCP udvostručava veličinu prozora. ekponencijalno povećanje. neophodno je usporiti eksponecijalni rast. Spori start Što je prozor predajnika veći. faza sporog startovanja se završava i počinje sledeća. Spori start ne može da traje u nedogled. Umesto toga. 3-30 Spori start. TCP koristi drugi algoritam. po prijemu potvrde za prvi segment. jer predajnik može da preplavi Internet mnoštvom segmenata pre nego što shvati. ili izbegavanja zagušenje zavisno od načina na koji je zagušenje detektovano. Kada veličina prozora dostigne vrednost sstresh. to će predajnik moći da pošalje veći broj segmenata pre nego što će morati da čeka na njihovu potvrdu. Nakon što ova 4 segmenta budu poslata i potvrđena. kada povratne informacije o vremenu odziva i učestalosti gubitka paketa još uvek nisu dostupne. Kada primi potvrdu za ova dva segmenta. nova veličina prozora biće cwnd=8. TCP postalja cwnd=4. i td. a onda mora da čeka na njegovu potvrdu. tzv.predajnik se vraća u režim sporog starta. pre nego što nastane. (Radi pojednostavljenja. TCP postavlja cwnd=2. problem postoji na samom početku konekcije. Tako. veličina prozora se eksponencijalno povećava. U ustaljenom režimu rada. pre nego što nastavi dalje. Kada je nova konekcija uspostavljena. Vrednost ove granica se čuva u posebnoj promenljivoj. izbegavanje zagušenja. predajnika počinje rad postepeno povećavajući prozor do optimalne veličine. Međutim. Međutim. Izbegavanje zagušenja: linearno povećanje U fazi sporog starta. nadajući se da će tokom trajanja konekcije uspeti da podesi optimalnu veličinu. Da bi se izbeglo zagušenje. ovakav pristup je rizičan. 3-30. predajniku je dozvoljeno da pošalje samo jedan segment. da je intenzitet mrežnog saobraćaja kojeg je generisao ipak isuviše veliki.

ali sada linearno (shodno proceduru izbegavanja kolizije – linearno povećanje). U ovom slučaju reakcija TCP-ja je blaža i uključuje sledeće korake: . nakon prijema potvrde za sve segmente iz prozora. Sl.linearno. .Postavlja veličinu prozora zagušenja na graničnu vrednost (cwnd = sstresh) . 3-32 je ilustrovane rad sve tri faze izbegavanja kolizije kod TCP-ja. Nakon dostizanja granice.Postavlja na 1 veličinu prozora zagušenja (cwnd = 1). (Vreme RTO tajmera je isteklo). U fazi sporog strata. veličina prozora zagušenja mora biti smanjena.Postavlja graničnu veličinu prozora na polovinu trenutne veličine prozora (sstresh = cwnd/2). ali sa značajno manjom verovatnoćom u odnosu na prethodni slučaj. Neki segment može biti uništen. a ne eksponencijalno. Međutim. povećava veličinu prozora. U oba slučaja.Vraća se na fazu izbegavanja zagušenja. i s toga ukazuje. Kada veličina prozora dostigne granicu sporog starta (sstresh). veličina prozora kreće od 1 i eksponencijalno raste sve dok ne dostigne granicu. Linearni rast traje sve dok se ne dostigne maksimalna veličina prozora ili se ne desi istek vremena 86 . posledica je gubitka segmenta ili potvrde. Prijem tri ponovljena ACK-a takođe ukazuje. Granična veličina je postavljena na 16 (polovina od maksimalne veličine). Linearno povećanje prozora traje sve dok se ne detektuje pojava zagušenja. 3-31 Izbegavanje zagušenja: linearno povećanje. ili kada su primljena tri identična ACK segmenta (sa istim ACK brojem).Ponovo startuje fazu sporog starta. faza sporog starta se završava. 3-32. sa velikom verovatnoćom. Pr. a počinje linearna faza. veličina prozora zagušenja se uvećava za 1. Pri tome: Slučaj 1. . Usvojena maksimalna veličina prozora je 32 segmenta. Ovakva situacija se zove brza retransmisija i brzi oporavak. veličina prozora nastavlja da raste. u ovom slučaju. segmenti koji slede su uspešno preneti. (tri ponovljena ACK-a).Postavlja graničnu veličinu prozora na polovinu trenutne veličine prozora (sstresh = cwnd/2). Detekcija zagušenja: multiplikativno smanjenje Nakon pojave zagušenja. na mogućnost zagušenja. Istek vremena čekanja na potvrdu. ali. Zato. TCP smanjuje vrednost granice sstresh na pola (multipikativno smanjenje). do retransmisije može doći iz dva razloga: kada vreme RTO tajmer istekne. TCP drastično reaguje: . . Rad ovog algoritma ilustrovan je na Sl. U ovoj fazi. 3-3 Kontrola zagušenja kod TCP-ja Na Sl. Jedini način kako predajnik može naslutiti da se u mreži nastalo zagušenje jeste potreba za retransmisijom segmenata. na mogućnost zagušenja. Slučaj 2. pošto su primljena tri ACK-a.

Lin. već na vrednost nove granice (6 segmenata). TCP se vraća u režim sporog startovanja počev od veličine prozora 1. na 10 segmenata). dešava se prijem tri ponovljena ACK-a. U tom momentu. a TCP prelazi u fazu linearnog povećanja. granica se postavlja na polovinu trenutne veličine prozora (6 segmenata). Procedura multiplikativnog smanjenja se ponovo startuje. pokreće se procedura multiplikativnom smanjenja koja smanjuje veličinu granice na polovinu trenutne veličine prozora (tj. U trenutku kada je veličina prozora dostigla 12 segmenata. cwnd 26 24 22 20 18 16 14 12 10 08 06 04 02 Isteklo vreme sstresh = 16 Multiplikativno smanjene 3-ACK Spori start Linearno povećanje sstresh = 10 Linearno povećanje Spori start 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 RTT Sl. Kao i u slučaju isteklog vremena. a kada dostigne vrednost nove granice prelazi na linerano povećanje. U primeru sa slike. povećanje 16 87 . TCP ostaje u ovoj fazi sve do novog isteka RTO vremena ili nova tri-ACK-a. vreme RTO tajmera je isteklo pri veličini prozora od 20 segmenta. 3-32 Primer zagušenja.RTO tajmera. ali se zato veličina prozora ne spušta na 1 segment.

88 . FTP i SMTP. Na Internetu. ne računari ili korisnici. koji se izvršava na udaljenoj mašini (Sl. TELNET pruža servis logovanja na daljinu koji omogućava korisniku na terminalu ili personalnom računaru da se loguje i koristi udaljeni računar na isti način kao da je direktno povezan sa tim računarom. što znači da se pokreće od strane korisnika (ili drugog aplikacionog programa) kada je usluga potrebna i završava kada je usluga dobijena. Klijent Server Internet Sl. aplikaciona protokola) koje se tradicionalno smatraju obaveznim elemantima TCP/IP-a: TELNET. serverski program. i na ovom nivou postoji potreba za protokolima koji će omogućiti aplikacijama da funkcionišu. koji se izvršava na lokalnoj mašini.1 Klijent-server model Za korišćenje servisa dostupnih na Internetu neophodni su aplikacioni programi koji se izvršavaju na dva krajnja računara i međusobno komuniciraju. FTP (File Transfer Protocol . Međutim. 4-1). server odgovara na zahtev. To znači da se funkcije predviđene ovim slojevima kod TCP/IP obuhvaćene jednim slojem. osim u slučaju nekih abnormalnih situacija) i neprekidno čeka na zahteve klijenata. trebalo bi da postoji aplikacioni program koji će omogućiti korisnicima da pristupaju udaljenim fajlovima. Međutim. S obzirom na opštost primene. Pod ovim modelom podrazumeva se sledeća strategija: Jedan aplikacioni program. koji pruža uslugu. Klijentski program je konačan. Server nudi usluge mnogim klijentima. oni ne pružaju neki drugi servis koji je od direktne korisni krajnjem korisniku. TCP/IP ima pet nivoa: niža četiri se uklapaju u niža četiri sloja OSI modela. klijentski program se izvršava samo onda kada je usluga servera potrebna. Aplikacioni programi koji koriste Internet zasnovani su na obliku distribuiranog procesiranja koji se zove klijent-server model. Server je program koji se izvršava na udaljenoj mašini i pruža usluge klijentima. peti. razmenjuju elektronsku poštu i td. server. zato što unapred ne zna kada će neki klijent zatražiti uslugu. Kada zahtev stigne. a ne samo nekom konkretnom klijentu. Sa druge strane. servisi ovog tipa su podržani odgovarajućim protokolima aplikacionog sloja. klijentserver model odgovara relaciji tipa: ˝više-prema-jedan˝: više klijenata može koristiti servise jednog servera. Drugim rečima. aplikacioni sloj TCP/IP-a ekvivalentan je kombinaciji prezentacionog. zahteva uslugu (servis) od drugog aplikacionog programa. Slojevi ispod aplikacionog obezbeđuju pouzdani prenos podataka. Serverski program je beskonačan (nikada se ne završava. aplikacioni programi su ti koji komuniciraju. a da on nije zatražen. Na primer. Tek na vršnom sloju nalazimo realne mrežne aplikacije.Protokola za prenos fajlova) se koristi za prenos fajlova od jednog na neki drugi sistem. trebalo bi da radi sve vreme. osim mogućnosti komuniciranja. 4. Servisi koji su često potrebni mnogim korisnicima podržani su specifičnim aplikacionim programima. 4-1 Klijent-server model Klijent je program koji se izvršava na lokalnoj mašini i zahteva uslugu servera. ali nikada ne pokreće servis. U opštem slučaju. Međutim. U ovom poglavlju razmatraćemo tri aplikacije (tj. klijent.4 Aplikacioni sloj TCP/IP je projektovan pre OSI modela i zato njegovi slojevi nisu u potpunosti usklađeni sa slojevima koje predviđa OSI. SMTP (Simple Message Transfer Protocol) pruža osnovnu podršku za razmenu elektronske pošte. server je dostupan mnogim klijentima. sloja sesije i aplikacionog sloja OSI modela. Kada je jednom startovan.

4. Celokupna obrada se obavlja na centralnom računaru. podržavali koncept raspodele vremena koji je omogućavao da više korisnika koristi jedan veliki računar. koja označava suspenziju. Drajver terminala prenosi karaktere (znaci koji odgovaraju dirkama) operativnom sistemu. TELNET je posrednik u ovoj interakciji. pristupa sistemskim resursima.. Koncepti Sistemi sa raspodelom vremena TELENT je razvijen u vreme kada su većina operativnih sistema. Mehanizam ipak nije tako jednostavan. pojedine kombinacije karaktera imaju posebno značenje. korisnik se prijavljuje za rad (kaže se. 4-2). namenskom računaru. Operativni sistem. Nakon prijavljivanja. svaki korisnik poseduje izvesna prava pristupa sistemskim resursima. svaki pritisak na dirku se prenosi drajveru terminala. Na primer. Kada se korisnik prijavi za rad na lokalnom sistemu sa raspodelom vremena (putem korisničkog imena i lozinke) kaže se da je korisnik izvršio lokalni login. e-mail i td. TELNET je upravo takav klijent-server program. Programi kao što su programi za FTP. da omogući korisniku da se prijavi za rad (login-uje) na udaljenom računaru. Operativni sistemi sa raspodelom vremena kreiraju iluziju da svaki korisnik radi na izdvojenom. korisnik se loguje) navodeći svoje korisničko ime i lozinku. prelazi iz jednog u drugi program i slično. korisnik može da koristi servise dostupne na udaljenom računaru i prenese rezultate nazad na svoj računar. su primeri ovakvog pristupa. kao što izgleda. a terminali se koriste za unos podataka i prikaz rezultata. Sl. Udaljeni login Kada korisnik pristupa aplikacionom programu lociranom na udaljenom računaru. ˝Ctrl˝. koji će omogućiti korisniku da pristupi bilo kom aplikacionom programu na udaljenom računaru. Da bi pristupio sistemu. i karaktera ˝z˝. TELENT omogućava uspostavljanje konekcije sa udaljenim sistemom na način da se lokalni terminal ponaša kao da je terminal tog udaljenog sistema. Svaki autorizovani korisnik poseduje identifikaciju (u vidu korisničkog imena) i lozinku. Lokalni Login U sistemima sa raspodelom vremena. Kako korisnik kuca na tastaturi terminala. kao što je UNIX. ili kombinacija Ctrl-c. monitora i eventualno miša). Jedan način kako se može ostvariti ovaj zahtev jeste da se kreira poseban klijent-server aplikacioni program za svaki od potrebnih servisa. Korisnik može da pokrene program. Pritisak na dirku tastature lokalnog terminala prenosi 89 . Klijentska strana TELNET aplikacije izvršava se na strani korisnika. Drugim rečima. on obavlja udaljeni login (remote login). interpretira kombinaciju karaktera i poziva odgovarajući aplikacioni program (Sl. koja označava trenutni prekid programa. zato što operativni sistem može dodeliti posebno značenje pojedinim specijalnim karakterima. a da kreirane rezulte potom prenesu na svoj lokalni računar. kod UNIX-a. Međutim. kao što je kombinacija kontrolnog karaktera. a serverska na strani udaljenog računara.2 TELNET Glavni zadatak Interneta i TCP/IP-ja je da obezbede mrežne servise korisnicima. Bolje rešenje je klijent-server program opšte namene. bilo bi nemoguće napisati aplikacioni program za svaku iskazanu potrebu. korisnici bi želeli da mogu da izvršavaju različite aplikacione programe na udaljenim računarima. 4-2 Lokalni login. Na primer. Kod ovakvih sistema. interakcija između korisnika i računara se ostvaruje putam terminala (kombinacija tasture.

4-3). koji ih isporučuje operativnom sistemu. Konačno. NVT Mehanizam pristupa udaljenom računaru je složen. koji se prema operativnom sistemu ponaša kao terminal drajver.mrežni virtuelni terminal) je sakriven između TENET klijenta i servera.se terminal drajveru. kod DOS-a se za kraj fajla koristi kombinacija Ctrl+z. ali ih ne interpretira. Koncept je ilustrovan na Sl. Naglasimo da je kod OSI modela.. Operativni sistem . karaktere ne očekuje od lokalnog terminala već od TELNET servera. 4-3 Udaljeni login. TCP IP veza fiz. od koga operativni sistem preuzima karaktere. NVT. Sada bi smo očekivali da TELNET server vrati konvertovane karaktere operativnom sistemu koji bi onda obavio interakciju sa odgovarajućom aplikacijom. Na primer. Komande ili tekst. Kod TCP/IP. a kod UNIX-a Ctrl+d. a on TELNET serveru. jedan za podatke.. omogućena je interakcija raznorodnih računara i operativnih sistema. Sl. radi se o heterogenim sistemima. to se ne dešava jer operativni sistem nije projektovan da karaktere dobija od TELNT servera već od lokalnog terminala (posredstvom terminal drajvera). u NVT obliku. Međutim. Drugim rečima. 4-4 NVT NVT skup karaktera NVT sadrži dva skupa 8-bitnih karaktera. konverzija podataka (kao ona koju obavlja NVT) zadatak prezentacionog sloja.. TELNET klijent prevodi lokalni skup karakter u NVT oblik.. 4-4. Razlog za to je što različiti računari i operativni sistemi koriste različita kodiranja karaktera i prepoznaju različite specijalne kombinacije karaktera. 90 . Operativni sistem Terminal Terminal drajver . Na ovaj način. TELNET klijent TELNET server Aplikacioni programi .. TCP IP veza fiz. EBCDIC ili nekim trećim kodom) u univerzalni karakter kôd (NVT .. prezentacioni sloj nije predviđen. a server iz NVT u skup karaktera udaljenog računara. Neki od važnijih kontrolnih karaktera biće pomenuti u nastavku. operativni sistem prenosi karaktere do odgovarajućeg aplikacionog programa. TELNET rešava problem heterogenosti uvođenjem univerzalnog skupa karaktera. Najviši bit karaktera za podatke ima vrednost 0. prenosi se kroz Internet i stižu do TCP/IP steka udaljenog računara. Nižih 7 bitova karaktera za podatke je isti kao kod ASCII kôda. a funkcije prezentacionog sloja su pridružene aplikacionom sloju. već ih šalje TELNET klijentu.Network Virtual Terminal chracters) i isporučuje ih lokalnom TCP/IP steku (Sl. Pseudoterminal drajver Internet Sl. Rešenje je u ugradnji specifičnog programa. TELNET klijent prevodi karaktere (koji u zavisnosti od tipa lokalnog operativnog sistema mogu biti kodirani ASCII. a drugi za kontrolne (upravljačke) informacije. ali zato sa druge strane. dok kod kontrolnih karaktera ima vrednost 1. NVT (Network Virtual Terminal . pseudoterminal drajver. gde se karakteri konvertuju iz NVT formata u oblik razumljiv udaljenom računaru.

Ova opcija omogućava serveru da. 4-2. umesto da unese file1. data u tabeli T. već se čeka da ih server vrati nazad. kod prvobitnih implementacija TELNET-a.Ugrađivanje TELNET koristi samo jednu TCP konekciju. Ova opcija omogućav klijentu da obavesti servera o brzini svog terminala. Line mode. zamislimo da korisnik traži od servera da prikaže sadržaj fajla file1. 4-1 su navedene neke od često korišćenih opcija. 4-5 Primer ugrađivanja. Međutim. 91 .interpretiraj kao kontrolu). Sl. Ova opcija omogućava prijemniku da svaki primljeni 8-bitni podatak. Terminal type. već se radi na udaljenom serveru. Kada se primi IAC. Da bi ispravio grešku. 4-5). Opcije su dodatne mogućnosti raspoložive korisnicima sa naprednijim terminalima. sledeći karakter ili karakteri se interpretiraju kao komande. Karakter backspace se prevodi u dva karaktera (IAC EC) i ugrađuje u tok podataka koji se šalje serveru (Sl. svaka sekvenca kontrolnih karaktera počinje specijalnim kontrolnim karakterom koji se označava skraćenicom IAC (Interpret As Control . Korisnici sa jednostavnijiim terminalima mogu koristiti podrazumevane opcije. Status. Ova opcija omogućava jednoj od strana da drugoj šalje vremenske markere koji ukazuje da je završena obrada svih prethodno primljenih podataka. karakteri koji klijent unosi se ne prikazuju odmah na njegovom ekranu. Drugim rečima. a drugi interpertira kao binarni podatak. Opcije TELNET pruža mogućnost klijentu i serveru da pregovaraju oko opcija koje će koristiti tokom sesije. lokalno editovanje nije moguće. tada se prvi odbacuje. U tabeli T. tako da je niz unetih karaktera: cat filea<backspace>1. Ova opcija omogućava korisniku da dobija informacije o dozvoljenim opcijama na serveru. 4-1 Opcije Kôd 0 1 3 5 6 24 32 34 Opcija Binary Echo Suppress go ahead Status Timing mark Terminal type Terminal speed Line mode Značenje 8-bitni (binarni) prenos Svi primljeni podaci se vraćaju drugoj strani Ignoriši go-ahead opciju Zahteva status TELENT-a Definiše vremenski marker Postavlja tip terminala Postavlja brzinu terminala Promena na linijski način rada Sledi detaljnije objašnjenje opcija: Binary. tretira kao binarni podatak. Timing mark. (Više detalja kasnije) Pregovaranje oko opcija Klijent i server se moraju dogovoriti oko svake opcije koju bi jedna od strane želela da koristi. korisnik je pogrešio u kucanju i uneo filea1. Terminal speed. odmah po prijemu. To se postiže ugradnjom kontrolnih karaktera u tok podataka. Server koristi dobro-poznati port 23. Da bi se napravila razlika između podataka i kontrolnih karaktera. To praktično znači da će svaki karakter kojeg klijent pošalje serveru biti vraćan nazad klijentu i prikazan na ekranu njegovog terminala. Echo. izuzev IAC. ako se prime dva uzastopna IAC karaktera. Suppress go-ahead. Međutim. vraća nazad klijentu svaki primljeni podatak. (Više detalja u sekciji o načinima rada). Ista konekcija se koristi kako za slanje podataka tako i za slanje kontrolnih karaktera. Ova opcija omogućava klijentu da se prebaci u linijski način rada. Ova opcija omogućav klijentu da obavesti servera o tipu svog terminala. Međutim. Na primer. dok se za klijente koriste dinamički portovi. Ova opcija isključuje dejstvo kontrolnog karaktera go-ahead (GA). Za pregovaranje se korste četiri kontrolna karaktera. korisnik koristi taster backspace. T. Korisnik unosi komandu: cat file1.

Druga strana odgovara sa DO. 4-9 Zahtev za zabranu opcije. šalje komandu WONT. što znači ˝Ne želim više da koristim ovu opciju˝. Sl. Traženje zabrane. Odgovor mora biti komanda DONT. Prihvatanje ponuđene zabrane 1. Druga strana odgovara sa WILL. koja znači ˝Nemoj više da koristiš ovu opciju˝. što znači ˝Nemoj više da je koristiš˝. ˝Neću˝. šalje komandu WILL. što znači ˝Nemoj da dozvoliš˝. uključi) neku opciju. 4-8. Strana koja nudi. ˝Tražim od tebe da dozvoliš opciju˝. Strana koja traži dozvolu šalje komandu DO. 4-8 Zahtev za dozvolu opcije. Odbijanje tražene dozvole 2. Ponuda zabrane 3. Prihvatanje tražene dozvole 1. Vidi Sl. Neprihvatanje ponuđene dozvole 2. Traženje dozvole Jedna od strana može tražiti od druge da dozvoli opciju.T. Druga strana mora prihvatiti zahtev (ne može odbiti). 4-6. Ponuda dozvole 2. ili DONT. ili sa WONT. ˝Hoću˝. Druga strana mora prihvatiti ponudu (ne može je odbiti). Sl. Vidi sliku. 92 . Odgovor mora biti komanda WONT. 4-7. Prihvatanje tražene dozvole 2. Strana koja traži zabranu šalje komandu DONT. koja se tumači kao ˝Da li da dozvolim opciju?˝. Traženje zabrane Jedna od strana može tražiti od druge strane zabranu neke opcije. Prihvatanje ponuđene zabrane 3. što znači ˝Dozvoli˝. Strana koja nudi zabranu. 4-7 Ponuda da se opcija zabrani. što znači ˝Neću je više koristiti˝. Vidi Sl. Zahtev može biti odobren ili odbijen. 4-2 NTV karakteri za pregovaranje. 4-6 Ponuda da se opcija dozvoli. Karakter WILL WONT Decimalno 251 252 Binarno 11111011 11111000 Značenje 1. DO DONT 253 254 11111001 1111110 Ponuda dozvole Jedna od strana (klijent ili server) može ponuditi drugoj da dozvoli (omogući. Ponuda zabrane Jedna od strana može ponuditi drugoj da zabrani neku od ranije dozvoljenih opcija. Ponuda može biti prihvaćena ili odbijena. Traženje dozvole 1. Sl. Vidi Sl. Sl.

4-11 Primer pregovaranja oko opcija. ovi kontrolni karakteri moraju biti poslati udaljenoj mašini. Na primer. taster Delete ili Backspace). navedena u tabeli T. nove opcije ostaju nedozvoljene. Za pregovaranje oko podopcija koriste se dva specijalna karaktera. Ako bilo koja strana želi da dozvoli neku opciju. WILL. ECHO DO IAC Dozvoliću opciju Echo. da bi se definisao tip ili brzina terminala. To znači da na početku veze obe strane koriste podrazumevane TELNET opcije. TELENT klijent prevodi unetu kombinaciju karaktera (koja je moguće specifična za konkretni tip 93 . traži od servera da dozvoli ovu opciju. Kontrola servera Pojedini kontrolni karakteri se koriste za kontrolu udaljenog servera. ona je može ponuditi ili zatražiti. 4-10 Opcija Echo.npr. jer npr. odnosno brzinu terminala. Druga strana ima pravo da prihvati ponudu ili odbije zahtev. Ctrl-c) ili brisanje poslednjeg unetog karaktera (npr. Na primer. Kada se program izvršava lokalno. DO i ECHO. 4-1: Pregovaranje oko opcija Na Sl. T. Nakon uspostavljana veze. specijalni karakteri se koriste za prekid rada programa (Abort . ECHO. druga strana još uvek koristi neku stariju verziju TELENT-a. Ova opcija se dozvoljava na strani servera.Pr. slanjem komande DO. jer je server taj koji šalje karaktere nazad korisničkom terminalu. Simetrija Ravnopravnost u pregovaranju je bitna osobina TELNET-a. na slici je ilustrovano kako klijent postavlja tip terminala. klijent želi da uključi opciju echo. Međutim. 4-3. a zatim informiše klijenta da je opcija dozvoljena slanjem tri karaktera: IAC. a novim opcijama. Pregovaranje oko podopcija Pojedine opcije zahtevaju dodatne informacije. Koncept pregovaranja omogućava lako proširenje TELNET-a. klijent. IAC WILL ECHO Sl. opcije se mogu dozvoliti. 4-10 je prikazan primer pregovaranja oko opcije. Na strani klijenta ili servera može se instalirati nova verzija TELENET. kada se program izvršava na udaljenom računaru. Karakter SE SB Klijent Decimalno 240 250 Binarno 11110000 11111010 Značenje Kraj podopcije Početak podopcije Server Da li da dozvolim opciju ˝terminal type˝ Terminal Type WILL IAC Dozvoli opciju ˝terminal type˝ IAC DO Terminal Type Postavljam tip terminala na ´VT´ SE IAC ´T´ ´V´ Terminal Type SB IAC Sl. Ukoliko druga strana takođe podržava ove opcije. odnosno ni jedna opcija nije dozvoljena. ukoliko nije u stanju ili ne želi da koristi ponuđenu. odnosno traženu opciju. U ovom primeru. pregovaranje mora uključiti string ili broj koji će definisati tip. Zahtev se sastoji iz tri karaktera: ICA. 4-3 NVT karakteri za pregovaranje oko podopcija. drugoj strani se mogu ponuditi ili od nje tražiti da dozvoli ove nove opcije. Server prihvata zahtev i dozvoljava opciju. Zato. Korisnik i dalje preko tastature unosi istu kombinaciju tastera. Ako to nije slučaj. Klijent Server Tražim od tebe da dozvoliš opciju Echo.

Klijent Urgentni pointer Server Podaci prihvataju se DM IP IAC Podaci odbacuju se Sl. karakter-orijentisani i linijski. EL (erase line). T. TELENT definiše kontroli karakter IP koji se na strani servera tumači na isti način kao kombinacija tastera za prekid izvršenja programa. Zamislimo situaciju u kojoj je aplikacioni program koji se izvršava na serveru upao u beskonačnu petlju i zbog toga ne prihvata nove podatke. Kôd IP AO AYT EC EL Decimalno 244 245 246 247 248 Binarno 11110100 11110101 11110110 11110111 11110000 Značenje Prekid (interrupt) procesa Prekid (abort) procesa Da li si tamo? Brisanje karkatera Brisanje linije IP (interrupt process). Načini rada Većina TELNET realizacija radi u jednom od sledeća tri načina rada: podrazumevani. Kod out-of-band signalizacije. naročito nakon dužih perioda ˝tišine˝. jer je program prestao da čita podatke iz bafera. 4-12). a podatke koji slede nakon DM karaktera. server odgovara porukom koja potvrđuje klijentu da je TELENT veza još uvek ˝živa˝. AO (abort output). ali to ne može. ako se program izvršava na udaljenom računaru. Ova komanda je korisna u situacijama kada proces osim kreiranja izlaza (npr. Vremenom. kontrolni karakter IP se izvan redosleda isporučuje operativnom sistemu koji pozivom odgovarajuće funkcije prekida izvršenje aplikacionog procesa. Korisnik želi da prekine izvršenje programa. 94 . u obavezi je da prihvata urgentne. Out-of-band signalizacija Da bi u svim situacijama obezbedio dejstvo kontrolnih karaktera. EC (erase character). a serverski TCP šalje klijentskom TCP-ju kontrolni segment sa veličinom prozora postavljenom na nulu saopštavajući mu da više nije u mogućnosti da prihvata regularne podatke. tretira na normalan način. prijemni bafer postaje pun. Povremeno se dešavaju situacije kada izvršenje program treba ˝nasilno˝ prekinuti (na primer. korisnik ga može prekinuti unosom specifične kombinacije karatera. kontrolni karakteri se šalju udaljenom procesu izvan redosleda. Koristi se za brisanje tekuće linije na udaljenom hostu. rezultat u obliku fajla) ima i neke druge efekte. 4-12 Out-of-band signalizacija. Dodatno. AYT (are you there?) Pomoću ovog kontrolnog karaktera. zato što se program više ne odaziva jer je upao u beskonačnu petlju). Međutim. koje korisnik ne želi da poništi. Operativni sistem prepoznaju nameru korinika i poziva odgovarajuću funkciju koja prekida izvršenje programa. TELENT koristi out-of-band signalizaciju. Slično kontrolnom karakteru IP. Na ovaj način. Kada primi takav segment. Kada primi karkater AYT. odgovarajuću funkciju za prekid rada programa treba pozvati na udaljenom računaru. 4-4 NVT karakteri koji se koriste za kontrolu aplikacije koja se izvršava na udaljenom serveru. Za urgentne segmente (sa postavljenim bitom URG) ne važe pravila kontrole protoka: iako TCP više ne prihvata normalne segmente. TELENT proces (klijentski ili serverski) koji želi drugom procesu da pošalje sekvencu karaktera izvan redosleda (out-of-band). Ako se program izvršava na lokalnom računaru. Opisana situacija se može prevazići urgentnim segmentom kojeg bi klijentski TCP poslao serverskom TCP-ju. ugrađuje sekvencu u tok podataka i umeće specijalni karakter DM (data mark) na kraj sekvence. klijent može da proveri da li je server još uvek operativan. da bi primorao drugu stranu da obradi sekvencu izvan redosleda. TELENT predviđa kontrolni karakter EC. Za brisanje poslednje unetog karaketera preko tastatature na lokalnom računaru koriste se tasteri Delete ili Backspace.operativnog sistema) u odgovarajući NVT specijalni karakter i šalje ga TELNET serveru koji ga interpretira i na odgovarajući način deluje na aplikacioni program. proces kreira TCP segment sa postavljenim bitom URG i urgentnim pointerom koji ukazuje na karakter DM. Da bi se ostvario isti efekat i na udaljenom računaru. prijemni TCP čita podatke iz segmenta i odbacuje sve podatke koje prethode kontrolnim karakterima (kao što su IAC ili IP). Drugim rečima DM se koristi kao sinhronizacioni karakter koji prebacuje prijemni TCP iz urgentnog u normalni način rada (vidi Sl. s tom razlikom što omogućava procesu da nastavi sa izvršenjem ali bez generisanja izlaza.

Pri ovakvom načinu rada. Ovakav polu-dupleks način rada nije efikasan. Za razliku od podrazumevanog načina rada. Linijski način rada U linijskom načinu rada. U ovom načinu rada. da pošalje serveru više linija teksta. Klijent šalje serveru svaki pojedinačni karakter kojeg korisnik unese preko tastature. 2) segment kojim server potvrđuje prijem karaktera i vraća ga nazad klijentu i 3) segment kojim klijent potvrđuje (ACK) prijem karaktera kojeg je server vratio. Server vraća nazad primljene karaktere. korisnik je u mogućnosti da interaguje sa serverom. jednu za drugom. tako ih klijent prikazuje na ekranu. jer klijent može. Nakon uspešnog logovanja. Sl. 4-13 TELENT sesija u podrazumevanom načinu rada.) se obavlja na klijentu. eho karaktera obavlja server. 4-2 Podrazumevani način rada Na slici je prikazan primer odvijanja TELENT sesije u prodrazumevanom načinu rada. s obzirom da TCP podržava komunikaciju u punom dupleksu. Kako korisnik unosi karaktere preko tastature. a nastavlja se logovanjem korisnika na server. karakter-orijentisani način rada nije efikasan jer generiše nepotrebno veliki mrežni saobraćaj jer su za prenos jednog karaktera neophodna tri TCP segmenta: 1) segment kojim se od klijenta do servera prenosi karakter kojeg je korisnik uneo preko tastature. Pr. Kada pošalje liniju teksta serveru. 95 . eho karaktera obavlja klijent. editovanje linije teksta (eho.Podrazumevani način rada Podrazumevani način rada se koristi ukoliko putem pregovaranja nije postavljen neki drugi način rada. umetanje karaktera i sl. u situacijama kada je vreme prenosa između klijenta i servera veliko. a serveru se šalju samo kompletne linije. Sisija počinje pregovaranjem oko tipa i brzine terminala. često se uočava kašnjenje u prikazu otkucanih karaktera. klijent je spreman da od korisnika prihvati novu liniju tek nakon što od servera dobije komandu GA (go ahead). a klijent ih prikazuje na ekranu. ali ih ne šalje serveru sve dok korisnik ne unese celu jednu liniju teksta. bez čekanja na komandu GA. linijski način rada omogućava punu-dupleks komunikaciju. Takođe. Karakter-orijentisani način rada U ovom načinu rada. brisanje.

4-15. Slično kao kod TELENT-a. Upravljačka konekcija se uspostavlja između upravljačkih. 96 . korisnik unosi komande i od servera dobija odzive. TELNET. Sl. 4-14 FTP.4. Konekcija za prenos podataka se otvara. (a) (b) Sl. upravljačka konekcija se uspostavlja kada korisnik otvori FTP sesiju. Dok je upravljačka konekcija otvorena. a konekcija za prenos podataka preko port 21. ili podržavati razičite strukture direktorijuma. a onda i zatvara za prenos svakog pojedinačnog fajla. načine za predstavljanje teksta i drugih tipova podataka. proces za upravljanje klijentom i proces za prenos podataka. Na primer. Osnovni model FTP-a je prikazan na Sl. 4-14. a konekcija za prenos podataka između procesa zaduženih za prenos podataka na stranama klijenta i servera. ako se prenosi više fajlova.. Upravljačka konekcija koristi jednostavna pravila komunikacije: klijent šalje komandu. s obzirom na brojne tipove fajlova i specifične načine prenosa podatak. FTP koristi TCP. postoje problemi koji se moraju rešiti kako bi prenos uopšte bio moguć. konekcija za prenos podataka zahteva složenija pravila komunikacije. Proces uspostavljanja upravljačke konekcije ilustrovan je na Sl. Konekcije Dve FTP konekcije. FTP klijent sadrži tri komponente: korisnički interfejs. Konekcija se uspostavlja u dva koraka: 1. a druga za prenos upravljačkih informacija (komande i odzivi). Drugim rečima.3 FTP FTP (File Transfer Protocol – Protokol za prenos fajlova) je aplikacioni protokol za kopiranje fajlova sa jednog na neki drugi host. Server ima dve komponente: proces za upravljanje serverom i proces za prenos podataka. Upravljačka konekcija se ostvaruje preko porta 20. Sa druge strane. Server izvršava pasivno otvaranje dobro-poznatog porta 21 i čeka na klijenta. Na FTP-ju je da reši ove probleme. a server vraća odziv. Prenos fajlova između hostova je jedan od najčešćih zadataka koji se očekuje od bilo kog mrežnog okruženja. Upravljačka konekcija Upravljačka konekcija se uspostavlja na isti način kao i dok drugih standardnih mrežnih aplikacionih programa. kao što je npr. Jedna konekcija se koristi za prenos podataka. konekcija za prenos podataka može biti otvarana i zatvarana više puta. Iako se čini da se fajlovi mogu jednostavno prenositi sa jednog na drugi sistem. FTP se razlikuje od drugih klijent-server aplikacija po tome što ne uspostavlja samo jednu već dve TCP konekcije između hostova (klijenta i srevera). Upravljačka konekcija ostaje aktivna za sve vreme trajanja jedne FTP sesije. 4-15 Uspostavljanje upravljačke konekcije: (a) korak 1. 2. Konekcija ostaje otvorena za sve vreme trajanja FTP sesije. Klijent koristi dinamički prort i inicira aktivno otvaranje konekcije sa serverom. upravljačka i konekcija za prenos podataka koriste različite brojeve portova i različite mehanizme komunikacije. dva sistema mogu koristiti različite konvencije za imenovanje fajlova. (b) korak 2.

Procedura uspostavljana konekcije za prenos podataka ilustrovana je na Sl. a ne server. Komunikacija Komunikacija preko upravljačke konekcije Za komunikaciju preko upravljačke konekcije kod FTP-a se koristi. kao i kod TELENT-a ili SMTP-a. izvršava pasivno otvaranje dinamičkog porta. 4-16 Uspostavljanje konekcije za prenos podataka: (a) klijent pasivno otvara dinamički port 63000. 4-16. Upravljacki proces Proces za prenos podataka Klijent 62012 21 Upravljacki proces Proces za prenos podataka Server 63000 Pasivno otvoren port (a) Upravljacki proces Proces za prenos podataka Klijent PORT 63000 62012 21 Upravljacki proces Proces za prenos podataka Server 63000 Pasivno otvoren port (b) Upravljacki proces Proces za prenos podataka Klijent Upravljacki proces Proces za prenos podataka Server 62012 21 63000 Aktivno otvoren port 20 (c) Sl. 2. NVT ASCII skup karaktera (Sl. (b) klijent šalje broj dinamičkog porta serveru. kreiranje konekcije se razlikuje u odnosu na standardnu proceduru. (c) server aktivno otvara port 20 i uspostavlja konekciju sa klijentom na portu 63000. tako da nema potrebe brinuti o različitim tipovima fajlova ili različitim strukturama fajlova na klijentu i serveru. prenosi najviše jedna komanda (ili odziv). Klijent. u bilo kom trenutku. Ovakav način komunikacije (polu dupleks) je pogodan za upravljačku konekciju zato što se preko konekcije. Komande i odzivi su kratke linije teksta. 3. Sl.Konekcija za prenos podataka Konekcija za prenos podataka (ili samo konekcija za podatke) na strani servera koristi dobro-poznati port 20. Za svaki fajl koji želi da prenese. Preko konekcije za podatke se prenose fajlovi. Komunikacija preko konekcije za podatke Konekcija za podatke ima različitu namenu i ostvaruje se na drugačiji način u odnosu na komunikaciju preko upravljačke konekcije. Za uspostavljanje konekcija za podatke potrebna su tri koraka: 1. Klijent šalje broj dinamičkog porta serveru. Međutim. Komunikacija se stvaruje putem komandi i odziva. 4-17). klijent 97 . korišćenjem komande PORT (prenosi se preko upravljačke konekcije). Server prima broj porta i izvršava aktivno otvaranje konekcije sa klijentom koristeći dobro-poznati port 20 za sebe i primljeni dinamički broj porta za klijenta. 4-17 Korišćenje upravljačke konekcije.

komande za definisanje porta. dok se kraj celokupnog fajla označava karakterom EOF. komande za menadžment fajlova. komande za prenos fajlova i ostale komande.EndOf-File) nije potreban. sadrži kontinualni tok bajtova. Postoje tri načina prenosa fajlova preko konekcije za podatke: Stream. podaci su mogu komprimovati. Ako jedna ili obe strane u komunikaciji koriste EBCDIC kôd. Fajl je podeljen na zapise. Record. FTP može isporučivati TCP-ju podatke u blokovima. Sa druge strane. Komande Klijent šalje komande u obliku teksta koji sadrži ime komande. marker za kraj fajla (EOF. Ovo je podrazumevani način prenosa. Sl. Komande za pristup. prijemnik transformiše NVT ASCII karaktere u fajl kodiran svojim kôd. strukturu podataka i način prenosa (Sl. Fajl nije struktuiran. tekstualni fajl se može prenositi korišćenjem EBCDIC kodiranja (umesto u NVT ASCII). napisanog velikim slovima. Page. svakom bloku prethodi 3bajtno zaglavlje. EBCDIC. svakom zapisu se pridodaje 1-bajtni specijalni karakter end-of-record (EOR). Ovo je podrazumevani format za prenos binarnih fajlova. Klijent šalje komandu serveru. server je obrađuje i vraća odziv klijentu. Svaka stranica ima broj i zaglavlje. Compressed. 4-5. Stranicama se može pristupati bilo sekvencijalno bilo proizvoljno. Block. kraj fajla konicidira sa zatvaranjem konekcije od strane predajnika. Tip fajla.mora definisati tri atributa komunikacije: tip fajla. dok sledeća dva bajta definišu veličinu bloka u bajtovima. Ako je fajl isuviše veliki. Image. FTP može prenositi fajlove preko konekcije za podatke korišćenjem jedne od sledeće tri interpretacije strukture podatka u fajlu: File (podrazumevana opcija). komande za formatiranje podataka. Način prenosa. Obrada komandi Preko upravljačke konekcije obavlja de dijalog između klijenta i servera. Ako su podaci podeljeni na zapise (striktura tipa Record structure). Spisak komandi za pristup dat je tabeli T. Predajnik transformiše fajl iz svoje sopstvene reprezentacije u NVT ASCII karaktere. Uglavnom se koristi za prenos binarnih fajlova kao što su izvršni programi. Ovo je podrazumevani format prenosa tekstualnih fajlova. U ovom slučaju. Komande se grubo mogu podeliti u šest grupa: komande za pristup. Fajl je podeljen na stranice. kako bi se smanjila količina podataka koju treba preneti preko mreže. Fajl se prenosi kao kontinualni tok bitova bez bilo kakve interpretacije ili kodiranja. U ovom slučaju. Prvi bajt je bajt za opis bloka (block descriptor). Ove komande omogućavaju korisniku da pristupi udaljenom sistemu. 98 . Struktura podataka. 4-18 Korišćenje konekcije za prenos podataka. Preko konekcije za podatke FTP može prenosit sledeće tipove fajlova: ASCII. i eventualno prateće argumente. Svaki karakter se kodira u NVT ASCII kôdu. FTP isporučuje TCP-ju podatke u vidu kontinualnog toka podataka. Ako su podaci koji se prenose prosti tok bajtova (struktura tipa File structure). 4-18). tj. Primenljivo samo na tekstualne fajlove. TCP je odgovoran za podelu podataka na segmente odgovarajuće veličine. Prenosu fajla preko konekcije za podatke prethodi priprema prenosa preko upravljačke konekcije.

P (Page) S (Stream). 4-7 Komande za formatiranje podataka. Komanda CWD CDUP DELE LIST NLIST MKD PWD RMD RNFR RNTO SMNT Argument(i) Ime direktorijuma Ime fajla Ime direktorijuma Ime direktorijuma Ime direktorijuma Ime direktorijuma Ime fajla (staro ime fajla) Ime fajla (novo ime fajla) Ime fajl-sistema Opis Promena radnog direktorijuma Prelazak na roditeljski direktorijum Brisanje fajla Listanje poddirektorijuma ili fajlova Listanje imena direktorijuma ili fajlova bez dodatnih atributa Kreiranje novog direktorijuma Prikazivanje imena radnog direktorijuma Brisanje direktorijuma Identifikuje fajla čije se ime menja Promena imena fajla Priključivanje fajl-sistema. C (Compressed) Opis Definisanje tipa fajla Definisanje strukture fajla Definisanje načina prenosa Komande za definisanje porta. Klijent bira dinamički port. T. pasivno otvara izabrani port. Definisani atributi se potom koriste prilikom prenosa fajla. Ostale komande. E (EBCDIC). briše fajlove i slično. Ovim komandama korisnik može doći do nekih dodatnih informacija (T. Postoje dva načina kako se to može uraditi. Komande za definisanje porta navedene su u tabeli T. Konačno. Nakon što otvori port. 4-7 sadrži komande iz ove grupe. Komanda PORT PASV Argument(i) 6-cifreni idnetifikator Opis Klijent bira port Server bira port. Komande omogućavaju korisniku da se kreće po strukturi direktorijuma. putem upravljačke konekcije šalje komandu PORT sa brojem izabranog porta. Komande iz ove grupe omogućavaju korisniku da pristupa fajl sistemu na udaljenom računaru.T. Komande za prenos fajlova. Ove komande služe za stvarni prenos fajlova. I (Image) F (File). B (Block). T. Prvi način koristi komandu PORT. 4-5 Komande za pristup Komanda USER PASS ACCT REIN QUIT ABOR Argument(i) User id User password Nalog koji se menja Opis Korisničko ime Korisnička lozinka Podaci o nalogu Ponovna inicijalizacija Logout (odjavljivanje) Poništavanje prethodne komande Komande za manadžment fajlova. Komande za formatiranje podataka. 4-6 Komande za menadžment fajlova. Navedene su u tabeli T. Tabela T. 4-6. Ovim komandama se definiše broj prota konekcije podataka na strani klijenta. R (Record). 4-8 Komande za definisanje porta. Server koristi broj porta da bi uspostavio konekciju za podatke prema klijentu. server u odzivu vraća klijentu broj izabranog porta. tip fajla i način prenosa. Drugi način koristi komandu PASV. Komanda TYPE STRU MODE Argument(i) A (ASCII). kreira nove direktorijume. 4-10). 99 . koji je sada aktivna strana konekcije. na dobijenom portu. a serveru. uspostavlja konekciju za prenos podataka sa servorom. T. 4-9. klijent. Spisak komandi iz ove grupe dat je u tabeli T. Ove komande omogućavaju korisniku da definiše strukturu podataka. Slanjem ove komande klijent traži od servera da izabere dinamički port i izvrši pasivno otvaranje izabranog porta. 4-8.

Testiranje da li je server ˝živ˝ Za komande specifične za konkretan sajt Traži informaciju o operativnom sistemu servera Komande Odzivi Svaka FTP komanda generše barem jedan odziv.odziv se odnosi na fajl sistem Treća cifra. 100 . Kada završi akciju. Server šalje klijentu spisak direktorijuma ili imena fajlova. Fajl se prenosi sa servera na klijenta. Ova operacija se pod kontrolom komande RETR i zove se preuzimanje fajla. ali su neophodne dodatne informacije. U tabeli je navedeno nekoliko tipičnih odziva Prenos fajlova Prenos fajlova se ostvaruje preko konekcije za podatke pod kontrolom komandi poslatih preko upravljačke konekcije. server će poslati još jedan odziv.odziv se odnosi na sintaksu komande x1z . jer server trenutno nije u mogućnosti da je izvrši. Tri cifre odziva predstavićemo u obliku xyz. Komanda HELP NOOP SITE SYST Argument(i) Opis Traži informacije o serveru. Prva cifra odziva definiše status kmande. Ova operacija je pod kontrolom komande LIST. postojeći fajl neće biti prebrisan. Pozicionira marker fajla na navedenu poziciju u fajlu. Akcija zahtevana komandom je startovana. Server je spreman da prihvati sledeću komandu. T. 4-9 Komande za prenos fajlova. 4-10 Ostale komande. Rezerviše prostor za smeštanje fajla na serveru. Na ovoj poziciji može se naći jedna od pet cifara (1-5): 1yz (pozitivan preliminarni odziv).odziv se odnosi na autorizaciju korisnika x4z . Smeštanje fajla.značenje nije definisano x5z . s tim da se očekuje da ime fajla bude jedinstveno u direktorijumu. Ako fajl sa datim imenom postoji.T. Fajl (ili fajlovi) se prenosi sa klijenta na server Slično STOR s tom razlikom da ako fajl postoji. Ista komanda može biti poslata kasnije. Akcija nije startovana. Numerički deo definiše potrebne parametre ili dodatne informacije. Druga cifra odziva takođe definiše status komande. Komanda nije prihvaćena i ne bi trebalo pokušavati ponovo. Ova operacija je pod kontrolom komande STOR i zove se smeštanje fajla. 2yz (konačni pozitivan odziv).odziv je informativne prirode x2z . treba imati na umu da prenos fajlova preko FTP-a znači jednu od sledeće tri operacije: Fajl se kopira sa serverskog na klijentski računar. Druga cifra. Komanda je prihvaćena. podaci se dodaju fajlu Isto kao STOR. Sledi objašnjenje značenja cifara. Odziv se sastoji iz dva dela: tro-cifarski broj i prateći tekst. Komanda RETR STOR APPE STOU ALLO REST STAT Argument(i) Ime fajla(ova) Ime fajla(ova) Ime fajla(ova) Ime fajla(ova) Ime fajla(ova) Ime fajla(ova) Ime fajla(ova) Opis Preuzimanje fajla. Treća cifra ukazuje na dodatne informacije. Međutim. Fajl se kopira sa klijentskog na serverski računar. Vraća status fajla. 3yz (pozitivan među-odziv). Na ovoj poziciji meže se naći jedna od šest cifara (1-6): x0z . Akcija je završena. 5yz (konačni negativni odziv).odziv se odnosi na konekciju x3z . Prva cirfra. 4yz (prolazni negativan odziv).

8 . za podatke) QUIT 221 (Zatvaranje servisa) Upravljačka konekcija Konekcija za podatke Sl.Sada. 4-3 1 .Klijent šalje komandu PASS. 4-3: FTP sesija Sl. 9 .Klijent šalje komandu USER. 7 . preko upravljačke konekcije.Server.Nakon prijema komande QUIT. klijent šalje komandu QUIT.Server ne uspostavlja konekciju. 4 .Pr. server odgovara odzivom 221 (zatvaranje servisa) i zatvara upravljačku konekciju. 11. 12 . U razmatranom primeru. 101 . Lozinka?) PASS **** 230 (Login OK) PORT 7777 150 (Sledi otvaranje kon. 4-19 Pr. Kada je poslat kompletan spisak. 5 . 10 .Server odgovara odzivom 125 i otvara konekciju za podatke. za podatke) LIST predavanja/IT 226 (Konekcija za podatke OK) Spisak fajlova ili direktorijuma PRENOS PODATAKA Spisak fajlova ili direktorijuma 236 (Zatvaranje kon. preko konekcije za podatke. klijent ima dve opcije. šalje odziv 226 (zatvaranje konekcije za podatke).Server odgovara odzivom 230 (Login OK) 6 .Server odgovara odzivom 331 (Korisničko ima je OK. Server šalje odziv 150 (konekcija za podatke će ubrzo biti uspostavljena). već se priprema za aktivno otvaranje konekcije za podatke između svog porta 20 i dinamičkog porta klijenta. server.Klijent šalje komandu LIST. FTP server šalje odziv 220 (servis je spreman). u ovom trenutku. 2 . 3 .Nakon uspostavljanja upravljačke konekcije na portu 21. 4-19 ilustruje korišćenje FTP komandi na primeru listanja sadržaja direktorijuma. Klijent Upravljački proces Server Upravljački proces Klijent Proces za prenos podataka Server Proces za prenos podataka 220 (Servis je spreman) USER petar 331 (Korisničko ime OK. šalje spisak fajlova ili direktorijuma. potrebna je lozika). Klijent može poslati komandu QUIT i zahtevati zatvaranje upravljačke konekcije (čime bi sesija bila okončana) ili može posalati neku drugu komandu kako bi započeo neku drugu aktivnost (i eventualo otvorio novu konekciju za podatke).Klijent pasivno otvara dinamički port za konekciju za podatke i šalje komandu PORT (preko upravljačke konekcije) da bi serveru predao izabrani broj porta.

Pretpostavimo da korisnik Ana želi da pošalje poruku korisniku Milanu. Drugi scenario U drugom scenariju. UA (User Agent) . Administrator je kreirao jedno poštansko sanduče (mailbox) za svakog korisnika. U ovom poglavlju upoznaćemo se sa arhitekturom sistema elektronske pošte koju čine tri glavne komponente: korisnički agent. pošiljalac i primalac e-mail-a su korisnici (ili aplikacioni programi) na dva različita sistema. Mailbox-u može pristupati jedino njegov vlasnik.agent za prenos poruka. Na početku ere Interneta.korisnički agent. 4-20. ADSL ili kablovskog modema. a završiti sa najsloženijom i u isto vreme najčešćom situacijom.Message Transfer Agent). Sa druge strane. to nije slučaj sa Anom. UA (User Agent) .4 Elektronska pošta Elektronska pošta (e-mail) je sigurno jedan od najpopularnijih mrežnih servisa. klijenta može pokrenuti sistem onda kada u redu čekanja ima poruka koje treba poslati. server radi sve vreme zato što unapred ne zna kada će mu se neki klijent obratiti. Prvi scenario U prvom scenariju. sada je neophodan i agent za prenos poruka (MTA . Sl. Poruka mora biti preneta kroz Internet. a drugi servera. mail serveru. Sl. Međutim. Opisani scenario ilustrovan je na Sl. onda kada je njemu zgodno. koja je sa svojim sistemom povezana putem dial-up. a pored korisničkog agenta. Počećemo sa najjednostavnijom.4. Poruka sadrži mailbox adrese (tj. Ovaj zadatak obavljaju dva agenta za prenos poruka: jedan ima ulogu klijenta. Mailbox je fajl na lokalnom hard disku sa ograničenim pravom pristupa.4. od Aninog do Milanovog sistema. direktno povezan na svoj sistem. MTA (Message Transfer Agent) . Situacija koja odgovara trećem scenariju prikazana je na Sl. imena odgovarajućih fajlova) pošiljaoca i primaoca. poruka treba biti preneta kroz Internet. Poput većine klijent-server programa na Internetu. kao što je prikazano na Sl. agent za prenos poruka i agent za preuzimanje poruka i potom i sa protokolima kojima se realizuju ove komponente. pošiljalac i primalac e-mail-a su korisnici (ili aplikacioni programi) na istom sistemu. već i audio i video zapisa. Milanu je takođe neophodan korisnički agent. Danas je elektronska pošta mnogo složenija i omogućava prenos ne samo teksta. ili je povezana na LAN u organizaciji koja koristi jedan mail server za sve korisnike (svi korisnici moraju da šalju svoje mejlove ovom mail serveru).1 Arhitektura Arhitekturu e-mail sistema istražićemo kroz opis četiri tipična scenarija. Takođe pomoću korisničkog agenta Milan može preuzeti i pročitati poruku. kao i u prethodnom scenariju. Treći scenario U trećem scenariju. 4-22. tzv. Ani je neohpodan korisnički agent da bi poruku poslala lokalnom sistemu. Međutim. Ana pokreće program korisnički agent (UA . 4-20 Prvi scenario. poruke koje su slate elektronskom poštom bile su kratke i isključivo tekstualne. Milan je. 102 . 4-21 Drugi scenario. 4-21. 4.korisnički agent. smeštaju se u njegovom poštanskom sandučetu. kako bi mogao da preuzme poruke iz poštanskog sandučeta u njegovom lokalnom sistemu. Mail server koristi red čekanja za smeštanje poruka koje još uvek nisu poslate.User Agent) pomoću koga priprema (piše) poruku i smešta je u Milanovo poštansko sadnuče. Sve poruke koje prima neki korisnik.

Klijent šalje zahtev MAA serveru. Opisana situacija prikazana je na Sl. Milan korisni korisničkog agenta za preuzimanje poruke iz sandučeta i čitanje poruke.agent za prenos poruka. Preuzimanje poruka je operacija pull tipa (poruke se uzimaju od servera). Pošto Milan nema mogućnost direktnog pristupa mail serveru. MTA (Message Transfer Agent) . morao bi neprekidno da radi. Sl. agenti za preuzimanje poruka (MAA . ona poziva korisničkog agenta. To se postiže parom (klijent-server) agenata za prenos poruka (MTA). To znači da bi Milanov računar mora biti stalno uključen. koji neprekidno radi. zahtevajući prenos poruka iz Milanovog mailbox-a. 4-23 Četvrti scenario. MTA (Message Transfer Agent) . Sl. Sistem na Aninoj strani sve primljene poruke čuva u redu čekanja. Milan ne može da zaobiđe mail server i za prijem poruka direktno koristi MTA server. Četvrti scenario U četvrtom i najčešćem scenariju. UA (User Agent) . zato što je MTA program push tipa (uvek samo šalje poruke severu). Milanov sistem prima poruku i smešta je u Milanovo poštansko sanduče.Message Access Agent). 4-22 Treći scenario. UA (User Agent) . što svakako nije praktično rešenje. koji bi bio pokrenut na Milanovom računaru. 4-24 prikazuje ovu razliku.korisnički agent. 4-23. Uvek kada Ana ima poruku za slanje. Za preuzimanje svojih poruka. MTA server. potreban je mehanizam koji će mu omogućiti da preuzme primljene poruke iz svog poštanskog sandučeta. sada je specifično to da ona treba da pošalje poruku mail serveru kroz LAN (ili dial-up. ADSL i sl).agent za prenos poruka. Treba ukazati na dva bitna detalja. Međutim. jer Milan unapred ne može znati kada će mu neko poslati poruku.korisnički agent. koji dalje poziva MTA klijenta. Ani je i dalje neophodan korisnički agent za pripremu poruke. MTA klijent uspostavlja vezu sa MTA serverom koji radi sve vreme. a korisni MTA klijenta za slanje poruka sistemu na Milanovoj strani. uočimo da je potreban još jedan par klijent-server programa. Ovaj zadatak obavlja još jedan par klijent-server agenata. Ovu operaciju ne može da obavlja MTA. MAA (Message Access Agent) . Milan je takođe povezan sa svojim mail serverom putem LAN-a.agent za preuzimanje poruka. Drugo. koji se koristi za preuzimanje poruka iz poštanskog sandučeta.Sl. 103 . Uočimo da su u ovom slučaju potrebna dva para MTA klijentserver programa. tzv. Prvo. Milan koristi MAA klijenta. MAA.

odgovaranje na i prosleđivanje poruka. temu poruke i neke druge podatke. Većina korisničkih agenata na ekranu monitora prikazuje šablon kojeg korisnik popunjava adresom primaoca. Netscape. pine i elm (iz Unix-a). 4-25). sadrži i tekst iz prvobitne poruke. Outbox čuva sve poruke koje je korisnik poslao. pročitana i odgovorena) i opciono temu (subject) poruke.Sl. Njegova namena je da korisniku olakša slanje i primanje poruka. Popularni grafički korisnički agenti su: Microsoft’s´Outlook. čitanje poruka. Korisnički agent obično kreira dva mailbox-a: za primljene poruke (inbox) i poslate poruke (outbox). Primeri ovakvih korisnkičkih agenata su programi mail. Pošto je pročitao poruku. Čitanje poruka. Prosleđivanje poruka. Grafički.2 Korisnički agent Prva komponenta sistema elektronske pošte je korisnički agent. Odgovaranje na poruku. Elektronsko pismo (e-mail) Posredstvom korisničkog agenta. osim novog teksta. Kada pozve korisničkog agenta. Korisnički agent omogućava korisniku da odgovor uputi samo pošiljaocu prvobitne poruke ili svima kojima je prvobitna poruka bila upućena. Eudora. a zatim korisnik unosi tekstualne komande kojima agentu nalaže da izvrši željenu operaciju. gde za svaku poruku daje podatak o veličini poruke. Interfejs čine ikone. već pročitana ali neodgovorena. Prosleđivanje znači slanje primljene poruke. Poruka odgovora obično. status poruke (indikaciju da li je poruka nova. Drugi zadatak korisničkog agenta je da omogući čitanje primljenih poruka. korisnik može da iskoristi korisničkog agenta da bi odgovorio na prouku. a za interakciju sa programom korisnik može koristiti i miša. Inbox čuva primljene poruke sve dok ih korisnik ne obriše. korisnik može da unese preko tastature slovo r da bi ogovorio pošiljaocu poruke ili slovo R da bi odgovorio pošiljaocu i svim primaocima poruke. 4-24 Push vs. nekom trećem licu. Većina korisničkih agenata prikazuje spisak poruka prisutnih u Inbox-u. Savremeni korisnkički agenti obezbeđuju grafičke interfejse za interakciju sa korisnikom. Svaki mailbox je fajl u specifičnom formatu kojeg kreira i o kome se stara korisnički agent. Komandni. temom i sadržajem poruke. Kreiranje poruka. Microsoft Outlook) za kompoziciju (kreiranje) poruka. sve dok ih korisnik ne obriše. Telo poruke sadrži tekst koji će pročitati primalac pisma. primaoca. Komandni korisnički agenti pripadaju ranim danima elektronske pošte. Koverta sadrži obično adresu pošiljaoca. 104 . Poruka se sastoji iz zaglavlja i tela. Na primer.4. korisnik prvo proverava da li u sadučetu primljenih poruka (incoming mailbox ili Inbox) ima novih poruka. Zaglavlje poruke definiše pošiljaoca. korisnik kreira elektronsko pismo (e-mail) koje po strukturi nalikuje poštanskom pismu i sastoji se iz koverte i poruke ( Sl. Korisnički agent pomaže korisniku da kreira poruku koju želi da pošalje. Mailbox-ovi. Servisi korisničkog agenta Korisnički agent je softverski paket (program kao npr. pošiljaocu poruke. Program korisničkog agenta se poziva iz komandne linije. Korisnički agent se takođe brine o poštanskom sandučetu. meni i prozori. Odgovor na poruku podrazumeva slanje poruke pošiljaocu ili svim primaocima primljene poruke. u neizmenjenom obliku. 4. Pull. adresu primaoca i eventualno neke druge informacije. Tipovi korisničkih agenata Postoje dva tipa korisničkih agenata: komandni i grafički.

MIME transformiše ne-ASCII podatke u ASCII podatke. dok ih on ne preuzme. direktno ili posredstvom MAA agenta. E-mail adrese Da bi isporučio poruku. Telo je namenjeno primaocu (čoveku). sistem elektronske pošte mora da poznaje adresu primaoca (tj. binarne fajlove i multimedijalne poruke (slike. gde se čuvaju sve poruke upućene konkretnom korisniku. ne-latinične alfabete (ćirilica). Otuda potiču sledeća ograničenja: nije moguće prenositi poruke u jezicima koji koriste alfabete sa apostrofima (srpski. video). Organizacije obično izaberu jedan (ili više) hostova koji će prihvatati sve e-mail poruke upućene na njihov domen. različite fontove. kao što je prikazano na Sl. Host sa ovom ulogom se zove mail izmenjivač (ME mail exchanger). MIME Sistem elektronske pošte ima jednostavnu strukturu. jednostavnost ima svoju cenu: mogu se prenosi isključivo tekstualne poruke u NVT 7-bitnom ASCII formatu. Sa podrškom za MIME. Na strani pošiljaoca. tekst bez ograničena u dužini linija i ukupnoj dužini.ime_domena. francuski). Međutim. poruke u jezicima koji ne koriste alfabet (kineski i japanski). 4-26 MIME. Lokalni deo je ime jednog specijalnog fajla. na strani primaoca. Korisnik UA ne-ASCII kod Korisnik UA ne-ASCII kod MIME 7-bitni NVT ASCII Telo Zaglavlje Koverta MIME 7-bitni NVT ASCII MTA 7-bitni NVT ASCII MTA Sl.(a) (b) Sl. koji se zove korisničko poštansko sanduče (user mailbox). MTA server. e-mail adresu). nemački. a ni poruke sa ne-tekstualnim sadržajem (slike. audio. koje MTA klijent isporučuje na identičan način kao standardne. e-mail poruka može sadržati: više objekata u jednom telu. 105 . prihvata ASCII podatke i prosleđuje ih MIME konvertoru da ih prevede u prvobitni oblik. MIME (Multipurpose Internet Mail Extensions – višenamenska proširenja Internet pošte ) je dodatni protokol koje omogućava prenos ne-ASCII sadržaja u e-mail poruci. 4-26. 4-25 Koverta i poruka: (a) poštansko pismo. Zaglavlje sadrži informacije za korisničkog agenta. Informacije sa koverte koristi MTA za za isporuku poruke na pravu adresu (baš kao što to čini i PTT). (b) elektronsko pismo. Mailbox-ovi svih registrovanih korisnika nalaze se na ME hostu. tekstualne poruke. audio i video). MIME možemo zamisliti kao skup funkcija za konverziju ne-ASCII podataka u ASCII i obrnuto. E-mail adresa se sastoji iz dva dela: lokalni deo i ime_domena razdvojena znakom @: lokalni_deo@. skup karaktera različit od ASCII. Drugi deo adrese ukazuje na domen odredišta.

definiše poravnanje linija i sl. neformatirane poruke koje se mogu prikazati u obliku u kom su primljene. 4-11 MIME zaglavlja. bez dodatnog procesiranja od strane MIME. Kombinacija text/plane je za obične. ali ne i preteći zvuk. Content-Id. Po prijemu takvog sadržaja. Ako treba preneti filmski zapis. video). Application. prenose ili nezavisno ili kao jedinstvena celina. npr. Tipovi audio i video se koriste za zvuk i video sadržaj. Tip i podtip su razdvojeni kosom crtom. T. Na primer. Za čuvanje i prenos slika u upotrebi su brojni formati. Koristi se za osnovni 7-bitni ASCII tekst. dodat je novi podtip. Standardom je definisano je nekoliko tipova. Ovo zaglavlje definiše korišćenu verziju MIME standarda i ujedno informiše korisničkog agenta da u poruci postoji MIME sadržaj.1. Ovo zaglavlje sadrži jedinstveni identifikator poruke. Dva formata. Content-Type (tip sadržaja). Tip Text Image Audio Video Application Message Podtip Plane Enriched HTML Gif Jpeg Basic Mpeg Ocet-stream Postscript Rfc822 Partial External-body Mixed Alternative Parallel Digest Opis Neformatirani tekst Tekst sa jednostavnim formatiranjem HTML format Slike u GIF formatu Slike u JPEG formatu Zvuk Film u MPEG formatu sekvenca bajtova dokument za štampanje u PostScript formatu MIME RFC 822 poruka Poruka je podeljena na delove Poruka se mora preneti nezavisno Nezavisni delovi definisanom redosledu Više poruka različitog formata Delovi moraju biti prikazani istovremeno Svaki deo je jedna kompletna RFC 822 poruka Multipart Text... uz napomenu da se video odnosi samo vizuelnu informaciju. 4-12 MIME tipovi i podtipovi. Kada je Web postao popularan. Ovaj tip se odnosi na formate koji zahtevaju eksterno procesiranje koje nije predviđeno nekim drugim tipom.MIME uvodi pet novih zaglavlja koji se mogu pridodati originalnom zaglavlju e-mail poruke kako bi se definisali parametri transformacije (vidi tabelu T. poruka: The <bold> time </bold> has come the <italic> walrus </italic> said . Trenutno aktuelna verzija je 1. T. boldirani delovi teksta. sa ili bez kompresije...: Content-Type: video/mpeg Spisak tipova i podtipova dat je u tabeli T. Biće prikazana kao: The time has come the walrus said . 4-12. u zavisnosti od načina kodiranja. MPEG je prvi format koji je bio korišćen za kodiranje videa. od kojih svaki ima jedan ili više podtipova.. Content-Description (opis sadržaja). respektivno. Ovo zaglavlje definiše tip podataka u telu poruke. Zaglavlje MIME-Version: Content-Description: Content-Id: Content-Trensfer-Encoding Content-Type: Značenje Definiše verziju MIME standarda String koji opisuje sadržaj poruke Jedinstveni identifikator poruke Način kodiranja tela poruke Tip i format sadržaja poruke MIME-Version. korisnički agent obično predloži korisniku da dobijeni sadržaj kopira u fajl. video i audio delovi se. a naknadno 106 . Image. kasnije su dodati i neki drugi. ugrađeni su u skoro svaki Inernet pretraživač. Ovo zaglavlje definiše na sadržaj tele poruke (slika. 4-11). Podtip octet-stream predstavlja proizvoljnu (neinterpretiranu) sekvencu bajtova (binarni fajl). audio. text/html koji omogućava da se e-mejlom šalju Web stranice. MIME tip image označava da se e-mail porukom prenose slike. Podtip text/enriched znači da se u tekstu može koristiti jednostavan jezik za formatiranje teksta. koji omogućava da se označe npr. GIF i JPEG.

U telu poruke. poruka može biti poslata u tri oblika: kao običan ASCII tekst. U suprotnom.procesiranje se prepušta korisniku. Rođendanska čestitka je poslata u dva oblika. Ovaj tip omogućava da jedna poruka bude u potpunosti sadržana u nekoj drugoj. Multipart. daje se FTP adresa sa koje korisnički agent može da pribavi fajl. koje treba istovremeno reprodukovati. number=1. number i total. kao enriched tekst i kao PostScript. ukazuje da poruka ima više delova. 4-4 Multipart poruka Primer sa Sl. . Message. na primer: Content-Type: message/external-body. potrebno je i polje content-transfer-encoding. Tip dela (tj. Svaka takva e-mail poruka . Konačno. Svrha multipart zaglavlja je da definiše granice između ovih delova. film). ---------------------------xxxx Content-Type:image/gif. zaglavlje Content-Type je potrebno kao obaveštenje korisničkom agentu o tipu eksternog fajla koji treba pribaviti. Pr. Takođe. Uočimo da se zaglavlje Content-Type javlja na tri mesta. total=1. Tip multipart podržava četiri podtipa: mixed. digest i alternative. Podtip mixed omogućava da svaki deo bude različitog tipa. Sledi primer sadržaja zaglavlja Content-Type prvog fragmenta poruke koja je razbijena na tri fragmenta: Content-Type: message/partial. podtip alternative omogućava da isti sadržaj bude uključen u poruku više puta. Umesto da se u e-mail poruku uključi MPEG fajl.ac.ni. a total ukupni broj fragmenata. njegovu lokaciju i način pristupa. access-type=˝ftp˝. Tri prateća parametra definišu ime fajla. svakom delu poruke prethodi linija koja sadrži granični string kome predhode dva znaka minus ˝--˝.ac. MIME na odredištu prikuplja fragmente i rekonstruiše prvobitnu poruku. u telu drugog dela. Korisnički agent će najpre pokušati da poruku prikaže kao PostScript. --xxxx Content-Type:text/plane. Na primer. prikazaće ASCII tekst. korisnički agent će pribaviti audio fajl birthday. filmovi često imaju razdvojene audio i video kanale. Poseban parametar zaglavlja multipart definiše granični string. Druga mogućnost je enriched. Ako prijemnik ima mogućnost da reprodukuje audio. Prvo pojavljivanje. kao tekst i kao zvuk.snd sa navedene adrese i reprodukovaće ga. Mnogi štampači imaju ugrađene interpretatore za PostScript. definiše tip i podtip dela. id=˝gdjordj@elfak.yu/it. Podtip partial se koristi ako je prvobitna velika poruka razbijena na više e-mail poruka.yu˝.boundary=xxxx. u zaglavlju cele poruke.ni. Dva dela poruke su razdvojena linijom koja počinje duplom crtom sa stringom u nastavku koji je definisan parametrom boundary. Id definiše originalnu poruku i sadržano je u svim fragmentima.elfak. njegov Content-Type) naveden je odmah nakon granične linje. 107 . Telo poruke se završava linijom koja sadrži graničnog stringa omeđen sa obe strane sa po dva znaka minus. name=˝IT. Podtip rfc822 se odnosi na slučaj kada telo poruke sadži kompletnu klasičnu e-mail poruku (zajedno sa njenim zaglavljem). a ako ni to nije u stanju. Podtip digest se koristi u slučajevima kada je u e-mail poruku upakovan veći broj drugih e-mail poruka. parallel. Telo poruke može sadržati više jasno razdvojenih delova. Na primer. biće prikazan tekst. ako je moguće. Number (broj) definiše redni broj fragmenta. Sledeći primer pokazuje poruku iz više delova mixed tipa: Content-Type: multipart/mixed. Podtip external-body se može koristi za izrazito velike poruke (npr.fragment sadži zaglavlje message/partial sa još tri dodatna parametra: id. 4-27 odgovara jednoj multimedijalnoj poruci. ---------------------------xxxx-- Podtip parallel se koristi kada svi delovi moraju biti prikazani istovremeno. za eksterni deo koji nije ASCII tipa.pdf˝. Ova šema je korisna za prosleđivanje e-mail poruka. U okviru svakog dela. ali u različitim oblicima. Podtip postscript se odnosi na jezik PostScript (razvijen u firmi Adobe Systems) koji se široko koristi za opis stranica predviđenih za štampanje. site=es.

4-13 Content-transfer-encoding tipovi. Ova opcija odgovara 8-bitnom kodiranju i koristi se za prenos ne-ASCII karaktera sa ograničenjem da dužina linije ne sme preći 1000 karaktera. 4-13). što će zahtevati upotrebu malih slova. za prenos binarnog sadržaja. kod za 1 (˝000001˝) je ˝B˝ i td. Na primer. znače da poslednja grupa sadrži samo 8. Dva uzastopna znaka jednakosti. uz uslov da dužina linije ne sme preći 1000 karaktera. Pošto to ne mora uvek biti slučaj.com” name=”birthday. site=”music. Kod za 0 (tj. 4-28). Ova opcija odgovara 8-bitnom kodiranju i koristi se za prenos ne-ASCII karaktera bez ograničenjem da dužina linije ne sme preći 1000 karaktera. preporučuje se tip Base64 ili quated-printable.snd” Content-type:audio&basic Content-transfer-encoding: base64 --qwerqcewfqweffqe-- Telo poruke Sl. Binary. T. Sl. ˝000000˝) je ˝A˝. za 62 i 63. 4-27 Primer mulipart poruke. Tip 7bit 8bit Binary Base64 Quated-printable Opis NVT ASCII karakteri i kratke linije Ne-ASCII karakteri i kratke linije Jedinstveni Ne-ASCII karakteri sa linijama neograničene dužine 6-bitni blokovi podataka su kodirani 8-bitnim ASCII karakterima Ne-ASCII karakteri su kodirani parom znak jednakosti i ASCII kod 7bit. ==. za prenos binarnog sadržaja. 4-28 Base64 kodiranje. Raspoloživa su pet tipa kodiranja (vidi tabelu T. umesto ove opcije. deset cifara i još dva znaka. a jedan znak jednakosti da sadrži samo 16 bita. boundary=qwerqcewfqweffqe --qwerqcewfqweffqe Content-Type: text/enriched. 8bit.Zaglavlje poruke Content-Type: multipart/alternative. Ova opcija služi za kodiranje binarnog sadržaja. ispod je dat izgled binarnog fajla kodiranog šemom base64: 108 . Zaglavlje Content-Transfer-Encoding ukazuje na način (šemu) kodiranja tela poruke. već se podrazumeva da je MTA protokol (najčešće SMTP) u stanju da direktno obavlja prenos 8-bitnih ne-ASCII karaktera. ˝+˝ i ˝–˝. Ova opcija odgovara 7-bitnom NVT ASCII kodiranju i koristi se za standardni ASCII tekst. a umeću se u poruku da bi se dužina linije ograničila na 76 karaktera. Base64. Happy birthday to you Happy birthday to you Happy birthday dear <bold> Tanja </bold> Happy birthday to you --qwerqcewfqweffqe Content-Type: message/external-body. Za ovaj tip MIME ne vrši bilo kakvu transformaciju. Za ovaj tip MIME ne vrši bilo kakvu transformaciju. umesto ove opcije. Kod ove šeme. Najveća 6-bitna vrednost je 63. access-tipe=”ftp”. Znakovi za novi red se ignorišu prilikom interpretacije poruke. Pošto to ne mora uvek biti slučaj. već se podrazumeva da je MTA protokol (najčešće SMTP) u stanju da direktno obavlja prenos binarnih podataka. grupa od 24 bita se deli na četiri 6-bitna dela od kojih se svaka prenosi kao jedan legalni ASCII karakter ( Sl. preporučuje se tip Base64 ili quated-printable.

Na Sl. Komande i odzivi SMTP koristi komande za prenos poruke između MTA klijenta i servera (Sl. MTA klijent šalje. 4-30 Oblast primene protokla SMTP. 4-30 je prikazan domen SMTP protokola za ovaj scenario. 4-31). ali sadrže i manji broj ne-ASCII karaktera.SVNBKjAwKiAgICAgICAgICAqMDAqICAgICAgICAgICowMSo5ODc2NTQzMjEgICAgICAqMTIq ODAwNTU1MTIzNCAgICAgKjkxMDYwNyowMTExKlUqMDAyMDAqMTEwMDAwNzc3KjAqVCo+CkdT KlBPKjk4NzY1NDMyMSo4MDA1NTUxMjM0KjkyMDUwMSoyMDMyKjc3MjEqWCowMDIwMDMKU1Qq ODUwKjAwMDAwMDAwMQpCRUcqMDAqTkUqTVMxMTEyKio5MjA1MDEqKkNPTlRSQUNUIwpSRUYq SVQqODEyODgyNzc2MwpOMSpTVCpNQVZFUklDSyBTWVNURU1TCk4zKjMzMTIgTkVXIEhBTVBT SElSRSBTVFJFRVQKTjQqU0FOIEpPU0UqQ0EqOTQ4MTEKUE8xKjEqMjUqRUEqKipWQypUUDhN TSpDQipUQVBFOE1NClBPMSoyKjMwKkVBKioqVkMqVFAxLzQqQ0IqVEFQRTEvNElOQ0gKUE8x KjMqMTI1KkVBKioqVkMqRFNLMzEvMipDQipESVNLMzUKQ1RUKjMKU0UqMTEqMDAwMDAwMDAx CkdFKjEqNzcyMQpJRUEqMSoxMTAwMDA3NzcK Originalni binarni sadržaj se lako može povratiti. neophodna su dva para MTA klijent-server programa.line feed). Quated-printable.3 Agent za prenos poruka: SMTP Prenos e-mail poruka obavlja agent za prenos poruka (MTA). LF . Kod ove šeme kodira se bajt po bajt binarnog fajla. 109 . 4-29 Quated-printable kodiranje. bajt se zamenjuje odgovarajućim 7bitnim ASCII karakterom. (Između mail servera i primaoca koristi se jedan drugi protokol. 4-29).4. SMTP definiše komande i odzive koji se razmenjuju između MTA klijenta i servera. Za poruke koje su najvećim delom ASCII. Pošto u poruci postoji ukupno 612 karaktera. Svaka komanda ili odziv je završen sa dva specijalna karaktera koji se standardno koriste za označavanje kraja linije. kao i između mail servera pošiljaoca i mail servera primaoca.carriage return. šema base64 je neefikasna. bajt se zamenjuje znakom jednakosti nakon kojeg sledi vrednost bajta izražena sa dve heksadecimalne cifre (vidi Sl. CR LF. (Svaki znak se zameni odgovarajućom 6-bitnom binarnom sekvencom. Pošto se svaki ASCII karakter predstavlja sa 7 bita. ukupan broj bita koji se prenose porukom iznosi 612*7 = 4284. Umesto nje. Ako je bajt veći od 127 (osmi bit je 1). Šema kodiranja base64 unosi premašenje od oko 16. Sl.jednostavan protokol za prenos poruka) je formalni Internet protokol koje realizuje MTA klijenta i servera. Između pošiljaoca poruke i njegovog mail servera. SMTP SMTP Pošiljac Primalac LAN LAN Mail server Internet Mail server Sl. za prenos e-mail prouka. o kome će kasnije biti reči.) Pojednostavljeno rečeno. SMTP ((Simple Mail Transfer Protocol . Kao što je već rečeno. odnosno 3672 /8 = 459 bajta.67% u odnosu na direktni prenos binarnog fajla. Ako je binarna vrednost bajta manji od 127 (osmi bit je 0). a novi redovi se ignorišu). može se koristiti šema quated-printable. SMTP se koristi dva puta. u opštem slučaju (četvrti scenario). odgovarajući binarni fajl sadrži 612*6 = 3672 bita. a MTA server prima poruku. (CR . 4.

Format: QUIT RSET. komanda se ponavlja za svakog primaoca. komanda počinje ključnom rečju nakon koje slede nula ili više argumenata. Argument je ime domena klijentskog hosta.ni. Format komade je: RCPT TO: milan@elfak. Prvih 5 su obavezne (moraju biti podržane u svakoj implementacija SMTP protokola). Klijent traži od servera da potvrdi da adresa koju mu šalje identifikuje postojećeg primaoca. Komande Komande se šalju od klijenta ka serveru. Argument je e-mail adresa primaoca.yu RCPT TO. a konekcija resetuje.ni. Linije koje slede nakon komande DATA.yu DATA. Ova komanda prekida e-mail transakciju koja je u toku. 4-14. Argument komade je adresa koju treba proveriti. Format komadne je: DATA Ovo je poruka koju Ana šalje Milanu. RSET VRFY. tretiraju se kao e-mail poruka. Ova komanda se koristi za slanje sadržaja poruke.ni.ac.ac. 4-14 SMPT komande. Ovom komandom klijent identifikuje primaoca poruke.ni. Poruka se završava linijom koja sadrži samo jednu tačku. Format komande je: MAIL FROM: ana@elfak. HELO. Format komande je jednostavan. Podaci o pošiljaocu i primaocu se brišu. Format: VRFY: milan@elfak.yu NOOP.ac. Očekuje se odgovor od primaoca. Argument je e-mail adresa pošiljoca poruke (lokalni deo plus ime domena). Format: NOOP 110 . Ovom komandom klijent identifikuje pošiljaoca poruke. Ako se poruka šalje na više adresa. Ovom komandom klijent se predstavlja serveru. 4-31 Komande i odzivi. Ovom komandom se završava poruka. Spisak komandi dat je u tabeli T. T. Poslednjih šest se retko koriste. Ovom komandom klijent proverava status primaoca.ac. Ova komanda se koristi za proveru adrese primaoca. QUIT. Ključna reč HELO MAIL FROM RCPT TO DATA QUIT RSET VRFY NOOP TURN EXPN HELP SEND FROM SMOL FROM SMAL FROM Argumenti Ime hosta pošiljaoca Pošiljalac poruke Primalac poruke Telo poruke Ime primaoca koje treba verifikovati Mailing lista koju treba proširiti Ime komande Primalac poruke Primalac poruke Primalac poruke Sledi detaljnije objašnjenje obaveznih i preporučenih SMTP komandi. Sledeće tri se povremeno koriste i tretiraju se kao preporučive. Format komande je: HELO: elfak. SMTP definiše 14 komandi.yu MAIL FROM.Sl.

prenos poruke i raskidanje veze. 3. Server odgovara kôdom 354 (start mail input . jer server trenutno nije u mogućnosti da je izvrši. Značenja prve cifre su: 2yz (konačni pozitivan odziv). 5yz (permanentni negativan odziv). 4-33). 1. U slučaju da nije u mogućnosti da prihvata nove poruke. Ovaj korak je neophodan kako bi se serveru dostavilo ime domena sa kojeg dolazi poruka. moguće je preneti jednu poruku između jednog pošiljaoca i jednog ili više primaoca. u istoj liniji. Poruka se završava linijom koja sadrži samo jednu tačku. Koraci 3 i 4 se ponavljaju ako postoji više od jednog primaoca ( Sl. Svaka linija se završava kombinacijom specijalnih karaktera CR LF. Faze prenosa poruke Proces prenosa e-mail poruke ostvaruje se u tri faze: uspostavljanje veze. 111 . 4yz (prolazni negativan odziv). Ovaj korak je potreban kako bi se serveru dostavila povratna e-mail adresa na koju će moći. radi identifikacije. 2. Server šalje kôd 220 (servis je spreman) kojom obaveštava klijenta da je spreman da primi poruku.Odzivi Odzivi se prenose od servera ka klijentu. Odziv je tro-cifarski numerički kôd. Ova faza sadrži osam koraka. ali su neophodne dodatne informacije. Sl. Server odgovara kôdom 250 (OK). da pošalje poruku sa obaveštenjem o problemu u isporuci poruke. Ova faza sadrži sledeća tri koraka ( Sl. Klijent šalje komandu HELO kojom serveru. ali ne i imena svojih domena. Ista komanda može biti poslata kasnije. ili nekim drugim. 5. 3. Klijent šalje komandu MAIL FROM kojom predstavlja pošiljaoca poruke. šalje ime svog domena. 2. Prenos poruke Nakon što je između klijenta i servera uspostavljena veza. može da sledi tekstualna informacija. Akcija nije startovana. 3yz (pozitivan među-odziv). Akcija je završena. Druga i treća cifra pružaju dodatne informacije o odzivu.) Server odgovara kôdom 250 (zahtevana komanda je izvršena). Uspostavljanje veze SMTP server započinje fazu uspostavljanja veze. 4. klijent i server razmenjuju svoje IP adrese. (Setimo se da tokom uspostavljanja TCP konekcije. Server odgovara kodom 250 (OK). nakon što klijent uspostavi TCP konekciju sa serverom na dobro-poznatom portu 25. Komanda je prihvaćena. Komanda sadrži e-mail adresu pošiljaoca. Server je spreman da prihvati sledeću komandu.počni sa slanjem poruke). 7. 4-32 Uspostavljanje veze. 6. Klijent šalje komandu RCPT TO koja sadrži e-mail adresu primaoca. server će poslati kôd 421 (servis nije dostupan). 8. zavisno od situacije. klijent šalje sadržaj poruke. Klijent šalje komandu DATA. U narednim linijama. Posle kôda. u slučaju neke greške. Komanda nije prihvaćena i ne bi trebalo pokušavati ponovo. kojim inicijalizuje prenos poruke. 4-32): 1. Server odgovara kôdom 250 (OK).

4. verzije 4 ). version 4 . u trećoj fazi neophodan je protokol pull tipa: klijent preuzima (traži) poruku od servera. U trećoj fazi koristi se agent za prisup porukama (MAA). 112 . u najopštijem slučaju. klijent raskida vezu sa serverom. Raskidanje veze Nakon što je poruka uspeštno preneta. Ova faza uključuje dva koraka (Sl. Međutim. version 3 . verzije 3) i IMAP4 (Internet Mail Access Protocol. sledi raskidanje TCP konekcije. Klijent šalje komandu QUIT. 4-34 Raskidanje veze.4 Agent za preuzimanje poruka: POP3 i IMAP4 Isporuka e-mail poruke od pošiljaoca do primaoca.Internet protokol za pristup e-mail-ovima. u trećoj fazi. 4-35 je prikazana pozicija ova dva protokola u najčešćoj situaciji (četvrti scenario). 4. SMTP se koristi u prvoj i drugoj. Na Sl. 4-33 Prenos poruke. Kao što je već pomenuto. 2. klijentski računar šalje poruku svom mail serveru koji. u drugoj fazi. Danas su u upotrebi dva MAA protokola: POP3 (Post Office Protocol. Konačno. Nakon što je veza raskinuta. U prvoj fazi.Sl. 4-34): 1. MTA klijent MTA server QUIT 221 Service closed Sl.Poštanski protokol. primalac preuzima poruku od svog mail servera. SMPT je protokol push tipa koji omogućava klijentu da pošalje (preda) poruku severu. poruku isporučuje mail serveru primaoca. Server odgovara kôdom 221. ali ne i u trećoj fazi. uključuje tri faze.

Autorizacija 2. ali umesto da bude odstranjen. POP3 obalja sledeća tri koraka: 1. POP3 POP3 je jednostavan protokol za preuzimanje poruka ograničene funkcionalnosti. jednu po jednu. razmotrimo primer preuzimanja e-mail-ova pomoću protokola POP3 ilustrovan na Sl. nakon preuzimanja. POP3 klijent je instaliran na računaru primaoca. 4-35 Oblast primene protokola POP3 i IMAP4. Ažuriranje Autorizacija se odnosi na proveru prava pristupa korisnika mailbox-u na mail serveru. e-mail poruka se označava za brisanje. a POP3 server na mail serveru. 113 . Režim čuvanja se obično koristi kada korisnik pristupa svojim e-mail-ovima sa nekog drugo računara. Režim brisanja se obično koristi kada korisnik radi na svom stalnom računaru na kome čuva i organizuje sve svoje e-mail poruke. kojeg privremeno koristi. Slično SMTP protokolo. POP3 podržava dva režima rada: režim brisanja i režim čuvanja e-mail-ova. iz svog mailbox-a. U režimu brisanja. Bez ulaženja u detaljnije objašnjenje pojedinačnih komandi i odziva. Po uspostavljanju konekcije. Transakcija omogućava korisniku da pregleda sadržaj i preuzme e-mail poruke. 4-36.Sl. U fazi ažuriranja. što uključuje slanje korisničkog imena i lozinke. Transakcije 3. Korisnik je preuzeo i pročitao e-mail. sa namerom da preuzme pristigle e-mail poruke iz svog poštanskog sandučeta na mail serveru. U režimu čuvanja. ili klikne dugme ˝Send/Receive˝ u programu kao što je Microsoft Outlook. Program za e-mail-ove se obraća POP3 klijentu koji uspostavlja TCP konekciju na portu 110 sa POP3 serverom. tako da kasnije ponovo može biti preuzet i eventualno prenet na korisnikov stalni računar. e-mail je ostao u mailbox-a na mail serveru. POP3 počinje sa radom kada korisnik startuje program za email-ove. POP3 koristi komande i odzive za interakciju između klijenta i servera. preuzeti e-mail-ovi ostaju u korisnikovom mailbox-u. e-mail-ovi označeni za brisanje se odstranjuju iz mailbox-a.

klijent prelistava sadržaj svog mailbox-a pomoću komande LIST. Klijent. IMAP4 pruža sledeće dodatne mogućnosti: Korisnik može proveriti zaglavlje e-mail-a pre nego što ga preuzme. koji sada poseduje spisak. Na primer. Korisnik može da kreira hijerarhijski organizovane mailbox-ove. Nakon uspešne autorizacije. korisnik je obe preuzete poruke označio za brisanje (komandom DELE). POP3 ne omogućava korisnicima da organizuju svoje e-mail poruke na mail serveru.Sl. Korisnik može delimično preuzeti e-mail (Ova mogućnost je korisna. ako se za vezu sa mail serverom korisni dila-up modem. klijent završava fazu transakcije komandom QUIT. Server vraća spisak poruka (svaka poruka u jednoj liniji) zajedno sa veličinama poruka.) Korisnik može da kreira. U toku faze autorizacije. ali ima više funkicija. kada iz korisnikovog mailboxa briše sve poruke označene za brisanje. Spisak se završava tačkom. Ova poruka obično sadrži +OK. a onda i lozinku (komande USER i PASS). server vraća odziv (+OK) i zatvara TCP konekciju. 114 . a u e-mail je prisutan multimedijalni sadržaj koji zahteva daleko veću propusnost radi preuzimanja. Protokol IMAP4 je sličan protokolu POP3. na početku i neki komentar u nastavku. Po prijemu ove komande server ulazi u fazu ažuriranja. preuzima poruke komandom RETR navodeći redni broj poruke kao parametar. Pošto je preneo sve svoje poruke. briše i preimenuje mailbox-ove na mail serveru. Nakon što klijent uspostavi TCP konekciju sa serverom na portu 110. U datom primeru. IMAP4 POP3 ima nekoliko nedostataka. server se prvi javlja slanjem ASCII poruke. 4-36 POP3. Korisnik može pretraživati e-mail tražeći u njemu zadati string karaktera pre nego što ga preuzme. klijent šalje svoje korisničko ime. POP3 ne pruža mogućnost korisnicima da delimično preuzmu e-mail pre nego što odluče da li će ga preuzeti u celosti ili obrisati. Nakon završenog brisanja poruka. Takođe.

Jedno rešenje bilo bi da se celokupan host fajl smesti na jedan centralizovani računar. obraća se najbližem računaru koji sadrži traženu infomaciju. simbolička adresa www.ni. a otkaz centralizovanog računara doveo bi do otkaza celog Interneta.4. jer bi generisalo veliku količinu saobraćaja na Internetu. U ovoj sekciji najpre će biti izloženi osnovni koncepti DNS-a. ovakav pristup je danas nemoguć. a potom i sam DNS protokol.136. Naravno. što znači da je potreban mehanizam za preslikavanje simboličkih imena na IP adrese. Imena iz ovog prostora su nizovi karaktera bez bilo kakve unapred nametnute strukture. Rešenje koje se danas koristi zasnovano je na podeli ogromne količine informacija na manje delove koji se čuvaju na različitim računarima.ni. mreža u svakom slučaju razume samo IP adrese. svako ime se sastoji iz nekoliko delova. Zbog ogromnog broja hostova na Internetu. i td.Sistem imena domena). a da se svi hostovi na Internetu obraćaju ovom računaru uvek kada im je potrebno preslikavanje. Menadžment organizacije ne mora da brine da li je isti sufiks (ili prefiks) izabrala i neka druga organizacija. sa drugom IP adresom. drugi ime organizacije.4. 160.4.23. 4-37 Prostor imena domena. imati zajedničke delove.23. ime je pridruženo adresi. Kada je nekom programu ili korisniku potrebno preslikavanje. Organizacija može dodavati sufikse (ili prefikse) kako bi kreirala imena za svoje hostove ili druge resurse.ac. U ovom slučaju. kao bi se obezbedila jednoznačnost dodeljenih imena. Simbolička imena su uvedena upravo iz razloga da bi se imena hostova razdvojila od adresa hostova. celokupna imena su različita. Ravanski prostor imena Kod ravanskog prostora imena.136. Ovakav metod koristi DNS (Domain Name System .elfak. jer čak iako je su delovi imena isti.yu nego 160. Prostor imena može biti ravanski ili hijerarhijski. DNS zahteva da sva deca nekog čvora imaju različite labele. Kada je Internet bio mali. Međutim.5 DNS Za identifikaciju entiteta na Internetu. ako ih imaju. promeniće se i njena Web adresa: 160. Međutim. Stablo može imati najviše 128 nivoa: nivo 0 (koren) do nivo 127 (vidi Sl. što ga čini nepodesnim za velike sisteme. Centralna uprava može kontrolisati dodelu delova imena koji definišu tip i ime organizacije. Na taj način.elfak.yu može ostati ista i posle promene IP adrese. Ravanski prostora imena mora biti pod centralizovanom kontrolom. host fajl bi bio previše veliki. 115 . kome je potrebno preslikavanja.100. onda to nema neko posebno značenje. za preslikavanje je korišćen tzv. ni ovo rešenje nije praktično. Host fajl ima samo dve kolone: ime i adresa. TCP/IP koristi IP adrese koje na univerzalan i jedinstveni način identifikuju vezu hosta na Internet. dok se odgovornost za preostali deo imena može preneti na samu organizaciju. 4-37). Host fajl se čuvao na hard disku i periodično ažurirao preuzimanjem podataka iz glavnog host fajla.ac. Prostor je struktuiran u obliku invertovanog stabla sa korenom na vrhu. Prostor imena Imena koja se dodeljuju mašinama biraju se iz prostora imena. Labela Svaki čvor u stablu ima oznaku (labelu). bilo bi nemoguće ažurirati host fajlove svih hostova na Internetu uvek kada se desi neka promena. Takođe. host fajl. Prostor imena domena Prostor imena domena je hijerarhijski prostor imena koji se koristi na Internetu. prvi deo može definisati tip organizacije.136. Lakše je zapamtiti: www. Na primer. ali ne moraju. ako organizacija premesti Web server na drugu mašinu. Labela korena je prazan string. Međutim. ljudima je lakše da koriste imena nego IP adrese. Hijerarhijski prostor imena Kod hijerarhijskog prostora imena. Host. kao što je Internet. Šta više. Imena mogu. čime se garantuje jedinstvenost imena domena. Sl. npr. Labela je string od maksimalno 63 karaktera.4. treći odeljenje unutar organizacije. kontrola nad dodelom imena može biti decentralizovana. host pretražuje host fajl i vraća IP adresu pridruženu datom simboličkom imenu.

Na primer: golijat.ac.ac. je FQDN ime računara nazvanog golijat instaliranog na Elektronskom fakultetu u Nišu. 116 . Ono sadrži sve labele. ali ne doseže do korena. DNS klijent poseduje listu sufiksa. DNS server preslikava jedino FQDN imena na IP adrese. Na primer. 4-38 su prikazana neka imena domena. respolver. Ime domena je ime domena čvora na vrhu podstabla.ac.ac.yu null (Sufiks null znači ˝ništa˝. Domen Domen je podstablo prostora imena domena. Na Sl.ni. deo koji nedostaje.yu. Normalno. može definisati delimično ime: golijat Pre nego što prosledi ime DNS serveru.yu ac. To znači da se puno ime domena uvek završava praznim stringom. Puno ime domena je niz labela razdvojenih tačkom (. Uočimo da i sam domen može biti podeljen na domene (ili poddomene. Ime domena se uvek čita počev od posmatranog čvora pa naviše do korena. korisnik sa sajta elfak. golijat sa sufiksom null postaje golijat. kako se ponekada nazivaju).). FQDN je ime domena koje sadrži puno ime nekog hosta.ni.elfak. sufiks. odnosno tačkom. Lista sufiksa na Elektronskom fakultetu u Nišu može imati sledeći oblik: elfak. i tako formira FQDN.ac.Partially Qualified Domain Name) Labela koja nije završena tačkom naziva se PQDN imenom. 4-39 Domeni. 4-39 su prikazani neki domeni. tzv. Delimično ime domena (PQDN . Puno ime domena (FQDN . Na Sl.yu ni. U ovom slučaju.Fully Qualified Domain Name) FQDN je labela završena praznim stringom (odnosno tačkom). (sa tačkom na kraju)). od najkonkretnije do najopštije i na jedinstveni način definiše ime hosta. pridodaje program koji je zadužen za preslikavanje imena. PQDN počinje od posmatranog čvora. Sl. Sl.ni.yu. DNS klijent dodaje sufiks elfak.Ime domena Svaki čvor u stablu ima ime domena.yu koji želi da sazna IP adresu računara golijat. PQDN se koristi kada ime koje treba preslikati pripada istom sajtu kao i klijent (onaj ko traži preslikavanje). tzv. 4-38 Imena domena i labele.ni.

Ideja nije da se sekundarni severi postave na niži nivo odgovornosti u odnosu na primarni server. Primarni server je onaj koji na svom hard disku čuva fajl o zoni za koju je odgovoran. Root server Root (ili vršni) server je server čiju zonu čini čitavo stablo. već da se postigne redundantnost tako da u slučaju da jedan server otkaže preostali mogu nastaviti da opslužuju klijente. 4-40 Zone i domeni. u praksi. Informacije o čvorovima iz poddomena čuvaju se u zonskim fajlovima servera sa nižih nivoa. Primarni server kriera održava i ažurira zonski fajl. ceo Internet bi stao. ono se obavlja na primarnom serveru. tada je ˝zona˝ isto što i ˝domen˝. prostor imena domena (stablo) je podeljeno na dve sekcije: generički (opšti) domeni i nacionalni domeni (Sl. zone file) u kojoj čuva sve informacije o svakom čvoru unutar tog domena. Koren com Zona Domen Zona i domen yahoo Sl. zonski fajl (eng. tzv. ˝domen˝ i ˝zona˝ više nemaju isto značenje. Postoji nekoliko vršnih server. 117 . DNS omogućava podelu domena na manje domene (ili poddomene). Na taj način.Podela prostora imena Informacije sadržane u prostoru imena domena moraju negde biti smeštene. Svaki server može biti odgovoran za jedan domen. Hijerarhija DNS servera Rešenje pomenutih problema je u distribuciji informacija na veliki broj računara. Vršni server obično ne čuva bilo kakve informacije o domenima. Primarni i sekundarni serveri DNS definiše dva tipa servera: primarni i sekundarni. distribuiranih po celom svetu. Međutim. Obzirom da domeni kreirani na ovaj način mogu biti veoma veliki. server za prevođenje imena domena. ali se detaljne informacije čuvaju kod servera sa nižih nivoa (Sl. a taj domen nije dalje podeljen na manje domene. koji potom sekundarnim serverima šalje ažurnu verziju. Sekundarni serveri ne kreiraju niti ažuriraju zonske fajlove. tzv. slično hijerarhiji imena. od kojih svaki pokriva celokupan prostor imena domena. Zona Oblast odgovornosti DNS severa se naziva zonom. Međutim. slično kao na Sl. formira se hijerarhija servera. vršni server se ne oslobođa u potpunosti odgovornosti: on još uvek ima zonu. ako bi otkazao. dovoljan je jedan host koji bi čuvao sve informacije o prostoru imena Interneta i odgovarao na sve upite koji bi dolazili iz bilo kog kraja sveta. Zona se može definisati kao povezani deo stabla. 4-40). To se može uraditi tako što će se celokupan prostor podeli na domene shodno prvom nivou. Ako je ažuruiranje neophodno. 4-15. čuvajući samo reference na te servere. Imena nacionalnih domena su standardizovana (ISO 3166). Naravno. Sekundarni server je server koji informacije o zoni dobija od nekog drugog servera (primarnog ili sekundarnog). DNS na Internetu Na Internetu. Uz to. ako je domen servera podeljen na poddomene i deo njegovih odgovornosti prebačen na druge servere. Drugim rečima. I primarni i seknundarni serveri su odgovorni za zonu koju pokrivaju. 4-41). DNS servera. Generički domeni su pod kontrolom organizacije ICANN. dok prvobitni server čuva neku vrstu referenci na servere sa nižih nivoa. tj. Svaka država ima svoj nacionalni domen. Server kreira bazu podataka. Labele generičkih domena navedene su u tabeli T. već delegira svoju odgovornost na druge servere. U teoriji. za svaki čvor sa prvog nivoa kreira se jedan domen koji obuhvate sve čvorove podstabla sa korenom u tom čvoru. Ako je server odgovoran za domen. 4-39. takav jedan sever bi do te mere bio preopterećen da bi bio beskoristan.

Registracija takvog domena podrazumeva proveru da li je ime domena slobodno i da li je registrovani zaštitni znak. javnih ili vladinih institucija ali i privatnih lica. praktično sve česte reči engleskog jezika su zauzete. 4-41 Generički i nacionalni domeni. uz simboličnu novčanu godišnju pretplatu.13. dobija prava korišćenja domena. razrešivač direktno dobija odgovor. Međutim. Razrešivač se obraća najbližem DNS serveru za zahtevom za konkretno razrešavanje. Razrešavanje imena Proces preslikavanja imena na adrese ili adresa na imena naziva se razrešavanjem ili rezolucijom (od nameaddress resolution). razrešivač može dobiti zahtev da razreši ime domena www.ac. klijent šalje serveru IP adresu koju želi da preslika na odgovarajuće ime domena. što odgovara preslikavanju imena na adrese.yu. Ako je domen koji se traži u nadležnosti DNS servera. 4-15 Generički domeni. razrešivač najpre interpretira odgovor. ako se radi o udaljenom domenu. Kod rekuzivne obrade DNS upita. isporučuje rezultat procesu koji je zahtevao razrešavanje. podnosilac zahteva. Do danas.ni. server vraća odgovor razrešivaču. inače.99. klijent (razrešivač) očekuje da konačni odgovor na svoj upit dobije direktno od servera kome je postavio pitanje.) Rekurzivno i iterativno razrešavanje upita Postoje dva načina obrade DNS upita: rekurzivno i iterativno razrešavanje. razrešivač šalje serveru ime domena tražeći od njega odgovarajuću adresu. Rekurzivno razrešavanje.) Mnogo ređe. (Na primer. poziva DNS klijenta koji se naziva razrešivačem. a informacija o njemu 118 .elfak. Razrešivač DNS je projektovan kao klijent-server aplikacija. da bi proverio da li odgovor sadrži traženo razrešavanje ili grešku. i konačno. univerziteta i drugih privatnih. T. Ovakav tip upita se naziva inverzinim upitom. server upućuje rezrešivač na nekog drugog servera ili se sam obraća drugim serverima kako bi pribavio traženu informaciju. Najčešće. razrešivač može dobiti zahev da pronađe ime domena za IP adresu 160.134.com) organizacije za kooperativno poslovanje informacioni servisi muzeji i druge neprofitne organizacije lična imena (pojedinci) profesionalne individualne organizacije Na drugom nivou hijerarhije su domeni registrovani od strane kompanija. bilo imena na adrese bilo adresa na imena. Ako nema problema.Sl. Host kome je potrebno preslikavanje. Kada dobije rezultat preslikavanja. Oznaka com edu gov int mil net org aero biz coop info museum name pro Opis komercijalne organizacije obrazovne institucije vladine institucije međunarodne organizacije vojne grupacije centri za podršku mreži neprofitne organizacije avio-kompanije komercijalne organizacije i firme (slično . Ako poseduje traženu informaciju. (Na primer.

server. Opisani princip je prikazan na Sl. Ako nekada kasnije. TTL je vreme u sekundama koje definiše koliko dugo infomacija 9 5 119 .com. Ako zna odgovor.com dobija konačni odgovor tek od četvrtog servera odgovornog za domen yahoo. Sl. sve dok konačno ne stigne do klijenta koji je izdao prvobitni zahtev. nakon pretraživanja svoje baze imena. 4-42. proces razrešavanja. Keširana preslikavanja nekog servera potiču iz nekog drugog domena. 4-43 Iterativno razrešavanje. Opisani proces se naziva iterativnim zato što klijent ponavlja isti upit ka više servera. klijentu vraća IP adresu sledećeg DNS servera. roditeljski server će vratiti odgovor. Server. isti. Keširanje Svaki put kada primi upit koji se odnosi na ime koje nije iz njegovog domena. 4-43 klijent iz domena fhda. već nazad vraća IP adresu servera za koga smatra da može razrešiti upit. Keširanje ubržava razrešavanje. drugi server vraća klijentu odgovarajuću IP adresu. server šalje zahtev nekom drugom serveru (obično roditeljskom serveru) i čeka na odgovor. Klijent ponavlja upit i šalje ga ovom drugom serveru. može se desiti da odgovor koji šalje klijentu postane naužurno. Prvo. Kod iterativnog razrešavanja. od servera do servera. može biti dugotrajan. prosleđuje upit dalje odgovarajućem sledećem serveru. smešta informacije iz odgovora u svoju keš memoriju. za slučaj da kasnije ponovo bude potrebna.time-to-live ). bez potrebe da upit šalje nekom drugom serveru. svaki put kada primi odgovor na upti poslat drugom serveru. Zbog potrebe aktivnog učešća većeg broja servera. kada odgovara na upit koji se odnosi na domen za koji je nadležan. a ne od servera koji je nadležan za domen na koji se upit odnosi.edu koji zahteva razrešavanje imena iz domena yahoo. inače. Da bi se vreme razrešavanja skratilo. za koji taj server nije odgovoran. Kada je upit konačno razrešen. Da bi se ovaj problem prevazišao. ili neki drugi klijent. Ako je odgovoran za ime domena. uz obaveštenje da odziv dolazi iz keš memorije. Server vraća odgovor klijentu. sever preslikavanju koje vraća pridodaje i vreme života (TTL . ali i stvara nove probleme. server koji nije u mogućnosti da obavi razrešavanje ne obraća se sledećem serveru. koriste se dve tehnike. odgovor se istom putanjom vraća unazad. server će proveriti svoju keš memoriju i obaviti zahtevano razrešavanje. Klijent se sada mora obratiti trećem serveru i td. proslediće upit sledećem serveru.nije dostupna na lokalnom DNS serveru. sama od sebe u njegovu keš memoriju. 3 8 2 6 Sl. Iterativno razrešavanje. zahtva isto preslikavanje. a promena učinjena na udaljenom domenu se neće preneti. a ako nije. DNS koristi mehanizam keširanja. bilo da je se obavlja rekurzivno ili hijerarhijski. Na Sl. Ako sever čuva keširano preslikavanje isuviše dugo. 4-42 Rekurzivno razrešavanje.

4-45 Format zaglavlja. Markeri (Flags). 4-45. poruka je upit. Za svaku poruku upita. Sl. Drugo. Poruka upita sadrži: zaglavlje i zapis za pitanje. Postavlja se poruci upita.rekurzija poželjna). zapis za nadležnost i dodatne zapise ( Sl. (0 za standardni. Posle tog vremena. Ako je 0. Ovo je 16-bitno polje podeljeno na više podpolja od kojih svako ima neko posebno zančenje (Sl. Polja zaglavlja imaju sledeće značenje: Identifikacija.upit/odziv).iz odgovora može boraviti u keš memoriji bilo kog severa koji dođe u njen posed. s tim što su kod poruke upita neka polja fiksno postavljena na ˝sve nule˝. DNS poruke DNS definiše dva tipa poruka: upit i odziv. zapis za pitanje. ako je 1. Ovo je 4-bitno podpolje koje definiše tip upita ili odziva. AA (authoritative answer . 4-44). Ovo je 1-bitno polje koje postavljeno na 1 znači da je server nadležan za ime domena na koje se poruka odnosi. 1 za inverzni upit/odziv i 2 za zahtev za status servera). (b) odziv. Koristi se samo u poruci odziva. Sl. Koristi se samo ako DNS koristi UDP za transport upita/odziva. Ovo je 1-bitno polje koje kada je u poruci odziva postavljeno na 1 znači da je rekurzivno razrešavanje raspoloživo. Postalja se samo u poruci odziva.rekurzija je moguća). - 120 . Oba tipa imajuisti format. 4-44 Poruke upita i odziva: (a) upit. a korpira u poruci odziva. a svaki sledeći upit mora ponovo biti proleđen nadležnom serveru. (a) (b) Sl. zapis za odgovor. Keš memorija se periodično pretražuje i sve stavke sa prekoračenim vremenom života se odstranjuju iz memorije. RA (recursion available . Zaglavlje Oba tipa poruka imaju isti format zaglavlja.odgovor o nadležnosti). Ovo je 1-bitno polje koje definiše tip poruke. klijent koristi različiti identifikacioni broj.odsečeno). 4-46). Server kopira ovaj identifikacioni broj iz poruke upita u odgovarajuću poruku odziva. Ovo je 1-bitno polje koje postavljeno na 1 znači da je odziv bio duži od 512 bajta i da je skraćen na 512 bajta. RD (recursion desired . TC (truncated . Ovo je 1-bitno polje koje postavljeno na 1 znači da bi klijent želeo da se razrešavanje upita obavlja rekurzivno. Markeri imaju sledeće značenje: QR (query/response . 4-46 Polje za markere. poruka odziva: zaglavlje. Zaglavlje sadrži 12 bajtova i njegov format je prikazan na Sl. preslikavanje se smatra zastarelim. poruka je odziv OpCode (kôd operacije). Ovo je 16-bitno polje koje služi klijentu da bi upario primljeni odziv sa ranije poslatim upitom. DNS zahteva da server svakoj stavci iz keš memoriju pridruži TTL brojač.

Broj dodatnih zapisa. kod DNS-a se koriste dva tipa zapisa: zapisi za pitanja i zapisi za resurse. Vrednost 0 1 2 3 4 5 6-15 Značenje Nema greške Greška u formatu Problem na strani servera imena Problem u referenciranju domena Tip pitanja nije podržan Administrativna zabrana Rezervisano Broj zapisa za pitanja. Sekcija je prisutna samo u poruci odziva i sadrži odgovor koji server vraća klijentu (razrešivaču). Ovo je 16-bitno polje koje sadrži broj odgovora u sekciji poruke odziva predviđenoj za odgovore. Broj zapisa za odgovore. rCode (kôd greške). 4-47 Format zapisa za pitanja. T. U poruci upita. Napomena: svakoj labeli prethodi broj slova u labeli. Sekcija za dodatne informacije Ova sekcija sadrži jedan ili više zapisa resursa i prisutna je samo u poruci odziva. 121 . Sl. Zapisi za resurse se koriste u sekcijama za odgovore. zapis sadrži ime domena. Na primer. Sekcija je prisutna u poruci upita. Tip upita (Query Type). vrednost ovog polja je ˝sve nule˝. Ovo je 16-bitno polje koje sadrži broj pitanja u sekciji poruke predviđenoj za pitanja. vrednost ovog polja je ˝sve nule˝. 4-48. Sekcija sadrži dodatne informacije koje mogu biti od koristi razrešivaču. U poruci upita. Delimičan spisak kôdova dat je u tabeli. Format zapisa za pitanja prikazan je na Sl. a u sekciji za dodatne informacije njegovu IP adresu. (Format zapisa za pitanja biće objašnjen nešto kasnije). Konkretno. Ovo je 16-bitno polje koje sadrži broj dodatnih zapisa u sekciji poruke odziva predvi đenoj za dodatne zapise. Sl. ali i u poruci odziva. server koji šalje vraća poruku odziva klijentu može u sekciji za nadležnost upisati ime domena nadležnog servera. zapisa resursa. Ovo je polje promenljive dužine koje sadrži ime domena u formatu kao na Sl. Ovo je 4-bitno polje koje ukazuje na status greške u odzivu. Sekcija za nadležnost Ova sekcija je prisutna samo u poruci odziva i sadrži jedan ili više tzv. 4-48 Format imena upita. Sekcija sadrži informaciju o jednom ili više servera koji su nadležni za ime domena iz odgovarajuće poruke upita.- Reserved (rezervisano). Zapis za pitanja Zapis za pitanja koristi klijent da dobio informacije od servera. Ime upita (Query Name). 3-bitno polje fiksno postavljeno na 000. Ovo je 16-bitno polje koje definiše tip upita. Status greške može da postavi samo nadležni server. 4-16 Vrednosti polja rCode. Sekcija za odgovore Ova sekcija sadrži jedan ili više zapisa za odgovore. ime se završava cifrom 0. Zapisi za pitanja se koriste u sekciji za pitanja u porukama upita i odziva. 4-47. Sekcija za pitanja Ova sekcija sadrži jedan ili više zapisa za pitanja. Tipovi zapisa Kao što je već rečeno prilikm opisa formata DNS poruke. nadležnosti i dodatne informacije poruke odziva. Neki od često korišćenih tipovo upita dati su u tabeli.

Imena domena se predstavljaju kao niz labela. 32-bitna IPv4. Saadrži IP adresu mail servera domena. 4-49 je prikazan format zapisa resursa. Početak nadležnosti. poslednji bajt svakog imena domena je polje za dužnu sa vrednošću 0. Sadržaj ovog polja je identičan sadržaju polja za tip upita iz zapisu pitanja s tim da poslednja dva tipa nisu dozvoljena. a preostalih 14 predstavljaju redni broj bajta u poruci koji odgovara prvom slovu imena domena (Sl. Zapisan u oktetima (bajtovima). Za primenu na Internetu od interesa je jedino klasa 1. 4-17 Tipovi upita. Takođe. Pointer. Baza imena servera zapravo sadrži resurse zapisa. 4-49 Format zapisa resursa. Tip 1 2 5 6 11 12 13 15 28 252 255 Mnemonik A NS CNAME SOA WKS PTR HINFO MX AAAA AXFR ANY Opis Adresa. Tip domena (Domain type). Kanoničko ime. Klasa domena (Domain class). Prijemnik može da kešira odgovor. Sl. Sadržaj ovog polja je identičan sadržaju polja za klasu upita iz zapisu pitanja. Na primer. Iz razloga efikasnosti. Sadrži opis hardvera i operativnog sistema hosta Mail izmenjivač (server). Sl. Informacije o hostu. Klasa upita (Query class). Definiše mrežni servis kojeg pruža host. Traže se svi zapisi. Ovo je 16-bitno polje koje definiše dužinu polja za podatke u zapisu resursa. Pointer. Ovo je 16-bitno polje koje definiše vreme važenja odgovora u sekundama. Identifikuje nadležni server zone. Svakoj labeli prethodi 1-bajtno polje koje definiše broj karaktera u labeli. resursi zapisa su ono sta sever vraća klijentu kao odgovor na postavljeno pitanje. Vreme života (Time to live). Ovo je polje promenljive dužine koje sadrži ime domena. Koristi se za konverziju imena domena u IPv4 adresu Server imena. svakom čvoru iz stabla prostora imena) pridružen je jedan zapis koji se zove zapis resursa. DNS zahteva da se u svim slučajevima kada se ime domena ponavlja više puta u poruci odziva u ovom polju umesto imena nalazi pointer na prvo pojavljivanje imena domena (obično u zapisu pitanja). Na Sl. Podaci o resursu (Resource data). Traži se prenos celokupne zone. Ime domena. 4-50). Dužina polja za podatke (Resourse data length). Ime domena (Domain name). Pošto se svako ime domena završava praznom labelom. Dobro-poznati servis. IPv4 adresa je intedžer od 4 okteta. Ovo je polje promenljive dužine koje sadrži odgovor na upit (ako se zapis nalazi u sekciji za odgovore) ili ime domena nadležnog servera (ako se zapis resursa nalazi u sekciji za nadležnosti) ili dodatne informacije (ako se zapis resursa nalazi u sekciji za dodatne informacije). Koristi se za konverziju IP adrese u ime domena. Pointer je veličine 2 bajta. IPv6 adresa. Adresa. Obično prvi zapis u fajlu zone. Označava početak zone. Vrednost nula u ovom polju znači zabranu kešrianja informacije zapisa resursa. Format i sadržaj ovog polja zavisi od tipa sadržane informacije i može biti: Broj. Definiše alternativno ime oficijelnog imena hosta. Imena domena se mogu zameniti 2-bajtnim pointerom.T. Zapisi resursa Svakom imenu domena (tj. 122 . Ovo je 16-bitno polje koje definiše protokol kojeg DNS koristi. 4-50 Format pointera u polju za ime domena. Prva dva bita su 11. ali po isteku vrmena života ima obavezu da ga odstrani iz keš memorije. Dva najviša bita pointera su uvek 11.

Sledeća dva bajta označavaju da je upit tipa IP adresa. 4-51 Pr. Bit RD postavljen na 1 znači da bi razređivač želeo da se razrešavanje obavi rekurzivno. Na Sl. Zapis pitanja je ponovljen u poruci odziva. 4-5: (a) poruka upita. (а) (b) Sl. u slučajevima kada je razrešivača uzastopno poslao više upita. Sledeći bajt sadrži markere. odnosno 1000000110000000 binarno. Bitovi RA i RA su postavljeni na 1. Niz karaktera (string) sa 1-bajtnim poljem na početku koje sadrži broj karaktera u stringu. Prva 2 bajta sadrže idntifikacioni broj poruke (1333). 123 .18. il podeljeno na podpolja: QR 1 OpCode 0000 AA 0 TC 0 RD 1 RA 1 Reserv. Vrednost ovog polja 0x0100 heksadecimalno ili 0000000100000000 binarno. Sledeće polje je dužina podataka o resursu. ili podeljeno na podpolja: QR OpCode AA TC RD RA Reserv. 4-51(a) je prikazana poruka upita koju je razrešivač poslao serveru.yu˝. Na Sl. (b) poruka odziva. OpCode = 0000 znači da se radi o standardnom odzivu.000 je vreme života (12. Pr. što znači server podržava rekurzivno razrešavanje.Niz karaktera. rCode 000 0000 Bit QR definiše poruku kao odziv.105).000 s). da bi pronašao IP adresu hosta ˝elfak. Odziv je sličan upitu osim što su markeri drugačije postavljeni i dodatno postoji jedan zapis odgovora. 4-51(b) je prikazan odziv servera. Polje sa upisanom vrednošću 12. a odzivi su stigli izvan redosleda. 4-5: DNS upit i odziv Razrešivač šalje poruku upita lokalnom severu. Vrednost polja za markere je 0x8180 heksadecimalno. Ova vrednost se tumači kao pointer na ime domena. poslednja dva da je upita klase Internet. Posebno ćemo razmotriti poruku upita i poruku odziva.ac. Kao što znamo razrešivač koristi identifikaciju da bi povezao primljeni odziv sa ranije poslatim upitom.8. a polje za podatke sadrži IP adresu (153. OpCode = 0000 znači da je upit standardnog tipa. a polje posle njega klasu (Internet). Sledeće polje definiše tip domena (adresa). Ime domena je 5elfak2ni2ac2yu0. Poruka sadrzi samo jedan zapis pitanja. Zapis odgovora počinje vrednošću 0xC00C (podeljeno u dve linije). rCode 0 0000 0 0 1 0 000 0000 Bit QR postavljen na 0 znači da se radi o poruci upita.ni.

5 Web World Wide Web (ili samo Web) je kolekcija ogromnog broja elektronskih dokumenata sačinjenih od povezanih Web stranica napisanih u HTML-u (Sl. Primer stranice prikazan je na Sl. 5-2 (a) Primer Web stranice. slike). Najpoznatiji Web pretraživači su Internet Explorer i Natscape Navigator. Pretraživač pribavlja stranicu bez ikakve pomoći korisnika. stranica sa Sl. Web pretraživač (browser) je aplikacioni program koji korisnik poziva da bi pristupio stranici i prikazao je. Pretraživač pribavlja traženu stranicu. Klikom na link. 5-2 sadrži naslov i izvesne informacije. Stranice su raspoložive korisnicima Web-a u vidu datoteka smeštenih na milionima računara distribuiranih po Internetu. Koncept stranica koja sadrži pokazivače na druge srodne stranice naziva se hipertekstom. Kao i mnoge slične Web stranice. korisnik prelazi na sledeću stranicu. 5-2. a nova stanica može biti uzeta sa istog računaru sa kojeg je pribavljena i prva ili sa nekog drugog računaru. Konkretno stranica sadrži spisak predmeta i predavača iz grupe za Embedded sisteme Elektronskog fakulteta u Nišu. (b) Stranica koja se učitava u pretraživač klikom na link Internet and Web Technologies. 5-1 Web .distribuirana kolekcija povezanih dokumenata. i prikazuje ga na ekranu monitora. u terminologiji Web-a. Web sajtu). Sl. Svaka stranica može sadržati pokazivače (tzv. Klikom na tekst ˝Internet and Web technologies˝ korisnik može da dobije dodatne informacije o istoimenom predmetu. Delovi teksta koji sadrže linkove na druge stranice su obično naglašeni (podvučeni ili prikazani u odgovarajućoj bolji). linkove ili hiperveze) na druge stranice koje mogu biti smeštene na istom ili na nekom drugom računaru (ili. a ovaj proces se može nastaviti u nedogled. Pretraživač pribavlja i prikazuje stranicu na koju ukazuje izabrani link. Stranica može sadržati i delove koji nisu tekstualni (npr. (a) (b) Sl. Web pretraživač ima ulogu klijenta koji stupa u vezu sa odgovarajućim Web serverom da bi dobio primerak navedene stranice. interpretira tekst zajedno sa sadržanim komandama za formatiranje. 124 . Da bi se Web implementirao na Internetu koriste se dve glavne komponente: Web pretraživač i Web server. 5-1).

7. pretraživač će poslati zahtev ovom računaru.com.elfak. učitane stranice se mogu štampati ili snimiti na hard disk. Za imenovanje stranica koriste se šema poznata pod nazivom URL (uniformni lokator resursa). DNS server odgovara sa 160. Iako su pretraživači u osnovi HTML interpretatori. Pretpostavimo da je korisnik pretražujući Web pronašao link na Elektronski fakultet u Nišu: http://www. URL obično nije vidljiv već je ˝sakriven˝ iza teksta hiperveze) Pretraživač se obraća DNS serveru tražeći od njega IP adresu hosta www.com šalje poruku kojom od njega traži zahtevanu stranicu. 5-3 vidimo pretraživač koji na klijentskom računaru prikazuje Web stranicu. TCP konekcija se zatvara. 5. Kada dobije traženu stranicu.html.yu/home/index. Pored toga.html). 125 . 2.99. kreiranje liste često posećivanih stranica. simboličko (DNS) ime računara na kome je stranica locirana (www.html. 6. 5.Osnovni model rada Web-a prikazan je na Sl.ni. Kada je objekat izabran. Za sada. 8. Po pravilu.ac. Ako ova nova stranica sadrži link na stranicu sa servera xyzw.com. 3.1 Pretraživač uspostavlja TCP konekciju sa hostom 160. Web stranice se pišu u standardnom jeziku koji se zove HTML. U osnovi.yu odgovara slanjem fajla /home/index. pretraživač šalje zahtev tražeći fajl /home/index. tj. Sl. pretraživač obavlja niz aktivnosti kako bi pribavio traženu stranicu. obično su dostupne brojne opcije za podešavanje izgleda stranice. Preko otvorene TCP konekcije. 4.html. i ime datoteke koja sadrži stranicu (products.abcd. Da bi bio u mogućnosti da prikaže stranicu. Tipičan URL je oblika: http://www. 5-3. Takođe. Kada korisnik klikne na liniju teksta koja je povezana sa stranicom sa servera abcd.com/products.abcd. pretraživači imaju dugme za povratak na prethodnu stranicu.html Detaljnije objašnjenje URL-ova sledi kasnije u ovom poglavlju. Tipično. pretraživači poseduju podršku za bookmark-e.99. Na Sl. dovoljno je znati da se URL sastoji iz tri dela: ime protokola (http). dugme za prelazak na sledeću stranicu i dugme za direktno učitavanje stranice koju je korisnik označio kao svoju početnu stranicu. 9. Pretraživač prikazuje tekst sadržan u falju /home/index. Server www.com).elfak. Kada korisnik klikne na hipervezu. pretraživač sledi link tako što serveru abcd.ac.elfak. Jasno je da je za implementaciju hiperveze neophodan način za imenovanje stranica na Web-u.1. Pretraživač pribavlja i prikazuje sve slike iz ovog fajla.ni.1 Web pretraživač Razmotrimo sa više detalja rad klijenta sa Sl. klikom na ovaj link.1.html. Kako bi se obezbedilo da svi pretraživači razumeju sve Web stranice. pretraživač mora da razume njen format. i tako do u nedogled. pretraživač prati hipervezu pridružen objektu i pribavlja izabranu stranicu. 5-3.ni. pretraživač je program koji može da prikazuje Web stranice i reaguje kada se mišem klikne neki objekat na stranici. pretraživač je prikazuje. većina pretraživača poseduje brojne dodatne funkcije koji olakšavaju navigaciju na Web-u. Pretraživač određuje URL (Na stranici.ac. 5-3 Komponente Web modela.1 na portu 80. Sledi niz koraka koje obavlja pretraživač nakon izbora ovog linka: 1.yu.

i pretraživač poseduje interfejs koji je dostupan plug-in-ovima. ikone u GIF formatu. Kada server vrati stranici. Takođe.ac. Drugi način za proširenje pretraživača je zasnovan na pomoćnim aplikacijama. a to važi i za još nekoliko drugih ugrađenih tipova. Međutim. Obično. Na ovaj način.pdf).elfak. instalacioni fajl je tipično samo-ekstrahujući zip fajl sa nastavkom . http://es. Plug-in je programski modul kojeg pretraživač dobavlja iz jednog posebnog direktorijuma na hard disku i instalira kao svoje sopstveno. Tipično. pomoćnoj aplikaciji se prilikom pokretanja prosleđuje ime fajla u koji je smešten sadržaj koji treba obraditi. program za prikazivanje PDF fajlova. Definisan je veliki broj podtipova. 5-4 Koncept proširenja pretraživača: (a) plug-in. To praktično znači da pojava novog tipa fajla (tj. svi plug-in-ovi predviđeni za određeni pretraživač moraju posedovati identičan interfejs. umesto neprekidnog proširivanja i prilagođenja interpretatora sve obimnijem skupu različitih tipova fajlova. svaki plug-in poseduje proceduru putem koje je pretraživač u mogućnosti da plug-in-u prenese podatke za procesiranje. pomoćne aplikacije su obimni programi koji egzistiraju nezavisno od pretraživača. 5-4(b)). program koji se instalira na računar ujedno i 126 . Ovaj program ekstrahuje plug-in iz fajla i kopira ga u direktorijum predviđen za plug-in-ove.exe. Postojanje unapred definisanih interfejsa omogućava da pretraživač koristi sve plug-in-ove na identičan način. pre nego što može da se koristi. a putem kojeg oni mogu da zahtevaju izvesne usluge od pretraživača. a novi tipovi i podtipovi se obično dodaju uvek kada se instalira neki novi program. a kada korisnik klinke na URL. Nakon što je plug-in obavio svoj zadatak.yu/iw/Materijal/lab1. privremeno proširenje (kao što je ilustrovano na Sl. Duplim klikom na zip fajl. Postoje dve mogućnosti: plug-in-ovi (dodaci programu) i pomoćne (halper) aplikacije. komunikacija između pretraživača i pomoćne aplikacije se ne ostvaruje putem interfejsa. application/pdf za PDF fajlove ili application/msword za Word fajlove. Pomoćna aplikacija otvara naznačeni fajl i prikazuje njegov sadržaj. (b) pomoćna aplikacija Da bi pretraživač i plug-in mogli da se povežu. Web pretraživač na računaru tipičnog korisnika konfigurisan je sa tipično više desetina kombinacija tip/podtip. pretraživač konsultuje svoju tabelu MIME tipova u kojoj pronalazi informaciju o tome kako prikazati stranicu datog tipa.ni. Acrobat ili Word se automatski startuje i preuzima na sebe obradu preuzetog fajla. fotografije u JPEG formatu. plug-in mora biti instaliran u sistem. kao što je MIME tip stranice. formata) zahteva kreiranje odgovarajućeg plug-in-a. on se odstranjuje iz memorije pretraživača. Klijetski računar Pretraživač Pretraživač se izvršava kao jedan proces Interfejs pretraživača (koristi ga plug-in) Interfejs plug-in-a (koristi ga pretraživač) plug-in Proces 1 Proces 2 Program Pretraživača Klijetski računar Pretraživač Pomoćna aplikacija (a) (b) Sl. videa u MPEG formatu. Stranica se može sastojati od dokumenta formatiranog u PDF formatu. on zajedno sa stranicom šalje i dodatne informacije o stranici. Ova tabela pridružuje MIME tip odgovarajućem programu za prikazivanje. ako MIME tip stranice nije jedan od ugrađenih. muzike u MP3 formatu. u Windows sistemu. pretraživač može biti konfigurisan za praktično neograničeni broj tipova dokumenata. Na primer. Međutim. Na primer. tipična procedura ovog interfejsa je ona putem koje je plug-in-u omogućeno da ispiše poruku u statusnoj liniji pretraživača ili da zatraži od pretraživača vrednosti izvesnih parametara. Većina pomoćnih aplikacija koristi MIME tip application. Pretraživač mora biti u stanju da prepozna i pravilno interpretira sve ove formate. ne zahteva bilo kakve promene u samom pretraživaču. Slično. odnosno bilo kojeg sadržaja u jednom od stotina različitih tipova fajlova i formata. program registruje plug-in-ov MIME tip i pridružuje plug-in ovom novom MIME tipu. Plug-in nije program za sebe. Pošto se radi o zasebnom programu. Uobičajeni scenario je taj da korisnik download-uje instalacioni fajl plug-in-a sa Web sajta plug-in-a. Međutim. pokreće se program sadržan u zip fajlu. Stranice tipa text/html se prikazuju direktno. a da to. Na primer. Naime. ali ne zahteva bilo kakvu izmenu u pretraživaču. Na ovaj način URL može direktno da ukazuje na PDF ili Word fajl (npr. Interfejs plug-in-a čini skup procedura koje pretraživač može da poziva. Kod Wnidnows sistema. ili Microsoft Word. slično kao kod plug-in-ova. 5-4(a)). kod većine pretraživača koristi se jedno opštije rešenje. kao što je Adobe Acrobat Reader.Pomoćne aplikacije i plug-in-ovi Ne sadrže sve stranice samo HTML. Pomoćne aplikacije su kompletni programi koji se izvršavaju nezavisno od pretraživača (Sl. već se izvršava kao deo pretraživača i na taj način ima pravo pristupa tekućoj stranici i može je procesirati.

dupli klik na fajl nešto. Web server možemo zamisliti kao program koji neprekidno. Kao posledica toga. pokrenuće Acrobat u kome će sadržaj fajla biti prikazan. ali sa druge strane. pretraživač analizira URL i deo između http:// i sledeće kose crte tumači kao DNS ime čiju IP adresu traži od DNS servera. kada Internet Explorer pribavlja fajl sa nastavkom . korisniku se postavlja pitanje da li želi da program kojeg instalira registruje za ponuđene ekstenzije. Sa IP adresom na raspolaganju. 127 . Jedno poboljšanje koje se koristi kod svih Web servera podrazumeva da se u operativnoj memoriji ra čunara kreira keš sa n najskorije korišćenim fajlovima. Međutim. postojeće asocijacije će biti prepisani novim. Za Web sajtove sa velikom brojem istovremenih posetioca 200 zahteva/s je isuviše malo. U takvim situacijama. neophodan je način kako će pretraživač odrediti koji plug-in ili pomoćnu aplikaciju upotrebiti za obradu konkretnog lokalnog fajla. rad Web servera se svodi na prethodnu proceduru. Savremeni Web serveri poseduju brojne dodatne mogućnosti. instalacija novog programa može kao posledicu imati promenu načina na koji pretraživač obrađuje postojeće tipove dokumenata. a ne samo one preuzete sa udaljenih Web servera. tada nije potrebno pristupati hard disku jer se fajl može uzet direktno iz memorije. može da dovede i do problema koji se tiču sigurnosti.mpg fajlove. Pošto lokalnim fajlovima nisu pridruženi MIME tipovi. Zbog toga. Pomoćne aplikacije. Zatvara TCP konekciju.pomoćna aplikacija˝ i dati MIME tip/podtip vezuje za sebe. kada korisnik ukuca URL ili klikne na hipervezu. Mogućnost proširenja pretraživača velikim brojem novih tipova značajno olakšava korišćenje Web-a. server proverava keš. Ovaj problem se prevazilazi na sledeći način. ekstenzije fajlova. mogu takođe biti registrovane i za obradu fajlova sa nekim specifičnim nastavkom (ekstenzijom). 5. broj zahteva koje Web server može da opsluži u sekundi direktno je određen vremenom pristupa hard disku. ušteda u vremenu obrade jednog zahteva je obično dovoljno velika da kompenzuje dodatni trošak. Normalna akcija u ovakvoj situaciji je pokretanje preuzetog programa. Server vraća nazad fajl i pretraživač ga prikazuje. Na primer. Kroz otvorenu konekciju. Pretraživači mogu otvarati i lokalne fajlove (sa hard diska). Međutim. Ukoliko je odgovor potvrdan. ime fajla na kontaktiranom serveru. Pojedini pretraživači koriste MIME tipove. pretraživač uspostavlja TCP konekciju na portu 80 odgovarajućeg servera. tj. 3. pored toga što su u sistemu registrovane za obradu MIME tipa. Da bi se predupredile ovakve situacije. 2. Iako je za efikasno keširanje potrebno rezervisati relativno veliku količinu operativne memorije kao i dodatno CPU vreme radi provere da li se fajl nalazi u kešu. ovakav mehanizam vodi do koflikta kada u sistemu postoji više prikazivača za isti MIME podtip (npr. Prosečno vreme pristupa hard diskova velike brzine rada iznosi oko 5 ms. Tipično. on zaključuje da se radi o izvršnom programa kome zbog toga nije potreba pomoćna aplikacija. dupli klik na fajl nesto. što postavlja ograničenje na najviše 200 zahteva/s (i manje ako se često čitaju veliki fajlovi). u sistemu može postojati više programa koji su u mogućnosti da procesiraju . Pre nego što fajl potraži na disku. U tipičnoj konfiguraciji. Šalje fajl klijentu. 5. podrazumeva pristup hard disku radi uzimanja traženog fajla. video/mpg).doc dovešće do otvaranja ovog fajla u programu Word. Slično kao kod asocijacija za MIME tipove. Ako je fajl u kešu.pdf.exe. Internet Explorer može biti podešen da ne startuje automatski nepoznate programe ili da konsultuje korisnika pre nego što pokrene preuzeti program. Preuzima ime zahtevanog fajla. Pronalazi fajl (na svom hard disku). Slično. pretraživač šalje komandu koja sadrži preostali deo URL-a. Na primer. pa čak i informacije uzete iz samog fajla kako bi odredili o kom tipu fajla se radi i pozvali odgovarajuću pomoćnu aplikaciju ili učitali odgovarajući plug-in. poslednji program koji je registrovan prepisuje postojeću asocijaciju ˝MIME tip . Prihvata TCP konekciju od klijenta (pretraživača).2 Web server Kao što je objašnjeno u prethodnoj sekciji. ali u osnovi. Uočimo da svaki zahtev upućen od strane klijenta. to može biti ozbiljna pretnja sigurnosti sistema jer preuzeti program može sadržati virus. u petlji.registruje MIME tipove koje želi da obrađuje. i kod asocijacija za ekstenzije fajlova može doći do konflikta između programa koji su ˝voljni˝ da obrađuju fajlove sa istim nastavkom. 4. u toku instalacije novog programa. obavlja sledeći niz aktivnosti: 1.

stranici može biti dostupna samo lokalnim korisnicima). Konkretno. u zavisnosti od tipa pristiglog zahteva. Prednost opisanog mehanizma je u tome što za vreme dok su jedan ili više pozadinskih modula blokirani čekajući na završetak operacije čitanja fajla sa diska (i zbog toga ne troše CPU vreme). Korak 1 je neophodan zato što primljeni zahtev ne mora sadržati stvarno ime fajla.ac. Pribavljanje zahtevane stranice sa diska. U koracima 5 i 6 vrši se uzimanje stranice. Provera keša. a pojam multithreading kao višenitni rad ili rad sa više niti u isto vreme. 6. zapis sa upisanim pokazivačem se vraća pristupnom moduli koji preuzima fajl iz keša i prosleđuje ga klijentu koji je uputio zahtev. Procesi i niti su dva osnovna mehanizma za paralelno (konkurentno) izvršavanje programa. Programi koji imaju potrebu da istovremeno obavljaju više poslova u isto vreme mogu za svaki takav zadatak da kreiraju jedan proces koji će se izvršavti uporedo sa drugim procesima. a da server izabere verziju stranice na tom jeziku. razmotrimo URL http://www. Ako fajl nije u kešu. 7. 1 128 . Na primer. može biti k puta veća u odnosu na single-thread server i jedan disk. 5-5). Na primer. kod kojeg ne postoji ime fajla. Korak 7 podrazumeva određivanje MIME tipa stranice (na osnovu ekstenzije fajla. Pozadinski modul najpre proverava da je fajl koji traži prisutan u kešu i ako jeste. Određivanje MIME tipa koji će biti sadržan u odgovoru koji se vraća klijentu. 2. Određivanje imena zahtevane Web stranice iz URL-a. pozadinski modul započinje operaciju prenosa fajla sa diska u keš (uz eventualno izbacivanje nekih keširanih fajlova. Svih k+1 thread-ova pripada istom procesu i imaju pristup kešu. zahtev se odnosi na podrazumevani fajl (čije je ime obično default. ostali moduli mogu biti aktivno upošljeni na obradi novih zahteva. obavljaju i niz dodatnih operacija. Takođe. osim vraćanja klijentu traženog fajla. pretraživač može u zahtevu da navede podrazumevani jezik korisnika (npr. prvih nekoliko reči samog fajla ili na neki drugi Engleska reč thread se prevodi kao nit. Naravno. 5. 9. pristup stranici može biti dozvoljen samo ako zahtev potiče iz određenih domena (npr. U idealnom slučaju. da bi se ostvarilo bilo kakvo poboljšanje performansi u odnosu na single-thread (jednonitni) model. 4.html). u zapis upisuje pokazivač na fajl. Provera autentičnosti klijenta Provera prava pristupa klijenta. server se sastoji iz jednog front-end (isturenog) pristupna modula koji prihvata sve dolazne zahteve i k pozadinskih modula koji obrađuju zahteve (Sl. Ovaj korak je neophodan za stranice koje nisu dostupne svim korisnicima. Svaki proces poseduje svoju memoriju za čuvanje svojih podataka. Srpski ili Engleski). Sl. Korak 2 podrazumeva proveru identiteta klijenta. Kod takvog rešenja. neophodno je da sistem poseduje više od jednog hard diska (kako bi više diskova bili istovremeno upošljeni). Slanje odgovora klijentu.Sledeći način za ubrzanje rada Web servera predviđa uvođenje multithreading1. pristupni modul ga prihvata i kreira jedan kratak zapis sa podacima o zahtevu kojeg predaje jednom od trenutno raspoloživih pozadinskih procesa. Nakon što je fajl prebačen u keš. U takvim slučajevima. Savremeni Web serveri. U koraku 4 proverava se da li je postoji neko ograničenje koje se odnosi na pristup samoj stranica. propusna moć multithread Web severa sa k pozadinskih modula u sistemu sa k diskova. Provera prava pristupa Web stranici.yu. 3. ako u kešu nema dovoljno prostora). Nit je u osnovi sličan procesu. pozadinski modul obavlja neki podskup sledećeg niza aktivnosti: 1. 5-5 Multithread Web server sa pristupnim modulom i pozadinskim modulima.elfak. 8. Kreiranje zapisa u log fajlu.html ili index.ni. U koraku 3 proverava se da li je datom klijentu dozvoljen pristup traženoj stranici. Kada zahtev stigne. s tom razlikom da ne poseduje svoju spostvenu memoriju već je deli sa svim ostalim nitima kreiranim u istom programu.

yu) i ime fajla (iw/iw. a da naredne zahteve koji odnose na istu stranicu šalje istom čvoru.htm). Kod mnogih Web sajtova uvedene su skraćenice za imena fajlova. Jedan način za ublažavanje gubitka u performansama zbog nepostojanja zajedničkog keša sastoji se u tome da pristupni modul vodi evidenciju o tome kome je poslao svaki zahtev. od kojih svaki eventualno poseduje više diskova (Sl. Zapis sadrži informaciju o identitetu klijenta. jer svaki čvor poseduje svoju sopstvenu memoriju. Deo za ime fajla se sastoji od relativna putanja u odnosu na podrazumevani Web direktorijum na serveru es. ime oblika ~ana/ zamenjuje kompletnu putanju do direktorijuma korisnika ana na lokalnom računaru.yu/iw/index.ni.ni.ni.elfak. Sl. umesto jednog koristi se više čvorova (računara).elfak. Naime. U slučajevima kada je broj zahteva koji se upućuje Web serveru u jednoj sekundi veoma veliki. Na primer. Pristupni modul i dalje prihvata zahteve. 3.elfak. U koraku 9.ac. ključna pretpostavka Web-a je postojanje mehanizma za imenovanje i lako lociranje stranica.ac. 2.elfak. domenu iz kojeg zahtev poslat.ni. a da je zahtev prosleđen čvoru kod kojeg se fajl mora pročitati sa diska.ac.uniformni lokator resursa) stranice.ac. Web server zahtev se preusmerava na glavnu (podrazumevanu) stranicu Web sajta. 129 . Konkretno. pre nego što izabrana stranica može biti pribavljena i prikazana u pretraživaču. Na ovaj način. vreme prijema zahteva. Imajući to u vidu. može se desiti da je traženi fajl prisutan u kešu nekog čvora. koje počinju znakom ˝~˝.ac. a zapamćenih u fajlovima koji su locirani na hiljadama servera distribuiranim po globalnom Internetu. U takvoj situaciji. http://es. 5. ali ih sad distribuira različitim računarima. U koraku 9. Koje je ime stranice? Gde se stranica nalazi? Kako se stranici može pristupiti? Odgovor na ova tri pitanja sadržan je u URL-u (Uniform Resource Locator . (b) DNS ime računara na kome je stranica locirana i (a) lokalno ime koje na jedinstveni način ukazuje na konkretnu stranicu (najčešće ime fajla na hard disku u kome je stranica zapamćena).htm). pojedinačni čvorovi se ˝specijalizuju˝ za pojedine stranice tako da se ukupni raspoloživi prostor u kešu ne troši neracionalno za čuvanje svakog fajla u svakom kešu. samo http://es. vreme obrade zahteva je duže nego što je to neophodno. Kod ovog modela. smanjuje se opterećenje pojedinačnih računara.htm i sastoji se iz tri dela razdvojenih kosim crtama: protokol (http).yu (iw/) i imena samog fajla (iw.yu/iw/). log fajl).elfak. Naime.3 URL Web se sastoji od ogromne kolekcije dokumenata/stranica povezanih hipervezama. U takvim situacijama koristi se model farme servera. Deo za ime fajla može biti izostavljen iz URL-a (npr. neophodno je odgovoriti na sledeća tri pitanja: 1.elfak. formira se odgovor koji se vraća klijentu. bez obzira na broj hard diskova koji se koriste u paraleli.yu). Web server preusmerava zahtev na podrazumevani fajl u tom direktorijumu (npr. http://es. Na taj način. U takvim slučajevima.htm). jedan CPU neće biti u stanju da obradi sve zahteve. Pretpostavka je da svi računari uključeni u farmu servera poseduju sve Web stranice.ac.yu/iw/iw. deo za ime fajla može da sadrži putanju do direktorijuma. DNS ime hosta (se. 5-6 Farma servera Jedan problem koji se javlja kod farme servera posledica je nepostojanja zajedničkog keša. U tom slučaju. Takođe. Na primer.ni. ime zahtevane stranice i td. URL se sastoji iz tri dela: (a) protokol (ili šema). Takođe. formira se zapis o obrađenom zahtevu i upisuje u jednom posebnu datoteku za vođenje evidencije o pristupima Web severu (tzv. nakon obrađenog zahteva isti fajl će se naći u dva keša. ali ne i samo ime fajla (npr. svakoj stranici na Web-u dodeljen je URL koji se koristi kao njeno svetski jedinstveno ime.ni. URL Web stanica kursa Internet i Web tehnologije na Elektronskom fakultetu u Nišu je http://es. a ne nitima u okviru jednog računara.način). 5-6).

Šta više.doc news:comp. Protokol FTP. Gopher. sa naglim širenjem Web i porastom njegove popularnosti. Konceptualno. ali ne zahteva FTP server. već se za ovu namenu mogu koristi različitih aplikacionih protokola koji su specijalizovani za prenos specifičnih tipova resursa.org:80 Sl. omogućava prenos fajlova u oba smera.yu ftp://ftp. a onda i za prenos odgovora (koji sadrži traženu stranicu) od servera do pretraživa ča.000 grupa za razmenu vesti u kojima milioni ljudi diskutuju na najrazličitije teme tako što postavljaju i čitaju članke koji se odnose na temu konkretne grupe. news. Međutim. na isto način kao Web stranica. Danas ga čini oko 30.w3. za razliku od HTTP.yu telnet://www. Protokol file omogućava pristup lokalnim fajlovima i prikazivanje njihovog sadržaja u pretraživaču. Protokol HTTP je osnovni protokola Web-a i koristi se za komunikaciju Web klijenta i Web servera. za komunikaciju između Web klijenta (pretraživača) i Web servera koristi se TCP protokol. posredstvom Web pretraživača. Dovoljno je u polje za unos hiperlinka upisati mailto: i e-mail adresu primaoca. dok su pravila konverzacije i formati poruka koje se razmenjuju između pretraživača i Web servera regulisana posebnim aplikacionim protokolom.4 Cookie Kod Web-a ne postoji sesija.umn. kada se Web gotovo isključivo koristio za pribavljanje javno dostupnih dokumenata.os. Ime http ftp file news gopher mailto telnet Koristi se za Hipertekst (HTML) FTP Lokalni fajl Newsgroup Gopher slanje elektronske pošte Udaljeni login Primer http://es. a server vraća nazad traženi fajl. koja se potom koristi za prenos zahteva od pretraživača ka serveru. Većina Web pretraživača. već i korišćenje drugih mrežnih servisa (FTP.elfak. otvara program za slanje elektronske pošte sa popunjenim poljima za e-mail adresu. Nakon obavljene transakcije. U zaključku. upisivanjem telnet: zajedno sa IP adresom udaljenog hosta u polje za unos hipelinka.ac.tc. Danas se smatra zastarelim i nije više u upotrebi. u ovakvoj situaciji. neki Web sajtovi zahtevaju od korisnika da se registruju pre nego što im se dozvoli korišćenje dostupnih usluga sajta. a ne i slike. TCP protoko se koristi samo za transport zahteva i odgovora. Međutim. FTP. Delimičan spisak protokola koji se mogu koristiti kao deo URL-a. Šta više Web je olakšao korišćenje FTP-a. od pristupa putem osnovnog FTP korisničkog interfejsa. naveden je u tabeli sa Sl. Pretraživač otvara TCP konekciju sa Web serverom.ni. kako od servera do klijenta.ni.edu/11/Libraries mailto:ppetrovic@elfak. model zasnovan na nezavisnim transakcijama više nije mogao da zadovolji sve potrebe novih primena. Više detalja o ovom protokolu biće dato u sledećoj sekciji. bio je u širokoj upotrebi i pre nastanka Web-a. Na primer.ac. 5. Ovaj pristup je sličan FTP-u. s obzirom da je pristup FTP serveru preko Web pretraživača lakši. ali podržava samo tekst. postojao je mnogo pre nastanka Interneta. Takođe. server ˝zaboravlja˝ da je ikada komunicirao sa tim konkretnim klijentom. koji se koristi za pristup fajlovima.elfak. koristi se za uspostavljanje konekcije sa udaljenim hostom. Postavlja se pitanje. ne postoji samo jedan. Protokol mailto omogućava korisnicima da putem Web pretraživača šalju elektronsku poštu. Gopher je sličan Web-u. Slično kao u slučaju mailto protokola. kao što znamo. Protokol telnet. (Kaže se da je Web stateless (bez stanja) ili bez memorije). Ime protokola koji se koristi za pristup stranici navedeno u početnom delu URL-a.yu file:// C:\Documents and Settings\Goran\My Documents\Courses\IWT\iwt.ni. U prvom periodu razvoja Web.ac.minix gopher://gopher. Protokol news omogućava da se članku iz grupe za razmenu vesti pristupa na isti način kao i Web stranici. Pretraživač šalje zahtev. Naravno. tako i od klijenta do servera. ovakav (stateless) način rada bio je u potpunosti zadovoljavajući. otvara program za rad TELNET protokolom.Kao što je već rečeno. Sistem vesti USENET. koji se smatra pretečom Web-a. primenljiv je samo na fajlove koji se nalaze na lokalnom hard disku računara. Gopher je protokol koji se nekada koristio u istoimenom sistemu za pronalaženje informacija na Internetu. e-mai i telent) na uniforman način. kako će Web server znati da li 130 . 5-7 Protokoli koji se mogu korisiti u URL-u. I danas na Internetu postoj veliki broj FTP servera sa kojih zainteresovani korisnici mogu preuzimati najrazličitije fajlove. URL je osmišljen ne samo da omogući korisnicima navigaciju na Web-u. 5-7.

Expires (rok važenja). Ako klijent izabere drugi artikl. Web server kreira. dobijaju IP adresu na privremeno korišćenje. cookie se ažurira novim podacima. Na prvi pogled. osnovni princip je uvek isti. Ovakav cookie se zove neperzistentni cookie. Iako kreiranje i čuvanje cookie-a zavisi od konkretne realizacije. nakon konektovanja. Pretraživač čuva cookie do sledećeg obraćanja serveru.. od korisnika se zahteva da izabere jednu ili više oblasti za koje je zainteresovan (tehnika. server preuzima poslednji cookie i izračunava ukpunu cenu.. Međutim.. Server. ali nikada ne čita sadržaj cookie-a. Kreiranje i čuvanje Cookie-a. zajedno sa traženom Web stranicom. beletristika. koja ne mora biti ista kao IP adresa koju su koristili prilikom prethodnog konektovanja. sportski rezultati. izabere one koje želi da kupi i stavi ih u elektronsku korpu i na kraju kupovine plati račun kreditnom karticom.). i šalje ga klijentu. Sadržaj ovog polja je oblika ime = vrednost. U nastavku će biti objašnjen način kreiranja. registracioni broj) kao i dodatne podatke koje imaju značaj u konkretnoj situaciji. pretraživač uništava cookie prilikom svog zatvaranja. Na strani klijenta. kurs. Ukoliko su 131 . šalje ga klijentu. Pretraživač izdvaja cookie iz odgovora i smešta ga u odgovarajući direktorijum. Pre svega. Kada klijent završi kupovinu i želi da se odjavi. Ovo polje sadrži ime domena iz koga cookie potiče (domen servera). cookie pravi i koristi (konzumira) server. Secure) Domain (Domen). Cookie pravi server i. Kada klijent šalje zahtev serveru. Expires. Format cookie-a Cookie može sadržati do pet polja: (Domain. mnogi korisnici koriste računare koje dele sa drugim korisnicima. postoji cookie kojeg je poslao dati server. Sličan problem se javlja kod Web sajtova elektronskih prodavnica koje omogućavaju korisniku da pregleda ponuđene artikle.zahtev potiče od registrovanog ili neregistrovanog korisnika. Ovo polje sadrži putanju u strukturi direktorijuma servera koja ukazuje na deo njegovog stabla direktorijuma unutar kojeg sve stranice mogu koristiti cookie. čuvanja i korišćenja cookie-a. Yahoo) kod kojih svaki registrovani korisnik može da konfiguriše sadržaj početne stranice birajući informacije koje će biti prikazane uvek kada učita stranicu (npr. . Cookie je mali fajl (ne veći od 4KB) ili string koji se pridodaje svakom zahtevu ili odzivu koji se razmenjuju između klijenta i servera. Ovo polje sadrži datum i vreme kada prestaje važnost cookie-ja. Korišćenje cookie-a Jedan mogući scenario korišćenja cookie-ja je sledeći. Međutim. a ne o nekom novom. prepoznatljivom korisniku. Content. mnogi korisnici (pre svega kućni) Internetu pristupaju putem provajdera Internet usluga (npr. pretraživač ga pridodaje zahevu i šale serveru. Još jedan tipičan scenari okorišćenja cookie-a srećemo kod elektronskih prodavnica. Na osnovu sadržaja cookie-a. Na osnovu ovih podataka. pretraživač proverava da li u direktorijum za cookie.. Content (sadržaj). Prilikom prve posete sajtu za on-line prodaju knjiga. Ako takav cookie postoji. čini se da je dovoljno da server vodi evidenciju o IP adresama sa kojih se upućuju zahtevi za stranicama.. zna da se radi o starom. Path. Drugo. Dakle. IP adrese može da identifikuje računara. Kada klijent (kupac) izabere artikal i stavi ga u korpu. Kosa crta ˝/˝ u ovom polju znači celokupno stablo. niti njegov sadržaj otkriva korisniku. Kad god kasnije korisnik pristupi ovom sajtu. cena i količina) i šalje pretraživaču. Cookie sadrži ime domena servera zajedno sa podacima koje je server prikupio od klijenta (korisničko ime. ako ne zna koji korisnik je uputio zahtev. pa da na osnovu toga dozvoli ili zabrani pristup nekim svojim stranicama. ova ideja nije dobra. Path (putanja). pomoću modema) od kojih. vremenska prognoza. Nakon obavljene registracije server kreira cookie sa sadržajem oblast1=tehnika. kreira se cookie koji sadrži informacije o artiklu (npr. i vraća nazad stranicu koja sadrži spisak novih knjiga iz oblasti za koje je korisnik zainteresovan. kada primi zahtev. kako će Web server znati kako da prilagodi stranicu korisniku. Da bi se opisani problem rešio. oblast2=naucna_fantastika.. ). Ako ovo polje ne postoji. pretraživač zajedno sa zahtevom šalje serveru i odgovarajući cookie. server saznaje ime korisnika i koristi ga kao ključ za pretragu baze podataka iz koje čita i ostale podatke tog korisnika. ali ne i korisnika koji trenutno radi na računaru. razvijena je tehnika pod nazivom cookies (kolačići). Ime i vrednost mogu biti bilo koja informacija koju server želi da uvrsti u cookie. Drugi primer su Web portali (npr. pretraživač automatski izdvaja cookie iz primljenog odziva i smešta ga na hard disk u direktorijum predviđen za čuvanje cookie-a.

To znači da se razmaci mogu slobodno koristiti kako bi se HTML dokument učinio čitljivijim.5 Statički Web dokumenti Osnova Web-a jeste prenos Web stranica od servera do klijenta. Izborom ove opcije. a &egrave. Zaglavlje počinje tagom <head>.datum i vreme sadržani u cookie-ju. grafiku i hiperveze ka drugim Web stranicama. Naslovi omeđeni tagom <h2> ispisuju se manim fontom sa manjim razmakom iznad i ispod teksta naslova. <img>. umesto njenog formatiranog izgleda. tag) i uokvirene su znakovima manje od i veće od. shodno nihovom nivou. nalaže pretraživaču da cookie može da se vrati serveru samo u šifrovanom obliku. Većina HTML tagova ima identičan format. Tagovi <b> i <i> se koriste za označavanje teksta koji treba ispisati masnim (bold) i iskošenim (italic) slovima. <b> znači početak. 5. sa parametrima src i alt. Tako. Vrednost parametra src je postavljena na abc. a odnose se na sve stavke koje se nalaze između uparenih oznaka. koriste <nešto> da označe početak nečega i </nešto> da označe njegov kraj. &gt i &amp. Takođe. &nbsp. Tipično. respektivno. koristi se: &lt. Secure (Sigurnost). Svaka Web stranica se sastoji iz dva dela: zaglavlje i telo. Naslov se ne prikazuju na stranici. označava blanko znak. Pomoću HTML-a projektant (dizajner) Web stranica može da kreira Web stranice koje sadrže tekst. bez bilo kakvih izmena.6. prazne linije. Ako je postavljeno na Yes. Specijalni znak počinje znakom ˝&˝. s obzirom da se ignorišu. S obzirom da su parametri imenovani. a završava se tagom </head>. datoteke smeštene na nekom serveru koje ˝čekaju˝ da budu zatražene i koje se. mada se kod nekih pretraživača prikazuje kao naslov prozora stranice. odnosno kako će biti prikazani u Web pretraživaču. a </b> kraj teksta napisanog masnim slovima. Za svaki tag. ˝>˝ i ˝&˝. tekst naslova višeg nivoa (sa manjom brojnom vrednošću) ispisuju se većim i ˝težim˝ fontom. zavisi od pretraživača. a <h6> naslov namanje važnosti. a parametra alt na slika. HTML definiše skup komandi za formatiranje koje. Tako. <head> i <HEAD> znače isto. U tabeli sa Sl. dostavljaju klijentu. dok telo počinje tagom <body> i završava se tagom </body>. 5-8 navedeni su tagovi definisani HTML jezikom. tj. Tagovi se mogu pisati bilo malim bilo velikim slovima. Neki tagovi se javljaju u parovima. Na primer. i td. označava è. HTML Web stranice se pišu u jeziku koji se zove HTML (HyperText Markap Language – hipertekstualni markerski jezik). U svom najjednostavnijem obliku. Oblik u kojem će naslovi biti prikazani. Na primer. tag <h1> označava glavni naslov. Obično. Tekst unutar taga se naziva direktivom. Komande se nazivaju oznakama ili tagovima (od eng. é. ugrađene u prvobitni tekst dokumenta. Za predstavljanje znakova ˝<˝. Na primer. Međutim. Za ispisivanje naslova koristi se tag <h n>. naslovi označeni tagom <h1> ispisuje se većim i masnim slovima i sa barem jednom praznom linijom iznad i ispod naslova. Pojam markap language (markerski jezik) znači da HTML služi za opis načina na koji su dokumenti formatirani. omeđen tagovima <title> i </title>. <img src=”abc” alt=”slika”> je tag. Većina pretraživača poseduje opciju. gde je n ceo iz opsega 1 . Ova mogućnost se koristi kod aplikacija za elektronsko poslovanje u bankovnim transakcijama i drugim aplikacijama koje zahtevaju zaštitu informacija. respektivno. koji imaju posebno značenje u HTML-u. postoji definisani skup dozvoljenih parametara. Posmatrano na ovaj način. pretraživač može da koristi različite boje za prikaz naslova različitih nivo. Glavna stavka u zaglavlju HTML dokumenta je naslov. redosled navođenja parametara u tagu nije od značaja. već se za tu namenu moraju koristiti posebni tagovi. HTML parser (deo pretraživača koji interpretira HTML) ignoriše dodatne blanko znake (razmake) i prelaske u novi red. &egrave. u HTML-u. koji se nazivaju atributima. Pojedini tagovi imaju parametre. obično nazvanu ˝View Source˝. Web stranice su statičke. daju uputstva za prikazivanje sadržaja dokumenta. 132 . u HTML se koristi posebna sintaksa.˝. Formatiranje samog HTML dokumenta je irelevantno. а završava se znakom ˝. Oba ova dela uokvirena su tagovima <html> i </html>. i za sadržaje kakvi su video i audio se može reći da predstavljaju statičke Web stranice jer se preuzimaju kao datoteke. prikazuje se izvorna verzija tekuće HTML stranice. za cookie se kaže da je perzistentan i da će ostati na klijentu sve do isteka navedenog roka. se ne mogu koristiti za razdvajanje paragrafa. Za pisanje specijalnih karaktera (koji ne pripadaju ASCII skupu karaktera).

</h n> <b> . svi pretraživači podržavaju grafičke formate GIF i JPEG... na početku mnogih Web stranica nalazi se sadržaj stranice (slično sadržaju knjige). </title> <body> .“> . Web stranice pisane u HTML-u mogu sadržati i slike.. gde bi inače bila prikazana slika... Za označavanje hiperveza koristi se tagovi <a> i </a>.. umesto simbolom •.. koristi za označavanje početka stavki u listi. Na primer. </ul> <ol> . Ovaj tag može imati više parametara. </center> <ul> . Konačno.Tag <html> . tj. Ukoliko korisnik zabrani prikazivanje slika u pretraživaču. Pojedinačne stavke ovakve liste (omeđene tagovima <il> i </il>) prikazuju se sa znakom • na početku.nasa. hiperveza se aktivira klikom na sliku. stavke se prilikom ispisivanja u pretraživaču označavaju rednim brojevima. biće ispisan tekst NASA.nasa. na mestu na stranici.. tag <hr> prekida tekuću liniju teksta i u novoj liniji crta horizontalnu liniju celom dužinom stranice.nasa. uključujući i ugnježdene liste. Osim teksta. U sledećem primeru: <a href="http://www. Tag <ul> označava početak nenumerisane liste.“> <a href=“. korisnik ima mogućnost da se brzo pozicionira na odgovarajuću sekciju stranice... ukazuje da se radi o aktivnoj slici... razmotrimo sledeći fragment HTML teksta: <a href="http://www. Tag <br> lomi liniju teksta (prelazak u novi red). parametar ismap. </body> <h n> . Parametar taga <img>.. a klikom na tekst pretraživač prelazi na novu stranicu čiji je URL naveden u parametru href. Za umetanje slika na tekuću poziciju ne stranici koristi se tag <img>. 5-8 Spisak najznačajnijih HTML tagova. Klikom na stavku iz sadržaja.. </html> <head> .. <p> i <hr> se koriste za ragraničenje delova teksta. slika spejs šatla). dozvoljeno je umesto teksta navesti sliku (tag <img>). U tom slučaju.. a tag <il> se. </head> <title> . Na primer. 133 . pretraživač će pribaviti i prikazati stranicu čiji je URL http://www... Slično tagu <img>. Liste se započinju tagom <ul> ili <ol>. u bold Postavlja .. u italik Horizontalno centrira . Tekst uokviren tagovima <a> i </a> se prikazuje... Takođe.. Tag <p> označava početak novog paragrafa...gov. slici mapi. Klik na ovu sliku imaće isti efekat kao klik na podvučeni tekst iz prethodnog primera.gov"> NASA's home page </a> koji se u pretraživaču prikazuje kao: NASA's home page Ako korisnik klikne na ovaj tekst. Stranica može sadržati i sliku u nekom drugom formatu (npr. </il> <br> <p> <hr> <img src = “.. što može značiti umetanje jedne prazne linije ili uvlačenje prve linije novog paragrafa. align.. Za numerisane liste (omeđene tagom <ol>).. Parametar src sadrži URL slike.. HTML ne propisuje dozvoljene grafičke formate slika. tag <a> može sadržati više parametara. </b> <i> . HTML pruža više različitih načina za kreiranje listi. na stranici Omeđuje neuređenu listu Omeđuje uređenu listu Omeđuje jednu stavku uređene liste Umeće novi red (prelom linije) Započinje novi paragraf Umeće horizonalnu liniju po celoj dužini stranice Prikazuje sliku Definiše hipervezu Sl. u oba slučaja. Konačno. middle. Tagovi <br>. ukoliko korisnik zabrani pretraživaču da prikazuje slike. da li će takva slika biti i prikazana u pretraživaču zavisi od sposobnosti pretraživača da barata konkretnim formatom. definiše poravnanje slike u odnosu na tekst (top... Parametar alt omogućava da se umesto slike može prikazati tekst. kao što su href (za URL) i name (za ime hiperveze).. U praksi. </a> Opis Deklariše da je Web stranica pisana u HTML-u Omeđuje zaglavlje stranice Definiše naslov stranice (ne prikazuje se na stranici) Omeđuje telo stranice Omeđuje naslov nivoa n Postavlja . </ol> <il> .. </i> <center> . BMP).gif" alt="NASA"> </a> na stranici će biti prikazana slika (npr. bottom).gov"> <img src="shuttle.. Parametar name tag <a> se koristi za hiperveze koje ukazuju na pojedine sekcije same stranice..

(b) prikaz tabele. Stranice koje se oslanjaju na pridruženi style sheet ne moraju više da sadrže isključivo tzv. Kao što se može videti celokupna tabela je omeđena tagovima <table> i </table>. ikone. Ćelije označene tagom <th> (Table Header) odgovaraju nslovnim ćelijama kolona. tj. pa čak i cele tabele.0<th>HTML 3. Prilikom kreiranja tabela dozvoljeno je koristiti brojne atribute. 5-9(a) je dat primer HTML-a koji ilustruje osnovne karakteristike HTML tabela.HTML je jezik koji evoluira. kao što su podrška za olakšano korišćenje Web stranica osobama sa hendikepom. promena će biti vidljiva na svim stranicama. 5-9(b) odgovarajući prikaz u pretraživaču. podrška za skript jezike (koja omogućava kreiranje dinamičkog sadržaja stranice) i druge. (b) U verziji HTML 4.0 <th>HTML 4. način crtanja okvira. dok one označne tagom <td> (TableData) predstavljaju unutrašnje ćelije tabele. 1. Iako autor stranice ima mogućnost izvesne kontrole nad izgledom tabele (definiše poravnanje sadržaja ćelija. Na Sl. slike. poravnanje unutar ćelije.0</tr> <tr><th>Hiperveze <td> x <td> x <td> x <td> x </tr> <tr><th>Slike <td> x <td> x <td> x <td> x </tr> <tr><th>Liste <td> x <td> x <td> x <td> x </tr> <tr><th>Aktivne mape i slike<td>&nbsp<td>x<td>x<td>x</tr> <tr><th>Forme<td> &nbsp <td> x <td> x <td> x </tr> <tr><th>Formule<td> &nbsp <td> &nbsp <td> x <td> x </tr> <tr><th>Tulbarovi<td> &nbsp <td>&nbsp<td> x <td> x </tr> <tr><th>Tabele<td>&nbsp<td>&nbsp<td>x<td>x</tr> <tr><th>Ugradnja objekata<td>&nbsp<td>&nbsp<td>&nbsp<td>x </tr> <tr><th>Skripte<td>&nbsp<td>&nbsp<td>&nbsp<td>x</tr> </table> </body> </html> (a) Sl. 134 . poželjno je da postoji način za unifikaciju izgleda (stila) različitih stranica. Ćelije se mogu spajati u veće ćelije koje zauzimaju više kolona i/ili vrsta. Način prevođenja logičkih stilova definisan je u style sheet-u koji se referencira na početku svake stranice. npr. U slučajevima kada je Web sajt složen i sadrži veliki broj stranica koje kreiraju različiti autori koji rade za istu kompaniju. svuda tamo gde se koristi ovaj stil. HTML tabela se sastoji iz jedne ili više vrsta od kojih svaka sadrži jednu ili više ćelija. Umesto toga. Ćelije mogu sadržati tekst. dovoljno je izmeniti samo jednu definiciju u style sheet-u i automatski. 5-9 (a) HTML tabela. sve stranice imaće identičan stil. Tag <caption> sadrži tekst naslova tabele. fotografije. kako bi se definisalo horizonalno i vertikalno poravnanje ćelija.0. fizičke stilove (kao što su npr. bold fontom veličine 18.0. konačni izgled tabele zavisi od načina na koji pretraživač interpretira HTML opis tabele. one koje sadrže podatke. a na Sl.0 i 2. nisu predviđale tabele. margine teksta u ćeliji). Starije verzije HTML-a. grupisanje ćelija i td. Ovaj problem se može rešiti korišćenjem style sheet-ova. Ako je potrebo promeniti stil tako da se tekst označen sa <strong> prikazuje u ružičastoj boji. u style sheet-u može biti definisano da se logički stil <strong> prikazuje u plavoj boji u italic fontu veličine 14-point-a. Podrška za tabele uvedena je u veziji HTML 3. dok su pojedinačne ćelije označene tagom <th> ili <td>. a da bi se promenio stil svih stranica dovoljno je promeniti definiciju stila u style sheet-u. Na ovaj način. Svaka vrsta počinje tagom <tr>. <em> (za naglašen tekst). <html> <head><title> Primer stranice sa tabelom </title></head> <body> <table border=1 rules=all> <caption> Razlike izmedju verzija HTML-a </caption> <col align = left> <col align = center> <col align = center> <col align = center> <col align = center> <tr><th>Stavka<th>HTML 1. Na primer. <b> za bold ili <i> za italic).0<th>HTML 2. autori koriste logičke stilove definisane u style sheet-u. <nr> (za normalan tekst). stil okvira tabele. <strong> (za jako naglašen tekst). ugradnja objekata (opštenje taga <img> tako da i druge vrste objekata mogu biti sadržani na stranici).0 uvedene u dodatne mogućnosti.

radio dugmeta. Na Sl. Pri tome. koja. Sva radio dugmad sa istim imenom pripadaju istoj grupi. a drugo 14 karaktera. Prvo polje u formi definiše polje za unos teksta veličine (size) 46 karaktera predviđeno za upis imena korisnika. </form> </body> </html> (a) 135 . kvadratom za štikliranje (checkbox).com/cgi-bin/narudzba" method=POST> <p> Ime <input name="kupac" size=46></p> <p> Ulica<input name="ulica" size=20> Mesto <input name="mesto" size=14></p> <p> Br. kvadrate za štikliranje i nekoliko radio dugmadi. za razliku od osnovnog tipa može sadržati više linija teksta. Radio dugmad se koriste kada treba obaviti izbor između dve ili više alternativnih opcija. registracijom korisnika. Tip textarea je takođe varijanta polja za unos teksta. Tip password. koji nije deo nekog taga.0 je omogućavo samo jednosmernu komunikaciju. autor forme može da kontroliše raspored polja i teksta na formi. Forma sa Sl. kvadrati za štikliranje. Polje za unos teksta. Forme sadrže box polja (ili dugmad) koja korisnik može da popuni traženim podacima ili učini izbor između više ponuđenih opcija i unetu informaciju vrati vlasniku stranice. Klik na jedno dugme isključuje sva ostala iz iste grupe. Za ovu namenu koristi se tag <input>. <html> <head><title> FORMA ZA NARUCIVANJE KNJIZARE CENTAR</title></head> <body> <h1> Forma za narucivanje knjiga </h1> <form ACTION="http://www. Za broj kartice i datum kada ističe važenje kartice koriste se polja za unos teksta. sledi opcija za isporuku brzom poštom. a ona za tip poveza ime ´povez´. Kako je sve veći broj komercijalnih organizacija počinjalo da korisni Web. kreditne kartice <input name="cardno" size=10> Istice <input name="istice" size=4> MASTER <input name="cc" type=radio value="mastercard"> VISA <input name="cc" type=radio value="visacard"></p> <p>Narucujem knjigu <input name="knjiga" size=46></p> <p>Povez Tvrdi <input name="povez" type=radio value="tvrdi"> Meki <input name="povez" type=radio value="meki"> Dostava preko brze poste <input name="express" type=checkbox></p> <p><input type=submit value="narucivanje"></p> Hvala na poverenju. Uz pomoć tag <p> i sličnih. priroda i upotreba polja. dok se tip kartice bira pomoću novog tipa polja. Posle grupe radio dugmadi za izbor poveza. dozvoljeno je korišćenje svih uobičajenih tagova (npr. Forma je uokvirena tagovima <form> i </form>. Parametar value (vrednost) se koristi za indikaciju koje radio dugme je izabrano. Naredna linija predviđena je za unos podataka o kreditnoj kartici koju kupac koristi za plaćanje. predstavljena tzv. 5-10(b).0. zavisno od toga koji tip kreditne kartice je izabran. Ovaj tag poseduje veći broj parametara uz pomoć kojih se reguliše veličina. U pretraživaču. tako su rasli zahtevi za dvosmernim saobraćajem. Radio dugmad se koriste i za izbor tipa poveza. Na primer. Obuhvaćeni tekst. Uneti string se pamti u promenljivoj kupac radi kasnije obrade. Sledeća linija forme definiše polja za unos adrese i mesta stanovanja kupca. tipovi password i textarea. svaki kvadrat za štikliranje se postavljaju nezavisno od ostlih. javila se potreba za popunjavanjem narudžbenica preko Web-a. npr. Korisnik je mogao da dobije traženu stranicu od servera. Tip se navodi kao vrednost parametra type. sva rado dugmad za izbor tipa kreditne kartce imaju ime ´cc´. Odgovarajući prikaz u pretraživaču dat je na Sl. *. type=radio ili type=checkbox. već se svaki uneti karakter predstavlja istim znakom. tzv. postavljanjem upita za predraživanje baze podataka i td. Prvo polje je veličine 40. <b>). aktivne mape i dugme Submit. već u verziji HTML 2. Postoje još dva tipa taga <input>. radio dugme i kvadrat za štikliranje su tri tipa taga <input>. koji se obično koristi za unos lozinke. Kvadrat za štikliranje može biti uključen ili isključen. Polje za unos teksta je podrazumevani tip i zbog toga nije nepohodo navoditi parametar type. npr.centar-knjiga. Tag <p> nalaže pretraživaču da tekst i box polja koja slede prikaže u novoj linij. identičan je polju za unost teksta. Tako. 5-10(a) je dat primer HTML koda koji ilustruje osnovne mogućnosti formi. ali je teško mogao da vrati nazad povratnu informaciju. se prikazuje kao i takst sadržan u telu stranice. 5-10(a) sadrži tri vrste <input> box polja: polja za unos teksta. radio dugme se prikazuju na način koji omogućava korisniku da klikom na dugme može da izabere ili poništi izbor odgovarajuće opcije. Na primer.Forme HTML 1. Nejčešće se koriste polja za unos teksta. Za razliku od radio dugadi gde samo jedno dugme iz grupe može biti izabrano. Ovi i slični zahtevi doveli su do uvođenja formi. promenljiva cc dobiće jednu od dve vrednosti ˝mastercard˝ ili ˝visacard˝. osim što se ne ispisuju karakteri koji se kucaju.

(b) prikaz forme Poslednje <input> polje na formi sa slike je Submit dugme sa natpisom ˝narucivanje˝. Forouzan. za formu sa slike. program će veoma teško moći da zaključi gde se na stranici nalazi tražena informacija. Jedan takav program bi morao da analizira veliki broj Web stranica raznih sajtova za elektronsku trgovinu i da iz svake izdvoji naslove i cene knjiga ili CD-ova. koja se bavi razvojem Web-a i standardizacijom protokola za Web. javila se potreba za struktuiranjem Web stranica i jasnim razdvajanjem sadržaja od načina prikazivanja (formatiranja). Prvi. Klikom na ovo dugme. XML i XSL HTML. 136 . Konkretno. 5-11 Primer Web stranice u XML-u. XML (eXtesible Markup Language) opisuje Web sadržaj na struktuirani način. kao što su aplikacije za elektronsku trgovinu (e-commerce). u nastavku će biti izložena samo njihova osnovna ideja. uvedena su dva nova jezika. 5-10 (a) HTML kod forme. pretraživač pakuje informacije prikuljene sa forme u jednu dugačku liniju i šalje je serveru na obradu. Sa pojavom naprednih Web aplikacija. Znak & se koristi za razdvajanje polja. informacije unete na formu se šalju nazad na server od kojeg je Web stranica dobijena. Iz ovog i sličnih razloga. XSL (eXtensible Style Language) opisuje formatiranje Web stranice nezavisno od njenog sadržaja. Kada korisnik klikne na Submit dugme. Submit dugme se definiše vrednošću submit parametra type. Comer </author> <year> 2000 </year> </book> <book> <title> Data Communications and Networking</title> <author> Behrouz A. S obzirom da se radi o obimnim i složenim jezicima. zamislimo program koji pretražuje Web u potrazi za najjeftinijom knjigom ili CDom. razvila je poboljšanje HTML-a koje omogućava struktuiranje Web stranice na način koji olakšava automatsku obradu njenog sadržaja. organizacija W3C. Tanenbaum </author> <year> 2001 </year> </book> <book> <title> Internetworking with TCP/IP. a znak + predstavlja razmak. Ako su Web stranice napisane u HTML-u.0"?> <?xml-stylesheet type="text/xsl" href="book_list. dok drugi. 4/e </title> <author> Andrew S. ne bavi se struktuiranjem podataka na Web stranici niti razdvaja sadržaj od formatiranja. Vrednost parametra value predstavlja tekst koji se prikazuje kao natpis dugmeta.(b) Sl. Na primer. sa ili bez formi. Na primer. Vol I</title> <author> Douglas E. linija koja se šalje serveru može biti oblika: kupac=Petar+Petrovic&ulica=Beogradska+14&mesto=Nis&cardno=1234567890&istice=9/07&cc =mastercard&povez=tvrdi&express=on Na serveru je da protumači dobijeni string i preduzme odgovarajuće akcije.xsl"?> <book_list> <book> <title> Computer Networks. 2/e </author> <year> 2001 </year> </book> </book_list> Sl. <?xml version="1.

naslov pratećeg CD-ROM-a). 5-12. Na primer. Zatim sledi definicija tabele.w3. Napomenimo da XML omogućava kreiranje mnogo složenijih struktura od one prikazane na Sl. jedno za ime a drugo za prezime autora: <author> <first_name> Andrew </first_name> <last_name> Tanenbaum </last_name> </author> Uvedena podela polja author omogućava pretraživanje samo po imenu ili samo po prezimenu autora. slično kao kod HTML-a dokumenta. koji. da bi se pronašle sve knjige datog autora.0"> <xsl:template match="/"> <html> <body> <table border="2"> <tr> <th> Title </th> <th> Author </th> <th> Year </th> </tr> <xsl:for-each select="book_list/book"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="author"/></td> <td><xsl:value-of select="year"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Sl. se tretira kao nedeljiva informacija.xsl. polje za ime autora. autor (author) i godina izdavanja (year). 5-12 je prikazan primer XSL fajla za formatiranje XML dokumenta sa Sl.0'?> <xsl:stylesheet xmlns:xsl="http://www. U opštem slučaju dubina podele može biti proizvoljna. autor. se može podeliti na dva podpolja. U primeru sa Sl. 5-11. ako knjiga nije rasprodata ili URL sajta za aukcijsku prodaju. slede tagovi <html> i <body>. koje između ostalog sadrže URL na XSL standarda. Na Sl. više od jednog autora knjige). Međutim. recimo radi preciznije pretrage. sam dokument na govori ništa o tome kako jednu ovakvu Web stranicu treba prikazati u pretraživaču. koja sadrži naslove i tri kolone.Razmotrimo XML dokument sa Sl. koji će ˝objasniti˝ pretraživaču kako da prikaže podatke iz XML dokumenta. polja je dozvoljeno razložiti na podpolja. book_list. URL knjižare. npr. naslov i godina. Za svaku knjigu u strukturi postoje tri polja: naslov (title). sekcija: <xsl:for-each select="book_list/book"> <tr> <td><xsl:value-of select=”title”/></td> <td><xsl:value-of select=”author”/></td> <td><xsl:value-of select=”year”/></td> </tr> </xsl:for-each> 137 . U primeru sa Sl. koja predstavlja spisak knjiga. <?xml version='1.org/1999/XSL/Transform" version="1. ako je knjiga rasprodata). Na primer. 5-11. Dokument opisuje strukturu nazvanu book_list. alternativna polja (npr. napisan u jeziku XSL. Da bi se definisao način formatiranja dokumenta. opciona polja (npr. S obzirom da XML tagovi ukazuju na smisao informacije koje sadrže. Međutim. 5-11 sadrži spisak od tri knjige. neophodan je još jedan fajl. 5-11. 5-12 Primer XSL fajla. 5-11. definišu početak Web stranice. XML dokument se može lako pretraživati. sadržaj svakog od tri polja. Dokument sa Sl. dozvoljeno je da struktura sadrži višestruka polja (npr. ako je potrebno. Nakon neophodnih deklaracija.

ako treba promeniti način prikazivanja potrebno je modifikovati XSL fajl. što je danas slučaj sa gotovo svim pretraživačima. Program se izvršava na strani klijenta i kreira dokument. Međutim. Na primer. S obzirom da XML dokument sadrži tagove koji ukazuju na smisao podataka i nije opterećen tagovima za formatiranje. Generisanje sadržaja Web stranica može se obaviti bilo na strani servera bilo na strani klijenta. ako je potrebno u spisak uvrstiti nove knjige. bilo bi neophodno proširiti definiciju tabele novim vrstama). U prvom slučaju. dinamički dokumenti. Klijent šalje zahtev serveru 1. sadržaj koji se može preuzeti sa Web-a postaje u sve većoj meri dinamički. 5. u novije vreme. Naima. Klijent šalje zahtev serveru 2. pet unutrašnjih linija telu. gde prva linija odgovara zaglavlju. pokreće odgovarajući aplikacioni program koji kreira dinamički dokument. ne postoji u unapred definisanom obliku. 1. program koji na Web stranici traži informacije o nekoj knjizi. Vreme i datum su primer dinamičke (promenljive) informacije koja se menja iz momenta u moment. Treba napomenuti da iako XSL fajl sadrži neku vrstu programskih konstrukcija. na strani severa se kreira nova verzija HTML dokumenta. Krajnji rezultat je isti kao da se prikazuje HTML stranica koja sadrži tabelu popunjenu podacima o tri knjige. koji interpretira dati XSL fajl. klijent može da zahteva od servera da izvrši program koji čita sistemsko vreme serverskog računara. Program konvertuje informaciju o vremenu u tekst. (U HTML varijanti. (a) Sl. Međutim. godina </tr>. XML/XSL predstavlja daleko fleksibilnije rešenje. a klijentu vraća izlaz programa (Sl.je analogna for naredbi iz C-a. autor. upotreba XML/XSL-a podrazumeva da je pretraživač u stanju da interpretira XML i XSL. 5-13 (a) dinamički dokument. već se kreira na zahtev. XSL daje samo instrukcije Web pretraživaču kako da prikaže stranicu. U početnom periodu razvoja Web-a celokupan sadržaj dostupan na Web-u bio je statički (sadržan u fajlovima koji se bez bilo kakve modifikacije transportuju do klijenta). Krajnje jednostavan primer dinamičkog dokumenta je preuzimanje tekućeg vremena i datuma od servera. po prijemu zahteva. a server odgovara slanjem klijentu sadržaja traženog fajla. on prolazi jedanput kroz petlju za svaku knjigu iz pridruženog XML dokumenta i u svakom prolasku generiše pet linija oblika: <tr> naslov. Na strani servera se izvršava program koji kreira dokument Program 2. Naravno. dovoljno je u XML dokument dopisati nova <book> polja. tzv. ali ne i XML dokument. Na primer. XSL ostaje neizmenjen.6 Dinamički i aktivni Web dokumenti Model Web-a opisan u prethodnim sekcijama podrazumeva da klijent šalje serveru ime fajla. Server vraća klijentu kopiju programa Dokument Klijent Server 3. njega je mnogo jednostavnije analizirati od odgovarajućeg HTML dokumenta. Drugo. Drugim rečima. a poslednja oznaci za kraj for petlje. (b) aktivni dokument. Server vraća klijentu kreirani dokument 3. Drugim rečima. tj. Web server. 5-13(a)). analizira XML dokument. pretraživač generiše HTML tabelu popunjenu podacima o svim knjigama iz XML dokumenta. Sa druge strane. formatira tekst pomoću HTML tagova i generisani HTML dokument predaje Web serveru koji ga vraća nazad klijentu. Kada pretraživač. kao i HTML. kao odgovor na svaki zahtev klijenta. Web stranice napisane u XML i XSL su i dalje statičke. (b) 138 .

com/test. pošto je na Web stranici neke elektronske prodavnice.php koji se nalazi na WWW direktorijumu kompanije ABCD. od programa se očekuje i da podatke o izdatoj narudžbi upiše u bazu podataka. već se sadržaj poruke prosleđuje odgovarajućem programu radi procesiranja. Obično. Uvek kada klijent zahteva aktivni dokument od servera. 5-15 smešten u fajlu test. obrada na strani servera podrazumeva pristup bazi podataka (smeštenoj na hard disku servera) radi upisa dostavljenih podataka ili čitanja zapisa koji odgovaraju dostavljenim podacima i generisanje HTML stranice koja sadrži odgovor koji se vraća klijentu. S obzirom da HTML reguliše samo prikaz sadržaja stranice na ekranu pretraživača. Uz to. 5-13(b)). . pronalazi u njemu PHP skript.opšti interfejs pristupa). server očekuje da Web stranice koje sadrže PHP imaju nastavak . podaci uneti na formi se šalju serveru gde se pokreće program čiji je zadatak da kreira HTML stranicu narudžbenice. aktivni dokumenti. server kompanije ABCD otvara fajl test.) sadrži i program koji se nakon učitavanja stranice izvršava na strani klijenta (u pretraživaču). Korisnik popunjava formu (1). Po pravilu. tamo gde se odvija interakcija sa korisnikom. tj. 5-15 je prikazana HTML stranica sa ugrađenim jednostavnim PHP skriptom. Takođe. Da bi PHP mogao da se koristi. Na primer. operativni sistem. CGI kreira HTML stranicu (6). . Forma se vraća serveru (2) i predaje CGI-u (3). Na Sl. neophodan je poseban program koji će kreirati animacije ili omogućiti neku specifičnu interakciju sa korisnikom. Osim standardnog HTML-a. Kada se korisnik obrati URL-u www. Primer jezika koji se koristi za pisanje ovakvih skripti je PHP (Hypertext Processor). 5-14 Obrada HTML forme. zamenjuje ga vrednošću promenljive HTTP_USER_AGENT iz pristiglog zahteva i tako modifikovanu stranicu vraća klijentu. . Na primer. CGI postavlja upit bazi podataka (4). Na Sl.. i danas već zastareli način za procesiranje HTML formi i drugih interaktivnih Web stranica zasnovan je na sistemu koji se zove CGI (Common Gateway Interface . Web stranica osim statičkog sadržaja (HTML. CGI predstavlja standardizovani interfejs koji omogućava Web serveru da ˝razgovara˝ sa pozadinskim programima.).abcd. jasno je da se takav jedan program mora izvršavati na računaru klijenta. server šalje kopiju dokumenta sa sadržanim program koji se po učitavanju izvršava u pretraživaču (Sl. Efekat ovog skirpta je generisane Web stranice koja sadrži opšte podatke o klijentu koji je zatražio stranicu. tzv. stranica sadrži još i PHP skript unutar taga <?php . ime i adresu korisnika i sl. Kada korisnik popuni formu i klikne na dugme Submit. slike i sl.php.php umesto . tip klijentskog računara. server mora da razume PHP jezik (slično kao što pretraživač mora da razume XML da bi bio u stanju da interpretira Web stranicu napisanu u XML-u).U drugom slučaju. pretraživač šalje serveru poruku sa sadržajem forme zajedno sa poljima koje je korisnik popunio. uz svaki zahtev upućen serveru obično šalju i neke dodatne informacije o sebi (tip pretraživača. ova poruka nije ime fajla koji treba vratiti klijentu. 5-14 su prikazani koraci koji su potrebni za obradu podataka unetih u HTML formu. Stranica se vraća klijentu (7) i prikazuje u pretraživaču (8). Kada server dobije zahtev za ovakvom stranicom. koje se prenose kao vrednost promenljive HTTP_USER_AGENT (deo poruke zahteva).. Iz baze se preuzimaju traženi podaci (5). Pretpostavimo da je listing sa Sl. ?> . koja će osim naziva i cene izabranih stavki sadržati i ukupnu cenu. pozadinski programi su skripte napisane u jeziku Perl. <html> <body> <h2>Ovo je sve sta znam o tebi:</h2> <?php echo $HTTP_USER_AGENT?> </body> </html> Sl. 139 . on izdvaja skript iz stranice i izvršava ga.html ili . Tradicionalni. Obično. Očigledno.htm. Pretraživači. Dinamički dokumenti Potreba za generisanjem dinamičkih dokumenata na strani servera najlakše se može se sagledati ako razmotrimo korišćenje HTML formi na ranije opisani način. PDV. zamislimo da želimo da kreiramo Web stranicu koja sadrži animiranu grafiku ili interaktivni grafički interfejs. Sl. jezik. korisnik izabrao stavke koje želi da kupi i kliknuo na dugme Submit.php. 5-15 HTML stranica sa ugrađenim PHP-om. Drugi uobičajeni način za generisanje dinamičkog sadržaja podrazumeva umetanje skripti unutar same HTML stranice.

JSP je slična PHP-u.asp. stringove. s tom razlikom što se dinamički deo stranice piše u programskom jeziku Java. Međutim. (b) PHP skript za obradu podataka unetih u formu.php (Sl. Web stranica sa pridruženim programom koji se izvršava na strani klijenta naziva se aktivnim dokumentom. Predvidjanje: sledece godine imaces 25 godina </body> </html> (c) Sl. a zatim otvara i prolazi kroz fajl action. ni jedan od ovih skript jezika nije u stanju da reaguje na klik mišem ili da direktno interaguje sa korisnikom koji koristi pretraživač. JSP i ASP rešavaju problem procesiranja formi i interakcije sa bazama podataka na serveru.php” method=”post”> <p>Unesi svoje ime: <input type=”text” name=”name”> </p> <p>Koliko imas godina: <input type=”text” name=”age”> </p> <input type=”submit”> </form> </body> </html> (a) <html> <body> <h1> Odgovor:</h1> Zdravo <?php echo $name. obično imaju nastavak . (c) Izlaz PHP skripta za ulaze ˝Barbara˝ i 24. PHP.php. Stranica prikazuje dva tekstualna polja. polja i većinu upravljačkih struktura koje srećemo u C-u. klikom na dugme Submit. jedno predviđeno za unos imena (name) a drugo za unos godine rođenja (age) korisnika. na računaru klijenta umesto na računaru servera. Server preuzima sadržaje polje name i age. popunjena stranica (tačnije.jsp. 5-16 (a) Web stranica sa formom. 5-16(c). PHP poseduje promenljive. 140 . linija teksta koja sadrži unete podatke) se vraća serveru. Za generisane dinamičkog sadržaja kod ASP se koristi skript jezik Visual Basic Script (ili VB skript).?>. Razmotrimo primer HTML stranice sa Sl. pretraže informacije u bazi podataka i generišu HTML stranicu sa rezultatima obrade. Pod pretpostavkom da je korisnik u polja name i age upisao ˝Barbara˝ i ˝24˝. 5-16(b)) i izvršava svaki PHP skript na koji naiđe. Svi oni su u mogućnosti da prihvate informacije unete u formu. jedina specifičnost ove stranice je sadržaj prve linije koja definiše da radi obrade podataka unetih u formu i vraćenih serveru treba koristiti fajl action. HTML fajl koji se vraća klijentu imaće oblik kao na Sl. Stranice koje koriste ovu tehniku obično imaju nastavak . Stranice koje koriste ASP. 5-16(a) koja sadrži formu. ASP (Active Server Pages) je Microsoft-ova verzija PHP-a i JSP-a.?> godina </body> </html> (b) <html> <body> <h1> Odgovor:</h1> Zdravo Barbara. PHP je open source i dostupan je za slobodno korišćenje. <html> <body> <form action=”action. Posebno je projektovan za rad sa Apache web serverom (koji je takođe open source).PHP je naročito pogodan za procesiranje formi. umesto u PHP-u. Za tu namenu. koji se uz to i lako koristi. PHP je moćan programski jezik. Treća tehnika za dinamičko kreiranje Web stranica je JSP (JavaServer Pages). Aktivni dokumenti Skript jezici kao što su CGI. orijentisan na spregu između Web servera i servera baze podataka. Nakon što je korisnik popunio oba polja. neophodan je program koji će se izvršavati u samom pretraživaču. Predvidjanje: sledece godine imaces <?php echo $age + 1. Četvrta tehnika.

nema direktne veze sa Javom.elfak. kao i apleti mogu ugraditi na Web stranicu. Java programi namenjeni za Web nazivaju se apletima. Na sličan način.data˝ CODETYPE = ˝audio/MP3˝></OBJECT> Tag sadrži više atributa. Slično drugim skript jezicima. Tag koji uključuje aplet u HTML je sledećeg oblika: <OBJECT CODEBASE=”http://www. Ime fajla. kao atributi taga OBJECT navode se dimenzije pravougaone oblasti na ekranu pretraživača.elfak. Međutim. koji je po složenosti između Java izvornog kôda i mašinskog kôda.yu/java-apps.elfak. za razliku od PHP skripta koji se izdvaja iz HTML stranice i izvršava na serverskom računaru. s tom razlikom što je. Nakon učitavanja. Međutim. nezavisno od tipa procesora i operativnog sistema. u smislu korišćenja raspoloživih softverskih i hardverskih resursa računara. skrip namenjen klijet iz HTML-a izdvaja pretraživač i izvršava ga uz pomoć odgovarajućeg interpretatora. Uprkos sličnom imenu. Najpoznatiji skript jezik za ovu namenu je JavaScript. Prvi način podrazumeva da se program. i većine drugih viših programskih jezika. dekoder za novi format može biti smešten u samom apletu koji se automatski preuzima sa servera prilikom učitavanja stranice u pretraživač. Ovaj fajl sadrži podatke tipa audio/MP3.ac. aplet i prateći audio fajl se predaju virtuelnoj mašini. bez posredovanja virtuelne mašine. Java apleti se mogu razumeti i kao fleksibilna zamena za pomoćne aplikacije i plug_in-ove. šalje u audio karticu gde se obavlja reprodukcija. pored ograničena da se ActiveX kontrole mogu koristiti samo na Pentium PC računarima. ˝bgsound.ac. U osnovi.ni. kao pozadinsku muziku. JavaScript Slična funkcionalnost kao sa Java apletima se može dobiti i korišćenjem JavaScript jezika. u jednoj liniji JavaScript programa 141 . U tom slučaju. kompajlirani program se naziva bajtkôdom (bytecode). Primer jednostavnog apleta je aplet koji reprodukuje audio fajl. njihovo korišćenje može biti rizično u pogledu sigurnosti. Kada HTML interpretator naiđe na tag <script> on poziva JavaScript interpretator koji izvršava sadržani skript. kao što je to slučaj kod apleta. on najpre preuzima fajl programa od servera. U terminologiji Jave.class˝ DATA = ˝bgsound. Programi ovog tipa najčešće se pišu programskom jeziku Java. Java virtuelnoj mašini. aplet može sadržati grafičku animaciju ili video. slično PHP-u. Drugi način je zasnovan na skrip jeziku koji se.class. u tzv. ActiveX kontrole se. što je navedeno u atributu CODETYPE. ActiveX kontrole su Microsoft-ov odgovor na Java aplete.data˝ u kome se čuvaju podaci koje aplet treba da procesira navedeno je u atributu DATA.ni. Vrednost atributa CLASSID definiše ime fajla u kome je smešten aplet. <script>. ActiveX kontrole su programi kompilirani za Pentium procesore i izvršavaju se direktno. Za razliku od C++. u dekodiranom obliku. Kada Internet Explorer u Web stranici primeti pozivanje na ActiveX kontrolu. mogu se izvršavati na bilo kom računaru. JavaScript skript jezik koji se u izvornom obliku ugrađuje u HTML stranicu. metode) i poziva odgovarajuće funkcije pisane u mašinskom jeziku za ciljnu mašinu.class fajl. ako se za prikazivanje slike koristi aplet. pretpostavimo da Web stranica sadrži sliku u nekom novom grafičkom formatu za koji na klijentskom računaru ne postoji podrška u vidu plug-in-a ili pomoćne aplikacije i da zbog toga slika ne može biti prikazana na ekranu pretraživača. Pretpostavimo da je aplet uključen u Web stranicu sa URL-om http://www. JavaScript sadrži programske konstrukcije veoma visokog nivoa. registruje je na lokalnom računaru i izvršava. Na primer.yu/java-apps” CLASSID = ˝java:bgsound. kompajlirani programi pisani u Javi su portabilni. ugrađuje u sam HTML.class. a da u HTML stranici postoji tag u kome je navedeno ime fajla koji sadrži program. JavaScript program se smešta u poseban HTML tag.ni.ac. gde će animacija/video biti prikazani. Virtuelna mašina izvršava bajtkôd tako što u bajtkôdu identifikuje pojedinačne komande (tzv. Bajtkôd ne sadrži mašinske instrukcije za neki konkretan procesor. slično PHP-u. a njihove mogućnosti su daleko veće. u obliku binarnog kôda. čuva na serveru. a zatim ga izvršava. CODEBASE definiše server i putanju na kojoj se fajl nalazi. već instrukcije koje se izvršavaju u interpretatoru za Java bajtkôd. bajtkôd predstavlja međukôd. tj. Međutim. za vreme dok je u pretraživaču prikazana stranica.Postoje dva načina za kreiranje aktivnih dokumenata. Kada HTML interpretator u pretraživaču naiđe na ovakav tag. JavaScript. kao jezik. on je preuzima od servera. koji se nalazi na URL-u http://www. tj. verifikuje njen identitet. naveden u tagu. Java Java je objektno-orijentisan jezik zasnovan na C++. i prosledi ga virtuelnoj mašini gde će aplet biti izvršen. aplet se startuje i sadržaj audio fajla. Aplet se uključuje u HTML pomoću odgovarajućeg taga koji predstavlja instrukciju HTML interpretatoru da od Web servera zatraži .yu/ i da je smešten u fajlu bgsound. Apleti se čuvaju na Web serveru u fajlovima sa nastavkom . Zbog toga je izvršenje ActiveX kontrola značajno brže od izvršavanja apleta. Na primer. sledećeg značenja. Bilo koji računar na kome je instalirana Java virtuelna mašina u stanju je da izvršava programe pisane u Javi.

close().open(). document. funkcija otvara novi dokument za prikaz rezultata i ispisuje četiri linije teksta korišćenjem funkcije writeln() i. Glavna razlika je u deklaraciji Submit dugmeta i naredbe dodele sadržane u ovoj deklaraciji. funkcija izdvaja i vrednost polja age. korak 1 počinje nakon što je forma učitana u pretraživač. korišćenjem funkcije eval(). 5-17) je isti. Na Sl. 5-18 je ilustrovana razlika između procesiranja skripti na strani klijenta i strani servera. Sa tačke gledišta krajnjeg korisnika. while()). (a) (b) Sl. krajnji rezultat oba primera (Sl.moguće je prikazati dijalog za unos teksta. boju pozadine i sl. razmotrimo listing Web stranice sa Sl. U oba slučaja. Server prepoznaje ime PHP fajla i izvršava ga. Zbog toga se rezultat obrade pojavljuju gotovo trenutno. document. petlje (for(). stranica sadrži formu za unos imena i godina korisnika. U primeru koji koristi PHP.age. nakon klika na dugme Submit. dodaje 1-cu i rezultat pamti u promenljivu years. kao što su tipovi podataka. var years = eval(test_form. čekati da tekst bude unesen i smestiti uneti tekst u neku promenljivu. za razliku od primera sa PHP gde postoji izvesno neizbežno kašnjenje (reda do nekoliko sekundi) dok rezultujući HTML fajl ne stigne nazad do pretraživača.<br>"). konačno. (b) na strani klijenta (JavaScript) 142 . 5-16.} </script> </head> <body> <form> Unesi svoje ime: <input type="text" name="name"> <p> Koliko imas godina?: <input type="text" name="age"> <p> <input type=submit value="submit" onclick="response(this. Međutim. funkcije i td. unutar pretraživača. Kao primer programa u JavaScript jeziku.writeln("Predvidjanje: sledece godine imaces" + years + ". JavaScript je pogodan za lako projektovanje interaktivnih Web stranica. Nakon toga. u primeru koji koristi JavaScript. Ne postoji novi kontakt sa serverom. Slično primeru sa Sl. nakon klika na dugme Submiti. document. 5-16 i Sl. Ova funkcija izdvaja iz forme vrednost polja name i pamti je kao string u promenljivoj person. zatvara dokument. na mestu koje je inače rezervisano za naslov stranice. document. a nakon toga sledi procesiranje forme. document. Sekcija <body> je gotovo identična kao u primeru za PHP. 5-17. Kreirani dokument je HTML fajl. pretraživač izdvaja informacije iz forme i u vidu stringa ih šalje nazad serveru koji je poslao stranicu.").writeln("<html><body>").form)"></form> </body> </html> Sl. document. 5-18 Procesiranje skripta: (a) na strani servera (PHP). Sa druge strane. Korak 2 iniciran je klikom na dugme Submit.value) + 1. <html> <head> <script language="javascript" type="text/javascript"> function response(test_form){ var person = test_form. Zahvaljujući ovakvim i sličnim mogućnostima.writeln("Zdravo" + person + ". Takođe.writeln("<body><html>"). 5-17 Procesiranje forme pomoću JavaScript-a. kao što se lako može zaključiti na osnovu HTML tagova koje funkcija response zajedno sa ostalim tekstom upisuje u dokument. konvertuje je u ceo broj. Ova naredba dodele kazuje pretraživaču da kao odgovor na klik dugmeta (događaj onclick) treba izvršiti JavaScript funkciju response i kao parametar preneti joj formu. već se sve e obavlja lokalno. a po unosu traženih podataka predviđa koliko će godina osoba imati sledeće godine. JavaScript poseduje mnoge osobine viših programskih jezika. koje u ova dva slučaja teče na različite načine.name. Funkcija responese() napisana je u zaglavlju HTML fajla. aritmetički i logički operatori.value. PHP skript kreira novu HTML stranicu koja se vraća pretraživaču i prikazuje. bitno je razumeti da se načini obrade ova dva primera suštinski razlikuju. Takođe. pretraživač interpretira JavaScript funkciju sadržanu u samoj stranici.

1. koja podržava perzistentne (trajne) veze klijenta i servera. 5. pretraživač šalje serveru HTTP zahtev koji sadrži putanju i ime traženog fajla. audio ili video sadržaja. Uz to. kao i kod SMTP. za transport poruka koristi TCP.protokol za prenos hiperteksta) je protokol koji se koristi za pristup podacima na Web-u. JavaScript se koristi za interakciju sa korisnikom na strani klijentskog računara. već ih čitaju i interpretiraju HTTP klijent i HTTP server. Međutim.0). što omogućava kreiranje interaktivnih korisničkih interfejsa. pretraživač koji želi da pribavi Web stranicu poznatog URL-a. HTTP je sličan SMTP-u. Web server odgovara prenosom fajla. ikona ili drugih pratećih sadržaja (što je slučaj sa većinom Web stranica koje danas viđamo na Webu). verzija 1. server ne zatvara TCP konekciju. ali je mnogo jednostavniji jer koristi samo jednu TCP konekciju: ne postoji posebna kontrolna konekcija. Sl. JSP ili ASP). PHP. naziva se neperzistentnom vezom.0). Moguće je. sa raspodeljenim zadacima. a HTTP server (Web server) isporučuje njenu kopiju.Ove razlike ne znače da je JavaScript bolji od PHP-a. Dinamičke Web stranice se generišu na strani servera. Uspostavljane TCP konekcije generiše dodatni saobraćaj u mreži i unosi izvesno kašnjenje. inicira otvaranje TCP konekcije na portu 80 sa serverom čije je ime navedeno u URL-u. (Naravno. Web server neprekidno osluškuje TCP port 80. HTTP dozvoljava i prenos od pretraživača ka serveru (npr. HTTP klijent (pretraživač) zahteva Web stranicu. a po završenom prenosu zatvara TCP konekciju. HTTP poruke nisu direktno nemenjene ljudima. HTTP je klijent-server protokol aplikacionog sloja TCP/IP steka. uz pomoć različitih skript jezika (Perl. za kontrolu formatiranja poruke se.7 HTTP HTTP (HyperText Transfer Protokol . slično protokolima SMTP ili FTP. Na ovaj način se dodatna opterećenja usled uspostavljanja i raskidanja TCP konekcije raspodjeljuju na više HTTP zahteva/odgovora tako da je relativno dodatno opterećenje na nivou celokupne Web stranice značajno manje. o kojima je bilo reči u ovoj sekciji. već je ostavlja otvorenom dajući priliku pretraživaču da preko iste TCP konekcije uputi dodatne zahteve. koristi MIME. godine 1999. Tipično. Aktivne Web stranice sadrže ugrađene skriptove (pisane u JavaSctipt jeziku) ili hiperveze na kompletne programe (u vidu Java apleta ili ActiveX kontrola) koji se nakon učitavanja izvršavaju na klijentskom računaru. PHP (i srodni skript jezici) prevashodno se koriste za interakciju sa udaljenom bazom podataka. da Web stranica sadrži oba skript jezika. Trajanje veze Broj porta HTTP protokola je 80. server zatvara TCP konekciju po isteku nekog zadatog vremena nakon poslednje upućenog zahteva. uvedena je nova verzija HTTP protokola. kada korisnik serveru šalje formu). Kod perzistentnog načina rada. jer sadrži koji se prenosi između klijenta i servera liči na SMTP poruku. Sl. što takođe predstavlja neku formu aktivnog sadržaja. i uobičajeno. Ovakav način rada. što ima za posledicu sporo učitavanje ovakvih Web stranica. neophodno je da pretraživač radi prenosa svakog takvog entiteta uspostavi novu TCP konekciju sa serverom. 143 . koji. U većini slučajeva. Neperzistentni način rada je izrazito neefikasan ako se prenose Web stranice koje osim HTML-a sadrže i veći broj slika. pretraživač uspostavlja inicijalnu TCP konekciju. zatim šalje zahtev i dobija odgovor (kao kod HTTP 1. Sa druge strane. Web stranice napisane u XML-u se shodno pridruženom XSL fajlu u samom pretraživaču konvertuju u HTML. Takođe. Namena ova dva skrip jezika je potpuno različita. HTTP je sličan FTP-u. Međutim. Za razliku od SMTP. ovome prethodi interakcija sa DNS serverom radi konverzije DNS imena servera u IP adresu). Kada je TCP konekcija uspostavljena. 5-19 ilustruje različite tehnike za kreiranje dinamičkih i aktivnih Web stranica. Konačno. čekajući da neki pretraživač zatraži otvaranje TCP konekcije. a klijent dobija standardnu HTML stranicu koju prosto treba da prikaže. nakon slanja odgovora. pa čak i složena procesiranja grafičkih. Ako učitana Web stranica sadrži slike ili neki drugi dodatni sadržaj. plug-in-ovi i pomoćne aplikacije predstavljaju proširenja pretraživača i koriste se za prikazivanje multimedijalnih sadržaja različitih formata.9 i 1. Iz tog razloga. 5-19 Razlilčiti načini za generisanje i prikazivanje Web sadržaja. a između klijenta i servera se prenose samo podaci. i karakterističan je za prvobitne verzije HTTP protokola (konkretno verzije 0.

Prva linija zahteva sadrži metod ili tip zahteva. Metod PUT je suprotan metodu GET: umesto čitanja. slika. 5-21. (a) (b) Sl. Web stranica se nalazi u telu odziva). Metod HEAD traži od servera ne celu stranicu već samo njeno zaglavlje. HTTP predviđa više različitih tipova zahteva koje klijent može da uputi serveru. a 1. telo je opciono. ovaj metod upisuje stranicu na Web server. Kod oba tipa poruka. Ovaj metod se može koristiti za pribavljane informacije o datumu i vremenu kada je stranica poslednji put modifikovana. U terminologiji HTTP standarda tipovi zahtevi se zovu metodi. 144 . Počev od verzije 1. Poruka odziva se sastoji od: statusne linije.1 verzija HTTP protokola koji se koristi. Web stranici) Zahtev za brisanjem Web stranice na serveru Echo poslatog zahteva Rezervisano za neku buduću namenu Upit koji se odnosi na neke parametre servera Sl. Poruka zahteva se sastoji iz: linije zahteva. slično kao kod e-mail protokola. Uobičajeni oblik metoda GET je: GET ime_fajla HTTP /1. Formati poruka HTTP predviđa dva generalna tipa poruka koje se razmenjuju između klijenta i servera (Sl. Telo poruke je u oba slučaja opciono (ne mora da postoji) i koristi se za prenos sadržaja poruke. Uz pomoć ovog metoda moguće je postaviti Web stranicu na udaljeni Web server. a za identifikaciju tip sadržaja koristi se MIME.1 HTTP podržava MIME kodiranje sadržaja (slično kao kod SMTP protokola). Osim osnovnog metoda GET koji služi za pribavljanje Web stranice. Oba tipa poruke sadrže zaglavlje koje od tela poruke odvojeno jednom praznom linijom. Metod GET HEAD PUT POST DELETE TRACE CONNECT OPTIONS Opis Zahtev za čitanjem Web stranice Zahtev za čitanjem zaglavlja Web stranice Zahtev za prenos Web stranice na server Dodavanje sadržaja imenovanom resursu (npr. (b) format odgovora. za prikupljanje drugih informacija o stranici i njenom sadržaju ili prosto za testiranje validnosti URL-a (da li je na datom URL-u prisutna stranica).HTTP transakcija HTTP je klijent-server protokol kod koga se komunikaciju obavlja nizom transakcija: klijent šalje poruku zahteva. a ako postoji koristi se za prenos sadržaja poruke (npr. (Ovde se pod stranicom misli na objekat koji može biti HTML stranica. Metodi HTTP je zamišljen opštije od prostog protokola za komunikaciju tipa zahtev/odgovor. Stranica je sadržana u telu PUT zahteva. a prva linija odgovora informaciju o statusu odgovora. Formati poruka Formati poruka zahteva i odziva su slični (slika). 5-20 Formati HTTP poruka: (a) format zahteva. HTTP poruke se sastoje od jedne ili više linija NVT ASCII teksta. zaglavlja i tela zaglavlja. Najveći broj HTTP zahteva koji se javljaju na Web-u su upravo tipa GET. zaglavlja i tela. Stanica koja se vraća ne mora da sadrži samo ASCII tekst. tj. Java aplet i sl. HTTP predviđa još nekoliko dodatnih metoda navedenih u tabeli sa Sl.1 gde je ime_fajla ime resursa (fajla) koji se traži. na fajl). a server odgovara porukom odziva. Ako postoji. telo je od zaglavlja razdvojeno jednom praznom linijom. 5-20). Metod GET zahteva od servera da pošalje traženu stranicu. 5-21 HTTP metodi.

Kôd 1xx (x . 500 . text/html). 145 . Drugo (Accept-Charset) definiše skup karaktera (npr.stranica nije pronađena. ISO-8859-5 ili Unicode-1-1) koji klijent prepoznaje. 5-23 navedena su najvažnija zaglavlja. postoji više varijanti iste stranice). Ovo zaglavlje je obavezno jer se može desiti da za istu IP adresu budu vezana više DNS imena. 5-22 Grupe statusnih kôdova.Stanica ne mora biti tekst. primer je ovog tipa operacije. Četiri zaglavlja koja počinju sa Accept obaveštavaju servera kakav sadržaj je klijent spreman da prihvata.keširana stranica je još uvek validna. u praksi metod POST. vratiće odgovor sa postavljenim odgovarajućim kodom greške. Zaglavlje User-Agent (korisnički agent) omogućava da klijent obavesti servera o tipu pretraživača koji koristi. Kôd 3xx govori klijentu da traženu stranicu potraži na nekom drugom URL-u ili u svom kešu (kasnije će biti više reči o keširanju). Metod CONNECT nema definisanu namenu. i vrati ga serveru pri svakom narednom obraćanju.zabranjen pristup stranici. sever proverava da li se zahtev odnosi baš na njega. Zaglavlje Host sadrži ime servera. Prvo od ovih zaglavlja (Accept) navodi MIME tip stranice koji klijentov pretraživač može da obradi (npr. Konačno. Preko zaglavlja Cookie klijent vraća serveru sadržaj cookie-a kojeg je ranije poslat klijentu od strane neke mašine iz domena servera. klijent je u obavezi da zapamti cookie na svoj hard disk. TRACE je koristan u slučajevima kada se zahtevi ne obrađuju korektno. Ispitivanjem sadržaja ovog polja. se retko koristi.interna greška servera. gzip). Za svaku liniju ove sekcije se kaže da predstavlja jedno zaglavlje zahteva. Neka zaglavlja se koriste i kod zahteva i kod odgovora. Server šalje cookie klijentu u obliku sadržaja zaglavlja Set-Cookie. kojim se na server postavlja nova stranica (ili zamenjuje postojeća). Kao i kod PUT. Treće (Accept-Encoding) definiše metod kompresije koji klijent podržava (npr.proizvoljna cifra) se retko koristi u praksi. Postavljanje nove poruke na nekom Web forumu. U tabeli sa Sl. zaglavlje zahteva sadrži i podatke za autorizaciju kojima klijent dokazuje da ima pravo da izvrši zahtevanu operaciju. a klijent želi da sazna da li zahtevi uopšte dolaze do servera.server pristaje da obradi klijentov zahtev 200 . Kô 2xx znači da je zahtev uspešno obrađen i da poruka sadrži traženi sadržaj. 5-22). 404 . Srpski) koji korisnik razume. već je rezervisan za neku eventualnu buduću primenu. Ako server nije u mogućnosti da udovolji zahtevima klijenta. Zaglavlja poruka Nakon linije metoda u poruci zahteva sledi jedna ili više linija zaglavlja koje sadrže dodatne informacije o zahtevu. Kao što znamo. a njen MIME tip naveden je polju Content-Type zaglavlja zahteva. Metod DELETE služi za brisanje (uklanjanje) stranice sa Web servera. Metod POST je sličan metodu PUT. Ovaj metod nalaže serveru da nazad vrati primljenu poruku zahteva. Međutim. a četvrto (Accept-Language) ukazuje na prirodni jezik (npr. kôd 5xx obaveštava klijenta da na strani servera postoje problemi.odgovor ne sadrži telo 301 . on će izabrati o vratiti klijentu onu koja se uklapa u postavljene zahteve. 503 . operativnom sistemu i drugim osobinama. Ako server ima mogućnost izbora stranice (npr. Prva cifra statusnog kôda služi za podelu odziva na pet glavnih grupa (Sl. bilo zbog greške u programu Web servera bilo zato što je server privremeno preopterećen.stranica je premeštena na drugu URL lokaciju.zahtev je prihvaćen i obrađen. u zaglavlju zahteva tipa DELETE moraju postojati podaci za autorizaciju. Takođe. Cookie-ima su posvećena dva zaglavlja. Zaglavlje Authorization je neophodno za stranice koje su zaštićene i za koje je klijent u obavezi da dokaže da ima pravo da vidi stranicu. Metod TRACE se koristi za testiranje veze sa serverom. metod POST se koristi da se u resurs (u najopštijem smislu) koji se nalazi na datom URLu. Za razliku od PUT. Metod OPTIONS omogućava klijentu da postavi upit serveru koji se odnosi na izvesne parametre rada servera ili parametre nekog konkretnog fajla. Status U prvoj liniji svaki odgovor kojeg server vraća klijentu sadržan je trocifreni kôd statusa koji klijentu treba da ukaže da li je njegov zahtev uspešno opsluže ili nije i ako nije zašto nije.kasnije pokušaj ponovo Sl. Kôd 4xx znači da zahtev nije opslužen. preuzeto iz URL-a. Poruka odziva takođe može sadržati zaglavlja (jedno ili više). 204 . Kôd 1xx 2xx 3xx 4xx 5xx Značenje Informativno Uspešno Preusmeravanje Greška klijenta Greška servera Primer 100 . bilo zato što je u samom zahtevu uočena greška ili zato što je klijent zatražio nepostojeću stranicu. upišu (dodaju) novi podaci. 304 . 403 . kao i PUT.

Zaglavlje Server omogućava serveru da saopšti svoj identitet klijentu. Sl. 5-24 je prikazan izgled jednog kompletnog HTTP odgovora. Ovo zaglavlje se koristi prilikom keširanja stranica. koja počinju sa Content.(sadržaj) omogućavaju serveru da opiše osobine stranice koje šalje. zatim jedna prazna linija i konačno sama Web stranica. neka internacionala kompanija može nakon prijema zahteva za njenu glavnu stranicu na . Na primer. Ova mogućnost se koristi ako je stranica premeštena na drugu lokaciju ili ako više od jednog URL-a ukazuje na istu stranicu. ako želi. 146 . Ovo zaglavlja ima bitnu ulogu u keširanju stranica.zaglavljima). Server koristi zaglavlje Location kada želi da obavesti klijenta da bi trebalo da pokuša da potraži zahtevanu stranicu na nekom drugom URL-u. 5-23 Zaglavlja HTTP poruka (delimičan spisak).com domenu. na osnovu njegove IP adrese. (Značenje ovih zaglavlja je analogno odgovarajućim Accept. Slede zaglavlja koja se javljaju isključivu u odgovorima koje server šalje klijentu. Zaglavlje Date (datum) se može koristiti u oba smera i sadrži vreme i datum kada je poruka poslata. Sledi veći broj zaglavlja. Zaglavlje Last-Modified sadrži datum i vreme kada je stranica poslednji put modifikovana. Na Sl. 5-24 Primer HTTP odgovora. da preusmeri klijenta. Zaglavlje ETag sadrži jedinstveni identifikator stranice.Zaglavlje User-Agent Accept Accept-Charset Accept-Encoding Accept-Language Host Authorization Cookie Date Server Content-Encoding Content-Language Content-Length Content-Type Last-Modified Location Set-Cookie Tip Zahtev Zahtev Zahtev Zahtev Zahtev Zahtev Zahtev Zahtev Zahtev/Odgovor Odgovor Odgovor Odgovor Odgovor Odgovor Odgovor Odgovor Odgovor Sadržaj Informacija o pretraživaču i platformi Tip stranica koje klijent može da procesira Skup karaktera koji je prihvatljiv za klijenta Kodiranje stranice koje klijent može da procesira Prirodni jezik koji klijent može da procesira DNS ime servera Podaci za autorizaciju klijenta Sadrži cookie kojeg je server prethodno poslao klijentu Datum i vreme slanja poruke Opšte informacije o serveru Način kodiranja stranice Prirodni jezik korišćen na stranici Veličina stranice u bajtovima MIME tip stranice Datum i vreme poslednje promene stranice Instrukcija klijentu da zahtev pošalje na neko drugo mesto Sadrži cookie kojeg server šalje klijentu Sl. koji je u ovom slučaju pozitivan. na jednu od svojih nacionalnih ili regionalnih stranicu. Prva linija sadrži status odgovora. Sledeća četiri zaglavlja.

ako se kopija ne čuva dovoljno dugo. Na primer. proxy serveri značajno redukuju saobraćaj na Internetu i smanjuju opterećenje Web servera. na putanji od servera do pretraživača dozvoljen je samo jedan proksi. Sa druge strane. Ako server odredi samo jedan.8 Proksi serveri i keširanje stranica U dosadašnjem izlaganju o Web-u pretpostavljali smo da klijent i server direktno komuniciraju razmenom HTTP poruka preko Interneta. dok druge mogu ostati neizmenjene u dužem vremenskom intervalu (npr. proxy server ne mora biti računar na lokalnoj mreži. 147 . mnogi provajderi internet usluga (ISP) poseduju proxy server sa ciljem da svojim korisnicima ubrzaju pristup Web-u (i u isto vreme smanje protok podataka prema nadređenom ISP-u). kako pretraživač pregovara sa proksijem i kako proksi pregovara sa serverom. zahtev prosleđuje npr. Osim što efektivno skraćuju vreme pribavljanja Web stranica. promenjen. Dva tipa među-servera su: firewall i proxy server. već se primenjuje i u drugim kontekstima. Proxy server je posrednik između lokalnih (intranet) korisnika i Web-a (Sl. a onda prosleđuje nazad do pretraživača koji je uputio zahtev i pri tome pamti u keševima svih posrednih proxy servera. stranica sa rezultatima fudbalskih utakmica se brzom menja samo dok utakmica traja. a onda ostaje neizmenjena do sledećeg kola). Nula znači da je zabranjeno da proksi obrađuju stavku. u izvesnim slučajevima komunikacija klijent-server ne mora biti direktna već se može ostvarivati posredstvom jednog ili više među-servera. stranica posvećena Grčkoj mitologiji). Tek ako stranica ne postoji u kešu proxy servera na vrhu hijerarhije. Kada prvi korisnik u korporaciji pristupi određenoj Web stranici. postoji hijerarhija proxy servera. Protokol tačno određuje način na koji proksi obrađuje svaki zahtev. tj. Server može u odgovoru da uključi zaglavlje Max_Forwards i tako ograniči broj proksija koji obrađuju stavku pre nego što se ona isporuči pretraživaču. dolazi do smanjenja efikasnosti keširanja zato što sledeći zahtev mora nepotrebno da ide do servera. Sa jedne strane. Sl. ako se kopija predugo čuva u kešu ona može da zastari. Sl. korporacijskom proxy serveru. Koncept proxy servera i keširanja nije ograničena samo na korporacijski intranet. nakon što je kopija uneta u keš. stranica sa rezultatima fudbalskih utakmica). a ovaj proxy serveru provajdera internet usluga i tako redom sve dok se u nekom kešu ne pronađe tražena stranica. proxy mora da pribavi kopiju od servera na kome se stranica nalazi. Takođe. Zahtev se najpre šalje lokalnom proxy serveru. Na primer.5. Često. Nekoliko HTTP zaglavlja je posebno namenjeno za proksije. koliko dugo treba stavku čuvati u kešu. Keširanje Eliminisanjem nepotrebnih prenosa. Proxy serveri su bitan deo arhitekture Web-a. HTTP omogućava serveru da kontroliše kako proksiji obrađuju svaku Web stranicu. Kada sledeći put neki korisnik pristupi istoj stranici. 5-26 Hijerarhijsko keširanje sa tri proksija. ona se direktno traži od Web servera. proxy uzima podatke iz svog keša i ne šalje zahtev preko Interneta. 5-25 Proksi server. 5-25) i omogućava optimizaciju kojom se smanjuje čekanje klijenata na pribavljanje zahtevanih Web stranica. proxy keš smanjuje i vreme čekanja i mrežni saobraćaj. Međutim. kako proksi treba da tumači zaglavlje. HTTP sadrži eksplicitnu podršku za proxy servere. Proxy ostavlja kopiju u svom kešu i vraća traženu stranicu kao odgovor na zahtev. što se dešava ako je original u međuvremenu. Web pretraživači u mreži koja koristi proxy server su konfigurisani tako da svoje HTTP zahteve ne upućuju direktno udaljenim Web serverima već ih šalju lokalnom proxy serveru koji u njihovo ime obavlja zahtevanu transakciju. sklonost stranice promenama može da varira u vremenu (npr. koji. već može biti i proces pokrenut na PC računaru. ako nije u stanju da opsluži zahtev. Max_Forewards: 1. Pojedine Web stranice su podložne čestim promenama (npr. a glavno pitanje tiče se vremena čuvanja stranice. Takođe. Glavni aspekt keširanja jeste privremeno čuvanje stranica.

Korišćenje Internet protokola na intranet mreži ima dvojako opravdanje. Na primer. HTTP dozvoljava da server kontroliše keširanje na dva načina. proxy koristi uslovnu GET poruku za proveru ažurnosti kopije. 5-27 i odvija se na sledeći način: Pretraživač upućuje standardni GET zahtev proxy-ju (korak 1). Sl.9 Firewall Danas se na većini lokalnih. prvih T sekundi nakon pribavljanja stranice proxy vraća pretraživačima keširanu kopiju bez postavljanja pitanja serveru.˝). za slučaj da korisnik naknadno zatraži neku od njih. Drugi pristup eliminiše mogućnost da pretraživač dobije zastarelu strancu. iz sigurnosnih razloga. Po isteku T sekundi. Pretpostavimo da proxy u svom kešu ima traženu stranicu. Nakon toga. ali na račun izvesnog povećanja saobraćaja i vremena čekanja na pribavljanje stranice.. 148 . U slučaju da je zahtevana stranica u međuvremenu bila modifikovana. Dva pristupa za kontrolu vremena keširanja se lako mogu kombinovati. koju će proxy smestiti u keš (zajedno sa datumom i vremenom iz zaglavlja LastModified) pre nego što je prosledi pretraživaču. proxy vraća keširanu stranicu pretraživaču (korak 4). Kada proksi pribavi stranicu od servera. već se ostvaruje posredstvom specijalizovanog server. a takve mreže se nazivaju intranetima. server će vratiti proxy-ju novu kopiju stranice. Procedura je ilustrovana na Sl. proxy šalje uslovnu GET poruku serveru sa upisanim vremenom poslednje modifikacije keširane kopije u zaglavlju If-Modified-Since (korak 2). Međutim. 5. Svakoj keširanoj stranici pridružena je informacija o datumu i vremenu kada je stranica keširana. Prvo. on je zasnovan na predviđanjima i zato ne garantuje da će pretraživaču uvek biti vraćena ažurna kopija stranice. spoljnim korisnicima obično nije dozvoljen direktan pristup korporacijskim serverima. neke stranice se ni u kom slučaju ne mogu keširati. 5-27 je pretpostavljeno da stranica nije modifikovana u međuvremenu. Zbog toga server vraća proxy-ju kratak odgovor sa statusnim kodom 304 (Not modified . Drugo. on je analizira i izdvaja sadržane hiperveze. To je slučaj sa dinamičkim Web stranicama koje se generišu na strani servera na osnovu postavljenog upita. koji proxy može da pošalje serveru kako bi proverio ažurnost keširane stranice. koji nadgleda i filtrira mreži saobraćaj. tj. pribavljajući i stranice koje nikada neće biti potrebne. Na ovaj način moguće je skratiti vreme pristupa za buduće zahteve za slučaj da korisnik izabere neki od linkova na upravo učitanoj stranici. Ova informacija je preuzeta iz polja Last-Modified HTTP poruke kojom je originalna stranica ranije preneta od servera do proxy-ja. Po prijemu odgovora. Još jedan način za poboljšanje performansi keširanja naziva se proaktivnim keširanjem. Pre nego što pretraživaču vrati keširanu stranicu.. od datuma i vremena navedenih u zaglavlju If-Modified-Since. Na Sl. Pristup se oslanja na tzv. firewall ili sigurnosni gateway. proksi može da pribavi i smesti u svoj keš stranice na koje ukazuju izdvojene hiperveze. ova tehnika ne smanjuje već povećava saobraćaj na Internetu. u kešu će ostati dva meseca. ona će biti čuvana u kešu jedan sat. tzv. uslovni GET zahtev.Takođe. Uslovni GET zahtev je HTTP poruka koja sadrži zaglavlje If-Modified-Since (˝ako je modifikovana posle .nije modifikovana) i bez tela (korak 3). olakšan je pristup Web-u od strane računara povezanih na intranet (lokalni računari na isti način komuniciraju međusobno kao i sa udaljenim serverima). Ako je stranica koja se upravo stavlja u keš promenjena pre jednog sata. omogućeno je spoljnim Internet korisnicima da pristupaju informacijama i servisima dostupnim na korporacijskim serverima (kao što je korporacijski Web server). Prvi način se oslanja na informaciju iz zaglavlja odgovora Last-Modified kada određuje koliko dugo će stranica biti čuvana u kešu. Ako je promenjena pre dva meseca. Međutim. Iako ovaj pristup često dobro radi u praksi. korporacijskih mreža koristi isti skup protokola kao i na Internetu (TCP/IP). 5-27 Princip uslovnog GET zahteva.

Takođe. firewall kontroliše protok informacija u oba smera (kao iz tako i u intranet). Slične restrikcije mogu biti uvedene i za pakete koji se iz intraneta šalju ka Internetu. Na primer. kao i sve zahteve koji se iz intraneta šalju prema Internetu. a da sve ostale poništava. firewall može biti tako podešen da poništava sve dolazne TCP pakete sa brojem odredišnog porta 20 ili 21 i da na taj način onemogući pristup bilo kom lokalnom FTP serveru. administrator intraneta može da konfiguriše firwall tako da prema Internetu propušta smo TCP paketa sa odredišnim brojem porta 80 i da tako lokalnim korisnicima omogući korišćenje globalnog Web-a. Na primer. 5-28. 149 . firewall može da uvede restrikcije koje se odnose na brojeve portova. Firewall presreće i filtrira pakete koji su sa Interneta upućeni lokalnim serverima. 5-28 Firewall Kao što se može videti sa Sl.Sl. Filtriranje se obavlja na osnovu izvornih i odredišnih IP adresama i brojevima portova sadržanim u TCP/UDP paketima ili na bazi nekih drugih kriterijuma. ali u isto vreme i zabrani pristup ostalim servisima dostupnim na Internetu. Firewall može biti konfigurisan tako da prosleđuje ka intranetu samo pakete koji su upućeni na određene lokalne IP adrese i/ili samo ako su paketi poslati iz nekog određenog domena.

Sign up to vote on this title
UsefulNot useful