2. When/Why do we need AODV? Basically when there is one node that wants to communicate with another node that is not in range, it finds a route through other nodes. In the example below node 1 is not in range with node 3, so it simply talks to node 3 through node 2. Node 1 Node 3 Node 2
3. How does it work? AODV Routing works by using Route Request Messages (RREQ) and Route Reply Messages (RREP). If a node is not in range with a node that it wants to talk to, it sends a RREQ to its neighbors. The RREQ contains source IP address and sequence number, and destination IP address and sequence number, as well as the life span of the RREQ. If a neighbor of the source doesn’t know a route to the destination, it rebroadcasts the RREQ. If a neighbor does know a route to the destination, it sends a RREP back to the source. Below, Node 1 is trying to talk to node 5. RREP RREQ RREQ RREQ Node 4 Node 5 Node 3 Node 2 Node 1
4. How does it work? continued As seen in the last slide, node 4 had a route to node 5, so it sent node 1 a RREP. Once node 1 receives the RREP, it notes the route to node 5 and sends the packet on that route. SUCCESS!! Route 5 received the packet. RREP RREQ Node 1 Node 4 Node 5 Packet Packet
5. RREQ Now we can see it all in action! Node 1 Node 2 Node 3 RREP AODV Protocol Node 4 Node 5
6. Lets get more specific! Sequence Number: Each message contains a sequence number, which is essentially the age of the message. This allows nodes to know how recent a message was sent, and it may allow nodes to find new, quicker routes. Life Span: Each message only last the time that is specified by its life span. If the message dies before it reaches the destination, the source will resend the message with a longer life span.
7. And more specific… Hello Messages: These are simple messages that nodes send at certain time intervals to all its neighbors to let them know that it is still there. If a node stops receiving hello messages from one of its neighbors, it knows that any routes through that node no longer exist.
8. It gets complicated! Things get much more complicated with many nodes. This is because nodes have many neighbors so RREQ get rebroadcasted a lot! That’s why sequence numbers and life spans are so key.
9. Error Messages RERR RERR are used mainly when nodes get moved around and connections are lost. If a node receives a RERR, it deletes all routes associated with the new error. Error messages are sent either when a message (not RREQ or RREP) is sent to a node that has no route to the destination, or when a route becomes invalid, or if it cannot communicate with one of its neighbors.