(57)【特許請求の範囲】
【請求項１】
フレームをノードに送信する際に用いられる送信先情報を送信先のノードのアドレスと対応付けて記憶する記憶部と、
送信要求を示すフレームを検知すると、検知したフレームの送信先のアドレスに対応付けられる送信先情報が前記記憶部に記憶されていない場合、当該送信先情報を問い合わせるノードの数を示す所定のホップ数を付加した、当該送信先情報の問合せ要求を隣接したノードに対して送信する問合せ部と、
前記送信先情報の問合せ要求を示すフレームを検知すると、前記送信先情報が示す問合せ先のアドレスが前記記憶部に記憶されている場合、前記問合せ要求に対する応答を示すフレームの送信元のアドレスフィールドに、前記送信先情報に対応付けられた問合せ先のアドレスを書き込み、前記応答を示すフレームを問合せ要求の送信元である隣接装置に対して送信する応答部と、
前記問合せ部による前記送信先情報の問合せ要求に対する応答情報に基づいて、前記送信要求を示すフレームを送信する送信部と
を有することを特徴とするネットワーク装置。
【請求項２】
前記問合せ部は、前記所定のホップ数を、前記送信先情報の問合せ要求を示すフレームのユーザデータ部分に設定することを特徴とする請求項１に記載のネットワーク装置。
【請求項３】
前記問合せ部は、前記問合せ要求に対する応答情報に前記送信先のアドレスを知らない旨の情報が設定されていた場合、前記ホップ数を１加算し、加算したホップ数を付加した前記送信先情報の問合せ要求を再び送信することを特徴とする請求項１または請求項２に記載のネットワーク装置。
【請求項４】
前記問合せ部は、前記問合せ要求に対する応答期間だけ前記問合せ要求に対する応答を待つことを特徴とする請求項１から請求項３のいずれか１つに記載のネットワーク装置。
【請求項５】
コンピュータが実行する送信先問合せ方法であって、
送信要求を示すフレームを検知すると、検知したフレームの送信先のアドレスに対応付けられる送信先情報が、フレームをノードに送信する際に用いられる送信先情報を送信先のノードのアドレスと対応付けて記憶する記憶部に記憶されていない場合、当該送信先情報を問い合わせるノードの数を示す所定のホップ数を付加した、当該送信先情報の問合せ要求を隣接したノードに対して送信し、
前記送信先情報の問合せ要求を示すフレームを検知すると、前記送信先情報が示す問合せ先のアドレスが前記記憶部に記憶されている場合、前記問合せ要求に対する応答を示すフレームの送信元のアドレスフィールドに、前記送信先情報に対応付けられた問合せ先のアドレスを書き込み、前記応答を示すフレームを問合せ要求の送信元である隣接装置に対して送信し、
前記送信先情報の問合せ要求に対する応答情報に基づいて、前記送信要求を示すフレームを送信する
処理を含むことを特徴とする送信先問合せ方法。
【請求項６】
コンピュータに、
送信要求を示すフレームを検知すると、検知したフレームの送信先のアドレスに対応付けられる送信先情報が、フレームをノードに送信する際に用いられる送信先情報を送信先のノードのアドレスと対応付けて記憶する記憶部に記憶されていない場合、当該送信先情報を問い合わせるノードの数を示す所定のホップ数を付加した、当該送信先情報の問合せ要求を隣接したノードに対して送信し、
前記送信先情報の問合せ要求を示すフレームを検知すると、前記送信先情報が示す問合せ先のアドレスが前記記憶部に記憶されている場合、前記問合せ要求に対する応答を示すフレームの送信元のアドレスフィールドに、前記送信先情報に対応付けられた問合せ先のアドレスを書き込み、前記応答を示すフレームを問合せ要求の送信元である隣接装置に対して送信し、
前記送信先情報の問合せ要求に対する応答情報に基づいて、前記送信要求を示すフレームを送信する
処理を実行させる送信先問合せプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク装置等に関する。
【背景技術】
【０００２】
ネットワークスイッチまたは無線アドホック等の中継装置では、データリンク層（レイヤ２）で用いられるアドレス（ＭＡＣアドレス）について学習機能を有しているものがある。かかる中継装置は、送信したいフレームについて送信先のアドレスが存在する物理回線に当該フレームを送信する。ところが、送信先のアドレスがどの物理回線に存在しているのかが不明の場合には、中継装置は、接続する全ての物理回線に、フレームを転送する。これを「フラッディング」という。
【０００３】
ここで、送信先のアドレスを問い合わせる技術を説明する。この技術では、無線局は、送信先のアドレスを問い合わせるために、問合わせフレームや応答フレームを用いて、フレームを中継するためのルーティング情報を、隣接する無線局との間で交換する。そして、無線局は、交換した情報により自局の学習テーブルには含まれていないが、隣接無線局の学習テーブルに含まれている無線局を検出する。この結果、無線局は、検出した無線局が送信先のアドレスと一致すれば、隣接無線局を介して送信先のアドレスの無線局にフレームを中継できる。
【０００４】
また、別の技術では、中継装置は、学習テーブルに受信フレームの送信先アドレスと一致するアドレスが登録されていない場合、接続されている全中継装置に、送信先アドレスと一致するアドレスが登録済みであるか否かを問い合わせる。そして、中継装置は、登録済みであると判定された中継装置から送信される応答フレームを受信すると、応答フレームの受信ポートを介して、受信フレームを中継する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３１９６７６号公報
【特許文献２】特開２００９−２００６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、レイヤ２における通信において、送信先のアドレスが学習されていない中継装置では、送信先のアドレスを問合わせる場合、不要なトラフィックが発生するとともに、セキュリティが維持できない場合があるという問題があった。すなわち、中継装置がフラッディングを行うと、接続する全ての物理回線にフレームを転送することとなるので、不要なトラフィックが発生する。この結果、パケットキャプチャ等による盗聴の可能性が増大する。
【０００７】
また、ルーティング情報を隣接する無線局との間で交換する技術では、無線局は、隣接する無線局との間で互いに保有された学習テーブルを添付して通信し合うので、不要なトラフィックが発生する。しかも、隣接する無線局が送信先のアドレスを知らない場合には、無線局が、隣接無線局を介して送信先のアドレスにフレームを中継できない。また、接続されている全中継装置に送信先アドレスを問い合わせる技術であっても、送信先アドレスが接続されている全中継装置に登録されていなければ、問い合わせ元の中継装置は、受信フレームを中継できない。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、レイヤ２において送信先のアドレスを問合わせる場合、トラフィックの低減とセキュリティの維持を図ることができるネットワーク装置等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するネットワーク装置は、一つの態様において、フレームをノードに送信する際に用いられる送信先情報を送信先のノードのアドレスと対応付けて記憶する記憶部と、送信要求を示すフレームを検知すると、検知したフレームの送信先のアドレスに対応付けられる送信先情報が前記記憶部に記憶されていない場合、当該送信先情報を問い合わせるノードの数を示す所定のホップ数を付加した、当該送信先情報の問合せ要求を隣接したノードに対して送信する問合せ部と、前記問合せ部による問合せ要求に対する応答情報に基づいて、前記送信要求を示すフレームを送信する送信部とを有する。
【発明の効果】
【００１０】
本願の開示するネットワーク装置の一つの態様によれば、レイヤ２において送信先のアドレスを問合わせる場合、トラフィックの低減とセキュリティの維持を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例に係るネットワークシステムの構成を示す機能ブロック図である。
【図２】図２は、学習テーブルのデータ構造の一例を示す図である。
【図３】図３は、問合せ管理テーブルのデータ構造の一例を示す図である。
【図４Ａ】図４Ａは、問合せフレームのフォーマットの一例を示す図である。
【図４Ｂ】図４Ｂは、応答フレームのフォーマットの一例を示す図である。
【図５】図５は、実施例に係るアドレス問合せ（問合せ元）の手順を示すフローチャートである。
【図６】図６は、実施例に係るアドレス問合せ（問合せ先）の手順を示すフローチャートである。
【図７Ａ】図７Ａは、ホップ数が１である場合のフレームフローの具体例を説明する図である。
【図７Ｂ】図７Ｂは、ホップ数が２である場合のフレームフローの具体例を説明する図である。
【図８】図８は、実施例に係るアドレス問合せをＨＴに用いた場合のシーケンスを説明する図である。
【図９】図９は、送信先問合せプログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するネットワーク装置、送信先問合せ方法および送信先問合せプログラムの実施例を図面に基づいて詳細に説明する。以下の実施例では、イーサネット（登録商標）を用いて、データリンク層（レイヤ２）における通信制御を行うネットワーク装置に適用した場合を示す。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１３】
［実施例に係るネットワークシステムの構成］
図１は、実施例に係るネットワークシステムの構成を示す機能ブロック図である。図１に示すように、ネットワークシステム９は、ネットワーク装置１とｎ台のネットワーク装置２とを有する。ネットワーク装置１は、ｎ台のネットワーク装置２と直接的または間接的にネットワーク内の伝送路を介して接続される。接続方法としては、有線であっても無線であっても構わない。なお、以降の説明では、有線で接続されているものとして説明する。また、ネットワーク装置１、２は、ＭＡＣアドレスを用いて送信先を識別するレイヤ２で通信を行う。
【００１４】
［ネットワーク装置１の構成］
ネットワーク装置１は、送信要求を示すフレームを検知すると、当該フレームの送信先の送信先情報が自装置で学習されていない場合、当該送信先の送信先情報を問い合わせる問合せ要求を、隣接するネットワーク装置２に対して送信する。かかる問合せ要求には、当該送信先の送信先情報を問い合わせる装置の数（以降、「ホップ数」という。）が含まれている。
【００１５】
このネットワーク装置１の構成について説明する。ネットワーク装置１は、制御部１０および記憶部２０を有する。制御部１０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路、または、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路である。さらに、制御部１０は、フレーム受信部１１、フレーム送信部１２、アプリケーション部１３、アドレス学習部１４、振分部１５Ａ、アドレス検索部１６およびアドレス問合せ部１７を有する。
【００１６】
記憶部２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（flash  memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。さらに、記憶部２０は、学習テーブル２１および問合せ管理テーブル２２を有する。
【００１７】
フレーム受信部１１は、伝送路から送信要求を示すフレームまたはフレームを中継する中継フレーム等を受信する。また、フレーム受信部１１は、送信要求に係る送信先の送信先情報を問い合わせる問合せ要求に対する応答を、ネットワーク装置２から受信する。
【００１８】
フレーム送信部１２は、伝送路に各種フレームを送信する。
【００１９】
アプリケーション部１３は、アプリケーションを実行する。例えば、アプリケーション部１３は、ネットワーク装置２に送信要求が発生するようなアプリケーションを実行する。
【００２０】
アドレス学習部１４は、フレーム受信部１１により受信されたフレームから送信元のアドレスを学習する。例えば、アドレス学習部１４は、フレーム受信部１１により受信されたフレームの送信元のＭＡＣアドレスを、当該フレームを受信したポートに対応付けて学習テーブル２１に格納する。なお、アドレス学習部１４は、送信元のＭＡＣアドレスが学習テーブル２１に格納されていれば、送信元のＭＡＣアドレスが既に学習されているので、当該送信元のＭＡＣアドレスを学習テーブル２１に追加しない。
【００２１】
ここで、学習テーブル２１のデータ構造について、図２を参照して説明する。図２は、学習テーブルのデータ構造の一例を示す図である。図２に示すように、学習テーブル２１は、アドレス２１ａおよび物理ポート番号２１ｂを対応付けて記憶する。
【００２２】
アドレス２１ａには、学習されたＭＡＣアドレスが記憶される。なお、アドレス２１ａは、後述するアドレス検索部１６によってフレームの送信先のアドレスが学習済みであるか否かが判定される際に用いられる。
【００２３】
物理ポート番号２１ｂには、対応付けられたアドレス２１ａが指す装置の送信先情報、すなわちポート番号が記憶される。言い換えれば、物理ポート番号２１ｂには、送信先のＭＡＣアドレスにより識別されるネットワーク装置２の送信先情報としてポート番号が記憶されている。なお、物理ポート番号２１ｂは、物理的な送信先情報であるが、仮想的な送信先情報であっても良い。すなわち、物理ポート番号に代えて、ＶＬＡＮ（Virtual  LAN）に関する情報を送信先情報としても良い。また、物理ポート番号２１ｂは、有線の場合の送信先情報であるが、無線の場合の送信先情報であっても良い。無線の場合には、送信先情報を、物理ポート番号に代えて、フレームを転送する際の隣接装置のＭＡＣアドレスとしても良い。
【００２４】
学習テーブル２１の一例として、アドレス２１ａが「ＡＡＡＡ」である場合、物理ポート番号２１ｂとして「ポート１」を記憶している。
【００２５】
振分部１５Ａは、受信したフレームから処理を振り分ける。例えば、振分部１５Ａは、アドレス学習部１４によって取得されたフレームの送信先のアドレスが自装置のアドレスである場合には、当該フレームを用いてアプリケーションを実行すべく、当該フレームをアプリケーション部１３に引き渡す。また、振分部１５Ａは、アドレス学習部１４によって取得されたフレームの送信先のアドレスが自装置以外のアドレスである場合には、当該フレームが送信要求を示すフレームまたは中継フレームであると判断し、当該フレームをアドレス検索部１６に引き渡す。また、振分部１５Ａは、アドレス学習部１４によって取得されたフレームが問合せ要求の際に用いられるフレームである場合には、当該フレームが問合せ要求に対する応答であると判断し、当該フレームを問合せ処理部１７１Ａに引き渡す。
【００２６】
アドレス検索部１６は、振分部１５Ａから引き渡されたフレームについて、送信先のアドレスに対応する送信先情報を学習テーブル２１から検索する。そして、アドレス検索部１６は、送信先のアドレスに対応する送信先情報を検索できた場合には、検索できた送信先情報に基づいて、振分部１５Ａから引き渡されたフレームを、フレーム送信部１２を介して送信する。一方、アドレス検索部１６は、送信先のアドレスに対応する送信先情報を検索できなかった場合には、送信先のアドレスが学習されていないと判断する。そして、アドレス検索部１６は、送信先のアドレスに対応する送信先情報を問い合わせるべく、振分部１５Ａから引き渡されたフレームをアドレス問合せ部１７に引き渡す。なお、アドレス検索部１６は、振分部１５Ａから引き渡されたフレームについて、送信先のアドレスに対応する送信先情報を学習テーブル２１から検索するものとしたが、これに限定されるものではない。例えば、アドレス検索部１６は、アプリケーション部１３から送信要求を示すフレームを引き渡された場合であっても、当該フレームについて、送信先のアドレスに対応する送信先情報を学習テーブル２１から検索するものとしても良い。
【００２７】
アドレス問合せ部１７は、問合せ処理部１７１Ａおよび応答処理部１７２を有する。問合せ処理部１７１Ａは、アドレス検索部１６により学習されていないと判断された送信先のアドレスに対して、ホップ数を付加した送信先情報の問合せフレームを作成する。なお、「問合せフレーム」とは、送信先のアドレスの送信先情報を問い合わせる際に用いられるフレームのことをいう。
【００２８】
例えば、問合せ処理部１７１Ａは、所定のホップ数および問い合わせたい送信先のアドレスを問合せフレームのユーザデータ部分に設定する。また、問合せ処理部１７１Ａは、問合せフレームを送信してから応答を待ち合わせる応答待ち時間を問合せ管理テーブル２２に格納する。また、問合せ処理部１７１Ａは、作成した問合せフレームを、フレーム送信部１２を介して隣接するネットワーク装置２に対して送信する。隣接するネットワーク装置２が複数存在する場合には、問合せ処理部１７１Ａは、複数のネットワーク装置２に対して同時に送信することが望ましい。これは、問い合わせ時間を短縮するためである。なお、所定のホップ数は、例えばネットワークの幹線であるバックボーンを除外したネットワーク装置１側のネットワーク装置２の数としても良い。バックボーンを除外するのは、問い合わせによってネットワークの負荷をかけないためであるとともに、問い合わせ自体の時間を短縮するためである。しかしながら、ネットワークの全体構成が不明である場合には、ネットワーク内の最大ホップ数を所定のホップ数としても良い。
【００２９】
ここで、問合せ管理テーブル２２のデータ構造について、図３を参照して説明する。図３は、問合せ管理テーブルのデータ構造の一例を示す図である。図３に示すように、問合せ管理テーブル２２は、アドレス２２ａ、物理ポート番号２２ｂおよび応答待ちタイマ値２２ｃを対応付けて記憶する。
【００３０】
アドレス２２ａには、問い合わせを行う送信先のアドレスが記憶される。物理ポート番号２２ｂには、問合せフレームを送信した送信先情報、すなわちポート番号が記憶される。なお、物理ポート番号２２ｂは、物理的な送信先情報であるが、仮想的な送信先情報であっても良い。すなわち、物理ポート番号に代えて、ＶＬＡＮ（Virtual  LAN）に関する情報を送信先情報としても良い。また、物理ポート番号２２ｂは、有線の場合の送信先情報であるが、無線の場合の送信先情報としても良い。無線の場合には、物理ポート番号に代えて、例えば、問合せフレームを転送する際の隣接装置のＭＡＣアドレスを送信先情報とする。
【００３１】
応答待ちタイマ値２２ｃには、応答待ち時間の残り時間が記憶される。すなわち、アドレス問合せ部１７は、問合せフレームを送信したとき、最大の応答待ち時間を応答待ちタイマ値２２ｃに設定し、設定した応答待ち時間を時間の経過に応じてカウントダウンして、応答を待つ残り時間を応答待ちタイマ値２２ｃに設定しなおす。
【００３２】
問合せ管理テーブル２２の一例として、アドレス２２ａが「ＡＡＡＡ」である場合、物理ポート番号２２ｂとして「ポート１、ポート２、ポート３」を記憶し、応答待ちタイマ値２２ｃとして「残り３秒」を記憶している。この場合には、問合せ処理部１７１Ａは、残り３秒を用いて、問い合わせを継続することとなる。
【００３３】
図１に戻って、応答処理部１７２は、問合せ要求に対する応答処理を行う。例えば、応答処理部１７２は、応答待ち時間が０になるまでに、問合せ要求に対する応答フレームを振分部１５Ａから取得した場合、応答フレームに設定された問合せ結果に応じて、応答に関する処理を行う。なお、「応答フレーム」とは、問合せ要求に対する応答に用いられるフレームのことをいう。
【００３４】
一例として、応答処理部１７２は、応答フレームの問合せ結果に送信先アドレスを知っている旨の情報が設定されていた場合、応答フレームを受信したポートを用いて送信要求を示すフレームを、フレーム送信部１２を介して送信する。すなわち、応答フレームの問合せ結果に送信先アドレスを知っている旨の情報が設定されていた場合、応答フレームを受信したポートが送信先アドレスの送信先情報となる。したがって、応答処理部１７２は、アドレス学習部１４によって学習テーブル２１に記憶された、送信先アドレスに対応付けられたポートを用いて送信要求を示すフレームを送信する。また、応答処理部１７２は、応答フレームの問合せ結果に送信先アドレスを知らない旨の情報が設定されていた場合、応答に対応する問合せフレームに設定されたホップ数を１加算した数のホップ数を付加した問合せフレームを問合せ処理部１７１Ａに作成させる。そして、応答処理部１７２は、送信先のアドレスの送信先情報の問合せ要求を、問合せ処理部１７１Ａに再び送信させる。
【００３５】
応答処理部１７２は、応答待ち時間が０になった場合、応答フレームを取得できないと判断し、問合せフレームに設定されたホップ数を１加算した数のホップ数を付加した問合せフレームを問合せ処理部１７１Ａに作成させる。そして、応答処理部１７２は、送信先のアドレスの送信先情報の問合せ要求を、問合せ処理部１７１Ａに再び送信させる。なお、応答処理部１７２は、再度問合せをする場合の処理について説明したが、これに限られず、問合せを断念しても良い。
【００３６】
［ネットワーク装置２の構成］
次に、ネットワーク装置２の構成について説明する。ネットワーク装置２は、ネットワーク装置１と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。ネットワーク装置２がネットワーク装置１と異なるところは、振分部１５Ａを振分部１５Ｂに変更し、問合せ処理部１７１Ａを問合せ処理部１７１Ｂに変更し、応答中継処理部１７３を追加した点にある。なお、ネットワーク装置２およびネットワーク装置１は、それぞれの機能部をマージすることで、同一の構成を備えるネットワーク装置としても良い。
【００３７】
振分部１５Ｂは、受信したフレームが問合せフレームである場合には、当該フレームの送信先を問合せるべく、当該フレームを問合せ処理部１７１Ｂに引き渡す。また、振分部１５Ｂは、受信したフレームが応答フレームである場合には、当該フレームを中継するべく、当該フレームを応答中継処理部１７３に引き渡す。
【００３８】
問合せ処理部１７１Ｂは、振分部１５Ｂから問合せフレームを取得すると、取得した問合せフレームに設定された問合せ先のアドレスが学習テーブル２１に記憶されているか否かを判定する。そして、問合せ処理部１７１Ｂは、問合せ先のアドレスが学習テーブル２１に記憶されていない場合、取得した問合せフレームに基づいて、新たに問合せフレームを作成する。一例として、問合せ処理部１７１Ｂは、取得した問合せフレームに設定されたホップ数を１減算する。また、問合せ処理部１７１Ｂは、問合せ先のアドレスに対して、減算したホップ数を付加した、送信先情報の問合せフレームを新たに作成する。また、問合せ処理部１７１Ｂは、取得した問合せフレームに設定されていた送信元アドレスを、新たに作成した問合せフレームの送信元アドレスに設定する。これは、問合せフレームをさらに中継するネットワーク装置２に送信する際に、中継するネットワーク装置２にもこの送信元アドレスを学習テーブル２１に記憶させるようにするためである。そして、問合せ処理部１７１Ｂは、新たに作成した問合せフレームを、先行して取得した問合せフレームの送信元のネットワーク装置２と異なる隣接するネットワーク装置２に対して送信する。
【００３９】
また、問合せ処理部１７１Ｂは、問合せ先のアドレスが学習テーブル２１に記憶されている場合、学習されていると判断し、問合せ要求に対する応答フレームを作成する。一例として、問合せ処理部１７１Ｂは、応答フレームの問合せ結果に、問合せ先のアドレスを知っている旨の情報を設定する。また、問合せ処理部１７１Ｂは、応答フレームの宛先アドレスに問合せフレームの送信元アドレス、すなわち問合せ元であるネットワーク装置１のアドレスを設定する。また、問合せ処理部１７１Ｂは、応答フレームの送信元アドレスに、自装置のアドレスを設定する代わりに問合せ先のアドレスを設定する。これは、応答フレームを問合せ元のネットワーク装置１に戻す際に、ネットワーク装置１と自装置とを中継するネットワーク装置２にもこの問合せ先のアドレスを学習テーブル２１に記憶させるようにするためである。そして、問合せ処理部１７１Ｂは、作成した応答フレームを、問合せフレームの送信元である隣接装置、すなわちネットワーク装置２（または１）に対して送信する。
【００４０】
応答中継処理部１７３は、振分部１５Ｂから応答フレームを取得すると、取得した応答フレームを中継する。一例として、応答中継処理部１７３は、応答フレームに設定された問合せ結果が問合せ先のアドレスを知っている旨の情報であった場合、当該応答フレームの問合せ先のアドレスを学習テーブルに追加し、問合せフレームの送信元であるネットワーク装置２（または１）に対して送信する。なお、問合せ先のアドレスを学習テーブルに追加する処理は、当該応答フレームの送信元アドレスが問合せ先のアドレスになっていることから、アドレス学習部１４で行うことも可能である。また、応答中継処理部１７３は、応答フレームに設定された問合せ結果が問合せ先のアドレスを知らない旨の情報であった場合、受信した応答フレームをそのまま問合せフレームの送信元である隣接装置、すなわちネットワーク装置２（または１）に対して送信する。
【００４１】
［フレームフォーマットの一例］
ここで、問合せフレームおよび応答フレームのフレームフォーマットについて、図４Ａおよび図４Ｂを参照して説明する。図４Ａは、問合せフレームのフォーマットの一例を示す図である。図４Ｂは、応答フレームのフォーマットの一例を示す図である。
【００４２】
図４Ａに示すように、問合せフレームには、宛先アドレスｆ１、送信元アドレスｆ２、タイプｆ３およびユーザデータｆ４が含まれる。宛先アドレスｆ１には、隣接するネットワーク装置２のみが受信可能なマルチキャストアドレスや隣接するネットワーク装置２のＭＡＣアドレスを指定するユニキャストアドレスが設定される。隣接するネットワーク装置２のみが受信可能なマルチキャストアドレスの一例として、ＳＴＰ（Spanning  Tree  Protocol）で用いられるＢＰＤＵ（Bridge  Protocol  Data  Unit）で使用されるアドレスが用いられる。
【００４３】
送信元アドレスｆ２には、送信先のアドレスを問い合わせる送信元装置のアドレスが設定される。すなわち、送信元アドレスｆ２には、ネットワーク装置１のアドレスが設定される。なお、前述したとおり、問合せフレームを中継するネットワーク装置２は、送信元アドレスｆ２に送信元装置であるネットワーク装置１のアドレスをそのまま引き継いで設定する。送信元アドレスｆ２にネットワーク装置１のアドレスをそのまま引き継ぐのは、ネットワーク装置２の送信先のネットワーク装置に対して、ネットワーク装置１のアドレスを学習させるためでる。タイプｆ３には、レイヤ３で用いられるプロトコルのタイプが設定される。
【００４４】
ユーザデータｆ４には、ホップ数ｆ４１および問合せ先ｆ４２が含まれる。ホップ数ｆ４１には、送信先のアドレスの送信先情報を問い合わせるネットワーク装置２の数が設定される。すなわち、ホップ数ｆ４１とは、送信先のアドレスの送信先情報を問い合わせるために中継可能なネットワーク装置２の数となる。問合せ先ｆ４２には、送信先情報を問い合わせる送信先のアドレスが設定される。
【００４５】
図４Ｂに示すように、応答フレームには、宛先アドレスｇ１、送信元アドレスｇ２、タイプｇ３およびユーザデータｇ４が含まれる。宛先アドレスｇ１には、送信先アドレスを問い合わせる送信元装置のアドレスが設定される。すなわち、宛先アドレスｇ１には、ネットワーク装置１のアドレスが設定される。なお、前述したとおり、応答フレームを中継するネットワーク装置２は、宛先アドレスｇ１に送信元装置であるネットワーク装置１のアドレスをそのまま引き継いで設定する。送信元アドレスｇ２には、後述する問合せ結果ｇ４１が知っている旨の情報である場合、問い合わせた送信先のアドレスが設定される。送信元アドレスｇ２に問い合わせた送信先のアドレスを設定するのは、この応答フレームを中継するネットワーク装置２に対して、問い合わせた送信先のアドレスを学習させるためでる。一方、問合せ結果ｇ４１が知らない旨の情報である場合、送信元アドレスｇ２には、自装置のアドレスが設定される。
【００４６】
ユーザデータｇ４には、問合せ結果ｇ４１および問合せ先ｇ４２が含まれる。問合せ結果ｇ４１には、送信先のアドレスの送信先情報が学習されている場合には、送信先のアドレスを知っている旨の情報が設定される。送信先のアドレスの送信先情報が学習されていない場合には、送信先のアドレスを知らない旨の情報が設定される。問合せ先ｇ４２には、問合せフレームの問合せ先ｆ４２と同様、問い合わせた送信先のアドレスが設定される。
【００４７】
［アドレス問合せ（問合せ元）の手順］
次に、問合せ元であるネットワーク装置１がフレームの送信先のアドレスを問い合わせるアドレス問合せの手順を、図５を参照して説明する。図５は、実施例に係るアドレス問合せ（問合せ元）手順を示すフローチャートである。なお、フレーム受信部１１が送信要求を示すフレームまたはフレームを中継する中継フレームを受信し、振分部１５Ａが受信したフレームをアドレス検索部１６に引き渡すものとして説明する。
【００４８】
まず、アドレス検索部１６は、振分部１５Ａから引き渡されたフレームの中に、送信要求を示すフレームまたはフレームを中継する中継フレームがあったか否かを判定する（ステップＳ１１）。送信要求を示すフレームまたは中継フレームがなかったと判定した場合（ステップＳ１１；Ｎｏ）、アドレス検索部１６は、判定処理を繰り返す。一方、送信要求を示すフレームまたは中継フレームがあったと判定した場合（ステップＳ１１；Ｙｅｓ）、アドレス検索部１６は、引き渡されたフレームの送信先のアドレスが学習済みであるか否かを、学習テーブル２１に基づいて判定する（ステップＳ１２）。
【００４９】
そして、引き渡されたフレームの送信先のアドレスが学習済みであると判定した場合（ステップＳ１２；Ｙｅｓ）、アドレス検索部１６は、学習テーブル２１の内容に従って、当該フレームを、フレーム送信部１２を介して送信する（ステップＳ１３）。すなわち、アドレス検索部１６は、学習テーブル２１の送信先のアドレスに対応する送信先情報（物理ポート番号２１ｂ）を学習テーブル２１から検索し、検索した送信先情報のポートから当該フレームを送信する。そして、応答処理部１７２は、アドレス問合せ処理を終了する。
【００５０】
一方、引き渡されたフレームの送信先のアドレスが学習済みでないと判定した場合（ステップＳ１２；Ｎｏ）、問合せ処理部１７１Ａは、学習済みでないと判定された送信先のアドレスに対して、ホップ数を付加した、送信先情報の問合せフレームを作成する。そして、問合せ処理部１７１Ａは、作成した問合せフレームを、フレーム送信部１２を介して隣接するネットワーク装置２に対して送信する（ステップＳ１４）。隣接するネットワーク装置２が複数存在する場合には、問合せ処理部１７１Ａは、複数のネットワーク装置２に対して同時に送信する。
【００５１】
そして、問合せ処理部１７１Ａは、問合せフレームを送信したとき、応答待ちタイマを設定する（ステップＳ１５）。例えば、問合せ処理部１７１Ａは、問合せフレームを送信してから応答を待つ残り時間（応答待ち時間）を、問合せフレームを送信した際に用いた送信先情報を対応付けて問合せ管理テーブル２２に設定する。なお、問合せ処理部１７１Ａは、設定した応答待ち時間を時間の経過に応じてカウントダウンして、応答を待つ残り時間を設定しなおす。
【００５２】
その後、応答処理部１７２は、応答待ちタイマが０になるまでに応答があるか否かを判定する（ステップＳ１６）。そして、応答待ちタイマが０になるまでに応答があったと判定した場合（ステップＳ１６；Ｙｅｓ）、応答処理部１７２は、応答フレームの問合せ結果に送信先アドレスを知らない旨の情報が設定されているか否かを判定する（ステップＳ１７）。応答フレームの問合せ結果に送信先アドレスを知っている旨の情報が設定されていると判定した場合（ステップＳ１７；Ｎｏ）、応答処理部１７２は、応答の情報に従って送信する（ステップＳ１８）。すなわち、応答処理部１７２は、応答フレームを受信したポートを用いて送信要求を示すフレームまたは中継フレームを、フレーム送信部１２を介して送信する。そして、応答処理部１７２は、アドレス問合せ処理を終了する。
【００５３】
一方、応答待ちタイマが０になるまでに応答がなかった場合（ステップＳ１６；Ｎｏ）、または応答フレームの問合せ結果に送信先アドレスを知らない旨の情報が設定されていた場合（ステップＳ１７；Ｙｅｓ）、応答処理部１７２は、ステップＳ１９に移行する。
【００５４】
そして、問合せ処理部１７１Ａは、問合せフレームに設定されたホップ数を１だけ加算し（ステップＳ１９）、加算したホップ数が予め定められた最大ホップ数であるか否かを判定する（ステップＳ２０）。加算したホップ数が予め定められた最大ホップ数でないと判定した場合（ステップＳ２０；Ｎｏ）、問合せ処理部１７１Ａは、再び問合せすべく、ステップＳ１４に移行する。
【００５５】
一方、加算したホップ数が予め定められた最大ホップ数であると判定した場合（ステップＳ２０；Ｙｅｓ）、問合せ処理部１７１Ａは、例えばディスプレイへの表示によって、送信先のアドレスを問い合わせできなかったことを警告する（ステップＳ２１）。そして、応答処理部１７２は、アドレス問合せ処理を終了する。
【００５６】
［アドレス問合せ（問合せ先）の手順］
次に、問合せ元であるネットワーク装置１から問合せフレームを受信する、問合せ先であるネットワーク装置２が送信先のアドレスを問い合わせるアドレス問合せの手順を、図６を参照して説明する。図６は、実施例に係るアドレス問合せ（問合せ先）手順を示すフローチャートである。
【００５７】
まず、振分部１５Ｂは、フレーム受信部１１によって受信されたフレームが問合せフレームであるか否かを判定する（ステップＳ３１）。問合せフレームでないと判定した場合（ステップＳ３１；Ｎｏ）、振分部１５Ｂは、判定処理を繰り返す。一方、問合せフレームであると判定した場合（ステップＳ３１；Ｙｅｓ）、問合せ処理部１７１Ｂは、振分部１５Ｂから引き渡された問合せフレームの問合せ先のアドレスが学習済みであるか否かを判定する（ステップＳ３２）。問合せ先のアドレスが学習済みであるか否かの判定は、学習テーブル２１に基づいて行われる。
【００５８】
問合せ先のアドレスが学習済みであると判定した場合（ステップＳ３２；Ｙｅｓ）、問合せ処理部１７１Ｂは、問合せ要求に対する応答フレームを作成する。そして、問合せ処理部１７１Ｂは、作成した応答フレームを、フレーム送信部１２を介して送信する（ステップＳ３３）。そして、問合せ処理部１７１Ｂは、問合せ先であったネットワーク装置２のアドレス問合せ処理を終了する。
【００５９】
一方、問合せ先のアドレスが学習済みでないと判定した場合（ステップＳ３２；Ｎｏ）、問合せ処理部１７１Ｂは、問合せ要求に係る問合せフレームに設定されたホップ数をカウントダウンする（ステップＳ３４）。そして、問合せ処理部１７１Ｂは、カウントダウンしたホップ数が０でないか否かを判定する（ステップＳ３５）。カウントダウンしたホップ数が０であると判定した場合（ステップＳ３５；Ｎｏ）、問合せ処理部１７１Ｂは、後続するネットワーク装置２に問合せできないので、応答フレームを送信するか否かを判定する（ステップＳ３６）。そして、応答フレームを送信しないと判定した場合（ステップＳ３６；Ｎｏ）、問合せ処理部１７１Ｂは、問合せフレームを破棄する（ステップＳ３８）。そして、問合せ処理部１７１Ｂは、問合せ先であったネットワーク装置２のアドレス問合せ処理を終了する。
【００６０】
一方、応答フレームを送信すると判定した場合（ステップＳ３６；Ｙｅｓ）、問合せ処理部１７１Ｂは、送信先アドレスを知らない旨の応答結果を応答フレームの問合せ結果に設定した、問合せに対する応答フレームを作成する。そして、問合せ処理部１７１Ｂは、作成した応答フレームを、問合せフレームの送信元のネットワーク装置２（または１）に対して送信する（ステップＳ３７）。そして、問合せ処理部１７１Ｂは、問合せ先であったネットワーク装置２のアドレス問合せ処理を終了する。
【００６１】
一方、カウントダウンしたホップ数が０でないと判定した場合（ステップＳ３５；Ｙｅｓ）、問合せ処理部１７１Ｂは、カウントダウンしたホップ数を付加した、送信先情報の問合せフレームを新たに作成する。そして、問合せ処理部１７１Ｂは、新たに作成した問合せフレームを、先行して取得した問合せフレームの送信元のネットワーク装置２と異なる隣接するネットワーク装置２に対して送信する（ステップＳ３９）。
【００６２】
そして、問合せ処理部１７１Ｂは、新たに作成した問合せフレームを送信したとき、応答待ちタイマを設定する（ステップＳ４０）。例えば、問合せ処理部１７１Ｂは、問合せフレームを送信してから応答を待つ残り時間（応答待ち時間）を、問合せフレームを送信した際に用いた送信先情報を対応付けて問合せ管理テーブル２２に設定する。なお、問合せ処理部１７１Ｂは、設定した応答待ち時間を時間の経過に応じてカウントダウンして、応答を待つ残り時間を設定しなおす。
【００６３】
その後、応答中継処理部１７３は、応答待ちタイマが０になるまでに送信した問合せフレームに対する応答があったか否かを判定する（ステップＳ４１）。送信した問合せフレームに対する応答がないと判定した場合（ステップＳ４１；Ｎｏ）、応答中継処理部１７３は処理を終了する。
【００６４】
一方、送信した問合せフレームに対する応答があると判定した場合（ステップＳ４１；Ｙｅｓ）、応答中継処理部１７３は、応答に係る応答フレームを、問合せフレームの送信元のネットワーク装置２（または１）に対して中継する（ステップＳ４２）。そして、応答中継処理部１７３は、問合せ先であったネットワーク装置２のアドレス問合せ処理を終了する。
【００６５】
[フレームフローの具体例]
次に、問合せフレームおよび応答フレームのフレームフローの具体例について、図７Ａおよび図７Ｂを参照して説明する。図７Ａは、ホップ数が１である場合のフレームフローの具体例を説明する図である。図７Ｂは、ホップ数が２である場合のフレームフローの具体例を説明する図である。なお、図７Ａおよび図７Ｂでは、送信要求を示すフレームをアドレス「Ａ」を有するネットワーク装置１が受信し、受信したフレームの送信先のアドレス「Ｄ」を学習していないものとして説明する。
【００６６】
図７Ａに示すように、アドレス「Ａ」を有するネットワーク装置１は、送信元アドレスｆ２を「Ａ」、宛先アドレスｆ１を「Ｂ」、ホップ数ｆ４１を「１」、問合せ先ｆ４２を「Ｄ」に設定した問合せフレームを作成する。そして、ネットワーク装置１は、作成した問合せフレームを宛先アドレス「Ｂ」を有するネットワーク装置２に対して送信する。
【００６７】
宛先アドレス「Ｂ」を有するネットワーク装置２は、アドレス「Ａ」を有するネットワーク装置１から問合せフレームを受信する。ここでは、宛先アドレス「Ｂ」を有するネットワーク装置２は、受信した問合せフレームに設定された問合せ先ｆ４２のアドレス「Ｄ」を学習していないものとする。すると、ネットワーク装置２は、ホップ数ｆ４１として設定された「１」をカウントダウンして得られたホップ数が「０」であるので、後続するネットワーク装置２に問合せのアドレスを問合せできない。ここでは知らない場合に応答フレームを送信するものとし、ネットワーク装置２は、送信元アドレスｇ２を「Ｂ」、宛先アドレスｇ１を「Ａ」、問合せ結果ｇ４１を「知らない」、問合せ先ｇ４２を「Ｄ」に設定した応答フレームを作成する。そして、ネットワーク装置２は、作成した応答フレームを問合せフレームの送信元、すなわちアドレス「Ａ」を有するネットワーク装置１に対して送信する。この結果、ネットワーク装置１は、送信要求を示すフレームの送信先のアドレスの問合せに失敗した。
【００６８】
次に、アドレス「Ａ」を有するネットワーク装置１は、ホップ数を「２」に設定して、送信先のアドレス「Ｄ」の問合せを行う。図７Ｂに示すように、ネットワーク装置１は、送信元アドレスｆ２を「Ａ」、宛先アドレスｆ１を「Ｂ」、ホップ数ｆ４１を「２」、問合せ先ｆ４２を「Ｄ」に設定した問合せフレームを作成する。そして、ネットワーク装置１は、作成した問合せフレームを宛先アドレス「Ｂ」を有するネットワーク装置２に対して送信する。
【００６９】
宛先アドレス「Ｂ」を有するネットワーク装置２は、アドレス「Ａ」を有するネットワーク装置１から問合せフレームを受信する。ここでは、宛先アドレス「Ｂ」を有するネットワーク装置２は、受信した問合せフレームに設定された問合せ先ｆ４２のアドレス「Ｄ」を学習していない。そこで、宛先アドレス「Ｂ」を有するネットワーク装置２は、ホップ数ｆ４１として設定された「２」をカウントダウンして得られたホップ数「１」を新たな問合せフレームに設定する。すなわち、宛先アドレス「Ｂ」を有するネットワーク装置２は、送信元アドレスｆ２を「Ａ」、宛先アドレスｆ１を「Ｃ」、ホップ数ｆ４１を「１」、問合せ先ｆ４２を「Ｄ」に設定した問合せフレームを新たに作成する。そして、ネットワーク装置２は、作成した問合せフレームを宛先アドレス「Ｃ」を有するネットワーク装置２に対して送信する。
【００７０】
宛先アドレス「Ｃ」を有するネットワーク装置２は、宛先アドレス「Ｂ」を有するネットワーク装置２から問合せフレームを受信する。ここでは、宛先アドレス「Ｃ」を有するネットワーク装置２は、受信した問合せフレームに設定された問合せ先ｆ４２のアドレス「Ｄ」を学習しているものとする。すると、ネットワーク装置２は、送信元アドレスｇ２を「Ｄ」、宛先アドレスｇ１を「Ａ」、問合せ結果ｇ４１を「知っている」、問合せ先ｇ４２を「Ｄ」に設定した応答フレームを作成する。そして、ネットワーク装置２は、作成した応答フレームを問合せフレームの送信元、すなわちアドレス「Ｂ」を有するネットワーク装置２に対して送信する。
【００７１】
さらに、アドレス「Ｂ」を有するネットワーク装置２は、宛先アドレス「Ｃ」を有するネットワーク装置２から応答フレームを受信する。そして、宛先アドレス「Ｃ」を有するネットワーク装置２は、受信した応答フレームを中継すべく、問合せフレームの送信元、すなわちアドレス「Ａ」を有するネットワーク装置１に対して送信する。この結果、ネットワーク装置１は、送信要求を示すフレームの送信先のアドレス「Ｄ」の問合せに成功した。そして、ネットワーク装置１は、応答フレームを受信したポートを用いて、送信要求を示すフレームを送信することができる。
【００７２】
［アドレス問合せの用途］
次に、実施例に係るアドレス問合せをハンディターミナル（ＨＴ：Handy  Terminal）に用いた場合のシーケンスについて、図８を参照して説明する。図８は、実施例に係るアドレス問合せをＨＴに用いた場合のシーケンスを説明する図である。ここで、ＨＴとは、データ収集端末を意味し、例えば電力を測定する端末であったりするが、これに限定されるものでない。
【００７３】
図８の例では、ＨＴから無線局である通信ユニットＣに接続する際のシーケンスを示している。ＨＴのアプリケーションは、無線局である通信ユニットＣとの通信接続をＨＴドライバに依頼する（ステップＳ４１）。このとき、ＨＴのアプリケーションは、通信ユニットＣのＭＡＣアドレスを用いて無線局通信接続を依頼する。
【００７４】
そして、ＨＴドライバは、通信ユニットＣのＭＡＣアドレスを通信アダプタに対して問い合わせる（ステップＳ４２）。ここでは、通信アダプタは、通信ユニットＣのＭＡＣアドレスを学習していないものとする。すると、通信アダプタは、１チャネル（ｃｈ）を選択し、選択した１ｃｈの通信ユニットＡに対して、通信ユニットＣの問い合わせを行う（ステップＳ４３）。例えば、通信アダプタは、ホップ数を「２」としたホップ数制限付きのマルチキャストで問合せフレームを通信ユニットＡに送信する。そして、通信アダプタは、応答待ちタイマに３秒を設定する。
【００７５】
そして、通信ユニットＡは、通信ユニットＣのＭＡＣアドレスを知らないとすると、通信ユニットＢに対して、通信ユニットＣの問い合わせを行う（ステップＳ４４）。例えば、通信ユニットＡは、通信アダプタから送信された問合せフレームのホップ数が「２」であるとすると、「２」から１カウントダウンして得られた「１」をホップ数としたホップ数制限付きのマルチキャストで問合せフレームを通信ユニットＢに送信する。
【００７６】
そして、通信ユニットＢは、通信ユニットＣのＭＡＣアドレスを知っているとすると、問合せ結果を「知っている」とした応答フレームを通信ユニットＡに送信する（ステップＳ４５）。例えば、通信ユニットＢは、ユニキャストで応答フレームを通信ユニットＡに送信する。
【００７７】
さらに、通信ユニットＡは、通信ユニットＢから送信された応答フレームを中継して、例えばユニキャストで応答フレームを通信アダプタに送信する（ステップＳ４６）。そして、通信アダプタは、ワンホップもしくはマルチホップで通信可能か否かを判定する（ステップＳ４７）。図８の例では、通信アダプタは、応答待ちタイマに設定した３秒以内に２ホップで通信ユニットＣを知っている旨の情報を受信したので、マルチホップで通信可能であると判定する（ステップＳ４７；Ｙｅｓ）。そして、通信アダプタは、通信ユニットＣと接続し（ステップＳ４８）、通信可能となる。
【００７８】
なお、通信アダプタは、ワンホップもしくはマルチホップで通信可能でないと判定した場合（ステップＳ４７；Ｎｏ）、１ｃｈから３ｃｈまで全て問い合わせに失敗したか否かを判定する（ステップＳ４９）。そして、通信アダプタは、１ｃｈから３ｃｈまで全て問い合わせに失敗していないと判定した場合（ステップＳ４９；Ｎｏ）、別のｃｈを選択して、選択したｃｈで問い合わせを行う。一方、通信アダプタは、１ｃｈから３ｃｈまで全て問い合わせに失敗したと判定した場合（ステップＳ４９；Ｙｅｓ）、通信ユニットＣとの接続は不可能である旨をアプリケーションに返却することになる（ステップＳ５０）。
【００７９】
［実施例の効果］
上記実施例によれば、問合せ処理部１７１Ａが、送信要求を示すフレームを検知したフレームの送信先のアドレスに対応付けられる送信先情報が学習されていない場合、当該送信先情報を問い合わせるノードの数を示す所定のホップ数を問合せ要求に付加する。そして、問合せ処理部１７１Ａは、所定のホップ数を付加した問合せ要求を隣接したノードに対して送信する。そして、応答処理部１７２は、問合せ要求に対する応答情報に基づいて、送信要求を示すフレームを送信するようにした。かかる構成によれば、問合せ処理部１７１Ａは、送信要求を示すフレームの送信先のアドレスに対応付けられる送信先情報を、最大でもホップ数分のノードにしか問い合わせないこととなる。この結果、問合せ処理部１７１Ａは、ネットワークに不要なトラフィックを発生させないので、トラフィックを低減することができるとともに、パケットキャプチャ等による盗聴の可能性が減少する。
【００８０】
また、上記実施例によれば、問合せ処理部１７１Ａは、所定のホップ数を、送信要求を示すフレームのユーザデータ部分に設定するようにした。かかる構成によれば、問合せ処理部１７１Ａは、レイヤ２でホップ数を容易に適用することができ、ネットワークに不要なトラフィックを発生させないようにすることができる。
【００８１】
また、上記実施例によれば、問合せ処理部１７１Ａは、所定のホップ数を、バックボーンを除外したノードの数であるように設定するようにした。かかる構成によれば、問合せ処理部１７１Ａは、通信量が多いバックボーンを避けることができるので、問い合わせによるネットワークの負荷を軽減することができる。さらに、問合せ処理部１７１Ａは、問い合わせに対する応答スピードを向上させることができる。
【００８２】
また、上記実施例によれば、問合せ処理部１７１Ａは、問合せ要求に対する応答情報に送信先情報が設定されていなかった場合、ホップ数を１加算する。そして、問合せ処理部１７１Ａは、加算したホップ数を付加した送信先情報の問合せ要求を再び送信するようにした。かかる構成によれば、問合せ処理部１７１Ａは、送信先情報を問い合わせるノードを１つずつ増やしていくことで、問い合わせによるネットワーク負荷をかけないようにしながら確実に送信先情報を問い合わせることができる。
【００８３】
また、上記実施例によれば、問合せ処理部１７１Ａは、問合せフレームの宛先アドレスとして隣接するノードのユニキャストアドレスを使用できるようにした。かかる構成によれば、隣接する全てのノードではなく、特定のノードのみへの問合せが可能になる。
【００８４】
また、上記実施例によれば、問合せ処理部１７１Ａは、問合せフレームの宛先アドレスとして隣接するノードのみが受信可能なマルチキャストアドレスを使用できるようにした。かかる構成によれば、隣接するノードのアドレスを知らない場合でも、ホップ数を制限した問合せが可能になる。
【００８５】
また、上記実施例によれば、ネットワーク装置２の問合せ処理部１７１Ｂは、問合せ先のアドレスを学習している場合、応答フレームの送信元アドレスに問合せ先アドレスを設定し、宛先アドレスに問合せフレームの送信元アドレスを設定する。かかる構成によれば、応答フレームを中継するネットワーク装置２の応答中継処理部１７３は、応答フレームの加工を不要とするので、フレームを用いて通信するレイヤ２で処理スピードを低下させないように処理することができる。
【００８６】
また、上記実施例によれば、ネットワーク装置２の応答処理部１７１Ｂは、問合せ先のアドレスが学習済みでないと判定した場合の応答フレームの送信について、送信せずに問合せフレームを破棄することができるようにした。かかる構成によれば、問合せ先が広範囲で応答フレームを送信するノード数が多い場合には、ネットワークのトラフィックを少なくすることができる。
【００８７】
また、上記実施例によれば、ネットワーク装置２の問合せ処理部１７１Ｂは、問合せ先のアドレスが学習済みでないと判定した場合の応答フレームの送信について、応答フレームを送信することができるようにした。かかる構成によれば、問い合わせ先のノード数が限られており、応答フレームを送信するノード数が少なければ、応答待ちタイマがタイムアウトする前に問合せ結果を知ることができる。
【００８８】
また、上記実施例によれば、問合せ処理部１７１Ａは、問合せ要求に対する応答期間だけ問合せ要求に対する応答を待つようにした。かかる構成によれば、問合せ処理部１７１Ａは、問合せ要求に対する応答に時間がかかりすぎる場合に、問合せ要求に対する応答の待ち合わせを途中で打ち切ることができるので、その後の処理を効率的に進めることができる。
【００８９】
［プログラム等］
なお、上記実施例では、ネットワーク装置１、２は、イーサネットを用いたレイヤ２における通信制御を行った。しかしながら、ネットワーク装置１、２は、これに限定されず、例えばＰＰＰ（Point  to  Point  Protocol）プロトコルまたはＨＤＬＣ（High-level  Data  Link  Control  procedure）プロトコルを用いたレイヤ２における通信制御を行うものであっても良い。ＰＰＰプロトコルの場合、問合せフレームおよび応答フレームをＭＡＣフレームのフォーマットに代えてＰＰＰフレームのフォーマットを用いるようにすれば良い。また、ＨＤＬＣプロトコルの場合、問合せフレームおよび応答フレームをＭＡＣフレームのフォーマットに代えてＨＤＬＣフレームのフォーマットを用いるようにすれば良い。
【００９０】
また、ネットワーク装置１、２は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した振分部１５Ａ、アドレス検索部１６およびアドレス問合せ部１７等の各機能を搭載することによって実現することができる。
【００９１】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、問合せ処理部１７１Ａと問合せ処理部１７１Ｂと応答処理部１７２と応答中継処理部１７３とを１個の部として統合しても良い。また、振分部１５Ａと振分部１５Ｂとを１個の部として統合しても良い。一方、応答処理部１７２を応答フレームを応答待ち時間内に受信できた場合の第１の応答処理部と、応答フレームを応答待ち時間内に受信できなかった場合の第２の応答処理部とに分散しても良い。また、学習テーブル２１や問合せ管理テーブル２２等の記憶部２０をネットワーク装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【００９２】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図９を用いて、図１に示したネットワーク装置１と同様の機能を有する送信先問合せプログラムを実行するコンピュータの一例を説明する。
【００９３】
図９は、送信先問合せプログラムを実行するコンピュータを示す図である。図９に示すように、コンピュータ１０００は、ＲＡＭ（Random  Access  Memory）１０１０と、ネットワークインタフェース装置１０２０と、ＨＤＤ（Hard  Disk  Drive）１０３０と、ＣＰＵ（Central  Processing  Unit）１０４０と、媒体読取装置１０５０と、バス１０６０とを有する。ＲＡＭ１０１０、ネットワークインタフェース装置１０２０、ＨＤＤ１０３０、ＣＰＵ１０４０、媒体読取装置１０５０は、バス１０６０によって接続されている。
【００９４】
そして、ＨＤＤ１０３０には、図１に示した制御部１０と同様の機能を有する送信先問合せプログラム１０３１が記憶される。また、ＨＤＤ１０３０には、図１に示した学習テーブル２１および問合せ管理テーブル２２に対応する送信先問合せ関連情報１０３２が記憶される。
【００９５】
そして、ＣＰＵ１０４０が送信先問合せプログラム１０３１をＨＤＤ１０３０から読み出してＲＡＭ１０１０にロードすることにより、送信先問合せプログラム１０３１は、送信先問合せプロセス１０１１として機能するようになる。そして、送信先問合せプロセス１０１１は、送信先問合せ関連情報１０３２から読み出した情報等を適宜ＲＡＭ１０１０上の自身に割り当てられた領域にロードし、このロードしたデータ等に基づいて各種データ処理を実行する。
【００９６】
なお、上記の送信先問合せプログラム１０３１は、必ずしもＨＤＤ１０３０に格納させなくても良く、ＣＤ−ＲＯＭ等の「可搬用の物理媒体」に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしても良い。
【００９７】
また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等を介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）等にこのプログラムを記憶させておいても良い。この場合には、コンピュータ１０００がこれらからプログラムを読み出して実行する。
【００９８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９９】
（付記１）フレームをノードに送信する際に用いられる送信先情報を送信先のノードのアドレスと対応付けて記憶する記憶部と、
送信要求を示すフレームを検知すると、検知したフレームの送信先のアドレスに対応付けられる送信先情報が前記記憶部に記憶されていない場合、当該送信先情報を問い合わせるノードの数を示す所定のホップ数を付加した、当該送信先情報の問合せ要求を隣接したノードに対して送信する問合せ部と、
前記問合せ部による問合せ要求に対する応答情報に基づいて、前記送信要求を示すフレームを送信する送信部と
を有することを特徴とするネットワーク装置。
【０１００】
（付記２）前記問合せ部は、前記所定のホップ数を、前記送信要求を示すフレームのユーザデータ部分に設定することを特徴とする付記１に記載のネットワーク装置。
【０１０１】
（付記３）前記問合せ部は、前記所定のホップ数を、バックボーンを除外したノードの数として設定することを特徴とする付記１または付記２に記載のネットワーク装置。
【０１０２】
（付記４）前記問合せ部は、前記問合せ要求に対する応答情報に前記送信先情報が設定されていなかった場合、前記ホップ数を１加算し、加算したホップ数を付加した前記送信先情報の問合せ要求を再び送信することを特徴とする付記１から付記３のいずれか１つに記載のネットワーク装置。
【０１０３】
（付記５）前記問合せ部は、前記問合せ要求を送信する際、送信先として隣接したノードのユニキャストアドレスを指定することを特徴とする付記１から付記４のいずれか１つに記載のネットワーク装置。
【０１０４】
（付記６）前記問合せ部は、前記問合せ要求を送信する際、送信先として隣接したノードのみ受信可能なマルチキャストアドレスを指定することを特徴とする付記１から付記４のいずれか１つに記載のネットワーク装置。
【０１０５】
（付記７）前記問合せ部は、前記問合せ要求に対する応答を送信する際、送信元として問合せ先のアドレスを指定することを特徴とする付記１から付記６のいずれか１つに記載のネットワーク装置。
【０１０６】
（付記８）前記問合せ部は、前記問合せ要求に対する応答として、前記記憶部に記憶されていない、または、問合せ要求のホップ数の制限に達した場合には何も応答を送信しないことを特徴とする付記１から付記６のいずれか１つに記載のネットワーク装置。
【０１０７】
（付記９）前記問合せ部は、前記問合せ要求に対する応答として、前記記憶部に記憶されていない、または、問合せ要求のホップ数の制限に達した場合には問合せ失敗を通知する応答を送信することを特徴とする付記１から付記６のいずれか１つに記載のネットワーク装置。
【０１０８】
（付記１０）前記問合せ部は、前記問合せ要求に対する応答期間だけ前記問合せ要求に対する応答を待つことを特徴とする付記１から付記８のいずれか１つに記載のネットワーク装置。
【０１０９】
（付記１１）コンピュータが実行する送信先問合せ方法であって、
送信要求を示すフレームを検知すると、検知したフレームの送信先のアドレスに対応付けられる送信先情報が、フレームをノードに送信する際に用いられる送信先情報を送信先のノードのアドレスと対応付けて記憶する記憶部に記憶されていない場合、当該送信先情報を問い合わせるノードの数を示す所定のホップ数を付加した、当該送信先情報の問合せ要求を隣接したノードに対して送信し、
該送信による問合せ要求に対する応答情報に基づいて、前記送信要求を示すフレームを送信する
処理を含むことを特徴とする送信先問合せ方法。
【０１１０】
（付記１２）コンピュータに、
送信要求を示すフレームを検知すると、検知したフレームの送信先のアドレスに対応付けられる送信先情報が、フレームをノードに送信する際に用いられる送信先情報を送信先のノードのアドレスと対応付けて記憶する記憶部に記憶されていない場合、当該送信先情報を問い合わせるノードの数を示す所定のホップ数を付加した、当該送信先情報の問合せ要求を隣接したノードに対して送信し、
該送信による問合せ要求に対する応答情報に基づいて、前記送信要求を示すフレームを送信する
処理を実行させる送信先問合せプログラム。
【符号の説明】
【０１１１】
１、２  ネットワーク装置
９  ネットワークシステム
１０  制御部
１１  フレーム受信部
１２  フレーム送信部
１３  アプリケーション部
１４  アドレス学習部
１５Ａ、１５Ｂ  振分部
１６  アドレス検索部
１７  アドレス問合せ部
１７１Ａ、１７１Ｂ  問合せ処理部
１７２  応答処理部
１７３  応答中継処理部
２０  記憶部
２１  学習テーブル
２２  問合せ管理テーブル
【図１】
0005866811.tif 000002
【図２】
0005866811.tif 000003
【図３】
0005866811.tif 000004
【図４Ａ】
0005866811.tif 000005
【図４Ｂ】
0005866811.tif 000006
【図５】
0005866811.tif 000007
【図６】
0005866811.tif 000008
【図７Ａ】
0005866811.tif 000009
【図７Ｂ】
0005866811.tif 000010
【図８】
0005866811.tif 000011
【図９】
0005866811.tif 000012