![]() ![]() ![]() | 投稿するにはまず登録を |

題名 | 投稿者 | 日時 |
---|---|---|
» ![]() |
Shinya | 2013/10/15 16:13 |
![]() |
hiro | 2013/10/25 9:58 |
![]() |
Shinya | 2013/11/5 13:44 |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
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; と変更を行いましたがこちらもうまくいきませんでした。 ![]() |
フラット表示 | 前のトピック | 次のトピック |