Japan QualNet Community Forums Japan QualNet Community Forums
Welcome Guest 
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/09:6/7
2024/05/08:22/25

2024/03/10より369/1383
人気モジュール
No.1: フォーラム 87
No.2: QualNet概要 6
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット76
No.2:Linux3
No.3:Unknown OS1

No.1:どっかの巡回ロボット72
No.2:Safari3
No.3:Baidu巡回ロボット3

日曜日からの合計
メイン
   Routing Settings
     AODVの経路表について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yosio
投稿日時: 2012/1/5 14:31
常連
登録日: 2011/11/24
居住地:
投稿: 41
Re: AODVの経路表について
明けましておめでとうございます。

今年もよろしくお願いいたします。

>格納すべき値(元ネタ)をどこから引っ張ってくればよいか?という話題でしょうか?
ハイ、そうです。解りにくくて、申し訳ありません。
ご教示お願いいたします。

>それらのうちどれを使用すべきなのかわからないということでしょうか?

はい、一応RREPが返している時のNexthopが通常の前ホップノードだと考えているのですが、それを経路表の一部に保持させておきたいと考えています。
複雑な処理になりそうですか?

全体を通じて曖昧な質問で申し訳ありません。
今年もお世話になります。
ino
投稿日時: 2012/1/5 15:24
新米
登録日: 2011/1/24
居住地:
投稿: 16
Re: AODVの経路表について
どうも。

> RREPが返している時のNexthopが通常の前ホップノードだと考えているのですが、それを経路表の一部に保持させておきたいと考えています。
なんだかもう解決しているのでは・・・?
RREPが返している時とはAodvHandleRequest()でAodvInitiateRREP()を呼んでいるところですかね?(間違ってたらどなたかご指摘お願いします)
で、そのsrcAddr(仮引数でのAddress nextHop)を経路表の一部に保持したい。
経路表はaodv->routeTableで取得できますので、あとはそこに格納用のメンバ変数を用意しておいて、そこに格納すればいいことになります。

yosio
投稿日時: 2012/1/5 15:56
常連
登録日: 2011/11/24
居住地:
投稿: 41
Re: AODVの経路表について
ありがとうございます。

一つ質問があります。
経路表は配列ではないのですか?
すいません、経路表の構造が把握しきれていません。
ご指導お願いいたします。

ino
投稿日時: 2012/1/5 16:14
新米
登録日: 2011/1/24
居住地:
投稿: 16
Re: AODVの経路表について
どうも。

AODVを使用しているNode内にAodvDataが1つ存在します。
IP層に置いてあるものを以下で取得していることからわかります。
++++++++++++++++++++++++++++++++++++++++++++++++++++++
aodv = (AodvData*)NetworkIpGetRoutingProtocol
(node, ROUTING_PROTOCOL_AODV,
NETWORK_IPV4);
++++++++++++++++++++++++++++++++++++++++++++++++++++++

更にこのAodvData構造体のメンバ変数に
++++++++++++++++++++++++++++++++++++++++++++++++++++++
AodvRoutingTable routeTable;
++++++++++++++++++++++++++++++++++++++++++++++++++++++
が一つあり、これがあるノードが持っているAODVテーブルの全体です。

更に更にこのAodvRoutingTable構造体のメンバ変数に
++++++++++++++++++++++++++++++++++++++++++++++++++++++
AodvRouteEntry* routeHashTable[AODV_ROUTE_HASH_TABLE_SIZE];
++++++++++++++++++++++++++++++++++++++++++++++++++++++
があり、この配列の要素1つ1つが経路表のエントリそれぞれに
対応していることがわかります。ただし、コード上は配列ですが
名前の通りデータ構造としてはhashですのでアクセスの仕方に注意が必要です。
これにアクセスしている適当な場所を参考にしてみてください。
++++++++++++++++++++++++++++++++++++++++++++++++++++++
current = routeTable->routeHashTable[destAddr.interfaceAddr.ipv4
% AODV_ROUTE_HASH_TABLE_SIZE];
++++++++++++++++++++++++++++++++++++++++++++++++++++++
mast
投稿日時: 2012/1/5 17:26
一人前
登録日: 2005/4/7
居住地:
投稿: 93
Re: AODVの経路表について
yosioさん

ハッシュテーブルというデータ構造はご存知ですか?
ご存じなければネットで検索すればいろいろと分かりやすい説明を行っているサイトが見つかると思いますのでまずはそちらを理解してみてください。

inoさんの説明では「コード上は配列ですが」と書かれていますが、AODVのルーティングテーブル(routeHashTable[AODV_ROUTE_HASH_TABLE_SIZE])は一般的なハッシュテーブル構造となっています。

絵で表現したほうが分かりやすいと思いますので、inoさんの説明文に加えて添付の絵も構造理解にご活用ください。

qualnet_aodv_route_table.png
yosio
投稿日時: 2012/1/5 18:50
常連
登録日: 2011/11/24
居住地:
投稿: 41
Re: AODVの経路表について
>inoお返事ありがとうございます。

いつも、解り易い回答で助かります。

今のを見ながらソースをいじっていきたいと思います。


yosio
投稿日時: 2012/1/5 18:53
常連
登録日: 2011/11/24
居住地:
投稿: 41
Re: AODVの経路表について
>mast

ハッシュの構造をインターネットで調べてみます。

絵はすごく助かりました。
一目で構造が解りました。

mastさん,inoさん,又お世話になると思いますがよろしくお願いいたします。
yosio
投稿日時: 2012/1/8 10:09
常連
登録日: 2011/11/24
居住地:
投稿: 41
Re: AODVの経路表について
少し前のレスについて質問です。

Queue内のパケット数を取得したいのですが書き方がいまいち解りません、教示お願いします。

使うのはnumberInQueueだけですか?


ino
投稿日時: 2012/1/10 10:25
新米
登録日: 2011/1/24
居住地:
投稿: 16
Re: AODVの経路表について
どうも。

ネットワーク層の構造体がNode構造体内に1つあります。
NetworkDataIp *ip = (NetworkDataIp *) node->networkData.networkVar;
その下にinterface毎に結びついた構造体がありその下にスケジューラがぶら下がっています。
Scheduler *schedulerPtr = ip->interfaceInfo[interfaceIndex]->scheduler;
Queueはそのスケジューラが管理しておりSchedulerクラスのpublicな関数でQueueに関する
様々な情報にアクセスできます。

numberInQueue関数はその1つで引数に優先度を指定することで、指定した優先度に対応した
Queue内に入っているパケット数を返してくれます。
int n_queue0 = schedulerPtr->numberInQueue(0);
また、その時の優先度にALL_PRIORITIESを指定すれば、全Queueのパケット数合計を返してくれます。
int n_all = schedulerPtr->numberInQueue(ALL_PRIORITIES);
(Scheduler::numberInQueueを検索してどういう処理になっているか見ると参考になります)。

> 使うのはnumberInQueueだけですか?
当然ですが、ソースの場所や何をやりたいかによって変わってくると思います。
とりあえず上記の通り意図したパケット数が取得できるか試してみてください。
加えて、Schedulerクラスの他の関数でどのようなことが出来るのか見てみるのも
参考になるかと思います。
yosio
投稿日時: 2012/1/10 11:41
常連
登録日: 2011/11/24
居住地:
投稿: 41
Re: AODVの経路表について
お返信有難うございます。

アクセスの仕方特にわかりませんでした。
助かります。

helloメッセージに各ノードのQueue内パケット数の情報を付加して情報のやりとりをしたいのですが,プロトコルはAODVを使います。そこで処理の内容をHelloメッセージ内に書こうと思っているのですが、その処理はノードの方がよろしいのでしょうか?

色々情報ありがとうございます。
« 1 (2) 3 4 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT