69
UNIVERZITET U SRPSKOM SARAJEVU ELEKTROTEHNIČKI FAKULTET PREDMET: RAČUNARSKE MREŽE I MREŽNO PROGRAMIRANJE SEMINARSKI RAD ТЕМА: ALGORITMI ZA RUTIRANJE МЕNTOR: KANDIDAT:

Agoritmi za rutiranje

Embed Size (px)

DESCRIPTION

UNIVERZITET U SRPSKOM SARAJEVU ELEKTROTEHNIČKI FAKULTETPREDMET:RAČUNARSKE MREŽE I MREŽNO PROGRAMIRANJESEMINARSKI RADТЕМА:ALGORITMI ZA RUTIRANJEМЕNTOR: prof. dr Emina MilovanovićKANDIDAT: Мladen MrkajaSRPSKO SARAJEVO, juli 2004.SADRŽAJ1. UVOD.........................................................................................................................1 1.1. ISO-OSI referetni model...............................................................................1 1.2. Pr

Citation preview

Page 1: Agoritmi za rutiranje

UNIVERZITET U SRPSKOM SARAJEVUELEKTROTEHNIČKI FAKULTET

PREDMET:

RAČUNARSKE MREŽE I MREŽNO PROGRAMIRANJE

SEMINARSKI RAD

ТЕМА:

ALGORITMI ZA RUTIRANJE

МЕNTOR: KANDIDAT: prof. dr Emina Milovanović Мladen Mrkaja

SRPSKO SARAJEVO, juli 2004.

Page 2: Agoritmi za rutiranje

SADRŽAJ

1. UVOD.........................................................................................................................11.1. ISO-OSI referetni model...............................................................................1

1.2. Prenos podataka kod OSI modela.................................................................3 1.3. Šta je to ruter.................................................................................................4 1.3.1. Funkcije rutera...................................................................................5

2. NIVO MREŽE............................................................................................................6 2.1. Komutacione komunikacione mreže.............................................................6

2.1.1. Mreže sa komutacija kola.................................................................7 2.1.2. Mreže sa komutacija poruka..............................................................7 2.1.3. Mreže sa komutacija paketa..............................................................8

2.1.3.1. Datagrami.............................................................................8 2.1.3.2. Virtuelna kola.......................................................................9

3. ALGORITMI ZA RUTIRANJE...............................................................................10 3.1. Uvod............................................................................................................10

3.2. Klasifikacija algoritama za rutiranje............................................................11 3.3. Protokoli za rutiranje...................................................................................12

3.4. Rutiranje kod mreža sa paketnom komutacijom.........................................133.5. Optimalni princip........................................................................................143.6. Algoritmi najkraćeg puta.............................................................................15

3.7. Plavljenje.....................................................................................................17 3.8. Rutiranje glavnog toka................................................................................18 3.9. Vektorsko rutiranje daljine..........................................................................20

3.9.1. Problem računanja u beskonačnosti..............................................21 3.9.2. Razdvojeni horizont.......................................................................22 3.10. Rutiranje pomoću linkovanja.....................................................................23

3.10.1. Učenje o susjedima......................................................................24 3.10.2. Mjerenje troškova linije..............................................................24 3.10.3. Pravljenje paketa stanja veze......................................................25 3.10.4. Distribucija paketa stanja veze...................................................26 3.11. Hijerarhijsko rutiranje ..............................................................................27 3.12. Rutiranje za mobilne hostove....................................................................28 3.13. Broadcast rutiranje....................................................................................30 3.14. Multicast rutiranje.....................................................................................31 4. PRIMJERI ALGORITAMA ZA RUTIRANJE........................................................33

DODATAK...............................................................................................................39

LITERATURA..........................................................................................................42

Page 3: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

1. UVOD

1.1. ISO-OSI referetni model

Kako su računarske mreže bivale sve brojnije javljala se sve veća potreba za međusobnim komuniciranjem korisnika različitih mreža. Istorijski gledano, razmjena podataka između grupe računara bila je ograničana na razmjenu podataka između uređaja istih proizvođača. Da bi omogućila razmjenu podataka između računara različitih proizvođača organizacija ISO (International Standard Organization) je osnovala svoj OSI (Open System Interconnection) referetni model. Pridržavajući se opštih standarda koje komponente sistema moraju da zadovolje, moguće je projektovati i realizovati računarske mreže kod kojih izbor opreme, softvera i sistema različitih proizvođača mora biti irelevantan. Za ovaj model ISO je usvojio nivovski pristup.

Postoje dvije osnovne funkcije koje nivoi ISO-OSI referetnog modela obavljaju:

mrežno-zavisne funkcije ; aplikaciono-orijentisane funkcije ;

Na osnovu ove podjele moguće je razlikovati tri operativna okruženja:

mrežno okruženje - odnosi se na implementaciju protokola i standarda u cilju ostvarivanja korektne razmjene podataka.

OSI okruženje - sadrži u sebi mrežno okruženje, uključujući i dodatne aplikaciono-orijentisane protokole i standarde koje omogućavaju krajnjim korisnicima sistema da komuniciraju bez ograničenja.

okruženje realnih sistema - sadrži OSI okruženje, a uzima u obzir i različite osobine proizvođača softvera i servisa koji su razvijeni sa ciljem da bi se izvršio određeni distribuirano procesno informacioni zadatak.

Logičku strukturu ISO-OSI referetnog modela čine sedam nivoa protokola (slika 1.1.). Prva tri nivoa (1-3) su mrežno zavisna i tiču se detalja ostvarivanja veza između dva računara. Viša tri nivoa (5-7) su aplikaciono orijentisana, a sadrže detalje koje omogućavaju međusobnu interakciju procesa svojstvenih krajnjem korisniku. Nivo 4 predstavlja interfejs između aplikaciono-orijentisanih i mrežno-zavisnih nivoa i obezbjeđuje da oni uspješno razmjenjuju poruke. Nivoe možemo da posmatramo kao posebne cjeline, od kojih svaki obavlja određeni skup funkcija. Nivoi međusobno komuniciraju preko standardnog interfejsa, razvoj unutrašnjih funkcija svakog nivoa zavisi od proizvođača

1

Page 4: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Slika 1.1. OSI referetni model

Aplikacioni nivo - korisnik stupa na scenu upravo na ovom nivou. Krajnji korisnici mogu da prepoznaju komponente aplikacionog nivoa kao programe koje svakodnevno koriste, npr. elektronsku poštu. Aplikacije se sastoje od aplikacionih procesa koji obavljaju procesiranje informacije.

Prezentacioni nivo - ovaj nivo interpretira stvarne podatke koji se razumiju. Na ovom nivou se prevodi redoslijed bitova u bajtu. Ovdje se obavljaju prevođenja između različitih metoda za šifrovanje znakova. Ovdje mora da se obezbjedi nezavisnost aplikacionih procesa od razlike u prezentaciji podataka.

Nivo sesije - obezbjeđuje vođenje dijaloga i ostvarivanje sinhronizacionog upravljanja na nivou aplikacionih cijelina, tj. uspostavlja, upravlja, i raskida veze između kooperativnih aplikacija.

Transportni nivo - zadužen je za prenos poruka od-kraja-do-kraja, upravljanje redosljednim tokom podataka kod prenosa. Dok je mrežni nivo odgovoran za usmjeravanje paketa kroz mrežu, protokoli u transportnom nivou su odgovorni da ovi paketi budu zaista prenjeti na zadato mjesto u zadatoj mreži. Ovaj nivo može da obezbjedi ponovno slanje izgubljenih paketa.

2

Page 5: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Nivo mreže - Upravlja rutiranjem u mreži, adresiranjem, brisanjem tj. ostvaruje uslove za nezavisan rad viših nivoa modela u saglasnosti sa tehnologijama za prenos i komutaciju, koje se koriste za povezivanje sistema. Odgovoran je za uspostavljanje, održavanje i raskidanje veze.

Nivo veze - zadužen je za upravljanje vezom kod prenosa podataka (formiranje okvira, provjera radi greške u prenosu), tj. obezbjeđuje pouzdan prenos informacije po fizičkoj vezi, predaje blokove sa potrebnom sinhronizacijom, kontrolom greške, i kontrolom toka podataka. Funkcije koje obavlja ovaj nivo mogu se podjeliti u dva sloja: Logička kontrola veze (Logical Link Control, LLC) i Kontrola pristupa nosiocima podataka (Media Access Control, MAC). Ovaj nivo je odgovoran na primjer za sastavljanje Ethernet okvira, tj. formatiranje informacija u zaglavlju u tačna polja i smještanje podataka na pravo mjesto.

Fizički nivo - predstavlja fizičke komponente koje sačinjavaju hardver za umrežavanje, uključujući mrežni adapter, konektore, mrežne nosioce podataka itd. Fizički sloj prenosi podatke od izvorne do odredišne mašine. Ovaj sloj pokriva mehaničke, električne, funkcionalne karakteristike. Zadužen je za predaju bitova podataka po fizičkom medijumu

1.2. Prenos podataka kod OSI modela

Na slici 1.2. prikazano je kako se podaci prenose koristeći OSI referetni model Podaci se prvo predaju nivou aplikacije, ovaj nivo podacima pridružuje zaglavlje (header) AH, i novo formiranu poruku predaje prezentacionom nivou. Prezentacioni nivo, može da transformiše primljene podatke na različite načine, poslje transformacije ovaj nivo dodaje zaglavlje PH, i transformisane podatke predaje nivou sesije. Treba naglasiti da prezentacioni nivo nije "svjestan" toga koji dio od primljenih podataka sa višeg nivoa predstavlja zaglavlja AH, a koji dio se odnosi na podatke. Proces se nadalje ponavlja sve dok podaci nestignu na fizički nivo, nakon čega se oni prenose do prijemne strane. I pored toga što se stvarni prenos podataka obavlja kao vertikalni prenos, softver svakog nivoa se kreira kao horizintalni. Na prijemnoj strani, kako se poruka prenosi prema višim nivoima, odbacuju se odgovarajuća pridružena zaglavlja i obavlja se odgovarajuće inverzno procesiranje, sve dok konačno podaci ne stignu do prijemnog aplikacionog procesa. Pridruženo zaglavlje i podaci zovu se PDU (Protocol Data Unit).

3

Page 6: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Slika 1.2. Korištenje OSI modela

1.3. Šta je to ruter?

Kao što mu samo ime kazuje ruter je inteligentni mrežni uređaj koji se koristi na mrežnom nivou. Ruteri "razumiju" topologiju usmjeravanja, tj. imaju predstavu gdje se nalaze svi segmenti lokalne mreže. Oni obavljaju poslove usmjeravanja paketa kroz mrežu na osnovu informacija o segmentu odredišta koje se nalaze u paketu i pripadaju mrežnom protokolu.

Svaki ruter u računarskoj mreži posjeduje znanje koje se odnosi na moguće puteve koje paketi podataka treba da pređu na putu od izvorišta do odredišta. "Znanje" o usmjeravanju paketa (rutiranju) se smještaju u ruting tabele koja se periodično koriste i memorišu u bazi podataka rutera. Da bi odredio portove kojima se pridružuju odredišne adrese ruter koristi broadcast šemu koja se bazira na ARP-u (Address Resolution Protocol). Ono što je takođe važno i treba istaći je to da ruter može čitati sadržaje paketa podataka koji pristižu na dati port na osnovu čega može da odredi izvorišnu i odredišnu adresu, zatim tip podataka, kao i vrijeme prijema paketa.

Koristeći ruting tabelu, ruter usmjerava paket podataka ka jednom ili većem broju izlaznih portova, tj. prema odredišnoj adresi. Paket podataka se usmjerava ka portu ako se poruka prenosi od izvorišta ka odredištu, ili ka većem broju portova, ako se paket tipa broadcast ili multicast. Na slici 1.3. prikazana je konfiguracija rutera sa pratećom protokol arhitekturom. Uočimo da je protokol na nivou mreže, NP, identičan za obje mreže, dok protokol na nivou veze, DP, i fizičkom nivou, Phy, mogu biti različiti. U odnosu na mostove ruteri su univerzalniji jer podržavaju rad i topologiju mreža tipa petlje. U cilju optimizacije balansa opterećenja i smanjenja cijene prenosa u rutere se ugrađuju različiti algoritmi za rutiranje. Od brojnih algoritama, sigurno najčešči korišteni je otvori-prvo-najkraći put (OSPF-open-shortest-path-firist). Zatim se formira distribuirana baza podataka koristeći algoritam najkraćeg puta i vrše se promjene uvjek kada se izvrši promjena u mrežnoj konfiguraciji.

4

Page 7: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Slika 1.3. Konfiguracija rutera

Mrežni menadžer formira ruting tabele sa ciljem da optimizira mrežne performanse u odnosu na nekoliko parametara, kavi su cjena prenosa, kašnjenje, ili propusni opseg. Mostovi se umjesto rutera koriste kod onih mreža kod kojih je potrebno ostvariti veću brzinu prenosa (jer ruteri imaju ugrađenu obradu još i na mrežnom nivou). Glavni zadatak IP protokola je da obezbjedi da će se paketi isporučiti odredištu korektno, pri čemu se ne treba voditi računa o integritetu podataka.

1.3.1. Funkcije rutera

Ruteri kao što je poznato rade na mrežnom nivou. Mrežni nivo nudi logičko adresiranje koje olakšava organizovanje mreža i usmjeravanje saobraćaja između njih, čime se prevazilazi linearni adresni prostor koji obezbjeđuju uređaji nižeg nivoa. Svaki ruter ima dva ili više mrežnih interfejsa. Jedan ili više ovih interfejsa povezuje ruter sa regionalnom mrežom, a ostali sa segmentima lokalne mreže. Na jednom mrežnom interfejsu ruter prima paket, a zatim donosi odluke o njegovom usmjeravanju na osnovu toga koji će ga interfejs najbolje otpremiti do krajnjeg odredišta. Paket se prosljeđuje na port koji može da vodi do drugog rutera ili LAN segmenta koji je direktno povezan sa ruterom.

Ruteri ne koriste samo TCP/IP protokole, iako, vjerovatno, danas većina njih na Internetu koristi IP usmjeravanja. Većina rutera se tako konfiguriše da pored TCP/IP protokola usmjerava i mnoge druge protokole, npr. IPX/SPX itd.

Mogu se iskoristiti pravila konfigurisanja rutera da bi, na osnovu informacija pronađenih u zaglavlju protokola, dozvolili ili zabranili mrežni saobraćaj npr., kada ruter koristi kao prvi odbrambeni mehanizam u mrežnoj barijeri, da bi smo određenoj aplikaciji uskratili pristup mrežnom saobraćaju možemo da onemogućimo ili omogućimo TCP ili UDP portove.

Na ovaj način spriječavamo da se korištenjem Telneta neko drugi prijavi na računar iz naše mreže. Ova funkcija se blokira upravo na ruteru. Ruteri omogućavaju i vođenje "dnevnika". Podatke iz njih koristimo da bismo utvrdili da li je bilo upada u našu mrežu. Da bismo se dodatno zaštitili neki ruter dozvoljavaju slanje informacija iz datoteke dnevnika ka syslog demonu na drugom računaru kako bi, ako je sam ruter napadnut, podaci iz datoteke dnevnika ostali dostupni.

5

Page 8: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

2. NIVO MREŽE

Osnovni zadatak mrežnog nivoa je da obezbjedi razmjenu podataka između računara i mreže na koju je taj računar povezan. Predajni računar, u okviru poruke koju predaje, dostavlja mreži adresu odredišnog računara, tako da mreža može usmjeravati (rutirati) podatke ka odgovarajućem odredištu. Pored ostalog računar koji predaje podatke može zahtjevati određene usluge (servise), kao što je prioritet prenosa podataka, koje se mogu obezbjediti od strane mreže.

Na mrežnom nivou koristi se posebni softver koji zavisi od tipa korištene mreže. Različiti standardi su razvijeni za mreže koje koriste princip komutacije kola (circuit switching), komutacije maketa (packet switching ), lokalne računarske mreže (LAN - Local Area Network), i druge. Zbog toga u daljem tekstu ukazaćemo na specifičnosti ovih mreža.

Da bi ispunio svoj osnovni cilj mrežni nivo mora da posjeduje dovoljno informacija koje se odnose na topologiju komunikacionog subnet-a (da poznaje skup svih rutera) i da odabere odgovarajući put za prenos poruke kroz mrežu. Mrežni nivo takođe mora da vodi računa o izboru puta, kako bi se izbjeglo preopterećenje na nekim komunikacionim linijama i ruterima a da ostali putevi ostanu neiskorišteni. Ako su izvorišni i odredišni računari locirani u različitim mrežama, zadatak mrežnog nivoa je da uskladi ove razlike i riješi sve probleme koji se javljaju zbog toga.

2.1. Komutacione komunikacione mreže

Komutacione komunikacione mreže (switched communication network) dijele se na slijedeće tri grupe:

mreže sa komutacijom-kola (circuit switched network)

mreže sa komutacijom-poruka (message switched network)

mreže sa komutacijom-paketa (packet switching network)

6

Page 9: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

2.1.1. Mreže sa komutacijom kola

Javna telefonska mreža predstavlja mrežu sa komutacijom kola. Kod ovog tipa mreže, u toku poziva, korisniku je dato isključivo pravo da koristi kolo (misli se na kanal i elektroniku za predaju i prijem koja je povezana na taj kanal). Glavne karakteristike ovih mreža su:

moguće je obavljati direktni razgovor onoliko dugo koliko to učesnici žele. da bi se uspostavila veza potrebno je da prođe određeni vremenski period. kada terminali uspostave komunikaciju, uređaji i kanali koji učestvuju u

komuniciranju isključivo se koriste za tu namjenu i ne obavljaju druge komunikacije.

Mreže koje koriste komutaciju kola sa aspekta komunikacije su veoma neefikasne. Kanal za prenos podataka je zauzet od strane korisnika u toku trajanja cjelokupne veze i pored toga što se kroz kanal za duži vremenski period ne prenosi nikakva informacija. Kod telefonskih razgovora iskorištenost mreže je daleko ispod 100%. Vrijeme uspostavljanja veze kod ovih mreža je takođe veoma dugo. Glavna prednost ovih mreža je to što nakon uspostavljanja veze ona postaje transparetna korisnicima.

2.1.2. Mreže sa komutacijom poruka

Osnovna karakteristika ovih mreža je to što se između predajne i prijemne strane ne uspostavlja direktni kanal (veza), tj. poruka se prenosi od tačke-do-tačke, u svakoj tački poruka se memoriše i šalje se dalje preko sljedećeg dostupnog kanala. Ovi sistemi se obično nazivaju sistemi tipa sačuvaj-pa-prosljedi. Prednost ovog tipa mreže je sljedeća: Nakon što je jedna poruka proslijeđena preko kanala moguće je odmah proslijediti i drugu poruku preko istog tog kanala. Ako kanal nije slobodan poruke moraju čekati, one se memorišu i smještaju se u redove čekanja. Ovaj sistem se karakteriše veoma visokim stepenom iskorištenja kanala, ali je nepogodan za primjenu kod onih aplikacija kod kojih se zahtjeva interaktivna komunikacija između krajnjih korisnika sa brzim odgovorom.

7

Page 10: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

2.1.3. Mreže sa komutacijom paketa

Mreže sa komutacijom paketa predstavljaju derivat mreže sa komutacijom poruka i od izuzetne su važnosti za korisnike računarskih sistema koji međusobno komuniciraju. Isto kao i kod mreža sa komutacijom poruka ne uspostavlja se direktni kanal između predajne i prijemne strane, nego poruke koje se šalju se memorišu u usputnim tačkama, a zatim se prosljeđuje preko narednog slobodnog kanala. Poruka se dijeli na kratke segmente fiksnih dužina koji se nazivaju paketi. Izbor puta kroz mrežu za svaki paket određen je saobraćajem kroz mrežu u datom trenutku, kao i od tipa sistema za komutaciju paketa. Imamo dva različita načina organizacije mreža datagrami i virtuelna kola.

2.1.3.1. Datagrami

Kod datagram servisa svaki paket se tretira kao posebna cjelina tako da ne postoji međusobna veza sa ostalim paketima. Svaki datagram mora sadržavati punu odredišnu i izvorišnu adresu. Za velike mreže, ove adrese mogu biti duge.

Posmatrajmo sliku 2.1. i predpostavimo da terminal B želi da pošalje tri-paket-poruke terminalu D.

Slika 2.1. Topologija jedne komutatorske mreže

Terminal B čvoru_2 predaje pakete u redosljedu 1-2-3. Nakon prijema svakog paketa, čvor_2 mora da donese odluku o rutiranju. U trenutku kada je pristigao paket 1 čvor_2 ispituje redove čekanja poruka za slanje za čvor_1 (Q_2_1) i čvor_3 (Q_2_3). Ako je Q_2_1 prazniji, čvor_2 usmjerava paket ka čvoru_1, na isti način se usmjerava i paket 2. Ali za paket 3 čvor_2 odredi da je Q_2_3 kraći i on usmjerava poruku ka čvoru_3.

8

Page 11: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Svaki paket prati odgovarajuća odredišna adresa, ali je bitno i to da svaki paket ne mora da prolazi isti put kroz mrežu. Moguće je da paket 3 stigne u čvor_4 prije paketa 1 i paketa 2. Zadatak ugrađenog softvera u stanici D je da preuredi pristigle pakete. Kod ove tehnike prenosa svaki paket se tretira nezavisno, pa zbog svoje sličnosti sa tehnikom prenosa telegrama naziva se datagram. Ova tehnika je pogodna za slanje kratkih jediničnih-paket-poruka.

2.1.3.2. Virtuelna kola (VC)

Kada poruka sadrži veći broj paketa koristi se metod virtuelnog kola (logički kanal). Kod ovog metoda, prije slanja bilo kakve informacije, izvorni DTE (Data Terminal Equipment) predaje svom lokalnom PSE-u (Packet Switched Exchange) specijalni paket nazvan Call-request. Funkcija Call-request-a je da uspostavi pogodan put za prenos podataka kroz mrežu. Nakon što je put trasiran svi naredni paketi poslani od strane izvornog DTE-a usmjeravaju se istim putem ka odredišnom DTE-u. Pošto svi paketi prolaze kroz isti kanal, ovaj kanal nazivamo virtuelno kolo (virtual circuit). I pored toga što između dva DTE-a postoji virtuelni kanal, koji usmjerava sve pakete kroz isti kanal, u principu paketi nemaju isključivo pravo korišćenja bilo koje individualne veze. Bilo koja veza karakteriše se time što kroz nju prolazi veći broj paketa od kojih je svaki usmjeren ka različitom odredištu. To znači da jedna fizička veza tipa tačka-ka-tački može da podržava rad većeg broja virtuelnih kanala. Svaki paket koji prolazi kroz mrežu mora sadržavati broj VC-a u svom zaglavlju. Kada paket pristigne u ruter, ruter mora da zna preko koje veze je on pristigao i koji mu je VC broj, zasnovano na ovoj informaciji ruter mora da zna gdje da ga proslijedi. Svaka mašina nezavisno bira broj VC-a, ovi brojevi imaju lokalno značenje.

Poređenje Virtuelnog kola i datagrama:

I virtuelna kola i datagrami imaju svoje prednosti i nedostatke. Zakrčenost se mnogo lakše otklanja kod virtuelnih kola tj. datagrami su mnogo više robusniji. Najvažnije osobine koje ih karakterišu date su u sljedećij tabeli:

Karakteristike Datagram Virtuelna kola (VC)

Uspostavljanje kola Nije potrebno TrebaAdresiranje Svaki paket obuhvata potpunu

izvorišnu i odredišnu adresuSvaki paket obuhvata

kratki VC brojRutiranje Svaki paket se rutira

nezavisnoRuta se izabira kada se VC

uspostavlja, svi paketi prate istu putanju

Propusnost rutera Ne, osim za zaboravljene pakete tokom sudara

Svi VC-ovi koji prolaze kroz neispravne rutere su

ograničene

9

Page 12: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

3. ALGORITMI ZA RUTIRANJE

3.1. Uvod

Jedan od najkompleksnijih i najvažnijih aspekata projektovanja mreža sa komutacijom paketa odnosi se na rutiranje.

Osnovna funkcija mreže sa komutacijom paketa sastoji se u tome što se prihvataju paketi od izvorišne stanice i predaju se odredišnoj stanici. Da bi se ostvario ovaj cilj, neophodno je odrediti put, ili rutu, paketa kroz mrežu.

Tabela koja se u svakom čvoru (ruteru) mreže koristi za čuvanje informacije o narednom preskoku naziva se ruting tabela, a proces proslijeđivanja paketa narednom čvoru nazivamo rutiranje (usmjeravanje).

Rutiranje paketa od izvorišta do odredišta je najvažnija funkcija mrežnog niva OSI modela. Rutiranje je ustvari pronalaženje rute (puta) od izvorišta do odredišta. U većini mreža, paketi će trebati obaviti više skokova da dođu do cilja, jedini istaknuti izuzetak je broadcast mreža (mreža emisija svima), ali čak i ovdje rutiranje je od izuzetne važnosti, ako su izvorište i odredište locirani u različitim mrežama. Ruteri ne znaju uvjek cijelu putanju kojom paketi stižu do svog odredišta, ako je ono u drugom LAN segmentu koji je priključen na ruter, ruter odmah zna gdje je mrežno odredište.

Algoritmi za rutiranje su dio softvera mrežnog nivoa odgovorni za odlučivanje preko koje izlazne linije će paket biti prenijet. Ako mreža koristi datagramski pristup, ova odluka će se morati donositi iznova za svaki paket podataka, budući da se najbolja ruta može mijenjati. Ako mreža koristi virtuelna kola, odluka o rutiranju se donosi samo kada se uspostavlja novo virtualno kolo. Nakon toga paketi se svi kreću istom rutom.

Bez obzira da li su rute izabrane nezavisno od svakog paketa ili samo kada je nova veza uspostavljena, postoje određene osobine koje su poželjne u algoritmu za rutiranje: tačnost, jednostavnost, izdržljivost, stabilnost, nepristrasnost i optimalnost.

Ruter ili komutatorski čvor obavlja sljedeće dvije glavne funkcije:

rutiranje (usmjeravanje) - algoritam pronalazi optimalan put ka svakom odredištu i memoriše rezultat u ruting tabelu.

proslijeđivanje - ruter proslijeđuje svaki paket sa ulaznog porta ka izlaznom portu na osnovu informacije koja se čuva u ruting tabeli.

Svrha algoritma za rutiranje je da identifikuje skup puteva koji su najbolji sa aspekta kriterijuma koji je definisao mrežni operator. Da bi uspješno obavio zadatak ruturanja, algoritam usmjeravanja mora da posjeduje informaciju koja se odnosi na opšte podatke o stanju mreže.

10

Page 13: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Algoritam rutiranja bi trebao da ostvari sljedeće ciljeve :

1. obezbjedi mehanizam za brzo i pouzdano slanje paketa,2. obezbjedi brzu prilagodljivost promjenama mrežne topologije koje se javljaju

usljed kvarova u čvorovima ili prekida na vezama,3. brzo se prilagodi promjenama gustine saobraćaja između odredišta i izvorišta,4. izbjegne rutiranje paketa po vezama gdje dolazi do velikog broja sudara,5. za potrebe optimalnog rutiranja brzo odredi povezljivost čvorova u mreži,6. unese minimalno režijsko vrijeme (sistemi za rutiranje dobijaju informacije o

povezljivosti izmjenom upravljačkih poruka sa drugim sistemima za rutiranje. Za potrebe prenosa ovih poruka potrebno je režijsko vrijeme (overhead) koje treba minimizirati).

3.2. Klasifikacija algoritama za rutiranje

Algoritme za usmjeravanje poruka moguće je podjeliti na osnovu nekoliko kriterijuma. U zavisnosti od toga u kom se trenutku formira tabela rutiranja, postoje dva osnovna pristupa:

Neadaptivni (nonadaptive) algoritmi – tablice rutiranja se kreiraju u fazi projektovanja mreža i rijetko se mijenjaju. Ovi algoritmi ne baziraju odluku o ritiranje na osnovu mjerenja ili procjene trenutnog saobračaja, već izračunavaju usmjeravanja koja se zatim, uglavnom ručno, unose u ruting tabele i ostaju nepromjenjene za relativno dug vremenski period. Ovi algoritmi se još nazivaju i statički algoritmi

Adaptivni (adaptive) algoritmi - mjenjaju odluke o rutiranju na osnovu promjena u topologiji i saobračaju. Ovi algoritmi se razlikuju po tome gdje dobijaju informacije (lokalno, od susjednih rutera, od svih rutera u mreži), kada mjenjaju putanje (svako ΔT sec ili kada se mjenja topologija), i šta se optimizuje (udaljenost, broj preskoka). svaki ruter kontinualno uči o stanju mreže putem komuniciranja sa susjedima. Promjene u mrežnoj topologiji se prenose kroz sve rutere. Na osnovu raspoložive informacije, svaki ruter određuje najbolji put ka odredištu. Ovi algoritmi se još nazivaju i dinamički algoritmi.

Glavne prednosti statičkog (neprilagodljivog) rutiranja je jednostavnost i malo režijsko vrijeme, dok glavni nedostatak predstavlja nefleksibilnost. Statičke rute se nemogu tako lako mjenjati tj. sistem ne može brzo da reaguje na defekte u mreži. Zbog ovoga, statičko rutiranje se uglavnom koristi kod mreža manjeg obima.

Najveći broj mreža koristi dinamičko (prilagodljivo) rutiranje. Programi instalirani u čvorovima mogu da nadgledaju saobraćaj u mreži kao i stanje mrežnog hardvera. Programi mogu da modifikuju rute sa ciljem da se premoste otkazi ili kvarovi. Najveći broj mreža velikog obima danas koriste neki od oblika dinamičkog rutiranja. Najveći nedostatak dinamičkog rutiranja je kompleksnost rutera.

11

Page 14: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Algoritmi za rutiranje se mogu klasifikovati u odnosu na to na koji način su oni locirani u mreži.

Centralizovano rutiranje - mrežni upravljački centar izračunava sve puteve usmjeravanja i smješta ove informacije u mrežne rutere. Internet je najbolji primjer velike zbirke pojedinačnih mreža kojima se

Distribuirano (decentralizovano) rutiranje - ruteri međusobno razmjenjuju poruke i samostalno određuju sopstveno usmjeravanje. Algoritmi distribuiranog rutiranja posjeduju bolje osobine, ali veoma često mogu izazvati nepoželjno formiranje petlji. Na primjer, ako A zaključi da je najbolji put da D preko B, a B odredi da je najbolji put do D preko A, paketi namjenjeni D kružiće u petlji između A i B. Internet je najbolji primjer velike zbirke pojedinačnih mreža kojima se decentralizovano upravlja

Odluka o rutiranju paketa donosi se u trenutku uspostavljanja veze. Ako se komutacija paketa bazira na virtuelnom kolu, put paketa se određuje u fazi uspostavljanja veze. Nakon uspostavljanja virtuelnog kola, svi paketi koji pripadaju tom virtuelnom kolu sljede isti put. Kod datagramskog prenosa faza uspostavlkjanja veze ne postoji. Put koji prati svaki paket određuje se nezavisno.

3.3. Protokoli za rutiranje

Postoje dvije osnovne vrste protokola :

usmjerivi protokoli (routable protocol) i protokoli za rutiranje (routing protocol).

Da bi bio usmjeriv protokol, on mora da ima neke odredbe koje služe za identifikovanje kako mreže, tako i računara na njoj. Ako bi ruter morao da vodi evidenciju o svakom računaru na Internetu, ne bi bilo moguće napraviti mašinu dovoljno veliku da uskladi sve informacije iz ruting tabele. Umjesto toga, usmjerivi protokoli definišu mrežne adrese i adrese računara na mreži, zbog ovoga ruter treba da memoriše znatno manje podataka u ruting tabelu. Pošto paket stigne do svoje odredišne mreže, isporučuje se određenom računaru pomoću djela polja adrese koja se odnosi na računar. Protokol TCP/IP izdvaja na stranu dio IP adrese koji se koristi kao identifikator (ID) mreže. Mnogi ruteri podržavaju stekove sa više protokola i mogu da rutiraju i druge protokole, a ne samo TCP/IP.

Protokol za rutiranje - ovaj protokol koristi rutere za međusobnu razmjenu informacija o rutiranju. Ovi protokoli razmjenjuju informacije o novim putanjama i putanjama koje se više ne koriste, kao i o osobinama koje ih opisuju (brzini prenosa i broju preskoka). Putanje (route) su putevi kojima paketi stižu do svojih krajnjih odredišta. U lokalnoj mreži dio adrese protokola koji se odnosi na računar određuje kom računaru je paket namjenjen.

12

Page 15: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Protokoli za rutere razmjenjuju informacije između rutera tako da oni potpuno formiraju izgled mreža koje su im dostupone. Ove informacije su dinamičke, jer sistemi i ruteri mogu da prekinu rad. Kada se to desi, ruteri razmjenjuju informacije i ako postoji putanja kojom se i dalje može dosegnuti odredište, mjenjaju svoje odrednice za rutiranje. Kada do odredišta postoji više putanja, za određivanje one preko koje će se paket prenijeti, u zavisnosti od protokola, ruteri mogu da se baziraju na minimalnom broju preskoka.

3.4. Rutiranje kod mreža sa paketnom komutacijom

Ključni elementi tehnike rutiranja kod mreže sa komutacijom paketa su:

Performansni kriterijumi Broj preskoka - najjednostavniji kriterijum je onaj koji se zasniva na

određivanju minimalnog broja preskoka u ruti. Cjena - odnosi se na najnižu cjenu. Kašnjenje - vrijeme potrebno da poruka pristigne od izvorišta do odredišta. Propusnost - iznos informacije koja se prenosi.

Vrijeme odluke Paketi (Datagram) Sesije (Virtuelna kola)

Mjesto odluke Svaki čvor (distribuirano) Centralni čvor (centralizovano)

Da bi bolje razumjeli namjenu ovih algoritama smatraćemo da komunikaciona mreža predstavlja jedan graf u obliku rešetke, koga čini skup čvorava i skup potega (slika 3.1.). Svaki čvor grafa odgovara jednom ruteru, ili komutatoru paketa, dok svaki poteg predstavlja komunikacioni kanal koji povezuje dva rutera. Ovakva mreže je tipičan primjer mreže koja koristi paketnu-komutaciju.

Postoji nekoliko različitih puteva po kojima se paket može usmjeriti (rutirati) od računara A ka računaru B. Tri moguća puta su 1-3-6, 1-2-5-6 i 1-4-5-6. Sada se može postaviti pitanje koji je od ovih puteva najbolji? Značaj pojma najbolji zavisi prije svega od kriterijuma koji je postavio mrežni operator. Ako je cilj da se minimizira broj preskoka tada je najbolji put 1-3-6. Ako je cilj da se minimizira kažnjenje (u slučaju da svaka veza unosi određeno kašnjenje), od jednog kraja do drugog, tada je najbolji put onaj koji unosi najmanje kašnjenje. Treći kriterijum može se bazirati na izboru puta sa najvećim dostupnim propusnim opsegom.

13

Page 16: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Slika 3.4. Primjer mreže sa paketnom komutacijom.

3.5. Optimalni princip

Treba naglasiti da jedan alogoritam može napraviti opšti iskaz o optimalnim rutama bez obzira na topologiju mreže ili saobraćaja, ovaj iskaz je poznat pod nazivom optimalni princip. Ako je ruter J optimalna putanja od rutera I do rutera K, onda je optimalna putanja od J do K na istoj putanji. Ovaj iskaz ćemo dokazati koristeći kontradikciju: označavajući dio rute od I do J sa r1 i ostatak rute sa r2. Ako postoji od I do K bolji put od r2, npr. r3, tada je r1r3 manje od r1r2 što osporava naš iskaz da su r1 i r2 optimalne.

Kao direktan zaključak optimalnog principa, možemo vidjeti da više optimalnih ruta od svih izvorišta do zadatih odredišta formira stablo sa korjenom u odredištu. Ovo stablo je nazvano sprežno stablo (sink tree) i prikazano je na slici 3.5. pod a), gdje je metrik broj preskoka. Sink stablo ne mora biti jedinstveno (postoje i druga stabla sa istim dužinama putanja). Cilj svih algoritama za rutiranja je da pronađu i koriste sink stablo za sve rutere, npr. za ruter B sink stablo je dato na slici 3.5. pod b).

a) b)

Slika 3.5. a) Mreža b) Sink stablo za ruter B

Ako je sink stablo potpuno stablo, tj. neobuhvata ni jednu petlju, tada će svaki paket biti izručen unutar konačnog broja skokova. Veze i ruteri mogu padati i dizati se tokom operacije, tako nejednaki ruteri mogu imati različite slike o tekućoj topologiji. Svaki ruter individualno dobija informacije na kojima bazira svoje sink stablo.

14

Page 17: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

3.6. Algoritmi najkraćeg puta

Najveći broj algoritama za rutiranje se zasniva na varijanti algoritma najkraćeg puta. Jedan način određivanja najkraćeg puta je određivanje minimalanog broja preskoka. Koristeći ovaj metrik, dužine ABC i ABE na slici 3.6. su iste. Drugi metrik je geografska udaljenost u km, u ovom slučaju ABC je mnogo duže od ABE. Treći metrik je na osnovu određenih kriterijuma o cijeni prenosa. Postoje i mnogi drugi metrici kao na primjer tetstiranje kašnjenja pojedinih linija itd.

Oznake potega mogle su biti izračunate i kao funkcije udaljenosti, gustine saobraćaja, cijeni prenosa, prosječnom kašnjenju i mnogim drugim faktorima. Prateći datu funkciju algoritmi nastoje izračunati najkraći mogući put, mjereći po bilo kom kriterijumu ili kombinaciji kriterijuma.

Postoje nekoliko poznatih algoritama za izračunavanje najkraćeg puta između čvorova, ja ću pomenuti samo Dijakstra (1959). (Ovaj algoritam je dat u dodatku B). U ovom algoritmu poznate su pozicije rutera i rastojanja između njih. Svaki čvor se označi rastojanjem od izvorišnog čvora (ako rastojanje nije poznato stavlja se ∞). Na početku nijedan put nije poznat, tako da su svi čvorovi označeni sa nepoznatima. Kako algoritam napreduje oznake čvorova se menjaju. Oznake se mogu mijenjati odražavajući bolje putanje. Oznake mogu biti privremene ili trajne. Na početku su sve oznake privremene (¥, -) izuzev izvornog čvora, zatim se određuje rastojanje od izvora do najbližih susjeda i oznaka se mijenja. Bira se oznaka sa najmanjom vrednošću rastojanja i proglašava za stalnu. Zatim se za tu oznaku utvrđuju susjedi sa privremenim oznakama i za njih se određuje novo rastojanje. Algoritam se okončava kada oznaka odredišta postane stalna..

Da bi prikazali kako algoritam označavanja radi pogledajmo neoznačeni graf na slici 3.6. pod a).

Slika 3.6. Prvih pet koraka kod izračunavanja najkraćeg puta od A do D

15

Page 18: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Pretpostavimo da želimo pronaći najkraći put od A do D. Prvi korak je trajno označavanje čvora A (crna tačka), zatim se ispituje svaki susjedni čvor. Ispitivajući svaki susjedni čvor do A, mi istražujemo sve provizorno obilježene čvorove u cjelom grafu i prvo obrađujemo čvor sa najmanjom oznakom, i trajno ga označavamo (čvor B) kao na slici 3.6. pod b). Nakon što smo ispitali sve susjedne čvorove do aktivnog čvora, prelazimo na slijedeći čvor tj. čvor sa najmanjom oznakom, zatim se ovaj čvor označava kao trajan . Poznavajući ovu proceduru u drugom koraku obilježavamo čvor B kao trajan slika 3.6. pod b) i ispitujemo sada sve susjedne čvorove do B itd. Pretpostavimo da je AXYZE kraći put od ABE, tada postoje dvije mogućnosti: Z je već postavljen kao trajan, ili Z još nije postavljen kao trajan. Ako jeste, onda je E već temeljno ispitan, tako da putanja AXYZE nije bitna. Sada razmotrimo slučaj kada Z nije trajno označen. Ako je oznaka kod Z veća ili jednaka od E, u tom slučaju AXYZE nemože biti kraća putanja od ABE, ali ako je oznaka Z manja od E, u tom slučaju Z a ne E će postati prvo nepromjenjeno, dozvoljavajući da se E ispita prije Z.

Kao drugi primjer navest ćemo mrežu kod koje su svim komunikacionim kanalima pridružene odgovarajuće cijene. Ovim algoritmom, na osnovu određenih kriterijuma o cijeni, pokušava se odrediti najkraći put paketa od izvorišta do odredišta. Na slici 3.6.1. je prikazana jedna mreža u obliku grafa, koga čine skup čvorova i skup potega. Svaki čvor grafa odgovara jednom ruteru ili komutatoru paketa, dok svaki poteg predstavlja komunikacioni kanal koji povezuje dva čvora ili rutera.

Svakoj vezi je pridružena vrjedonost koja odgvara cjeni korišćenja te veze. Ako definišemo cjenu puta kao sumu cjene veze, tada najkraći put između para čvorova je put sa najnižom cjenom. Tako na primjer, najkraći put od čvora 1 do čvora 6 je 1-2-5-6, a cjena puta je 4.

Slika 3.6.1. Tipična mreža u obliku grafa

U zavisnosti od toga koja se od funkcija optimizira razlikujemo slijedeće slučajeve:

Cijena ~ 1/kapacitet - cijena je obrnuto proporcionalna kapacitetu veze. U većini slučajeva vezama manjeg kapaciteta se pridružuje veća cijena. Cilj je da se paket šalje po vezama većeg kapaciteta. Ako svaka od veza ima isti kapacitet, tada je najkraći put onaj koji ima najmanji broj preskoka.

Cijena ~ ka š njenje paketa - cijena je srazmjerna prosječnom kašnjenju paketa, a uključuje i kašnjenje u redovima čekanja komutatorskih bafera, kao i propagaciono kašnjenje veza. Najkraći put predstavlja najbrži put da se stigne do odredišta.

Cijena ~ sudari - cijena je proporcionalna u određenoj mjeri sa sudarima, npr. gustini saobraćaja. Najkraći put nastoji da izbjegne veze na kojima dolazi do sudara.

16

Page 19: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

3.7. Plavljenje

Drugi statički algoritam za rutiranje je plavljenje. Plavljenje je očito stvaranje velikog broja kopija, ustvari neograničen broj kopija od kojih će najmanje jedna stići na odredišnu adresu. Kod ove tehnike se ne zahtjeva informacija o mreži. Od strane izvorišnog čvora paket se šalje svakom susjednom čvoru. Kod svakog čvora, dolazeći paket se prenosi na sve izlazne linkove (veze) sa izuzetkom linije po kojem je primljen. Na primjer ako čvor 1 na slici 3.7.a) treba da pošalje paket ka čvoru 6 on predaje kopiju tog paketa (sa odredišnom adresom 6), ka čvorovima 2,3 i 4. Čvor 2 šalje kopiju čvorovima 3 i 4. Čvor 4 šalje kopiju čvorovima 2,3 i 5. Proces se dalje nastavlja na istom principu. Očigledno je da će veći broj kopija stići u čvor 6. Svaki paket mora da ima jedinstveni indentifikacioni broj tako da čvor 6 zna da eleminiše sve pristigle pakete, istog tipa, sa izuzetkom prve kopije.

a)

b)

c)

Slika 3.7. Primjer plavljenja

Sa ciljem da se spriječi neprekidno kopiranje paketa, tj. da se broj paketa koji kruže mrežom povećava bez ograničenja, svaki čvor treba da pamti identitet onih paketa koje je već kopirao.

Jednostavna tehnika je da se u svakom paketu uvede polje tipa brojač-preskoka. Brojač se početno postavlja na neku maximalnu vrijednost (najveći broj preskoka). Svaki put kada paket pređe kroz čvor brojač se pomjeri za jedan. Kada brojač dostigne vrijednost 0, paket se eleminiše. Primjer ove tehnike prikazan je na slici 3.7. Kod prvog preskoka, kreiraju se tri kopije paketa.

17

Page 20: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Kod drugog skoka stvara se ukupno 9 kopija. Jedna od ovih kopija će stići i do čvora 6 (odredišta) koji prepoznaje da je to za njega. Ostali čvorovi dalje prave 22 nove kopije za treći konačni preskok. Svi paketi primljeni u trećem skoku se eleminišu.

Tehniku plavljenja karakterišu slijedeće osobine:

Pokrivene su sve moguće rute između izvorišta i odredišta. Nezavisno od toga koji je link ili čvor u kvaru, paket će uvjek pristići do njega pod uslovom da postoji put između izvorišta i odredišta.

S obzirom da su sve rute pokrivene, najmanje jedna kopija peketa će pristići do odredišta, a prva će biti ona koja je koristila rutu sa najmanjim brojem preskoka.

Do svih čvorova, koji su direktno ili indirektno povezani na izvorišni čvor, je stigla poruka.

Ova tehnika je veoma robusna i najćešće se koristi za prenos hitnih poruka. Tipičan primjer su vojne mreže koje su podložne čestim oštećenjima i smetnjama. Plavljenje se može koristiti za inicijalno postavljanje ruta kod virtuelnih kola.

Glavni nedostatak plavljenja je veliki saobraćaj koji ova tehnika generiše i što je taj saobraćaj direktno proporcionalan povezanosti mreže.

3.8. Rutiranje glavnog toka

Algoritmi koje smo do sada obradili birali su topologiju prema cijenama, nisu uzimali u obzir opterećenje ili kašnjenje. Predpostavimo da imamo veoma gust saobraćaj između A i B na slici 3.6., i da je možda bolji (manji) saobraćaj put od A do C preko AGEFC, čak i ako je ovaj put mnogo duži od ABC. U ovom poglavlju bavit ćemo se statičkim algoritmom koji uzima u obzir i opterećenja duž određenih putanja, ovo rutiranje je nazvano rutiranje glavnog toka. U nekim mrežama, protok podataka između para čvorova je relativno stalan i predvidiv. Pod uslovom da je prosječni saobraćaj od i do j unaprijed poznat, moguće je matematički analizirati protok.

Osnovna ideja je, da se pored analize za datu liniju, ako su kapacitet i prosječni saobračaj poznati, da se procjeni (izračuna) kašnjenje paketa na toj liniji. Iz prosječnog kašnjenja na svim linijama (to je direktno izračunavanje toka opterećenja) prosječno dobijamo kašnjenje paketa za cijelu mrežu.

Da bi upotrebili ovu tehniku potrebno je da su ispunjeni slijedeći uslovi: prvo, mrežna topologija mora biti poznata. Drugo, matrica saobraćaja Fij mora biti data. Treće, matrica kapaciteta linija Cij (specifikacija svake linije u bps) mora biti dostupna. Konačno glavni algoritam mora biti odabran. Kao primjer ove metode uzeta je mreža potpuni dupleks koja je prikazana na slici 3.8. pod a). Opterćenje linija daje kapacitet Cij, u svakoj direktno izmjerenoj liniji u kbps.

18

Page 21: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Matrica na slici 3.8. pod b) ima ulaz za svaki izvorišno-odredišni par. Ulaz za izvorište i do odredišta j prikazuje rutu korištenu za i-j saobraćaj i tekođe broj paketa po sekundi koji su poslati od izvorišta do odredišta j. Na primjer 3 paketa/sec. idu od B do D i oni koriste rutu BFD. Odredište

Iz

vo

ri

a) š t e

Slika 3.8. a) Mreža sa kapacitetom linija u kbps. b) Saobračaj u paketima/sec. i matrica rutiranja.

. Davanje ovih informacija, je direktno računanje iznosa u liniji i, λi. Na primjer,

saobraćaj B-D doprinosi 3 paketa/sec. na BF liniji i 3 paketa/sec. na FD liniji. Isto tako A-D saobraćaj doprinosi 1 paket/sec. za svaku od 3 linije. Ukupni saobraćaj prikazan je u λi koloni u tabeli 1. U ovom primjeru, cio saobračaj je simetričan tj, saobračaj XY je identičan saobračaju YX. U realnim mrežama ovaj uslov nije uvjek prisutan. Tabela 1 takođe pokazuje srednji broj paketa po sekundi (paket/sec) na svakoj liniji, μCi paket veličine

1/μ=800 bit-a

Takođe je u tabeli 1 dato srednje kašnjenje za svaku liniju

T=1/(μC-λ)

gdje je 1/μ srednji paket veličine u bit-ima, C je kapacitet u bps, λ srednji tok u paketima/sec..

Linija λi(pkt/sec) Ci (kbps) μCi(pkt/sec) Ti(msec) Kašnjenje1 AB 14 20 25 91 0,1712 BC 12 20 25 77 0.1463 CD 6 10 12.5 154 0.0734 AE 11 20 25 71 0.1345 EF 13 50 62.5 20 0.1596 FD 8 10 12.5 222 0.0987 BF 10 20 25 67 0.1228 EC 8 20 25 59 0.098

Tabela 1. Analiza mreže sa slike 3.8. korišteći srednji paket veličine 800 bit-a

19

A B C D E FA 9

AB4

ABC1

ABFD7

AE4

AEF

B 9BA

8BC

3BFD

2BFE

4BF

C 4CBA

8CB

3CD

3CE

2CEF

D 1DFBA

3DFB

3DC

3DCE

4DF

E 7EA

2EFB

3EC

3ECD

5EF

F 4FEA

4FB

2FEC

4FD

5FE

Page 22: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Za izračunavanje vremena prosječnog kašnjenja za cjelokupnu mrežu uzimamo opterećenje jezgra svake od 8 linija. U našem primjeru srednje isključenje će biti 86 milisekundi (msec.)

Za procjenjivanje drugačijeg glavnog algoritma možemo ponoviti početni proces, samo sa drugim tokovima i sa uzimanjem novog srednjeg kašnjenja. Moguće je napisati program za provjeru svih mogućih puteva i saznati koji ima najmanje srednje kašnjenje.

3.9. Vektorsko rutiranje daljine (Distance Vector Routing)

Savremene računarske mreže više koriste dinamičke algoritme za rutiranje nego statičke. Dva najpopularnija dinamička algoritma za rutiranje su vektorsko rutiranje daljine (Distance Vector Routing) i rutiranje pomoću linkovanja (Link State Routing) .

Ovaj algoritam rutiranja se koristi kod onih rutera kod kojih se stalno (dinamički) vrše izmjene u njihovim tabelama rutiranja, na osnovu informacija koje primaju od svojih susjeda. Svaki ruter ima tabelu sa vrstom za svaki drugi ruter u mreži. Svaka vrsta sadrži: najpoželjniju liniju za dato odredište i procenu rastojanja do tog odredišta. Metric koji se koristio ili je broj preskoka ili vremensko kašnjenje u msec. ili broj paketa koji čekaju u redu duž linije.

Ako je metric preskok, udaljenost svih susjeda je jedan skok. Ako je metric čekanje u redu, ruter jednostavno ispituje sve redove čekanja duž linija na koje je povezan. Ako je metric zadržavanje ruter ga mjeri šaljući specijalni ECHO paket svojim susjedima, koji ga što je moguće brže vraćaju. I na taj način ruter zna kašnjenje svakog od dvojih susjeda. Svaki ruter u mreži svako T msec. šalje susjedima listu svojih procjena kašnjenja za svako odredište. Pretpostavimo da je ruteru Y upravo stigla jedna ovakva tabela od susjeda X. U pristigloj tabeli ruter Y dobija procjenu da ruteru X treba Xi msec da stigne do rutera Z . Poznavajući ove podatke, i znajući da je kašnjenje do X m msec. ruter Y procjenjuje da može doseću ruter Z preko X za Xi+m msec. Najmanje kašnjenje do rutera Z će definisati najpoželjniju izlaznu liniju.

Ovaj složen i efikasam postupak je prikazan na slici 3.9. Prve 4 kolone sa slike pod b) prikazuju vektore kašnjenja primljenje od susjeda rutera J. Vidimo da ruter A ima kašnjenje od 12 msec do B, 25 msec. do C, 40 msec. do D itd. Pretpostavimo da J ima izmjerenu procjenu kašnjenje prema svojim susjedima A, I , H i K 8,10,12 i 6 msec. respektivno.

Razmotrimo kako J proučava nove putanje do rutera G. Poznato je da može stići do A za 8 msec., A zahtjeva da stigne do G za 18 msec. Tako J zna da može stići do G za 26 msec. Na isti način se izračunava kašnjenje do G preko I, H i K kao 41(6+12), 18(6+12) i 37(31+6) respektivno. Najkraće vrijeme je 18 msec. tj. preko H. Isti račun se koristi za sva ostala odredišta u mreži, sa novom ruting tabelom što je prikazano u posljednjoj koloni na slici 3.9. pod b).

20

Page 23: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

nova procjena zakašnjenja od J

a)

JA JI JH JK nova ruting tabela za J 8 10 12 6

b)Slika 3.9. a) Mreža b) Ulaz od A,I,H,K i nova ruting tabela.

3.9.1. Problem računanja u beskonačnosti:

Ovaj algoritam teorijski dobro funkcioniše, ali u praksi ima mnogo mana. Mada konvergira ka korektnom rešenju, to može biti veoma sporo. Na dobre vijesti reaguje brzo a na loše vijesti reaguje veoma sporo

Razmotrimo ruter čija je najbolja putanja do odredišta X velika. Ako pri nekoj razmjeni susjed A iznenada izvjesti o kratkom kašnjenju u odnosu na X, ruter, jednostavno se prebacuje na korištenje linije od A da pošalje poruku prema X. U jedno-vektorskoj razmjeni, prosljeđena je dobra vijest.

Da bi vidjeli kako se brzo šire dobre vijesti, razmotrimo linearnu mrežu sastavljenu od 5 tačaka kao na slici 3.9.1., gdje se kašnjenje mjeri brojem preskoka. Pretpostavimo da je A u kvaru, na početku svi ostali ruteri to znaju. Tj. svi su zabilježili kašnjenje prema A kao beskonačno.

∞ ∞ ∞ ∞ na početku 1 2 3 4 na početku 1 ∞ ∞ ∞ poslje 1 promjene 3 2 3 4 poslje 1 promjene 1 2 ∞ ∞ poslje 2 peomjene 3 4 3 4 poslje 2 promjene 1 2 3 ∞ poslje 3 promjene 5 4 5 4 poslje 3 promjene 1 2 3 4 poslje 4 promjene 5 6 5 6 poslje 4 promjene 7 6 . 7 6 poslje 5 promjene

a) : ∞ ∞ ∞ ∞

b)

Slika 3.9.1. Problem brojanja a) Dobre vijesti se brzo šire b) Loše vijesti sporo putuju

21

A I H KA 0 24 20 21B 12 36 31 28C 25 18 19 36D 40 27 8 24E 24 7 30 22F 23 20 19 40G 18 31 6 31H 17 20 0 19I 21 0 14 22J 9 11 7 10K 24 22 22 0L 29 33 9 9

8 A20 A28 I20 H17 I30 I18 H12 H10 I0 -6 K15 K

Page 24: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Kad se A pojavljuje, ostali ruteri saznaju o tome putem vektorske razmjene. Zbog jednostavnosti pretpostavimo da se vektorska razmjena inicira kod svih rutera istovremeno. U toku prve razmjene B saznaje da njegov lijevi susjed ima nulto kašnjenje u osnosu na A. B pravi ulaz u njegovu ruting tabelu i A je za jedan skok udaljen u lijevu stranu. Svi ostali ruteri misle da je A još uvjek u kvaru. U ovoj tački, ruting tabela ulazaka za A je prikazana u drugom redu na slici 3.9.1. pod a). Pri sljedećoj razmjeni, C saznaje da B ima stazu dužine 1 prema A, pa ažurira svoju ruting tabelu da inicira stazu dužine 2, ali D i E još uvjek nedobijaju dobre vijesti. Postaje jasno da se dobre vijesti šire brzinom od jednog skoka po razmjeni. U mreži čija najduža staza broji N skokova, poslije N razmjena svi će znati o novo izvedenim linijma i ruterima.

A sada razmotrimo situaciju na slici 3.9.1. pod b), na kojoj su sve linije i ruteri u početku aktivni. Ruteri B,C,D i E imaju u odnosu na A daljine koje iznose 1,2,3 i 4 respektivno. Razmotrimo sada slučaj šta se dešava kada se A iznenada pokvari.

Pri prvoj razmjeni paketa, B ne čuje ništa od strane A. Na sreću C kaže: "Ne brini. Ja imam stazu prema A dužine 2". B malo zna o tome da staza od C prema A vodi i kroz D. Što se njega tiče C može imati 10 nezavisnih staza prema A dužine 2. Kao rezultat toga B sada misli da može doći do A preko C, stazom dužine 3. D i E ne ažuriraju svoje ulaske prema A pri prvoj razmjeni. U toku druge razmjene, C primjećuje da svaki od njegovih susjeda tvrdi da ima stazu do A dužine 3. On nasumice bira jednu od njih i pravi svoju stazu do A dužine 4, kao što je prikazano u trećem redu na slici 3.9.1. pod b). Sabsekvencijalne razmjene čine istoriju prikazanu na ostatku slike 3.9.1. pod b). Sa ove slike, trebalo bi biti jasno zašto loše vijesti putuju sporo (nijedan ruter nikada nema vrijednost za jedan veću od minimuma svih njegovih susjeda). Postepeno, svi ruteri prave svoj put prema beskonačnosti, ali broj traženih razmjena zavisi od numeričke vrijednosti korištene za beskonačnost, iz ovog razloga korisno je podesiti bekonačnost na najdužu stazu plus 1. Kada se mjeri vrijeme kašnjenja nepostoji tačno definisana gornja granica, tako da je potrebna velika vrijednost da bi spriječili da staza sa velikim kašnjenjem bude tretirana kao prekinuta veza. Ne baš iznenađujuće, ovaj problem je poznat kao problem brojanja do beskonačnosti.

3.9.2. Razdvojeni horizont (Split Horizon)

Predloženo je mnogo rješenja za rješenje problema brojanja do beskonačnosti. Ovdje ćemo opisati jedno od njih, a zatim ćemo reći zašto i ono ne valja. Algoritam razdvojenog horizonta radi na isti način kao i vektorsko rutiranje daljine, osim što se daljina do X ne prikazuje za linije kojom se paketi šalju prema X (ona, je u stvari prikazana kao beskonačnost). U početnom stanju na slici 3.9.1. pod b), na primjer, C kaže D-u istinu o daljini do A, ali C kaže B-u da je njegova udaljenost od A beskonačna. Slično tome, D kaže istinu E-u ali laže C-u. Sad da vidimo šta se dešava kad je A u kvaru. Pri prvoj razmjeni, B otkriva da je direktna linija nestala, a C ga izvještava o beskonačnoj daljini do A. Pošto nijedan od njegovih susjeda nemože stići do A i B takođe određuje svoju daljini do A kao beskonačnu. Pri sljedećoj razmjeni, C cuje da je A van domašaja oba svoja susjeda, pa obilježava A kao nedostupan.

22

Page 25: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Korištenjem razdvojenog horizinta loše vijesti se šire jednim skokom po razmjeni. Ova brzina je mnogo bolja od slučaja kod razdvojenog horizonta nema. Stvarno loša vijest je da razdvojeni horizont iako se naširoko koristi ponekad se kvari.

Razmotrimo sada primjer mreže od 4 tačke prikazane na slici 3.9.2. U početku i A i B imaju daljinu 2 od D, a C ima daljinu 1 do D.

Slika 3.9.2.b) Primjer gdje su razdvojeni horizonti neuspješni

Sada pretpostavimo da je veza između C i D prekinuta. Korištenjem razdvijenog horizonta i A i B kažu C-u da nemogu do D. C odmah zaključuje da je D nedostupan i javlja ovo i A-u i B-u. Na nesreću, A čuje da B ima stazu dužine 2 do D, pa pretpostavi da može stići do D preko B u 3 skoka. Isto tako, B zaključuje da može stići do D preko A u 3 skoka. Pri slijedećoj razmjeni, njih oba podešavaju svoju daljinu do D na 4. Njih oba postepeno broje do beskonačnosti, radeći tačno ono što pokušavamo da izbjegnemo.

3.10. Rutiranje pomoću linkovanja (Link State Routing)

Vektorsko rutiranje daljine je korišteno u ARPANET-u do 1979, kada je zamjenjeno rutiranjem pomoću linkovanja. Dva primarna problema uzrokovala su njegovu propast. Kao prvo, pošto je mjerenje kašnjenja bilo mjereno redovima, nije uzimana u obzir propusnost linije kada su birane rute. U početku, sve su linije bile 56kbps, tako da propusnost linije nije bila problem, ali kasnije neke linije su nadograđene do 230kbps, a druge do 1.544Mbps, pa je ne uzimanje propusnosti u obzir bilo glavni problem. Naravno, bilo je moguće promjeniti mjerenje kašnjenja tako da se propusnost uzme u obzir, ali je postojao i drugi problem, konvergiranje algoritma je često bilo predugo čak i sa korištenjem trikova kao što je razdvojeni horizont. Iz ovih razloga zamjenjeno je potpuno novim algoritmom nazvanim rutiranje pomoću limkovanja. Varijante rutiranja pomoću linkovanja se sada naširoko koriste. Ideja ovakvog rutiranja je jednostavna i može biti razdvojena u 5 dijelova.

Koraci ovog algoritma su:1. Otkriti svoje susjede i zapamtiti njihove mrežne adrese;2. Mjeriti kašnjenje ili cijenu svakog od svojih susjeda;3. Konstruisati paket kojim će reći sve što je upravo saznao;4. Poslati ovaj paket svim ostalim ruterima;5. Proračunati najkraću stazu da svakog pojedinog rutera;

23

Page 26: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Kompletna topologija i sva kašnjenja se eksperimentalno mjere i šalju u svaki ruter. Zatim se može koristiti Dijkstra algoritam da bi se našla najkraća staza da svakog rutera. Razmotrit ćemo detaljnije svaki od ovih 5 koraka.

3.10.1. Otkrivanje suseda

Kada je ruter aktivan, njegov prvi zadatak je da sazna ko su njegovi susjedi. Ovaj cilj se postiže slanjem specijalnog HELLO Po svim od tačke do tačke linijama. Od susjednih rutera se očekuje da pošalju odgovor kojim saopštavaju svoj identitet (IP adresa). Ova imena moraju biti globalno jedinstvena, jer ako udaljeni ruter čuje da su sva tri rutera spojena na F , od suštinskog je značaja da može da odredi da li sva tri znače isto ili ne. Kada su dva ili više rutera povezana LAN-om, situacija je malo kompleksnija. Slika 3.10.1. pod a) ilustruje LAN na koji su direktno povezana tri rutera. Svaki od ovih rutera je spojen sa jednim ili više dodatnim ruterom, kao na slici.

Jedan od načina da modeliramo LAN, je da ga prikažemo kao tačku, kao na slici 3.10.1. pod b). Ovdje smo uveli novu, vještačku tačku N, na koju su spojeni A, C i F. Činjenica, da se može ići od A do C pomoću LAN-a, ovdje je prikazana stazom ANC.

Slika 3.10.1. a) Devet rutera i LAN b) model grafa

3.10.2. Merenje kašnjenja do suseda

Algoritam rutiranja pomoću linkovanja zahtjeva da svaki ruter zna, ili da bar približno procjeni kašnjenje do svakog od svojih susjeda. Najdirektniji način da se odredi ovo kašnjenje je slanjem specijelnog ECHO paketa linijom kojom se zahtjeva njegovo momentalno vraćanje nazad. Mjerenjem vremena koje je potrebno paketu da ode i da se vrati i njegovim djeljenjem sa 2, ruter može dobiti približnu procjenu kašnjenja. Za još bolje rezultate test se može izvesti nekoliko puta, i uzeti njegov prosjek.

Interesatno je pitanje da li treba uzeti u obzir opterećenje linije pri mjerenju kašnjenja ili ne. Ako opterećenje uzimamo u obzir, tajmer se mora startovati dok je ECHO paket na čekanju (u redu). Ako ignorišemo opterećenje tajmer bi trebao startovati kada ECHO paket dostigne početak reda.

24

Page 27: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Oba ova načina imaju svoje prednosti i nedostatke. Uključivanje opterećenja nastalog usljed saobraćaja u mjerenje kašnjenja, znači da, kada ruter ima izbor između dvije linije sa istom propusnošću, jedna je više opterećena od druge, ruter će birati kao kraću onu što je manje opterećena. Ovaj izbor rezultuje boljim performansama.

Na žalost, postoje argumenti i protiv uključivanja opterećenja u proračun kašnjenja. Razmotrimo mrežu na slici 3.10.2., koja je podijeljena na dva dijela Istočni i Zapadni, koji su povezani dvjema linijama CF i EI. Pretpostavimo da se većina saobraćaja između Istoka i Zapada odvija preko linije CF, kao rezultat toga ova linija je preopterećena i sa dugim kašnjenjima je. Sada će ruteri uzeti stazu EI kao kraću, jer ona nije opterećena. Nakon što su instalirane nove ruting tabele većina saobraćaja između Istoka i Zapada će sada ići linijom EI. Međutim, sada linija EI postaje preopterećena i ruter opet bira stazu CF kao kraću. Kao posljedica ovoga dolazi do velikih oscilacija ruting tabela, što dovodi do mnogo potencijalnih problema. Ako opterećenje ignorišemo i razmatramo samo propusnost ovaj problem se neće javiti. Opterećenje će biti raspoređeno objema linijama. Međutim, ovo rješenje ne iskorištava potpuno najbolju stazu.

Slika 3.10.2. Mreža u kojoj su dva djela, Istok i Zapad povezani dvjema linijama

3.10.3. Generisanje paketa stanja veze (Link State Paketa)

Kada su informacije potrebne za razmjenu prikupljene, sljedeći zadatak za svaki ruter je da napravi paket koji sadrži sve informacije do kojih je došao. Paket počinje identitetom pošiljaoca, zatim sa brojem sekvenci, godištem i listom susjeda. Za svakog susjeda je dato kašnjenje do tog susjeda. Primjer mreže sa kašnjenjima prikazanim na linijama je dat na slici 3.10.3. pod a). Odgovarajući paketi stanja veze za svih šest rutera su prikazani na slici 3.10.3. pod b).

a) b)Slika 3.10.3. a) Mreža b) Paketi stanja veze za ovu mrežu

25

Page 28: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Pravljenje paketa stanja veze je lako. Teži dio je odlučiti kada da se prave. Jedna od mogućnosti je praviti ih periodićno, tj. u određenim intervalima. Druga mogućnost je kada se desi nešto značajno, kao što je kada neka od susjednih linija padne ili se ponovo pojavi, ili kada neka linija primjetno mjenja svoje osobine.

3.10.4. Distribucija paketa stanja veze

Najteži dio algoritma je pouzdana distribucija paketa stanja veze. Distribucijom i instaliranjem paketa, ruteri mijenjaju svoje rute. Prema tome, različiti ruteri mogu koristiti različite vrste topologija, što može dovesti do petlji, nedostupnih hostova i drugih problema.

Prvo ćemo opisati osnovni distributivni algoritam. Osnovna ideja je korištenje metoda plavljenja za distribuciju paketa stanja veze. Radi provjere svaki paket sadrži redni broj koji se povećava za svaki novi poslati paket. Kada stigne novi paket stanja veze ponovo se provjerava lista već pristiglih paketa. Ako je to novi paket, on se proslijeđuje na sve linije izuzev one po kojoj je stigao. Ako je duplikat onda se odbacuje. Ako paket ima redni broj broj niži od najvećeg do tad pristiglog on se odbacuje kao zastario. Ovaj algoritam ima nekoliko nedostataka koji su prihvatljivi. Prvo, ako se vrši numeracija paketa po nekom modulu, može doći do konfuzije koji je paket stariji. Ovaj problem se rješava tako što se koristi 32-bitni redni brojevi. Ako bi se svake sekunde slao po jedan ovakav paket bilo bi potrebno 137 godina da se ponove isti redni brojevi (pa se problem može ignorisati)

Drugo, ako ruter otkaže izgubiće trag o svojim rednim brojevima. Ako ponovo počne od nule, sljedeći paket će biti odbačen kao duplikat.

Treće, ako dođe do narušavanja rednog broja, i primi se 65.540 umjesto 4 (jedno bitna greška), paketi od 5 do 65.540 će biti odbačen kao zastarijeli, jer je trenutni broj sekvence trebao biti 65.540.

Rješenje ovog problema može biti uključivanje starosti svih paketa. Kada je starost nula informacija iz tog rutera se odbacuje. Neka npr. paketi dolaze svakih 10 minuta, informacije rutera će pauzirati samo kada je ruter oboren. Starost se takođe dekrementira svakih DT vremenskih trenutaka pri prolasku kroz svaki ruter. Na ovaj način se osigurava da se nijedan paket ne izgubi i da nekruži mrežom neograničeno (paket čija je starost 0 se odbacuje).

Neki dodatci čine ovaj algoritam robusnijim. Kada paket stanja veze dolazi u ruter plavljenjem, on se odmah ne proslijeđuje drugim ruterima, već se stavlja u red čekanja. Ako slijedeći paket stanja veze od istog izvora stigne prije nego što je ovaj predhodni i poslan, njihovi brojevi sekvenci se upoređuju. Ako su jednaki duplikat se odbacuje, a ako su različiti, stariji se proslijeđuje. Da bi se zaštitili od greški na vezema, svi paketi stanja veze se potvrđuju.

Struktura podataka koje koristi ruter B na slici 3.10.3. pod a) data je u tabeli 3.10.4. Svaki niz odgovara tek pristiglom, ali još potpuno ne obrađenom paketu stanja veze. Tabela sadrži porjeklo paketa, te njegov redni broj i starost. U njegovom dodatku šalju se zastavice potvrđivanja za svake od 3 B-ove linije (linija prema A, C i F). Ove zastavice znače da paket mora biti poslan preko ove tri linije. U tabeli 3.10.4. paket stanja veze iz A stiže direktno, tako da mora biti poslat u C i F i potvđen u A.

26

Page 29: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Paket iz F mora biti proslijeđen u A i C i potvrđen u F

Izvorište Red.br. dob A C F A C FA 21 60 0 1 1 1 0 0F 21 60 1 1 0 0 0 1E 21 59 0 1 0 1 0 1C 20 60 1 0 1 0 1 0D 21 59 1 0 0 0 1 1

Tabela 3.10.4. Vođenje evidencije o paketima

Međutim, paket iz E dolazi dvaput (jednom preko EAB, a jednom preko EFB), pa zato on mora biti poslan samo u C, ali potvđen i u A i u F, kao što je prikazano bitovima.

Ako duplikat stigne dok je orginal još u baferu, bitovi se moraju promjeniti. Npr. Ako kopija C-ovog stanja veze stiže iz F-a prije nego što je četvrti ulazak u tabelu proslijeđen, šest bitova će se promjeniti na 100011 da bi pokazali da paket mora biti potvrđen u F ali ne i poslat u F.

3.11. Hijerarhijsko rutiranje

Za mrežu koja ima n rutera, pri čemu svaki ima k susjeda, memorija potrebna da se zapamte svi podaci je reda O(kn). Za velike mreže, kao što je Internet, koji se sastoji od nekoliko miliona rutera i više od 50mil računara, ovo može biti veliki problem. Nije problem samo memorija već i CPUovo vrijeme. Administrativna autonomija mora pružiti mogućnos organizacijama da administriraju svoje mreže po želji, a da se ipak mogu povezati sa spolnim svijetom.

Jedno moguće riješenje ovog problema je da se izvrši podjela rutera na regione. Svaki ruter zna detalje svog regiona i izvršava isti algoritam rutiranja. Regioni (autonomni sistemi) su međusobno povezani preko jednog ili više rutera. Jedan ili više rutera u regionu su zaduženi za komunikaciju sa drugim regionima (Gateway ruteri). Kao primjer ovog rutiranja pogledajmo sliku 3.11.

Slika 3.11. Primjer Hijerarhijskog rutiranja

27

Page 30: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Od velike važnosti je pitanje koliko nivoa hijerarhije je potrebno? Ako je mreža veoma velika dvo-nivovska hijerarhija nije dovoljna. Npr: ako imamo mrežu sa 720 rutera i ako nema hijerarhijskog rutiranja, svaki ruter mora da ima tablicu sa 720 ulaza. Ako se mreža podeli na 24 regiona sa po 30 rutera, svakom ruteru je potrbna tabela sa 30 lokalnih ulaza i 23 za druge regione (ukupno 53).

Ako se odabere tro-nivovska hijerarhija sa 8 klastera (grozdova) pri čemu svaki sadrži 9 regiona sa po 10 rutera, svakom ruteru je potrbna tablica sa 10 ulaza za lokalne rutere, 8 ulaza za druge regione i 7 ulaza za ostale klastere, što je ukupno 25 ulaza. Kamon i Kleinork (1979) su ustanovili da je optimalan broj nivoa za mrežu od N rutera lnN, što zahteva elnN ulaza u tabeli svakog rutera.

3.12. Rutiranje za mobilne hostove

Milion ljudi danas u svijetu ima mobilne racunare, oni upšteno žele da korisre svoj računar, i imaju pristup sistemu ma gdje u svijetu bili. Ovi mobilni hostovi predstavljaju nove komplikacije u mrežama. Pojava mobilnih hostova u mrežama je veoma mlada, mi ćemo u ovom poglavlju dati kratak prizor nekih primjera i nekih mogućih solucija.

Uobičajeni model svijeta koji mrežni konstruktori obično koriste je prikazan na slici 3.11. Na slici imamo WAN-ove koji se sastoje od rutera i hostova. Sastavni dio WAN-ova su LAN-ovi i MAN-ovi i bežične ćelije. Korisnike koji se nikad ne pomjeraju ćemo zvati nepomični (stacionarni) korisnici. Oni su spojeni u mrežu bakarnim žicama ili optičkim vlaknima. Korisnici koji se kreću (mobilni korisnici) su u suštini stacionarni korisnici koji se kreću u vremenu od jednog stalnog (fiksnog) položaja do drugog, ali mrežu koriste samo kada su fizički povezani na nju.

Roming (roaming) korisnici ustvari žele održavati povezanost sa mrežom dok se kreću. Za njih ćemo koristiti termin mobilni korisnici, to su korisnici koji su udaljeni od svojih fiksnih adresa.

Slika 3.11. WAN na kojim su spojeni LAN-ovi i MAN-ovi

Svi korisnici su primorani da imaju trajne fiksne lokacije (adrese) koje se nikad ne mjenjaju. Cilj rutiranja u sistemima sa mobilnim korisnicima je stvoriti mogućnost slanja paketa do mobilnih korisnika koristeći njihove fiksne (kućne) adrese. Trik je naravno pronaći ih.

28

Page 31: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Radi olakšanja svijet smo podjelili na male cjeline (područja). Svako područje ima jedan ili više stranih agenata (posrednika) koji prate sve mobilne korisnike koji se nalaze u tom području. Svako područje takođe ima domaćeg agenta (posrednika) koji prati trag korisnika čija je kuća u tom području, ali se trenutno nalaze u nekom drugom području.

Kada se paket pošalje mobilnom korisniku, rutiranje se vrši na korisnikov LAN, zato što adresa tako upućuje. Pakete poslane mobilnom korisniku na njegov LAN presreće domaći agent. Domaći agent tada traži novu (privremenu) lokaciju i nalazi adresu stranog agenta sa kojim radi mobilni korisnik. Domaći agent izvršava dvije stvari. Prvo, kapsulira paket u korisno polje vanjskog paketa i šalje pismo stranom agentu. Ovaj mehanizam se zove tunelovanje. Kada dobije ovaj paket, strani agent iz njega izdvaja orginalni paket i šalje ga mobilnom korisniku.

Drugo, domaći agent odgovara pošiljaocu da nastavi slati kapsulirane pakete eksplicitno adresirane na stranog agenta, umjesto da ih šalje na domaću adresu. Paketi sada mogu biti rutirani direktno do korisnika preko stranog agenta, premoštavajući domaću lokaciju u potpunosti.

Predložene šeme možemo razlikovati po nekoliko osnova. Prvo, pitanje je koliko su nosioci protokola ruteri, a koliko hostovi. Drugo, u nekim šemama, ruteri duž puta snimaju mapirane adrese, pa mogu prekinuti i preusmjeriti saobraćaj čak i prije nego stigne do domaće lokacije. Treće, u nekim šemama svaki posjetilac dobija posebno privremenu adresu, dok u drugim, privremena adresa upućuje na agenta koji kontroliše saobračaj za sve posjetioce.

Četvrto, šeme se razlikuje i po tome kako uređuju da paketi adresirani na jednu lokaciju budu isporučeni na drugu. Jedno rješenje je mjenjanje odredišne adrese i jednostavno retransmitovanje modifikovanog paketa. Alernativno, cijeli paket, zajedno sa domaćom adresom, može biti ukapsuliran u drugi paket poslan na privremenu adresu. Konačno, šeme se razlikuju i po aspektu sigurnosti.

29

Page 32: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

3.13. Broadcast rutiranje

U nekim primjenama, host treba slati poruku mnogim ili svim drugim hostovima u mreži. Npr, servis koji daje vremensku prognozu ili stanje na berzi ili radio program uživo. Slanje paketa na sve destinacije simultano se naziva broadcasting, postoji nekoliko metoda za to.

Jedan od broadcasting metoda, koja nema posebne zahtjeve od mreže je da izvor jednostavno pošalje paket na sve destinacije. Ne samo da je ova metoda neefikasna, već zahtjeva da izvor ima kompletnu listu destinacija. U praksi ovo može biti jedina mogućnost, ali je ovo najmanje poželjna metoda.

Plavljenje je druga mogućnost. Iako je plavljenje neprekidno za obične komunikacije tipa tačka-ka-tački, ipak o ovoj tehnici treba ozbiljno razmisliti pogotovo ako nijedna od dalje opisanih metoda nije primjenljiva. Osnovni problem kod plavljenja je da generiše previše paketa i zagušuje saobraćaj. Treći algoritam je rutiranje na više lokacija. Ako je korišten ovaj metod svaki paket sadrži ili listu destinacija ili mapu koja inicira željene destinacije. Kada paket stigne do rutera, ruter provjerava sve destinacije da bi odredio set izlaznih linija preko kojih će poslati paket. Ruter generiše novu kopiju paketa za svaku izlaznu liniju koja će biti korištena i upisuje u paket samo one destinacije, koje su predviđene da idu tom linijom. U stvari, set destinacija je raspodijeljen na izlazne linije. Poslije konačnog broja ovih rutiranja svaki paket će nositi samo jednu destinaciju. Rutiranje na više lokacija je kao odvojeno adresirani paketi, stim što kada više paketa slijedi istu rutu samo jedan od njih plaća punu cijenu puta, a drugi se prenose besplatno.

Četvrti broadcast algoritam eksplicitno koristi sink stablo (sink tree) za ruter koji inicira prenos. Sink stablo je podgrupa mreže koja uključuje sve rutere, ali ne sadrži petlje. Ako svaki od rutera zna koja od linija pripada stablu, on može kopirati dolazeći paket na sve linije osim na onu kojom je paket došao. Ovaj metod odlično koristi veze, generišući minimalan broj paketa koji je potreban da se uradi posao. Jedini problem je što svaki ruter mora znati neko sink stablo koje je primjenljivo. Nekad je ova informacoje dostupna (rutiranje pomoću linkovanja) a nekad nije (rutiranje vektora udaljenosti)

Poslijednji broadcast algoritam je pokušaj aproksimacije ponašanja predhodnog, čak i kad ruteri neznaju ništa o spanning stablima. Ideja je nevjerovatno jednostavna kada se jednom ukaže na nju. Kada emitovani paket stigne na ruter, ruter provjerava da li je paket stigao linijom koja je predviđena za slanje paketa izvoru emitovanja. Ako je tako, onda postoji velika šansa da je paket sam pratio najbolju rutu od rutera i da je to prva kopija koja je stigla na ruter. U ovom slučaju ruter prosljeđuje kopije na sve linije osim na onu kojom je paket došao. Ako emitovani paket pristigne linijom koja nije preferirana za vezu sa izvorom paket se diskredituje kao vjerovatan duplikat.

30

Page 33: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Primjer algoritma zvanog (prosljeđivanje obrnutom stazom) prikazan je na slici 3.12. pod a) mreža, b) sink stablo za ruter I , c) kako algoritam radi.

a) b) c)

Slika 3.12. a) mreža b) spanning stablo c) rad algoritma

U prvom skoku I šalje paket za F, H, J i N što se vidi na slici. Svaki od ovih paketa stiže preferiranom putanjom do I što je prikazano krugom oko slova. U drugom skoku, 8 paketa je generisano, po 2 od svakog rutera koji je primio paket u prvom kolu. Kako se ispostavilo, svih 8 paketa je stiglo do prije neposjećenih rutera, ali je samo 5 stiglo preferiranom linijom. Od 6 paketa generisanih u trećem skoku, samo tri stižu preferiranom linijom (u C, E i K), dok su ostali duplikati. Poslje 5 skokova i 23 paketa, emitovanje završava, uporedimo sa 4 skoka i 14 paketa da je sink stablo praćeno tačno.

Osnovna prednost ovog algoritma je da je razumno efikasan i lako primjenljiv.

3.14. Multicast rutiranje

Često je neophodno da jedan član pošalje poruku svim ostalim članovima grupe. Ako je grupa mala možemo jednostavno poslati poruku od tačke-ka-tački. Ako je grupa velika ova strategija je skupa. Nekad možemo koristiti broadcasting, ali ovo korištenje da bi se informisalo 1000 mašina na mreži gdje imamo milionske priključke je neefikasno, jer većina prijemnika nije zaiteresovana za tu poruku. Zato trebamo nači da se poruka pošalje dobro definisanim grupama koje su brojno velike, ali male u odnosu na mrežu u cjelini.

Slanje poruka takvim grupama se zove multicasting, a algoritam za rutiranje je multicast rutiranje. U ovom odjeljku objasnit ćemo jedan način multicast rutiranja.

Važno je da ruter zna koji od hostova pripada kojoj grupi. Ili host mora informisati svoje rutere o promjenama u grupi ili ruteri moraju ispitivati svoje hostove periodićno. U svakom slućaju, ruteri saznaju koji je od njihovih hostova u kojoj grupi. Ruteri šalju poruke svojim susjedima, pa informacija napreduje kroz mrežu.

31

Page 34: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Da bi radili multicast rutiranje, svaki ruter računa spanning stablo pokrivajući sve ostale rutere u mreži. Npr. na slici 3.13. pod a) imamo mrežu sa dvije grupe 1 i 2. Neki ruteri su povezani sa hostovima koji pripadaju jednoj ili objema grupama kao na slici. Spanning stablo za ruter najviše lijevo prikazan je na slici 3.13. pod b)

Kada proces pošalje multicast paket grupi, prvi ruter proučava njegovo spanning stablo i obrezuje ga uklanjajući sve veze koje ne vode do hostova koji su članovi grupe. Za naš primjer, slika 3.13.pod c) pokazuje obrezano spanning tree za grupu 1. Na slici 3.13. pod d) prikazano je obrezano spanning stablo za grupu 2. Multicast paketi se prosljeđuju samo preko odgovarajućeg spanning stabla.

Slika 3.13. a) mreža b) spanning stablo za ruter najviše lijevo c) multicast stablo za grupu 1 d) multicast stablo za grupu 2

Postoje različiti načini obrezivanja spanning stabla. Najjednostavniji je ako je korišteni rutiranje pomoću linkovanja i svaki ruter je svjestan kompletne mrežne topologije, uključujući koji host pripada kojoj grupi. Onda se svako spanning stablo može obrezati počevši od kraja svake putanje i idući duž rute ostranjujući sve rutere koji ne pripadaju grupi koja je u pitanju.

Sa vektorskim rutiranjem daljine može se pratiti drugačija strategija obrezivanja. Osnovni algoritam je prosljeđivanje obrnutom stazom kako bilo, kad god ruteri bez hostova koji su zainteresovani za određenu grupu i bez veza sa drugim ruterima primi multicast poruku za tu grupu, odgovara sa prune porukom, govoreći pošiljaocu da mu nešalje više multicast-e za tu grupu. Kada ruter bez članova grupe među njegovim hostovima primi takvu poruku na svakoj svojoj liniji on takođe odgovara prune porukom. Na ovaj način se mreža rekurzivno obrezuje.

Jedan potencijalni nedostatak ovoga algoritma je da slabo skalira u velikim mrežama. Pretpostavimo da mreža ima n grupa, svaka sa prosječno m članova. Za svaku grupu, m obrezanih spanning stabala mora biti skladišteno za ukupno mn stabala.

32

Page 35: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

5. PRIMJERI ALGORITAMA ZA RUTIRANJE

Zadatak 1 :Neka se mrežom sa slike 5.1. vrši datagramski prenos podataka. Algoritam

rutiranja se bazira na minimalnom broju preskoka. Odrediti tabelu rutiranja za svaki čvor?

Slika 5.1.Odgovor:

za čvor: 1 za čvor: 3odredišni čvor naredni čvor odredišni čvor naredni čvor 2 2 1 1 3 3 2 1 ili 4 4 4 4 4 5 2 ili 4 5 4 ili 6 6 3 6 6

za čvor: 4 za čvor: 6 odredišni čvor naredni čvor odredišni čvor naredni čvor 1 1 1 3 2 2 2 5 3 3 3 3 5 5 4 3 ili 5 6 3 ili 5 5 5

za čvor: 2 za čvor: 5odredišni čvor naredni čvor odredišni čvor naredni čvor 1 1 1 2 ili 4 3 1 ili 4 2 2 4 4 3 4 ili 6 5 5 4 4 6 5 6 6

33

Page 36: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Zadatak 2:Neka se u mreži na slici 5.2. podatci prenose komutacijom paketa. Algoritam

rutiranja se bazira na minimalnoj cijeni prenosa. Za svaki čvor odrediti ruting tabelu?

Slika 5.2.

Odgovor:

za čvor: 2 za čvor: 3 odredišni čvor naredni čvor odredišni čvor naredni čvor 1 1 1 5 3 3 2 5 4 4 4 5 5 4 5 5 6 4 6 5

za čvor: 1 za čvor: 6odredišni čvor naredni čvor odredišni čvor naredni čvor 2 2 1 5 3 4 2 5 4 4 3 5 5 4 4 5 6 4 5 5

za čvor: 4 za čvor: 5 odredišni čvor naredni čvor odredišni čvor naredni čvor 1 2 1 4 2 2 2 4 3 5 3 3 5 5 4 4 6 5 6 6

34

Page 37: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Zadatak 3:Na slici 5.3. prikazana je mreža koja svoj princip rada bazira na komutaciji

paketa. Prenos podataka se zasniva na virtuelnom kolu. Na slici 5.3. takođe su prikazani identifikatori virtuelnog kola (VCI) za svaki od čvorova.Postoje slijedeća tri virtuelna kola:1. A-1-3-6-B čiji su odgovarajuću VCI-ovi označani sa 1,2,7 i 8 (tanka puna linija)2. A-1-3-4-5-D čiji su odgovarajuću VCI-ovi označani sa 5,3,4,5 i 2 (tačkasta linija)3. C-2-4-3-6-B VCI-ovi su označani sa 6,3,2,1 i 5 (isprekidana linija)Za svaki komutatorski čvor odrediti odgovarajuću ruting tabelu.

Slika 5.3.

Odgovor:

za čvor: 1 za čvor: 3dolazni č. VCI odlazni č. VCI dolazni č. VCI odlazni č VCI A 1 3 2 1 2 6 7 A 5 3 3 4 4 1 3 3 2 A 1 4 2 6 1 3 3 A 5 1 3 4 4 6 1 4 2

6 7 1 2

za čvor: 4 za čvor: 6 dolazni č. VCI odlazni č. VCI dolazni č. VCI odlazni č VCI 2 3 3 2 3 7 B 8 3 4 5 5 3 1 B 5 3 2 2 3 B 8 3 7 5 5 3 4 B 5 3 1

za čvor: 2 za čvor: 5dolazni č. VCI odlazni č. VCI dolazni č. VCI odlazni č VCI C 6 4 3 4 5 D 2 4 3 C 6 D 2 4 5

35

Page 38: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Zadatak 4:

Na slici 5.4. prikazana je mreža koju čine čvorovi R1 i R2 i hostovi čije se adrese nalaze u osegu od 0000 do 1111. Putevima povezivanja hostova i čvorova dodjeljene su brojke od 1 do 5. Odrediti sadržaj ruting tabela za čvorove R1 i R2.

Slika 5.4.Odgovor

Ruting tabele čvorova R1 i R2 su:

Čvor R1 Čvor R2

36

00 101 310 211 3

00 301 410 311 5

Page 39: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Zadatak 5:

Tehnika prenosa podataka sa komutacijom paketa se često zasniva na konceptu virtuelnog kola. Jedna takva mreža je data ne slici 5.5., a čine je 4 komutatora SWi (i=1...4). Usmjeravanje poruka kroz mrežu vrši se shodno VCI tabelama koje su od strane administratora mreže upisane u svakom od komutatora. Popuniti tabele za svaki komutator koji učestvuje u prenosu podataka od hosta A do hosta B i od hosta C do hosta D?

Slika 5.5.

OdgovorTabela za SW1

ulazni interfejs ulazni VCI izlazni interfejs izlazni VCI A-B: 2 5 1 11

Tabela za SW2

ulazni interfejs ulazni VCI izlazni interfejs izlazni VCI A-B: 3 11 0 7 C-D: 0 7 1 8

Tabela za SW3

ulazni interfejs ulazni VCI izlazni interfejs izlazni VCI A-B: 0 7 3 4 C-D: 1 9 0 7

Tabela za SW4

ulazni interfejs ulazni VCI izlazni interfejs izlazni VCI C-D: 2 8 3 10

37

Page 40: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Zadatak 6:

Na slici 5.6. prikazana je mreža za prenos datagrama. Princip prenosa se zasniva na: svaki paket sadrži dovoljno informacija koje omogućavaju komutatoru da usmjeri poruku ka odredištu. Da bi odlučio kako da proslijedi paket, komutator konsultuje svoju tabelu proslijeđivanja. Odrediti sadržaj tabele proslijeđivanja za komutatore K1, K2 i K3.

odgovor

Komutator K1 Komutator K2 Komutator K3

odredište port odredište port odredište port A 2 A 3 A 0 B 1 B 0 B 3 C 3 C 3 C 0 D 0 D 3 D 0 E 1 E 2 E 0 F 1 F 1 F 0 G 1 G 0 G 1 H 1 H 0 H 2

38

Page 41: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

DODATAK

A: Proizvoljno rutiranje

Proizvoljno (slučajno) rutiranje karakteriše jednostavnost i robusnost tehnike plavljenja, ali uz značajno manji saobraćaj. Kod proizvoljnog rutiranja čvor odabira samo jedan izlazni put za proslijeđivanje paketa. Izlazni link se bira proizvoljno, isključujući link po kome je paket stigao. Ako je za sve linkove vjerovatnoća da budu izabrani ista, tada čvor jednostavno odabira izlazni link po principu round-robin tehnike.

Nešto bolja tehnika predstavlja dodjelu vjerovatnoće svakom izlaznom linku i odabiranje tog linka se vrši na osnovu te vjerovatnoće. Vjerovatnoća se može bazirati na brzini prenosa podataka, pa na osnovu toga važi sljedeća relacija:

Pi = Ri /(ΣjRj)gdje je: Pi - vjerovatnoća odabiranja linka i, Ri - brzina prenosa podataka po linku i.

Sumiranje se vrši po svim mogućim izlaznim linkovima. Na ovaj način se obezbjeđuje dobra distribucija saobraćaja. Ove vjerovatnooće se mogu zasnivati i na fiksnim cijenama linkova.

Slično kao i kod plavljenja nije potrebno koristiti informaciju o mreži. S obzirom da se ruta bira proizvoljno (slučajno) stvarna ruta sigurno neće biti ruta sa najnižom cijenom, niti ruta sa minimalnim brojem preskoka. Zbog toga mreža mora da podržava nešto veći intenzitet saobraćaja od optimalnog, ali ne tako intenzivan kao kod tehnike plavljenja.

Slika 3.6. Proizvoljno rutiranje

39

Page 42: Agoritmi za rutiranje

Algoritmi za rutiranje - Mrkaja Mladen

Kod računarske mreže prikazane na slici postoje dva komutatoraska čvora A i B, koji komutiraju poruke na virtuelnom putu. Poruke (ćelije od 53 bajta) koje dolaze u ATM-ov komutator A od hosta 1 imaju slijedeće UNI zaglavlje (prva četiri bajta). Mrežna topologija u tabeli rutiranja za komutatore je:

VPIin VPIout 7 0

VPIin VPIout 3 2 6 7 0 1 bajtovi 8 7 6 5 4 3 2 1

123

4

40Algoritmi za rutiranje - Mrkaja Mladen

1 1 0 0 0 0 0 00 1 1 1 0 0 0 00 0 0 0 0 0 1 10 0 0 0 0 0 0 0

A BHost1

Page 43: Agoritmi za rutiranje

B: Dijkstra's algoritam izračunavanja najkraćeg puta

#define MAX_NODES 1024 /* maximalan br. čvorova */#define INFINITY 10000000 /* veći br. nego svaka max. putanja */int n, dist[MAX_NODES] [MAX_NODES]; /* dist[i][j] je udaljenost od i do j */

void shortest_path(int s, int t, int path []){struct state { int predecessor; /* predhodni čvor */ int lenght; /* dužina od izvorišta do odredišta */ enum {permanent, tentative} label; /* označeno stanje */ } state [MAX_NODES];

int i, k, min; struct state * p; for (p=&state[0]; p<&state[n];p++){ /* početno stanje */ p-> predecessor= -1; p-> lenght = INFINITY; p-> label = tentative; } state[t]. lenght=0; state[t].label = permanent; k=t; /* k je početni radni čvor */ do{ /* Postoji li bolja putanja od k */ for (i=0; i < n; i++) /* Ovaj graf ima n čvorova */ if (dist[k][i]!=0&& state[i].label= = tentative){ if (state[k].lenght+dist[k][i]<state[i].lenght){ state[i].predecessor=k; state[i].lenght = state[k].lenght + dist[k][i]; } }

/* Naći proizvoljno označen čvor sa najmanjom oznakom. */ k=0; min = INFINITY; for (i=0; ; i < n; i++) if (state[i].label = = tentative && state[i].lenght<min){ min = state[i].lenght; k=i; } state[k].label = permanent; } while (k!=s);

/* Kopirati putanje u izlazni niz */ i=0; k=s; do {path[i++]=k; k= state[k].predecessor;} while (k>=0);}

41Algoritmi za rutiranje - Mrkaja Mladen

Page 44: Agoritmi za rutiranje

LITERATURA

1. ANDREW S. TANENBAUM : Computer Networks, 3th edition, University of Amsterdam, Holand

2. JAMES F. KUROSE: Computer Networking A Top- Down Approoch Feataring the Internet , University of Massachusetts, Amferst

3. MILE STOJČEV: Prenos Podataka, Univerzitet u Nišu

4. TERRY WILLIAM OGLETREE: Nadgradnja i popravka mreža, treće izdanje.

5. Internet

42

Page 45: Agoritmi za rutiranje