OLSR ( Optimized Link-State Routing ) är ett routingprotokoll för MANET som även kan användas i andra trådlösa nätverk. OLSR är ett proaktivt routningsprotokoll som använder hej och topologikontrollmeddelanden för att erhålla nätverkstopologiinformation. Noderna använder denna information för att bestämma nästa hopp i det dirigerade paketets väg. Det är ett av de mest populära protokollen som används för routing i trådlösa MANET-nätverk [1] .
OLSR är baserat på en sändningsmekanism för uppdatering av nätverkstopologiinformation . En egenskap hos protokollet är att denna information är känd för varje nod i nätverket. I OLSR skickar värden ett så kallat HELLO-meddelande. Förändringar i nätverkstopologi upptäcks av noder som använder mottagna HELLO-meddelanden från grannar. Dessa meddelanden innehåller den egna adressen till noden som skickade detta meddelande, såväl som en lista över alla dess tillgängliga grannar, deras adresser, som anger typen av anslutning (symmetrisk eller asymmetrisk). Således informerar noden sina grannar om de anslutningar som är tillgängliga för den. Varje abonnent lagrar information om sina en- (grannar) [2] och två-hop grannar (två-hop grannar) [3] . HEJ meddelanden skickas med ett angivet intervall. Om noden inom en viss tid inte tar emot ett HELLO-meddelande från en granne, anses anslutningen till den vara bruten. Motsvarande ändring görs i abonnentens nättopologitabell.
Utöver allt annat på nätverket sänder noder med jämna mellanrum ett TC-meddelande (topologikontroll). Detta meddelande innehåller information om abonnentens anslutning till en-hop-grannar. Baserat på informationen som tas emot från TS- och HELLO-meddelandena bygger noden en graf som beskriver idén att bygga ett nätverk för denna nod. Med hjälp av denna graf byggs en tabell över de kortaste vägarna för informationsöverföring till varje nod.
Uppenbarligen finns det en betydande nackdel med denna metod för att organisera kommunikation mellan noder. En naturlig situation är när en granne med två hopp kan vara ett hopp för två eller flera grannar med ett hopp till den sändande noden. Då kommer en situation att skapas där två-hop-grannen kommer att få samma HELLO-meddelande flera gånger. För att hantera sådana situationer tillhandahåller OLSR en metod för att optimera distributionen av nätverksstatusinformation Multipoint Relay (MPR). Enligt nätverkstopologitabellen väljer noden sådana etthoppsgrannar med en symmetrisk anslutning som är enhoppsgrannar till åtminstone en tvåhoppsgranne till denna nod. Denna metod låter dig minska broadcast-trafiken [4] .
I schemat har IP- och UDP-rubrikerna utelämnats.
0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | tio | elva | 12 | 13 | fjorton | femton | 16 | 17 | arton | 19 | tjugo | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | trettio | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
paketets längd | paketsekvensnummer | ||||||||||||||||||||||||||||||
rubriken på meddelandet | |||||||||||||||||||||||||||||||
Meddelande | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
rubriken på meddelandet | |||||||||||||||||||||||||||||||
Meddelande |
0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | tio | elva | 12 | 13 | fjorton | femton | 16 | 17 | arton | 19 | tjugo | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | trettio | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
meddelandetyp | Vtime | meddelandestorlek | |||||||||||||||||||||||||||||
Upphovsmans adress | |||||||||||||||||||||||||||||||
Tid att leva | Hoppräkning | Meddelandesekvensnummer | |||||||||||||||||||||||||||||
Meddelande |
HELLO-meddelanden används för att förtydliga den aktuella nätverkskonfigurationen. Skickas med jämna mellanrum.
0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | tio | elva | 12 | 13 | fjorton | femton | 16 | 17 | arton | 19 | tjugo | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | trettio | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
reserverad | Htime | Villighet | |||||||||||||||||||||||||||||
Länkkod | reserverad | Länkmeddelandestorlek | |||||||||||||||||||||||||||||
Grannens adress | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
reserverad | Htime | Villighet | |||||||||||||||||||||||||||||
Länkkod | reserverad | Länkmeddelandestorlek | |||||||||||||||||||||||||||||
Grannens adress | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
Grannens adress |
Reserverade bitar måste vara 0 för att överensstämma med specifikationen.
Htime ( Hej emissionsintervall ) Frekvens för att skicka HELLO-meddelanden. Villighet Nodens beredskap att vidarebefordra mottagna meddelanden. Kan ta ett värde från 0 (WILL_NEVER, kommer inte att sända) till 7 (WILL_ALWAYS, kommer alltid att sända), inklusive. Värdet kan ändras beroende på nodens tillstånd, det vill säga om enheten körs på batteri kan det minska tillgänglighetsnivån när batteriet minskar. Länkkod Karakteriserar den efterföljande listan över grannar till denna nod. Enligt specifikationen måste den vara mindre än 16 och måste innehålla två fält med två bitar vardera7 | 6 | 5 | fyra | 3 | 2 | ett | 0 |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | Typ granne | Länktyp |
Används för att förmedla information om nodens MPR-grannar.
0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | tio | elva | 12 | 13 | fjorton | femton | 16 | 17 | arton | 19 | tjugo | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | trettio | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ANSN | reserverad | ||||||||||||||||||||||||||||||
Grannens adress | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
Grannens adress |