AODV
DestSeqNum は送信元が受け入れた経路の新しさを示している。中間のノードが RouteRequestを受け取ると、単に次に転送するか、送信先への正しい経路を知っている場合はRouteReplyを返す。中間のノードでの経路情報が正しいかどうかは、そのノードの持つ送信先シーケンス番号とRouteRequestパケットにある送信先シーケンス番号を比較することで判断する。同じRouteRequestを複数回受け取ったことはBcastIDとSrcIDの組で識別でき、二度目以降の場合は単に捨てる。正しい経路情報を持つ中間ノードでも送信先ノード自身でも、RouteReplyパケットを送信元に送ることができる。RouteRequestを転送中の中間ノードでは、転送元ノードのアドレスとBcastIDを保持しておく。そして対応するRouteReplyが一定時間以内に戻ってこない場合、その情報を消去する。これにより、データパケットの送信元ルーティングを行わないAODVで、アクティブな経路を中間ノードが保持することでルーティングを助ける。あるノードがRouteReplyパケットを受け取ると、そのパケットの転送元ノードに関する情報を保持しておき、データパケットを対応する送信先へ転送する際の転送先の決定に利用する。
AODVでは、ネットワークはコネクションを必要とするまでは静かである。あるネットワークノードがコネクションを確立しようとしたとき、直近のAODVノードが要求をブロードキャストする。他のAODVノードはこのメッセージを転送しつつ、そのメッセージがどのノードから届いたかを記録し、全体として発信源から放射状に広がる一時的経路群を形成する。既に目的ノードへの経路を知っているノードにそのようなメッセージが届くと、その一時的経路を逆にたどってメッセージを要求ノードまで届ける。要求元のノードはこのように返ってきたメッセージを調べ、ホップ数が最も少ない経路を使う。ルーティングテーブルの使わないエントリは一定時間後に再利用される。
リンクが切れると、ルーティングエラーが送信元ノードに返され、上記プロセスが繰り返される。
この通信プロトコルは、ネットワークの容量をなるべく維持するためメッセージ数を少なくするよう心がけている。例えば、経路要求にはそれぞれシーケンス番号が付与されている。ノードはこのシーケンス番号を使い、すでに処理した経路要求を繰り返し処理しないようにしている。また、経路要求には「寿命」を表す数があり、転送回数が制限されている。また、経路要求が失敗した場合、最初の経路要求のタイムアウト時間の2倍以上の時間が経過しないと、再度の経路要求が送信できない。
AODVの利点は、既存のリンクに沿った通信に余分なトラフィックを発生しない点である。また、距離ベクトル型ルーティングは単純であり、メモリや計算能力をそれほど必要としない。しかし、AODVはコネクション確立に時間がかかる傾向があり、経路確立時の通信量は他の方式よりも多い。