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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/07/01:9/15
2024/06/30:15/23

2024/05/02より356/1419
人気モジュール
No.1: フォーラム 31
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット14
No.2:Linux7

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

日曜日からの合計
メイン
   Physical Layer Settings
     ListenableとListeningについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
TakaoIto
投稿日時: 2011/10/26 22:55
新米
登録日: 2010/4/23
居住地: 東京
投稿: 7
ListenableとListeningについて
お世話になります.

基本的すぎるのだろうと質問せずに研究の合間調べていたのですが,いつまで経っても解決できなかったので質問させてください.

現在802.11における無線通信に関して,複数のチャネルを使い分けていきたいと考えております.

そこで,下記トピックを参考にしながら,ソースコードを改変しているところです.
http://simweb.kke.co.jp/qualnet/forum/modules/newbb/viewtopic.php?viewmode=thread&topic_id=387&forum=45&post_id=1457#1457


【mac_dot11.cppに追加したソースコード】

unsigned int phyNumber = dot11->myMacData->phyNumber;   //物理インタフェース
int channnelIndex = 1;                                  //変更後のチャネル
int channnelIndexPrev = 0;                              //変更前のチャネル
BOOL phyCanListen = FALSE;
BOOL phyIsListening = FALSE;

phyCanListen =
	PHY_CanListenToChannel(				//新規のチャネルからリスニングすることができるかどうか確認
		node,
		phyNumber,
		channelIndex);

if(phyCanListen){                                       //新規のチャネルからリスニングすることができるなら実行
	phyIsListening =                //変更前のチャネルでリスニングしているかどうか確認
		PHY_IsListeningToChannel(
			node,
			phyNumber,
			channelIndexPrev);

	if (phyIsListening == TRUE)	                //変更前のチャネルでリスニングしていたならば実行
	{
		PHY_StopListeningToChannel(       //現在のチャネルでのリスニングを停止
			node,
			phyNumber,
			channelIndexPrev);

		PHY_StartListeningToChannel(      //新規のチャネルでのリスニング開始
			node,
			phyNumber,
			channelIndex);

		PHY_SetTransmissionChannel(             //新規のチャネルを送信チャネルとしても設定
		        node,
		        phyNumber,
		        channelIndex);
	}
}



流れとして合っているのか・・・というのも聞きたいところなのですが,それ以前の質問です.
QualNetGUIでチャネルマスクを設定する際,ListenableとListeningと2つあります.これはどう違うのでしょうか.

現状では,

Listenableは無線デバイスとして受信チャネルに使用できるかどうか
Listeningは実際に今デバイスでそのチャネルを監視している状態

という認識でいます.

実際phy.cppやmac_dot11-mgmt.cpp等を読んできて,特にその理解で違和感はありませんでした.
しかし,何故Listeningは『type="Mask"』で定義されているのでしょうか.(phy_layer.prt)
一つの無線インタフェースで複数のチャネルを同時に受信チャネルとして利用できるとは思えません.

2つの周波数を定義し,Mask設定で11と両方設定していた場合には先頭のチャネルが使われているのだろうと想像していました.
ですが,PHY_IsListeningToChannel()関数を使ってリスニングしているチャネルを見たときに,Mask設定の通り両方がListeningされているという結果が得られました.

無知で申し訳ないのですが,ご教示頂けるとすごく助かります.
hed
投稿日時: 2011/10/31 15:13
一人前
登録日: 2006/7/3
居住地: 京都
投稿: 81
Re: ListenableとListeningについて
確かにわかりづらいですよね。
私の理解の範囲でお応え致します。

引用:

流れとして合っているのか・・・というのも聞きたいところなのですが,それ以前の質問です.
QualNetGUIでチャネルマスクを設定する際,ListenableとListeningと2つあります.これはどう違うのでしょうか.

現状では,

Listenableは無線デバイスとして受信チャネルに使用できるかどうか
Listeningは実際に今デバイスでそのチャネルを監視している状態

という認識でいます.

私の理解も以下なので、大きく違いはないと思います。
Listenable : デバイスとして受信可能なチャネルです。
Listening : (少なくともシミュレーション開始時には)受信するチャネルです。

引用:

実際phy.cppやmac_dot11-mgmt.cpp等を読んできて,特にその理解で違和感はありませんでした.
しかし,何故Listeningは『type="Mask"』で定義されているのでしょうか.(phy_layer.prt)

これは "QualNet" のチャネルの概念が、いわゆる802.11のチャネルとは違うということだと思います。
実際にはCh0, Ch1をアクセスポイントに設定していたら、Ch0をステーションに設定していたとしてもCh1からの電波も受信してしまうかと思います。
しかし、QualNetではチャネルが異なれば絶対に受信することはありません。
ここで受信する受信しないとは離散シミュレーションのイベントとして上がってくるかこないかです。

引用:

一つの無線インタフェースで複数のチャネルを同時に受信チャネルとして利用できるとは思えません.

上記の理由によりシミュレーション上は同時に受信できます。

以上のようにチャネルはあくまでイベントスケジューラから上がってくるかどうかの判定としてしか使っていません。
イベントとして上がってきたものをどう処理するかはプロトコル次第です。

現在のQualNetの802.11はQualNetのチャネルがListeningのものはすべて受信するように "モデル化" されています。
そこから推測するとListeningのチャネルはListenableで設定したどれかのチャネル一つにListeningの設定することを前提としているのだと思います。

つまりこのような設定だと全く干渉しないか、完全に干渉するかのどちらかしか扱えません
しかし人によってはCh0とCh1で干渉は起きるけど、でも異なるチャネルからの影響は少しづつ変化させて影響をうけるような "モデル化" をしたい場合もあるかもしれません。
この場合、複数のチャネルをListeningに設定し、到来したチャネルによって処理を分けるような改造が可能になります。

本来連続的である周波数を離散的に扱うためにこのような形になったのだと思います。
そのため現在のQualNetの802.11の "モデル化" では、送信側のスペクトルの広がりや、受信側のフィルタの広がりは考慮しないモデルになっているのではないかと思います。
そのためシミュレーションをする際は実際の物理現象をどうモデル化しているかを理解して使う必要があると思います。


あとは余談ですが、不要な(考慮しなくても良い)干渉による計算量を削減させるための工夫でしょうか。

私の理解もこの程度なので体系だった説明は出来ませんが、参考になれば幸いです。
TakaoIto
投稿日時: 2011/11/2 13:55
新米
登録日: 2010/4/23
居住地: 東京
投稿: 7
Re: ListenableとListeningについて
お返事ありがとうございました!
物凄く助かりました!

実は実際の無線デバイスがアンテナとして受信処理をどのようにしているのかという理解に自信がなかったのです.
(現実の無線デバイスでも)受信チャネルを0に設定していた場合,1からの電波には反応できず,その電波が飛んでいることすら気付かないのだろうと思っていたので^^;

では,受信チャネルとしては全てListeningに設定し,送信チャネルを切り替えながら干渉の変化等を見て行こうと思います.
ありがとうございました.
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT