(57)【要約】【課題】多数の宛先に対して正しいルーティング先を自動的に決定すること。【解決手段】ＮＡＴ１４２ａがＭＡＣアドレスとラック１内のノード１０の位置を表すＮＩＤとを対応させてノード１０ごとに記憶し、パケットの宛先及び自ノードのＭＡＣアドレスから宛先及び自ノードのＮＩＤを検索する。そして、宛先判断部１４２が宛先及び自ノードのＮＩＤに基づいてパケットのルーティング先を決定し、ルーティング部１４３が宛先判断部１４２が決定したルーティング先のパケットをルーティングする。【選択図】図３Ａ
2015056858.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置を識別するとともに該情報処理装置を搭載する筐体内の位置を識別する装置識別子を該情報処理装置のアドレスと対応付けて記憶する識別子記憶部と、
データの宛先のアドレスに対応する装置識別子を前記識別子記憶部から検索する識別子検索部と、
前記識別子検索部により検索された装置識別子と自装置の装置識別子とに基づいてデータのルーティング先を決定する決定部と、
前記決定部により決定されたルーティング先へ前記データを送信するよう制御する制御部と
を有することを特徴とする情報処理装置。
【請求項２】
前記決定部は、ルーティング先とともに通信方式を決定し、
前記制御部は、前記決定部により決定された通信方式で前記データを送信するよう制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
筐体内の位置に基づいて情報処理装置はグループ化され、
前記装置識別子と該装置識別子で識別される情報処理装置のグループを識別するグループ識別子とを対応付けて記憶するグループ記憶部と、
前記識別子検索部により検索された装置識別子に対応するグループ識別子を前記グループ記憶部から検索するグループ検索部をさらに有し、
前記決定部は、前記識別子検索部により検索された装置識別子と筐体内の自装置の位置と前記グループ検索部により検索されたグループ識別子に基づいてデータのルーティング先と通信方式を決定し、
前記制御部は、前記決定部により決定されたルーティング先及び通信方式に基づいて前記データを送信するよう制御することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
第１の通信方式を用いて他の情報処理装置と通信する第１の通信部をグループ内の１つの情報処理装置だけが備え、
前記制御部は、前記第１の通信方式で前記データを送信させる場合に、前記第１の通信部を備える情報処理装置へ第２の通信部を用いてデータを転送することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記決定部は、通信方式として第１の通信方式及び第２の通信方式を含む通信方式の中から通信方式を決定し、決定した通信方式が第２の通信方式である場合に、隣接する情報処理装置をルーティング先として決定することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記決定部は、決定した通信方式が第２の通信方式である場合に、隣接する情報処理装置以外の情報処理装置もルーティング先として決定することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記制御部は、前記データの送信が失敗した場合には、異なる通信方式を用いてデータを送信するように制御することを特徴とする請求項２〜６のいずれか１つに記載の情報処理装置。
【請求項８】
情報処理装置が、
情報処理装置を識別するとともに該情報処理装置を搭載する筐体内の位置を識別する装置識別子を該情報処理装置のアドレスと対応付けて記憶する識別子記憶部からデータの宛先のアドレスに対応する装置識別子を検索し、
検索した装置識別子と自装置の装置識別子とに基づいてデータのルーティング先を決定し、
決定したルーティング先へ前記データを送信する
処理を実行することを特徴とする通信方法。
【請求項９】
情報処理装置が有するコンピュータに、
情報処理装置を識別するとともに該情報処理装置を搭載する筐体内の位置を識別する装置識別子を該情報処理装置のアドレスと対応付けて記憶する識別子記憶部からデータの宛先のアドレスに対応する装置識別子を検索し、
検索した装置識別子と自装置の装置識別子とに基づいてデータのルーティング先を決定し、
決定したルーティング先へ前記データを送信させる
処理を実行させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、通信方法及び通信プログラムに関する。
【背景技術】
【０００２】
近年、データセンターやクラウド向けサーバとしてラック内に多数のノードを搭載する高集積サーバが利用されるようになってきている。ここで、ノードとは、ＣＰＵ、メモリ、ストレージ、クロスバースイッチなどを有する情報処理装置である。
【０００３】
ラックには、例えば、数十〜数百のノードが搭載される。また、ノード間の接続には、ケーブル接続とバックプレーン接続がある。図２０は、ケーブル接続の一例を示す図であり、図２１Ａ及び図２１Ｂは、バックプレーン接続の一例を示す図である。図２１Ａは、バックプレーン接続を用いる筐体の前面及び背面を示し、図２１Ｂは、バックプレーン配線パターンの一例を示す。
【０００４】
図２０では、３０台のノード９１が２つのスイッチングノード９２を介してケーブル接続されている。図２１Ａでは、４０台のノード９３が４つのスイッチングノード９４、バックプレーン９５を介して接続されている。なお、図２１Ａでは、上段に筐体の前面が示され、下段に筐体の背面が示されている。
【０００５】
図２０に示すように、ケーブル接続では、ノード数が多くなるとケーブル数が膨大となる。このため、ケーブル接続には、ケーブルコストの増加、ケーブル挿抜による保守の煩わしさ、ケーブル占有面積の増大といった問題がある。
【０００６】
一方、図２１Ｂに示すように、バックプレーン接続では、ノード数が多くなると配線パターン９６が甚大となる。このため、バックプレーン接続には、バックプレーン内配線の困難性、バックプレーンの層数増加、製造コストの増大などの問題がある。また、バックプレーン接続には、バックプレーンの故障によるリスクが増大する、バックプレーン保守時にシステム全体を停止させなければならない、といった問題もある。
【０００７】
そこで、ケーブル接続やバックプレーン接続を用いることなく、筐体内のモジュール間のデータ転送を無線を利用して行う技術が開発されている（例えば、特許文献１参照。）。また、サーバ装置のコンソール部とサーバ装置とを接続するトレイ部がコンソール部と無線で通信を行う従来技術がある（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−６３２９号公報
【特許文献２】特開２００６−１８５４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
無線通信は、電波が減衰しやすく、遠距離の通信には不向きであり、多数の情報処理装置を無線通信で接続する場合、複数の情報処理装置を経由して通信が行われる。したがって、無線通信では、最終的な宛先に中継する次の送信先をルーティング先として決める必要があるが、多数の宛先に対して各情報処理装置における正しいルーティング先を決定することは困難であるという問題がある。
【００１０】
本発明は、１つの側面では、多数の宛先に対して正しいルーティング先を自動的に決定する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する情報処理装置は、１つの態様において、情報処理装置を識別するとともに該情報処理装置を搭載する筐体内の位置を識別する装置識別子を該情報処理装置のアドレスと対応付けて記憶する識別子記憶部を有する。また、本願の開示する情報処理装置は、データの宛先のアドレスに対応する装置識別子を前記識別子記憶部から検索する識別子検索部を有する。また、本願の開示する情報処理装置は、前記識別子検索部により検索された装置識別子と自装置の装置識別子とに基づいてデータのルーティング先を決定する決定部を有する。また、本願の開示する情報処理装置は、前記決定部により決定されたルーティング先へ前記データを送信するよう制御する制御部を有する。
【発明の効果】
【００１２】
１実施態様によれば、多数の宛先に対して正しいルーティング先を自動的に決定することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係る情報処理システムの構成を示す図である。
【図２】図２は、ＡＰを用いたＷＬＡＮの通信を説明するための図である。
【図３Ａ】図３Ａは、ＸＢの構成を示す図である。
【図３Ｂ】図３Ｂは、他のＸＢの構成を示す図である。
【図４】図４は、ＮＡＴが記憶する宛先及び識別子の一例を示す図である。
【図５】図５は、ＮＩＤとラック内のノード位置の関係の一例を示す図である。
【図６】図６は、実施例１に係るノードによる受信処理のフローを示すフローチャートである。
【図７】図７は、実施例１に係るノードによる送信処理のフローを示すフローチャートである。
【図８】図８は、パケットが届かない場合を示す図である。
【図９】図９は、ルーティングテーブルの一例を示す図である。
【図１０】図１０は、ルーティングテーブルの誤った設定例を示す図である。
【図１１】図１１は、ノードのグループ化の一例を示す図である。
【図１２Ａ】図１２Ａは、実施例２に係るＸＢの構成を示す図である。
【図１２Ｂ】図１２Ｂは、実施例２に係るＸＢの他の構成を示す図である。
【図１３】図１３は、ＧＩＤ−ＷＳＴＡが記憶するＧＩＤ及びＳＴＡ機能有無の一例を示す図である。
【図１４】図１４は、実施例２に係るノードによる受信処理のフローを示すフローチャートである。
【図１５】図１５は、実施例２に係るノードによる送信処理のフローを示すフローチャートである。
【図１６】図１６は、実施例３に係る通信イメージを示す図である。
【図１７】図１７は、実施例３に係るノードによる受信処理のフローを示す第１のフローチャートである。
【図１８】図１８は、実施例３に係るノードによる受信処理のフローを示す第２のフローチャートである。
【図１９】図１９は、通信プログラムを実行するＸＢのハードウェア構成を示す図である。
【図２０】図２０は、ケーブル接続の一例を示す図である。
【図２１Ａ】図２１Ａは、バックプレーン接続を用いる筐体の前面及び背面を示す図である。
【図２１Ｂ】図２１Ｂは、バックプレーン配線パターンの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する情報処理装置、通信方法及び通信プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例は開示の技術を限定するものではない。
【実施例１】
【００１５】
まず、実施例１に係る情報処理システムの構成について説明する。図１は、実施例１に係る情報処理システムの構成を示す図である。図１に示すように、情報処理システムは、ラック１にＮＷスイッチ２とＡＰ３と９９台のノード１０が搭載された高集積サーバである。なお、ここでは、ラック１に１台のＮＷスイッチ２と９９台のノード１０を搭載しているが、より多くのＮＷスイッチ２やより多くのノード１０あるいはより少ないノード１０を１つのラックに搭載することができる。
【００１６】
ＮＷスイッチ２は、インターネット等の外部ネットワークと接続するためのスイッチである。ＡＰ３は、２．４ＧＨｚ帯及び５ＧＨｚ帯の周波数を使用するＷＬＡＮ（Wireless  Local  Area  Network）のアクセスポイントである。図２は、ＡＰ３を用いたＷＬＡＮの通信を説明するための図である。図２は、ＡＰ３と３つのＳＴＡ（ステーション）４からなる無線システムである。
【００１７】
図２に示すように、ＳＴＡ４は他のＳＴＡ４にデータを転送する場合、ＡＰ３を介してデータを転送する。したがって、ＳＴＡ４の数が多い場合には、ＡＰ３にデータが集中し、輻輳が生じる。また、ＷＬＡＮの通信速度は６００メガビット／秒（Ｍｂｐｓ）程度であり、有線の通信速度は１．０ギガビット／秒（Ｇｂｐｓ）より大きいため、有線の通信に比べてＷＬＡＮの通信速度は遅い。
【００１８】
なお、図２に示す通信のモードはインフラストラクチャモードと呼ばれ、装置間の通信はＡＰ３を介して通信が行われる。一方、ＡＰ３を介さず装置間で直接通信するモードはアドホックモードと呼ばれる。インフラストラクチャモードは多数の装置が通信する場合に適しており、アドホックモードは少数の装置が通信する場合に適している。
【００１９】
ノード１０は、ＣＰＵ１１と、メモリ１２と、ストレージ１３と、ＸＢ１４とを有する情報処理装置である。また、ノード１０は、６０Ｇ無線上用アンテナ１５ａと、６０Ｇ無線下用アンテナ１５ｂと、６０Ｇ無線左用アンテナ１５ｃと、６０Ｇ無線右用アンテナ１５ｄと、ＷＬＡＮ用アンテナ１５ｅとを有する。なお、ノード１０は、筐体内に収容されている。また、６０Ｇ無線上用アンテナ１５ａ、６０Ｇ無線下用アンテナ１５ｂ、６０Ｇ無線左用アンテナ１５ｃ、６０Ｇ無線右用アンテナ１５ｄ及びＷＬＡＮ用アンテナ１５ｅは、ＸＢ１４と接続されている。
【００２０】
ＣＰＵ１１は、メモリ１２からプログラムを読み出して実行する中央処理装置である。メモリ１２は、プログラムやプログラムの実行途中結果などを記憶するＲＡＭ（Random  Access  Memory）である。ストレージ１３は、データを記憶する不揮発性メモリであり、例えば、ＮＡＮＤフラッシュメモリである。また、ストレージ１３は、ノード１０にインストールされたプログラムを記憶する。
【００２１】
ＸＢ１４は、他のノード１０と通信を行うためのクロスバースイッチである。ＸＢ１４は、１つのＬＳＩである。６０Ｇ無線上用アンテナ１５ａは、６０ＧＨｚ帯の周波数を使用する無線通信である６０Ｇ無線のアンテナであり、上向きの方向に設置され、ラック１内で上に隣接するノード１０との通信に用いられる。同様に、６０Ｇ無線下用アンテナ１５ｂは、６０Ｇ無線のアンテナであり、下向きの方向に設置され、ラック１内で下に隣接するノード１０との通信に用いられる。
【００２２】
また、６０Ｇ無線左用アンテナ１５ｃは、６０Ｇ無線のアンテナであり、左向きの方向に設置され、ラック１内で左に隣接するノード１０との通信に用いられる。６０Ｇ無線右用アンテナ１５ｄは、６０Ｇ無線のアンテナであり、右向きの方向に設置され、ラック１内で右に隣接するノード１０との通信に用いられる。
【００２３】
６０Ｇ無線は、通信速度が数Ｇｂｐｓ程度実現可能であり、ＷＬＡＮと比較して高速である。しかしながら、６０Ｇ無線は電波が届きにくく、筐体が電波の障壁となり、１つの６０Ｇ無線モジュールを使用して隣接する上下左右のノード１０と通信するのは困難である。そこで、ノード１０は、隣接する上下左右のノード１０とそれぞれ通信する４つの６０Ｇ無線モジュールを有する。ＷＬＡＮ用アンテナ１５ｅは、ＷＬＡＮのアンテナである。
【００２４】
ノード１０は、所定の閾値より距離が近いノード１０とは６０Ｇ無線を用いて通信を行い、所定の閾値以上の距離があるノード１０とはＷＬＡＮを用いて通信を行う。例えば、図１において、ラック１のＳに位置するノード１０は、Ｄ1に位置するノード１０と通信を行う場合には、距離が近いので、６０Ｇ無線を用いてラック１の下に位置するノードを経由して通信を行う。また、ラック１のＳに位置するノード１０は、Ｄ2に位置するノード１０と通信を行う場合には、距離が遠いので、ＡＰ３を経由してＷＬＡＮで通信を行う。
【００２５】
このように、ノード１０は、所定の閾値より距離が近いノード１０とは６０Ｇ無線を用いて通信を行い、所定の閾値以上の距離があるノード１０とはＷＬＡＮを用いて通信を行う。したがって、ノード１０は、ＡＰ３に輻輳を発生させることなく、多数のノード１０と高速に無線通信を行うことができる。
【００２６】
次に、ＸＢ１４の構成について説明する。図３Ａは、ＸＢ１４の構成を示す図である。図３Ａに示すように、ＸＢ１４は、ホストＩ／Ｆ１４１と、２つのＮＡＴ（Node  Address  Table）１４２ａと、宛先判断部１４２と、ルーティング部１４３と、５つのパケット解析部１４４と、５つのＩ／Ｆ１４５とを有する。また、ＸＢ１４は、６０Ｇ無線上部１４６ａと、６０Ｇ無線下部１４６ｂと、６０Ｇ無線左部１４６ｃと、６０Ｇ無線右部１４６ｄと、ＷＬＡＮ部１４７と、ＮＩレジスタ１４８とを有する。
【００２７】
ホストＩ／Ｆ１４１は、自ノードのＣＰＵ１１とのインタフェースであり、ＣＰＵ１１から受け取ったパケットをルーティング部１４３に渡し、ルーティング部１４３から受け取ったパケットを自ノードのＣＰＵ１１に渡す。また、ホストＩ／Ｆ１４１は、自ノードのＣＰＵ１１から受け取ったパケットの宛先をＮＡＴ１４２ａに渡す。
【００２８】
ＮＡＴ１４２ａは、各ノード１０を識別する識別子を検索する検索テーブルである。ＮＡＴ１４２ａは、パケットの宛先をホストＩ／Ｆ１４１又はパケット解析部１４４から受け取り、宛先のノード１０の識別子を検索し、検索した宛先のノード１０の識別子を宛先判断部１４２に渡す。また、ＮＡＴ１４２ａは、ＮＩレジスタ１４８の情報に基づいて自ノードの情報から自ノードの識別子を検索し、検索した自ノードの識別子を宛先判断部１４２に渡す。
【００２９】
宛先判断部１４２は、ＮＡＴ１４２ａにより検索されたパケットの宛先の識別子と、自ノードの識別子とに基づいてパケットのルーティング先を判断し、ルーティング先の情報をルーティング情報としてルーティング部１４３に渡す。なお、ＮＡＴ１４２ａが検索するノード１０の識別子及び宛先判断部１４２の処理の詳細については後述する。
【００３０】
ルーティング部１４３は、ホストＩ／Ｆ１４１からパケットを受け取り、宛先判断部１４２から受け取ったルーティング情報及びＮＩレジスタ１４８の情報に基づいてパケットをいずれかのＩ／Ｆ１４５に渡す。また、ルーティング部１４３は、いずれかのパケット解析部１４４からパケットを受け取り、宛先判断部１４２から受け取ったルーティング情報及びＮＩレジスタ１４８の情報に基づいてパケットをホストＩ／Ｆ１４１又はいずれかのＩ／Ｆ１４５に渡す。
【００３１】
パケット解析部１４４は、Ｉ／Ｆ１４５からパケットを受け取り、宛先を抽出する。そして、パケット解析部１４４は、抽出した宛先をＮＡＴ１４２ａに渡すとともに、パケットをルーティング部１４３に渡す。なお、パケット解析部１４４は、ＮＩレジスタ１４８の情報から宛先が自ノードと判断した場合は、抽出した宛先をＮＡＴ１４２aに渡さなくてもよい。
【００３２】
Ｉ／Ｆ１４５は、６０Ｇ無線モジュール又はＷＬＡＮ部１４７から受け取った信号をパケットに変換し、対応するパケット解析部１４４に渡す。また、Ｉ／Ｆ１４５は、ルーティング部１４３によりルーティングされたパケットを受け取り、それぞれ対応する６０Ｇ無線モジュール又はＷＬＡＮモジュールに送信を指示する。
【００３３】
６０Ｇ無線上部１４６ａ、６０Ｇ無線下部１４６ｂ、６０Ｇ無線左部１４６ｃ及び６０Ｇ無線右部１４６ｄは、６０ＧＨｚ帯の周波数を使用して無線通信を行う６０Ｇ無線モジュールである。
【００３４】
６０Ｇ無線上部１４６ａは、図１に示した６０Ｇ無線上用アンテナ１５ａを用いてラック１内で上に隣接するノード１０と無線通信を行う。６０Ｇ無線下部１４６ｂは、図１に示した６０Ｇ無線下用アンテナ１５ｂを用いてラック１内で下に隣接するノード１０と無線通信を行う。６０Ｇ無線左部１４６ｃは、図１に示した６０Ｇ無線左用アンテナ１５ｃを用いてラック１内で左に隣接するノード１０と無線通信を行う。６０Ｇ無線右部１４６ｄは、図１に示した６０Ｇ無線右用アンテナ１５ｄを用いてラック１内で右に隣接するノード１０と無線通信を行う。
【００３５】
ＷＬＡＮ部１４７は、ＳＴＡ４の機能を備え、ＷＬＡＮを用いてＡＰ３経由で他のノード１０のＷＬＡＮ部１４７と通信を行う。ＮＩレジスタ１４８は、ＩＰ（Internet  Protocol）アドレス、ＭＡＣ（Media  Access  Control）アドレスなど自ノードの情報を記憶するレジスタである。
【００３６】
なお、図３Ａに示すＸＢ１４は、６０Ｇ無線モジュール及びＷＬＡＮ部１４７を有するが、６０Ｇ無線モジュール及びＷＬＡＮ部１４７をＸＢの外に設けることもできる。図３Ｂは、６０Ｇ無線モジュール及びＷＬＡＮ部１４７を外に設けた他のＸＢの構成を示す図である。
【００３７】
図３Ｂに示すように、ＸＢ１４ａは、６０Ｇ無線上部１４６ａ、６０Ｇ無線下部１４６ｂ、６０Ｇ無線左部１４６ｃ、６０Ｇ無線右部１４６ｄ及びＷＬＡＮ部１４７を有しない。ＸＢ１４ａは、外に設けられた６０Ｇ無線上部１０ａ、６０Ｇ無線下部１０ｂ、６０Ｇ無線左部１０ｃ、６０Ｇ無線右部１０ｄ及びＷＬＡＮ部１０ｅを用いて無線通信を行う。
【００３８】
次に、ＮＡＴ１４２ａが検索するノード１０の識別子及び宛先判断部１４２の処理の詳細について図４及び図５を用いて説明する。図４は、ＮＡＴ１４２ａが記憶する宛先及び識別子の一例を示す図であり、図５は、ＮＩＤとラック１内のノード位置の関係の一例を示す図である。ここで、ＮＩＤ（Node  ＩＤ）は、ノード１０を識別する識別子である。
【００３９】
図４に示すように、ＮＡＴ１４２ａは、宛先としてのＭＡＣアドレスとＮＩＤとを対応付けてノード１０ごとに記憶し、ＭＡＣアドレスからＮＩＤを検索する。ＭＡＣアドレスは４８ビットであり、「ｈ」は１６進数表示することを示し、「＊」は１６進数表示の１つの数を示す。１つの「＊」は４ビットの情報を示し、１２個の「＊」で４×１２＝４８ビットを示す。なお、ここでは、宛先としてＭＡＣアドレスを用いる場合を説明したが、宛先としてＭＡＣアドレス以外を用いることもできる。
【００４０】
ＮＩＤは、１２ビットであり、３つの１６進数が「＿」で接続されて表される。ＮＩＤは、各ノード１０を識別する識別子であるとともに、ラック１内のノード１０の位置を表す。１２ビットのうち上位４ビットがラック１内のスロットのＸ座標を表し、下位８ビットがラック１内のスロットのＹ座標を表す。ここで、スロットは、ノード１０がラック１内で収容されるスペースである。
【００４１】
図５に示すように、ラック１内の左下のスロットは座標が（１，１）であり、このスロットに収容されるノード１０のＮＩＤは１２’ｈ１＿０＿１である。また、ラック１内の右下のスロットは座標が（６，１）であり、このスロットに収容されるノード１０のＮＩＤは１２’ｈ６＿０＿１である。また、ラック１内の左上のスロットは座標が（１，ｎ）であり、このスロットに収容されるノード１０のＮＩＤは１２’ｈ１＿＊＿＊である。ただし、ここでは、ラック１は、Ｘ軸方向に６個のスロットを有し、Ｙ軸方向にｎ個のスロットを有する。また、「＿」で結ばれた２つの「＊」は、ｎの１６進数表示である。また、ここでは、ＮＩＤのビット数は１２であるが、ＮＩＤのビット数はスロットの数に応じて選択される。
【００４２】
このように、ＮＩＤがラック１内のノード１０の位置を表わすことによって、宛先判断部１４２は、パケットの宛先のＮＩＤから宛先のノード１０がラック１内で自ノードのどの方向にあるかを知ることができ、パケットのルーティング先を決定することができる。
【００４３】
すなわち、宛先判断部１４２は、宛先と自ノードのＸ座標の差と宛先と自ノードのＹ座標の差の和が所定の閾値より大きい場合には、ＷＬＡＮ部１４７をルーティング先として決定する。一方、宛先判断部１４２は、宛先と自ノードのＸ座標の差と宛先と自ノードのＹ座標の差の和が所定の閾値より大きくない場合には、宛先と自ノードのＸ座標の比較結果に基づいて６０Ｇ無線モジュールのいずれかをルーティング先として決定する。すなわち、宛先判断部１４２は、宛先のＸ座標が自ノードのＸ座標より大きい場合には、６０Ｇ無線右部１４６ｄをルーティング先として決定し、宛先のＸ座標が自ノードのＸ座標より小さい場合には、６０Ｇ無線左部１４６ｃをルーティング先として決定する。
【００４４】
また、宛先判断部１４２は、宛先のＸ座標と自ノードのＸ座標が等しい場合には、宛先のＹ座標と自ノードのＹ座標とを比較する。そして、宛先判断部１４２は、宛先のＹ座標が自ノードのＹ座標より大きい場合には６０Ｇ無線上部１４６ａをルーティング先として決定し、宛先のＹ座標が自ノードのＹ座標より大きくない場合には６０Ｇ無線下部１４６ｂをルーティング先として決定する。
【００４５】
このように、宛先判断部１４２は、パケットの宛先のＮＩＤと自ノードのＮＩＤに基づいてルーティング先を決定することにより、正しいルーティング先を自動的に決定することができる。
【００４６】
次に、実施例１に係るノード１０による受信処理のフローについて説明する。図６は、実施例１に係るノード１０による受信処理のフローを示すフローチャートである。図６に示すように、ノード１０は、パケットを受信する（ステップＳ１）と、パケットの宛先が自ノードであるか否かを判定する（ステップＳ２）。その結果、パケットの宛先が自ノードである場合には、ホストへパケットを送信する（ステップＳ１４）。
【００４７】
一方、パケットの宛先が自ノードでない場合には、ノード１０は、ＮＡＴ検索、すなわちＮＡＴ１４２ａを用いて宛先のＭＡＣアドレス及び自ノードに対するテーブル検索を行い（ステップＳ３）、宛先及び自ノードのＮＩＤを検索する。そして、ノード１０は、宛先及び自ノードのＮＩＤを比較し（ステップＳ４）、Ｘ座標の差とＹ座標の差との和が所定の閾値Ｄthより大きいか否かを判定する（ステップＳ５）。その結果、Ｘ座標の差とＹ座標の差との和が所定の閾値Ｄthより大きい場合には、ノード１０は、パケットをＷＬＡＮモジュールを用いて送信する（ステップＳ１３）。
【００４８】
一方、Ｘ座標の差とＹ座標の差との和が所定の閾値Ｄthより大きくない場合には、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きいか否かを判定する（ステップＳ６）。その結果、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きい場合には、ノード１０は、６０Ｇ無線右部１４６ｄを用いてパケットを送信する（ステップＳ１２）。
【００４９】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きくない場合には、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さいか否かを判定する（ステップＳ７）。その結果、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さい場合には、ノード１０は、６０Ｇ無線左部１４６ｃを用いてパケットを送信する（ステップＳ１１）。
【００５０】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さくない場合には、Ｘ１とＸ２が等しい場合なので、ノード１０は、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きいか否かを判定する（ステップＳ８）。その結果、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きい場合には、ノード１０は、６０Ｇ無線上部１４６ａを用いてパケットを送信する（ステップＳ１０）。一方、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きくない場合には、ノード１０は、６０Ｇ無線下部１４６ｂを用いてパケットを送信する（ステップＳ９）。
【００５１】
次に、実施例１に係るノード１０による送信処理のフローについて説明する。図７は、実施例１に係るノード１０による送信処理のフローを示すフローチャートである。図７に示すように、ノード１０は、ＮＡＴ検索、すなわちＮＡＴ１４２ａを用いて宛先のＭＡＣアドレス及び自ノードに対するテーブル検索を行い（ステップＳ２１）、宛先及び自ノードのＮＩＤを検索する。
【００５２】
そして、ノード１０は、宛先及び自ノードのＮＩＤを比較し（ステップＳ２２）、Ｘ座標の差とＹ座標の差との和が所定の閾値Ｄthより大きいか否かを判定する（ステップＳ２３）。その結果、Ｘ座標の差とＹ座標の差との和が所定の閾値Ｄthより大きい場合には、ノード１０は、パケットをＷＬＡＮモジュールを用いて送信する（ステップＳ３３）。
【００５３】
一方、Ｘ座標の差とＹ座標の差との和が所定の閾値Ｄthより大きくない場合には、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きいか否かを判定する（ステップＳ２４）。その結果、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きい場合には、ノード１０は、６０Ｇ無線右部１４６ｄを用いてパケットを送信し（ステップＳ３０）、ステップＳ３１に移動する。
【００５４】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きくない場合には、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さいか否かを判定する（ステップＳ２５）。その結果、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さい場合には、ノード１０は、６０Ｇ無線左部１４６ｃを用いてパケットを送信し（ステップＳ２９）、ステップＳ３１に移動する。
【００５５】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さくない場合には、Ｘ１とＸ２が等しい場合なので、ノード１０は、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きいか否かを判定する（ステップＳ２６）。その結果、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きい場合には、ノード１０は、６０Ｇ無線上部１４６ａを用いてパケットを送信し（ステップＳ２８）、ステップＳ３１に移動する。一方、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きくない場合には、ノード１０は、６０Ｇ無線下部１４６ｂを用いてパケットを送信する（ステップＳ２７）。
【００５６】
そして、ノード１０は、ＡＣＫを受信したか否かを判定し（ステップＳ３１）、ＡＣＫを受信した場合には処理を終了し、ＡＣＫを受信しなかった場合には、ＷＬＡＮモジュールで再送する（ステップＳ３２）。ここで、ＡＣＫは、宛先のノード１０がパケットを受信した場合に送信元に送る受信報告である。図８は、パケットが届かない場合を示す図である。図８に示すように、送信元（Ｓ）から宛先（Ｄ）に至る経路に不良ノード又は空白スロットがあると、パケットは正しく転送されない。この場合、送信元のノード１０は、ＡＣＫを受信することができないので、ＷＬＡＮモジュールでパケットを再送する。
【００５７】
上述してきたように、実施例１では、ＮＡＴ１４２ａがＭＡＣアドレスとラック１内のノード１０の位置を表すＮＩＤとを対応させてノード１０ごとに記憶し、パケットの宛先及び自ノードのＭＡＣアドレスから宛先及び自ノードのＮＩＤを検索する。そして、宛先判断部１４２が宛先及び自ノードのＮＩＤに基づいてパケットのルーティング先を決定し、ルーティング部１４３が宛先判断部１４２が決定したルーティング先のパケットをルーティングする。したがって、ノード１０は、パケットの宛先とルーティング先を対応付けるルーティングテーブルを用いることなく、ルーティングを行うことができる。
【００５８】
図９は、ルーティングテーブルの一例を示す図である。図９は、ラック１の左上に配置されたノード１０が有するルーティングテーブルを示す。各ノード１０は、ラック１の左上から右方向にノード1、ノード2、ノード3、．．．と配置され、右端まで配置されると下の段の左から順に右方向へ配置される。
【００５９】
図９において、ルーティング先「６０Ｇ無線  右」は、ルーティング先が６０Ｇ無線右部１４６ｄであることを示し、ルーティング先「６０Ｇ無線  下」は、ルーティング先が６０Ｇ無線下部１４６ｂであることを示す。
【００６０】
例えば、パケットの宛先がノード1すなわち自ノードである場合には、ルーティング先は、ホストすなわち自ノードのＣＰＵ１１である。また、パケットの宛先がノード2である場合には、ノード2はノード1の右に配置されるので、ルーティング先は、６０Ｇ無線右部１４６ｄである。
【００６１】
ルーティングテーブルを用いる場合には、パケットの宛先とルーティング先の対応付けをノード１０ごとに設定する必要があり、ノード数が増えると、ルーティング先の設定が煩雑になるという問題がある。また、誤ったルーティング先が設定されると、パケットが宛先に届かないという問題が生じる。
【００６２】
図１０は、ルーティングテーブルの誤った設定例を示す図である。図１０は、ノード1（Ｓ）からノード6（Ｄ）へパケットを送信する場合を示す。図１０において、パケットは、ノード1→ノード4→ノード5→ノード6の順に転送されるべきであるが、ノード5のルーティングテーブルに誤りがあり、ノード6のルーティング先として「６０Ｇ無線  左」が設定されていると、パケットはノード6に届かない。
【００６３】
一方、実施例１のように、ＮＡＴ１４２ａを用いると、ＭＡＣアドレスとＮＩＤの対応付けはノード間で共通であり、ルーティングテーブルのように、ノード１０ごとに異なる情報を設定する必要はないので、設定が煩雑になることはない。したがって、ＮＡＴ１４２ａを用いることで、設定ミスによるパケットロスを防止することができる。
【００６４】
なお、実施例１では、ノード１０は自ノードのＮＩＤをＮＡＴ１４２ａを用いて検索する場合について説明したが、ノード１０は自ノードのＮＩＤをＮＩレジスタ１４８に記憶することもできる。
【実施例２】
【００６５】
ところで、上記実施例１では、各ノード１０がＷＬＡＮのＳＴＡ機能を有する場合について説明したが、ＳＴＡ機能を有するノード１０を限定することもできる。そこで、ＳＴＡ機能を有するノード１０を限定する場合について説明する。
【００６６】
まず、ノード１０のグループ化について説明する。図１１は、ノード１０のグループ化の一例を示す図である。図１１に示すように、ノード１０は近接する１２個ごとにグループ化される。例えば、グループ1には、ノード1〜ノード3、ノード10〜ノード12、ノード19〜ノード21及びノード28〜ノード30が含まれ、グループ2には、ノード4〜ノード6、ノード13〜ノード15、ノード22〜ノード24及びノード31〜ノード33が含まれる。また、グループ3には、ノード7〜ノード9、ノード16〜ノード18、ノード25〜ノード27及びノード34〜ノード36が含まれる。
【００６７】
そして、各グループには、１つのノード１０だけがＷＬＡＮのＳＴＡ機能を備える。例えば、グループ1では、ノード11だけがＳＴＡ機能を備える。そして、各ノード１０は、グループ内の他のノード１０と通信する場合には、６０Ｇ無線を用い、グループ外のノード１０と通信する場合にはＷＬＡＮを用いて通信する。
【００６８】
例えば、ノード1は、グループ内のノード3にパケットを送る場合には６０Ｇ無線を用いる。一方、ノード1は、グループ外のノード15にパケットを送る場合には、ＳＴＡ機能を有するノード11を介して、ＷＬＡＮでノード15にパケットを送る。また、ノード1は、ノード11へは６０Ｇ無線を用いてパケットを送る。
【００６９】
このように、ノード１０をグループ化し、ＷＬＡＮのＳＴＡ機能を有するノード１０をグループ内に１つだけに限定することによって、情報処理システムは、ＡＰ３に接続するノードを削減し、ＡＰ３の輻輳を防止することができる。
【００７０】
次に、実施例２に係るＸＢの構成について説明する。図１２Ａは、実施例２に係るＸＢの構成を示す図である。なお、ここでは説明の便宜上、図３Ａに示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００７１】
図１２Ａに示すように、ＸＢ１４ｂは、ホストＩ／Ｆ１４１と、２つのＮＡＴ１４２ｂと、各ＮＡＴ１４２ｂにそれぞれ対応付けられた２つのＧＩＤ−ＷＳＴＡ１４２ｃと、宛先判断部１４２ｄと、ルーティング部１４３と、５つのパケット解析部１４４とを有する。また、ＸＢ１４ｂは、５つのＩ／Ｆ１４５と、６０Ｇ無線上部１４６ａと、６０Ｇ無線下部１４６ｂと、６０Ｇ無線左部１４６ｃと、６０Ｇ無線右部１４６ｄと、ＷＬＡＮ部１４７と、ＮＩレジスタ１４８とを有する。
【００７２】
ＮＡＴ１４２ｂは、パケットの宛先をホストＩ／Ｆ１４１又はパケット解析部１４４から受け取り、宛先のノード１０の識別子を検索し、検索した宛先のノード１０の識別子を宛先判断部１４２ｄ及び対応するＧＩＤ−ＷＳＴＡ１４２ｃに渡す。また、ＮＡＴ１４２ｂは、ＮＩレジスタ１４８の情報に基づいて自ノードの情報から自ノードの識別子を検索し、検索した自ノードの識別子を宛先判断部１４２ｄ及び対応するＧＩＤ−ＷＳＴＡ１４２ｃに渡す。
【００７３】
ＧＩＤ−ＷＳＴＡ１４２ｃは、対応付けられたＮＡＴ１４２ｂからＮＩＤを受け取り、ＮＩＤからＧＩＤ（グループＩＤ）及びＳＴＡ機能有無を検索する検索テーブルである。ＧＩＤ−ＷＳＴＡ１４２ｃは、検索したＧＩＤ及びＳＴＡ機能有無を宛先判断部１４２ｄに渡す。なお、ＧＩＤ−ＷＳＴＡ１４２ｃの詳細については後述する。
【００７４】
宛先判断部１４２ｄは、ＮＡＴ１４２ｂにより検索されたパケットの宛先のＮＩＤ及び自ノードのＮＩＤと、ＧＩＤ−ＷＳＴＡ１４２ｃにより検索されたＧＩＤ及びＳＴＡ機能有無に基づいてパケットのルーティング先を判断する。そして、宛先判断部１４２ｄは、ルーティング先の情報をルーティング情報としてルーティング部１４３に渡す。
【００７５】
なお、図１２Ａに示すＸＢ１４ｂは、６０Ｇ無線モジュール及びＷＬＡＮ部１４７を有するが、６０Ｇ無線モジュール及びＷＬＡＮ部１４７をＸＢの外に設けることもできる。図１２Ｂは、６０Ｇ無線モジュール及びＷＬＡＮ部１４７を外に設けた他のＸＢの構成を示す図である。
【００７６】
図１２Ｂに示すように、ＸＢ１４ｃは、６０Ｇ無線上部１４６ａ、６０Ｇ無線下部１４６ｂ、６０Ｇ無線左部１４６ｃ、６０Ｇ無線右部１４６ｄ及びＷＬＡＮ部１４７を有しない。ＸＢ１４ｃは、外に設けられた６０Ｇ無線上部１０ａ、６０Ｇ無線下部１０ｂ、６０Ｇ無線左部１０ｃ、６０Ｇ無線右部１０ｄ及びＷＬＡＮ部１０ｅを用いて無線通信を行う。
【００７７】
次に、ＧＩＤ−ＷＳＴＡ１４２ｃの詳細について説明する。図１３は、ＧＩＤ−ＷＳＴＡ１４２ｃが記憶するＧＩＤ及びＳＴＡ機能有無の一例を示す図である。図１３に示すように、ＧＩＤ−ＷＳＴＡ１４２ｃは、ＮＩＤとＧＩＤとＷＳＴＡとを対応付けてノード１０ごとに記憶する。ＧＩＤは、宛先のノード１０が属するグループを識別する識別子である。ＷＳＴＡは、宛先のノード１０がＷＬＡＮのＳＴＡ機能を有するか否かを示し、「０」はＳＴＡ機能を有さないことを示し、「１」はＳＴＡ機能を有することを示す。
【００７８】
例えば、図１３に示すように、ＮＩＤが１２’ｈ１＿０＿１であるノード１０は、ＧＩＤが１のグループに属し、ＳＴＡ機能を有しない。また、ＮＩＤが１２’ｈ２＿０＿３であるノード１０は、ＧＩＤが２のグループに属し、ＳＴＡ機能を有する。
【００７９】
このように、ＧＩＤ−ＷＳＴＡ１４２ｃがＮＩＤとＧＩＤとＷＳＴＡとを対応付けて記憶し、ＮＩＤからＧＩＤ及びＷＳＴＡを検索することで、ノード１０はパケットの宛先のノード１０が属するグループを知ることができる。また、ノード１０は自ノードが属するグループとＷＳＴＡとを知ることができる。
【００８０】
次に、実施例２に係るノード１０による受信処理のフローについて説明する。図１４は、実施例２に係るノード１０による受信処理のフローを示すフローチャートである。図１４に示すように、ノード１０は、パケットを受信する（ステップＳ４１）と、パケットの宛先が自ノードであるか否かを判定する（ステップＳ４２）。その結果、パケットの宛先が自ノードである場合には、ホストへパケットを送信する（ステップＳ５７）。
【００８１】
一方、パケットの宛先が自ノードでない場合には、ノード１０は、ＮＡＴ検索、すなわちＮＡＴ１４２ｂを用いて宛先のＭＡＣアドレス及び自ノードに対するテーブル検索を行い（ステップＳ４３）、宛先及び自ノードのＮＩＤを検索する。そして、ノード１０は、ＧＩＤ−ＷＳＴＡ検索、すなわちＧＩＤ−ＷＳＴＡ１４２ｃを用いてＮＩＤからＧＩＤ及びＷＳＴＡを検索し（ステップＳ４４）、宛先及び自ノードのＧＩＤ及びＷＳＴＡを検索する。
【００８２】
そして、ノード１０は、検索したＧＩＤが自ＧＩＤと等しいか否かを判定し（ステップＳ４５）、検索したＧＩＤが自ＧＩＤと等しい場合には、宛先及び自ノードのＮＩＤを比較する（ステップＳ４６）。そして、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きいか否かを判定し（ステップＳ４７）、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きい場合には、６０Ｇ無線右部１４６ｄを用いてパケットを送信する（ステップＳ５３）。
【００８３】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きくない場合には、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さいか否かを判定する（ステップＳ４８）。その結果、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さい場合には、ノード１０は、６０Ｇ無線左部１４６ｃを用いてパケットを送信する（ステップＳ５２）。
【００８４】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さくない場合には、Ｘ１とＸ２が等しい場合なので、ノード１０は、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きいか否かを判定する（ステップＳ４９）。その結果、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きい場合には、ノード１０は、６０Ｇ無線上部１４６ａを用いてパケットを送信する（ステップＳ５１）。一方、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きくない場合には、ノード１０は、６０Ｇ無線下部１４６ｂを用いてパケットを送信する（ステップＳ５０）。
【００８５】
また、検索したＧＩＤが自ＧＩＤと等しくない場合（ステップＳ４５、Ｎｏ）には、別のグループへの送信なので、ノード１０は、自ノードのＷＳＴＡが１であるか否かを判定する（ステップＳ５４）。その結果、自ノードのＷＳＴＡが１でない場合には、ノード１０は、グループ内のＷＳＴＡが１のノード１０に送信する場合の６０Ｇ無線モジュールへパケットをルーティングする。すなわち、ノード１０は、自グループでＳＴＡ機能を有するＮＩＤと自ノードのＮＩＤを比較し（ステップＳ５５）、ステップＳ４７に移動する。一方、自ノードのＷＳＴＡが１である場合には、ノード１０は、ＷＬＡＮモジュールを用いてパケットを送信する（ステップＳ５６）。
【００８６】
次に、実施例２に係るノード１０による送信処理のフローについて説明する。図１５は、実施例２に係るノード１０による送信処理のフローを示すフローチャートである。図１５に示すように、ノード１０は、ＮＡＴ検索、すなわちＮＡＴ１４２ｂを用いて宛先のＭＡＣアドレス及び自ノードに対するテーブル検索を行い（ステップＳ６１）、宛先及び自ノードのＮＩＤを検索する。そして、ノード１０は、ＧＩＤ−ＷＳＴＡ検索、すなわちＧＩＤ−ＷＳＴＡ１４２ｃを用いてＮＩＤからＧＩＤ及びＷＳＴＡを検索し（ステップＳ６２）、宛先及び自ノードのＧＩＤ及びＷＳＴＡを検索する。
【００８７】
そして、ノード１０は、検索したＧＩＤが自ＧＩＤと等しいか否かを判定し（ステップＳ６３）、検索したＧＩＤが自ＧＩＤと等しい場合には、宛先及び自ノードのＮＩＤを比較する（ステップＳ６４）。そして、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きいか否かを判定し（ステップＳ６５）、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きい場合には、６０Ｇ無線右部１４６ｄを用いてパケットを送信し（ステップＳ７１）、ステップＳ７２へ進む。
【００８８】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より大きくない場合には、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さいか否かを判定する（ステップＳ６６）。その結果、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さい場合には、ノード１０は、６０Ｇ無線左部１４６ｃを用いてパケットを送信し（ステップＳ７０）、ステップＳ７２へ進む。
【００８９】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２より小さくない場合には、Ｘ１とＸ２が等しい場合なので、ノード１０は、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きいか否かを判定する（ステップＳ６７）。その結果、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きい場合には、ノード１０は、６０Ｇ無線上部１４６ａを用いてパケットを送信し（ステップＳ６９）、ステップＳ７２へ進む。一方、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きくない場合には、ノード１０は、６０Ｇ無線下部１４６ｂを用いてパケットを送信する（ステップＳ６８）。
【００９０】
そして、ノード１０は、ＡＣＫを受信したか否かを判定し（ステップＳ７２）、ＡＣＫを受信した場合には処理を終了し、ＡＣＫを受信しなかった場合には、ＷＬＡＮモジュールで再送する（ステップＳ７３）。
【００９１】
また、検索したＧＩＤが自ＧＩＤと等しくない場合（ステップＳ６３、Ｎｏ）には、別のグループへの送信なので、ノード１０は、自ノードのＷＳＴＡが１であるか否かを判定する（ステップＳ７４）。その結果、自ノードのＷＳＴＡが１でない場合には、ノード１０は、グループ内のＷＳＴＡが１のノード１０に送信する場合の６０Ｇ無線モジュールへパケットをルーティングする。すなわち、ノード１０は、自グループでＳＴＡ機能を有するＮＩＤと自ノードのＮＩＤを比較し（ステップＳ７５）、ステップＳ６５に移動する。一方、自ノードのＷＳＴＡが１である場合には、ノード１０は、ＷＬＡＮモジュールを用いてパケットを送信する（ステップＳ７６）。
【００９２】
このように、グループ外にパケットを送信する場合に、ノード１０は、グループ内でＳＴＡ機能を有するノード１０にパケットを送信し、ＳＴＡ機能を有するノード１０がＷＬＡＮを用いてパケットを送信する。したがって、情報処理システムは、ＡＰ３の輻輳を減らすことができる。
【００９３】
上述してきたように、実施例２では、近接するノード１０がグループ化され、ノード１０は、同一グループ内では６０Ｇ無線でパケットを送信し、別のグループへはＷＬＡＮでパケットを送信する。したがって、ノード１０は、ＧＩＤを用いて６０Ｇ無線とＷＬＡＮを適切に使い分けることができ、情報処理システムは、多数のノード１０を無線で高速に接続することができる。なお、ここでは、近接する１２個のノード１０をグループ化したが、情報処理システムは、任意の個数のノード１０をグループ化することができる。
【実施例３】
【００９４】
上記実施例１及び２では、６０Ｇ無線モジュールが上下左右に隣接するノード１０のみと通信する場合について説明したが、６０Ｇ無線モジュールはいくつかのノード１０をまたいだノード１０と通信することもできる。そこで、実施例３では、６０Ｇ無線モジュールがいくつかのノード１０をまたいだノード１０と通信する場合について説明する。
【００９５】
図１６は、実施例３に係る通信イメージを示す図である。図１６において、（ａ）は実施例１に対応して近くのノード１０に６０Ｇ無線でパケットを送信する場合を示し、（ｂ）は実施例２に対応してグループ内外のノード１０にパケットを送信する場合を示す。
【００９６】
図１６（ａ）に示すように、送信元のノードＳは、近くのノードＤ1にパケットを送信する場合に、右方向に１つノードを跨いだ中継ノードＲに６０Ｇ無線でパケットを送信する。そして、中継ノードＲは、下方向に１つノードを跨いだノードＤ1に６０Ｇ無線でパケットを送信する。
【００９７】
また、図１６（ｂ）に示すように、送信元のノードＳは、グループ内のノードＤ1にパケットを送信する場合に、右隣の中継ノードＲ1に６０Ｇ無線でパケットを送信する。そして、中継ノードＲ1は、下方向に１つノードを跨いだノードＤ1に６０Ｇ無線でパケットを送信する。また、送信元のノードＳは、グループ外のノードＤ2にパケットを送信する場合に、右方向に１つノードを跨いだ中継ノードＲ2に６０Ｇ無線でパケットを送信する。そして、中継ノードＲ2は、下方向に１つノードを跨いだノードＷに６０Ｇ無線でパケットを送信する。ここで、ノードＷは、ＷＬＡＮのＳＴＡ機能を備え、ＷＬＡＮでＡＰ３経由でパケットをノードＤ2に送信する。
【００９８】
このように、実施例３に係るノード１０は、近くのノード１０又はグループ内のノード１０にパケットを送信する場合に、自ノードとＹ座標が同じで宛先のノード１０とＸ座標が同じ中継ノードに左右の６０Ｇ無線モジュールでパケットを送信する。そして、中継ノードは、受信したパケットを上下の６０Ｇ無線モジュールで宛先のノード１０に送信する。したがって、実施例３に係るノード１０は、６０Ｇ無線でパケットを送信する場合に、中継するノード１０の数を減らすことができ、より高速にパケットを送信することができる。
【００９９】
なお、送信元ノードと中継ノードに挟まれたノード１０などパケットを中継する必要がないノード１０は、受信したパケットを破棄する。したがって、中継ノードだけがパケットを送信元から宛先に送信することができる。
【０１００】
次に、実施例３に係るノード１０による受信処理のフローについて説明する。図１７は、実施例３に係るノード１０による受信処理のフローを示す第１のフローチャートであり、図１８は、実施例３に係るノード１０による受信処理のフローを示す第２のフローチャートである。図１７は、実施例１に対応してノード１０が送信先のノード１０との距離に基づいてパケットを送信する場合を示し、図１８は、実施例２に対応してノード１０がグループ内外のノード１０にパケットを送信する場合を示す。
【０１０１】
図１７に示すように、ノード１０は、パケットを受信する（ステップＳ８１）と、パケットの宛先が自ノードであるか否かを判定する（ステップＳ８２）。その結果、パケットの宛先が自ノードである場合には、ホストへパケットを送信する（ステップＳ９４）。
【０１０２】
一方、パケットの宛先が自ノードでない場合には、ノード１０は、ＮＡＴ検索、すなわちＮＡＴ１４２ａを用いて宛先のＭＡＣアドレス及び自ノードに対するテーブル検索を行い（ステップＳ８３）、宛先及び自ノードのＮＩＤを検索する。そして、ノード１０は、宛先及び自ノードのＮＩＤを比較し（ステップＳ８４）、Ｘ座標の差とＹ座標の差との和が所定の閾値Ｄthより大きいか否かを判定する（ステップＳ８５）。その結果、Ｘ座標の差とＹ座標の差との和が所定の閾値Ｄthより大きい場合には、ノード１０は、パケットをＷＬＡＮモジュールを用いて送信する（ステップＳ９３）。
【０１０３】
一方、Ｘ座標の差とＹ座標の差との和が所定の閾値Ｄthより大きくない場合には、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２と等しいか否かを判定する（ステップＳ８６）。その結果、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２と等しくない場合には、自ノードは中継ノードではないので、ノード１０は、パケットを廃棄する（ステップＳ９２）。
【０１０４】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２と等しい場合には、ノード１０は、自ノードのＹ座標Ｙ２が送信元のＹ座標Ｙ３と等しいか否かを判定する（ステップＳ８７）。その結果、自ノードのＹ座標Ｙ２が送信元のＹ座標Ｙ３と等しくない場合には、自ノードは中継ノードではないので、ノード１０は、パケットを廃棄する（ステップＳ９１）。
【０１０５】
一方、自ノードのＹ座標Ｙ２が送信元のＹ座標Ｙ３と等しい場合には、中継ノードである場合なので、ノード１０は、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きいか否かを判定する（ステップＳ８８）。その結果、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きい場合には、ノード１０は、６０Ｇ無線上部１４６ａを用いてパケットを送信する（ステップＳ８９）。一方、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きくない場合には、ノード１０は、６０Ｇ無線下部１４６ｂを用いてパケットを送信する（ステップＳ９０）。
【０１０６】
また、図１８に示すように、実施例２に対応する受信処理では、ノード１０は、パケットを受信する（ステップＳ１０１）と、パケットの宛先が自ノードであるか否かを判定する（ステップＳ１０２）。その結果、パケットの宛先が自ノードである場合には、ホストへパケットを送信する（ステップＳ１１７）。
【０１０７】
一方、パケットの宛先が自ノードでない場合には、ノード１０は、ＮＡＴ検索、すなわちＮＡＴ１４２ｂを用いて宛先のＭＡＣアドレス及び自ノードに対するテーブル検索を行い（ステップＳ１０３）、宛先及び自ノードのＮＩＤを検索する。そして、ノード１０は、ＧＩＤ−ＷＳＴＡ検索、すなわちＧＩＤ−ＷＳＴＡ１４２ｃを用いてＮＩＤからＧＩＤ及びＷＳＴＡを検索し（ステップＳ１０４）、宛先及び自ノードのＧＩＤ及びＷＳＴＡを検索する。
【０１０８】
そして、ノード１０は、検索したＧＩＤが自ＧＩＤと等しいか否かを判定し（ステップＳ１０５）、検索したＧＩＤが自ＧＩＤと等しい場合には、宛先及び自ノードのＮＩＤを比較する（ステップＳ１０６）。そして、ノード１０は、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２と等しいか否かを判定する（ステップＳ１０７）。その結果、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２と等しくない場合には、自ノードは中継ノードではないので、ノード１０は、パケットを廃棄する（ステップＳ１１３）。
【０１０９】
一方、宛先のＸ座標Ｘ１が自ノードのＸ座標Ｘ２と等しい場合には、ノード１０は、自ノードのＹ座標Ｙ２が送信元のＹ座標Ｙ３と等しいか否かを判定する（ステップＳ１０８）。その結果、自ノードのＹ座標Ｙ２が送信元のＹ座標Ｙ３と等しくない場合には、自ノードは中継ノードではないので、ノード１０は、パケットを廃棄する（ステップＳ１１２）。
【０１１０】
一方、自ノードのＹ座標Ｙ２が送信元のＹ座標Ｙ３と等しい場合には、中継ノードである場合なので、ノード１０は、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きいか否かを判定する（ステップＳ１０９）。その結果、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きい場合には、ノード１０は、６０Ｇ無線上部１４６ａを用いてパケットを送信する（ステップＳ１１０）。一方、宛先のＹ座標Ｙ１が自ノードのＹ座標Ｙ２より大きくない場合には、ノード１０は、６０Ｇ無線下部１４６ｂを用いてパケットを送信する（ステップＳ１１１）。
【０１１１】
また、検索したＧＩＤが自ＧＩＤと等しくない場合（ステップＳ１０５、Ｎｏ）には、別のグループへの送信なので、ノード１０は、自ノードのＷＳＴＡが１であるか否かを判定する（ステップＳ１１４）。その結果、自ノードのＷＳＴＡが１でない場合には、ノード１０は、グループ内のＷＳＴＡが１のノード１０に送信する場合の６０Ｇ無線モジュールへパケットをルーティングする。すなわち、ノード１０は、自グループでＳＴＡ機能を有するＮＩＤと自ノードのＮＩＤを比較し（ステップＳ１１５）、ステップＳ１０７に移動する。一方、自ノードのＷＳＴＡが１である場合には、ノード１０は、ＷＬＡＮモジュールを用いてパケットを送信する（ステップＳ１１６）。
【０１１２】
このように、ノード１０は、パケットを受信すると、自ノードが宛先でなく、中継ノードでもない場合には、受信したパケットを廃棄する。したがって、中継ノードだけがパケットを中継することができ、宛先に同一パケットが複数送信されることを防ぐことができる。
【０１１３】
上述してきたように、実施例３では、ノード１０は、６０Ｇ無線でパケットを送信する場合に、自ノードとＹ座標が同じで宛先のノード１０とＸ座標が同じ中継ノードに左右の６０Ｇ無線モジュールでパケットを送信する。そして、中継ノードは、受信したパケットを上下の６０Ｇ無線モジュールで宛先のノード１０に送信する。したがって、ノード１０は、６０Ｇ無線でパケットを送信する場合に、中継するノード１０の数を減らすことができ、より高速にパケットを送信することができる。
【０１１４】
なお、実施例３では、送信元ノードが左右方向のノード１０に送信後、中継ノードが宛先まで上下方向に送信する場合について説明したが、送信元ノードが上下方向のノード１０に送信後、中継ノードが宛先まで左右方向に送信することもできる。
【０１１５】
また、実施例１〜３では、ＸＢをハードウェアで実現する場合について説明したが、ＸＢが有するルーティング機能をソフトウェアによって実現することで、同様の機能を有する通信プログラムを得ることができる。そこで、通信プログラムを実行するＸＢのハードウェア構成について説明する。
【０１１６】
図１９は、通信プログラムを実行するＸＢのハードウェア構成を示す図である。図１９に示すように、ＸＢ１４ｄは、ホストＩ／Ｆ１４１と、５つのＩ／Ｆ１４５と、ＭＰＵ（Micro  Processing  Unit）１５１と、フラッシュメモリ１５２と、ＲＡＭ（Random  Access  Memory）１５３とを有する。
【０１１７】
ホストＩ／Ｆ１４１は、自ノードのＣＰＵ１１とのインタフェースであり、ＣＰＵ１１から受け取ったパケットをＭＰＵ１５１に渡し、ＭＰＵ１５１から受け取ったパケットを自ノードのＣＰＵ１１に渡す。Ｉ／Ｆ１４５は、６０Ｇ無線モジュール又はＷＬＡＮモジュールから受け取った信号をパケットに変換し、ＭＰＵ１５１に渡す。また、Ｉ／Ｆ１４５は、ＭＰＵ１５１から受け取ったパケットを信号に変換して接続する６０Ｇ無線モジュール又はＷＬＡＮモジュールに渡す。
【０１１８】
ＭＰＵ１５１は、フラッシュメモリ１５２から通信プログラムを読み出して実行する処理装置である。フラッシュメモリ１５２は、通信プログラムを記憶する不揮発性メモリである。また、フラッシュメモリ１５２は、ＮＡＴ１４２ｂ及びＧＩＤ−ＷＳＴＡ１４２ｃが記憶する情報及びＮＩレジスタ１４８が記憶する情報を記憶する。ＲＡＭ１５３は、プログラムの実行途中結果やテーブルなどを記憶するメモリである。ＮＡＴ１４２ｂ及びＧＩＤ−ＷＳＴＡ１４２ｃが記憶する情報は、通信プログラムの実行時にフラッシュメモリ１５２から読み出されてＲＡＭ１５３に書き込まれる。
【０１１９】
また、実施例１〜３では、６０ＧＨｚ帯の周波数を使用する６０Ｇ無線及びＷＬＡＮを用いる場合について説明した。しかしながら、本発明は６０Ｇ無線及びＷＬＡＮに限定されるものではなく、通信速度や電波の届く範囲が異なる２種類の無線モジュールあるいは有線通信を適宜組み合わせて用いる場合にも同様に適用することができる。
【符号の説明】
【０１２０】
１    ラック
２    ＮＷスイッチ
３    ＡＰ
４    ＳＴＡ
１０    ノード
１０ａ，１４６ａ    ６０Ｇ無線上部
１０ｂ，１４６ｂ    ６０Ｇ無線下部
１０ｃ，１４６ｃ    ６０Ｇ無線左部
１０ｄ，１４６ｄ    ６０Ｇ無線右部
１０ｅ，１４７    ＷＬＡＮ部
１１    ＣＰＵ
１２    メモリ
１３    ストレージ
１４，１４ａ，１４ｂ，１４ｃ，１４ｄ    ＸＢ
１５ａ    ６０Ｇ無線上用アンテナ
１５ｂ    ６０Ｇ無線下用アンテナ
１５ｃ    ６０Ｇ無線左用アンテナ
１５ｄ    ６０Ｇ無線右用アンテナ
９２，９４    スイッチングノード
９５    バックプレーン
９６    配線パターン
１４１    ホストＩ／Ｆ
１４２，１４２ｄ    宛先判断部
１４２ａ，１４２ｂ    ＮＡＴ
１４２ｃ    ＧＩＤ−ＷＳＴＡ
１４３    ルーティング部
１４４    パケット解析部
１４５    Ｉ／Ｆ
１４８    ＮＩレジスタ
１５１    ＭＰＵ
１５２    フラッシュメモリ
１５３    ＲＡＭ
【図１】
2015056858.tif 000003
【図２】
2015056858.tif 000004
【図３Ａ】
2015056858.tif 000005
【図３Ｂ】
2015056858.tif 000006
【図４】
2015056858.tif 000007
【図５】
2015056858.tif 000008
【図６】
2015056858.tif 000009
【図７】
2015056858.tif 000010
【図８】
2015056858.tif 000011
【図９】
2015056858.tif 000012
【図１０】
2015056858.tif 000013
【図１１】
2015056858.tif 000014
【図１２Ａ】
2015056858.tif 000015
【図１２Ｂ】
2015056858.tif 000016
【図１３】
2015056858.tif 000017
【図１４】
2015056858.tif 000018
【図１５】
2015056858.tif 000019
【図１６】
2015056858.tif 000020
【図１７】
2015056858.tif 000021
【図１８】
2015056858.tif 000022
【図１９】
2015056858.tif 000023
【図２０】
2015056858.tif 000024
【図２１Ａ】
2015056858.tif 000025
【図２１Ｂ】
2015056858.tif 000026