以下に、本願の開示する通信装置、通信装置制御方法、通信装置制御プログラム、情報処理装置及び情報処理システムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する通信装置、通信装置制御方法、通信装置制御プログラム、情報処理装置及び情報処理システムが限定されるものではない。
図1は、情報処理システムの一例を示す構成図である。本実施例に係る情報処理システムでは、複数の情報処理装置(以下、「サーバ」という。)10とアクセスポイント(Access Point:AP)20がラック1の中に搭載されている。ここで、ラック1の中には、多数のサーバ10が搭載されることが考えられる。その場合、サーバ10をLocal Area Network(LAN)ケーブルなどを用いて接続した場合、多数のケーブルが配置されることになり、ケーブルの管理が煩雑となる。そこで、ラック1内のサーバ10を無線LANを用いてネットワークに接続させることで、配線を簡略化することができる。
図1では、構成の一例としてサーバ10を3台記載したが、サーバ10の台数には特に制限は無い。また、図1には、サーバ10を搭載する空きスペースを3つ記載したがこの数にも特に制限は無い。
また、図1では、1台のアクセスポイント20を記載したがこれに限らない。例えば、サーバ10の台数が1台のアクセスポイント20が管理可能な台数より多い場合には、サーバ10をグループに分けて、グループ毎に接続先のアクセスポイント20を異ならせてもよい。以下の説明では、1台のアクセスポイント20と複数のサーバ10が属する1つのグループについて説明するが、複数のグループがある場合には、同様の処理がそれぞれのグループにおいて実行される。
サーバ10とアクセスポイント20とは、無線通信を用いて相互にデータの送受信を行う。
サーバ10は、アクセスポイント20を介して他のサーバ10及び外部の情報処理装置などの他の情報処理装置と通信を行う。具体的には、サーバ10は、他の情報処理装置へ送信するデータをアクセスポイント20へ送信することで、他の情報処理装置へのデータ送信を行う。また、サーバ10は、他の情報処理装置から送信されたデータをアクセスポイント20から受信する。
図2は、サーバの詳細を表す構成図である。サーバ10は、複数のCentral Processing Unit(CPU)11、複数のメモリ12、ストレージ13及びクロスバスイッチ14を有する。さらに、サーバ10は、複数の無線モジュール100及び各無線モジュールに対応するアンテナ15を有する。
メモリ12及びストレージ13は、CPU11とバスで接続されている。CPU11は、メモリ12及びストレージ13に対してデータの読み書きが可能である。CPU11は、ストレージ13に格納されたプログラム等をメモリ12に展開する等して実行する。
各CPU11は、クロスバスイッチ14を介して、各無線モジュール100のそれぞれと接続する。CPU11は、他の情報処理装置へ送信するデータを、クロスバスイッチ14を経由して無線モジュール100へ送信する。また、CPU11は、他の情報処理装置からのデータを、クロスバスイッチ14を経由して無線モジュール100から受信する。
無線モジュール100は、クロスバスイッチ14から受信したデータを、アンテナ15を介してアクセスポイント20へ出力する。また、無線モジュール100は、他の情報処理装置が送信したデータをアクセスポイント20から受信する。そして、無線モジュール100は、受信したデータをCPU11へクロスバスイッチ14を介して送信する。
図3は、無線モジュールの詳細を表すブロック図である。図3に示すように、無線モジュール100は、送信部101、受信部102、バックオフタイム設定部103、判定部104、パケット解析部105及びInterface(I/F)106を有する。
I/F106は、無線モジュール100がクロスバスイッチ14との間でデータの送受信を行う場合のインタフェースである。I/F106は、クロスバスイッチ14からデータを受信する。そして、I/F106は、受信したデータをバックオフタイム設定部103へ送信する。また、I/F106は、他の情報処理装置から送信されたデータをパケット解析部105から受信する。そして、I/F106は、受信したデータをクロスバスイッチ14へ送信する。
送信部101は、他の情報処理装置へ送信するデータの入力をI/F106から受ける。そして、送信部101は、後述する経過時間計測部133からバックオフタイムの経過完了の通知を受信すると、I/F106から受信したデータを、アンテナ15を介してアクセスポイント20へ送信する。
受信部102は、他の情報処理装置から送信されたデータを、アンテナ15を介してアクセスポイント20から受信する。他の情報処理装置から送信されたデータにはACKなども含まれる。そして、受信部102は、受信した他の情報処理装置からのデータをパケット解析部105へ出力する。
また、受信部102は、ビーコンをアクセスポイント20から受信する。そして、受信部102は、ビーコンをパケット解析部105へ出力する。
また、受信部102は、アクセスポイント20との間の通信経路(チャネル)において信号の検出を行う。以下では、アクセスポイント20と無線モジュール100との間のチャネルを、単に「チャネル」という。そして、受信部102は、チャネルにおける信号の検出結果を判定部104へ出力する。
パケット解析部105は、ビーコンやデータを受信部102から受信する。そして、パケット解析部105は、受信した信号を解析する。
受信した信号がビーコンの場合、パケット解析部105は、後述する初期値設定部132へビーコンの受信を通知する。
受信した信号がACKの場合、パケット解析部105は、ACKの受信を後述する再設定部134へ通知する。
判定部104は、チャネルにおいて信号が検出されなくなってから、アイドル状態に移行したと判定するための期間であるDIFS期間を記憶している。
判定部104は、チャネルにおける信号検出結果を受信部102から受信する。そして、判定部104は、信号が検出される状態から信号が検出されない状態に遷移すると、時間の計測を開始する。そして、判定部104は、時間の計測を始めてからDIFS期間信号が検出されない状態が継続すると、チャネルがアイドル状態に移行したと判定する。以下では、信号が検出されるチャネルの状態を、「ビジー」という。判定部104によりチャネルがアイドル状態に移行したと判定された状態が、「通信経路が使用可能」の一例にあたる。
判定部104は、アイドル状態に移行したと判定すると、チャネルがアイドル状態である旨の通知をバックオフタイム設定部103の経過時間計測部133へ出力する。その後、判定部104は、受信部102から受信したチャネルにおける信号の検出結果を経過時間計測部133へ転送する。
これに対して、時間計測開始後DIFS期間経過する前に信号の検出が通知されると、判定部104は、チャネルがビジーに遷移したと判定し、時間の計測を終了し、再度信号が検出されない状態に遷移するまで待機する。
バックオフタイム設定部130は、設定レジスタ131、初期値設定部132、経過時間計測部133及び再設定部134を有している。バックオフタイム設定部130は、例えば、Field-Programmable Gate Array(FPGA)で実現される。
設定レジスタ131は、フリップフロップ等のデータ保持回路である。設定レジスタ131には、バックオフタイムの初期値及び再設定値が予め格納されている。ここで、バックオフタイムとは、チャネルがアイドル状態になってから無線モジュール100がデータ送信を開始するまでの待機時間である。
設定レジスタ131は、例えば、バックオフタイムの初期値及び再設定値として図4に示すような情報を保持している。図4は、実施例1に係る設定レジスタが格納する情報を示す一例の図である。図4のテーブル150におけるビットの列は、設定レジスタ131の各ビットを表している。また、テーブル150におけるフィールドの列は、対応するビットに格納されているデータの情報である。そして、テーブル150における説明の列は、格納されている各データがどのようなデータであるかの説明である。
本実施例では、設定レジスタ131は、32ビットの空間を有する。そして、図4に示すように、設定レジスタ131の8〜31ビットは、リザーブとして確保されており、使用されていない。
そして、設定レジスタ131の4〜7ビットを使用して、再設定値を格納している。例えば、テーブル150における説明に記載しているように、4〜7ビットが「0001」である場合、再設定値はスロットタイムに1を乗算した値である。また、4〜7ビットが「0010」である場合、再設定値はスロットタイムに2を乗算した値である。
ここで、「スロットタイム」とは、バックオフタイムの最小単位であり、例えば、フレーム1つを送信するのにかかる時間である。すなわち、スロットタイムにnを乗算した値をバックオフタイムとすることは、送信部101は、チャネルがアイドル状態になってからn個のスロットタイムが経過するまで、データの送信を待機するということである。
また、設定レジスタ131の0〜3ビットを使用して、初期値を格納している。例えば、テーブル150における説明に記載しているように、0〜3ビットが「0001」である場合、初期値はスロットタイムに1を乗算した値である。また、0〜3ビットが「0010」である場合、初期値はスロットタイムに2を乗算した値である。
ここで、本実施例では、再設定値及び初期値ともに設定レジスタ131の4ビット分を用いて情報を格納しているが、さらに大きな値を格納する場合には、設定レジスタ131における使用領域を拡大すればよい。
本実施例に係るサーバ10では、各サーバ10の無線モジュール100毎に異なる初期値が割り当てられている。例えば、サーバ10が3台あり、各サーバ10に無線モジュール100が3つずつ搭載されている場合、1×スロットタイム〜9×スロットタイムのいずれかが各無線モジュール100のそれぞれに異なるように割り当てられている。特に、初期値の割り当ては、各サーバ10に対して割り当て可能な最短時間から順に1つずつスロットタイムが増えるように割り当てられることが好ましい。例えば、割り当て可能な最短時間が1×スロットタイムの場合、いずれかのサーバ10に1×スロットタイムを割り当て、その他のサーバ10に順にスロットタイムを1ずつ増やしたバックオフタイムを割り当てる。
このように、最短時間を割り当てることで、DIFS期間経過後の待機時間を短縮することができる。ただし、ある程度の待機時間を許容できる場合には、単にそれぞれのサーバ10の初期値が異なればよい。
また、本実施例に係るサーバ10では、いずれの無線モジュール100にも同じ再設定値が割当てられている。ここで、本実施例における再設定値は、アクセスポイント20に接続する全ての無線モジュール100の数にスロットタイムを乗算した値に一致する。例えば、アクセスポイント20に接続する無線モジュール100の数がn個であれば、バックオフタイムの再設定値は、n×スロットタイムとすることが好ましい。例えば、アクセスポイント20に3台のサーバ10が接続し、それぞれのサーバ10に3枚の無線モジュール100が搭載されている場合、再設定値はスロットタイムに9を乗算した値であることが好ましい。
このように、無線モジュール100の個数にスロットタイムを乗算した値を再設定値とすることで、初期値として最短時間から順に1スロットタイムずつ増やした値を無線モジュール100に割り当てている場合には、初回の通信以降の待機時間を最短にすることができる。
ただし、ある程度の待機時間を許容できる場合には、初期値はこれ以外の値を取ることができる。例えば、最短の初期値を1×スロットタイム以上とし、その後、所定数のスロットタイムを加えた値を無線モジュール100に割り当ててもよい。また、バックオフタイムの再設定値も、待機時間を最短にしなくてもよければ、各ノードにおいてバックオフタイムを再設定する時点で、他のノードが有しているバックオフタイムの残り時間よりも長い値であれば、他の値であってもよい。
初期値設定部132は、ビーコンを受信した旨の通知をパケット解析部105から受ける。そして、初期値設定部132は、ビーコン受信の通知を受けると、設定レジスタ131の初期値を表すビットを参照し、初期値を取得する。そして、初期値設定部132は、取得した初期値を経過時間計測部133へバックオフタイムとして設定する。
再設定部134は、I/F106が送信部101へ送信したデータと同じデータを受け取ることで、送信データの有無を判定する。
チャネルがアイドル状態になった後バックオフタイムが経過するまでに、送信データが送られてこなかった場合、再設定部134は、設定レジスタ131から再設定値を取得する。そして、再設定部134は、取得した再設定値を経過時間計測部133へバックオフタイムとして再設定する。
これに対して、チャネルがアイドル状態になった後バックオフタイムが経過するまでに、送信データが発生した場合、再設定部134は、パケット解析部105からのACKの受信の通知を待つ。そして、パケット解析部105からACKの受信の通知を受けると、設定レジスタ131から再設定値を取得する。そして、再設定部134は、取得した再設定値を経過時間計測部133へバックオフタイムとして再設定する。
経過時間計測部133は、カウンタを有している。そして、経過時間計測部133は、初期値設定部132からバックオフタイムの初期値の入力を受けて、カウンタに初期値を設定する。
その後、経過時間計測部133は、チャネルがアイドル状態である旨の通知を判定部104から受ける。そして、経過時間計測部133は、初期値が設定されたカウンタが0になるまでカウントダウンを行う。経過時間計測部133は、カウンタが0になると、バックオフタイムの経過を送信部101へ通知する。また、経過時間計測部133は、バックオフタイムの経過を再設定部134へ通知する。
その後、経過時間計測部133は、再設定部134からバックオフタイムの再設定値の入力を受けて、カウンタに再設定値を設定する。そして、経過時間計測部133は、チャネルがアイドル状態である旨の通知を判定部104から受け取ると、再設定値のカウントダウンを開始する。経過時間計測部133は、再設定値が設定されたカウンタが0になるまでカウントダウンを行う。経過時間計測部133は、カウンタが0になると、バックオフタイムの経過を送信部101へ通知する。
その後、経過時間計測部133は、再設定部134からバックオフタイムの再設定値の入力を受けて、カウンタに再設定値を再度設定する。経過時間計測部133は、以上の再設定値の設定、時間のカウント及びバックオフタイムの経過の通知を繰り返す。
ただし、経過時間計測部133は、カウントダウン中に判定部104からチャネルがビジーになった通知を受けると、カウントダウンを中止する。そして、経過時間計測部133は、カウントダウン中止前のバックオフタイムを保持しつつ、判定部104からチャネルがアイドル状態に遷移した旨の通知を再度受けるまで待機する。その後、経過時間計測部133は、カウントダウン中止前の値からバックオフタイムのカウントダウンを再開する。
ここで、本実施例に係る無線モジュール100におけるバックオフタイムによる通信の競合の回避について説明する。
上述したように、本実施例では、初期値は、無線モジュール100毎に異なるように割当てられている。そのため、最初に経過時間計測部133に設定される初期値は、無線モジュール100毎に異なる。すなわち、無線モジュール100のバックオフタイムの初期値の経過が完了するタイミングは重ならない。つまりバックオフタイムの初期値を用いた通信では、競合は発生しない。特に、本実施例では、バックオフタイムの初期値として、最小値を1×タイムスロットとしていずれかのサーバ10に割り当て、他のサーバ10には、1つずつタイムスロットを増やした初期値を割り当てている。この場合、1×タイムスロットを初期値として割り当てられたサーバ10が最初に通信を行い、他のサーバ10は、カウントダウン中の初期値を持ち越す。
さらに、本実施例では、再設定値は、無線モジュール100の個数×スロットタイムである。つまり、本実施例では、バックオフタイムが再設定されたサーバ10は、その時点で最もバックオフタイムが長いサーバ10より1スロットタイム長いバックオフタイムが設定される。これにより、各無線モジュール100のバックオフタイムは常に異なることになり、無線モジュール100同士の通信の競合は発生しない。
送信部101は、他の情報処理装置へ送信するデータをI/F106から受信する。そして、送信部101は、経過時間計測部133からバックオフタイムの経過の通知を受けると、I/F106から受信したデータをアクセスポイント20へ送信する。ここで、バックオフタイムの経過の通知を受けた時点で、送信するデータが無ければ、送信部101は、データ送信は行わずに待機する。
次に、図5及び図6を参照して、本実施例に係る情報処理システムにおける通信の全体的な流れについて説明する。図5は、実施例1において全てのサーバに送信データが有る場合の通信を表すシーケンス図である。図6は、実施例1において送信データが無いサーバが存在する場合の通信を表すシーケンス図である。ここでは、サーバ10としてサーバ10A〜10Cがある場合で説明する。また、各サーバ10A〜10Cには、それぞれ1つの無線モジュール100が搭載されている。
先ず、図5を参照して、全てのサーバに送信データがある場合について説明する。サーバ10Aは、バックオフタイムの初期値が1×スロットタイムである。また、サーバ10Bは、バックオフタイムの初期値が2×スロットタイムである。また、サーバ10Cは、バックオフタイムの初期値が3×スロットタイムである。さらに、サーバ10A〜10Cのバックオフタイムの再設定値は3×スロットタイムである。
サーバ10A〜10Cは、チャネルがビジーでなくなった後DIFS期間待機する。その間、チャネルがビジーにならなければ、サーバ10A〜10Cは、バックオフタイムの初期値をそれぞれの経過時間計測部133に設定する。具体的には、サーバ10Aの初期値設定部132は、期間201で表されるバックオフタイムの初期値を経過時間計測部133に設定する。ここで、期間201で表される小さな四角が1つのスロットタイムを表すものとする。サーバ10Bの初期値設定部132は、期間202で表されるバックオフタイムの初期値を経過時間計測部133に設定する。サーバ10Cの初期値設定部132は、期間203で表されるバックオフタイムの初期値を経過時間計測部133に設定する。
この状態では、サーバ10Aのバックオフタイムが最も短い。そのため、サーバ10Aの経過時間計測部133がバックオフタイムが経過したと判定すると、サーバ10Aの送信部101は、データ204をアクセスポイント20へ送信する。この時、期間202の斜線部分及び期間203の斜線部分が、それぞれサーバ10B及び10Cのバックオフタイムとして、次の経過時間の計測に繰り越される。図5中の各バックオフタイムのうち斜線で表される期間は、次の経過時間の計測に繰り越される期間である。すなわち、サーバ10Bの経過時間計測部133は、1×スロットタイムを次の経過時間の計測に繰り越す。また、サーバ10Cの経過時間計測部133は、2×スロットタイムを次の経過時間の計測に繰り越す。
アクセスポイント20は、データ204を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK205をサーバ10Aに送信する。ここで、SIFS期間は、DIFS期間に比べて短い期間として設定されている。これにより、サーバ10B又は10Cがデータを送信する前に、アクセスポイント20はACKの応答を返すことができる。
サーバ10Aの受信部102は、ACK205をアクセスポイント20から受信する。そして、サーバ10Aのパケット解析部105は、ACK205の受信を再設定部134へ通知する。サーバ10Aの再設定部134は、再設定値である3×スロットタイムの期間206を経過時間計測部133へ再設定する。ここで、図5中の中括弧で範囲が示される期間は再設定期間である。
この場合、サーバ10Bの経過時間計測部133は、繰り越した1×スロットタイムである期間207をバックオフタイムとする。また、サーバ10Cの経過時間計測部133は、繰り越した2×スロットタイムである期間208をバックオフタイムとする。
この状態では、サーバ10Bのバックオフタイムが最も短い。そのため、サーバ10Bの経過時間計測部133によりバックオフタイムが経過したと判定されると、サーバ10Bの送信部101は、データ209をアクセスポイント20へ送信する。この時、期間206の斜線部分及び期間208の斜線部分が、それぞれサーバ10A及び10Cのバックオフタイムとして、次の経過時間の計測に繰り越される。
アクセスポイント20は、データ209を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK210をサーバ10Bに送信する。
サーバ10Bの受信部102は、ACK210をアクセスポイント20から受信する。そして、サーバ10Bのパケット解析部105は、ACK210の受信を再設定部134へ通知する。サーバ10Bの再設定部134は、再設定値である3×スロットタイムの期間212を経過時間計測部133へ再設定する。
この場合、サーバ10Aの経過時間計測部133は、繰り越した2×スロットタイムである期間211をバックオフタイムとする。また、サーバ10Cの経過時間計測部133は、繰り越した1×スロットタイムである期間213をバックオフタイムとする。
この状態では、サーバ10Cのバックオフタイムが最も短い。そのため、サーバ10Cの経過時間計測部133がバックオフタイムが経過したと判定すると、サーバ10Cの送信部101は、データ214をアクセスポイント20へ送信する。この時、期間211の斜線部分及び期間212の斜線部分が、それぞれサーバ10A及び10Bのバックオフタイムとして、次の経過時間の計測に繰り越される。
アクセスポイント20は、データ214を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK215をサーバ10Cに送信する。
次に、図6を参照して、送信データが無いサーバが存在する場合について説明する。この場合も、サーバ10A〜10Cの初期値及び再設定値は、図5の場合と同じである。
サーバ10A〜10Bは、チャネルがビジーでなくなった後DIFS期間待機する。その間、チャネルがビジーにならなければ、サーバ10A〜10Bは、バックオフタイムの初期値である期間221,222及び223をそれぞれの経過時間計測部133に設定する。
この状態では、サーバ10Aのバックオフタイムが最も短い。そのため、サーバ10Aの経過時間計測部133によるバックオフタイムが経過したと判定されると、サーバ10Aの送信部101は、データ224をアクセスポイント20へ送信する。この時、期間222の斜線部分及び期間223の斜線部分が、それぞれサーバ10B及び10Cのバックオフタイムとして、次の経過時間の計測に繰り越される。
アクセスポイント20は、データ224を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK225をサーバ10Aに送信する。
サーバ10Aの受信部102は、ACK225をアクセスポイント20から受信する。そして、サーバ10Aのパケット解析部105は、ACK225の受信を再設定部134へ通知する。サーバ10Aの再設定部134は、再設定値である3×スロットタイムの期間226を経過時間計測部133へ再設定する。
この場合、サーバ10Bの経過時間計測部133は、繰り越した1×スロットタイムである期間227をバックオフタイムとする。また、サーバ10Cの経過時間計測部133は、繰り越した2×スロットタイムである期間229をバックオフタイムとする。
この状態では、サーバ10Bのバックオフタイムが最も短い。そのため、サーバ10Bの経過時間計測部133が、最初にバックオフタイムが経過したと判定する。しかし、サーバ10Bには送信データが無い。そこで、サーバ10Bの再設定部134は、再設定値である3×スロットタイムの期間228を経過時間計測部133へ再設定する。
この場合、サーバ10Bからのデータ送信は無いため、チャネルはビジーにならない。そこで、サーバ10C及び10Aの経過時間計測部133は、バックオフタイムの経過の計測を継続する。また、サーバ10Bの経過時間計測部133も、再設定されたバックオフタイムの経過の計測を継続する。
この場合、次にバックオフタイムが短いのはサーバ10Cであるので、サーバ10Cの経過時間計測部133が、次にバックオフタイムが経過したと判定する。そして、サーバ10Cの送信部101は、データ230をアクセスポイント20へ送信する。この時、期間226の斜線部分及び期間228の斜線部分が、それぞれサーバ10A及び10Bのバックオフタイムとして、次の経過時間の計測に繰り越される。
アクセスポイント20は、データ230を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK231をサーバ10Cに送信する。
サーバ10Cの受信部102は、ACK231をアクセスポイント20から受信する。そして、サーバ10Cのパケット解析部105は、ACK231の受信を再設定部134へ通知する。サーバ10Cの再設定部134は、再設定値である3×スロットタイムの期間234を経過時間計測部133へ再設定する。
この場合、サーバ10Aの経過時間計測部133は、繰り越した1×スロットタイムである期間232をバックオフタイムとする。また、サーバ10Bの経過時間計測部133は、繰り越した2×スロットタイムである期間233をバックオフタイムとする。
この状態では、サーバ10Aのバックオフタイムが最も短い。そのため、サーバ10Aの経過時間計測部133によりバックオフタイムが経過したと判定されると、サーバ10Aの送信部101は、データ235をアクセスポイント20へ送信する。この時、期間233の斜線部分及び期間234の斜線部分が、それぞれサーバ10B及び10Cのバックオフタイムとして、次の経過時間の計測に繰り越される。
アクセスポイント20は、データ235を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK236をサーバ10Aに送信する。
次に、図7を参照して、本実施例に係る無線モジュール100における無線通信処理の流れについて説明する。図7は、実施例1に係る無線モジュールにおける無線通信処理のフローチャートである。
設定レジスタ131に、初期値及び設定値がセットされる(ステップS1)。
チャネルがビジー状態から信号が検出されない状態に遷移し、その後ビジー状態に遷移せずにSIFS期間が経過すると、初期値設定部132は、バックオフタイムの初期値を設定レジスタ131から取得する。そして、初期値設定部132は、初期値をバックオフタイムとして経過時間計測部133に設定する(ステップS2)。
判定部104は、チャネルがアイドル状態か否かを判定する(ステップS3)。チャネルがアイドル状態でない場合(ステップS3:否定)、チャネルがアイドルになるまで待機する。
これに対して、チャネルがアイドル状態の場合(ステップS3:肯定)、判定部104は、DIFS期間が経過したか否かを判定する(ステップS4)。DIFS期間が経過していない場合(ステップS4:否定)、判定部104は、ステップS3へ戻る。
これに対して、DIFS期間が経過した場合(ステップS4:肯定)、判定部104は、DIFS期間の経過を経過時間計測部133へ通知する。経過時間計測部133は、DIFS期間の経過の通知を受けて、バックオフタイムを減算することで、バックオフタイムの経過の計測を行う(ステップS5)。
経過時間計測部133は、バックオフタイムが経過したか否かを判定する(ステップS6)。バックオフタイムが経過していない場合(ステップS6:否定)、無線モジュール100は、ステップS3へ戻る。
これに対して、バックオフタイムが経過した場合(ステップS6:肯定)、再設定部134は、送信データがあるか否かを判定する(ステップS7)。送信データが無い場合(ステップS7:否定)、再設定部134は、ステップS10へ進む。
一方、送信データがある場合(ステップS7:肯定)、送信部101は、データをアクセスポイント20へ送信する(ステップS8)。
その後、再設定部134は、ACKを受信したか否かを判定する(ステップS9)。ACKを受信していない場合(ステップS9:否定)、再設定部134は、ACKの受信まで待機する。
送信データが無い場合(ステップS7:否定)又はACKを受信した場合(ステップS9:肯定)、再設定部134は、バックオフタイムの再設定値を設定レジスタ131から取得する。そして、再設定部134は、再設定値をバックオフタイムとして経過時間計測部133に設定する(ステップS10)。
バックオフタイム設定部103は、通信が終了したか否かを判定する(ステップS11)。通信が終了していない場合(ステップS11:否定)、バックオフタイム設定部103は、ステップS3へ戻る。
これに対して、通信が終了した場合(ステップS11:肯定)、無線モジュール100は、無線通信処理を終了する。
以上に説明したように、本実施例に係る情報処理装置は、それぞれの無線モジュールに、1スロットタイムを最小値としてスロットタイムを1つずつ増やした値がバックオフタイムの初期値として割り当てられる。さらに、各無線モジュールには、無線モジュールの総数が再設定値として割り当てられる。これにより、本実施例に係る情報処理装置は、チャネルがアイドル状態になった後の待機時間を短縮することができ、さらに、通信の競合の発生を抑制することができる。
また、本実施例では、待機時間を最短にするように初期値及び再設定値を選択した。ただし、待機時間に余裕がある場合、初期値は無線モジュール毎に重ならなければよく、再設定値は、いずれの無線モジュールにおいても再設定を行うときに他の無線モジュールの残りのバックオフタイムよりも長い値となるように設定されていればよい。このように初期値及び再設定値を設定した場合でも、通信の競合の発生を抑制することができる。
図8は、情報処理システムの他の例を示す構成図である。本実施例に係る情報処理システムは、管理サーバ2によって各サーバ10が管理されていることが実施例1と異なる。本実施例に係るサーバ10も図2のブロック図で表される。また、本実施例に係る無線モジュール100も図3のブロック図で表される。以下では、実施例1と同様の各部の動作については説明を省略する。
本実施例に係る情報処理システムは、複数のサーバ10、アクセスポイント20及びネットワークスイッチ30がラック1に搭載されている。また、本実施例に係る情報処理システムは、管理サーバ2を有している。
管理サーバ2は、ネットワークスイッチ30に接続している。また、アクセスポイント20は、ネットワークスイッチ30に接続している。
管理サーバ2は、アクセスポイント20及びネットワークスイッチ30を介して、サーバ10と通信を行う。
管理サーバ2は、ネットワークスイッチ30及びアクセスポイント20を介して、バックオフタイムの初期値及び再設定値をサーバ10へ通知する。そして、管理サーバ2は、サーバ10の設定レジスタ131にバックオフタイムの初期値及び設定値を格納させる。以下では、管理サーバ2による初期値及び再設定値の設定をまとめて「バックオフタイム設定」と言う場合がある。管理サーバ2は、各サーバ10にバックオフタイム設定を行う。例えば、管理サーバ2は、あるサーバ10にバックオフタイムの設定を行った後、そのサーバ10からのACKの返信を受けて、次のサーバ10にバックオフタイムの設定を行う。
ここで、本実施例では、管理サーバ2は、ラック1の外に配置されているが、ラック1の中に搭載されてもよい。
アクセスポイント20は、アクセスポイント20に接続された全てのサーバ10にバックオフタイムが設定された後、適当なタイミングでビーコンを各サーバ10へ送信する。
各サーバ10の受信部102は、バックオフタイム設定を管理サーバ2から受信する。そして、受信部102は、パケット解析部105、I/F106及びクロスバスイッチ14を介して、バックオフタイム設定をCPU11へ送信する。
CPU11は、バックオフタイム設定で指定された初期値及び再設定値を取得し、設定レジスタ131に格納する。さらに、CPU11は、ACKの送信を送信部101に指示する。
送信部101は、ACKの送信の指示をCPU11から受ける。そして、送信部101は、SIFS期間待機した後、ACKを管理サーバ2へ返す。
その後、各サーバ10は、ビーコンを受信後、データの送信処理を開始する。
次に、図9を参照して、本実施例に係る情報処理システムにおける通信の全体的な流れについて説明する。図9は、実施例2に係る情報処理システムにおける通信を表すシーケンス図である。ここでは、サーバ10としてサーバ10A〜10Cがある場合で説明する。また、各サーバ10A〜10Cには、それぞれ1つの無線モジュール100が搭載されている。
情報システムの稼動が開始すると、管理サーバ2は、サーバ10Aにバックオフタイム設定241を送信する。バックオフタイム設定241は、バックオフタイムの初期値が1×スロットタイムであり、再設定値が3×スロットタイムである。
サーバ10Aは、バックオフタイム設定241を管理サーバ2から受信し、設定レジスタ131に格納する。具体的には、サーバ10Aは、受信部102でバックオフタイム設定を受信する。そして、受信部102は、パケット解析部105、I/F106及びクロスバスイッチ14を介して、バックオフタイム設定241をCPU11へ送信する。CPU11は、バックオフタイムで指定された初期値及び再設定値を取得し、設定レジスタ131に格納する。そして、サーバ10Aの送信部101は、SIFS期間待機した後、ACK242を管理サーバ2へ返す。
管理サーバ2は、ACK242を受信した後にSIFS期間待機し、その後、バックオフタイム設定243をサーバ10Bへ送信する。バックオフタイム設定243は、バックオフタイムの初期値が2×スロットタイムであり、再設定値が3×スロットタイムである。
サーバ10Bは、バックオフタイム設定243を管理サーバ2から受信し、設定レジスタ131に格納する。そして、サーバ10Bは、SIFS期間待機した後、ACK244を管理サーバ2へ返す。
管理サーバ2は、ACK244を受信した後にSIFS期間待機し、その後、バックオフタイム設定245をサーバ10Cへ送信する。バックオフタイム設定245は、バックオフタイムの初期値が3×スロットタイムであり、再設定値が3×スロットタイムである。
サーバ10Cは、バックオフタイム設定245を管理サーバ2から受信し、設定レジスタ131に格納する。そして、サーバ10Cは、SIFS期間待機した後、ACK246を管理サーバ2へ返す。
アクセスポイント20は、管理サーバ2によるサーバ10A〜10Cに対するバックオフタイム設定が完了すると、DIFS期間の経過を待ち、その後適当なタイミングでビーコン247をサーバ10A〜10Cのそれぞれに送信する。サーバ10A〜10Cは、アクセスポイント20からビーコン247を受信すると、チャネルがビジー状態でないことを検出した後、DIFS期間待機してチャネルがアイドル状態であることを確認し、無線通信処理を行う。
図9におけるこの後の無線通信処理は、実施例1と同様であるので説明を省略する。図9では、図5と同様に全てのサーバ10に送信データがある場合の通信を表しているが、これは通信の一例である。例えば、送信データが無いサーバ10がある場合には、図9においてサーバ10A〜10Cがビーコン247を受信した後の無線通信処理は、図6で表される無線通信処理のようになる。
以上に説明したように、本実施例に係る情報処理装置は、管理装置からバックオフタイムの初期値及び再設定値を取得し、取得した初期値及び再設定値を用いて通信を行う。管理装置が各ノードの初期値及び再設定値を統合管理することで、情報処理装置や無線モジュールの個数、すなわちノード数に変更があった場合に、管理装置は、ノード数の変更に合わせて初期値及び再設定値を迅速に変更することができる。すなわち、ノード数の変更が発生した場合にも、チャネルがアイドル状態になった後の待機時間の短縮及びアクセス競合の発生の抑制を適切に実施することができる。
次に、実施例3について説明する。本実施例に係る情報処理装置であるサーバ10及び無線モジュール100は、それぞれの送信比率に応じて通信量を変更することが実施例1と異なるものである。本実施例に係るサーバ10も、図2のブロック図で表される。また、本実施例に係る無線モジュール100も、図3のブロック図で表される。以下の説明では、実施例1と同様の動作を行う各部については説明を省略する。
本実施例に係る設定レジスタ131は、例えば、バックオフタイムの初期値及び再設定値として図10に示すような情報を保持している。図10は、実施例3に係る設定レジスタが格納する情報を示す一例の図である。図10のテーブル151におけるビットの列は、設定レジスタ131の各ビットを表している。また、テーブル151におけるフィールドの列は、対応するビットに格納されているデータの情報である。そして、テーブル151における説明の列は、格納されている各データがどのようなデータであるかの説明である。テーブル151は、8個の無線モジュール100がアクセスポイント20に接続する場合を例に記載されている。
設定レジスタ131の24〜31ビットは、リザーブとして残されている。また、設定レジスタ131の21〜23ビットには、ノード#8の送信比率が格納されている。また、設定レジスタ131の18〜20ビットには、ノード#7の送信比率が格納されている。また、設定レジスタ131の15〜17ビットには、ノード#6の送信比率が格納されている。また、設定レジスタ131の12〜14ビットには、ノード#5の送信比率が格納されている。また、設定レジスタ131の9〜11ビットには、ノード#4の送信比率が格納されている。また、設定レジスタ131の6〜8ビットには、ノード#3の送信比率が格納されている。また、設定レジスタ131の3〜5ビットには、ノード#2の送信比率が格納されている。また、設定レジスタ131の0〜2ビットには、ノード#1の送信比率が格納されている。
ここで、ノード#1〜#8は、それぞれの数字をノード番号とする無線モジュール100を表している。そして、ノード番号は、各無線モジュール100に予め割り当てられている。
本実施例では、送信比率は、図10のように、設定レジスタ131の3ビットで表される。例えば、ビット列が001の場合は送信比率が1、ビット列が010の場合は送信比率が2などとして、送信比率として1〜7までの値を表すことができる。ここで、送信比率とは、送信比率の値を比とする比率である。例えば、送信比率が2の場合、送信比率が1の場合に比べて2倍の量の通信を行う。また、送信比率が7の場合、送信比率が1の場合に比べて7倍の量の通信を行う。ただし、本実施例では、ノード#1の送信比率が1となるように設定されている。
以下では、ノード番号としてI(I=1,2,3,4,・・・)が割り当てられている無線モジュール100を「ノード#I」として説明する。
初期値設定部132は、設定レジスタ131から各ノード番号に対応する送信比率を取得する。そして、I=1の場合、すなわちノード#1の初期値設定部132は、初期値を1×スロットタイムとする。また、Iが2以上の場合、ノード#Iの初期値設定部132は、ノード#(I−1)の初期値をスロットタイムで除算し、除算結果とノード#(I−1)の送信比率とを加算した値にスロットタイムを乗算した値を初期値とする。すなわち、ノード#Iの初期値Iは次の数式(1)で表される。
そして、各無線モジュール100の初期値設定部132は、アクセスポイント20からビーコンを受信すると、決定した初期値を経過時間計測部133にバックオフタイムとして設定する。
再設定部134は、設定レジスタ131から各ノード番号に対応する送信比率を取得する。次に、ノード#Iの再設定部134は、各ノードの送信比率の合計し、自ノードであるノード#Iの送信比率から1を減算した値を合計結果から減算し、減算結果にスロットタイムを乗算した値を再設定値とする。すなわち、ノード#Iの再設定値Iは次の数式(2)で表される。
そして、再設定部134は、バックオフタイムが経過すると、送信データがあるか否かを判定する。送信データがない場合、再設定部134は、直ぐに以下のバックオフタイムの再設定処理を行う。これに対して、送信データがある場合、再設定部134は、アクセスポイント20からのACKの受信を待って、以下のバックオフタイムの再設定処理を行う。
再設定部134の再設定処理について説明する。再設定部134は、自ノードの送信比率に応じた回数連続して通信を行った否かを判定する。ここで、自ノードの送信比率に応じた回数とは、例えば、自ノードの送信比率の値である。例えば、自ノードの送信比率が3であれば、自ノードの送信比率に応じた回数とは3回である。すなわち、この場合、再設定部134は、3回の通信を連続して行ったか否かを判定する。
自ノードの送信比率に応じた回数連続して通信を行っていない場合、再設定部134は、1×スロットタイムを経過時間計測部133に設定する。すなわち、再設定部134は、送信比率の値の回数連続して通信が行われるまで、すなわち送信比率の値から1を減算した回数、1×スロットタイムを経過時間計測部133に設定することを繰り返す。例えば、送信比率の値が3であれば、再設定部134は、バックオフタイムの初期値が経過して通信が行われた後、1×スロットタイムを経過時間計測部133に2回設定する。
そして、送信比率の値の回数連続して通信が行われると、再設定部134は、数式(2)を用いて求めた再設定値をバックオフタイムとして経過時間計測部133に設定する。
次に、図11を参照して、本実施例に係る情報処理システムにおける通信の全体的な流れについて説明する。図11は、実施例3に係る情報処理システムにおける通信を表すシーケンス図である。ここでは、サーバ10としてサーバ10A〜10Dがある場合で説明する。また、各サーバ10A〜10Dには、それぞれ1つの無線モジュール100が搭載されている。すなわち、ここではサーバ10A〜10Dとそれぞれに搭載されている無線モジュール100とは1対1なので、サーバ10A〜10Dのそれぞれを1つのノードとして説明する。また、ここでは、サーバ10A〜10Dのいずれにも送信データがある場合について説明する。
サーバ10Aのノード番号が1であり、サーバ10Bのノード番号が2であり、サーバ10Cのノード番号が3であり、サーバ10Dのノード番号が4である。
そして、サーバ10A及び10Bの送信比率は1であり、サーバの10Cの送信比率は2であり、サーバ10Dの送信比率は3である。
サーバ10Aの初期値設定部132は、サーバ10Aがノード#1であるので数式(1)より、1×スロットタイムを初期値とする。
また、サーバ10Bの初期値設定部132は、数式(1)より、ノード#1の初期値をスロットタイムで除算した値(=1)にノード#1の送信比率(=1)を加算し、加算結果にスロットタイムを乗算して初期値を算出する。すなわち、サーバ10Bの初期値設定部132は、2×スロットタイムを初期値とする。
また、サーバ10Cの初期値設定部132は、数式(1)より、ノード#2の初期値をスロットタイムで除算した値(=2)にノード#2の送信比率(=1)を加算し、加算結果にスロットタイムを乗算して初期値を算出する。すなわち、サーバ10Cの初期値設定部132は、3×スロットタイムを初期値とする。
また、サーバ10Dの初期値設定部132は、数式(1)より、ノード#3の初期値をスロットタイムで除算した値(=3)にノード#1の送信比率(=2)を加算し、加算結果にスロットタイムを乗算して初期値を算出する。すなわち、サーバ10Dの初期値設定部132は、5×スロットタイムを初期値とする。
そして、サーバ10A〜10Dは、チャネルがビジーでなくなった後DIFS期間待機する。その間、チャネルがビジーにならなければ、サーバ10A〜10Dは、バックオフタイムの初期値をそれぞれの経過時間計測部133に設定する。
具体的には、サーバ10Aの初期値設定部132は、期間251で表されるバックオフタイムの初期値、すなわち1×タイムスロットをバックオフタイムとして経過時間計測部133に設定する。サーバ10Bの初期値設定部132は、期間252で表されるバックオフタイムの初期値、すなわち2×タイムスロットをバックオフタイムとして経過時間計測部133に設定する。サーバ10Cの初期値設定部132は、期間253で表されるバックオフタイムの初期値、具体的には3×タイムスロットをバックオフタイムとして経過時間計測部133に設定する。サーバ10Dの初期値設定部132は、期間254で表されるバックオフタイムの初期値、具体的には5×タイムスロットをバックオフタイムとして経過時間計測部133に設定する。
この状態では、サーバ10Aのバックオフタイムが最も短い。そのため、サーバ10Aの経過時間計測部133によりバックオフタイムが経過したと判定されると、サーバ10Aの送信部101は、データ255をアクセスポイント20へ送信する。この時、期間252、253及び254の斜線部分が、それぞれサーバ10B〜10Dのバックオフタイムとして、次の経過時間の計測に繰り越される。すなわち、サーバ10Bの経過時間計測部133は、1×スロットタイムを次の経過時間の計測に繰り越す。また、サーバ10Cの経過時間計測部133は、2×スロットタイムを次の経過時間の計測に繰り越す。また、サーバ10Dの経過時間計測部133は、4×スロットタイムを次の経過時間の計測に繰り越す。
アクセスポイント20は、データ255を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK256をサーバ10Aに送信する。
サーバ10Aの受信部102は、ACK256をアクセスポイント20から受信する。そして、サーバ10Aのパケット解析部105は、ACK256の受信を再設定部134へ通知する。
サーバ10Aの再設定部134は、設定レジスタ131から各ノードの送信比率を取得し、数式(2)を用いて再設定値を算出する。具体的には、再設定部134は、各ノードの送信比率の合計を求める。ここでは、各ノードの送信比率の合計は7である。次に、再設定部134は、送信比率の合計から自ノードの送信比率から1を減算した値を減算する。ここでは、サーバ10Aの送信比率は1なので、自ノードの送信比率から1を減算した値を送信比率の合計から減算した値は7である。そして、再設定部134は、求めた値にスロットタイムを乗算して再設定値を算出する。すなわち、サーバ10Aの再設定部134は、7×スロットタイムを再設定値として算出する。
そして、サーバ10Aの再設定部134は、再設定値である7×スロットタイムの期間257を経過時間計測部133へバックオフタイムとして再設定する。
この場合、サーバ10Bの経過時間計測部133は、繰り越した1×スロットタイムである期間258をバックオフタイムとする。また、サーバ10Cの経過時間計測部133は、繰り越した2×スロットタイムである期間259をバックオフタイムとする。また、サーバ10Dの経過時間計測部133は、繰り越した4×スロットタイムである期間260をバックオフタイムとする。
この状態では、サーバ10Bのバックオフタイムが最も短い。そのため、サーバ10Bの経過時間計測部133によりバックオフタイムが経過したと判定されると、サーバ10Bの送信部101は、データ261をアクセスポイント20へ送信する。この時、期間257,259及び260の斜線部分が、それぞれサーバ10A,10C及び10Dのバックオフタイムとして、次の経過時間の計測に繰り越される。
アクセスポイント20は、データ261を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK262をサーバ10Bに送信する。
サーバ10Bの受信部102は、ACK262をアクセスポイント20から受信する。そして、サーバ10Bのパケット解析部105は、ACK262の受信を再設定部134へ通知する。
サーバ10Bの再設定部134は、設定レジスタ131から各ノードの送信比率を取得し、数式(2)を用いて再設定値を算出する。具体的には、再設定部134は、送信比率の合計から自ノードの送信比率から1を減算した値を減算する。ここでは、サーバ10Bの送信比率は1なので、自ノードの送信比率から1を減算した値を送信比率の合計から減算した値は7である。そして、再設定部134は、求めた値にスロットタイムを乗算して再設定値を算出する。すなわち、サーバ10Bの再設定部134は、7×スロットタイムを再設定値として算出する。
そして、サーバ10Bの再設定部134は、再設定値である7×スロットタイムの期間264を経過時間計測部133へバックオフタイムとして再設定する。
この場合、サーバ10Aの経過時間計測部133は、繰り越した6×スロットタイムである期間263をバックオフタイムとする。また、サーバ10Cの経過時間計測部133は、繰り越した1×スロットタイムである期間265をバックオフタイムとする。また、サーバ10Dの経過時間計測部133は、繰り越した3×スロットタイムである期間266をバックオフタイムとする。
この状態では、サーバ10Cのバックオフタイムが最も短い。そのため、サーバ10Cの経過時間計測部133によりバックオフタイムが経過したと判定されると、サーバ10Cの送信部101は、データ267をアクセスポイント20へ送信する。この時、期間263,264,266の斜線部分が、それぞれサーバ10A,10B及び10Dのバックオフタイムとして、次の経過時間の計測に繰り越される。
アクセスポイント20は、データ267を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK268をサーバ10Cに送信する。
サーバ10Cの受信部102は、ACK268をアクセスポイント20から受信する。そして、サーバ10Cのパケット解析部105は、ACK268の受信を再設定部134へ通知する。
サーバ10Cの再設定部134は、ACK268の受信の通知をパケット解析部105から受ける。この場合、サーバ10Cの再設定部134は、自ノードの送信比率が2であるので、2回目のデータ送信のために、1×スロットタイムである期間271を経過時間計測部133にバックオフタイムとして設定する。
この場合、サーバ10Aの経過時間計測部133は、繰り越した5×スロットタイムである期間269をバックオフタイムとする。また、サーバ10Bの経過時間計測部133は、繰り越した6×スロットタイムである期間270をバックオフタイムとする。また、サーバ10Dの経過時間計測部133は、繰り越した2×スロットタイムである期間272をバックオフタイムとする。
この状態では、サーバ10Cのバックオフタイムが最も短い。そのため、サーバ10Cの経過時間計測部133によりバックオフタイムが経過したと判定されると、サーバ10Cの送信部101は、データ273をアクセスポイント20へ送信する。この時、期間269,270,272の斜線部分が、それぞれサーバ10A,10B及び10Dのバックオフタイムとして、次の経過時間の計測に繰り越される。
アクセスポイント20は、データ273を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK274をサーバ10Cに送信する。
サーバ10Cの受信部102は、ACK274をアクセスポイント20から受信する。そして、サーバ10Cのパケット解析部105は、ACK274の受信を再設定部134へ通知する。
サーバ10Cの再設定部134は、自ノードの送信比率が2であり2回連続でデータ送信を行っているので、設定レジスタ131から各ノードの送信比率を取得し、数式(2)を用いて再設定値を算出する。具体的には、再設定部134は、送信比率の合計から自ノードの送信比率から1を減算した値を減算する。ここでは、サーバ10Cの送信比率は2なので、自ノードの送信比率から1を減算した値を送信比率の合計から減算した値は6である。そして、再設定部134は、求めた値にスロットタイムを乗算して再設定値を算出する。すなわち、サーバ10Cの再設定部134は、6×スロットタイムを再設定値として算出する。
そして、サーバ10Cの再設定部134は、再設定値である6×スロットタイムの期間277を経過時間計測部133へバックオフタイムとして再設定する。
この場合、サーバ10Aの経過時間計測部133は、繰り越した4×スロットタイムである期間275をバックオフタイムとする。また、サーバ10Bの経過時間計測部133は、繰り越した5×スロットタイムである期間276をバックオフタイムとする。また、サーバ10Dの経過時間計測部133は、繰り越した1×スロットタイムである期間278をバックオフタイムとする。
この状態では、サーバ10Dのバックオフタイムが最も短い。そのため、サーバ10Dの経過時間計測部133によりバックオフタイムが経過したと判定されると、サーバ10Dの送信部101は、データ279をアクセスポイント20へ送信する。この時、期間275,276,277の斜線部分が、それぞれサーバ10A〜10Cのバックオフタイムとして、次の経過時間の計測に繰り越される。
アクセスポイント20は、データ279を受信する。その後、アクセスポイント20は、SIFS期間待機しチャネルがビジーにならなければ、ACK280をサーバ10Cに送信する。以下ここで説明した無線通信処理の繰り返しとなる。
ここで、図11では、サーバ10A〜10Dの全てに送信データがある場合を図示したが、送信データが無いサーバ10がある場合には、送信部101はデータの送信を行わない。この場合、再設定部134は、ACKの受信を待たずに送信比率の値の回数に通信回数が達するまで、1×スロットタイムをバックオフタイムとして設定することを繰り返した後、算出した再設定値を経過時間計測部133に再設定する。また、ACKの受信を待たずに再設定処理を行っている間に、送信データが発生した場合には、再設定部134は、ACKの受信を待って再設定処理を行う処理に移行する。
以上に説明したように、本実施例に係る情報処理装置は、ノード毎に送信比率を設定し、各情報処理装置の送信比率にしたがってバックオフタイムの初期値及び再設定値を、通信が競合しないように決定する。これにより、ノード毎に送信比率が異なる場合でも、チャネルがアイドル状態になった後の待機時間を短縮することができ、さらに、通信の競合の発生を抑制することができる。
次に、実施例4に係る情報処理装置について説明する。本実施例に係る情報処理システムは、管理サーバ2によって各サーバ10及び無線モジュール100が管理されていることが実施例3と異なる。本実施例に係る情報処理システムは、図8の構成図で表される。また、本実施例に係るサーバ10も図2のブロック図で表される。また、本実施例に係る無線モジュール100も図3のブロック図で表される。以下では、実施例1と同様の各部の動作については説明を省略する。
管理サーバ2は、各無線モジュール100の送信比率を記憶している。そして、管理サーバ2は、ネットワークスイッチ30及びアクセスポイント20を介して、各無線モジュール100の送信比率の情報を各無線モジュール100の設定レジスタ131に格納させる。設定レジスタ131は、例えば図10に示すような状態で各無線モジュール100の送信比率の情報を格納する。
さらに、管理サーバ2は、送信比率の情報を各無線モジュール100へ送信し、SIFS期間待機した後、各無線モジュール100にノード番号を通知する。具体的には、管理サーバ2は、ある無線モジュール100にノード番号を通知した後、SIFS期間経過後にノード番号を通知した先の無線モジュール100からACKを受信すると、次の無線モジュール100にノード番号を通知することを繰り返す。
ここで、本実施例では、管理サーバ2は、ラック1の外に配置されているが、ラック1の中に搭載されてもよい。
アクセスポイント20は、アクセスポイント20に接続された全ての無線モジュール100にバックオフタイムが設定された後、適当なタイミングでビーコンを各無線モジュール100へ送信する。
各無線モジュール100は、ビーコンを受信後、データの送信処理を開始する。その後、各無線モジュール100は、実施例3と同様に、各ノードの送信比率に従って初期値及び再設定値を求め、データの送信を行っていく。
次に、図12を参照して、本実施例に係る情報処理システムにおける通信の全体的な流れについて説明する。図12は、実施例4に係る情報処理システムにおける通信を表すシーケンス図である。ここでは、サーバ10としてサーバ10A〜10Dがある場合で説明する。また、本実施例では、各サーバ10A〜10Dには、それぞれ1つの無線モジュール100が搭載されている。
情報システムの稼動が開始すると、管理サーバ2は、サーバ10A〜10Dに各ノードの送信比率の情報を含む送信比率情報300を送信する。送信比率情報300は、ノード#1及びノード#2の送信比率は1であり、ノード#3の送信比率は2であり、ノード#4の送信比率は3である。
管理サーバ2は、送信比率情報300の送信後、SIFS期間待機し、その間チャネルがビジーにならなければ、サーバ10Aに対してノード番号情報301を送信する。ここでは、サーバ10Aのノード番号は1である。
サーバ10Aの受信部102は、ノード番号情報301を含む信号を受信する。そして、受信部102は、受信した信号をパケット解析部105へ出力する。パケット解析部105は、信号を解析し、ノード番号情報301を初期値設定部132及び再設定部134へ通知する。その後、パケット解析部105は、I/F106及びクロスバスイッチ14を介してCPU11にノード番号を通知する。CPU11は、信号の受信を受けてACKの送信をクロスバスイッチ14及びI/F106を介して送信部101に指示する。送信部101は、SIFS期間経過後アクセスポイント20及びネットワークスイッチ30を介して、管理サーバ2へACK302を送信する。
管理サーバ2は、ACK302を受信すると、SIFS期間待機し、その間チャネルがビジーにならなければ、サーバ10Bに対してノード番号情報303を送信する。ここでは、サーバ10Bのノード番号は2である。
サーバ10Bの受信部102は、ノード番号情報302を含む信号を受信する。その後、サーバ10Bは、サーバ10Aと同様の処理を行う。そして、送信部101は、SIFS期間経過後アクセスポイント20及びネットワークスイッチ30を介して、管理サーバ2へACK304を送信する。
管理サーバ2は、ACK304を受信すると、SIFS期間待機し、その間チャネルがビジーにならなければ、サーバ10Cに対してノード番号情報305を送信する。ここでは、サーバ10Cのノード番号は3である。
サーバ10Cの受信部102は、ノード番号情報305を含む信号を受信する。その後、サーバ10Cは、サーバ10Aと同様の処理を行う。そして、送信部101は、SIFS期間経過後アクセスポイント20及びネットワークスイッチ30を介して、管理サーバ2へACK306を送信する。
管理サーバ2は、ACK306を受信すると、SIFS期間待機し、その間チャネルがビジーにならなければ、サーバ10Dに対してノード番号情報307を送信する。ここでは、サーバ10Dのノード番号は4である。
サーバ10Dの受信部102は、ノード番号情報307を含む信号を受信する。その後、サーバ10Dは、サーバ10Aと同様の処理を行う。そして、送信部101は、SIFS期間経過後アクセスポイント20及びネットワークスイッチ30を介して、管理サーバ2へACK308を送信する。
アクセスポイント20は、管理サーバ2によるサーバ10A〜10Dに対するノード番号の通知が完了し、サーバ10DからACK308が送信された後DIFS期間の経過を待つ。そして、アクセスポイント20は、DIFS期間経過後適当なタイミングでビーコン309をサーバ10A〜10Dのそれぞれに送信する。サーバ10A〜10Dは、アクセスポイント20からビーコン309を受信すると、チャネルがビジー状態でないことを検出した後、DIFS期間待機してチャネルがアイドル状態であることを確認し、無線通信処理を行う。図12における以降の無線通信処理は、実施例3と同様であるので説明を省略する。
以上に説明したように、本実施例に係る情報処理装置は、管理装置から各ノードの送信比率を取得し、取得した送信比率を用いて算出したバックオフタイムの初期値及び再設定値を用いて通信を行う。このように、管理装置が各ノードの送信比率を統合管理することで、送信比率がノード毎に異なっても、ノード数に変更があった場合に、変更に合わせて初期値及び再設定値を迅速に変更することができる。すなわち、送信比率がノード毎に異なる状態でノード数の変更が発生した場合にも、チャネルがアイドル状態になった後の待機時間の短縮及びアクセス競合の発生の抑制を適切に実施することができる。