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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/17:9/9
2024/05/16:22/24

2024/03/18より397/1407
人気モジュール
No.1: フォーラム 95
No.2: QualNet概要 3
No.3: ニュース 2
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット75
No.2:Unknown OS1
No.3:Windows XP1

No.1:どっかの巡回ロボット66
No.2:Majestic-12巡回ロボット6
No.3:Google巡回ロボット3

日曜日からの合計
メイン
   Routing Settings
     ODMRPのデータ受信時の動き
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yonah_air
投稿日時: 2008/5/11 20:06
新米
登録日: 2007/7/21
居住地: 福島
投稿: 8
ODMRPのデータ受信時の動き
使用しているQualNetは、3.9.5です

ODMRPでは、通信経路となったノード間でデータフラッディングを行うことで、複数目的ノードへデータの中継を行います。
そのため、任意のノードがデータパケットの中継処理の過程で同一Sequence numberのデータパケットを受信した場合、中継処理を行わずにパケットの破棄を行います。
実際に重複受信した場合のところに「puts("Data重複")」とコードを入れても"Data重複"とは出力されません。しかし、ブロードキャストストリームが起こっている様子はありません。どこで、Dataパケットの重複を検知しているのでしょうか?処理が行われている箇所に心当たりがあれば、ご指摘をお願いいたします。


/* Dataパケット受信時の処理 */
static void OdmrpHandleData(Node* node, Message* msg)
{
  〜パケットのキャスト及び、その他の処理〜

  /* 同一Sequence Numberパケット受信有無の確認 */
  if (!OdmrpLookupMessageCache(srcAddr, option.seqNumber, &odmrp->messageCache))
  { /* 重複受信していなかった場合 */

    /* Sequence Numberの受信記録をとる */
    OdmrpInsertMessageCache(odmrp, node, srcAddr, option.seqNumber, &odmrp->messageCache);
    〜 Data受信時の処理 〜
  }
  else
  { /* 重複受信した場合 */
                          ←ココに「puts("Data重複")」と入れても出力されない
    /* 何も処理を行わず、パケットを破棄 */
    MESSAGE_Free(node, msg);                           
  }
}
ipoten
投稿日時: 2008/5/28 18:54
一人前
登録日: 2005/7/12
居住地:
投稿: 102
Re: ODMRPのデータ受信時の動き
こんにちは

ODMRPにはあまり詳しくないんで素人見ですが。。。

> 重複受信した場合のところに「puts("Data重複")」とコードを入れても
> "Data重複"とは出力されません。

ノードがFGかどうか(OdmrpLookupFgFlag())で、データパケットの
転送/破棄をコントロールしているので、データフラディングしても
2ホップ先で重複受信する可能性は低いのではないでしょうか。

ちなみにJoin Queryは、重複受信するとちゃんと破棄しています。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT