AODV协议概述
import from : http://www.soe.ucsc.edu/~ravindra/aodv.html
Last modified: Wed Apr 24 06:17:41 PDT 2002
An On-Demand Unicast routing protocol for Ad-Hoc Networks i.e. routing information maintained only for active nodes
Active nodes : Those nodes for which I am the origin or relay of traffic
Each node maintains a routing table with entries for each active destination
Each entry of the routing table has six fields
- Destination
- Next-Hop
- Destination Sequence Number
- Route Timeout
- List of Neighbours who need me as next hop to destination (Along with last time they sent data)
- Hop Count
RREQ's are broadcast to everybody
Each RREQ contains broadcast-id, src, dest, src-seq-no, dest-seq-no, hop count(incremented as RREQ is propagated)
Broadcast id is incremented for every new RREQ originating from the source
{src, broadcast-id} uniquely identifies a RREQ
An intermediate node may may respond to RREQ if it holds a route to the destination which has a seq-no equal to or greater than that specified in the RREQ
Among two RREP one with greater dest-seq-no is chosen. If they are equal then one with lower hop-count is chosen
As RREQ propagates its sets up a backward route with a timeout equal to rreq-expiration. This should be enough for a RREP to be received
Every time a packet is sent on a route, route timeout = current time + active route timeout
The neighbour which forwarded the packet also has its timer set to the same value (Active neighbours whose timer expires are no longer active neighbours)
Nodes periodically broadcast hello packets to tell neighbours that they are alive
If a next hop to a destination is dead then a RREP is sent to all neighbours who use me as a next hop. dest-seq number is incremented and hop count is set to infinity in the RREP
If an upstream node wants it may re-establish a route by sending a new RREQ with a higher destination-seq-number