AdhocOn-demandDistanceVector(AODV)RoutingProtocolECE695Spring2006AODVOverviewAODVisapacketroutingprotocoldesignedforuseinmobileadhocnetworks(MANET)IntendedfornetworksthatmaycontainthousandsofnodesOneofaclassofdemand-drivenprotocols•TheroutediscoverymechanismisinvokedonlyifaroutetoadestinationisnotknownUDPisthetransportlayerprotocolSource,destinationandnexthopareaddressedusingIPaddressingEachnodemaintainsaroutingtablethatcontainsinformationaboutreachingdestinationnodes.•Eachentryiskeyedtoadestinationnode.RoutingTableFieldsDestinationIPaddressDestinationSequenceNumberValidDestinationSequenceNumberFlagOtherstateandroutingflagsNetworkInterfaceHopCount(neededtoreachdestination)NextHopPrecursorListLifetime(routeexpirationordeletiontime)Overview(continued)Routingtablesizeisminimizedbyonlyincludingnexthopinformation,nottheentireroutetoadestinationnode.Sequencenumbersforbothdestinationandsourceareused.Managingthesequencenumberisthekeytoefficientroutingandroutemaintenance•Sequencenumbersareusedtoindicatetherelativefreshnessofroutinginformation•Updatedbyanoriginatingnode,e.g.,atinitiationofroutediscoveryoraroutereply.•Observedbyothernodestodeterminefreshness.Overview(continued)Thebasicmessagesetconsistsof:•RREQ–Routerequest•RREP–Routereply•RERR–Routeerror•HELLO–ForlinkstatusmonitoringAODVOperation–MessageTypesRREQMessages•Whilecommunicationroutesbetweennodesarevalid,AODVdoesnotplayanyrole.•ARREQmessageisbroadcastedwhenanodeneedstodiscoveraroutetoadestination.•AsaRREQpropagatesthroughthenetwork,intermediatenodesuseittoupdatetheirroutingtables(inthedirectionofthesourcenode).•TheRREQalsocontainsthemostrecentsequencenumberforthedestination.•AvaliddestinationroutemusthaveasequencenumberatleastasgreatasthatcontainedintheRREQ.RREQMessageB?B?B?B?B?B?B?BAAODVOperation–MessageTypesRREPMessages•WhenaRREQreachesadestinationnode,thedestinationrouteismadeavailablebyunicastingaRREPbacktothesourceroute.•AnodegeneratesaRREPif:Itisitselfthedestination.Ithasanactiveroutetothedestination.Ex:anintermediatenodemayalsorespondwithanRREPifithasa“freshenough”routetothedestination.•AstheRREPpropagatesbacktothesourcenode,intermediatenodesupdatetheirroutingtables(inthedirectionofthedestinationnode).RREPMessageBAAAAAAAAODVOperation–MessageTypesRERRMessages•Thismessageisbroadcastforbrokenlinks•GenerateddirectlybyanodeorpassedonwhenreceivedfromanothernodeAODVOperation–MessageTypesHelloMessages•HelloMessage=RREPwithTTL=1•Thismessageisusedforbroadcastingconnectivityinformation.Ex:Ifaneighbornodedoesnotreceiveanypackets(Hellomessagesorotherwise)formorethanALLOWED_HELLO_LOSS*HELLO_INTERVALmseconds,thenodewillassumethatthelinktothisneighboriscurrentlylost.•AnodeshoulduseHellomessagesonlyifitispartofanactiveroute.MessageroutingABDFCGERREQRREQRREQRREQRREQRREQRREQRREQRREQRREPRREPRREPSourceDestinationCongestionHandlingOnemethodthatAODVhandlecongestionis:•IfthesourcenodereceivesnoRREPfromthedestination,itmaybroadcastanotherRREQ,uptoamaximumofRREQ_RETRIES.•ForeachadditionalattemptthatasourcenodetriedtobroadcastRREQ,thewaitingtimefortheRREPismultipliedby2.DSRisnotcapableofhandlingcongestion.CongestionHandlingOtherpossiblemethodstoimproveAODVcongestionhandling:•Aroutemaypredictwhencongestionisabouttooccurandtrytoavoiditbyreducethetransmissionrate.•Scheduletherequestssothatitwillnotoverloadthenetwork.AODVRoutingTherearetwophases•RouteDiscovery.•RouteMaintenance.Eachnodemaintainsaroutingtablewithknowledgeaboutthenetwork.AODVdealswithroutetablemanagement.Routeinformationmaintainedevenforshortlivedroutes–reversepointers.EntriesinRoutingTableDestinationIPAddressDestinationSequenceNumberValidDestinationSequenceNumberflagOtherstateandroutingflags(e.g.,valid,invalid,repairable,beingrepaired)NetworkInterfaceHopCount(numberofhopsneededtoreachdestination)NextHopListofPrecursorsLifetime(expirationordeletiontimeoftheroute)DSRmaintainsadditionaltableentries,causingalargermemoryoverheadDiscoveryBroadcastRREQmessages.IntermediatenodesupdatetheirroutingtableForwardtheRREQifitisnotthedestination.Maintainback-pointertotheoriginator.DestinationgeneratesRREQmessage.RREQsentbacktosourceusingthereversepointersetupbytheintermediatenodes.RREQreachesdestination,communicationstarts.AlgorithmforDiscovery@OriginatorIfaroutetothedestinationisavailable,startsendingdata.ElsegenerateaRREQpacket.IncrementtheRREQIDby1.Incrementthesequencenumberby1.DestinationIPaddress,currentlyavailablesequencenumberincluded.@IntermediateNodeGenerateroutereply,ifa'freshenough'routeisavalidrouteentryforthedestinationwhoseassociatedsequencenumberisatleastasgreatasthatcontainedintheRREQ.Changethesequencenumberofthedestinationnodeifstale,incrementthehopcountby1andforward.@Destination1.Incrementsequencenumberofthedestination.2.GenerateaRREQmessageandsentbacktoOriginator.DiscoveryMaintenanceHellomessagesbroadcastbyactivenodesperiodicallyHELLO_INTERVAL.NohellomessagefromaneighborinDELETE_PERIOD,linkfailureidentified.Alocalrouterepairtothatnexthopinitiated.After