Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
RMT drugi deo 2016
©S 1
DRUGI DEO
3.3 Prenos bez uspostavljanja veze: protokol UDP
Osim poslova multipleksiranja i demultipleksiranja i najosnovnije provere grešaka, UDP protokolu IP ne
dodaje ništa više. Ako programer neke aplikacije koristi UDP umesto TCP onda se ta aplikacija skoro
neposredno obraća protokolu IP. UDP pre slanja segmenta nema usklađivanja za uspostavljanje veze
između predajnih I prijemnih entiteta transportnog sloja i zato se kaže da je UDP protokol bez
uspostavljanja veze.
Aplikacije koriste UDP protokol iz razloga:
1. Bolja kontrola na nivou aplikacije toga sta se salje i kada se salje (Ako se koristi UDP čim proces
aplikacije preda podatke protokolu UDP, on će spakovati te podatke u UDP segment i taj
segment odmah predati mrežnom sloju; važno za aplikacije u realnom vremenu koje
dozvoljavaju gubitak podataka i loše podnose kontrolu zagušenja; moguće koristiti UDP a u
okviru same aplikacije omogućiti obavljanje dodatnih zadataka pored osnovne usluge isporuke
segmenata koju nudi UDP)
2. Nema uspostavljanja veze (Nema kašnjenja zbog uspostavljanja veze)
3. Nema stanja veze (UDP ne održava stanje veze i ne vodi računa o baferima za primanje i slanje,
parametrima za kontrolu zagušenja, rednim brojevima i brojevima potvrde prijema o čemu se
vodi računa kod TCP; server namenjen određenoj aplikaciji može da podrži mnogo više aktivnih
klijenata ako se aplikacija izvršava preko UDP)
4. Malo dodatno zaglavlje paketa (UDP ima samo 8 dodatnih bajtova, dok TCP ima 20)
Aplikacija Protokol aplikativnog sloja Transportni protokol
E-pošta SMTP TCP Pristupanje udaljenim terminalima Telnet TCP Veb HTTP TCP Transfer datoteka FTP TCP Udaljeni server podataka NFS Najčešće UDP Protok multimedijalnih zapisa Najčešće vlasnički UDP/TCP Internet telefonija Najčešće vlasnički UDP/TCP Upravljanje mrežom SNMP Najčešće UDP Protokol rutiranja RIP Najčešće UDP Prevođenje imena DNS Najčešće UDP
Aplikacije za upravljanje mrežom obično moraju da se izvršavaju, kada je mreža u vanrednom stanju-
upravo kada je teško postići pouzdan prenos podataka uz kontrolu zagušenja.
Multimedijalne aplikacije uglavnom preko UDP, ali sve češće se koristi TCP kad je broj izgubljenih paketa
mali i kad organizacije blokiraju UDO saobraćaj iz bezbednosnih razloga.
Napomena, kontrola zagušenja je važna da bi se sprečilo da mreža dođe u stanje u kom se malo šta
korisno može uraditi; posledica nedostatka kontrole zagušenja kod UDP može da bude veliki broj
RMT drugi deo 2016
©S 2
izgubljenih paketa kao i istiskivanje uspostavljenih TCP sesija.
3.3.1 Struktura UDP segmenta
32 bita
Broj izvorišnog porta Broj odredišnog porta
Dužina Kontrolni zbir
Aplikacijski podaci (poruka)
UDP zaglavlje ima samo 4 polja od kojih svako zauzima po 2 bajta, a to su:
1. Broj izvornog porta
2. Broj odredisnog porta
(Brojevi portova omogućavaju odredišnom računaru da podatke aplikacije prosledi odgovarajućem
procesu koji se izvršava na određenom krajnjem sistemu)
3. Dužina (Broj bajtova u UDP segmentu (zaglavlje+podaci))
4. Kontrolni zbir (Služi prijemnom računaru da proveri da li je u segmentu došlo do grešaka)
3.3.2 UDP kontrolni zbir
Kontrolni zbir se koristi kako bi se utvrdilo da li su bitovi unutar UDP segmenta promenjeni prilikom
prenosa od izvora do odredista, tako sto UDP na strani posiljaoca izracunava komplement jedinice za
sumu svih 16-bitnih reči u segmentu, pri čemu se prekoračenja, do kojih dođe prilikom sabiranja, dodaju
bitu najmanje dužine. Ovaj rezultat se stavlja u polje kontrolnog zbira UDP segmenta.
PRIMER:
Imamo tri 16-bitne reči:
0110011001100000
0101010101010101
1000111100001100
Zbir prve dve 16-bitne reči je:
1011101110110101
Dodavanjem treće reči na ovaj zbir dobijamo:
0100101011000010
Komplement jedinice dobija se pretvaranjem svih 0 u 1, a svih 1 u 0. Za 0100101011000010 to je
1011010100111101.
Na prijemnom kraju, sabiraju se sve četiri 16-bitne reči, uključujući i kontrolni zbir. Ako u paketu ne
postoje greške, zbir kod primaoca 1111111111111111.
RMT drugi deo 2016
©S 3
UDP koristi ovaj sistem jer ne postoji garancija da svi linkovi od izvora do odredišta obezbedjuju proveru
grešaka i zato što mora da obezbedi otkrivanje grešaka na transportnom sloju, od jednog do drugog
kraja (princip od jednog do drugog kraja)
UDP nista ne preduzima da bi se greska ispravila. U nekim verzijama protokola UDP oštećeni segment se
jednostavno odbacuje, dok druge verzije aplikaciji prosleđuju oštećeni segment uz upozorenje.
3.4 Principi pouzdanog prenosa podataka
Zamisao pouzdanog prenosa podataka: Usluga koja se nudi na gornjem sloju je usluga pouzdanog
kanala kroz koji se mogu prenositi podaci. Bitovi podataka koji se prenose pouzdanim kanalom se ne
oštećuju (nema promena vrednosti iz 1 u 0 i obrnuto), niti se gube i svi se isporučuju redosledom po kom
su poslati. Protokol pouzdanog prenosa podataka ima zadatak da ostvari ovako zamišeljenu uslugu.
Mogući problemi:
1. Sloj ispod protokola pouzdanog prenosa možda nepouzdan (TCP protokol ostvaruje prenos
podataka preko nepouzdanog (IP) mreznog sloja)
2. Sloj ispod dve krajnje tačke koje pouzdano komuniciraju se sastoji od jednog fizičkog linka ili više
međusobno povezanih mreža
Predajna strana protokola pokreće se odozgo, pozivom rdt_send() ( rdt – reliable data transfer, _send –
znači da se poziva predajna strana protokola rdt). Kada paket pritigne iz prijemne strane kanala, na
prijemnoj strani se poziva rdt_rcv(). Kada protokol rdt želi da isporuči primljene podatke gornjem sloju,
to radi pozivom deliver_data(). (Slika 3.8 strana 205)
3.4.1 Pouzdan prenos podataka preko savrseno pouzdanog kanala
Pouzdan prenos podataka preko savršeno pouzdanog kanala: PROTOKOL rdt1.0
Kanal koji se nalazi na sloju ispod potpuno pouzdan. FSM (mašine konacnog stanja) za primaoca i
pošiljaoca zasebne, imaju samo po jedno stanje. Strelice u opisu označavaju prelazak iz jednog stanja u
drugo (u ovom slučaju povratak u isto stanje). Početno stanje FSM obeležava se isprekidanom strelicom.
Predajna strana protokola rdt, prihvata podatke iz gornjeg sloja dogadjajem rdt_send(data), pravi paket
koji sadrži te podatke (postupkom make_pkt(data) ) i šalje paket u kanal. U praksi, dogadjaj
rdt_send(data) nastaje tako što aplikacija iz gornjeg sloja poziva neku proceduru (recimo, proceduru
rdt_send() ). (Slika 3.9 a strana 206)
Na prijemnoj strani, rdt prima paket iz kanala ispod sebe dogadjajem rdt_rcv(data), izvlači podatke iz
paketa(postupkom extract(packet,data)) i prenosi podatke gornjem sloju (postupkom deliver_data(data)
). U praksi, dogadjaj rdt_rcv(paket) nastaje tako što protokol nižeg sloja poziva odgovarajuću proceduru (
recimo,proceduru rdt_rcv() ). (Slika 3.9 b strana 206)
Pouzdan prenos podataka preko kanala sa bitskim greskama: PROTOKOL rdt2.0
Ovaj protokol se sastoji od pozitivnih potvrda(ACK) i negativnih potvrda(NAK), kojima se saopštava šta
RMT drugi deo 2016
©S 4
je primljeno pravilno, a šta treba poslati ponovo. U računarskim mrežama, protokoli za transfer
podataka koji se zasnivaju na ponovnom slanju, poznati su kao ARQ(Automatic Repeat reQuest)
protokoli.
Da bi se izborili sa bitskim greskama, potrebno je ARQ protokole dopuniti sa jos tri dodatne mogućnosti:
1. Otkrivanje gresaka (mehanizam koji će dozvoliti primaocu da otkrije kada se greške na bitovima
pojave: potrebno je da pošiljalac pošalje primaocu dodatne bitove koji se smeštaju u polje
kontrolnog zbira paketa podataka protokola rdt2.0)
2. Povratna informacija od primaoca posiljaocu (pozitivne (ACK) i negativne (NAK) potvrde;
protokol vraća slične ACK i NAK pakete od primaoca ka pošiljaocu koji sadrže samo jedan bit, 1-
ACK, 0-NAK)
3. Ponovno slanje (paketa s greškom)
Predajna strana protokola rdt2.0 ima dva stanja. U jednom stanju čeka podatke iz gornjeg sloja; u
drugom čeka da od primaoca primi ACK ili NAK paket.
Ako stigne ACK paket, pošiljalac zna da je poslednji preneti paket ispravno primljen i stoga se
protokol vraća u stanje čekanja podataka iz gornjeg sloja.
Ako primi NAK, protokol ponovo šalje poslednji paket i čeka da primalac vrati ACK ili NAk
Pošiljalac u stanju čekanja na ACK ili NAK paket, ne može da preuzima druge podatke sa gornjeg sloja i
da ih šalje. Zbog toga se naziva – protokol STANI I ČEKAJ.
FSM prijemne strane protokola rdt2.0 i dalje ima jedno stanje. Pošto paket pristigne, primalac odgovara
sa ACK ili NAK.
Pri korišćenju ACK i NAK paketa, moze doći i do njihovog oštećenja.
Mogućnosti za postupanje sa neispravnim ACK i NAK paketima:
Kontrolni zbir dopuniti bitovima, tako da pošiljalac može ne samo da otkrije, već se i oporavi od
grešaka na bitovima
Pošiljalac jednostavno ponovo pošalje paket podataka, pri čemu može doći do dupliranja paketa
Ovaj problem se rešava dodavanjem rednog broja za svaki paket, tako da primalac samo treba da
proveri da li primljeni paket predstavlja ponavljanje.
Poboljšana verzija protokola rdt2.0 je protokol rdt2.1, koji ima dva puta više stanja nego ranije. Protokol
rdt2.1 koristi i negativne i pozitivne potvrde od primaoca ka pošiljaocu.
Protokol rdt2.2 koristi samo pozitivne potvrde. Umesto negativne potvrde, dovoljno je poslati dve ACK
potvrde i pošiljalac će znati da primalac nije ispravno primio paket koji sledi iza paketa za koji su poslate
dve ACK potvrde. Za ovaj protokol, primalac takodje mora da dodeli redni broj paketa čiji prijem
potvrđuje ACK porukom (to se postiže dodavanjem vrednosti ACK – 0 ili ACK – 1 u make_pkt() u FSM
primaoca), a pošiljalac mora da proveri redni broj paketa čiji je prijem potvrđen primljenom ACK
porukom.
RMT drugi deo 2016
©S 5
Pouzdan prenos podataka preko kanala sa bitskim greskama i gubicima paketa: PROTOKOL
rdt3.0
Pored oštećivanja bitova, kanal može i da gubi pakete:
Kako otkriti gubitke paketa?
Šta uraditi u slučaju gubitka?
Za otkrivanje i resavanje problema izgubljenih paketa zadužuje se pošiljalac. Bilo da se izgubi paket ili
ACK za taj paket, pošiljalac neće dobiti nikakav odgovor, pa je potrebno je poslati ga ponovo. Pošiljalac
treba da izabere neko razumno vreme u kom je najverovatnije došlo do gubitka paketa. Za primenu
mehanizma ponovnog slanja na osnovu vremena, potreban je tajmer koji može da pošalje prekid
pošiljaocu po isteku zadatog vremena. Pošiljalac će morati da bude u stanju da:
pokrene tajmer uvek kada pošalje paket
da odgovori na prekid od strane tajmera
da zaustavi tajmer
Pošto redni brojevi paketa naizmenično menjaju vrednost izmedju 0 i 1, protokol rdt3.0 se naziva i
protokol naizmeničnih bitova.
Elementi neophodni za rad protokola su kontrolni zbirovi, redni brojevi, tajmeri i pozitivne i negativne
potvrde prijema paketa.
3.4.2 Pouzdani cevovodni protokol za prenos podataka
Ključ problema performansi protokola rdt3.0 je što je to protokol stani čekaj.
Rešenje je jednostavno: umesto da radi tako što stoji i čeka, pošiljaocu se dozvoljava da šalje više paketa
ne čekajuci potvrde prijema. Pošto prolazak više paketa izmedju pošiljaoca i primaoca može da se zamisli
kao punjenje cevovoda, ova tehnika se naziva cevovodnom obradom.
Cevovodna obrada ima i odredjene posledice na protokole za pouzdan prenos podataka:
Mora se povećati raspon rednih brojeva zato što svi paketi u prolazu moraju da imaju jedinstven
redni broj
Predajna i prijemna strana moraju da imaju memoriju za privremeno čuvanje više paketa –
bafer.
Potreban raspon rednih brojeva i veličine privremene memorije zavisiće od toga kako protokol
za prenos podataka postupa u slučaju izgubljenih i oštećenih paketa. Dva osnovna pristupa za
oporavak od grešaka cevovodne obrade: Vrati-za-N (Go-Back-N ) tj GBN i selektivno ponavljanje
RMT drugi deo 2016
©S 6
3.4.3 Protokol GBN
Protokol GBN dozvoljava pošiljaocu da pošalje više paketa bez čekanja na potvrdu, ali ograničava najveći
dozvoljeni broj N nepotvrdjenih paketa u cevovodu.
send_base – redni broj najstarijeg nepotvrdjenog paketa
nextseqnum – najmanji neupotrebljeni redni broj tj redni broj sledećeg paketa koji treba poslati
Redni brojevi u intervalu:
[0, send_base-1] odgovaraju paketima koji su već preneti i čiji je prijem potvrdjen
[send_base, nextseqnum-1] odgovaraju paketima koji su poslati, ali čiji prijem još nije potvrdjen
[nextseqnum, send_base+N-1] odgovaraju paketima koji mogu da se pošalju odmah čim podaci
stignu iz gornjeg sloja
redni brojevi veći ili jednaki od send_base+N ne mogu se koristiti sve dok ne stigne potvrda
prijema za nepotvrdjeni paket koji se trenutno nalazi u cevovodu
Raspon dozvoljenih rednih brojeva za poslate, ali još nepotvrđene pakete, može se posmatrati kao
prozor veličine N u rasponu rednih brojeva. Za N se kaze da je veličina prozora. Ovaj prozor tokom rada
GBN klizi unapred, duž raspoloživih rednih brojeva. GBN zato zovemo protokol sa kliznim prozorom.
GBN pošiljalac mora da odgovori na 3 vrste dogadjaja:
1. Poziv odozgo (kada se odozgo pozove rdt_send(), pošiljalac proverava da li je prozor pun, tj da li
postoji N nepotvrdjenih paketa; ako prozor nije pun, paket se šalje, ako jeste, paket se vraća
gornjem sloju ili čuva te podatke u privremenoj memoriji)
2. Prijem ACK poruke (u ovom protokolu, potvrda prijema za paket sa rednim brojem n, smatra se
kumulativnom potvrdom prijema, koja označava da je primalac pravilno primio sve pakete sa
rednim brojevima koji su manji i jednaki n)
3. Istek vremena tajmera (posle isteka odredjenog vremena, pošiljalac ponovo šalje sve pakete
koji su prethodno poslati, a čiji prijem nije još uvek potvrdjen)
Sa strane primaoca: ako paket sa rednim brojem n primi ispravno i po redu, primalac šalje ACK poruku za
paket n i predaje deo podataka gornjem sloju; u svim ostalim slučajevima odbacuje paket i šalje ACK za
poslednji primljeni. Odbacuje one koji ne stižu po redu!
Realizacija GBN u obliku raznih procedura. U ovakvom programiranju zasnovanom na dogadjajima,
različite procedure se pozivaju bilo iz drugih procedura u skupu protokola ili kao rezultat prekida.
RMT drugi deo 2016
©S 7
3.4.4 Selektivno ponavljanje
Protokoli sa selektivnim ponavljanjem (selective repeat) izbegavaju nepotrebna ponovna slanja tako što
pošiljalac ponovo šalje samo one pakete za koje sumnja da ih je primalac pogrešno primio.
Ovakvo pojedinačno ponovno slanje prema potrebi zahteva da primalac zasebno potvrdjuje ispravno
primljene pakete.
Veličina prozora N i ovde se koristi da bi se ograničio broj zaostalih, nepotvrđenih paketa u cevovodu.
Međutim, pošiljalac je već dobio ACK potvrde za neke pakete u prozoru.
SR primalac će potvrditi ispravno primljeni paket bez obzira na to da li je stigao po redu. Paketi izvan
redosleda čuvaju se u privremenoj memoriji dok ne stignu nedostajući paketi, a tada se gornjem sloju
redom isporučuje grupa paketa.
Za protokol SR vazi da se prozori pošiljaoca i primaoca ne poklapaju uvek.
Primalac ne razlikuje ponovno slanje nekog paketa od prvog slanja nekog drugog paketa. Takođe, mora
se obezbediti da se redni broj ne koristi ponovo sve dok pošiljalac ne bude siguranda u mreži više nema
nijednog ranije poslatog paketa sa tim rednim brojem.
(kod TCP životni vek paketa približno 3 minuta)
RMT drugi deo 2016
©S 8
3.5 Transport sa uspostavljanjem veze: protokol TCP
3.5.1 TCP veza
Za protkol TCP se kaže da je sa uspostavljanjem veze zato što pre početka slanja podataka, dva procesa
moraju prvo „da se rukuju” tj moraju jedan drugom da pošalju neke uvodne segmente. Protokol TCP se
izvrsava samo na krajnjim sistemima, a ne na usputnim elementima mreže, oni ne održavaju stanje TCP
veze, cak nisu uopšte svesni postojanja TCP veze.
TCP veza obezbedjuje punu dupleksnu uslugu (A ka B i B ka A), i to je veza od tačke do tačke (tačno
izmedju jednog pošiljaoca i jednog primaoca). Nije moguć prenos podataka od jednog pošiljaoca ka više
primalaca u istoj operaciji slanja. Za TCP dva računara su dovoljna – treći je višak!
Uspostavljanje konekcije se odvija tako što klijent prvo šalje poseban TCP segment; server odgovara
drugim posebnim TCP segmentom; i na kraju klijent ponovo odgovara trećim posebnim segmentom.
Prva dva segmenta ne sadrže nikakve korisne podatke, treći može da sadrži. Pošto se medju računarima,
pri usaglašavanju, razmenjuju tri segmenta, ovaj postupak se često naziva trostruko usaglašavanje.
Klijentski proces propušta niz podataka kroz soket. TCP usmerava ove podatke u predajnu privremenu
memoriju te veze – predajni bafer. S vremena na vreme, TCP zahvata delove podataka iz predajne
privremene memorije.
Najveća količina podataka koja može da se zahvati i stavi u jedan segment, ograničena je najvećom
veličinom segmenta (Maximum Segment Size) tj MSS. To je maksimalna količina podataka aplikativnog
sloja u segmentu. MSS se obično postavlja tako što se prvo odredi dužina najvećeg okvira sloja veze koji
može da pošalje lokalni računar pošiljalac, takozvani MTU (Maximum Transmision Unit) – najveća
jedinica prenosa, i zatim postavljanjem vrednosti MSS tako da se osigura da TCP segment može da stane
u jedan okvir sloja veze. Uobičajene MTU vrednosti su 1460 bajtova, 536 bajtova i 512 bajtova. Ethernet
i PPP imaju MSS u vrednosti 1.500 bajtova.
TCP dopunava svaku celinu podataka klijenta TCP zaglavljem i tako pravi TCP segmente. TCP veza se
sastoji od privremene memorije, promenljivih i soketa veze sa procesom na jednom računara, i još
jednog skupa od privremene memorije, promenljivih i soketa veze sa procesom na drugom računaru.
3.5.2 Struktura TCP segmenta
Napomenimo, polje podataka sadrži komad podataka aplikacije. MSS ograničava maksimalnu veličinu
polja podataka u segmentu. Kad TCP šalje veliku datoteku, MSS deli tu datoteku na komade veličine MSS
(osim poslednjeg dela, koji je uglavnom manji).
Struktura zaglavlja:
1. broj izvornog i odredišnog porta ( multipleksiranje i demultipleksiranje)
2. polje kontrolnog zbira (32-bitno)
3. polje broja potvrde (32-bitno)
RMT drugi deo 2016
©S 9
4. 16-bitno polje prijemnog prozora (koristi se za kontrolu toka)
5. 4-bitno polje dužine zaglavlja (može biti promenljive dužine zbog polja TCP opcije, ali je
uglavnom to polje prazno pa je uobičajena dužina 20 bajtova)
6. neobavezno polje opcija promenljive dužine (koristi se kada pošiljalac i primalac pregovaraju o
maksimalnoj dužini segmenta MSS)
7. polje oznaka sadrži 6 bitova:
ACK (da li segment sadrži potvrdu prijema za segment koji se uspešno primljen)
RST, SYN i FIN (koriste se prilikom uspostavljanja i prekidanja veze)
PSH (znači da primalac treba odmah da prosledi podatke gornjem sloju)
URG (koristi se da bi označio „hitne” segmente)
8. pokazivač hitnih podataka (16 bita; TCP mora da obavesti entitet gornjeg sloja na prijemnoj
strani da postoje hitni podaci i da mu se preda pokazivač na kraj tih hitnih podataka)
32 bita
Broj izvornog porta Broj odredišnog porta
Redni broj
Broj potvrde
Dužina zaglavlja
Ne koristi se U
RG
PSH
RST
SYN
FIN
Prijemni prozor
Internetov kontrolni zbir Pokazivač hitnih podataka
Opcije
Podaci
Redni brojevi i brojevi potvrde
Redni brojevi odnose se na neprekidni tok prenetih bajtova, a ne na niz prenetih segmenata.
Redni broj za segment je redni broj prvog bajta u segmentu unutar neprekidnog toka bajtova.
PRIMER: A šalje podatke B preko TCP veze. Taj tok podataka se sastoji od datoteke od 500 000 bajtova, MSS je 1
000, a redni broj prvog bajta podataka je 0. TCP od tog toka podataka pravi 500 segmenata sa rednim brojevima: 0,
1 000, 2 000 itd.
Broj potvrde koji računar A stavlja u svoj segment je redni broj sledećeg bajta koji računar A
očekuje od računara B.
PRIMER: Neka je A primio od B jedan segment koji sadrži bajtove od 0 do 535 i drugi koji sadrži bajtove od 900 do 1
000. A još uvek nije primio bajtove od 536 do 899. A čeka bajt 536 i sledeći segment koji računar A šalje računaru B
imaće u polju za broj potvrde 536.
RMT drugi deo 2016
©S 10
TCP ima kumulativne potvde prijema tj potvrđuje samo bajtove do prvog nedostajućeg bajta u toku.
Takođe, obe strane biraju nasumično početni redni broj da bi se smanjila verovatnoća da se segment,
koji još postoji u mreži od ranije ne zameni sa važećim segmentom u kasnije uspostavljenoj vezi između
ta ista dva računara.
3.5.3 Procena vremena povratnog puta i isteka vremena tajmera
Procena vremena povratnog puta
Uzorak vremena povratnog puta RTT za neki segment, koji se naziva SampleRTT, jeste vreme od
trenutka slanja segmenta, do prijema potvrde tog segmenta. U vecini TCP protokola, meri se samo jedan
uzorak SampleRTT, tj meri se za samo jedan preneti, ali jos uvek nepotvrdjeni segment. Pri tome, TCP ne
izračunava SampleRTT za segment koji se šalje ponovo, već samo za segmente koji su poslati jednom.
Da bi se procenio tipični RTT, TCP stalno izračunava prosek izmerenih vrednosti SampleRTT, nazvan
EstimatedRTT, prema obrascu:
EstimatedRTT =(1- α)*EstimatedRTT + α *SampleRTT (α=0.125)
EstimatedRTT je ponderisani prosek vrednosti SampleRTT. Ovakav prosek se naziva eksponencijalno
ponderisani klizni prosek, zato što značaj (ponder) date vrednosti SampleRTT eksponencijalno opada sa
svakim sledećim ažuriranjem.
Varijacija vremena povratnog puta – DevRTT, predstavlja procenu standardne devijacije SampleRTT od
EstimatedRTT:
DevRTT = (1 - β)*DevRTT + β*(SampleRTT - EstimatedRTT) (β = 0.25)
Postavljanje i upravljanje vremenom tajmera pre ponovnog slanja
Vreme koje bi trebalo da protekne pre ponovnog slanja bi trebalo da bude jednako EstimatedRTT uz
neku rezervu. To vreme se odredjuje na sledeći nacin:
TimeoutInterval = EstimatedRTT + 4*DevRTT
Početna vrednost TimeoutInterval se stavlja uglavnom na 1 sekundu. Kada se pojavi istek vremena, ova
vrednost će biti duplirana, kako bi se izbegla pojava isteka vremena za naredni segment, koji će uskoro
biti potvrđen. Međutim, čim se segment preuzme, a vrednost EstimatedRTT ažurira, TimeoutInterval se
ponovo računa.
3.5.4 Pouzdan prenos podataka
TCP obezbeđuje da tok podataka koji proces čita iz svog prijemnog bafera protokola TCP bude
neoštećen, bez praznina, bez duplikata i u pravilnom redosledu. TCP je protokol sa samo jednim
tajmerom iako ima više poslatih a još nepotvrđenih segmenata.
RMT drugi deo 2016
©S 11
Tri glavna događaja TCP pošiljaoca:
1. Primanje podataka od aplikacije iznad (kad se to desi, enkapsulira podatke u segment i predaje
taj segment IP protokolu; TCP pokreće tajmer kada preda segment IP ako tajmer već nije
uključen)
2. Istek vremena tajmera (Kad god nastupi dogadjaj isteka vremena, TCP ponovo šalje segment,
koji je izazvao ovaj događaj i ponovo pokreće tajmer)
3. Prijem ACK potvrde (Kada nastupi ovaj događaj, TCP poredi ACK vrednost sa svojom
promenljivom SendBase (redni broj najstarijeg nepotvrđenog bajta); ažurira se SendBase i
ponovo pokreće tajmer ako ima još nekih nepotvrđenih segmenata)
(Primeri strane 244, 245, 246)
Udvostručavanje vremena trajanja tajmera
Kad god nastupi dogadjaj isteka vremena, TCP ponovo šalje nepotvrdjeni segment sa najmanjim rednim
brojem. Ali, svaki put kada TCP ponovo šalje neki segment, on udvostručava vreme trajanja tajmera u
odnosu na prethodnu vrednost umesto da ga ponovo izračuna. Medjutim, ako se tajmer ponovo
pokreće pošto se, ili prime podaci iz aplikacije odozgo, ili se primi ACK potvrda, vrednost TimeoutInterval
se izračunava od najnovijih vrednosti EstimatedRTT i DevRTT, čime se postiže kontrola zagušenja u
ograničenoj meri.
Brzo ponovno slanje
Pošiljalac često može da otkrije gubljenje paketa mnogo pre isteka ovog vremena kada primi takozvane ponovljene ACK potvrde. Ponovljeni ACK je ACK kojim se ponovo potvrdjuje prijem segmenta za koji je pošiljalac već ranije primio takvu potvrdu.Kada TCP primalac primi segment sa rednim brojem većim od sledećeg očekivanog rednog broja, on primećuje prazninu u toku podataka, tj primećuje da neki segment nedostaje. Posto TCP ne koristi negativne potvrde prijema, on jednostavno ponovo potvrdjuje tj pravi još jednu ACK potvrdu.U slucaju kada primi tri ponovljene ACK potvrde, TCP pošiljalac preduzima brzo ponovno slanje, ponovo šaljući nedostajući segment pre isteka vremena tajmera.
GBN ili selektivno ponavljanje?
Mehanizam za oporavak od grešaka protokola TCP je mešavina GBN i protokola sa selektivnim
ponavljanjem.
3.5.5 Kontrola toka
Kada TCP veza primi bajtove koji su ispravni i u pravilnom redosledu, ona ih stavlja u prijemnu privremenu memoriju. Odgovarajući proces aplikacije čita podatke iz ove privremene memorije, ali ne obavezno čim ti podaci stignu. Ako aplikacija relativno sporo učitava podatke, pošiljalac može vrlo lako da preplavi prijemnu privremenu memoriju. TCP nudi uslugu kontrole toka, kojom se uskladjuje brzina kojom pošiljalac šalje podatke, sa brzinom kojom prijemna aplikacija učitava
RMT drugi deo 2016
©S 12
podatke.TCP obezbedjuje kontrolu toka tako sto pošiljalac održava promenljivu nazvanu prijemni prozor, kako bi mogao da nasluti koliko ima mesta u privremenoj memoriji primaoca. Posto TCP radi u punom dupleksu, pošiljaoci na obe strane veze održavaju zaseban prijemni prozor.
RcvBuffer RcvWindow
Pretpostavimo da računar A preko TCP veze šalje rečunaru B veliku datoteku. Računar B dodeljuje toj vezi prijemni bafer RcvBuffer. S vremena na vreme, proces aplikacije na računaru B učitava podatke iz ovog bafera.
LastByteRead: broj poslednjeg bajta u toku podataka koji je proces aplikacije u računaru B pročitao iz privremene memorije
LastByteRcvd: broj poslednjeg bajta u toku podataka koji je stigao sa mreže i smešten u
prijemnu privremenu memoriju računara B Pošto TCP ne sme da prepuni dodeljenu privremenu memoriju, uvek mora da bude:
LastByteRcvd – LastByteRead ≤ RcvBuffer Prijemni prozor, oznacen sa RcvWindow, postavljen je na velicinu slobodnog prostora u privremenoj memoriji:
RcvWindow = RcbBuffer – [LastByteRcvd - LastByteRead]RcvWindow nema stalnu vrednost, dinamička promenljiva Računar B obaveštava računar A o tome koliko slobodnog prostora ima u baferu veze, tako što trenutnu vrednost RcvWindow stavlja u polje prijemnog prozora svih segmenata koje šalje računaru A. Na početku je RcvWindow=RcvBuffer. Računar A, tokom čitavog trajanja veze obezbedjuje da je:
LastByteSent – LastByteAcked ≤ RcvWindow Ukoliko se računaru A, objavi da je RcvWindow = 0, TCP zahteva da računar A nastavi da šalje segmente sa po jednim bajtom podataka kada veličina prijemnog prozora računara B bude jednaka nuli da bi računar A znao da li se oslobodio prostor u prijemnom baferu računara B. U jednom trenutku, privremena memorija počinje da se prazni i potvrde prijema prenose računaru A vrednost RcvWindow različitu od nule.
3.5.6 Upravljanje TCP vezom
Korak 1: Klijentska strana protokola TCP prvo šalje poseban TCP segment serverskoj strani protokola
RMT drugi deo 2016
©S 13
TCP. Ovaj poseban segment ne sadrži podatke aplikativnog sloja. Medjutim, jedan od bitova oznaka u
zaglavlju segmenata, bit SYN ima vrednost 1, pa se ovaj segment naziva SYN segmentom. Osim toga,
klijent bira nasumice početni redni broj i stavlja taj broj u polje rednog broja početnog TCP SYN
segmenta. Ovaj segment se enkapsulira u IP datagram i šalje serveru.
Korak 2: Kada IP datagram koji sadrži TCP SYN segment, stigne do računara servera, server izvlači TCP
SYN segment iz datagrama, toj vezi dodeljuje TCP bafer i promenljive veze i klijentu šalje segment kojim
odobrava uspostavljanje veze. Ovaj segment takođe ne sadrži podatke aplikativnog sloja. Ipak, sadrži tri
bitne informacije:
1. Bit SYN postavljen na 1
2. Polje potvrde u zaglavlju TCP segmenta postavljeno je na vrednost client_isn+1
3. Server bira vlastiti početni redni broj i stavlja tu vrednost u polje rednog broja u zaglavlju TCP
segmenta.
Ovaj segment naziva se SYNACK segment.
Korak 3: Pošto primi SYNACK segment, klijent takođe ovoj vezi dodeljuje privremene bafere promenljive.
Klijentski računar zatim šalje serveru još jedan segment; ovaj segment potvrđuje prijem serverovog
segmenta odobrenja veze. SYN je postavljen na 0, pošto je veza uspostavljena. U telu ovog segmenta
mogu da se nađu podaci.
Nakon ova tri koraka veza je uspostavljena i sada mogu da šalju segmente jedan drugom. U svakom od
ovih sledećih segmenata, bit SYN je 0.
Bilo koji od ova dva procesa koji učestvuju u TCP vezi može da je prekine. Kada se veza okonča, resursi u
računarima se oslobađaju. Ako klijent npr. želi da prekine vezu on šalje serverskom procesu poseban TCP
segment u čijem zaglavlju je bit FIN postavljen na 1. Tokom trajanja TCP veze, protokol TCP na oba
računara prelazi kroz različita TCP stanja.
Alat za skeniranje portova nmap šalje TCP segment SYN sa odredišnim portom npr 6789 kako bi istražio
port 6789 na ciljanom računaru. Moguće je da se dogodi:
Izvorni računar dobija TCP segment SYNACK od ciljanog računara (nmap vraća odgovor da je
otvoren port)
Izvorni računar dobija TCP segment RST od ciljanog računara (SYN stigao do ciljanog računara
ali na tom računaru se ne izvršava aplikacija sa TCP portom 6789)
Izvorni računar ne dobija ništa (SYN segment verovatno zaustavljen nekom zaštitnom barijerom
i nikada nije stigao do ciljanog računara)
RMT drugi deo 2016
©S 14
3.6 Principi kontrole zagušenja
3.6.1 Uzroci i posledice zagušenja
Posledice:
1. Veliko kašnjenje u redovima za čekanje koje nastaje kada se brzina pristizanja paketa približava
kapacitetu linka (Strana 259-261)
2. Pošiljalac mora ponovo da šalje podatke, da bi nadoknadio pakete koji su odbačeni (izgubljeni)
zbog prepunog bafera
3. Nepotrebno ponovno slanje izazvano velikim kašnjenjem dovodi do toga da ruter troši propusni
opseg linka za prosledjivanje nepotrebnih kopija paketa. (Strana 261-263)
4. Kada se paket odbaci negde na putanji, to znači da je prenosni kapacitet svih linkova
upotrebljenih za prosledjivanje paketa do trenutka odbacivanja paketa uzaludno utrošen.
(Strana 263-265)
Brzina kojom transportni sloj šalje segmente koji sadrže prvobitne podatke kao i podatke koji se ponovo šalju, ponekad se naziva ponudjeno opterećenje mreže.
3.6.2 Rešenja koja se koriste za kontrolu zagušenja
1. Kontrola zagušenja s kraja na kraj (mrežni sloj ni na koji način ne pomaže transportnom sloju
što se tiče kontrole zagušenja; čak i samo prisustvo zagušenja u mreži, krajnji sistemi mogu da
utvrde jedino na osnovu ponašanja posmatrane mreže; TCPm mora da prihvati ovu kontrolu
zagušenja, jer IP sloj ne obezbeđuje krajnjjim sistemima nikakvu povratnu informaciju o
zagušenju mreže)
2. Kontrola zagušenja uz pomoć mreže(komponente mreže tj ruteri daju pošiljaocu jasne povratne
informacije o stanju zagušenja u mreži; ovu povratnu informaciju može da sačinjava samo jedan
bit koji ukazuje na zagušenje linka)
RMT drugi deo 2016
©S 15
Kod kontrole zagušenja uz pomoć mreže, informacija o zagušenju se prosledjuje od mreže ka pošiljaocu
na jedan od dva načina:
Neposredna povratna informacija se sa mrežnog rutera šalje pošiljaocu. Ova vrsta obaveštenja je
obično u obliku paketa zagušenja
Ruter označava odgovarajuće polje u paketu koji putuje od pošiljaoca ka primaocu kako bi
ukazao na zagušenje. Kada primi tako označeni paket, primalac obaveštava pošiljaoca da je
dobio upozorenje o zagušenju
3.6.3 Primer kontrole zagušenja uz pomoć mreže: ABR kontrola zagušenja ATM mreža
ABR je algoritam za kontrolu zagušenja u ATM mrežama (mreže koje za komutiranje paketa koriste
virtuelna kola(VC), što znači da svaki komutator na putanji od izvora do odredišta vodi računa o stanju
odredjenog virtuelnog kola od izvora do odredišta).
Kada je mreža manje opterećena, ABR usluga može slobodno da koristi dostupan višak propusnog
opsega. Kada je mreža zagušena, ABR usluga bi trebalo da priguši brzinu prenosa na neku unapred
postavljenu najmanju brzinu.
U ABR usluzi, ćelije podataka prenose se od izvora do odredišta kroz niz usputnih komutatora. Izmedju
ćelija podataka umetnute su ćelije za upravljanje resursima, ćelije RM. Ove RM ćelije mogu se upotrebiti
za razmenjivanje informacija o zagušenju medju računarima i komutatorima. Komutator može i sam da
napravi RM ćeliju i pošalje je izvoru.
ABR kontrola zagušenja u ATM mreži koristi pristup koji se zasniva na brzini, tj. pošiljalac tačno
izračunava najveću brzinu kojom može da šalje i njoj se prilagođava. ABR predvidja 3 mehanizma kojima
komutatori upozoravaju primaoce o zagušenju u mreži:
1. EFCI bit: Svaka ćelija podataka sadrži bit za nedvosmisleno upozorenje o zagušenju unapred tj bit
EFCI. Zagušeni mrežni komutator može da postavi EFCI bit u ćeliji podataka na 1 i tako upozori
odredišni računar na zagušenje. Odredišni računar mora da proverava EFCI bit u svim primljenim
ćelijama podataka. Kada RM ćelija stigne na odredište, a u prethodno primljenoj ćeliji podataka
EFCI bit je stavljen na 1, tada odredišni računar postavlja bit za upozorenje o zagušenju, bit CI u
RM ćeliji na 1, i RM ćeliju šalje nazad pošiljaocu.
2. Bitovi CI i NI: Broj umetnutih RM ćelija može da se podešava parametrom čija je
podrazumevana vrednost jedna RM ćelija na svakih 32 ćelije podataka. Te RM celije sadrže bit za
upozorenje o zagusenju (CI bit) i bit „ne povecavaj”, bit NI (no increase), koje postavlja
komutator zagušene mreže. Komutator može da unutar RM ćelije koja prolazi kroz njega u
slučaju blagog zagušenja da postavi bit NI na 1, a u slučaju velikog zagušenja bit CI na 1. Kada
odredišni računar primi RM ćeliju, on je vraća pošiljaocu ne dirajući CI i NI bitove.
3. Postavljanje vrednosti ER: Svaka RM ćelija takodje sadrži dvobajtno polje eksplicitno zadate
brzine, polje ER. Zagušeni komutator može da smanji vrednost u polju ER unutar RM ćelije koja
prolazi kroz njega.
RMT drugi deo 2016
©S 16
3.7 TCP kontrola zagušenja
Kako pošiljalac ograničava brzinu kojom šalje saobraćaj u svoju vezu: TCP mehanizam za
kontrolu zagušenja zahteva da se sa obe strane veze održava još jedna promenljiva, prozor
zagušenja, označen sa cwnd (congestion window), koji nameće ograničenje brzine kojom
pošiljalac može da šalje saobraćaj u mrežu. Količina nepotvrdjenih podataka kod pošiljaoca ne
sme da predje manju od vrednosti cwnd i rwnd:
LastByteSent – LastByteAcked ≤ min{cwnd, rwnd}
Navedeno ograničenje određuje količinu nepotvrđenih podataka kod pošiljaoca i tako posredno
ograničava njegovu brzinu slanja. Brzina slanja pošiljaoca iznosi približno cwnd/RTT bajtova u sekundi.
Prema tome, pošiljalac može da podesi brzinu slanja podataka kroz vezu podešavanjem vrednosti cwnd.
Kako TCP pošiljalac opaža da li postoji zagušenje na putanji između njega i odredišta: Kada
postoji izuzetno zagušenje, dolazi do prepunjavanja jednog ili više bafera u ruterima duž
putanje, što dovodi do odbacivanja datagrama. Odbačeni datagram predstavlja nastanak
događaja gubitka kod pošiljaoca – bilo da dođe do isteka vremena, ili stignu trostruke ACK
potvrde – što pošiljalac uzima kao znak da postoji zagušenje na putanji od njega do primaoca.
U slučaju kad nema zagušenja TCP pošiljalac prima potvrde za prethodno nepotvrđene segmente. TCP
uzima ove potvrde kao znak da je sve u redu, pa će to iskoristiti da poveća svoj prozor zagušenja (samim
tim i brzinu slanja). Ako potvrde stižu relativno sporo, tada se prozor zagušenja relativno sporo
povećava. Ako potvrde stižu brzo, prozor zagušenja se povećava mnogo brže. Pošto TCP koristi potvrde
prijema kako bi pokrenuo postupak povećanja prozora zagušenja, za TCP protokol se kaže da ima vlastiti
ritam.
Vodeći principi protokola TCP:
Izgubljeni segment ukazuje na zagušenje, pa bi iz tog razloga brzina pošiljaoca trebalo da se
smanji, kada se segment izgubi
Potvrđeni segment ukazuje da mreža isporučuje segmente pošiljaoca primaocu, pa brzina
pošiljaoca može da se poveća, kada stigne ACK potvrda za nepotvrđeni segment
Isprobavanje propusnog opsega (povećanje brzine kao odgovor na pristigle ACK potvrde, sve dok
se ne pojavi događaj gubitka, kada bi brzina prenosa trebalo da se smanji)
TCP algoritam za kontrolu zagušenja ima tri glavne komponente:
1. Spori start
2. Izbegavanje zagušenja
3. Brzi oporavak (nije obavezan)
Spori start
Na početku TCP veze, vrednost cwnd obično se postavlja na jedan MSS, što daje početnu brzinu slanja
približno MSS/RTT. Pošto propusni opseg može da bude mnogo veći od MSS/RTT, pošiljalac bi želeo brzo
da pronađe raspoloživi propusni opseg. U stanju spori start vrednost cwnd počinje sa 1 MSS i povećava
RMT drugi deo 2016
©S 17
se za 1 MSS svaki put kada se preneseni segment prvi put potvrdi. (2 segmenta potvrđena, po 1 MSS,
postaju 4 MSS).
Kako se izlazi iz stanja sporog starta:
1. Ukoliko postoji događaj gubitka, TCP pošiljalac podešava vrednost cwnd na 1 MSS i počinje
iznova proces sporog starta.
2. On takodje podešava drugu promenljivu ssthresh (prag algoritma sporog starta) na cwnd/2
(polovina od vrednosti prozora zagušenja, kad se pojavi zagušenje). Drugi način na koji se spori
start može okončati je direktno povezan sa ssthresh. Kada se vrednost cwnd izjednači sa
ssthresh, spori start se završava, a TCP prelazi u režim rada izbegavanja zagušenja.
3. Poslednji način na koji spori start može da se završi je ako se otkriju tri kopije ACK potvrda, i tada
protokol TCP izvršava brzo ponovno slanje i ulazi u stanje brzog oporavka.
Izbegavanje zagušenja
Prilikom ulaza u stanje izbegavanja zagušenja, cwnd je približno pola svoje vrednosti, u odnosu na
trenutak kada se zagušenje poslednji put pojavilo. Umesto da se duplira vrednost cwnd za svaki RTT, TCP
povećava vrednost cwnd jednim MSS za svaki RTT. Uobičajeni pristup je da TCP pošiljalac poveća
vrednost cwnd za MSS bajtova (MSS/cwnd) svaki put kad pristigne nova potvrda prijema (10 segmenata
unutar jednog RTT, cwnd se povećava za 1/10 MSS za svaku potvrdu prijema koja stigne).
Vrednost cwnd se podešava na 1 MSS, a vrednost ssthresh se ažurira na polovinu vrednosti cwnd, kada
se pojavi događaj gubitka. U slučaju trostrukih kopija ACK potvrda mreža nastavlja da isporučuje
segmente od pošiljaoca do primaoca. TCP deli na pola vrednost cwnd i postavlja vrednost ssthresh da
bude polovina vrednosti cwnd, kada se primi trostruka kopija ACK potvrde. Tada nastupa stanje brzog
oporavka.
Brzi oporavak
U brzom oporavku, vrednost cwnd se povećava za 1 MSS za svaku kopiju ACK potvrde koja je primljena
za segment koji nedostaje, koji je prouzrokovao da protokol TCP udje u stanje brzog oporavka. Kad
stigne ACK potvrda za segment koji nedostaje, protokol TCP ulazi u stanje izbegavanja zagušenja, nakon
što se cwnd smanji. Ako se pojavi događaj isteka vremena, brzi oporavak prelazi u stanje sporog starta:
vrednost cwnd se podešava na 1 MSS, a vrednost ssthresh se podešava na polovinu vrednosti cwnd kad
se pojavi događaj gubitka.
Kontrola zagušenja protokola TCP: osvrt
TCP kontrola zagušenja se često naziva aditivno povećanje/multiplikativno smanjenje (AIMD). AIMD
kontrola zagušenja izaziva testerasto ponašanje.
RMT drugi deo 2016
©S 18
Osnovna ideja algoritma Vegas protokola TCP :
1. Otkrije zagušenje u ruterima između izvora i odredišta, pre gubitka paketa
2. Snizi brzinu linearno, kada se otkrije predstojeći gubitak paketa (otkrivanje posmatranjem RTT
vremena, duže RTT vreme, veće zagušenje na ruterima)
Makroskopski opis propusne moći protokola TCP
Tokom određenog intervala povratnog puta, brzina pri kojoj protokol TCP šalje podatke je funkcija
prozora zagušenja i trenutnog RTT. Kada je veličina prozora w bajtova, a trenutno vreme povratnog puta
RTT sekundi, tada je brzina prenosa protokola otprilike w/RTT. Protokol tada isprobava dodatni opseg,
povećavanjem w za 1 MSS za svaki RTT, sve dok se ne pojavi događaj gubitka. W neka bude vrednost w
kad se pojavi događaj gubitka. Ako pretpostavimo da su RTT i W približno konstantni tokom trajanja
veze, onda se brzina prenosa protokola TCP kreće od w/(2*RTT) do W/RTT
S obzirom da se propusna moć protokola TCP linearno povećava između dve ekstremne vrednosti,
imamo:
Prosečna propusna moć veze=0,75*W/RTT
Protokol TCP preko putanja velikog propusnog opsega
Prosečna propusna moć veze= 1,22*MSS/(RTT*√L)
U ovom slučaju propusna moć TCP veze je funkcija verovatnoće gubitka (L), vremena povratnog puta
(RTT) i maksimalne veličine segmenata (MSS). Koristeći ovo formulu, algoritam kontrole zagušenja
današnjeg protokola TCP može samo da toleriše veoma malu verovatnoću gubitka.
RMT drugi deo 2016
©S 19
3.7.1 Fer ponašanje
U idealizovanom scenariju, propusni opseg koji su dve veze ostvarile kroz link uskog grla može da
fluktuira duž linije jednakog deljenja propusnog opsega. Takođe, te dve veze će konvergirati ka ovom
ponašanju, bez obzira na mesto u dvodimenzionalnom prostoru. Pri neidealnim uslovima, aplikacije
mogu da dobiju veoma nejednake delove propusnog opsega linka.
Fer ponašanje i UDP
Sa stanovišta TCP aplikacije koje se izvršavaju preko protokola UDP nisu fer – ne sarađuju sa drugim
vezama, niti podešavaju svoju brzinu prenosa na odgovarajući način. Pošto kontrola zagušenja protokola
TCP smanjuje brzinu prenosa kada se suoči sa povećanim zagušenjem, a UDP to radi, moguće je da UDP
sadržaj nadvlada TCP saobraćaj.
Fer ponašanje i paralelne TCP veze
Kada jedna aplikacija koristi više paralelnih veza, ona na zagušenom linku dobija veći deo propusnog
opsega.
PRIMER: Link brzine R, koji podržava devet pokrenutih klijentsko-serverskih aplikacija, tako da svaka aplikacija
koristi jednu TCP vezu. Ako se priključi jedna nova aplikacija i takođe koristi jednu TCP vezu, svaka aplikacija dobija
brzinu prenosa R/10. Ali, ako ova nova aplikacija koristi 11 paralelnih TCP veza, njoj će biti dodeljeno više od R/2.
RMT drugi deo 2016
©S
20
4. Mrežni sloj
Ostvaruje uslugu komunikacije od računara do računara.
4.1 Uvod
Mrežni sloj računara H1 preuzima segmente od transportnog sloja računara H1, enkapsulira svaki
segment u datagram i zatim šalje te datagrame na najbliži ruter R1. U prijemnom računaru, H2, mrežni
sloj prima datagrame od najbližeg rutera R2, izdvaja segmente transportnog sloja i isporučuje ih naviše.
Primarna uloga rutera je prosleđivanje datagrama od ulaznih do izlaznih linkova.
4.1.1 Prosleđivanje i rutiranje
Prosleđivanje: Prenos paketa od ulaznog do izlaznog linka unutar istog rutera; delatnost unutar
rutera prilikom prenosa paketa sa interfejsa ulaznog linka na interfejs izlaznog linka.
RMT drugi deo 2016
©S
21
Rutiranje: Obuhvata sve mrežne rutere, čijom se saradnjom pomoću protokola rutiranja
određuju putanje kojima paketi putuju od izvornog do odredišnog čvora. Algoritme koji
izračunavaju putanje nazivamo algoritmima rutiranja.
Svaki ruter ima tabelu prosleđivanja. Ruter prosleđuje paket tako što ispituje vrednost određenog polja
u zaglavlju pristiglog paketa, a zatim, koristeći tu vrednost pretražuje tabelu prosleđivanja rutera.
Rezultat dobijen iz tabele ukazuje na to na koji bi izlazni interfejs linka rutera trebalo proslediti taj paket.
Tabele prosleđivanja se konfigurišu algoritmima rutiranja koji mogu biti:
Centralizovani (algoritam se izvršava na jednom mestu, a pojedini ruteri preuzimaju
informacije za rutiranje)
Decentralizovan (na svakom ruteru se izvršava deo distributivnog algoritma rutiranja)
U oba slučaja, ruter prima poruke protokola rutiranja, koje se koriste za konfigurisanje njegove tabele
prosleđivanja.
Izraz komutator paketa koristićemo sa značenjem opšti uređaj za komutiranje paketa, koji prenosi paket
iz interfejsa ulaznog linka u interfejs izlaznog linka, u zavisnosti od vrednosti u polju zaglavlja paketa.
Neki komutatori paketa, koje zovemo komutatori sloja veze (sloj veze, fizički sloj) svoju odluku o
prosleđivanju zasnivaju na vrednosti u polju sloja veze. Drugi komutatori paketa, koje nazivamo
ruterima(mrežni sloj, sloj veze, fizički sloj), svoju odluku o prosleđivanju zasnivaju na vrednosti u polju
zaglavlja mrežnog sloja.
Uspostavljanje veze
U nekim računarskim mrežama i treća funkcija mrežnog sloja, a to je uspostavljanje veze; neke
arhitekture mrežnog sloja npr. ATM, frame-replay i MPLS od rutera duž izabrane putanje, od izvora do
odredišta, zahtevaju usaglašavanje da bi se postavilo stanje pre nego što paketi podataka mrežnog sloja
unutar date veze od izvora do odredišta počnu da teku.
4.1.2 Modeli usluga mrežnog sloja
Model usluge mreže definiše karakteristike prenosa podataka od kraja do kraja, to jest, između
predajnog i prijemnog krajnjeg sistema.
Specifične usluge koje bi mrežni sloj mogao ponuditi:
Garantovana isporuka (da će paket pre ili kasnije stići na odredište)
Garantovana isporuka sa ograničenim kašnjenjem (garantuje isporuku od računara do računara
u određenom roku)
Usluge koje bi se mogle ponuditi toku paketa:
Isporuka u ispravnom redosledu
Garantovani minimalni propusni opseg (oponašanje ponašanja prenosnog linka određene
RMT drugi deo 2016
©S
22
brzine)
Garantovana maksimalna promenljivost kašnjenja (vreme koje protekne između slanja dva
uzastopna paketa kod pošiljaoca biti jednako vremenu koje protekne između njihovog prijema
na odredištu)
Bezbednosne usluge (npr. tajni ključ)
Mrežni sloj obezbeđuje jedinstvenu uslugu najboljeg pokušaja, u kojoj se ne garantuje
pravovremena isporuka paketa, ni da će paketi biti primljeni redosledom kojim su poslati, niti se
uopšte garantuje isporuka poslatih paketa.
ATM mreže prevazilaze uslugu najboljeg pokušaja. Dva najvažnija modela usluge ovih mreža su:
Usluga stalne bitske brzine (CBR; cilj ove usluge je obezbediti protok paketa virtuelnim
cevovodom koji se ponaša kao da između predajnog i prijemnog računara postoji link
fiksnog propusnog opsega; garancija da će kašnjenje ćelija s kraja na kraj, promenljivost
kašnjenja ćelija s kraja na kraj i udeo ćelija koje se izgube ili prekasno isporuče, biti manji od
utvrđene vrednosti)
Usluga raspoložive bitske brzine (ABR; usluga neznatno bolja od najboljeg pokušaja, ćelije
mogu da se izgube, ali ne mogu promeniti redosled; vezi koja koristi ABR uslugu garantuje se
minimalna brzina prenosa ćelija (MCR); ova usluga ATM mreže može pošiljaocu da obezbedi
povratne informacije koje regulišu kako pošiljalac prilagođava svoju brzinu između MCR i
dozvoljene maksimalne brzine ćelija)
4.2 Mreže sa virtuelnim kolima i mreže sa datagramima
Mrežni sloj, kao i transportni, može da ponudi usluge sa uspostavljanjem veze i bez uspostavljanja
veze.
Razlike u odnosu na transportni sloj:
Na mrežnom sloju usluge od računara do računara; na transportnom od procesa do procesa
Mrežni sloj nudi ili uslugu sa uspostavljanjem veze (mreže sa virtuelnim kolima) ili bez
uspostavljanja veze (mreže sa datagramima), ne obe
Usluga sa uspostavljanjem veze na transportnom sloju se ostvaruje na obodu mreže u krajnjim
sistemima, a na mrežnom sloju u ruterima u jezgru mreže, a isto tako i u krajnjim sistemima
4.2.1 Mreže sa virtuelnim kolima
ATM i frame relay mreže spadaju u mreže sa virtuelnim kolima i koriste veze mrežnog sloja. Ove veze
mrežnog sloja nazivaju se virtuelna kola.
RMT drugi deo 2016
©S
23
Virtuelno kolo sastoji se od:
Putanje izmedju izvornog i odredišnog računara
Brojeva virtuelnog kola
Stavki u tabeli prosleđivanja u svakom ruteru duž putanje
Paket koji pripada virtuelnom kolu u svom zaglavlju nosi VC broj. Pošto VC može da ima različiti VC broj
na pojedinim linkovima, svaki posredni ruter mora da zameni stari VC broj u paketima koji kroz njega
prolaze novim VC brojem. Novi VC broj dobija se iz tabele prosleđivanja.
Kad god se kroz ruter uspostavi novo virtuelno kolo, dodaje se nova stavka u tabelu prosleđivanja; kad
se neko VC prekine, uklanjaju se odgovarajuće stavke iz svih tabela duž njegove putanje.
Zašto paket ne zadrži isti VC broj na svim linkovima duž svoje putanje?
1. Zamenom broja od linka do linka smanjuje se potrebna dužina VC polja u zaglavlju paketa
2. Uspostavljanje VC kola značajno se pojednostavljuje time što su dozvoljeni različiti VC brojevi na
linkovima duž putanje VC kola; kada se koristi više VC brojeva svaki link na putanji može da bira
VC broj bez obzira na VC brojeve koje su izabrali drugi linkovi te putanje; kada bi se zahtevao
zajednički VC broj bio bi potreban priličan broj poruka koje bi se razmenile i obrađivale
U mreži sa virtuelnim kolima, mrežni ruteri moraju da održavaju informacije o stanju veze za
uspostavljene veze (dodavanje i izbacivanje iz tabele prosleđivanja).
Faze u virtuelnom kolu:
1. Uspostavljanje virtuelnog kola (transportni sloj pošiljaoca stupa u vezu sa mrežnim slojem,
navodi adresu primaoca i čeka da mreža uspostavi virtuelno kolo; mrežni sloj utvrđuje putanju
između pošiljaoca i primaoca, kao i VC brojeve za sve linkove duž te putanje; na kraju, mrežni
sloj dodaje odgovarajuću stavku u tabelu prosleđivanja svih rutera duž putanje)
2. Prenos podataka
3. Raskidanje virtuelnog kola (kada pošiljalac/primalac obavesti mrežni sloj o svojoj želji da
prekine virtuelno kolo; mrežni sloj tada obično obaveštava krajnji sistem na drugoj strani mreže
o prekidanju poziva i ažuriranju tabele prosleđivanja u svim ruterima paketa na putanji)
Uspostavljanje veze na transportnom sloju tiče se samo dva krajnja sistema; krajnji sistemi svesni veze
transportnog sloja, ruteri unutar mreže nemaju pojma o njoj. Na mrežnom sloju VC, ruteri duž putanje
uključeni su u uspostavljanje VC i svaki ruter je sasvim svestan svih VC koja prolaze kroz njega.
Signalizacione poruke su poruke koje krajnji sistemi šalju za otpočinjanje ili raskidanje VC i poruke koje
ruteri razmenjuju za uspostavljanje VC. Protokoli koji se koriste za razmenu tih poruka nazivaju se
protokoli signalizacije.
RMT drugi deo 2016
©S
24
4.2.2 Mreže sa datagramima
U ovim mrežama, kad god krajnji sistem hoće da pošalje neki paket, on taj paket obeleži adresom
krajnjeg odredišnog sistema i zatim taj paket ubaci u mrežu. Ruteri u ovoj mreži ne održavaju nikakve
informacije o stanju VC, jer nema VC.
Tokom prenosa od izvora do odredišta paket prolazi kroz niz rutera. Svi ovi ruteri koriste adresu
odredišta u paketu za njegovo prosleđivanje; kada paket stigne na određeni ruter, taj ruter koristi
adresu odredišta paketa da bi u tabeli prosleđivanja pronašao odgovarajući interfejs izlaznog linka i
zatim ga prosledio na taj interfejs.
Ruter upoređuje prefiks adrese odredišta paketa sa stavkama u tabeli prosleđivanja; ako postoji
jednakost, ruter prosleđuje paket na link pridružen toj vrednosti. Ako prefiks nije jednak nijednoj stavki,
ruter prosleđuje paket na interfejs ostalo. Kada postoji više podudarnosti, ruter primenjuje pravilo
podudaranja najdužeg prefiksa (najduža podudarna stavka).
Iako ruteri u mrežama sa datagramima ne održavaju nikakve informacije o stanju veze, oni ipak u svojim
tabelama prosleđivanja održavaju informacije o stanju prosleđivanja (menjaju se relativno sporo, minut
do pet minuta). Pošto se tabele prosleđivanja u mrežama sa datagramima mogu menjati u bilo kom
trenutku, niz paketa koji se pošalje od jednog do drugog krajnjeg sistema može da prođe različitim
putanjama kroz mrežu i može da stigne bez reda.
4.3 Šta se nalazi unutar rutera?
Komponente rutera:
1. Ulazni portovi (obavlja funkcije fizičkog sloja, funkcije sloja veze podataka (koje su potrebne za
saradnju sa funkcijama sloja veze podataka na udaljenoj strani dolaznog linka), funkcije
pretraživanja (koristi se tabela prosleđivanja kako bi se utvrdio izlazni port rutera na koji će
paket koji dolazi biti prosleđen putem komutatorske mreže)
2. Komutatorska mreža (povezuje ulazne portove rutera sa njegovim izlaznim portovima)
3. Izlazni portovi (skladi pakete koji su mu prosleđeni kroz komutatorsku mrežu, a zatim ih predaje
na izlazni link izvršavanjem neophodnih funkcija sloja veze i fizičkog sloja. Ako je link dvosmeran,
izlazni port tog linka obično se uparuje sa ulaznim portom tog linka na istoj linijskoj kartici)
4. Procesor rutiranja (izvršava protokole rutiranja, održava tabele rutiranja i informacije o stanju
pridruženih linkova i izračunava tabele prosleđivanja za ruter; takođe izvršava funkcionalnosti
upravljanja mrežom)
(Portovi – fizički interfejsi rutera)
Ulazni, izlazni portovi i komutatorska mreža zajedno ostvaruju funkciju prosleđivanja i skoro uvek su
implementirani u hardveru. Funkcije prosleđivanja se zajedno nekada nazivaju ravan za prosleđivanje
rutera.
RMT drugi deo 2016
©S
25
Dok ravan za prosleđivanje funkcioniše u skali vremena koja se meri nanosekundama, kontrolne funkcije
rutera, koje izvršavaju protokole rutiranja, odgovaraju na uključenja i isključenja pridruženih linkova, i
izvršavaju upravljačke funkcije, funkcionišu u vremenskom okviru milisekundi ili sekundi. Ove funkcije
kontrolne ravni rutera su obično implementirane softverski i izvršavaju se na procesoru za rutiranje.
4.3.1 Način rada ulaznog porta
Funkcija završetka linije ulaznog porta i obrada sloja veze primenjuju fizičke i slojeve veze za taj
pojedinačni ulazni link. Modul pretraživanja u ulaznom portu ključan za rad rutera – ovde ruter koristi
tabelu prosleđivanja, kako bi potražio izlazni port na koji će paket biti prosleđen. Kopije tabele
prosleđivanja obično se čuvaju u svakom ulaznom portu. Tabela prosleđivanja se kopira iz procesora
rutiranja na linijske kartice preko izdvojene magistrale (PCI magistrale). Pomoću kopije, odluka vezana za
prosleđivanje može da se donese lokalno, na svakom ulaznom portu, bez poziva centalizovanog
procesora rutiranja za svaki paket, pa se time izbegava usko grlo centralizovane obrade. Ne samo da bi
pretragu trebalo da izvrši hardverski, već su potrebne i tehnike koje prevazilaze jednostavnu linearnu
pretragu kroz veliku tabelu
Ukoliko paketi iz drugih ulaznih portova trenutno koriste komutatorsku mrežu, može trenutno da bude
blokiran ulazak paketa u komutatorsku mrežu. Blokirani paket čekaće u redu na ulaznom portu.
RMT drugi deo 2016
©S
26
4.3.2 Komutiranje
Načini komutiranja:
Komutiranje preko memorije (Mnogi savremeni ruteri, kao i prvobitni ruteri, takođe komutiraju
preko memorije; medjutim, glavna razlika u odnosu na prvobitne je što traženje adrese
odredišta i skladištenje paketa na odgovarajuće mesto u memoriji izvršavaju procesori na
ulaznim linijskim karticama; dva paketa ne mogu da se rutiraju u isto vreme. Ova vrsta rutera
veoma liči na multiprocesore sa deljenom memorijom, gde procesiranje na linijskoj kartici
komutira pakete u memoriju odgovarajućeg izlaznog porta)
Komutiranje preko magistrale (Ovde ulazni portovi prenose paket neposredno u izlazni port
preko zajedničke magistrale, bez posredovanja procesora rutiranja. Ovo se najčešće vrši tako što
ulazni port doda internu oznaku komutatora paketu koja ukazuje na lokalni izlazni port na koji je
ovaj paket prosleđen i prosleđuje paket na magistralu. Paket primaju svi izlazni portovi, ali samo
jedan od njih koji se podudara s oznakom će zadržati paket. Oznaka se tada uklanja na izlaznom
portu. Ako više paketa stigne u ruter u isto vreme, svaki na različiti ulazni port, svi sem jednog
moraju da čekaju. Brzina komutiranja paketa je ograničena brzinom magistrale)
Komutiranje preko višestruko povezane mreže (Korišćenje složenije, višestruko povezane
mreže. Komutator sa unakrsno povezanim linijama je višestruko povezana mreža koja se sastoji
od 2N magistrala koje povezuju N ulaznih portova sa N izlaznih portova. Svaka horizontalna
magistrala seče sa svakom vertikalnom magistralom u tački preseka, koju može da otvori ili
zatvori u bilo koje vreme kontroler komutatorske mreže. Ove mreže sposobne za prosleđivanje
više paketa u isto vreme. Međutim, ako su dva paketa iz dva različita ulazna porta upućena na
isti izlazni port, tada će jedan od njih morati da čeka jer preko magistrale u dato vreme može da
se pošalje samo jedan paket)
RMT drugi deo 2016
©S
27
4.3.3 Procesiranje izlaznog porta
Obuhvata uzimanje paketa koji se čuvaju u memoriji izlaznog porta i prenošenje preko odlaznog linka.
Ovo uključuje biranje i izlazak paketa iz redovaza prenos, kao i izvršavanje potrebnih funkcija prenosa
sloja veze i fizičkog sloja.
4.3.4 Gde dolazi do čekanja u redu?
Redovi paketa mogu se stvoriti kako na ulaznim tako i na izlaznim portovima. Lokacija i dužina čekanja u
redu zavise od opterećenosti saobraćaja, prosečne brzine komutatorske mreže i brzine linije. Kad ne
bude dovoljno memorije za skladištenje pristiglih paketa, doći će do gubitka paketa.
Bafer rutera neophodan da bi se ublažila neravnomernost opterećenosti saobraćaja, prirodno se
nameće pitanje koliko je privremene memorije potrebno. Godinama je važilo da bi veličina bafera (B)
trebalo da bude jednaka prosečnoj veličini povratnog puta RTT pomnoženoj sa kapacitetom linka (C).
Skorašnja istraživanja pokazuju da je u sličaju kada kroz neki link prolazi veliki broj TCP tokova (N),
neophodna veličina bafera od:
B=RTT*C/√N
Posledica čekanja u redu izlaznog porta je da raspoređivač paketa na izlaznom portu mora da izabere
jedan paket između onih koji čekaju u redu za prenos. Odabir može da se dobija po redosledu pristizanja
(FCFS) ili po težinskom ravnopravnom čekanju (WFQ) u kome izlazni link ravnopravno deli između
različitih veza sa kraja na kraj čiji paketi čekaju na prenos. Raspoređivanje paketa je važno da bi se
obezbedio garantovan kvalitet usluge.
Takođe, ako nemam memorije da se ulazni paket smesti u bafer, potrebno je odlučiti da li da se on
odbaci ili jedan ili više paketa iz reda za čekanje. Algoritmi koji se bave ovim problemima nazivaju se
algoritmi za aktivno upravljanje redovima čekanja, a jedan od njih je RED (nasumično rano otkrivanje).
RMT drugi deo 2016
©S
28
Ako komutatorska mreža nije dovoljno brza za prenošenje svih pristiglih paketa bez kašnjenja kroz
komutatorsku vezu, tada redovi za čekanje nastaju i na ulaznim portovima.
Blokiranje spreda (HOL) u ulaznom redu za čekanje komutatora nastaje kad paket koji čeka u ulaznom
redu mora da sačeka prenošenje kroz komutatorsku mrežu (mada je njegov izlazni port slobodan) jer je
sprečen drugim paketom koji se nalazi ispred njega.
4.3.5 Ravan kontrole rutiranja
Ravan kontrole rutiranja je širom mreže pa je, prema tome, decentralizovana sa različitim delovima koji
se izvršavaju na različitim ruterima i međusobno komuniciraju slanjem kontrolnih poruka jedni drugima.
Pri tome, proizvođači rutera i komutatora kompletiraju svoje hardverske ravni podataka sa softverskom
kontrolnom ravni u zatvorene platforme u vertikalno integrisan proizvod.
4.4 Internet protokol (IP): prosleđivanje i adresiranje na internetu
Mrežni sloj interneta sastoji se od tri glavne komponente:
1. Protokol IP
2. Komponenta za rutiranje koja utvrđuje putanju kojom datagram putuje od izvora do odredišta
3. Slanje obaveštenja o greškama u datagramima i pružanje izvesnih informacija o mrežnom sloju
4.4.1 Format datagrama
Paket mrežnog sloja naziva se datagram.
32 bita
Verzija Dužina
zaglavlja Vrsta usluge Dužina datagrama (bajtova)
16-bitni identifikator Oznake 13-bitni ofset fragmentacija
Vreme važenja Protokol gornjeg sloja Kontrolni zbir zaglavlja
32-bitna IP adresa izvora
32-bitna IP adresa odredišta
Opcije (ako postoje)
Podaci
Polja datagrama protokola IPv4:
Broj verzije (verzija protokola IP određenog datagrama)
Dužina zaglavlja (zbog opcija može biti promenljiva dužina, ali pošto većina datagrama nema
opcije, uobičajeni IP datagram ima zaglavlje od 20 bajtova)
Vrsta usluge (TOS; da bi se omogućilo raspoznavanje različitih vrsta IP datagrama)
Dužina datagrama (zaglavlje+podaci; polje dužine 16 bitova, pa maksimalna veličina IP
RMT drugi deo 2016
©S
29
datagrama 65.535 bajtova ali retko kad su datagrami duži od 1.500 bajtova)
Indikator, oznake i pomeraj framentacije
Vreme života (TTL; da bi se sprečilo večno kruženje datagrama u mreži; vrednost ovog polja
smanjuje se za jedan na svakom ruteru gde se datagram obrađuje. Ako polje dostigne vrednost
0, datagram mora da se odbaci)
Protokol (ovo polje se koristi samo kad IP datagram stigne do svog krajnjeg odredišta- ukazuje
na to kom protokolu transportnog sloja bi trebalo predati podatke iz IP datagrama)
Kontrolni zbir zaglavlja (pomaže ruteru da otkrije greške u bitovima unutar IP datagrama;
izračunava se tako što se svaka dva bajta u zaglavlju posmatraju kao broj, potom se ti brojevi
sabiraju i izračunava se prvi komplement dobijenog zbira; ruteri obično odbacuju datagrame u
kojima otkriju grešku; na svakom ruteru se mora ponovo računati kontolni zbir zbog TTL; na sloju
IP kontrolni zbir samo za zaglavlje IP datagrama)
IP adrese izvora i odredišta
Opcije (omogućuju proširivanje IP zaglavlja; koriste se retko)
Ako datagram prenosi TCP segment, tada svaki datagram u svom zaglavlju prenosi ukupno 40
bajtova (20+20) pored poruke aplikativnog sloja.
Fragmentacija IP datagrama
Maksimalna količina podataka koju može da prenese okvir sloja veze naziva se maksimalna jedinica
prenosa (MTU). S obzirom da se za prenos od jednog do drugog rutera svaki IP datagram enkapsulira
unutar okvira sloja veze, MTU protokola sloja veze predstavlja strogo ograničenje za dužinu IP
datagrama. Problem nastaje jer linkovi duž putanje mogu da koriste različite protokole sloja veze i
samim tim imaju drugačiji MTU.
Rešenje je da se podaci IP datagrama podele na dva ili više manjih IP datagrama, enkapsuliraju u različite
okvire sloja veze i ti okviri pošalju preko izlaznog linka. Ovi manji datagrami su fragmenti. Projektanti
protokola IPv4 ostavili su sastavljanje datagrama krajnjim sistemima, a ne mrežnim ruterima. Za ovo
služe polja za identifikaciju, oznake i pomeraj fragmentacije. Prilikom kreiranja datagrama, predajni
računar mu dodeljuje identifikacioni broj. Kada ruter vrši fragmentaciju datagrama, svi tako nastali
fragmenti se označavaju adresom izvora, adresom odredišta i identifikacionim brojem prvobitnog
datagrama. Kada prijemni računar primi niz datagrama od istog predajnog računara, on utvrđuje da li su
oni fragmenti jednog većeg datagrama. IP je nepouzdan, pa je zato bit oznake u poslednjem fragmentu
0, a u ostalima 1. Osim toga, da bi utvrdio da li neki fragment nedostaje, koristi polje pomeraja, kako bi
se odredilo gde se odgovarajući fragment nalazi unutar prvobitnog datagrama.
Ako jedan ili više fragmenata ne stigne do odredišta, ostali se odbacuju i ne prosleđuju transportnom
sloju.
Nedostaci korišćenja fragmenata:
Složeniji ruteri i krajnji sistemi
Napadi
RMT drugi deo 2016
©S
30
4.4.2. IPv4 adresiranje
Granica između računara i fizičkog linka zove se interfejs. Ruter najmanje povezan sa dva linka. Granica
između rutera i bilo kog njegovog linka se takođe naziva interfejs. IP zahteva da svi interfejsi računara i
rutera imaju svoju IP adresu (dugačka 32 bita; 232 IP adresa) koje se pišu u decimalnoj notaciji sa
tačkama iza svakog bajta. Svaki interfejs na svakom računaru i na ruteru na globalnom internetu mora
da ima IP adresu koja je globalno jedinstvena. Deo IP adrese određuje podmreža s kojom je povezan.
U IP žargonu, mreža koja povezuje interfejse tri računara i interfejs rutera predstavlja podmrežu (IP
mreža/mreža) (npr. 223.1.1.x). IP adresiranje pridružuje adresu ovoj podmreži 223.1.1.0/24 gde oznaka
/24 koja se ponekad naziva maska podmreže, znači da 24 krajnje leva bita 32-bitne vrednosti
predstavljaju adresu podmreže.
Da biste odredili podmreže, razdvojite interfese od njihovih računara ili rutera, praveći ostrva
zajedničkih mreža, sa interfejskima koji se nalaze na krajevima tih zasebnih mreža. Sve te zasebne
mreže se nazivaju podmreže.
Za primer sa slike dobijamo 6 ostrva ili podmreža.
Strategija dodeljivanja adresa na internetu poznata je
kao besklasno rutiranje između domena (CIDR).
a.b.c.d/x gde je x broj bitova u prvom delu adrese.
Najznačajnijih x bitova sačinjava mrežni do IP adrese i
naziva se prefiks adrese.
Kada ruter izvan organizacije prosleđuje datagram čija je
odredišna adresa u organizacijia, dovoljno je da u obzir
uzme samo vodećih x bitova. Namena preostala 32-x bita
adrese je da se razlikuju uređaji unutar organizacije.
RMT drugi deo 2016
©S
31
Dok nije uvedena CIDR šema, mrežni deo IP adrese morao je da bude dužine 8,16 ili 24 bita u šemi
poznatoj kao klasno adresiranje. Ovaj sistem je bio nedovoljan da bi podržao sve veći broj organizacija
sa malim i srednjim podmrežama i došlo je do loše iskorišćenosti dodeljenog adresnog prostora.
Adresa 255.255.255.255 je adresa za difuzno emitovanje. Kada računar pošalje datagram sa ovom
adresom odredišta, poruka se isporučuje svim računarima u istoj podmreži.
Dobijanje bloka adresa
Od posrednika za internet usluge ili ICANN.
Dobijanje adrese računara: protokol za dinamičko konfigurisanje računara
Adrese računara mogu da se konfigurišu ručno, ali se to mnogo češće obavlja korišćenjem protokola za
dinamičko konfigurisanje računara (DHCP). Mrežni administrator može da konfiguriše DHCP tako da
dati računar uvek dobija istu IP adresu ili da se računaru dodeljuje privremena IP adresa. DHCP pored
dodeljivanja IP adresa, omogućava računaru da sazna dodatne informacije kao što su maska podmreže,
adresa rutera koji mu je prvi na putu i adresa njegovog lokalnog DNS servera.
Ovaj protokol se često naziva plug-and-play jer može da automatizuje postupke koji se tiču povezivanja
računara u mrežu. Kako računari dolaze i odlaze, DHCP mora da ažurira listu svojih dostupnih IP adresa.
DHCP je klijentsko-serverski protokol.
Za novopristigli računar, DHCP se odvija u četiri koraka:
Pronalaženje DHCP servera (to se obavlja DHCP porukom za pronalaženje, koju klijent šalje
unutar UDP paketa na port 67. Zatim DHCP klijent pravi IP datagram sa adresom odredišta
255.255.255.255 i izvornom IP adresomo ovog računara 0.0.0.0. DHCP klijen prenosi ovaj IP
datagram do sloja veze, koji potom taj okvir difuzno dostavlja svim čvorovima povezanim u
podmrežu)
Ponuda DHCP servera (odgovara DHCP porukom sa ponudom koju difuzno dostavlja svim
čvorovima u mreži (šalje na 255.255.255.255). Poruke sa ponudom svih servera sadrže
transakcioni ID primljene poruke za pronalaženje, predloženu IP adresum mrežnu masku i vreme
iznajmljivanja IP adrese)
DHCP zahtev (klijent bira ponudu jednog ili više servera i odgovara na izabranu ponudu DHCP
porukom sa zahtevom vraćajući serveru neizmenjene parametre konfiguracije)
DHCP potvrda prijema
Prevođenje mrežnih adresa (NAT)
NAT ruter za spoljni svet ne izgleda kao ruter, već se prema spoljnom svetu ponaša kao jedan uređaj sa
jednom IP adresom. U suštini, NAT ruter krije pojedinosti kućne preže od spoljnog sveta. Svi datagrami
koji do NAT rutera stižu iz širokopojasne mreže imaju istu IP adresu odredišta. NAT ruter zna kom
RMT drugi deo 2016
©S
32
računaru unutar mreže bi trebalo da prosledi dati datagram korišćenjem NAT tabele prevođenja i
dodeljivanjem u stavke tabele sem IP adresa i brojevi portova. Prilikom izbora novog broja izvornog
porta, NAT ruter može da izabere bilo koji broj koji se trenutno ne nalazi u tabeli prevođenja.
Problemi sa NAT:
Brojevi portova namenjeni za adresiranje procesa, ne računara
Ruteri bi trebalo da obrađuju pakete samo sloja tri
NAT krši argument od kraja do kraja
Za rešenje nedostatka IP adresa trebalo bi upotrebiti IPv6
Ometa P2P aplikacije
Za zaobilaženje NAT rutera (u npr. P2P aplikacijama) koristi se preokretanje veze.
UPnP
Zaobilaženje NAT rutera uglavnom se sprovodi protokolom UpnP, koji omogućava računaru da pronađe i
konfiguriše susedni NAT ruter. UPnP zahteva da i računar i NAT ruter podržavaju UPnP. UPnP se koristi
tako što aplikacija koja se izvršava na nekom računaru zahteva NAT preslikavanje njenih vrednosti za
neki zahtevani javni broj porta. UPnP obaveštava aplikaciju o vrednostima tako da ta aplikacija može o
njima da obavesti spoljni svet.
4.4.3 Protokol ICMP
ICMP koriste računari i ruteri za međusobnu razmenu informacija mrežnog sloja, najčešće za
izveštavanje o greškama, ali ne uvek.
Za ICMP se obično smatra da je deo protokola IP, mada se u arhitekturi interneta nalazi neposredno
iznad protokola IP, pošto se ICMP poruke prenose unutar IP datagrama. ICMP poruke imaju polja za tip i
kod poruke, a sadrže zaglavlje i prvih 8 bajtova IP datagrama zbog kojih je ICMP poruka uopšte i nastala.
Primer poruka ICMP: ping, poruka za suzbijanje izvora (prvobitna namena da se kontroliše zagušenje)...
4.4.4 IPv6
Format datagrama IPv6
128 bita
Verzija Klasa saobraćaja Oznaka toka
Dužina korisnih podataka Sledeće zaglavlje Granica za broj skokova
Adresa izvora (128 bitova)
Adresa odredišta (128 bitova)
Podaci
RMT drugi deo 2016
©S
33
Promene koje donosi IPv6:
Proširene mogućnosti adresiranja (128 bita; osim jednoznačajnih i više značajnih IP adresa,
uveo proizvoljnu adresu – omogućava isporuku datagrama bilo kom računaru iz neke grupe)
Jednostavnije 40-bajtno zaglavlje
Označavanje i prioriteti toka (označavanje paketa da pripadaju određenim tokovima za koje
pošiljalac zahteva poseban postupak, kao što su kvalitet usluge viši od podrazumevanog ili
usluga u realnom vremenu; polje za klasu saobraćaja može se upotrebiti za davanje prednosti
određenim datagramima unutar toka ili za davanje prednosti datagramima iz određenih
aplikacija)
Polja IPv6 protokola:
Verzija
Klasa saobraćaja (Slično TOS)
Oznaka toka
Dužina korisnih podataka (broj bajtova u IPv6 datagramu koji slede iza 40-bajtnog zaglavlja
stalne dužine)
Sledeće zaglavlje (protokol kome će se isporučiti sadržaj ovog datagrama)
Ograničenje broja skokova (smanjuje se za jedan, na svakom ruteru kom se prosledi datagram)
Adrese izvora i odredišta
Podaci
Polja koja su postojala u IPv4 a u IPv6 ne postoje: fragmentacija/ponovno sastavljanje (samo izvor i
odredište sad obavljaju, preveliki paketi se odbacuju), kontrolni zbir zaglavlja (protokoli transportnog
sloja i sloja veze već proveravaju ovo), opcije.
Za IPv6 postoji nova verzija protokola ICMP, dodati novi tipovi i kodovi poruka potrebni za nove
mogućnosti koje ima IPv6. ICMPv6 obuhvata i mogućnosti koje ima IGMP (koristi se kada računar
pristupa ili napušta takozvane grupe za višestruko slanje).
Prelazak sa protokola IPv4 na IPv6
Pristupi:
1. Rešenje sa dvostrukim stekom: po njemu IPv6 čvorovi treba da potpuno podržavaju IPv4- takav
čvor naziva se IPv6/IPv4 čvor, sposoban je da šalje i prima obe vrste datagrama. IPv6/IPv4
čvorovi moraju da imaju kako IPv4, tako i IPv6 adresu. Pored toga, moraju da budu u stanju da
odrede da li drugi čvor podržava IPv6 ili samo IPv4. Ovaj problem se rešava korišćenjem DNS
usluge, koja može da vrati IPv6 adresu, ako traženi čvor podržava IPv6, u suprotnom IPv4
adresu. U ovom rešenju, bilo da pošiljalac ili primalac podržavaju samo IPv4 , mora se koristiti
IPv4 datagram.
2. Tunelovanje: Pretpostavlja se da dva IPv6 čvora žele da komuniciraju i koriste IPv6 datagrame,
ali su međusobno povezani preko posrednih IPv4 rutera. Usputne IPv4 rutere nazivamo tunel.
RMT drugi deo 2016
©S
34
Kada se koristi tunel, IPv6 čvor na predajnoj strani tunela uzima ceo IPv6 datagram i stavlja ga u
polje podataka IPv4 datagrama. Taj IPv4 datagram se upućuje do IPv6 čvora na prijemnoj strani
tunela i šalje prvom čvoru u tunelu. Usputni IPv4 ruteri prenose dataram u blaženom neznanju
da taj IPv4 datagram sadrži ceo IPv6 datagram. Na prijemnoj strani, IPv6 čvor prima IPv4
datagram, utvrđuje da on sadrži IPv6 datagram, izvlači ga i usmerava dalje.
4.4.5 Kratak pregled bezbednosti IP protokola
Protokol IPsec je jedan od najpopularnijih bezbednosnih protokola mrežnog sloja. Napravljen je da bude
kompatibilan i sa IPv4 i sa IPv6. Ukoliko dva računara žele da bezbedno komuniciraju, koristeći
transportni režim rada, neophodno je da IPsec bude dostupan samo na ta dva računara. U transportnom
režimu rada, dva računara prvo međusobno uspostavljaju Ipsec sesiju. Kada se veza uspostavi, svi TCP i
UDP segmenti koji se šalju između ova dva računara uživaju u bezbednosnim uslugama IPsec protokola.
Usluge koje nudi Ipsec obuhvataju:
Dogovor za šifrovanje (mehanizam koji omogućava dogovaranje oko algoritma za šifrovanje i
ključeva za šifrovanje)
Šifrovanje korisnih podataka IP datagrama (kad primi segment od transportnog sloja, šifruje, a
da dešifruje može jedino IPsec na prijemnom računaru)
Integritet podataka (provera da li su polja zaglavlja i šifrovani korisni podaci promenjeni)
Autentifikacija izvora (kada računar primi IPsec datagram od izvora u koga ima poverenje, on je
siguran da je IP adresa izvora navedena u datagramu zaista stvarni izvor datagrama)
4.5 Algoritmi rutiranja
Računar se obično priključuje na jedan ruter, podrazumevani ruter (ruter prvog skoka). Kad god računar
pošalje paket, taj paket se prenosi do njegovog podrazumevanog rutera. Podrazumevani ruter izvornog
računara nazivamo izvorni ruter, a podrazumevani ruter odredišnog računara odredišni ruter.
Svrha algoritama rutiranja je: za dati skup rutera sa linkovima koji ih povezuju, algoritam pronalazi
„dobru“ putanju od izvornog do odredišnog rutera. Obično je dobra putanja ona koja najmanje košta.
Za formulisanje algoritama rutiranja koristi se teorija grafova. Graf G=(N,E) skup od N čvorova i E ivica,
gde svaka ivica predstavlja par čvorova iz N. Čvorovi u grafu predstavljaju rutere, a ivice koje povezuju te
čvorove predstavljaju fizičke linkove između rutera. Ivice imaju vrednosti, koje mogu predstavljati njene
troškove (zavise od dužine linka, brzine linka, novčane cene...).
Putanju u gradu G=(N,E) sačinjava niz čvorova (x1,x2,...,xp) tako da svaki par (x1,x2),(x2,x3),...,(xp-1,xp)
predstavlja ivicu iz E. Troškovi putanje su zbir troškova ivica koje pripadaju putanji. Jedna od putanja (ili
RMT drugi deo 2016
©S
35
više njih) je putanja najmanjih troškova: pronaći putanju između izvora i odredišta koja ima najmanje
troškove. Najkraća putanja je putanja sa najmanjim brojem linkova između izvora i odredišta.
Algoritmi rutiranja mogu biti:
1. Globalni algoritmi rutiranja (izračunava putanju najmanjih troškova između izvora i odredišta,
koristeći potpuna, globalna saznanja o mreži, tj. uzima veze između svih čvorova i troškove svih
linkova kao ulazne vrednosti. U praksi, algoritmi sa potpunim informacijama o mreži nazivaju se
algoritmi stanja linkova (LS))
2. Decentralizovani algoritmi rutiranja (izračunavanje putanje najmanjih troškova izračunava se
iterativno, na više mesta, tj. distribuirano. Nijedan čvor nema potpune informacije o troškovima
svih mrežnih linkova. Umesto toga, svaki čvor počinje samo od saznanja o troškovima linkova
koji su neposredno povezani sa njim. Ovaj algoritam je poznat kao algoritam vektora rastojanja
(DV))
Drugi način za podelu algoritama: statički (rute se menjaju retko) i dinamički (putanje se menjaju
promenom opterećenja saobraćaja na mreži ili promenom topoligije mreže).
Treći način za podelu algoritama: algoritmi osetljivi na opterećenje (troškovi linkova menjaju se
dinamički, zavisno od trenutnog nivoa zagušenja određenog linka) i algoritmi koji nisu osetljivi na
opterećenje (troškovi linka ne odražavaju trenutni nivo zagušenja).
4.5.1 Algoritmi rutiranja zasnovani na stanju linkova (LS)
Svaki čvor difuzno šalje pakete o stanju linkova svim ostalim čvorovima u mreži, pri čemu svaki od ovih
paketa sadrži podatke i troškove o linkovima sa kojima je taj čvor povezan. Ovo se postiže algoritmom za
difuzno slanje stanja linkova.
Poznati LS algoritam je Dijkstrin algoritam koji izračunava putanju najmanjih troškova od jednog čvora
do svih ostalih čvorova u mreži. Iterativan je i ima svojstvo da su posle k-te iteracije algoritma poznate
putanje najmanjih troškova do k odredišnih čvorova, a među putanjama najmanjih troškova do svih
odredišnih čvorova tih k putanja imaju k najmanjih troškova. Kad se algoritam završi, imamo za svaki
čvor, najkraću putanju od izvornog čvora do tog čvora. Takođe, za svaki čvor znamo njegovog
prethodnika itd., pa na taj način možemo da napravimo celu putanju od izvora do odredišta.
Ukupan broj čvorova koje moramo da ispitamo u svim iteracijama je n(n+1)/2, pa kažemo da ova
realizacija LS algoritma u najgorem slučaju ima složenost reda n na kvadrat tj O(n2).
Nepoželjan slučaj do kog može doći se javlja kad troškovi linkova nisu simetrični (jednaki samo ako je
opterećenje jednako u oba smera) tj c(x,y)≠c(y,x). Jedno rešenje može biti da se naredi da troškovi linka
ne zavise od količine prenošenog saobraćaja. Ipak, bolje rešenje je obezbediti da svi ruteri ne izvršavaju
LS algoritam u isto vreme.
RMT drugi deo 2016
©S
36
4.5.2 Algoritam rutiranja vektora rastojanja
Distribuiran: svaki čvor prima određene informacije od jednog ili više svojih suseda sa kojima je
neposredno povezan, obavlja proračune, a zatim distribuira rezultate svojih proračuna susedima
Iterativan: ponavlja se postupak sve dok ima informacija za razmenu među susedima
Asinhron: nije neophodno da svi čvorovi rade usaglašeno
Belman-Fordova jednačina (trošak putanje najmanjih troškova od x do y:
dx(y)=minv{c(x,y)+dv(y)}
Rešenje ove jednačine pruža podatke za tabelu prosleđivanja čvora x.
Osnovna zamisao je sledeća: Svaki čvor x počinje od Dx(y), procenjenih troškova putanje najmanjih
troškova od tog čvora do čvora y, za sve čvorove u N. Neka Dx=[Dx(y):y u N] bude vektor rastojanja čvora
x, a to je vektor procenjenih troškova od x do svih ostalih čvorova y, u N. U DV algoritmu, svaki čvor x
održava sledeće informacije rutiranja:
Za svakog suseda v, trošak c(x,v) od x do neposredno povezanog suseda v
Vektor rastojanja čvora x, tj. Dx=[Dx(y):y u N]
Vektore rastojanja svih svojih suseda Dv=[Dv(y):y u N]
U distribuiranom, asinhronom algoritmu svaki čvor, s vremena na vreme, šalje kopiju svog vektora
rastojanja svim svojim susedima. Kada čvor x primi novi vektor rastojanja od nekog suseda v, o čuva taj
vektor rastojanja i zatim pomoću Belman-Fordove jednačine ažurira vlastiti vektor rastojanja na sledeći
način:
Dx(y)=minv{c(x,v)+Dv(y)} za svaki čvor N
Ako se vektor rastojanja čvora x prilikom ovog koraka promeni, čvor x šalje svoj ažurirani vektor
rastojanja svim svojim susedima, koji zatim ažuriraju svoje vektore rastojanja.
Algoritam vektora rastojanja: promene troškova linkova i otkazivanje linkova
Posmatramo promenu tj. smanjenje troškova od linka y do x sa 4 na 1:
RMT drugi deo 2016
©S
37
U trenutku t0, y otkriva promenu troška linka, ažurira svoj vektor rastojanja i obaveštava svoje
susede o toj promeni
U trenutku t1, z prima ovu ažuriranu vrednost od y i ažurira svoju tabelu, izračunava novi
najmanji trošak do x i šalje svojim susedima svoj novi vektor rastojanja
U trenutku t2, y prima ažuriranu vrednost od z i ažurira svoju tabelu rastojanja, pošto se u čvoru
y najmanji troškovi nisu promenili, y ne šalje nikakvu poruku čvoru z; algoritam prelazi u stanje
mirovanja
Razmotrimo šta se događa kada trošak poraste kao na gornjoj desnoj slici:
U trenutku t0 y otkriva promenu troškova linka. Čvor y izračunava da njegova nova putanja
najmanjih troškova do x ima trošak od:
Dy(x) = min{c(y,x) + Dx(x), c(y,z) + Dz(x)} = min{60 + 0, 1 + 5} = 6
Gledano sa strane, ti novi troškovi su pogrešni. Ali čvor y jedino ima informaciju da neposredni
troškovi do x iznose 60, a da je zadnje obaveštenje koje je y dobio od z glasilo da se od z do x
može stići troškovima 5. Zato, da bi stigao do x, y sada rutira preko z smatrajući da od z do x
može da se stigne troškovima 5. Od trenutka t1 imamo petlju rutiranja: da bi dosegli do x, y
rutira preko z, a z rutira preko y. Paket sa odredištem x koji u ovom trenutku stigne do y ili z
lutaće zauvek.
Pošto je y izračunao nove najmanje troškove prema x, on svom novom vektoru rastojanja
obaveštava z u trenutku t1
Nedugo posle t1, novi vektor rastojanja čvora y, na kome je navedeno da su najmanji troškovi y
do x jednaki 6; z zna da može stići do čvora y sa troškovima 1 i izračunava da novi najmanji
trošak do x iznosi Dz(x)=min{50+0,1+6}=7. Pošto su se najmanji troškovi čvora z do x povećali, on
o tome obaveštava y u trenutku t2.
Na sličan način u sledećem trenutku se dobije da je Dy(x)=8, zatim Dz(x)=9 i tako redom
Algoritam vektora rastojanja: dodavanje lažnog rastojanja
Da bi se izbegao prethodno naveden slučaj, može da se uvede lažno rastojanje. Zamisao je da ako z
rutira preko y, da bi se stiglo do x, onda z obaveštava y da je njegovo rastojanje do x Dz(x)= ∞. Z nastavlja
da obmanjuje y, sve dok prema x rutira preko y.
Poređenje LS i DV algoritama rutiranja
Složenost poruka (kod LS potrebno da se pošalje O(|N||E|) poruka, a kad se zameni neki trošak
on se šalje svim ostalim čvorovima; kod DV zavisi od dosta činilaca, on šalje posledice promene
samo ako novi trošak linka menja putanju najmanjih troškova prema nekom od čvorova
povezanih tim linkom)
Brzina konvergencije (LS O(|N|2) složenost i O(|N||E|) poruka; DV sporo konvergira, može da
ima petlje rutiranja i da ima preoblem brojanja do beskonačnosti)
Robusnost (LS ako otkaže ruter može difuzno da šalje pogrešne troškove; čvor takođe može da
RMT drugi deo 2016
©S
38
ošteti ili odbaci pojedine LS pakete koje je primio o stanju linkova; ipak, izračunavanja ruta u LS
donekle razdvojena pa imaju neki stepen robusnosti; U DV čvor može da objavi pogrešne
putanje najmanjih troškova do bilo kojeg ili svih odredišta; neispravan rezultat se može iz jednog
čvora proširiti kroz čitavu mrežu)
4.5.3 Hijerarhijsko rutiranje
Model koji sve rutere modeluje kao skup istovetnih rutera koji izvršavaju isti algoritam rutiranja je
previše uprošćen zbog:
Proširivost (porastom broja rutera, deo resursa koji se troši na izračunavanje, čuvanje i razmenu
informacija o rutiranju postaje zabrinjavajući)
Samostalnost u upravljanju (idealno bi bilo da organizacija koristi i upravlja svojom mrežom
kako želi, a da ipak može da se povezuje sa ostalim spoljašnjim mrežama)
Oba problema mogu da se reše tako što se ruteri organizuju u autonomne sisteme (AS) pri čemu se
svaki AS sastoji od grupe rutera kojima se obično administrira sa jednog mesta. Svi ruteri unutar istog AS
sistema izvršavaju isti algoritam rutiranja i imaju informacije jedni o drugima. Algoritam koji se izvršava
unutar AS nazivamo protokol rutiranja unutar autonomnog sistema. Neophodno je povezati AS, pa će
jedan ruter ili više njih u AS imati dodatni zadatak prosleđivanja paketa na odredišta van AS i njih
zovemo ruteri mrežnog prolaza.
Kako ruter unutar nekog AS sistema zna kako da rutira paket na odredište izvan tog AS sistema? Kad
izvorni AS ima samo jedan link koji vodi izvan tog AS problem je lak. Kad ih ima više, AS mora da:
1. Zna do kojih odredišta se može stići preko tih više sistema
2. Proširi te informacije o dostupnosti odredišta kroz mrežu
Ova dva zadatka: pribavljanje informacija o dostupnosti odredišta i širenje tih informacija svim
ruterima unutar AS obavlja protokol rutiranja među autonomnim sistemima. Na internetu svi AS
sistemi imaju isti protokol rutiranja među autonomnim sistemima nazvan BGP4.
U Rutiranju vrućeg krompira AS pokušava da se oslobodi paketa što je pre moguće. To se postiže
slanjem paketa onom ruteru mrežnog prolaza koji ima najmanje troškove od rutera do mrežnog prolaza
u odnosu na sve ostale mrežne prolaze koji imaju putanju prema odredištu.
Kad neki AS od susednog AS sazna za neko odredište, on može da objavi tu informaciju za rutiranje
nekim od svojih ostalih susednih AS.
4.6 Rutiranje na internetu
4.6.1 Rutiranje unutar autonomnih sistema na internetu: protokol RIP
Protokol rutrianja unutar AS koristi se da bi se odredilo kako se vrši rutiranje unutar određenog AS.
RMT drugi deo 2016
©S
39
Protokoli rutiranja unutar AS poznati i kao unutrašnji protokoli mrežnih prolaza.
RIP je jedan od prvih protokola rutiranja unutar AS na internetu. Njegovi koreni i ime potiču iz
arhitekture XNS. RIP je protokol vektora rastojanja koji radi na način veoma sličan idealizovanom DV
protokolu. Troškove utvrđuje prema broju skokova; odnosno svi linkovi imaju troškove 1. Svarni troškovi
ovde su od izvornog rutera do odredišne podmreže. Skok predstavlja broj podmreža kroz koje se prolazi
duž najkraće putanje od izvornog rutera do odredišne podmreže, uključujući odredišnu podmrežu.
Najveći trošak putanje ograničen je na 15, zbog čega je upotreba protokola RIP ograničena na
autonomne sisteme sa manje od 15 skokova u prečniku. U RIP protokolu ažurirani podaci o rutiranju se
razmenjuju između suseda približno svakih 30 sekundi, korišćenjem RIP poruke odgovora. Ona sadrži
spisak od najviše 25 odredišnih podmreža unutar AS, kao i udaljenost pošiljaoca do svake od tih
podmreža. Poruke odgovora su takođe poznate i kao RIP objave.
Svi ruteri održavaju RIP tabele poznate kao tabele rutiranja. Tabela rutiranja rutera sadrži vektor
rastojanja odgovarajućeg rutera i njegovu tabelu prosleđivanja. Sadrži tri kolone: odredišna podmreža,
sledeći ruter na najkraćoj putanji prema odredišnoj mreži, broj skokova da bi se najkraćim putem stiglo
u odredišnu podmrežu.
Primer: Tabela rutiranja od rutera D
Ako ruter nema vesti od nekog svog suseda najmanje bar jednom tokom 180 sekundi, smatra se da je taj
sused nedostupan: ili je prestao sa radom, ili se prekinuo link koji ih povezuje. Kad se to desi, RIP menja
lokalnu tabelu rutiranja i zatim tu informaciju širi dalje, tako što šalje objave susedima. Ruter
korišćenjem RIP poruke objave može da zahteva informaciju o troškovima svojih suseda do datog
RMT drugi deo 2016
©S
40
odredišta. RIP poruke zahteva i odgovora se šalju preko UDP koristeći port 520.
4.6.2 Rutiranje unutar autonomnih sistema na internetu: protokol OSPF
OSPF i njegovog bliskog srodnika, protokol IS-IS, obično koriste posrednici internet usluga višeg reda,
dok se RIP koristi u mrežama posrednika nižeg reda i u mrežama preduzeća. Reč Open u nazivu OPSF
znači da je specifikacija protokola javno dostupna.
OSPF je protokol stanja linkova koji koristi plavljenje informacijama o stanju linkova i Dijkstrin algoritam
putanje najmanjih troškova. Ruter koji koristi OSPF pravi potpunu topološku mapu čitavog AS. Ruter
zatim lokalno izvršava Dijkstrin algoritam najkraće putanje kako bi odredio najkraće putanje do svih
podmreža, pri čemu sebe smatra za koreni čvor.Troškove pojedinačnih linkova konfiguriše administrator
mreže.
Ruter koji koristi OSPF difuzno šalje informacije o rutiranju svim ostalim ruterima u AS. Šalje difuzno
informacije o stanju linkova, uvek kad dodje do promene stanja nekog linka; a i povremeno difuzno šalje
stanje linkova bez obzira na to što se stanje linkova nije promenilo. OSPF objave smeštaju se unutar
OSPF poruka koje se neposredno prenose IP protokolom, sa kodom protokola gornjeg sloja 89 za OSPF.
Zbog toga, ovaj protokol mora sam da ostvaruje zadatke kao što su pouzdan prenos poruka i difuzno
slanje stanja linkova. On proverava da li su linkovi ispravni i da li rade i omogućava OSPF ruteru da preko
svog susednog rutera pribavi bazu podataka o stanju linkova u celoj mreži.
Unapređenja koja donosi OSPF:
Bezbednost (moguća provera autentičnosti: jednostavna (na svim ruterima se postavlja ista
lozinka) ili MD5 (deljeni tajni ključevi koji se postavljaju na svim ruterima))
Više putanja sa istim troškovima (dozvoljava se korišćenje više putanja)
Integrisana podrška za jednoznačno i višeznačno rutiranje
Podrška za hijerarhiju unutar istog domena rutiranja (mogućnost da se AS hijerarhijski
struktuira)
OSPF AS može se hijerarhijski konfigurisati u zone. Svaka zona izvršava vlastiti OSPF algoritam rutiranja
stanja linkova, pri čemu svi ruteri unutar neke zone difuzno šalju stanja svojih linkova ruterima u toj zoni.
Unutar svih zona, jedan granični ruter zone zadužen je za rutiranje paketa izvan zone. Jedna jedina OSPF
zona u AS postavlja se da bude zona okosnice. Njena uloga je da rutira saobraćaj između ostalih zona u
AS i uvek obuhvata sve granične rutere zona u AS, a može da sadrži i rutere koji nisu granični za zone.
4.6.3 Rutiranje među autonomnim sistemima: protokol BGP
Protokol graničnog mrežnog prolaza je standardni protokol za rutiranje među AS. Omogućava:
Pribavljanje informacija o dostupnosti podmreža od susednih AS
RMT drugi deo 2016
©S
41
Prenošenje tih informacija o dostupnosti do svih rutera unutar AS
Određivanje dobrih ruta do podmreža na osnovu informacija o dostupnosti i pravila A
Osnove protokola BGP
U BGP parovi rutera razmenjuju informacije o rutiranju preko polutrajnih TCP veza, korišćenjem porta
179. Obično postoji po jedna takva BGP TCP veza za svaki link koji neposredno povezuje dva rutera iz
različitih AS. Postoje, takođe, polutrajne BGP TCP veze između rutera unutar AS. Za sve TCP veze, dva
rutera na krajevima veze nazivaju se BGP ravnopravni učesnici, a TCP veza zajedno sa svim BGP
porukama koje se šalju tom vezom naziva se BGP sesija. BGP sesija koja obuhvata dva AS naziva se
spoljašnja BGP (eBGP) sesija, a sesija između dva rutera u istom AS naziva se unutrašnja BGP (iBGP)
sesija.
BGP omogućava da svaki AS sazna koja su odredišta dostupna preko njemu susednih AS. Kad se koristi
BGP, odredišta nisu računari već prefiksi određeni CIDR šemom, gde svaki prefiks predstavlja podmrežu
ili skup podmreža.
BGP distribuira informacije o dostupnosti prefiksa preko eBGP sesije. Takođe, kada ruter mrežnog
prolaza sazna prefikse preko eBGP sesija, on pomoću svojih iBGP sesija distribuira prefikse ostalim
ruterima u AS. Zatim, neki ruter mrežnog prolaza može prefikse jednog AS da objavi nekom trećem AS.
Atributi putanje i BGP rute
U BGP AS se prepoznaje po svom globalno jedinstvenom broju autonomnog sistema (takozvani završni
AS koji prenosi isključivo saobraćaj čiji je on izvor ili odredište obično nema ASN, al se to zanemaruje).
Kad ruter kroz BGP sesiju objavljuje prefiks, on uz taj prefiks stavlja i izvestan broj BGP atributa. Prefiks
zajedno sa svojim atributima se naziva ruta. Dva najvažnija atributa su:
AS-PATH (sadrži AS kroz koje je prošla objava za odgovarajući prefiks. Kad se prefiks prenese
unutar AS, taj AS dodaje svoj ASN u atribut AS-PATH; ruteri koriste ovaj atribut za otkrivanje i
sprečavanje višestrukih ponavljanja objava)
NEXT-HOP (ovaj atribut je interfejs rutera kojim počinje putanja AS-PATH kroz autonomne
RMT drugi deo 2016
©S
42
sisteme; ruteri ga koriste za ispravno konfigurisanje svojih tabela prosleđivanja; koristeći
vrednosti atributa NEXT-HOP i algoritam rutrianja unutar AS, ruter može da odredi troškove
putanje za oba ravnopravna linka, a zatim primeni rutiranje vrućeg krompira da bi odredio
odgovarajući interfejs)
BGP takođe uključuje i atribute koji ruterima omogućavaju da metrikama ruta dodele prioritet i atribut
koji označava kako je prefiks umetnut u BGP na početnom AS.
Kada ruter mrežnog prolaza primi objavu nekog rutera, on koristi svoja pravila uvoza za odlučivanje da li
da prihvati ili odbaci odgovarajuću rutu i da li da postavi određene atribute.
Biranje BGP ruta
Ako postoje dve ili više ruta istog prefiksa, BGP primenjuje sledeća pravila eliminacije dok ne ostane
samo jedna ruta:
Biraju se rute sa najvišim vrednostima lokalnog prioriteta
Od preostalih ruta, bira se ruta sa najkraćim atributom AS-PATH
Od preostalih ruta, bira se ruta sa najbližim NEXT-HOP ruterom
Ako i dalje postoji više ruta, ruteri koriste BGP identifikatore za biranje rute
Politika rutiranja
Sav saobraćaj koji ulazi u završnu mrežu (W,Y) mora da ima odredište u toj mreži, a sav saobraćaj koji
napušta završnu mrežu mora da potiče iz nje. Višedomna mreža (X) povezana sa ostatkom mreže preko
dva različita posrednika.
Treba sprečiti X da prosleđuje saobraćaj između B i C i to se postiže kontrolisanjem načina na koji se
objavljuju BGP rute; tj. X treba da objavi B i C da nema putanje ni za jedno odredište osim svojih.
4.7 Difuzno i višeznačno rutiranje
Difuzno rutiranje: mrežni sloj pruža uslugu isporuke paketa koji se iz izvornog čvora šalje svim ostalim
čvorovima u mreži.
Višeznačno rutiranje: izvorni čvor šalje po primerak paketa određenom broju ostalih čvorova u mreži.
RMT drugi deo 2016
©S
43
4.7.1 Algoritmi difuznog rutiranja
Najprostije bi bilo da otpremni čvor pošalje zaseban primerak paketa na svako odredište. Ovakvo rešenje
za difuzno slanje je slanje sa N-tostrukim jednoznačnim slanjem. Mnogi nedostaci: neefikasnost,
potrebno znati sve difuzne primaoce i njihove adrese, ne obavlja se najbolje objavljivanje informacija o
stanju linkova, koje se koriste za izračunavanje jednoznačnih ruta.
Nekontrolisano plavljenje
Izvorni čvor šalje kopiju paketa svim svojim susedima. Kada čvor primi difuzno poslat paket, on ga
umnožava i prosleđuje svim svojim susedima (osim onom od koga je primio paket). Fatalna greška
nastaje ako je više čvorova u grafu povezano u krug i tada jedna ili više kopija difuzno poslatih paketa će
beskonačno kružiti. Druga greška koja se može javiti: kada je čvor povezan sa više od dva čvora, on će
napraviti i proslediti više primeraka difuzno poslatog paketa, pri čemu će se od njih napraviti više
primeraka (u drugim čvorovima sa više od dva suseda). Takva difuzna oluja koja potiče od beskrajnog
umnožavanja difuzno poslatih paketa na kraju bi proizvela toliko difuzno poslatih paketa da bi mreža
postala neupotrebljiva.
Kontrolisano plavljenje
Rešenje za nekontrolisano plavljenje. Čvor treba pravilno da proceni kada je potrebno da prosledi pakete
svim svojim susedima, a kada ne.
Dva rešenja:
1. Plavljenje koje se kontroliše rednim brojevima: izvorni čvor svoju adresu kao i difuzni redni
broj stavlja u paket za difuzno slanje, a zatim taj paket šalje svojim susedima. Svaki čvor
održava spisak izvornih adresa i rednih brojeva za sve difuzno poslate pakete koje je već
primio, umnožio i prosledio. Kada čvor primi difuzno poslat paket, prvo proverava da li se taj
paket nalazi na tom spisku. Ako je tako, paket se odbacuje, ako ga nema, paket se umnožava
i šalje susednim čvorovima.
2. Prosleđivanje na osnovu obrnute putanje: poznato i kao difuzno slanje na osnovu obrnute
putanje (RPF); Kada ruter primi difuzno poslati paket sa datom adresom izvora, on taj paket
prenosi na sve svoje izlazne linkove (sem onog po kojem je primljen), samo ako je paket
stigao linkom koji predstavlja njegovu najkraću jednoznačnu povratnu putanju prema izvoru.
Inače ga odbacuje i ne prosleđuje dalje. Jedino što je potrebno RPF da zna je ko je sledeći
sused na njegovoj najkraćoj jednoznačnoj putanji prema pošiljaocu.
Difuzno slanje sveobuhvatnim stablom
Sveobuhvatno stablo je stablo koje sadrži sve čvorove i grafu. Ako se svim linkovima pridruže troškovi, a
trošak stabla je zbir troškova linkova, tada se sveobuhvatno stablo čiji su troškovi najmanji od svih
sveobuhvatnih stabala tog grafa naziva minimalno sveobuhvatno stablo.
RMT drugi deo 2016
©S
44
Još jedno rešenje za difuzno slanje je da se prvo napravi sveobuhvatno stablo. Kada izvorni čvor želi da
difuzno pošalje paket, šalje ga samo preko linkova koji pripadaju sveobuhvatnom stablu. Čvor koji primi
difuzno poslati paket prosleđuje paket svim svojim susedima u sveobuhvatnom stablu. Čvor ne mora da
zna čitavo stablo, samo koji su njegovi susedi u grafu istovremeno i susedi u sveobuhvatnom stablu.
Najviše kompleksnosti u rešenju sa sveobuhvatnim stablom stvara pravljenje i održavanje
sveobuhvatnog stabla. U rešenju sa centralnim čvorom za izgradnju sveobuhvatnog stabla najpre se
određuje centralni čvor (tačka susreta/jezgro). Čvorovi zatim jednoznačno šalju poruke o pristupanju o
stablu, koje su upućene tom centralnom čvoru. Poruka o pristupanju stablu prosleđuje se korišćenjem
jednoznačnog rutiranja prema centru, sve dok ne stigne, ili do čvora koji već pripada stablu ili do centra.
*algoritmi difuznog rutiranja u praksi (strana 405)
4.7.2 Višeznačno rutiranje
Dva problema: kako prepoznati primaoce i kako se adresira paket koji se šalje tim primaocima. U
arhitekturi interneta višeznačno poslati paket adresira se korišćenjem posrednog adresiranja. Drugim
rečima, za grupu primalaca koristi se samo jedan identifikator, a primerak paketa koji je adresiran na
određenu grupu pomoću tog identifikatora isporučuje se svim primaocima koji su pridruženi toj grupi.
Identifikator koji na internetu predstavlja grupu primalaca je višeznačna IP adresa klase D. Grupa
primalaca pridružena adresi klase D naziva se višeznačna grupa.
Protokol IGMP
Izvršava se izmeđju računara i sa njim neposredno povezanog rutera. IGMP nudi način na koji računar
obaveštava svoj povezani ruter da aplikacija koja se izvršava na tom računaru želu da pristupi određenoj
višeznačnoj grupi. Potreban je drugi protokol za usklađivanje višeznačnih rutera na čitavom internetu,
tako da se višeznačno poslati datagrami rutiraju do svojih konačnih odredišta. Ovo se postiže
algoritmima za višeznačno rutiranje na mrežnom sloju. Višeznačno rutiranje na mrežnom sloju sastoji se
od: protokola IGMP i protokola za višeznačno rutiranje.
IGMP ima samo tri vrste poruka (koje se prenose unutar IP datagrama sa IP brojem protokola 2):
membership_query (ruter šalje tu poruku svim računarima na priključnom interfejsu, da bi
utvrdio skup svih višeznačnih grupa kojima su pristupili računari sa tog interfejsa)
membership_report (računari odgovaraju; npr. kada neka aplikacija prvi put pristupa
višeznačnoj grupi računar može da pošalje ovu poruku bez čekanja membership_query poruke)
leave_group (nije obavezna; ruter zaključuje da određeni računar nije više u višeznačnoj grupi
ukoliko više ne odgovara na poruku membership_query sa datom adresom grupe; meko stanje:
u protokolu sa mekim stanjima, neko stanje prekida se događajem isteka vremena ukoliko se
izričito ne obnovi)
RMT drugi deo 2016
©S
45
Algoritmi za višeznačno rutiranje
Dva rešenja:
1. Višeznačno rutiranje pomoću stabla zajedničkog za grupu: zasniva se na izgradnji stabla
koje obuhvata sve rubne rutere sa priključenim računarima koji pripadaju višeznačnoj grupi.
U praksi se za pravljenje stabla koristi rešenje sa centralnim čvorom u kome rubni ruteri sa
priključenim računarima koji pripadaju višeznačnoj grupi šalju poruke pristupanja adresirane
na centralni čvor. Poruka o pristupanju se prosleđuje sve dok ne stigne do čvora koji pripada
stablu ili centalnog čvora. Svi ruteri duž putanje kojom prolazi poruka o pristupanju
prosleđuju primljene višeznačne pakete prema rubnom ruteru koji je pokrenuo
pridruživanje višeznačnoj grupi.
2. Višeznačno rutiranje pomoću zasebnog stabla za svaki čvor: višeznačno stablo za svaki izvor
u višeznačnoj grupi; za izgradnju stabla u ovom slučaju koristi se prilagođen RPF algoritam.
Rešenje problema sa primanjem neželjenih višeznačno poslatih paketa u algoritmu RPF
naziva se orezivanje. Višeznačni ruter koji primi višeznačne pakete, a nema priključene
računare koji su pristupili određenoj grupi, svom uzvodnom ruteru šalje poruku kojom se
orezuje. Ruter koji primi poruke orezivanja svih svojih nizvodnih rutera može uzvodno da
prosledi poruku da se orezuje.
Višeznačno rutiranje na internetu
Prvi ovakav protokol: protokol za višeznačno rutiranje sa vektorom rastojanja (DVMRP). U njemu se
primenjuju zasebna stabla za svaki izvor sa prosleđivanjem na osnovu obrnute putanje i orezivanje
(koristi RFP). Protokol višeznačnog rutiranja nezavisno od protokola (PIM) jasno razlikuje dva slučaja za
višeznačno rutiranje: gusti i retki režim rada. U višeznačnom rutiranju određenog izvora (SSM) samo se
zasebnom pošiljaocu omogućava da šalje saobraćaj u višeznačno stablo, čime se izradnja i održavanje
stabla značajno pojednostavljuje.
Ovde postoji proširenje protokola BGP za više protokola kojim se omogućava prenošenje informacija
rutiranja drugih protokola, uključujući i informacije višeznačnog rutiranja. MSDP protokol može da se
koristi za povezivanje tačaka susreta različitih domena u kojima se koristi redak režim rada protokola
PIM.