5.4. Mrežni sloj - rt-rk.uns.ac.rs · 5.4.5. Rutiranje i prosleđivanje podataka u ZigBee mreži...
Transcript of 5.4. Mrežni sloj - rt-rk.uns.ac.rs · 5.4.5. Rutiranje i prosleđivanje podataka u ZigBee mreži...
-
87
5.4. Mrežni sloj
Funkcije mrežnog sloja definisane su Zigbee specifikacijom. Zadaci mrežnog sloja su
formiranje mreže, priključivanje i isključivanje uređaja iz mreže, otkrivanje suseda i čuvanje
informacije o susedima, otkrivanje putanja između uređaja, održavanje tabele rutiranja,
usmeravanje (rutiranje) okvira, itd.
5.4.1. Tipovi uređaja u Zigbee mreži
Standard razlikuje tri tipa uređaja: koordinator mreže, ruter i krajnji uređaj - Slika 125.
Koordinator mreže i ruteri moraju biti FFD 802.15.4 uređaji, dok krajnji uređaj može biti RFD.
Krajnji uređaj može da pristupa postojećoj mreži, da je napušta, kao i da šalje i prima
podatke. On nema nikakvu informaciju o topologiji mreže, već samo komunicira sa uređajima u
svom dometu.
Ruter može dozvoliti uređajima da pristupe postojećoj mreži ili da je napuste. Takođe, on
održava i listu suseda i aktivno učestvuje u dodeli lokalnih adresa krajnim uređajima. Ruter ne može
formirati novu mrežu.
Koordinator mreže može da formira novu mrežu, a podržava i sve funkcije koje inače imaju
ruteri.
5.4.2. Lista suseda
Koordinator i ruteri održavaju listu suseda, tj. tabelu sa informacijama o svim uređajima koje
su registrovali u svom dometu. Za svaki uređaj u svom dometu oni čuvaju sledeće informacije:
PAN ID mreže u kojoj se uređaj nalazi
Mrežnu (kratku) adresu
Tip uređaja (koordinator, ruter, krajnji uređaj)
Odnos koji imaju sa tim uređajem u mrežnoj topologiji (roditelj, dete, nekadašnje dete, isti nivo u mreži)
Za uređaje roditelje i decu u mrežnoj topologiji, čuva se i dugačka adresa (MAC adresa).
Opciono, za svaki uređaj može se čuvati i sledeće:
Informacija da li dozvoljava povezivanje novih uređaja
Da li je potencijalni roditelj
Koja mu je dubina u stablu mreže (udaljenost od koordinatora)
Da li je došlo do greške u prenosu okvira ka tom uređaju.
5.4.3. Adresiranje
Zigbee mrežni sloj koristi takozvano distribuirano adresiranje. Svakom ruteru u mreži
dodeljuje se neki blok adresa koje on može dodeliti svojoj deci. Svakom ruteru i dodeljuje se blok
veličine . Veličina ovog bloka zavisi od dubine rutera u mreži , kao i parametara koji se
postavljaju na nivou čitave mreže: maksimalan broj dece za svaki uređaj , maksimalan broj dece koja su ruteri , maksimalna dubina mreže . Slika 147. ilustruje adresiranje u mreži sa parametrima , i . Svaki uređaj prvo rezerviše blokove adresa za svoju decu-rutere, a tek onda dodeljuje adrese krajnjim uređajima.
-
88
Slika 147. Adresiranje u Zigbee mreži
Ovaj način adresiranja olakšava usmeravanje paketa u Zigbee mreži, ali može biti izvor
problema pri priključivanju uređaja u mrežu. Naime, može se lako dogoditi da neki ruter istroši
raspoložive adrese, tako da više ne može priključivati uređaje u mrežu. U tom slučaju, uređaj koji
želi da se uključi mora tražiti drugi ruter u svom dometu, ili se neće moći konektovati uopšte.
5.4.4. Format jedinice podataka
Okviri mrežnog sloja imaju oblik predstavljen na slici Slika 148.
Octets:2 2 2 1 1 variable
Frame
payload
Frame
control
Destination
Address
Source
AddressRadius
Sequence
Number
Slika 148. Format okvira mrežnog sloja
-
89
Polje za kontrolu okvira (frame control) sadrži informacije o tipu okvira i načinu otkrivanja
putanje za taj okvir (može biti obavezno, moguće ili zabranjeno otkrivanje).
Adrese odredišta i izvora su kratke, PAN adrese uređaja, od 16 bita.
Polje radijus (radius) koristi se kod broadcast prenosa, kako bi se kontrolisalo do koje
dubine u mreži se poruka šalje. Svaki uređaj koji prosledi broadcast okvir dekrementira radijus za
1. Dalje prosleđivanje se prekida kada ova vrednost padne na 0.
Broj sekvence, u kombinaciji sa adresom izvora, koristi se da bi se jedinstveno identifikovao
broadcast okvir.
5.4.5. Rutiranje i prosleđivanje podataka u ZigBee mreži
Mrežni sloj treba da omogući da se podaci prenesu i između čvorova koji nisu direktni
susedi u mreži. Protokol za rutiranje zadužen je za otkrivanje putanja u mreži. Informacija o
putanjama čuva se u tabeli rutiranja, u čvorovima koji imaju funkciju rutera. Na osnovu informacije
iz tabele rutiranja, u svakom čvoru se vrši dalje usmeravanje okvira.
i) Rutiranje u stablu (Cluster-Tree algoritam)
Rutiranje u stablu vrši se na osnovu dodeljenih adresa, s obzirom na to da određeni blokovi
adresa pripadaju određenim ruterima u mreži. Čvor koji primi neki okvir proverava odredište za taj
okvir. Ukoliko zaključi da je on sam odredište, sadržaj okvira se prosleđuje ka aplikativnom sloju.
U suprotnom, čvor proverava da li je odredište neko njegovo dete, tj. da li je odredišna adresa iz
njemu dodeljenog bloka adresa. Ako je to slučaj, okvir se usmerava ka odgovarajućem detetu, koje
ga prema potrebi može dalje proslediti. Ako pak odredište nije među decom čvora koji je primio
okvir, on okvir usmerava ka svom roditelju.
Na primer, posmatrajmo slanje paketa od čvora 38 do čvora 45 u mreži sa slike Slika 147.
Čvor 38 nema nikakvu informaciju o topologiji mreže. Njegov roditelj, čvor 33 prima okvir, i
zaključuje da se odredišni čvor 45 ne nalazi među njegovom decom. Stoga usmerava okvir ka svom
roditelju, čvoru 32. Ovaj čvor zaključuje da se čvor 45 nalazi među decom čvora 40, tako da ka
njemu usmerava okvir. Konačno, čvor 40 prosleđuje okvir do krajnjeg odredišta 45.
ii) Rutiranje u meš mreži (Ad-Hoc On Demand Vector, AODV)
AODV algoritam za rutiranje je kompleksniji, ali se može koristiti i u mrežama u kojima nije
primenjen distribuirani metod adresiranja. Takođe, čak i u slučajevima kada je distribuirano
adresiranje primenjeno, AODV omogućava da se paketi rutiraju najkraćom putanjom, bez potrebe
da se šalju kroz stablo do prvog zajedničkog pretka za izvorišni i odredišni čvor. U ovom slučaju,
ne postoji stablo rutera u mreži, već su oni svi međusobno jednaki (peer-ovi), i mogu da razmenjuju
podatke ukoliko su jedan drugom u dometu.
Za svako odredište, ruter čuva informaciju o tome koji je sledeći čvor na putanji, tj. ka kome
treba da prosledi okvir. Ukoliko ruter nema informaciju o putanji za primljeni okvir, on inicira
otkrivanje putanje. Otkrivanje putanje mora se vršiti za svaki smer ponaosob, jer ruteri čuvaju samo
informaciju o sledećem čvoru na putanji, a ne i o prethodnom.
Ako prilikom prosleđivanja okvira dođe do greške pri prenosu, signalizira se da je neka
putanja nevalidna i to inicira proces ponovnog otkrivanja putanje. Recimo, unošenje prepreke na
slici Slika 149. prouzrokuje preračunavanje nove putanje između čvorova 1 i 3. Na ovaj način,
prepreka se uspešno zaobilazi, što se ne bi moglo postići sa rutiranjem u stablu.
-
90
Slika 149. Promena putanje usled prepreke
Čvor koji želi da sazna putanju ka nekom odredištu kojeg nema u tabeli rutiranja iniciraće
proces otkrivanja putanje. Na primer, pretpostavimo da čvor 1 želi da pošalje nešto čvoru 10 na slici
Slika 150. Ovaj čvor vrši broadcast komandnog okvira za otkrivanje rute, u kome navodi koji je
čvor do koga se putanja traži. Svim linkovima u mreži dodeljena je cena (broj od 0 do 7), koja
ukazuje na kvalitet linka. Tokom prosleđivanja okvira za otkrivanje rute, akumulira se cena svake
putanje kojom se broadcast okviri kreću, dok se ne stigne do rutera kome je okvir namenjen, ili
među čijom se decom nalazi krajnji uređaj kome je okvir namenjen.
Slika 150. Otkrivanje putanje – slanje zahteva
Odredišni čvor 10 sačekaće dovoljno dugo, tako da može da primi zahtev za otkrivanje rute
po svim mogućim putanjama. Odabraće onu putanju na kojoj je najmanja akumulirana cena, i po toj
putanji usmeriće odgovor na zahtev za otkrivanje rute. Pretpostavićemo u primeru da su sve cene
međusobno jednake, tako da se odabira putanja preko čvora 5 - Slika 151. Odgovor se šalje direktno
-
91
čvoru koji je inicirao proces otkrivanja putanje. Prilikom prosleđivanja odgovora, ostali čvorovi na
putanji ažuriraju svoju tabelu rutiranja.
Slika 151. Otkrivanje putanje – slanje odgovora
Jednom zabeležena putanja ostaje aktivna sve do započinjanja sledećeg procesa otkrivanja,
ili detektovanja greške pri prenosu (nema automatskog preračunavanja putanja pri promeni mrežne
topologije). Ako neki čvor ne može da pošalje okvir odgovarajućom putanjom, on o tome
obaveštava izvorišni čvor, slanjem komandnog okvira koji signalizira grešku na putanji. Nakon toga
izvor ponovo započinje poroces otkrivanja putanje.
Češće otkrivanje putanje može se pokrenuti sa aplikativnog sloja, ali troši mrežne resurse i
vreme, stoga se retko koristi ova opcija.
Tabela rutiranja obično sadrži 6-20 unosa. Svaki unos sastoji se od adrese odredišta, adrese
sledećeg rutera na putanji i cene do odredišta - Slika 152. Ako se tabela rutiranja u nekom ruteru
napuni, taj ruter više ne učestvuje u procesu otkrivanja putanje.
Slika 152. Tabela rutiranja
-
92
iii) Rutiranje od izvora (Source routing)
U ovom slučaju, čitava putanja poznata je izvoru okvira, i sadržana u zaglavlju okvira koji se
šalje. Ovaj mehanizam rutiranja retko se koristi, ali omogućava da tabelu rutiranja održavaju samo
pojedini čvorovi, a ne svi ruteri u mreži.
5.4.6. Uspostavljanje mreže
Proces formiranja nove mreže može započeti samo koordinator. Koraci su predstavljeni na
slici Slika 153.
Slika 153. Uspostavljanje Zigbee mreže
1) Skeniranje energije – Koordinator prvo izvršava skeniranje energije u različitim kanalima na MAC sloju. Na osnovu rezultata merenja, formira se uređena lista kanala, u kojima je
aktivnost ispod određenog praga. Ovi kanali predstavljaju kandidate za kanal na kome će
biti uspostavljena nova mreža.
2) Aktivno skeniranje – Pošto je završeno skeniranje energije, koordinator izvršava proceduru aktivnog skeniranja mreže na MAC sloju. Proverava se broj aktivnih PAN
mreža u kanalima sa liste kandidata.
3) Odabiranje kanala – Odabira se onaj kanal u kome je broj aktivnih mreža najmanji, odnosno najmanja energija.
4) Odabiranje PAN ID-a – Koristi se PAN ID zadat sa aplikativnog sloja, ako nije u konfliktu sa postojećim mrežama. U suprotnom, slučajno se odabira novi PAN ID.
5) Dodela mrežne adrese – Koordinator dobija mrežnu adresu 0x0000, i ona odgovara njegovoj kratkoj adresi na MAC sloju.
-
93
5.4.7. Priključivanje mreži
Dozvola pristupa može se koordinisati na nivou cele mreže, tj. može biti dozvoljeno
dodavanje uređaja od strane koordinatora ali ne i rutera na primer, ili obrnuto - Slika 154. U Zigbee
mreži može biti i do 31000 uređaja.
Slika 154. Kontrola pristupa
Uređaj se u postojeću mrežu može priključiti na sopstveni zahtev (slanjem zahteva za
asocijaciju sa MAC sloja), ili će ga roditelj sam priključiti ukoliko to od njega zahteva aplikacija.
Uređaj može biti priključen u mrežu na neko tačno određeno, ili na neodređeno vreme. Po isteku
vremena, ili gubitku sinhronizacije sa roditeljem, uređaj može započeti proces ponovnog
priključivanja.
i) Priključivanje uređaja u mrežu na sopstveni zahtev
Uređaj koji želi da se priključi u postojeću Zigbee mrežu, prvo obavlja skeniranje mreže,
kako bi sačinio listu raspoloživih mreža u svom okruženju. Informacije o raspoloživim mrežama on
prosleđuje svom aplikativnom sloju, koji donosi odluku o mreži na koju će se uređaj pokušati da
priključi. Zatim se na mrežnom sloju uređaja odabira roditelj – bira se uređaj u dometu koji
dozvoljava asocijaciju, i koji ima cenu linka manju od 3. Tom uređaju šalje se zahtev za asocijaciju
na MAC sloju - Slika 155.
Roditelj po prijemu zahteva za asocijaciju proverava da li taj uređaj ima pravo pristupa, kao i
da li je već bio u mreži u kojoj se roditelj nalazi. Ako je već bio u mreži, dodeljuje mu se adresa iz
liste suseda. Ako ne, generiše se nova adresa i beleži u listu suseda. Nakon toga, šalje se odgovor na
zahtev za asocijaciju, koji sadrži dodeljenu adresu uređaja u PAN mreži.
ii) Priključivanje uređaja po gubitku roditelja ili na zahtev aplikacije
Procedura koja se primenjuje u slučaju gubitka veze sa roditeljem je ista kao i ona u kojoj
sam roditelj uključuje uređaj u mrežu na osnovu zahteva koji dolazi sa aplikativnog sloja. Naime,
uređaj mora prijaviti gubitak roditelja (orphaning) potencijalnom roditelju - Slika 157, nakon čega
će onaj roditelj kod koga se uređaj već nalazio u mreži, ili je aplikativni sloj dozvolio konektovanje
uređaja, poslati odgovarajući odgovor za poravnanje sa koordinatorom - Slika 158.
-
94
Slika 155. Priključivanje mreži na zahtev uređaja – strana uređaja
Slika 156. Priključivanje mreži na zahtev uređaja – strana roditelja
-
95
Slika 157. Slanje obaveštenja o gubitku roditelja
Slika 158. Slanje poravnanja sa koordinatorom
5.4.8. Napuštanje mreže
Uređaj može odlučiti da napusti mrežu sam, ili je napušta na zahtev svog roditelja. Ruter koji
napušta mrežu šalje komandni okvir mrežnog sloja za napuštanje mreže. Ovaj okvir može biti samo
obaveštenje, na osnovu koga deca rutera treba da ažuriraju listu suseda. Međutim, ruter može
poslati i zahtev da dete napusti mrežu i pokrene proceduru uklanjanja svoje dece iz mreže.
Po prijemu okvira za napuštanje mreže, roditelj uređaja koji napušta mrežu ažurira listu
svojih suseda.