OLSR ( Optimized Link-State Routing ) on MANETin reititysprotokolla , jota voidaan käyttää myös muissa langattomissa verkoissa. OLSR on ennakoiva reititysprotokolla, joka käyttää hello- ja topologian ohjausviestejä verkon topologiatietojen hankkimiseen. Solmut käyttävät tätä tietoa määrittääkseen seuraavan hypyn reititetyn paketin polulla. Se on yksi suosituimmista langattomien MANET-verkkojen reitittämiseen käytetyistä protokollista [1] .
OLSR perustuu yleislähetysmekanismiin verkon topologiatietojen päivittämiseen . Protokollan ominaisuus on, että tämä tieto on verkon jokaisen solmun tiedossa. OLSR:ssä isäntä lähettää niin kutsutun HELLO-viestin. Solmut havaitsevat verkon topologian muutokset käyttämällä naapureista vastaanotettuja HELLO-viestejä. Nämä viestit sisältävät tämän ilmoituksen lähettäneen solmun oman osoitteen sekä luettelon kaikista sen käytettävissä olevista naapureista, niiden osoitteista, jotka osoittavat yhteyden tyypin (symmetrinen tai epäsymmetrinen). Siten solmu ilmoittaa naapureilleen käytettävissä olevista yhteyksistä. Jokainen tilaaja tallentaa tiedot yhden (naapureista) [2] ja kahden hypyn naapureistaan (kaksi hyppynaapureista) [3] . HELLO-viestit lähetetään tietyin väliajoin. Jos solmu ei tietyn ajan sisällä saa HELLO-viestiä naapuriltaan, yhteyden siihen katsotaan katkenneen. Vastaava muutos tehdään tilaajan verkkotopologiataulukkoon.
Kaiken muun verkon lisäksi solmut lähettävät ajoittain TC-sanoman (topologian ohjaus). Tämä viesti sisältää tietoja tilaajan yhteydestä yhden hypyn naapureihin. TS- ja HELLO-sanomista saatujen tietojen perusteella solmu rakentaa kaavion, joka kuvaa ajatusta verkon rakentamisesta tälle solmulle. Tämän kaavion avulla muodostetaan taulukko lyhyimmistä reiteistä tiedonsiirtoon kuhunkin solmuun.
Ilmeisesti tässä solmujen välisen viestinnän organisointimenetelmässä on merkittävä haittapuoli. Luonnollinen tilanne on, kun kahden hypyn naapuri voi olla yksihyppyinen lähettävän solmun kahdelle tai useammalle yhden hypyn naapurille. Tällöin syntyy tilanne, jossa kahden hypyn naapuri saa saman HELLO-viestin useita kertoja. Tällaisten tilanteiden ratkaisemiseksi OLSR tarjoaa menetelmän verkon tilatietojen jakelun optimoimiseksi Multipoint Relay (MPR). Verkkotopologiataulukon mukaan solmu valitsee sellaiset yhden hypyn naapurit, joilla on symmetrinen yhteys, jotka ovat tämän solmun ainakin yhden kahden hypyn naapuria. Tällä menetelmällä voit vähentää lähetysliikennettä [4] .
Kaavassa IP- ja UDP-otsikot on jätetty pois.
0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | kymmenen | yksitoista | 12 | 13 | neljätoista | viisitoista | 16 | 17 | kahdeksantoista | 19 | kaksikymmentä | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | kolmekymmentä | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
paketin pituus | paketin järjestysnumero | ||||||||||||||||||||||||||||||
viestin otsikko | |||||||||||||||||||||||||||||||
Viesti | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
viestin otsikko | |||||||||||||||||||||||||||||||
Viesti |
0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | kymmenen | yksitoista | 12 | 13 | neljätoista | viisitoista | 16 | 17 | kahdeksantoista | 19 | kaksikymmentä | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | kolmekymmentä | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
viestin tyyppi | Vtime | viestin koko | |||||||||||||||||||||||||||||
Aloittajan osoite | |||||||||||||||||||||||||||||||
Aika elää | Humalaluku | Viestin järjestysnumero | |||||||||||||||||||||||||||||
Viesti |
HELLO-viestejä käytetään nykyisen verkkokokoonpanon selventämiseen. Lähetetään määräajoin.
0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | kymmenen | yksitoista | 12 | 13 | neljätoista | viisitoista | 16 | 17 | kahdeksantoista | 19 | kaksikymmentä | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | kolmekymmentä | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
varattu | Htime | Halukkuus | |||||||||||||||||||||||||||||
Linkin koodi | varattu | Linkin viestin koko | |||||||||||||||||||||||||||||
Naapurin osoite | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
varattu | Htime | Halukkuus | |||||||||||||||||||||||||||||
Linkin koodi | varattu | Linkin viestin koko | |||||||||||||||||||||||||||||
Naapurin osoite | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
Naapurin osoite |
Varattujen bittien on oltava 0, jotta ne ovat määrityksen mukaisia.
Htime ( Hei päästöväli ) HELLO-viestien lähetystiheys. Halukkuus Solmun valmius välittää vastaanotetut viestit edelleen. Voi ottaa arvon 0 (WILL_NEVER, ei lähetä) 7 (WILL_ALWAYS, lähettää aina), mukaan lukien. Arvo voi muuttua solmun tilasta riippuen, eli jos laite toimii akulla, se voi alentaa käytettävyyttä akun heikentyessä. Linkin koodi Luonnehtii tämän solmun myöhempää luetteloa naapureista. Määrityksen mukaan sen on oltava pienempi kuin 16 ja sen tulee sisältää kaksi kahden bitin kenttää7 | 6 | 5 | neljä | 3 | 2 | yksi | 0 |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | Naapurin tyyppi | Linkin tyyppi |
Käytetään välittämään tietoa solmun MPR-naapureista.
0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | kymmenen | yksitoista | 12 | 13 | neljätoista | viisitoista | 16 | 17 | kahdeksantoista | 19 | kaksikymmentä | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | kolmekymmentä | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ANSN | varattu | ||||||||||||||||||||||||||||||
Naapurin osoite | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
Naapurin osoite |