![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Shinya | 投稿日時: 2013/10/15 16:13 |
新米 ![]() ![]() 登録日: 2013/3/26 居住地: 投稿: 10 |
AODVにおける経路変更 お世話になります.
現在AODV方式に改良を加え,通信障害発生時における迅速な通信復旧方法について研究を行っております. 本来AODV方式では、基本的に各ノードが持つ経路表のnextHopは1個のみだと思うのですが(一定時間経過後の経路表), とある条件を元に各ノードに,nextHopを複数候補を持たせたいと考えております. たとえば添付ファイルの図ではR1⇒R2を経由し,実パケットを送信しておりますが, 即座に経路を切り替えることでR1⇒R4の通信も可能になるようにしたいと思っております. そこでまず経路を切り替える事ができるかどうか確認するため, 図のようなノード配置の実験構図を組み、 一定時間経過後、R1におけるnextHopをR2からR4に上書きを試してみました。 その際、プログラム中では、 routing_aodv.hの中の構造体で、R2のノードにR4のアドレスを保持させておき(aodv->usenexthopnode(Address型)とする)、 routing_aodv.cppで、経路を更新するための関数を実装し、 rtEntry->nextHop.interfaceAddr.ipv4 = aodv->usenexthopnode % AODV_ROUTE_HASH_TABLE_SIZE; と記述することで、アドレスがR2からR4へと切り替わるのではないかと考えました。 ところが、うまく反映されていなかったのか、うまく切り替えが出来ませんでした。 そこで質問なのですが、 1.rtEntry->nextHopはNodeAddress型なので、aodv->usenexthopnodeもNodeAddress型に変換することで rtEntry->nextHop = aodv->usenexthopnode; とすればうまくいくのでしょうか? 2.1でうまくいかない場合、どのような記述方法で現在の経路表のnextHopの上書きができるのでしょうか? 経路表に関する理解が浅いため、初歩的な質問かもしれませんが、よろしくお願いいたします。 【追記】 上記の文では、どのテーブルのnextHopか分からないと判断し、 routeTable->routeHashTable[i]->nextHop.interfaceAddr.ipv4 = aodv->usenexthopnode % AODV_ROUTE_HASH_TABLE_SIZE; と変更を行いましたがこちらもうまくいきませんでした。 ![]() |
hiro | 投稿日時: 2013/10/25 9:58 |
長老 ![]() ![]() 登録日: 2005/7/16 居住地: 投稿: 452 |
Re: AODVにおける経路変更 まずルーティング関連の詳細については、下記pdfを読んでみてください。
http://simweb.kke.co.jp/download/QualNetHacks-04-Routing.pdf ただ、残念なことに 4.5.3 リアクティブ型経路制御の例(AODV) ***TBD*** となっていて、QualNetにおけるAODVの詳細は無いです。 今後の改定版を待つしかないですね。 # ごめんなさい、私もAODVの詳細までは詳しく調べてません。 それはともかく、QualNet内部における経路表の詳細については、 詳しく解説されているので、きっと役に立つと思います。 AODVがプロトコルとして持っている経路情報とQualNetが処理する 経路情報の差(というか、どのタイミングで整合をとっているか)を 注意深く追いかければ問題解決するのではないかと思います。 |
Shinya | 投稿日時: 2013/11/5 13:44 |
新米 ![]() ![]() 登録日: 2013/3/26 居住地: 投稿: 10 |
Re: AODVにおける経路変更 hiro様
アドバイスありがとうございました. QualNet内部の経路表を見直すことで, 更新すべき場所が分かりました. どうやら型を無理に変換しなくても,アドレスの上書きができたようです. 引き続き,AODV方式を利用した研究を続けていこうと思います. |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |