5. mrezni sloj
TRANSCRIPT
-
7/26/2019 5. Mrezni sloj
1/6
5. Mrezni sloj
Do sada smo videli da se Ethernet koristi za povezivanje uredjaja koji su na bliskomrastojanju. Ali se ne moze neograniceno siriti jedna L2 mreza. Takodje, kod VLA!ova
imamo potrebu da organizujemo mrezu u razlicite logicke celine i one se ponasaju kao
potpuno odvojene mreze na 2. nivou i one se moraju povezati, a da bi se to postiglo, morase doci do ". sloja # mreznog sloja.
Bitne karakteristike 3. sloja:
$re svega adresiranje. %reza na ". sloju treba da bude skalabilna, da bude proizvoljno
velika, prakticno da moze da bude globalna. &redjaji koji se javljaju na takvoj mrezi
moraju da budu jedinstveni i moraju da budu vidljivi sa cele mreze. Rutiranjeoznacavaproces prosledjivanja poruka izmedju dve tacke na mrezi, a te poruke prolaze kroz niz
medjusobno razdvojenih manjih mreza, koje su povezane preko rutera. 'azmena
podataka se, takodje, odvija preko poruka. $oruke na ". nivou se enkapsuliraju u porukena 2. nivou. 'acunar izlazi sa svojim podacima (porukom) na ". nivou, izlazi na Ethernet,
dakle on se enkapsulira u poruku 2. nivoa u okvir koji izlazi na Ethernet mrezu, kojamoze da ide preko niza sviceva ili cak habova, koja ce doci do rutera. Ali, da bi porukaprosla, ruter mora da je raspakuje, da vidi sadrzaj na ". nivou i da odluci da li ce da salje
na ruter* ili ruter2. +va veza izmedju dva rutera moze da bude $$$ veza ili DL- veza.
ada poruka izadje na odredisnu mrezu, koja je opet neka L2 mreza, ona ce da seenkapsulira u L2 okvir, koji ce da nadje put do uredjaja kome je zaista namenjen i to tako
kao sto bi ruter kao jedan uredjaj na Ethernet mrezi poslao bilo koji okvir do tog
odredjenog drugog uredjaja na L2 mrezi. Videcemo da mrezni sloj moze da sprovodi i
fragmentacijuporuka, paketa, da ih razdvoji na manje celine, a postoje, kao sto smo iranije napomenuli, veci broj protokola na ". nivou /$0, Apple Talk,..., ali danas se
iskljucivo koristi IP protokol (Internet Protocol).
arakteristike IP protokola:
+n je !onnectionless, sto oznacava da ne postoji konekcija izmedju tacaka kojekomuniciraju. Dakle, ne uspostavlja se veza sa kraja na kraj pre nego sto se posalju
paketi. 1vaki paket se nezavisno salje do svog odredista, po veoma slicnoj analogiji kao i
obicna, tradicionalna papirnata posta. To znaci da posiljalac ne zna da li primalac postoji i
da li je on trenutno povezan na mrezu, ne zna da li je paket uspesno stigao, jer nemapotvrdu uspesnog prijema. -ak i ako se paket primi, mi ne znamo da li je taj paket
ostecen, da li je onaj koji je primio paket uspeo da ga rekonstruise i prepozna. $rimalac,
takodje, ne zna kada ce da mu prstigne paket.
Best "ffortoznacava da ce mreza pruziti najbolju sansu da se paketi prenesu, ali to nijepouzdano, nema garancije da ce paketi da se prenesu. $aket moze da se izgubi, da budeostecen, moze veza da bude zagusena pa da se neki paketi odbace, moze i da se promeni
redosled paketa. To sve /$ protokol ne resava. +n samo treba da prenese pakete u nameri
da ce oni da stignu.
*
-
7/26/2019 5. Mrezni sloj
2/6
/$ protokol je Media Independent, ne zavisi od izickog medijuma. a 2. nivou imamo
protokole koji su direktno oslonjeni na izicki medijum. /$ se enkapsulira u pojedinacne
protokole L2 nivoa3 Ethernet, $$$, DL-, 4rame 'ela5...
$odaci koji se dobiju sa viseg 6. sloja se postavljaju u pakete i na njih se dodaje zaglavlje
koje se naziva zagla#lje ili IP $eader. ajvaznija polja zaglavlja su adrese izvorista iodredista. $re ovih adresa javljaju se neka kontrolna polja. %ime %o &i#e (%%&)polje je
novina u odnosu na ono sto nam je pravilo problem na 2. nivou. TTL polje je velicine *
bajta i ono ce da se smanjuje svaki put kada okvir predje sa jednog rutera na drugi. To jebitno jer u mrezama, koje treba da budu globalne, jako je bitno da imamo redudantne
putanje, koje su bitne zbog stabilnosti, ali je dobro da imamo i balansiranje saobracaja.
%edjutim, moramo da resimo onaj problem koji nastane kada se paketi beskonacno
zavrte. To moze da se desi ili greskom u koniguraciji na ruterima, mada oni ako su dobrokonigurisani treba da prepoznaju to i sprece. 7bog toga sto to moze da se desi ubaceno je
polje TTL u zaglavlje svakog paketa, koje ima jednu vrednost vecu od nule, maksimalno
288 i prikom prolaska kroz svaki ruter, on ce da oduzme vrednost ovog TTL brojaca,smanjivace se za * u svakom koraku, i ako dodje do 9 ruteri ce da odbace te pakete.
$aketi na ". nivou mogu da budu odredjene duzine, ali ono sto je bitno jeste da onimoraju da se postave u pakete u okvire na 2. nivou, dakle da se enkapsuliraju. +kviri na
2. nivou imaju svoju maksimalnu velicinu. %aksimalna velicina kod Etherneta je bila
*899 bajtova za podatke, a neke tehnoligije mogu da imaju i manju maksimalnu velicinu,a ta vrednost se naziva M%' (Maimum %ransmition 'nit). Ako nam stigne podatak
veci od %T& tada imamo problem i /$ protokol mora da se izbori sa time. +n ce u tom
slucaju da se podeli na manje delove, da se ragmentira i da se svaki manji nezavisni deo
prenese u taj okvir. / taj proces se naziva ragmentacija. Da bi se podrzala ragmentacijamoraju da budu dodatna polja sadrzana u zaglavlju. $re svega, svaki paket ima svoj
identiikator ! polje Identification, koji je velicine 2 bajta i koji ce da oznacava taj paket
na ". nivou koji je poslat. 1ledece polje bitno za ragmentaciju je polje lag, koje nosikontrolne bite i polje ragment *ffset, koje dodatno ukazuje na velicinu onog dela koji
je ragmentiran. To unkcionise na sledeci nacin. $rvo kontrolni biti u 4lag polju nose
inormaciju da li je prvo neki paket ragmentiran, odnosno, ako je ragmentiran, da li imajos ragmenata koji pristizu iza njega. To polje se naziva Mode ragment lag. Vrednost
jedan oznacava da ragment nije poslednji koji potice od tog originalnog paketa. ula
znaci da nema vise ragmenata koji pristizu. Takodje, mozemo i da zabranimo
ragmentaciju paketa i ako je postavljena jedinica na polje +on,t ragment, tada sezabranjuje ragmentacija i tada ce biti odbaceni paketi, a nula ako se dozvoljava
ragmentacija, sto je i deault!na vrednost. 4ragment +set ce da ukazuje na mesto tog
ragmenta u originalnom vecem /$ paketu. +n oznacava relativni pomeraj, +set od
pocetka ragmenta u odnosu na podatke iz originalnog /$ paketa. /mamo ogranicenuvelicinu polja 4ragment +set i ona je u segmentima od po : bajta (:, *;, "2...).
Do ragmentacije dolazi ako naidjemo na %T& koji je manji od velicine paketa koji je
pristigao, a drugi uslov je da Don
-
7/26/2019 5. Mrezni sloj
3/6
da uklopimo i ove delove i zaglavlje u %T& koji imamo na raspolaganju na tom delu
puta. Duzina svakog dela podataka mora da bude u inkrementima od po :, zato sto nam
+set upravo pokazuje na te vrednosti. 7atim se svaki taj deo enkapsulira u novi /$paket, dakle dodaje mu se zaglavlje. & tom zaglavlju adrese ostaju iste i drugi podaci
ostaju isti, TTL ostaje isti, ali se menjaju neke stvari. $rvo mora da se postavi prava
vrednost za %ore 4ragment 4lag, ako to nije poslednji ragment onda se setuje taj bit.7atim se upisuje vrednost 4ragment +seta u taj podatak, koji ukazuje na poziciju tog
ragmenta u originalnom nizu i eader Length, -hecksum i neka druga polja se ponovo
preracunavaju, a ostala polja se kopiraju, ukljucujuci i /D.
Reasemling je proces objedinjavanja svih podataka iz ragmenata u originalni niz
podataka iz prvobitnog /$ paketa. 'easembling radi poslednja odredisna radna stanica ili
uredjaj kome su namenjeni paketi. Taj uredjaj dobija nezavisne /$ pakete, primetice da nanekom paketu postoji 4lag %ore 4ragment, sto znaci da je to sada pocetak niza
ragmenata i za takav slucaj uredjaj zna da svi ragmenti imaju isti identiikator i on ce
alocirati jedan baer u memoriji i redjace ragmente koji pristizu sa tim identiikatorom.%oramo da startujemo i tajmer zato sto mi ne znamo da li ce nam se neki takav ragment
izgubiti ili nece, a necemo beskonacno dugo da ga cekamo, obicno je to nekoliko
sekundi, npr. ;9. / kako pristizu ragmenti gledamo identiikaciju tog originalnog paketa ipostavljamo u taj alocirani baer. /mamo +set koji nam ukazuje gde se nalazi u
originalnom nizu koji ragment, cak i ako oni ne stignu u istom redosledu. Tek kada
pristigne i poslednji ragment, tada se ti podaci objedinjavaju i tako u celini se predajuprotokolu 6. nivoa. Ako ne stigne neki ragment, tada istice ovaj tajmer i tada se odbacuju
svi ostali ragmenti.
Dakle, imamo TTL, polja vezana za ragmente i imamo i verziju koja nam ukazuje okojoj verziji protokola se radi. Verzija 6 je tradicionalna verzija koja se u najvecem broju
slucajeva korsti. Ali najvazniji podatak u zaglavlju je adresa. /mamo izvorisnu i
odredisnu adresu. /$ adrese su jako bitan koncept. Adrese u verziji 6 imaju duzinu od 6bajta, sto je jako veliki broj. Adrese su podeljene u klase A, =, -, D i E. lasa D sluzi za
multicast, a klasa E je rezervisana za eksperimentalne potrebe. lasa A ima vodecu nulu
u svojoj bitskoj reprezentaciji. $rvi bajt moze da ima vrednosti od 9 do *2>, a ostala "bajta mogu da variraju sve vrednosti od 9 do 288, sto ukupno daje jako veliki opseg,
tacnije polovinu svih ovih mogucih adresa. lasa = pocinje sa binarnom jedinicom i
nulom, sto oznacava da prvi bajt moze da bude u opsegu od *2: do *?*. lasa - pocinje
sa dve jedinice i nulom, sto znaci da je prvi bajt u opsegu od *?2 do 22". lasa D pocinjesa tri jedinice i nulom, tako da je prvi bajt u opsegu od 226 do 2"?. / ostatak je klasa E.
Dakle, svaka klasa je upola manja od prethodne.
$ostoji organizacija koja regulise dodelu adresa. $rvobitno je to bio /nter/-, koji jekasnije prerastao u organizaciju /AA koji dodeljuje adrese. / /AA je svoju ulogu
dodeljivanja adresa delegirala na 'egionalne /nternet 'egistre ('/$) po kontinentima.Domeni se na drugi nacin uredjuju, ali su tesno povezani sa adresama.
e koriste se sva 6 bajta za odredjivanje adrese uredjaja u nekoj mrezi, vec se ova 6 bajtadele u dve grupe. $rvi, visi deo od ova 6 bajta ce da adresira mrezu (adresu mreze), a
ostatak bitova od ova 6 bajta ce da identiikuje, adresira uredjaj na toj mrezi. +vaj drugi
deo nazivamo ost deo, a prvi deo et@ork. & drugom delu za hostove imamo bita,
"
-
7/26/2019 5. Mrezni sloj
4/6
medjutim ne koriste se sve adrese u tom drugom delu. 1a bitova mozemo da adresiramo
2razlicitih adresa, ali su dve adrese rezervisane u tom opsegu. Ako posmatramo mrezu
koja ima prva tri bajta koji oznacavaju adresu mreze, 6. bajt oznacava hostove u tojmrezi, sve nule u host delu oznacavaju adresu mreze. /mamo prakticno dve mreze i one
su spojene preko rutera. Te dve mreze su, posmatrano sa ". nivoa, jedna celina koja moze
da se sastoji iz Ethernet mreze, stavise iz vise Ethernet sviceva i habova. Dakle, dverazlicite mreze, dva razlicita Ethernet domena, moguce i VLA!a su povezana preko
rutera. 1ve jedinice u host delu su rezervisane za oznacavanje broadcast adrese.
=roadcast adresa je namenjena svima.
Takodje, od svih mogucih adresa postoje i u ovim klasama A, =, - odredjeni delovi koji
su rezervisani i koji se ne koriste. Takve adrese nazivaju se privatne adrese i one se ne
koriste za javno povezivanje na internet. +ne mogu da se koriste u izolovanim mrezamakoje nisu direktno povezane na internet.
& klasi A oseg privatne adrese u prvom bajtu ima broj *9, dok su ostala " bajtaproizvoljna. & klasi = se izdvaja *; mreza varijacija drugog bajta bitova u opsegu od
*>2.*; ! *>2."*, druga dva bajta su proizvoljna. & klasi - postoji 28; mreza u opsegu*?2.*;:.9.9 !* ?2.*;:.288.288.
$ostoje i rezervisane adrese, npr. u klasi A opseg od 9.9.9.9!9.288.288.288, a adresa
9.9.9.9 oznacava posebnu adresu koja je dzoker za sve ostale adrese i zove se deaultruta, a adresa *2>.9.9.* oznacava loopback adresu koja je namenjena za svaki uredjaj.
$odela na ove klase je imala za cilj da omoguci da se mreza struktuira u vise delova, tako
da imamo adresu mreze i adresu hostova u mrezi.
Bako je bitan koncept koji omogucava da se dalje podeli host deo koji moze biti dosta
veliki na podmreze. /mamo iksni mrezni deo i podmreze # -unet. Dakle, 1ubnetting #
sabnetovanje predstavlja deljenje mreznog dela na manje delove ! podmreze. ajvise stomozemo da idemo u host deo je da u host delu ostanu dva bita. Ta dva bita ce dati cetiri
adrese, od toga su dve adrese rezervisane i moramo imati jos * bit za hostove.
ako oznaciti gde je granica sabneta u tom deluC To je podatak koji se oznacava kao
maska. %aska nosi inormaciju gde je granica izmedju sabneta i host dela. %aske se
mogu nezavizno koristiti od klase A, = i -. To unkcionise tako sto mi nasa 6 bajta sada
posmatramo kao "2 bita i kazemo da nam je granica maske do odredjenog bita, sto znacida maska moze da se predstavi kao podatak od 6 bajta koji ima vodece jedinice koje
oznacavaju deo mreze i ostale sve nule koje oznacavaju host deo. Te vodece jedinice
maskiraju deo koji oznacava podmrezu, a nule maskiraju deo koji oznacava hostove,kazemo da maskiraju zato sto se bitskom operacijom AD jedinice preslikavaju u
jedinice, nule u nule i od bilo koje adrese izdvojicemo mreznu adresu.
ada imamo jednu adresu u /$ ormi znamo da nam ona jednoznacno oznacava jedan
jedini uredjaj na mrezi, ali ne znamo kojoj mrezi ona pripada, mozemo da znamo kojoj
klasi A, = ili -, ali ne znamo kojoj podmrezi, ne znamo kako je ta mreza podeljena. Dabismo to znali mi moramo da imamo i masku, pa host adresa kojoj je pridruzena maska
nosi tu inormaciju. %aska ce kazati tacno do kog dela smo usli u host deo, odnosno koja
6
-
7/26/2019 5. Mrezni sloj
5/6
nam je adresa mreze kojoj pripada taj host. To je jako bitno za unkcionisanje rutera i
uopste svih mehanizama koji se koriste u komunikaciji na mreznom nivou.
%ozemo za razlicite maske binarno da racunamo sta nam se desava u kom bitu, da
pretvaramo binarne brojeve u dekadne. %edjutim, koristi se jedan trik koji moze dosta da
ubrza ovo racunanje. ada gledamo masku, ona se zavrsava u nekom bajtu. Taj bajt zovese -unet,s Interesting *cteti to je poslednji bajt koji sadrzi jedinice. jega gledamo i
koristimo nesto sto se zove Magic /umer koji nama prakticno omogucava da ne
gledamo sada brojeve koji imaju u tom bajtu vodece jedinice pa pratece nule pa da ihpretvaramo u broj koji odgvara dekadnom obliku. Lakse je da gledamo koliko imamo
nula. / npr. imamo masku duzine 2: bita. 2::::6 jedinice i 6 nule. 2 6*; i taj broj
se naziva magic number. Dakle, imamo 26varijacija za hostove, sto znaci da ako od 28;
oduzmemo *; dobicemo 269 i to je broj koji predstavljaju vodece jedinice.
Da sumiramo, iz /$ adrese i maske mozemo da zakljucimo prvo koja je adresa maske,
koja je prva /$ adresa na raspolaganju za hostove, koja je poslednja i koja je broadcastadresa. od slozenijih maski imamo slucaj npr. adresa je *"9.6.*92.*F22. =ajt od interesa
je ". jer je tu poslednja jedinica, a 2 poslednja bita su u host delu, dakle magic number je6, sto znaci da ce adresa podmreza na koje se odnosi ovakva jedna maska da ide uinkrementima od 6 (9, 6, :, *2, *;...) i mi treba da vidimo u kojoj se podmrezi nasa
adresa nalazi. & tim inkrementima doci cemo od po 6 do mreze .*99, a sledeca je .*96.
Dakle, adresa mreze je *"9.6.*99.9, prva raspoloziva adresa u toj mrezi je *"9.6.*99.*.=roadcast adresa ima sve jedinice u host delu, a to su sve jedinice u 6. bajtu i ona dva bita
u ". bajtu, pa je poslednja adresa u podmrezi *996!**9", dakle *"9.6.*9".288, a
poslednja adresa na raspolaganju je za * manja od broadcast adrese i to je *"9.6.*9".286.
7asto bismo uopste koristili podmrezeC /mamo ogranicen broj adresa i ako koristimo -
klasu, ona je sasvim dovoljna, ali nam je nekada i to previse. 'ecimo ako imamo mrezu
sa *99tinak racunara u jednom i *99tinak u drugom delu zgrade, mozemo da ihgrupisemo u jednu zajednicku mrezu ili zelimo da ih razdvojimo na primer u VLA!ove.
Ako bismo koristili - klase bez maski tada bi jedna - klasa bila namenjena za jednu, a
druga za drugu mrezu, ali - klasa moze da adresira 286 maksimalno uredjaja sto nam jeprevise. Tako da cemo mi da uklopimo nase stvarne potrebe koje imamo do minimalne
mreze koja moze da obuhvati sve nase racunare, a to je recimo mreza sa maskom 28, do
*2: adresa i mozemo jednu mrezu sa maskom 26 da podelimo na dve mreze sa maskom
28. %ozemo jos vise da delimo te maske i postoji koncept koji se naziva 0ariale
&engt1 -unet Mask 2 0&-M. Duzina maske nije uvek iksne, vec varijabilne velicine.
& nasoj mrezi, celu mrezu podelimo na masku iste duzine, recimo F2> i sve podmreze u
toj mrezi moraju da budu te iksne velicine, sto daje opseg od "2 adrese u host delu.
%edjutim, za point!to!point linkove nama ne treba "9 adresa, nama trebaju samo dveadrese. 7naci koristimo masku koja ima minimalni broj adresa, znaci masku dizine "9.
Da mi ne bismo trosili ceo ovaj opseg na ovako male mreze, mi mozemo da jednupodmrezu od "2 adrese u host delu dalje podelimo na odredjeni broj npr. na novih :
podmreza, koje ce sve biti u tom opsegu, ali ce maska biti veca, bice "9. / ruteri moraju
da barataju sa razlicitim duzinama maski. eki raniji protokoli nisu to podrzavali. adimamo varijabilnu duzinu maske imamo leksibilnost, mozemo hijerarhijski da gradimo
8
-
7/26/2019 5. Mrezni sloj
6/6
mrezu, eikasnije koristimo adresni prostor, mozemo da podrzimo skalabian rast mreze i
dodavanje novih adresa.
$ostoji i -upernetting, kod koga maska ne ide u host deo, nego maska sada ulazi u
mrezni deo, maska se smanjuje. Time se dobija da se moze sprovesti agregacija (spajanje)
vise manjih mreza u jednu vecu mrezu. %ozemo da grupisemo samo susedne mreze i tosve one koje su u tom opsegu koji nam diktiraju biti u tom delu gde se maska pomera.
Dakle, ako imamo situaciju sa : mreza i to u opsegu od *>2.26.9.9F*; do *>2."*.9.9F*;,
one imaju zajednickih : bita u prvom bajtu i 8 bita u drugom. 1to znaci da ako mi maskupostavimo na tu granicu dobicemo mrezu koja oznacava svih : podmreza. Ta mreza ce da
nosi naziv *>2.26.9.9F*".
a internetu je jako veliki broj mreza i taj broj je eksponencijalno rastao. Da nemamoagregaciju ruta, toliko bismo imali manjih mreza da bi prakticno jos mnogo ranije ruteri
bili prezasiceni. Agregacijom se smanjuje ukupan broj mreznih adresa koje se vide na
internetu.
;