Overview of AODV protocolPart 2 SNAP Presentation 10/18/2007 Jorge Ortiz
AODV Route Table (Yes,there’s Only 1) SNAP Presentation Destination Address Destination Sequence Number Valid Destination Sequence number flag Valid/invalid bit for the entry Hop Count List of precursors (one list) Lifetime
Routing Requirements for Sensor Networks 0th-bit 31st-bit Type (1) J R G D U Reserved Hop Count RREQ ID RREQ(Route Request) Destination IP Address Destination Sequence Number Originator IP Address Originator Sequence Number 0th-bit 31st-bit Type (2) R A Reserved Prefix Sz Hop Count RREP(Route Reply) Destination IP Address Destination Sequence Number Originator IP Address Originator Sequence Number 0th-bit 31st-bit Type (3) N A Reserved Dest Count RERR(Route Error) Unreachable Destination IP Address (1) Unreachable Destination Sequence Number (1) Additional Unreachable Destination IP Address (if needed) Additional Unreachable Destination Sequence Numbers (if needed) SNAP Presentation
State Maintenance Overhead SNAP Presentation An entry is added for each destination The set of destinations include all the neighbors as well as each source and destination Each entry contains a list of precursors (list of all nodes that use this node as a next-hop to get to a given destination) For d neighbors, S sources, and D destinations, the size of the table is O((d+S+D) *d) In the worst case, where every node sends to every other node, the size of the table is O(N*d), where N is the number of nodes in the network
AODV Message Overhead SNAP Presentation • RREQs are flooded messages • O(N) messages sent per flood • RREPs are sent through unicast back to the source from either an intermediate node or a destination node. • The worst case message overhead is the number of hops, k, or O(k) • RERRs are forwarded along to each node in the precursor list for every destination that is no longer reachable. • If r destinations are no longer reachable, then O(r*d2*k) message are sent per error.
Collection State Overhead SNAP Presentation • Collection: many-to-one, many-to-some: S sources to D destinations, d density (# of neighbors) • Each destination has entries for each source and all 1-hop neighbors and each entry has a precursor list with order O(d) entries: O((d+S)*d) state per destination • Each source has a entry to each destination and each neighbor, and a precursor list per entry: O((d+D)*d) state per source • Each intermediate node has an entry to each of its neighbors as well as each source and each destination and each entry has a precursor list: O((d+S+D)*d)
Collection Message Overhead SNAP Presentation • Collection Message overhead • RREQs: Each destination (or source) may initiate a RREQ message to each source (or destination). The number of messages per RREQ is O(N*S*D) since you send a flood for each route (source-destination pair). • RREPs: Each destination (or source) must issues a unicast RREP message to each source (or destination). The number of messages per RREP is O(k*S*D) since for every source-destination pair, the reply travels k hops (the diameter of the network)
Collection Overhead (cont.) SNAP Presentation • RERRs • This is dependent on the churn on the links/routes. If a link goes down and the hello-message feature is active, a RREP is initiated. Furthermore, a RERR is initiated whenever a RREQ cannot reach the next-hop node. In both cases the cost is O(r*d2*k). • Optimization • We can initiate the route-discovery process outwards from the destinations to the source and set the TTL=1, so that each subsequent flood will only need to go one hop before knowing how to get to the destination
Dissemination State Overhead SNAP Presentation • Same as Collection: • Each source has an entry for each destination, the destination has an entry for each source • Both include an O(d) precursor list • Each intermediate node has entries to each source and the destination • Source state: O((d)*d) • Destination state: O((d+S)*d) • Intermediate node state: O((d+S)*d)
Dissemination Overhead SNAP Presentation • The same as collection • For dissemination, (which is one-to-many), the constant D is 1. • Fundamentally, it does not matter whether you are setting up collection or dissemination with AODV because AODV is route-establishment dependent and the set of routes in either workload case is the same.
AODV Main Timers SNAP Presentation • Cache entry timer (lifetime) • When a route entry expires, a RERR notification process is initiated • Route establishment timer • Each time this timer expires, RREQ is re-flooded • Hello (keep alive) message timer (Optional) • Used to maintain connectivity information • Partially dictate RERR generation process • RRER_RATELIMIT, RREQ_RATELIMIT (Optional) • Others