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

パスワード:


パスワード紛失

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

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

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

日曜日からの合計
メイン
   Routing Protocols Implementation & Model Development
     定期的に隣接ノード情報を取得し、テーブルとして保持するには??
投稿するにはまず登録を

題名 投稿者 日時
   定期的に隣接ノード情報を取得し、テーブルとして保持するには?? nanashi 2006/1/10 0:52
   » Re: 定期的に隣接ノード情報を取得し、テーブルとして保持するには?? forum_support 2006/1/10 14:04
       Re: 定期的に隣接ノード情報を取得し、テーブルとして保持するには?? nanashi 2006/1/10 22:40
         Re: 定期的に隣接ノード情報を取得し、テーブルとして保持するには?? forum_support 2006/1/11 10:32
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
forum_support
投稿日時: 2006/1/10 14:04
モデレータ
登録日: 2005/5/17
居住地: 東京都中野区中央4-5-3 ?構造計画研究所
投稿: 322
Re: 定期的に隣接ノード情報を取得し、テーブルとして保持するには??
引用:

nanashiさんは書きました:
1.ビーコンやHelloメッセージのようなものを定期的に発信することで
隣接ノードの情報(アドレスetc)を取得する機能(関数)はデフォルトで
実装されているのでしょうか??
ないとしたらどのあたりを参考にして追加すればよいのでしょうか?


ビーコンは 802.11 の MACモデルで実装しています。
AODV の Hello message も実装されています。これは
aodv.cpp において

06477 //--------------------------------------------------------------------
06478 // FUNCTION: AodvHandleProtocolEvent
06479 // PURPOSE: Handles all the protocol events
06480 // ARGUMENTS: node, the node received the event
06481 //            msg,  msg containing the event type
06482 //--------------------------------------------------------------------
06483 
06484 void
06485 AodvHandleProtocolEvent(
06486     Node* node,
06487     Message* msg)
06488 {

06737         case MSG_NETWORK_SendHello:
06738         {
06739             clocktype delay = (clocktype) (pc_erand(node->seed) *
06740                 AODV_BROADCAST_JITTER);
06741 
06742             if (aodv->lastBroadcastSent < (getSimTime(node) -
06743                 AODV_HELLO_INTERVAL))
06744             {
06745                 AodvBroadcastHelloMessage(node, aodv);
06746                 aodv->lastBroadcastSent = getSimTime(node);
06747             }
06748 
06749             MESSAGE_Send(node, msg, (clocktype) AODV_HELLO_INTERVAL + delay);
06750             break;
06751         }

のようにして送信イベントが定義されています。Hello message を
スケジュールしている箇所は イベント種別MSG_NETWORK_SendHello
を用いてスケジュールしている箇所を探せば見つかります。


引用:

nanashiさんは書きました:
2.また、取得する機能があるとしてそれを保持するテーブル
(ここでいうところの隣接ノードテーブル)のようなものは
既存なのでしょうか??
ないとしたらどのあたりを参考にして追加すればよいのでしょうか?

ルーティングテーブルのことですか?
struct AodvRoutingTable;
struct AodvRouteEntry;
を参考にしてください。

引用:

3.送信元ノードがデータを送信するための関数としては
aodv.cpp内のAodvTransmitDataが該当し、
ここでの引数として宛先アドレスを与えると思うのですが、
ここで、隣接ノードテーブルから宛先アドレスを参照し、
そのアドレスに対してデータ送信といった形をとることで
3番については実現可能でしょうか??


AodvTransmitData は送信パケットの宛先アドレスにマッチする
ルーティングテーブルレコードを引数としています。
ルーティングテーブルを参照してマッチしたということですから、
この時点で、ルートは確立していますので、そのアドレスに
対してデータ送信が行えます。 AodvTransmitData はデータを
送信後、マッチしたレコードに対するパラメータをやlifetime を
更新します。
フラット表示 前のトピック | 次のトピック
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT