メイン Scenario Setup & Configuration 複数チャネルにおける同時通信 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
fo_ru | 投稿日時: 2009/7/3 15:56 |
新米 登録日: 2009/7/2 居住地: 投稿: 13 |
複数チャネルにおける同時通信 はじめまして、Qualnet初心者のものです。
この度、ノード1からノード2,3,4に3つのリンクを貼り付けて 3つのチャネルを用いてそれぞれ異なるチャネルで 同時に通信を行うというシミュレーションをしたいと思ったのですが、 ・3つのリンクそれぞれにWireless Networkリンクを設定 ・チャネルを3つ用意し、 ノード1,2間で用いるListening,Lisitenable channelを100 ノード1,3間は010 ノード1,4間は001に設定 という設定をしてもノード1,2間の通信のみが行われ、1,3間及び1.4間の 通信が全く行われませんでした。 ちなみにルーティングはDINAMICとSTATICの両方やりましたが同様の結果でした。 どのようにすればノード1,2とノード1,3とノード1,4間の通信を同時に 行えるのでしょうか?ご教授をお願いいたします。 一応シナリオファイルも添付しておきます。 test.zip |
maxam | 投稿日時: 2009/7/3 17:04 |
常連 登録日: 2006/4/11 居住地: 投稿: 58 |
Re: 複数チャネルにおける同時通信 こんにちは
添付シナリオはstatic-routeの場合のようですが、 少なくとも、static-routeファイルの内容は違うみたいです。 例えばnode3は192.0.1.0のサブネットなので、 割り当てられているアドレスは192.0.0.3ではなくて192.0.1.2です。 (IDEのNodes->host3->Interfaces->interface0で確認可能) なので、正しくは test.routes-static ------------- 1 192.0.0.2 192.0.0.2 1 192.0.1.2 192.0.1.2 1 192.0.2.2 192.0.2.2 ------------- (09/07/10 「正しくは」の内容が間違っていたので訂正しました・・) ・・DINAMICの時も駄目だったとのことですが、それはまた別の原因かもしれません。 |
kshima | 投稿日時: 2009/7/3 17:04 |
半人前 登録日: 2006/10/16 居住地: 投稿: 24 |
Re: 複数チャネルにおける同時通信 私の環境では,添付のシナリオで,Routing PolicyをDynamicにすれば同時に通信できています.
|
fo_ru | 投稿日時: 2009/7/3 17:23 |
新米 登録日: 2009/7/2 居住地: 投稿: 13 |
Re: 複数チャネルにおける同時通信 maxamさん、kshimaさん、ありがとうございました。
ご指摘の通り訂正して無事にシミュレーションすることができました。 初歩的なミスで質問してしまい申し訳ないです。 |
fo_ru | 投稿日時: 2009/7/9 15:02 |
新米 登録日: 2009/7/2 居住地: 投稿: 13 |
Re: 複数チャネルにおける同時通信 お世話になります。
また質問させていただきたいのですが、ノード1とノード2を 2つのWireless Networkを用いて2つのチャネルでデータを同時に送受信させたいと思っています。 static routeで 1 192.0.0.2 192.0.0.2 2 192.0.1.1 192.0.1.1 のように記述するとノード1→ノード2の通信しか行われずにシミュレーションが終了してしまいます。 使用するインタフェースやIPアドレスは間違っていないと思うのですが、 どのようにすればよろしいのでしょうか?どなたかご教授お願いいたします。 test1.zip |
children | 投稿日時: 2009/7/9 15:17 |
新米 登録日: 2006/9/26 居住地: 投稿: 18 |
Re: 複数チャネルにおける同時通信 test1.appをみると
CBR 1 2 0 1000 0.01S 1S 0S PRECEDENCE 0 CBR 2 1 0 1000 0.01S 1S 0S PRECEDENCE 0 となっています。 2行目は単にノードIDを指定した通信 CBR 2 1 ... なので、各ノードのデフォルトアドレス(Interface0)を利用した通信 CBR 192.0.0.2 192.0.0.1 .... として動いているのではないでしょうか? GUI上であれば、CBRの送信元アドレス・送信先アドレスをクリックして 明示的に192.0.1.2, 192.0.1.1に設定できるとおもいますので、それで一度試してみてはいかがでしょうか? ※すみませんが、今、動作する環境をもってないので、試めすことができません。 |
fo_ru | 投稿日時: 2009/7/9 15:25 |
新米 登録日: 2009/7/2 居住地: 投稿: 13 |
Re: 複数チャネルにおける同時通信 早速の返信ありがとうございます。
ただいま試しにシミュレーションしてみたところ、正常に動作しました。 まだQualNetの設定方法がよくわからないもので… childrenさん、ありがとうございました。 |
fo_ru | 投稿日時: 2009/7/17 15:28 |
新米 登録日: 2009/7/2 居住地: 投稿: 13 |
Re: 複数チャネルにおける同時通信 こんにちは。
現在、MAC層で動的にチャネル番号を指定してデータ伝送を行うという動作を実装しようと考えています。 そこで、mac_dot11.cpp内で以下のような関数を用いてチャネルを変更しようと思い、 手始めに2つのチャネルを用意し、ACKを送るときにチャネル0を指定してみたのですが、 チャネル0,1の両方が使用されていて思ったとおりに動作しません。 MAC層で指定したチャネルを使わせるにはどのようにすれば良いのでしょうか? ちなみに、下の関数はMacDot11ProcessFrame関数内のMacDot11StationTransmitAck関数の直前で使用しております。 void MacDot11ChangeToChannel( Node* node, MacDataDot11* dot11, unsigned int channelIndex) { unsigned int phyNumber = dot11->myMacData->phyNumber; /// Check if able to use channel BOOL phyCanListen = PHY_CanListenToChannel( node, phyNumber, channelIndex); if(!phyCanListen){ ERROR_ReportError("MacDot11ManagementChangeToChannel: " "Channel is invalid.\n"); } //MacDot11ManagementStopListeningToChannel BOOL phyIsListening = FALSE; phyIsListening = PHY_IsListeningToChannel( node, phyNumber, (short)channelIndex); if (phyIsListening == TRUE) { PHY_StopListeningToChannel( node, phyNumber, (short)channelIndex); } //end MacDot11ManagementStopListeningToChannel //MacDot11ManagementStartListeningToChannel phyIsListening = TRUE; phyIsListening = PHY_IsListeningToChannel( node, phyNumber, (short)channelIndex); if (phyIsListening == FALSE) { PHY_StartListeningToChannel( node, phyNumber, (short)channelIndex); } //end MacDot11ManagementStartListeningToChannel PHY_SetTransmissionChannel( node, phyNumber, channelIndex); } |
hiro | 投稿日時: 2009/7/19 18:22 |
長老 登録日: 2005/7/16 居住地: 投稿: 452 |
Re: 複数チャネルにおける同時通信 えっと、チャネル0の指定は具体的にどこでやってるのでしょうか。
というか、チャネル0とチャネル1の判定は、どのような方法でやってるのですか。 単にphyNumberをそのまま使った判定処理とか、関数呼び出しなので、 チャネル0とチャネル1の使い分けの部分がわかりません。 |
fo_ru | 投稿日時: 2009/7/20 9:56 |
新米 登録日: 2009/7/2 居住地: 投稿: 13 |
Re: 複数チャネルにおける同時通信 説明不足で申し訳ありません。
ノード1とノード2にそれぞれ2つのインタフェースを用意して、基本的に 1→2のフローでの通信はチャネル0を、 2→1のフローでの通信はチャネル1を使用しています。 2つのWireless Networkはチャネル1,2ともリスニング可能にしてあります。 ここでmac_dot11.cpp内で、MacDot11ProcessFrame関数内のMacDot11StationTransmitAck関数を 呼び出す直前でMacDot11ChangeToChannel(node,dot11,0);としています。 つまり2つのフローのACKを全てチャネル0で送りたいのですが、statファイルを見る限り チャネル1でもACKが送信されていてMacDot11ChangeToChannelが機能していないようなのです。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |