DSR

Dynamic Source Routing (DSR) er en routingprotokol til MANET med en mesh - topologi . Svarende til AODV ved, at den også genererer en rute efter behov ved at sende en udsendelsesanmodning. Den bruger dog eksplicit routing uden at stole på routingtabellerne på hver mellemliggende enhed. Derudover er der foretaget mange efterfølgende instansieringer til DSR, herunder DSR-Flow (en hybrid af Explicit Routing og Table Routing).

Eksplicit angivelse af en rute kræver akkumulering af adresserne på hver enhed mellem kilden og destinationen, efterhånden som den slås op. Oplysninger om den akkumulerede sti opdateres af de noder, der behandler udsendelsesanmodninger fra kilden. Stierne lært på denne måde bruges til at rute pakkerne. Som følge heraf indeholder rutede pakker adressen på hver enhed, de passerede igennem. På grund af stigningen i pakkeheadere kan dette føre til overheadtrafik for lange stier eller store adresser, som i IPv6 . For sådanne situationer definerer DSR-Flow en "flow-id"-indstilling, der tillader, at pakker sendes i henhold til routingtabeller (den kan aktiveres for fjerne ruter).

Takket være den eksplicitte indstilling af ruter bliver al information om dem løbende opdateret af mobile noder (så længe data flyder gennem dem). Dette undgår behovet for periodiske rutetjek (i modsætning til AODV ). Som et resultat er kun søge- og supportfaserne tilbage. Under alle omstændigheder genereres ruten kun, hvis anmodningsmeddelelsen har nået den tilsigtede destinationsknude (som svar tilføjes kæden af ​​knudepunkter, der er akkumuleret i anmodningen).

For at sende et svar på en anmodning skal destinationsknuden have en rute til kildenoden. Hvis ruten var i cachen, ville den cachelagde post blive brugt. Ellers vil ruten til kildenoden blive bestemt baseret på stien til anmodningspakken, der er gemt i kæden (dette kræver, at alle links i netværket er symmetriske). I tilfælde af en vellykket transmission af svaret initialiseres support, ved hjælp af hvilken pakker, der annoncerer en transmissionsfejl, vil blive taget i betragtning af noden. Som et resultat vil det beskadigede link blive fjernet fra nodens rutecache, ligesom alle ruter, der indeholder dette link. Fasen med at finde en ny levedygtig vej vil derefter blive genoptaget.

Dynamic Source Routing (DSR) on Demand blev designet til at reducere den trafik, der forbruges af kontrolpakker i trådløse netværk ved at eliminere de tabelopdateringsmeddelelser , der kræves i den tabelbaserede routingtilgang. Hovedforskellen mellem denne og andre reaktive routingprotokoller er, at den mangler "beacons" og derfor ikke kræver den periodiske transmission af en hej-pakke, som bruges af en node til at informere naboer om dens tilstedeværelse. Den grundlæggende tilgang til denne protokol (såvel som andre reaktive routingprotokoller) er, at under rutekonstruktionsfasen etablerer en node en rute ved at udsende RouteRequest-pakker over netværket. Destinationsnoden, når den modtager en RouteRequest-pakke, reagerer ved at sende en RouteRequest-pakke tilbage til kilden, der bærer ruten, som den modtagne RouteRequest-pakke har gennemgået.

Overvej en kildenode, der ikke har nogen rute til destinationen. Når den har datapakker, der skal sendes til destinationen, initialiserer den en RouteRequest-pakke, der forplanter sig gennem netværket. Hver node, efter at have modtaget RouteRequest-pakken, gentransmitterer pakken til sine naboer (hvis den ikke allerede har transmitteret, da en kopi af pakken kan komme til den fra en anden node), forudsat at noden ikke er destinationen, og at pakken tid til at leve ( TTL ) er ikke blev overskredet. Hver RouteRequest har et sekvensnummer genereret af kildenoden og de knudepunkter, som den passerede igennem. Når en node modtager en RouteRequest-pakke, kontrollerer den sekvensnummeret på pakken, før den sendes. Pakken sendes kun, hvis det ikke er en dublet RouteRequest. Sekvensnummeret på pakken bruges til at forhindre looping og for at undgå flere transmissioner af den samme RouteRequest af en mellemnode, der modtager den gennem flere kanaler. Således sender alle noder undtagen destinationen en RouteRequest-pakke under rutegenereringsfasen. Destinationsnoden, efter at have modtaget den første RouteRequest-pakke, svarer til kilden via den retursti, som RouteRequest-pakken gennemgik. Noder kan også lære om naboruter, der gennemløbes af datapakker, hvis promiskuitetstilstand er indstillet (en driftstilstand, hvor en node kan modtage pakker, der ikke er transmitteret og ikke adresseret til den). Denne rutecache bruges også under rutegenereringsfasen. Hvis en mellemknude, der modtager en ruteanmodning, har en rute til destinationsknuden i sin rutecache, så svarer den til kildenoden ved at sende et rutesvar med al ruteinformation fra kildenoden til destinationsknuden.

Fordele og ulemper

Denne protokol bruger en reaktiv tilgang, der eliminerer behovet for periodisk at forurene netværket med tabelopdateringsmeddelelser, som kræves i routingtabeltilgangen. I reaktive (on-demand) protokoller etableres en rute kun, når den er påkrævet, og der er derfor ikke behov for at finde stier til alle andre knudepunkter i netværket, som det gøres i den tabelbaserede routingtilgang. Mellemliggende noder gør også effektiv brug af rutecache-information for at reducere overhead. Ulempen ved denne protokol er, at den lokale rutevedligeholdelsesmekanisme ikke genopretter brudte forbindelser. Forældede rutecacheoplysninger kan også føre til uoverensstemmelser under rutegenopbygningsfasen. Latensen for at etablere en forbindelse er højere end i protokoller, der bruger tabeller. Selvom protokollen fungerer godt i miljøer med statisk og lav knudemobilitet, forringes ydeevnen hurtigt med stigende mobilitet. Derudover kommer betydelige routing-overhead fra kilderouting, der bruges i DSR. Disse omkostninger er direkte proportionale med længden af ​​stien.

Links