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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/03/29:15/23
2024/03/28:20/24

2024/01/29より298/1301
人気モジュール
No.1: フォーラム 80
No.2: QualNet概要 6
No.3: ニュース 3
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット63
No.2:Linux6
No.3:Windows NT2

No.1:どっかの巡回ロボット58
No.2:Safari7
No.3:Google巡回ロボット2

日曜日からの合計
メイン
   Routing Protocols Implementation & Model Development
     CBRでブロードキャスト
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
T.I
投稿日時: 2017/12/19 16:11
半人前
登録日: 2017/10/21
居住地:
投稿: 32
CBRでブロードキャスト
こんにちは。

http://simweb.kke.co.jp/qualnet/forum/modules/newbb/viewtopic.php?topic_id=475&forum=43#forumpost1928
のような、送信元がブロードキャストし、受け取ったノードが送信先でなければ更にブロードキャストするということを繰り返し、送信先へデータパケットを届けるようにCBRを改造したいと考えています。

まず第一段階として、ユニキャストからブロードキャストのアプリケーションへ変更するために、
------------------------------------------------------------------
clientPtr->stats = new STAT_AppStatistics(
node,
"cbr",
STAT_Unicast,
STAT_AppSender,
customName.c_str());
------------------------------------------------------------------
のSTAT_UnicastをSTAT_Multicastに変更するという作業を全箇所しました。
しかし、変更後コンパイルしシミュレーションを行っても変更前とデータは変わっていませんでした。
http://simweb.kke.co.jp/download/QualNetHacks-01-CBR.pdf
は一通り読んだのですが、ユニキャストからブロードキャストに変更ということは書かれていなかったためどうすればよいか分かりません。
どなたかアドバイスをお願いしたいです。
maxam
投稿日時: 2017/12/21 15:29
常連
登録日: 2006/4/11
居住地:
投稿: 58
Re: CBRでブロードキャスト
詳しくは見ていないですが、
clientPtr->stats = new STAT_AppStatistics(
これは全部、(シミュレータの動作ではなく出力に関わる)
統計値関係の変数/関数ではないでしょうか・・。


・MCBRで代用
QualNetには、MCBRというものもあります。(Multicast CBR)
BroadcastではなくMulticastですので
目的にもよりますが、
MCBRで代用で良かったりはしないですか?


・CBRを改造する場合
app_cbr.cppでは、client側のどこかで
宛先IPアドレスを指定している筈です。
変更するならこの宛先かと思います。
また、CBRの受信側(server)でも何かしら改造が
必要と思われます。

どちらにしろアプリ層転送のための改造は必要になるわけなので、
デバッグ実行でパケットひとつひとつの動きを追って、確認しながら
進めるのが良いかと思います。
T.I
投稿日時: 2017/12/21 15:39
半人前
登録日: 2017/10/21
居住地:
投稿: 32
Re: CBRでブロードキャスト
追記です。

色々調べたところ、app_cbr.cpp内のAppLayerCbrClientの
------------------------------------------------------------------
Message* sentMsg = APP_UdpCreateMessage(
node,
clientPtr->localAddr,
(short) clientPtr->sourcePort,
clientPtr->remoteAddr,
(short) APP_CBR_SERVER,
TRACE_CBR,
clientPtr->tos);
------------------------------------------------------------------
の、clientPtr->remoteAddrの部分をブロードキャストアドレスに設定すればブロードキャストはできるのではないかと考えています。
しかし、ブロードキャストアドレスの設定の仕方が分かりません。
どなたか分かる方教えていただきたいです。
T.I
投稿日時: 2017/12/21 15:56
半人前
登録日: 2017/10/21
居住地:
投稿: 32
Re: CBRでブロードキャスト
返事ありがとうございます!

はい、STAT_Unicastの部分はパケット制御ではないようですね。
勘違いしていました。

・MCBRで代用について
私は、送信元が送信先を指定してデータパケットをフラッディング、データパケットを受け取ったノードは、自分宛なら受け取り違うなら再度フラッディグを行うという風にCBRを改造したいと考えています。
MCBRはフラッディングは行えますが、送信先を一つ指定して送るようなアプリケーションではなかったと思います。私の思い違いかもしれませんが。。

現在は、色々調べたところ、app_cbr.cpp内のAppLayerCbrClientの
------------------------------------------------------------------
Message* sentMsg = APP_UdpCreateMessage(
node,
clientPtr->localAddr,
(short) clientPtr->sourcePort,
clientPtr->remoteAddr,
(short) APP_CBR_SERVER,
TRACE_CBR,
clientPtr->tos);
------------------------------------------------------------------
の、clientPtr->remoteAddrの部分をブロードキャストアドレスに設定すればブロードキャストはできるのではないかと考えています。
しかし、ブロードキャストアドレスの設定の仕方が分っていません。

アプリケーション層転送に関しては、client側に再送制御を加えようと考えています。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT